diff --git a/README.md b/README.md new file mode 100644 index 0000000..bfc4d05 --- /dev/null +++ b/README.md @@ -0,0 +1,7 @@ +# gap-pkg-scscp + +[This package](https://gap-packages.github.io/scscp/) implements the Symbolic +Computation Software Composability Protocol (SCSCP) for the +[GAP](https://www.gap-system.org/) system in accordance with the +[SCSCP specification](https://openmath.org/standard/scscp/) and OpenMath +dictionaries scscp1 and scscp2. diff --git a/changelog b/changelog new file mode 100644 index 0000000..1c297e8 --- /dev/null +++ b/changelog @@ -0,0 +1,99 @@ +* Wed Jan 24 2024 Fedora Release Engineering - 2.4.1-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Fri Jan 19 2024 Fedora Release Engineering - 2.4.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Wed Jul 19 2023 Fedora Release Engineering - 2.4.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Sun Feb 26 2023 Jerry James - 2.4.1-1 +- Version 2.4.1 + +* Thu Jan 19 2023 Fedora Release Engineering - 2.4.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Thu Jan 12 2023 Jerry James - 2.4.0-2 +- Update for split GAP directories + +* Sun Dec 11 2022 Jerry James - 2.4.0-1 +- Version 2.4.0 + +* Thu Nov 10 2022 Jerry James - 2.3.1-8 +- Clarify license of the doc subpackage + +* Tue Sep 27 2022 Jerry James - 2.3.1-8 +- Update for gap 4.12.0 +- Convert License tag to SPDX +- Use systemd-sysusers to create the daemon user + +* Thu Jul 21 2022 Fedora Release Engineering - 2.3.1-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Thu Jan 20 2022 Fedora Release Engineering - 2.3.1-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Wed Jul 21 2021 Fedora Release Engineering - 2.3.1-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Tue Jan 26 2021 Fedora Release Engineering - 2.3.1-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Mon Jul 27 2020 Fedora Release Engineering - 2.3.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Tue Jan 28 2020 Fedora Release Engineering - 2.3.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Wed Jan 22 2020 Jerry James - 2.3.1-1 +- Version 2.3.1 +- Depend on logrotate instead of owning its config directory + +* Thu Jul 25 2019 Fedora Release Engineering - 2.3.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Tue Jun 25 2019 Jerry James - 2.3.0-1 +- New upstream version +- Drop upstreamed -ref patch +- Add -makedoc patch to fix documentation building +- Fix creation of the daemon home dir + +* Fri Mar 8 2019 Tim Landscheidt - 2.2.3-6 +- Remove obsolete requirement for %%postun scriptlet + +* Sat Feb 2 2019 Jerry James - 2.2.3-5 +- Rebuild for gap 4.10.0 +- Add -ref patch +- Add -doc subpackage + +* Thu Jan 31 2019 Fedora Release Engineering - 2.2.3-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Fri Jul 13 2018 Fedora Release Engineering - 2.2.3-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Wed Feb 07 2018 Fedora Release Engineering - 2.2.3-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Tue Sep 26 2017 Jerry James - 2.2.3-1 +- New upstream version + +* Wed Jul 26 2017 Fedora Release Engineering - 2.2.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Sat Apr 1 2017 Jerry James - 2.2.2-1 +- New upstream version +- New URLs + +* Fri Feb 10 2017 Fedora Release Engineering - 2.1.4-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Wed Jul 20 2016 Jerry James - 2.1.4-3 +- Own the logrotate directory +- Do not delete the user in postun + +* Thu May 26 2016 Jerry James - 2.1.4-2 +- Improved service integration + +* Fri Apr 22 2016 Jerry James - 2.1.4-1 +- Initial RPM diff --git a/gap-pkg-scscp-makedoc.patch b/gap-pkg-scscp-makedoc.patch index 0bd2792..257e736 100644 --- a/gap-pkg-scscp-makedoc.patch +++ b/gap-pkg-scscp-makedoc.patch @@ -1,5 +1,5 @@ ---- makedoc.g.orig 2019-05-19 14:48:52.000000000 -0600 -+++ makedoc.g 2019-06-25 13:46:16.209738296 -0600 +--- makedoc.g.orig 2022-12-10 08:28:31.000000000 -0700 ++++ makedoc.g 2022-12-11 09:27:37.593145344 -0700 @@ -6,7 +6,7 @@ ########################################################################### @@ -19,4 +19,4 @@ + if pos2 <> fail then pos := pos2; fi; comment := location{[ pos+3 .. Length(location) ]}; fi; - AppendTo(output, "# ", comment, ":", a[2][2], "-", a[2][3], a[1]); + AppendTo(output, "# ", comment, ":", a[2][2], "-", a[2][3], "\n", StripBeginEnd(a[1], "\n"), "\n\n"); diff --git a/gap-pkg-scscp.rpmlintrc b/gap-pkg-scscp.rpmlintrc deleted file mode 100644 index f872ac1..0000000 --- a/gap-pkg-scscp.rpmlintrc +++ /dev/null @@ -1,8 +0,0 @@ -# THIS FILE IS FOR WHITELISTING RPMLINT ERRORS AND WARNINGS IN TASKOTRON -# https://fedoraproject.org/wiki/Taskotron/Tasks/dist.rpmlint#Whitelisting_errors - -# The documentation package has no binary bits -addFilter(r'gap-pkg-scscp-doc\.noarch: W: only-non-binary-in-usr-lib') - -# The documentation subpackage is the documentation -addFilter(r'gap-pkg-scscp-doc\.noarch: W: no-documentation') diff --git a/gap-pkg-scscp.spec b/gap-pkg-scscp.spec index 06bcdae..5657ca9 100644 --- a/gap-pkg-scscp.spec +++ b/gap-pkg-scscp.spec @@ -1,25 +1,33 @@ -%global pkgname scscp -%global PKGNAME SCSCP -%global usrname gapd +%global gap_pkgname scscp +%global gap_upname SCSCP +%global usrname gapd +%global giturl https://github.com/gap-packages/scscp -Name: gap-pkg-%{pkgname} -Version: 2.3.1 -Release: 3%{?dist} +Name: gap-pkg-%{gap_pkgname} +Version: 2.4.4 +Release: %autorelease Summary: Symbolic Computation Software Composability Protocol in GAP -License: GPLv2+ +License: GPL-2.0-or-later URL: https://gap-packages.github.io/scscp/ -BuildArch: noarch -Source0: https://github.com/gap-packages/%{pkgname}/releases/download/v%{version}/%{PKGNAME}-%{version}.tar.gz +VCS: git:%{giturl}.git +Source0: %{giturl}/releases/download/v%{version}/%{gap_upname}-%{version}.tar.gz Source1: %{usrname}.sh Source2: gap-scscp.service Source3: %{usrname}.logrotate Source4: %{usrname}.conf Source5: %{usrname}.h2m Source6: server.g +Source7: %{name}.sysusers # Fix a typo in makedoc.g. -Patch0: %{name}-makedoc.patch +Patch: %{name}-makedoc.patch + +BuildArch: noarch +BuildSystem: gap +BuildOption(build): --packagedirs .. +BuildOption(install): *.sh demo example lib par tracing tst +BuildOption(check): tst/testall.g BuildRequires: gap-devel BuildRequires: GAPDoc-latex @@ -27,20 +35,26 @@ BuildRequires: gap-pkg-io-doc BuildRequires: gap-pkg-openmath-doc BuildRequires: gap-pkg-smallgrp-doc BuildRequires: help2man -BuildRequires: systemd +BuildRequires: systemd-rpm-macros %{?systemd_requires} -Requires(pre): shadow-utils +Requires: gap-pkg-io Requires: gap-pkg-openmath Requires: logrotate %description This package implements the Symbolic Computation Software Composability Protocol (SCSCP) for the GAP system in accordance with the SCSCP -specification, described at http://www.symbolic-computing.org/scscp, and -OpenMath dictionaries scscp1 and scscp2. +specification, described at https://openmath.org/standard/scscp/, and OpenMath +dictionaries scscp1 and scscp2. %package doc +# The content is GPL-2.0-or-later. The remaining licenses cover the various +# fonts embedded in PDFs. +# CM: Knuth-CTAN +# CM-Super: GPL-1.0-or-later +# Nimbus: AGPL-3.0-only +License: GPL-2.0-or-later AND Knuth-CTAN AND GPL-1.0-or-later AND AGPL-3.0-only Summary: SCSCP documentation Requires: %{name} = %{version}-%{release} Requires: gap-pkg-io-doc @@ -48,34 +62,24 @@ Requires: gap-pkg-openmath-doc Requires: gap-pkg-smallgrp-doc %description doc -This package contains documentation for gap-pkg-%{pkgname}. +This package contains documentation for gap-pkg-%{gap_pkgname}. %prep -%autosetup -p0 -n %{PKGNAME}-%{version} +%autosetup -p0 -n %{gap_upname}-%{version} -%build -# Link to main GAP documentation -ln -s %{_gap_dir}/doc ../../doc -mkdir ../pkg -ln -s ../%{PKGNAME}-%{version} ../pkg/%{PKGNAME} -ln -s %{_gap_dir}/pkg/io-* ../pkg -ln -s %{_gap_dir}/pkg/OpenMath-* ../pkg -ln -s %{_gap_dir}/pkg/SmallGrp-* ../pkg -gap -l "$PWD/..;%{_gap_dir}" makedoc.g -rm -fr ../../doc ../pkg - -%install -mkdir -p %{buildroot}%{_gap_dir}/pkg -cp -a ../%{PKGNAME}-%{version} %{buildroot}%{_gap_dir}/pkg/%{PKGNAME} -rm -f %{buildroot}%{_gap_dir}/pkg/%{PKGNAME}/{COPYING,README.md,todo.txt} -rm -f %{buildroot}%{_gap_dir}/pkg/%{PKGNAME}/doc/*.{aux,bbl,blg,brf,idx,ilg,ind,log,out,pnr,tex} +%install -a +cp -a doc/img %{buildroot}%{gap_libdir}/pkg/%{gap_upname}/doc # Replace upstream's launcher script with our own. -install -p -m 0755 %{SOURCE1} %{buildroot}%{_gap_dir}/pkg/%{PKGNAME} +install -p -m 0755 %{SOURCE1} %{buildroot}%{gap_libdir}/pkg/%{gap_upname} # Make the daemon's home directory mkdir -p %{buildroot}%{_sharedstatedir}/%{usrname} +# Install the sysusers file +mkdir -p %{buildroot}%{_sysusersdir} +cp -p %{SOURCE7} %{buildroot}%{_sysusersdir}/%{usrname}.conf + # Install the systemd unit mkdir -p %{buildroot}%{_unitdir} install -p -m 0644 -p %{SOURCE2} %{buildroot}%{_unitdir} @@ -90,40 +94,31 @@ install -p -m 0644 %{SOURCE4} %{buildroot}%{_sysconfdir} # Install the man page mkdir -p %{buildroot}%{_mandir}/man8 -help2man -m "GAP SCSCP package" -S "GAP SCSCP (Fedora %{version}-%{release})" \ - -n "GAP Daemon" -I %{SOURCE5} -o %{buildroot}%{_mandir}/man8/%{usrname}.8 \ +help2man -m 'GAP SCSCP package' -S 'GAP SCSCP (Fedora %{version}-%{release})' \ + -n 'GAP Daemon' -I %{SOURCE5} -o %{buildroot}%{_mandir}/man8/%{usrname}.8 \ -N -s 8 %{SOURCE1} # Move the config files to their new home mkdir -p %{buildroot}%{_sysconfdir}/scscp/gap install -p -m 0644 %{SOURCE6} %{buildroot}%{_sysconfdir}/scscp/gap -mv %{buildroot}%{_gap_dir}/pkg/%{PKGNAME}/config.g \ - %{buildroot}%{_gap_dir}/pkg/%{PKGNAME}/configpar.g \ +mv %{buildroot}%{gap_libdir}/pkg/%{gap_upname}/config.g \ + %{buildroot}%{gap_libdir}/pkg/%{gap_upname}/configpar.g \ %{buildroot}%{_sysconfdir}/scscp/gap - -# Tell the package where to look for its configuration -sed -e 's,ReadPackage("scscp/\(config\.g\)"),Read("/etc/scscp/gap/\1"),' \ - -e 's,ReadPackage("scscp/\(configpar\.g\)"),Read("/etc/scscp/gap/\1"),' \ - -i %{buildroot}%{_gap_dir}/pkg/%{PKGNAME}/init.g -touch -r init.g %{buildroot}%{_gap_dir}/pkg/%{PKGNAME}/init.g +ln -s %{_sysconfdir}/scscp/gap/config.g %{buildroot}%{gap_libdir}/pkg/%{gap_upname} +ln -s %{_sysconfdir}/scscp/gap/configpar.g %{buildroot}%{gap_libdir}/pkg/%{gap_upname} %check # We only run the offline test as the others require network access and two # servers to be setup and running. -mkdir ../pkg -ln -s ../%{PKGNAME}-%{version} ../pkg/%{PKGNAME} -pushd tst -gap -l "$PWD/../..;%{_gap_dir}" << EOF +cd tst +gap --packagedirs ../.. << EOF LoadPackage("scscp"); GAP_EXIT_CODE(Test("offline.tst", rec(compareFunction := "uptowhitespace") )); EOF -popd -rm -fr ../pkg +cd - %pre -getent passwd %{usrname} >/dev/null || \ - useradd -c "GAP SCSCP server daemon" -d %{_sharedstatedir}/%{usrname} \ - -r -s /sbin/nologin -U %{usrname} || : +%sysusers_create_package %{usrname} %{SOURCE7} %preun %systemd_preun gap-scscp.service @@ -131,17 +126,18 @@ getent passwd %{usrname} >/dev/null || \ %post %systemd_post gap-scscp.service -%posttrans -chown %{usrname}:%{usrname} %{_sharedstatedir}/%{usrname} - %files %doc README.md todo.txt %license COPYING -%{_gap_dir}/pkg/%{PKGNAME}/ -%exclude %{_gap_dir}/pkg/%{PKGNAME}/demo/ -%exclude %{_gap_dir}/pkg/%{PKGNAME}/doc/ -%exclude %{_gap_dir}/pkg/%{PKGNAME}/example/ +%dir %{gap_libdir}/pkg/%{gap_upname}/ +%{gap_libdir}/pkg/%{gap_upname}/*.g +%{gap_libdir}/pkg/%{gap_upname}/*.sh +%{gap_libdir}/pkg/%{gap_upname}/lib/ +%{gap_libdir}/pkg/%{gap_upname}/par/ +%{gap_libdir}/pkg/%{gap_upname}/tracing/ +%{gap_libdir}/pkg/%{gap_upname}/tst/ %{_mandir}/man8/%{usrname}.8* +%{_sysusersdir}/%{usrname}.conf %{_unitdir}/gap-scscp.service %dir %{_sysconfdir}/scscp/ %dir %{_sysconfdir}/scscp/gap/ @@ -153,69 +149,12 @@ chown %{usrname}:%{usrname} %{_sharedstatedir}/%{usrname} %attr(755,%{usrname},%{usrname}) %{_sharedstatedir}/%{usrname}/ %files doc -%docdir %{_gap_dir}/pkg/%{PKGNAME}/demo/ -%docdir %{_gap_dir}/pkg/%{PKGNAME}/doc/ -%docdir %{_gap_dir}/pkg/%{PKGNAME}/example/ -%{_gap_dir}/pkg/%{PKGNAME}/demo/ -%{_gap_dir}/pkg/%{PKGNAME}/doc/ -%{_gap_dir}/pkg/%{PKGNAME}/example/ +%docdir %{gap_libdir}/pkg/%{gap_upname}/demo/ +%docdir %{gap_libdir}/pkg/%{gap_upname}/doc/ +%docdir %{gap_libdir}/pkg/%{gap_upname}/example/ +%{gap_libdir}/pkg/%{gap_upname}/demo/ +%{gap_libdir}/pkg/%{gap_upname}/doc/ +%{gap_libdir}/pkg/%{gap_upname}/example/ %changelog -* Mon Jul 27 2020 Fedora Release Engineering - 2.3.1-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild - -* Tue Jan 28 2020 Fedora Release Engineering - 2.3.1-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild - -* Wed Jan 22 2020 Jerry James - 2.3.1-1 -- Version 2.3.1 -- Depend on logrotate instead of owning its config directory - -* Thu Jul 25 2019 Fedora Release Engineering - 2.3.0-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild - -* Tue Jun 25 2019 Jerry James - 2.3.0-1 -- New upstream version -- Drop upstreamed -ref patch -- Add -makedoc patch to fix documentation building -- Fix creation of the daemon home dir - -* Fri Mar 8 2019 Tim Landscheidt - 2.2.3-6 -- Remove obsolete requirement for %%postun scriptlet - -* Sat Feb 2 2019 Jerry James - 2.2.3-5 -- Rebuild for gap 4.10.0 -- Add -ref patch -- Add -doc subpackage - -* Thu Jan 31 2019 Fedora Release Engineering - 2.2.3-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild - -* Fri Jul 13 2018 Fedora Release Engineering - 2.2.3-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild - -* Wed Feb 07 2018 Fedora Release Engineering - 2.2.3-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild - -* Tue Sep 26 2017 Jerry James - 2.2.3-1 -- New upstream version - -* Wed Jul 26 2017 Fedora Release Engineering - 2.2.2-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild - -* Sat Apr 1 2017 Jerry James - 2.2.2-1 -- New upstream version -- New URLs - -* Fri Feb 10 2017 Fedora Release Engineering - 2.1.4-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild - -* Wed Jul 20 2016 Jerry James - 2.1.4-3 -- Own the logrotate directory -- Do not delete the user in postun - -* Thu May 26 2016 Jerry James - 2.1.4-2 -- Improved service integration - -* Fri Apr 22 2016 Jerry James - 2.1.4-1 -- Initial RPM +%autochangelog diff --git a/gap-pkg-scscp.sysusers b/gap-pkg-scscp.sysusers new file mode 100644 index 0000000..6972630 --- /dev/null +++ b/gap-pkg-scscp.sysusers @@ -0,0 +1,2 @@ +#Type Name ID GECOS Home directory Shell +u gapd - "GAP SCSCP server daemon" /var/lib/gapd /sbin/nologin diff --git a/sources b/sources index 50d2028..5b1d4d5 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (SCSCP-2.3.1.tar.gz) = 94193341de0ae2f33a32bb96406d7954ca84f58c9e7bca1e141e8072df217d9a4eaf5f507abcf3abf41bb44fe2e7162575e325f0779642493af4b4ad6e898ebb +SHA512 (SCSCP-2.4.4.tar.gz) = 694d6f5e1e6b23748359e085dac4ca819a542f2a083cacd18473407f6e90403bd9c66da83699ac62748ae70afc18ff74ca166a02133dbe679332efdd45ad1dae