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/904949c9026cb772dc93fbe0947a252ef47127f4.patch b/904949c9026cb772dc93fbe0947a252ef47127f4.patch new file mode 100644 index 0000000..8cf9234 --- /dev/null +++ b/904949c9026cb772dc93fbe0947a252ef47127f4.patch @@ -0,0 +1,42 @@ +From 904949c9026cb772dc93fbe0947a252ef47127f4 Mon Sep 17 00:00:00 2001 +From: Tom Tromey +Date: Wed, 10 Jun 2020 20:38:27 -0600 +Subject: Remove "throw" specifications + +C++ throw specifications were deprecated in C++11. +This patch removes them from the library. +--- + ChangeLog | 5 +++++ + lib/srchilite/fileutil.cc | 2 +- + lib/srchilite/fileutil.h | 2 +- + 3 files changed, 7 insertions(+), 2 deletions(-) + +diff --git a/lib/srchilite/fileutil.cc b/lib/srchilite/fileutil.cc +index 59a6d64..963178c 100644 +--- a/lib/srchilite/fileutil.cc ++++ b/lib/srchilite/fileutil.cc +@@ -48,7 +48,7 @@ void set_file_util_verbose(bool b) { + // FIXME avoid using a global variable + std::string start_path; + +-string readFile(const string &fileName) throw (IOException) { ++string readFile(const string &fileName) { + ifstream file(fileName.c_str()); + + if (!file.is_open()) { +diff --git a/lib/srchilite/fileutil.h b/lib/srchilite/fileutil.h +index 7335a9b..042eb56 100644 +--- a/lib/srchilite/fileutil.h ++++ b/lib/srchilite/fileutil.h +@@ -27,7 +27,7 @@ extern std::string start_path; + * @return the contents of the file + * @throw IOException + */ +-string readFile(const string &fileName) throw (IOException); ++string readFile(const string &fileName); + + //char *read_file(const string &fileName); + +-- +cgit v1.1 + diff --git a/gating.yaml b/gating.yaml new file mode 100644 index 0000000..ce3cdc1 --- /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: baseos-ci.brew-build.tier1.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..3fd3ab7 --- /dev/null +++ b/plans/ci.fmf @@ -0,0 +1,5 @@ +summary: CI Gating Plan +discover: + how: fmf +execute: + how: tmt diff --git a/source-highlight-bz2256374-lesspipe_sh.patch b/source-highlight-bz2256374-lesspipe_sh.patch new file mode 100644 index 0000000..b490cb2 --- /dev/null +++ b/source-highlight-bz2256374-lesspipe_sh.patch @@ -0,0 +1,39 @@ +commit 8be2bee7f6861fd27d5c181b15d3126fc7dbf73b +Author: Keith Seitz +Date: Sat Jan 20 09:25:05 2024 -0700 + + lesspipe may contain ".sh" extension + + On Fedora, the "lesspipe" script is actually called + "lesspipe.sh". This patch proposes to use "$(which NAME)" + to figure out the actual name of the script to use. + + If neither "lesspipe" nor "lesspipe.sh" exists in $PATH, + the patch simply uses "lesspipe", preserving the current behavior. + + It was based on the 3.1.9 release tarball, but should + apply cleanly to current git. + + This was reported as Fedora bugzilla 2256374. + +diff --git a/src/src-hilite-lesspipe.sh.in b/src/src-hilite-lesspipe.sh.in +index eb5c3ee..76231c7 100644 +--- a/src/src-hilite-lesspipe.sh.in ++++ b/src/src-hilite-lesspipe.sh.in +@@ -7,7 +7,15 @@ for source in "$@"; do + *Makefile|*makefile) + source-highlight --failsafe -f esc --lang-def=makefile.lang --style-file=esc.style -i "$source" ;; + *.tar|*.tgz|*.gz|*.bz2|*.xz) +- lesspipe "$source" ;; ++ # The "lesspipe" script may or may not have ".sh" extension. ++ lesspipe=$(which lesspipe 2>/dev/null) ++ if [ -z "$lesspipe" ]; then ++ lesspipe=$(which lesspipe.sh 2>/dev/null) ++ if [ -z "$lesspipe" ]; then ++ lesspipe="lesspipe" ++ fi ++ fi ++ $lesspipe "$source" ;; + *) source-highlight --failsafe --infer-lang -f esc --style-file=esc.style -i "$source" ;; + esac + done diff --git a/source-highlight.spec b/source-highlight.spec index 83c9d0d..5dc9e39 100644 --- a/source-highlight.spec +++ b/source-highlight.spec @@ -1,15 +1,23 @@ Summary: Produces a document with syntax highlighting Name: source-highlight Version: 3.1.9 -Release: 1%{?dist} -License: GPLv3+ +Release: 26%{?dist} +License: GPL-3.0-or-later AND GFDL-1.1-or-later AND LicenseRef-Fedora-Public-Domain AND GPL-2.0-only AND GPL-3.0-only AND GPL-3.0-or-later WITH Bison-exception-2.2 Source0: ftp://ftp.gnu.org/gnu/src-highlite/%{name}-%{version}.tar.gz Source1: ftp://ftp.gnu.org/gnu/src-highlite/%{name}-%{version}.tar.gz.sig URL: http://www.gnu.org/software/src-highlite/ +# Taken from https://git.savannah.gnu.org/cgit/src-highlite.git/patch/?id=904949c9026cb772dc93fbe0947a252ef47127f4 +# and slightly adapted +Patch0: 904949c9026cb772dc93fbe0947a252ef47127f4.patch +Patch1: source-highlight-bz2256374-lesspipe_sh.patch +BuildRequires: make BuildRequires: bison, flex, boost-devel -BuildRequires: help2man, ctags, chrpath, pkgconfig(bash-completion) +BuildRequires: help2man, chrpath, pkgconfig(bash-completion) BuildRequires: gcc, gcc-c++ +%if 0%{!?rhel:1} || 0%{?rhel} < 9 +BuildRequires: ctags Requires: ctags +%endif %description This program, given a source file, produces a document with syntax @@ -32,6 +40,10 @@ Development files for source-highlight %autosetup -p1 %build +export CXXFLAGS="-std=c++14 $RPM_OPT_FLAGS" +%if 0%{?rhel} > 8 +export CTAGS=do_not_use_ctags +%endif %configure --disable-static \ --with-boost-regex=boost_regex %make_build @@ -48,7 +60,11 @@ find $RPM_BUILD_ROOT -type f -name "*.a" -exec rm -f {} ';' chrpath --delete $RPM_BUILD_ROOT%{_bindir}/source-highlight chrpath --delete $RPM_BUILD_ROOT%{_bindir}/source-highlight-settings -echo -e "\ncxx = cpp.lang" >> $RPM_BUILD_ROOT%{_datadir}/source-highlight/lang.map +# Submitted and accepted upstream: +# https://savannah.gnu.org/bugs/index.php?63225 +# This can be removed upon next release after 3.1.9 +echo -e >> $RPM_BUILD_ROOT%{_datadir}/source-highlight/lang.map \ +"\nrpm-spec = spec.lang\n" bashcompdir=$(pkg-config --variable=completionsdir bash-completion) mkdir -p $RPM_BUILD_ROOT$bashcompdir @@ -79,6 +95,88 @@ rmdir $RPM_BUILD_ROOT%{_sysconfdir}/bash_completion.d %{_includedir}/srchilite/*.h %changelog +* Mon Jan 12 2026 Jonathan Wakely - 3.1.9-26 +- Rebuilt for Boost 1.90 + +* Fri Jul 25 2025 Fedora Release Engineering - 3.1.9-25 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + +* Sun Jan 19 2025 Fedora Release Engineering - 3.1.9-24 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + +* Sat Jul 20 2024 Fedora Release Engineering - 3.1.9-23 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Sat Jan 27 2024 Fedora Release Engineering - 3.1.9-22 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Mon Jan 22 2024 Keith Seitz - 3.1.9-21 +- Added upstream patch to fix BZ 2256374. + +* Wed Jan 17 2024 Jonathan Wakely - 3.1.9-20 +- Rebuilt for Boost 1.83 + +* Fri Aug 25 2023 Keith Seitz +- migrated to SPDX license + +* Sat Jul 22 2023 Fedora Release Engineering - 3.1.9-19 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Mon Feb 20 2023 Jonathan Wakely - 3.1.9-18 +- Rebuilt for Boost 1.81 + +* Sun Jan 29 2023 FeRD (Frank Dana) - 3.1.9-17 +- Stop adding 'cxx' language mapping (fixed upstream) +- Add 'rpm-spec' (used in asciidoc) mapping + +* Sat Jan 21 2023 Fedora Release Engineering - 3.1.9-16 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Thu Oct 06 2022 Adrian Reber - 3.1.9-15 +- Added upstream patch to fix #2131454 + +* Sat Jul 23 2022 Fedora Release Engineering - 3.1.9-14.1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Wed May 04 2022 Thomas Rodgers - 3.1.9-13.1 +- Rebuilt for Boost 1.78 + +* Sat Jan 22 2022 Fedora Release Engineering - 3.1.9-12.1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Wed Aug 11 2021 Stephen Gallagher - 3.1.9-11.1 +- Rebuild for Boost 1.76 in ELN + +* Fri Aug 06 2021 Jonathan Wakely - 3.1.9-11 +- Rebuilt for Boost 1.76 + +* Fri Jul 23 2021 Fedora Release Engineering - 3.1.9-10 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Tue Mar 30 2021 Jonathan Wakely - 3.1.9-9 +- Rebuilt for removed libstdc++ symbol (#1937698) + +* Wed Jan 27 2021 Fedora Release Engineering - 3.1.9-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Fri Jan 22 2021 Jonathan Wakely - 3.1.9-7 +- Rebuilt for Boost 1.75 + +* Wed Jan 6 2021 Keith Seitz - 3.1.9-6 +- Disable ctags support for RHEL9+. + +* Wed Jul 29 2020 Fedora Release Engineering - 3.1.9-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Tue Jul 28 2020 Jeff Law - 3.1.9-4 +- Force C++14 as this code is not C++17 ready + +* Thu May 28 2020 Jonathan Wakely - 3.1.9-3 +- Rebuilt for Boost 1.73 + +* Thu Jan 30 2020 Fedora Release Engineering - 3.1.9-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + * Sat Oct 12 2019 Orion Poplawski - 3.1.9-1 - Update to 3.1.9 diff --git a/tests/source-highlight-testsuite/Makefile b/tests/source-highlight-testsuite/Makefile new file mode 100644 index 0000000..252ffaa --- /dev/null +++ b/tests/source-highlight-testsuite/Makefile @@ -0,0 +1,63 @@ +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# Makefile of /tools/source-highlight/Sanity/source-highlight-testsuite +# Description: source-highlight testing by upstream testsuite +# Author: Michal Kolar +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# Copyright (c) 2021 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/source-highlight/Sanity/source-highlight-testsuite +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: Michal Kolar " > $(METADATA) + @echo "Name: $(TEST)" >> $(METADATA) + @echo "TestVersion: $(TESTVERSION)" >> $(METADATA) + @echo "Path: $(TEST_DIR)" >> $(METADATA) + @echo "Description: source-highlight testing by upstream testsuite" >> $(METADATA) + @echo "Type: Sanity" >> $(METADATA) + @echo "TestTime: 30m" >> $(METADATA) + @echo "RunFor: source-highlight" >> $(METADATA) + @echo "Requires: source-highlight rpm-build yum-utils gcc-c++" >> $(METADATA) + @echo "Priority: Normal" >> $(METADATA) + @echo "License: GPLv2+" >> $(METADATA) + @echo "Confidential: no" >> $(METADATA) + @echo "Destructive: no" >> $(METADATA) + @echo "Releases: -RHEL4 -RHELClient5 -RHELServer5 -RHEL6" >> $(METADATA) + + rhts-lint $(METADATA) diff --git a/tests/source-highlight-testsuite/PURPOSE b/tests/source-highlight-testsuite/PURPOSE new file mode 100644 index 0000000..27ef088 --- /dev/null +++ b/tests/source-highlight-testsuite/PURPOSE @@ -0,0 +1,3 @@ +PURPOSE of /tools/source-highlight/Sanity/source-highlight-testsuite +Description: source-highlight testing by upstream testsuite +Author: Michal Kolar diff --git a/tests/source-highlight-testsuite/main.fmf b/tests/source-highlight-testsuite/main.fmf new file mode 100644 index 0000000..850006d --- /dev/null +++ b/tests/source-highlight-testsuite/main.fmf @@ -0,0 +1,16 @@ +summary: source-highlight testing by upstream testsuite +description: '' +contact: +- Michal Kolar +component: +- source-highlight +test: ./runtest.sh +framework: beakerlib +recommend: +- source-highlight +- rpm-build +- yum-utils +- gcc-c++ +duration: 30m +extra-summary: /tools/source-highlight/Sanity/source-highlight-testsuite +extra-task: /tools/source-highlight/Sanity/source-highlight-testsuite diff --git a/tests/source-highlight-testsuite/runtest.sh b/tests/source-highlight-testsuite/runtest.sh new file mode 100755 index 0000000..877d4ee --- /dev/null +++ b/tests/source-highlight-testsuite/runtest.sh @@ -0,0 +1,82 @@ +#!/bin/bash +# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# runtest.sh of /tools/source-highlight/Sanity/source-highlight-testsuite +# Description: source-highlight testing by upstream testsuite +# Author: Michal Kolar +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# Copyright (c) 2021 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 + +BUILD_USER=${BUILD_USER:-srchghlghtbld} +TESTS_COUNT_MIN=${TESTS_COUNT_MIN:-100} +PACKAGE="source-highlight" +REQUIRES="$PACKAGE rpm-build gcc-c++" +if rlIsFedora; then + REQUIRES="$REQUIRES dnf-utils" +else + REQUIRES="$REQUIRES yum-utils" +fi + +rlJournalStart + rlPhaseStartSetup + rlShowRunningKernel + rlAssertRpm --all + rlRun "TmpDir=\$(mktemp -d)" + rlRun "pushd $TmpDir" + rlFetchSrcForInstalled $PACKAGE + rlRun "useradd -M -N $BUILD_USER" 0,9 + [ "$?" == "0" ] && rlRun "del=yes" + rlRun "chown -R $BUILD_USER:users $TmpDir" + rlPhaseEnd + + rlPhaseStartSetup "build source-highlight" + rlRun "rpm -D \"_topdir $TmpDir\" -U *.src.rpm" + rlRun "yum-builddep -y $TmpDir/SPECS/*.spec" + rlRun "su -c 'rpmbuild -D \"_topdir $TmpDir\" -bp --undefine specpartsdir $TmpDir/SPECS/*.spec &>$TmpDir/rpmbuild.log' $BUILD_USER" + rlRun "rlFileSubmit $TmpDir/rpmbuild.log" + rlRun "cd $TmpDir/BUILD/source-highlight-*" + rlRun "su -c './configure --build=`arch`-redhat-linux-gnu &>$TmpDir/configure.log' $BUILD_USER" + rlRun "rlFileSubmit $TmpDir/configure.log" + rlRun "cd tests" + rlPhaseEnd + + rlPhaseStartTest "run testsuite" + rlRun "su -c 'make -k PROGEXE=`which source-highlight` check &>$TmpDir/testsuite.log' $BUILD_USER" + rlRun "rlFileSubmit $TmpDir/testsuite.log" + rlPhaseEnd + + rlPhaseStartTest "evaluate results" + rlRun "cd $TmpDir" + rlRun "grep -E 'Makefile.+Error' testsuite.log" 1 + rlRun "tests_count=\$(grep -E '^`which source-highlight`' testsuite.log | wc -l)" + [ "$tests_count" -ge "$TESTS_COUNT_MIN" ] && rlLogInfo "Test counter: $tests_count" || rlFail "Test counter $tests_count should be greater than or equal to $TESTS_COUNT_MIN" + rlPhaseEnd + + rlPhaseStartCleanup + rlRun "popd" + rlRun "rm -r $TmpDir" + [ "$del" == "yes" ] && rlRun "userdel $BUILD_USER" + rlPhaseEnd +rlJournalPrintText +rlJournalEnd