diff --git a/.fmf/version b/.fmf/version new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/.fmf/version @@ -0,0 +1 @@ +1 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.spec b/colorgcc.spec new file mode 100644 index 0000000..eb39b62 --- /dev/null +++ b/colorgcc.spec @@ -0,0 +1,190 @@ +Summary: Script to colorize the compiler output +Name: colorgcc +Version: 1.4.5 +Release: 28%{?dist} +License: GPL-1.0-or-later +Url: http://schlueters.de/colorgcc.html +Source0: https://github.com/colorgcc/colorgcc/archive/%{version}.tar.gz +BuildArch: noarch +Patch0: colorgcc-invocation.patch +Patch1: readme-fedora.patch +BuildRequires: perl-generators +Requires: perl-interpreter + +%description +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 +mv ./colorgccrc.txt ./colorgccrc.sample +%patch -P0 -p1 +%patch -P1 -p1 + +%install +mkdir -p $RPM_BUILD_ROOT/%{_bindir} +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++ +ln -s %{_bindir}/color-gcc $RPM_BUILD_ROOT/%{_bindir}/color-ccache + +ln -s %{_bindir}/color-gcc $RPM_BUILD_ROOT/%{_bindir}/colorgcc +ln -s %{_bindir}/color-gcc $RPM_BUILD_ROOT/%{_bindir}/colorg++ +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 +%{_bindir}/color-gcc +%{_bindir}/color-g++ +%{_bindir}/color-cc +%{_bindir}/color-c++ +%{_bindir}/color-ccache + +%{_bindir}/colorgcc +%{_bindir}/colorg++ +%{_bindir}/colorcc +%{_bindir}/colorc++ +%{_bindir}/colorccache + +%dir %{_libdir}/colorgcc +%{_libdir}/colorgcc/* + +%doc README colorgccrc.sample + +%changelog +* Wed Jul 23 2025 Fedora Release Engineering - 1.4.5-28 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + +* Thu Jan 16 2025 Fedora Release Engineering - 1.4.5-27 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + +* Wed Jul 17 2024 Fedora Release Engineering - 1.4.5-26 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Mon Jun 17 2024 Miroslav Suchý - 1.4.5-25 +- convert license to SPDX + +* Sun Mar 10 2024 Martin Cermak - 1.4.5-24 +- NVR bump and rebuild for CI gating changes + +* Wed Jan 24 2024 Fedora Release Engineering - 1.4.5-23 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Fri Jan 19 2024 Fedora Release Engineering - 1.4.5-22 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Wed Jul 19 2023 Fedora Release Engineering - 1.4.5-21 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Wed Mar 29 2023 Martin Cermak - 1.4.5-20 +- NVR bump and rebuild for CI gating changes + +* Thu Jan 19 2023 Fedora Release Engineering - 1.4.5-18 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Wed Jul 20 2022 Fedora Release Engineering - 1.4.5-17 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Wed Jan 19 2022 Fedora Release Engineering - 1.4.5-16 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Wed Jul 21 2021 Fedora Release Engineering - 1.4.5-15 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Tue Jan 26 2021 Fedora Release Engineering - 1.4.5-14 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Wed Nov 26 2020 Martin Cermak 1.4.5-13 +- NVR bump and rebuild for CI gating changes + +* Mon Jul 27 2020 Fedora Release Engineering - 1.4.5-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Tue Jan 28 2020 Fedora Release Engineering - 1.4.5-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Wed Jul 24 2019 Fedora Release Engineering - 1.4.5-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Thu Jan 31 2019 Fedora Release Engineering - 1.4.5-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Thu Jul 12 2018 Fedora Release Engineering - 1.4.5-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Wed Feb 07 2018 Fedora Release Engineering - 1.4.5-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Fri Dec 8 2017 Martin Cermak 1.4.5-3 +- Provide convenience symlinks per bz1402003#c10 +- Update README + +* Wed Dec 6 2017 Martin Cermak 1.4.5-1 +- Rebase to 1.4.5 per bz1402003 + +* Wed Jul 26 2017 Fedora Release Engineering - 1.3.2-17 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Thu Jul 13 2017 Petr Pisar - 1.3.2-16 +- perl dependency renamed to perl-interpreter + + +* Fri Feb 10 2017 Fedora Release Engineering - 1.3.2-15 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Wed Feb 03 2016 Fedora Release Engineering - 1.3.2-14 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Wed Jun 17 2015 Fedora Release Engineering - 1.3.2-13 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Sat Jun 07 2014 Fedora Release Engineering - 1.3.2-12 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Fri Apr 11 2014 Martin Cermak 1.3.2-11 +- Allow using "color" prefix as well as "color-" prefix (bz1078180) + +* Fri Jan 03 2014 Martin Cermak 1.3.2-10 +- Updated README + +* 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 +- Added README and sample config file + +* Sat Aug 03 2013 Fedora Release Engineering - 1.3.2-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + +* Wed Jul 17 2013 Petr Pisar - 1.3.2-6 +- Perl 5.18 rebuild + +* Wed Feb 13 2013 Fedora Release Engineering - 1.3.2-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + +* Wed Jul 18 2012 Fedora Release Engineering - 1.3.2-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Thu Jan 12 2012 Fedora Release Engineering - 1.3.2-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Wed May 4 2011 Martin Cermak 1.3.2-2 +- Full URL for Source0 used +- License tag updated +- BuildRoot tag dropped +- Cleaned up the prep phase code +- Summary updated +- Compilers in the description updated and sorted alphabetically +- Absolute paths pointing to compiler binaries removed +- Resolves bz700833 + +* Fri Apr 29 2011 Martin Cermak 1.3.2-1 +- Packaged for Fedora + diff --git a/gating.yaml b/gating.yaml new file mode 100644 index 0000000..8b52293 --- /dev/null +++ b/gating.yaml @@ -0,0 +1,19 @@ +--- !Policy +product_versions: + - fedora-* +decision_context: bodhi_update_push_stable +subject_type: koji_build +rules: + - !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.tier0.functional} +--- !Policy +product_versions: + - rhel-8 +decision_context: osci_compose_gate +rules: + - !PassingTestCaseRule {test_case_name: osci.brew-build.tier0.functional} +--- !Policy +product_versions: + - rhel-9 +decision_context: osci_compose_gate +rules: + - !PassingTestCaseRule {test_case_name: baseos-ci.brew-build.tier1.functional} diff --git a/plans/ci.fmf b/plans/ci.fmf new file mode 100644 index 0000000..1ad2c12 --- /dev/null +++ b/plans/ci.fmf @@ -0,0 +1,6 @@ +summary: CI Gating Plan +discover: + how: fmf + directory: tests +execute: + how: beakerlib 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/sources b/sources index e69de29..392665b 100644 --- a/sources +++ b/sources @@ -0,0 +1 @@ +SHA512 (1.4.5.tar.gz) = 4125ada9b65b6387c2c259e2347236b3b18f7cdbf06ae0bb0212474a11354be6d463fbc4d239c2eb666c8246fc20277e06c8272fdee6dd4f60caa66164bcc1cf diff --git a/tests/Sanity/smoke/Makefile b/tests/Sanity/smoke/Makefile new file mode 100644 index 0000000..8cf4641 --- /dev/null +++ b/tests/Sanity/smoke/Makefile @@ -0,0 +1,63 @@ +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# Makefile of /tools/colorgcc/Sanity/basic +# Description: basic smoke test +# Author: Martin Cermak +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# Copyright (c) 2020 Red Hat, Inc. +# +# This program is free software: you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation, either version 2 of +# the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be +# useful, but WITHOUT ANY WARRANTY; without even the implied +# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +# PURPOSE. See the GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see http://www.gnu.org/licenses/. +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +export TEST=/tools/colorgcc/Sanity/basic +export TESTVERSION=1.0 + +BUILT_FILES= + +FILES=$(METADATA) runtest.sh Makefile PURPOSE + +.PHONY: all install download clean + +run: $(FILES) build + ./runtest.sh + +build: $(BUILT_FILES) + test -x runtest.sh || chmod a+x runtest.sh + +clean: + rm -f *~ $(BUILT_FILES) + + +include /usr/share/rhts/lib/rhts-make.include + +$(METADATA): Makefile + @echo "Owner: Martin Cermak " > $(METADATA) + @echo "Name: $(TEST)" >> $(METADATA) + @echo "TestVersion: $(TESTVERSION)" >> $(METADATA) + @echo "Path: $(TEST_DIR)" >> $(METADATA) + @echo "Description: basic smoke test" >> $(METADATA) + @echo "Type: Sanity" >> $(METADATA) + @echo "TestTime: 48h" >> $(METADATA) + @echo "RunFor: colorgcc" >> $(METADATA) + @echo "Requires: colorgcc gcc" >> $(METADATA) + @echo "Priority: Normal" >> $(METADATA) + @echo "License: GPLv2+" >> $(METADATA) + @echo "Confidential: no" >> $(METADATA) + @echo "Destructive: no" >> $(METADATA) + @echo "Releases: -RHEL4 -RHELClient5 -RHELServer5 -RHEL6 -RHEL7" >> $(METADATA) + + rhts-lint $(METADATA) diff --git a/tests/Sanity/smoke/PURPOSE b/tests/Sanity/smoke/PURPOSE new file mode 100644 index 0000000..bf19f89 --- /dev/null +++ b/tests/Sanity/smoke/PURPOSE @@ -0,0 +1,3 @@ +PURPOSE of /tools/colorgcc/Sanity/basic +Description: basic smoke test +Author: Martin Cermak diff --git a/tests/Sanity/smoke/main.fmf b/tests/Sanity/smoke/main.fmf new file mode 100644 index 0000000..0c5aa8b --- /dev/null +++ b/tests/Sanity/smoke/main.fmf @@ -0,0 +1,14 @@ +summary: basic smoke test +description: '' +contact: +- Martin Cermak +component: +- colorgcc +test: ./runtest.sh +framework: beakerlib +recommend: +- colorgcc +- gcc +duration: 48h +extra-summary: /tools/colorgcc/Sanity/basic +extra-task: /tools/colorgcc/Sanity/basic diff --git a/tests/Sanity/smoke/runtest.sh b/tests/Sanity/smoke/runtest.sh new file mode 100755 index 0000000..708bfe8 --- /dev/null +++ b/tests/Sanity/smoke/runtest.sh @@ -0,0 +1,43 @@ +#!/bin/bash +# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# runtest.sh of /tools/colorgcc/Sanity/basic +# Description: basic smoke test +# Author: Martin Cermak +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# Copyright (c) 2020 Red Hat, Inc. +# +# This program is free software: you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation, either version 2 of +# the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be +# useful, but WITHOUT ANY WARRANTY; without even the implied +# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +# PURPOSE. See the GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see http://www.gnu.org/licenses/. +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +# Include Beaker environment +. /usr/share/beakerlib/beakerlib.sh || exit 1 + +PACKAGE="colorgcc" + +rlJournalStart + rlPhaseStartSetup + rlAssertRpm $PACKAGE + rlPhaseEnd + + rlPhaseStartTest + rlRun "echo -e 'int main() {\nreturn 0;\n}' | color-gcc -xc -o /dev/null -" + rlRun "echo -e 'int main() {\nreturn 0\n}' | color-gcc -xc -o /dev/null - |& fgrep ':2:9: error'" + rlPhaseEnd +rlJournalPrintText +rlJournalEnd