diff --git a/colorgcc-1.3.2-bz1078180.patch b/colorgcc-1.3.2-bz1078180.patch deleted file mode 100644 index e6db007..0000000 --- a/colorgcc-1.3.2-bz1078180.patch +++ /dev/null @@ -1,17 +0,0 @@ -diff --git a/colorgcc.1.3.2.txt b/colorgcc.1.3.2.txt -index 258ab97..f7c4a1e 100644 ---- a/colorgcc.1.3.2.txt -+++ b/colorgcc.1.3.2.txt -@@ -95,6 +95,12 @@ sub initDefaults - $compilerPaths{"color-c++"} = "c++"; - $compilerPaths{"color-ccache"} = "ccache"; - -+ $compilerPaths{"colorgcc"} = "gcc"; -+ $compilerPaths{"colorg++"} = "g++"; -+ $compilerPaths{"colorcc"} = "cc"; -+ $compilerPaths{"colorc++"} = "c++"; -+ $compilerPaths{"colorccache"} = "ccache"; -+ - $nocolor{"dumb"} = "true"; - - $colors{"srcColor"} = color("cyan"); diff --git a/colorgcc-1.3.2-invocation.patch b/colorgcc-1.3.2-invocation.patch deleted file mode 100644 index 74e5185..0000000 --- a/colorgcc-1.3.2-invocation.patch +++ /dev/null @@ -1,44 +0,0 @@ -diff --git a/colorgcc.1.3.2.txt b/colorgcc.1.3.2.txt -index 3cc7899..258ab97 100644 ---- a/colorgcc.1.3.2.txt -+++ b/colorgcc.1.3.2.txt -@@ -14,17 +14,13 @@ - # - # Usage: - # --# In a directory that occurs in your PATH _before_ the directory --# where the compiler lives, create a softlink to colorgcc for --# each compiler you want to colorize: -+# Call the compiler name with the 'color-' prefix, eg: -+# color-gcc -+# color-g++ -+# color-cc -+# color-c++ - # --# g++ -> colorgcc --# gcc -> colorgcc --# cc -> colorgcc --# etc. --# --# That's it. When "g++" is invoked, colorgcc is run instead. --# colorgcc looks at the program name to figure out which compiler to run. -+# That's it. - # - # The default settings can be overridden with ~/.colorgccrc. - # See the comments in the sample .colorgccrc for more information. -@@ -93,10 +89,11 @@ use IPC::Open3; - - sub initDefaults - { -- $compilerPaths{"gcc"} = "/usr/bin/gcc"; -- $compilerPaths{"g++"} = "/usr/bin/g++"; -- $compilerPaths{"cc"} = "/usr/bin/cc"; -- $compilerPaths{"c++"} = "/usr/bin/c++"; -+ $compilerPaths{"color-gcc"} = "gcc"; -+ $compilerPaths{"color-g++"} = "g++"; -+ $compilerPaths{"color-cc"} = "cc"; -+ $compilerPaths{"color-c++"} = "c++"; -+ $compilerPaths{"color-ccache"} = "ccache"; - - $nocolor{"dumb"} = "true"; - diff --git a/colorgcc-invocation.patch b/colorgcc-invocation.patch new file mode 100644 index 0000000..76d59b8 --- /dev/null +++ b/colorgcc-invocation.patch @@ -0,0 +1,23 @@ +diff --git a/colorgcc.pl b/colorgcc.pl +index 92bb58c..ceb31de 100755 +--- a/colorgcc.pl ++++ b/colorgcc.pl +@@ -149,6 +149,18 @@ my($unfinishedQuote, $previousColor); + + sub initDefaults + { ++ $compilerPaths{"color-gcc"} = "gcc"; ++ $compilerPaths{"color-g++"} = "g++"; ++ $compilerPaths{"color-cc"} = "cc"; ++ $compilerPaths{"color-c++"} = "c++"; ++ $compilerPaths{"color-ccache"} = "ccache"; ++ ++ $compilerPaths{"colorgcc"} = "gcc"; ++ $compilerPaths{"colorg++"} = "g++"; ++ $compilerPaths{"colorcc"} = "cc"; ++ $compilerPaths{"colorc++"} = "c++"; ++ $compilerPaths{"colorccache"} = "ccache"; ++ + $options{"chainedPath"} = "0"; + $nocolor{"dumb"} = "true"; + diff --git a/colorgcc.1.3.2.txt b/colorgcc.1.3.2.txt deleted file mode 100644 index 3cc7899..0000000 --- a/colorgcc.1.3.2.txt +++ /dev/null @@ -1,254 +0,0 @@ -#! /usr/bin/perl -w - -# -# colorgcc -# -# Version: 1.3.2 -# -# $Id: colorgcc,v 1.10 1999/04/29 17:15:52 jamoyers Exp $ -# -# A wrapper to colorize the output from compilers whose messages -# match the "gcc" format. -# -# Requires the ANSIColor module from CPAN. -# -# Usage: -# -# In a directory that occurs in your PATH _before_ the directory -# where the compiler lives, create a softlink to colorgcc for -# each compiler you want to colorize: -# -# g++ -> colorgcc -# gcc -> colorgcc -# cc -> colorgcc -# etc. -# -# That's it. When "g++" is invoked, colorgcc is run instead. -# colorgcc looks at the program name to figure out which compiler to run. -# -# The default settings can be overridden with ~/.colorgccrc. -# See the comments in the sample .colorgccrc for more information. -# -# Note: -# -# colorgcc will only emit color codes if: -# -# (1) Its STDOUT is a tty and -# (2) the value of $TERM is not listed in the "nocolor" option. -# -# If colorgcc colorizes the output, the compiler's STDERR will be -# combined with STDOUT. Otherwise, colorgcc just passes the output from -# the compiler through without modification. -# -# Author: Jamie Moyers -# Started: April 20, 1999 -# Licence: GNU Public License -# -# Credits: -# -# I got the idea for this from a script called "color_cvs": -# color_cvs .03 Adrian Likins -# -# (Scott Harrington) -# Much improved handling of compiler command line arguments. -# exec compiler when not colorizing to preserve STDOUT, STDERR. -# Fixed my STDIN kludge. -# -# (Elias S. G. Carotti) -# Corrected handling of text like -DPACKAGE=\"Package\" -# Spotted return code bug. -# -# (Erwin S. Andreasen) -# (Steve Churchill) -# Return code bug fixes. -# -# (Rik Hemsley) -# Found STDIN bug. -# -# Changes: -# -# 1.3.2 Better handling of command line arguments to compiler. -# -# If we aren't colorizing output, we just exec the compiler which -# preserves the original STDOUT and STDERR. -# -# Removed STDIN kludge. STDIN being passed correctly now. -# -# 1.3.1 Added kludge to copy STDIN to the compiler's STDIN. -# -# 1.3.0 Now correctly returns (I hope) the return code of the compiler -# process as its own. -# -# 1.2.1 Applied patch to handle text similar to -DPACKAGE=\"Package\". -# -# 1.2.0 Added tty check. If STDOUT is not a tty, don't do color. -# -# 1.1.0 Added the "nocolor" option to turn off the color if the terminal type -# ($TERM) is listed. -# -# 1.0.0 Initial Version - -use Term::ANSIColor; -use IPC::Open3; - -sub initDefaults -{ - $compilerPaths{"gcc"} = "/usr/bin/gcc"; - $compilerPaths{"g++"} = "/usr/bin/g++"; - $compilerPaths{"cc"} = "/usr/bin/cc"; - $compilerPaths{"c++"} = "/usr/bin/c++"; - - $nocolor{"dumb"} = "true"; - - $colors{"srcColor"} = color("cyan"); - $colors{"introColor"} = color("blue"); - - $colors{"warningFileNameColor"} = color("yellow"); - $colors{"warningNumberColor"} = color("yellow"); - $colors{"warningMessageColor"} = color("yellow"); - - $colors{"errorFileNameColor"} = color("bold red"); - $colors{"errorNumberColor"} = color("bold red"); - $colors{"errorMessageColor"} = color("bold red"); -} - -sub loadPreferences -{ -# Usage: loadPreferences("filename"); - - my($filename) = @_; - - open(PREFS, "<$filename") || return; - - while() - { - next if (m/^\#.*/); # It's a comment. - next if (!m/(.*):\s*(.*)/); # It's not of the form "foo: bar". - - $option = $1; - $value = $2; - - if ($option =~ m/cc|c\+\+|gcc|g\+\+/) - { - $compilerPaths{$option} = $value; - } - elsif ($option eq "nocolor") - { - # The nocolor option lists terminal types, separated by - # spaces, not to do color on. - foreach $termtype (split(/\s+/, $value)) - { - $nocolor{$termtype} = "true"; - } - } - else - { - $colors{$option} = color($value); - } - } - close(PREFS); -} - -sub srcscan -{ -# Usage: srcscan($text, $normalColor) -# $text -- the text to colorize -# $normalColor -- The escape sequence to use for non-source text. - -# Looks for text between ` and ', and colors it srcColor. - - my($line, $normalColor) = @_; - - my($srcon) = color("reset") . $colors{"srcColor"}; - my($srcoff) = color("reset") . $normalColor; - - $line = $normalColor . $line; - - # This substitute replaces `foo' with `AfooB' where A is the escape - # sequence that turns on the the desired source color, and B is the - # escape sequence that returns to $normalColor. - $line =~ s/\`(.*?)\'/\`$srcon$1$srcoff\'/g; - - print($line, color("reset")); -} - -# -# Main program -# - -# Set up default values for colors and compilers. -initDefaults(); - -# Read the configuration file, if there is one. -$configFile = $ENV{"HOME"} . "/.colorgccrc"; -if (-f $configFile) -{ - loadPreferences($configFile); -} - -# Figure out which compiler to invoke based on our program name. -$0 =~ m%.*/(.*)$%; -$progName = $1 || $0; - -$compiler = $compilerPaths{$progName} || $compilerPaths{"gcc"}; - -# Get the terminal type. -$terminal = $ENV{"TERM"} || "dumb"; - -# If it's in the list of terminal types not to color, or if -# we're writing to something that's not a tty, don't do color. -if (! -t STDOUT || $nocolor{$terminal}) -{ - exec $compiler, @ARGV - or die("Couldn't exec"); -} - -# Keep the pid of the compiler process so we can get its return -# code and use that as our return code. -$compiler_pid = open3('<&STDIN', \*GCCOUT, '', $compiler, @ARGV); - -# Colorize the output from the compiler. -while() -{ - if (m/^(.*?):([0-9]+):(.*)$/) # filename:lineno:message - { - $field1 = $1 || ""; - $field2 = $2 || ""; - $field3 = $3 || ""; - - if ($field3 =~ m/\s+warning:.*/) - { - # Warning - print($colors{"warningFileNameColor"}, "$field1:", color("reset")); - print($colors{"warningNumberColor"}, "$field2:", color("reset")); - srcscan($field3, $colors{"warningMessageColor"}); - } - else - { - # Error - print($colors{"errorFileNameColor"}, "$field1:", color("reset")); - print($colors{"errorNumberColor"}, "$field2:", color("reset")); - srcscan($field3, $colors{"errorMessageColor"}); - } - print("\n"); - } - elsif (m/^(.*?):(.+):$/) # filename:message: - { - # No line number, treat as an "introductory" line of text. - srcscan($_, $colors{"introColor"}); - } - else # Anything else. - { - # Doesn't seem to be a warning or an error. Print normally. - print(color("reset"), $_); - } -} - -# Get the return code of the compiler and exit with that. -waitpid($compiler_pid, 0); -exit ($? >> 8); - - - - - diff --git a/colorgcc.spec b/colorgcc.spec index 87c055f..25de8cf 100644 --- a/colorgcc.spec +++ b/colorgcc.spec @@ -1,17 +1,14 @@ Summary: Script to colorize the compiler output Name: colorgcc -Version: 1.3.2 -Release: 17%{?dist} +Version: 1.4.5 +Release: 1%{?dist} License: GPL+ Group: Development/Tools Url: http://schlueters.de/colorgcc.html -Source0: http://schlueters.de/colorgcc.%{version}.txt -Source1: http://schlueters.de/colorgccrc.txt -Source2: README +Source0: https://github.com/colorgcc/colorgcc/archive/%{version}.tar.gz BuildArch: noarch -Patch0: colorgcc-1.3.2-invocation.patch -Patch1: sampleconfig.patch -Patch2: colorgcc-1.3.2-bz1078180.patch +Patch0: colorgcc-invocation.patch +Patch1: readme-fedora.patch BuildRequires: perl-generators Requires: perl-interpreter @@ -20,17 +17,14 @@ Perl script written by Jamie Moyers to colorize the terminal output of C++, CC, CCACHE, G++, GCC so error messages can be found within longer compiler outputs. %prep -%setup -q -c -T -cp -p %{SOURCE0} . -cp -p %{SOURCE1} ./colorgccrc.sample -cp -p %{SOURCE2} . +%setup +mv ./colorgccrc.txt ./colorgccrc.sample %patch0 -p1 %patch1 -p1 -%patch2 -p1 %install mkdir -p $RPM_BUILD_ROOT/%{_bindir} -install -p -m 755 $(basename %{SOURCE0}) $RPM_BUILD_ROOT/%{_bindir}/color-gcc +install -p -m 755 colorgcc.pl $RPM_BUILD_ROOT/%{_bindir}/color-gcc ln -s %{_bindir}/color-gcc $RPM_BUILD_ROOT/%{_bindir}/color-g++ ln -s %{_bindir}/color-gcc $RPM_BUILD_ROOT/%{_bindir}/color-cc ln -s %{_bindir}/color-gcc $RPM_BUILD_ROOT/%{_bindir}/color-c++ @@ -42,6 +36,11 @@ ln -s %{_bindir}/color-gcc $RPM_BUILD_ROOT/%{_bindir}/colorcc ln -s %{_bindir}/color-gcc $RPM_BUILD_ROOT/%{_bindir}/colorc++ ln -s %{_bindir}/color-gcc $RPM_BUILD_ROOT/%{_bindir}/colorccache +install -dm 755 $RPM_BUILD_ROOT%{_libdir}/colorgcc +for n in cc gcc g++ c++ ; do + ln -s %{_bindir}/color-gcc $RPM_BUILD_ROOT%{_libdir}/colorgcc/$n +done + %files %defattr(-,root,root,-) %{_bindir}/color-gcc @@ -55,9 +54,18 @@ ln -s %{_bindir}/color-gcc $RPM_BUILD_ROOT/%{_bindir}/colorccache %{_bindir}/colorcc %{_bindir}/colorc++ %{_bindir}/colorccache + +%dir %{_libdir}/colorgcc +%{_libdir}/colorgcc/* + %doc README colorgccrc.sample %changelog +* Fri Dec 8 2017 Martin Cermak 1.4.5-1 +- Rebase to 1.4.5 per bz1402003 +- Provide convenience symlinks per bz1402003#c10 +- Update README + * Wed Jul 26 2017 Fedora Release Engineering - 1.3.2-17 - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild @@ -80,10 +88,10 @@ ln -s %{_bindir}/color-gcc $RPM_BUILD_ROOT/%{_bindir}/colorccache * Fri Apr 11 2014 Martin Cermak 1.3.2-11 - Allow using "color" prefix as well as "color-" prefix (bz1078180) -* Thu Jan 03 2014 Martin Cermak 1.3.2-10 +* Fri Jan 03 2014 Martin Cermak 1.3.2-10 - Updated README -* Thu Jan 03 2014 Martin Cermak 1.3.2-9 +* Fri Jan 03 2014 Martin Cermak 1.3.2-9 - Renamed and updated config sample * Thu Jan 02 2014 Martin Cermak 1.3.2-8 @@ -114,6 +122,6 @@ ln -s %{_bindir}/color-gcc $RPM_BUILD_ROOT/%{_bindir}/colorccache - Absolute paths pointing to compiler binaries removed - Resolves bz700833 -* Thu Apr 29 2011 Martin Cermak 1.3.2-1 +* Fri Apr 29 2011 Martin Cermak 1.3.2-1 - Packaged for Fedora diff --git a/colorgccrc.txt b/colorgccrc.txt deleted file mode 100644 index 5ec5949..0000000 --- a/colorgccrc.txt +++ /dev/null @@ -1,54 +0,0 @@ -# -# colorgcc configuration file -# -# $Id: colorgccrc,v 1.1.1.1 1999/04/25 15:24:03 jamoyers Exp $ -# -# This file should be named $HOME/.colorgccrc -# -# -# The following groups of attributes may be combined for a given color: -# -# clear black on_black -# reset red on_red -# bold green on_green -# underline yellow on_yellow -# underscore blue on_blue -# blink magenta on_magenta -# reverse cyan on_cyan -# concealed white on_white -# -# For example, srcColor: bold cyan on_yellow -# - -# Define the paths to the actual location of the various compilers. -# (Currently, colorgcc only understands these: g++ gcc c++ cc) -g++: /usr/bin/g++ -gcc: /usr/bin/gcc -c++: /usr/bin/c++ -cc: /usr/bin/cc - -# Don't do color if our terminal type ($TERM) is one of these. -# (List all terminal types on one line, seperated by whitespace.) -nocolor: dumb - -# Text between ` and ' is usually source code. -srcColor: bold cyan - -# Text other than a warning or error. -introColor: reset - -# Warnings and errors both have similar formats: -# filename:999:Message -# Each field may be assigned a different color. - -# Warnings -warningFileNameColor: reset -warningNumberColor: white -warningMessageColor: yellow - -# Errors -errorFileNameColor: reset -errorNumberColor: white -errorMessageColor: bold red - - diff --git a/readme-fedora.patch b/readme-fedora.patch new file mode 100644 index 0000000..65e9c6e --- /dev/null +++ b/readme-fedora.patch @@ -0,0 +1,31 @@ +diff --git a/README b/README +index 2f38386..b5b978f 100644 +--- a/README ++++ b/README +@@ -48,6 +48,26 @@ If colorgcc colorizes the output, the compiler's STDERR will be + combined with STDOUT. Otherwise, colorgcc just passes the output from + the compiler through without modification. + ++Fedora note: ++ ++Here is how to use colorgcc along with ccache on a Fedora system under ++a non-root user. Install both colorgcc and ccache. The ccache ++modifies user $PATH via it's /etc/profile.d/ccache* scripts. ++Now do the following: ++ ++ $ export PATH="/usr/lib/colorgcc:$PATH" ++ $ export CCACHE_PATH="/usr/bin" ++ ++Now add entries like the following to your ~/.colorgccrc file: ++ ++ g++: /usr/lib64/ccache/g++ ++ gcc: /usr/lib64/ccache/gcc ++ c++: /usr/lib64/ccache/g++ ++ cc: /usr/lib64/ccache/cc ++ ++You should be all set. ++ ++ + Author: Jamie Moyers + Started: April 20, 1999 + Licence: GNU Public License diff --git a/sampleconfig.patch b/sampleconfig.patch deleted file mode 100644 index 7263051..0000000 --- a/sampleconfig.patch +++ /dev/null @@ -1,24 +0,0 @@ -diff --git a/colorgccrc.sample b/colorgccrc.sample -index 5ec5949..8e87f98 100644 ---- a/colorgccrc.sample -+++ b/colorgccrc.sample -@@ -20,12 +20,14 @@ - # For example, srcColor: bold cyan on_yellow - # - --# Define the paths to the actual location of the various compilers. -+# Define the paths to the actual location of the various compilers. By default -+# colorgcc calls basenames (e.g. 'gcc') so that $PATH setting is important. - # (Currently, colorgcc only understands these: g++ gcc c++ cc) --g++: /usr/bin/g++ --gcc: /usr/bin/gcc --c++: /usr/bin/c++ --cc: /usr/bin/cc -+# -+# g++: /usr/bin/g++ -+# gcc: /usr/bin/gcc -+# c++: /usr/bin/c++ -+# cc: /usr/bin/cc - - # Don't do color if our terminal type ($TERM) is one of these. - # (List all terminal types on one line, seperated by whitespace.) diff --git a/sources b/sources index e69de29..392665b 100644 --- a/sources +++ b/sources @@ -0,0 +1 @@ +SHA512 (1.4.5.tar.gz) = 4125ada9b65b6387c2c259e2347236b3b18f7cdbf06ae0bb0212474a11354be6d463fbc4d239c2eb666c8246fc20277e06c8272fdee6dd4f60caa66164bcc1cf