From 3e079db4e6bcb27e2b3f6656147fcb0b3efc5715 Mon Sep 17 00:00:00 2001 From: YellowJacketLinux Date: Tue, 22 Oct 2024 11:09:00 -0700 Subject: [PATCH] docbook/valgrind --- README.md | 7 +- SPECS/docbook-xml.spec | 167 +++++++++++++++++++++++++++++++++++++++++ SPECS/valgrind.spec | 114 ++++++++++++++++++++++++++++ 3 files changed, 285 insertions(+), 3 deletions(-) create mode 100644 SPECS/docbook-xml.spec create mode 100644 SPECS/valgrind.spec diff --git a/README.md b/README.md index 5749019..d80374c 100644 --- a/README.md +++ b/README.md @@ -140,12 +140,13 @@ Intermission Bootstrapping [`git`](SPECS/git.spec). Fortunately the spec files I had written for my LFS 11.3 RPM system needed very little modification. * Secondly, I decided it would be good to package [`gdb`](gdb.spec) and - `valgrind` now, so that package test suites that do more - extensive testing when those packages are available can do that testing. + [`valgrind`](SPECS/valgrind.spec) now, so that package test suites that do + more extensive testing when those packages are available can do that testing. * Thirdly, I need to come up with a so-called ‘best practices’ for RPM spec files that I can use to audit my spec files. -Currently I am working on getting `gdb` and `valgrind` packaged. +Currently the first two are done, working on the third (in LaTeX, and not (yet) +in a public git) Then I can go through the LFS book Chapter 8 in order, even rebuilding the packages I already built so they have the benefit of gdb/valgrind in the test diff --git a/SPECS/docbook-xml.spec b/SPECS/docbook-xml.spec new file mode 100644 index 0000000..6ce47b5 --- /dev/null +++ b/SPECS/docbook-xml.spec @@ -0,0 +1,167 @@ +## FIXME - as it, it works, but I think it needs +# a postun (or preun?) scriplet that uses +# xmlcatalog --del rather than owning the +# catalog files, and a few other things, to be +# a robust package that plays well with others. + +%if 0%{?!__xmlcatalog:1} == 1 +%global __xmlcatalog %{_bindir}/xmlcatalog +%endif + +Name: docbook-xml +Version: 4.5 +Release: %{?repo}0.rc1%{?dist} +Summary: General purpose XML and SGML document type +BuildArch: noarch + +Group: Applications/Publishing +License: Unspecified +URL: https://docbook.org/ +Source0: https://www.docbook.org/xml/4.5/docbook-xml-4.5.zip + +Requires(post): %{__xmlcatalog} + +%description +DocBook is a schema (available in several languages including RELAX NG, SGML and +XML DTDs, and W3C XML Schema) maintained by the DocBook Technical Committee of +OASIS. It is particularly well suited to books and papers about computer +hardware and software (though it is by no means limited to these applications). + +Because it is a large and robust schema, and because its main structures +correspond to the general notion of what constitutes a "book," DocBook has been +adopted by a large and growing community of authors writing books of all kinds. +DocBook is supported "out of the box" by a number of commercial tools, and there +is rapidly expanding support for it in a number of free software environments. +These features have combined to make DocBook a generally easy to understand, +widely useful, and very popular schema. Dozens of organizations are using +DocBook for millions of pages of documentation, in various print and online +formats, worldwide. + + +%prep +%setup -c + + +%build + + +%install +install -d -m755 %{buildroot}%{_datadir}/xml/docbook/xml-dtd-4.5 +install -d -m755 %{buildroot}%{_sysconfdir}/xml +touch %{buildroot}%{_sysconfdir}/xml/docbook +touch %{buildroot}%{_sysconfdir}/xml/catalog +cp -af docbook.cat *.dtd ent/ *.mod \ + %{buildroot}%{_datadir}/xml/docbook/xml-dtd-4.5 + + +%post +if [ ! -e %{_sysconfdir}/xml/docbook ]; then + %{__xmlcatalog} --noout --create %{_sysconfdir}/xml/docbook ||: +fi +%{__xmlcatalog} --noout --add "public" \ + "-//OASIS//DTD DocBook XML V4.5//EN" \ + "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" \ + %{_sysconfdir}/xml/docbook ||: +%{__xmlcatalog} --noout --add "public" \ + "-//OASIS//DTD DocBook XML CALS Table Model V4.5//EN" \ + "file://%{_datadir}/xml/docbook/xml-dtd-4.5/calstblx.dtd" \ + %{_sysconfdir}/xml/docbook ||: +%{__xmlcatalog} --noout --add "public" \ + "-//OASIS//DTD XML Exchange Table Model 19990315//EN" \ + "file://%{_datadir}/xml/docbook/xml-dtd-4.5/soextblx.dtd" \ + %{_sysconfdir}/xml/docbook ||: +%{__xmlcatalog} --noout --add "public" \ + "-//OASIS//ELEMENTS DocBook XML Information Pool V4.5//EN" \ + "file://%{_datadir}/xml/docbook/xml-dtd-4.5/dbpoolx.mod" \ + %{_sysconfdir}/xml/docbook ||: +%{__xmlcatalog} --noout --add "public" \ + "-//OASIS//ELEMENTS DocBook XML Document Hierarchy V4.5//EN" \ + "file://%{_datadir}/xml/docbook/xml-dtd-4.5/dbhierx.mod" \ + %{_sysconfdir}/xml/docbook ||: +%{__xmlcatalog} --noout --add "public" \ + "-//OASIS//ELEMENTS DocBook XML HTML Tables V4.5//EN" \ + "file://%{_datadir}/xml/docbook/xml-dtd-4.5/htmltblx.mod" \ + %{_sysconfdir}/xml/docbook ||: +%{__xmlcatalog} --noout --add "public" \ + "-//OASIS//ENTITIES DocBook XML Notations V4.5//EN" \ + "file://%{_datadir}/xml/docbook/xml-dtd-4.5/dbnotnx.mod" \ + %{_sysconfdir}/xml/docbook ||: +%{__xmlcatalog} --noout --add "public" \ + "-//OASIS//ENTITIES DocBook XML Character Entities V4.5//EN" \ + "file://%{_datadir}/xml/docbook/xml-dtd-4.5/dbcentx.mod" \ + %{_sysconfdir}/xml/docbook ||: +%{__xmlcatalog} --noout --add "public" \ + "-//OASIS//ENTITIES DocBook XML Additional General Entities V4.5//EN" \ + "file://%{_datadir}/xml/docbook/xml-dtd-4.5/dbgenent.mod" \ + %{_sysconfdir}/xml/docbook ||: +%{__xmlcatalog} --noout --add "rewriteSystem" \ + "http://www.oasis-open.org/docbook/xml/4.5" \ + "file://%{_datadir}/xml/docbook/xml-dtd-4.5" \ + %{_sysconfdir}/xml/docbook ||: +%{__xmlcatalog} --noout --add "rewriteURI" \ + "http://www.oasis-open.org/docbook/xml/4.5" \ + "file://%{_datadir}/xml/docbook/xml-dtd-4.5" \ + %{_sysconfdir}/xml/docbook ||: +if [ ! -e %{_sysconfdir}/xml/catalog ]; then + %{__xmlcatalog} --noout --create %{_sysconfdir}/xml/catalog ||: +fi +%{__xmlcatalog} --noout --add "delegatePublic" \ + "-//OASIS//ENTITIES DocBook XML" \ + "file://%{_sysconfdir}/xml/docbook" \ + %{_sysconfdir}/xml/catalog ||: +%{__xmlcatalog} --noout --add "delegatePublic" \ + "-//OASIS//DTD DocBook XML" \ + "file://%{_sysconfdir}/xml/docbook" \ + %{_sysconfdir}/xml/catalog ||: +%{__xmlcatalog} --noout --add "delegateSystem" \ + "http://www.oasis-open.org/docbook/" \ + "file://%{_sysconfdir}/xml/docbook" \ + %{_sysconfdir}/xml/catalog ||: +%{__xmlcatalog} --noout --add "delegateURI" \ + "http://www.oasis-open.org/docbook/" \ + "file://%{_sysconfdir}/xml/docbook" \ + %{_sysconfdir}/xml/catalog ||: +for DTDVERSION in 4.1.2 4.2 4.3 4.4; do + %{__xmlcatalog} --noout --add "public" \ + "-//OASIS//DTD DocBook XML V$DTDVERSION//EN" \ + "http://www.oasis-open.org/docbook/xml/$DTDVERSION/docbookx.dtd" \ + %{_sysconfdir}/xml/docbook ||: + %{__xmlcatalog} --noout --add "rewriteSystem" \ + "http://www.oasis-open.org/docbook/xml/$DTDVERSION" \ + "file://%{_datadir}/xml/docbook/xml-dtd-4.5" \ + %{_sysconfdir}/xml/docbook ||: + %{__xmlcatalog} --noout --add "rewriteURI" \ + "http://www.oasis-open.org/docbook/xml/$DTDVERSION" \ + "file://%{_datadir}/xml/docbook/xml-dtd-4.5" \ + %{_sysconfdir}/xml/docbook ||: + %{__xmlcatalog} --noout --add "delegateSystem" \ + "http://www.oasis-open.org/docbook/xml/$DTDVERSION/" \ + "file://%{_sysconfdir}/xml/docbook" \ + %{_sysconfdir}/xml/catalog ||: + %{__xmlcatalog} --noout --add "delegateURI" \ + "http://www.oasis-open.org/docbook/xml/$DTDVERSION/" \ + "file://%{_sysconfdir}/xml/docbook" \ + %{_sysconfdir}/xml/catalog ||: +done + +%files +%defattr(-,root,root,-) +%dir %{_sysconfdir}/xml +%ghost %{_sysconfdir}/xml/docbook +%ghost %{_sysconfdir}/xml/catalog +%dir %{_datadir}/xml +%dir %{_datadir}/xml/docbook +%dir %{_datadir}/xml/docbook/xml-dtd-%{version} +%attr(0644,root,root) %{_datadir}/xml/docbook/xml-dtd-%{version}/*.cat +%attr(0644,root,root) %{_datadir}/xml/docbook/xml-dtd-%{version}/*.dtd +%attr(0644,root,root) %{_datadir}/xml/docbook/xml-dtd-%{version}/*.mod +%dir %{_datadir}/xml/docbook/xml-dtd-%{version}/ent +%attr(0644,root,root) %{_datadir}/xml/docbook/xml-dtd-%{version}/ent/README +%attr(0644,root,root) %{_datadir}/xml/docbook/xml-dtd-%{version}/ent/*.ent +%doc README + + + +%changelog +* Tue Oct 22 2024 Michael A. Peters - 4.5-0.rc1 +- Initial RPM spec file for YJL 6.6 (LFS 12.2) diff --git a/SPECS/valgrind.spec b/SPECS/valgrind.spec new file mode 100644 index 0000000..5008751 --- /dev/null +++ b/SPECS/valgrind.spec @@ -0,0 +1,114 @@ +# SEE README_DEVELOPERS +%global debug_package %{nil} +%global __strip /bin/true + +%if 0%{?!__which:1} == 1 +%global __which %{_bindir}/which +%endif +%if 0%{?!__sed:1} == 1 +%global __sed %{_bindir}/sed +%endif + +Name: valgrind +Version: 3.23.0 +Release: %{?repo}0.rc1%{?dist} +Summary: Framework for building dynamic analysis tools + +Group: Development/Utilities +License: GPLv2 GFDL1.2 +URL: https://valgrind.org/ +Source0: https://sourceware.org/pub/valgrind/valgrind-3.23.0.tar.bz2 + +BuildRequires: %{__sed} +%if 0%{?runtests:1} == 1 +BuildRequires: docbook-xml +BuildRequires: gdb +BuildRequires: %{__which} +%endif +#Requires: + +%description +Valgrind is an instrumentation framework for building dynamic analysis tools. +There are Valgrind tools that can automatically detect many memory management +and threading bugs, and profile your programs in detail. You can also use +Valgrind to build new tools. + +The Valgrind distribution currently includes seven production-quality tools: a +memory error detector, two thread error detectors, a cache and branch-prediction +profiler, a call-graph generating cache and branch-prediction profiler, and two +different heap profilers. It also includes an experimental SimPoint basic block +vector generator. + +%prep +%setup -q +sed -i 's|/doc/valgrind||' docs/Makefile.in +# note to self, above works but is dirty + +%build +./configure --prefix=%{_prefix} --datadir=%{_datadir}/doc/%{name}-%{version} +make %{?_smp_mflags} + + +%install +make install DESTDIR=%{buildroot} + + +%check +%if 0%{?runtests:1} == 1 +make regtest > %{name}-make.regtest.log 2>&1 ||: +%else +echo "make regtest not during package build" > %{name}-make.regtest.log +%endif + +%files +%defattr(-,root,root,-) +%attr(0755,root,root) %{_bindir}/callgrind_annotate +%attr(0755,root,root) %{_bindir}/callgrind_control +%attr(0755,root,root) %{_bindir}/cg_annotate +%attr(0755,root,root) %{_bindir}/cg_diff +%attr(0755,root,root) %{_bindir}/cg_merge +%attr(0755,root,root) %{_bindir}/ms_print +%attr(0755,root,root) %{_bindir}/valgrind +%attr(0755,root,root) %{_bindir}/valgrind-di-server +%attr(0755,root,root) %{_bindir}/valgrind-listener +%attr(0755,root,root) %{_bindir}/vgdb +%dir %{_includedir}/valgrind +%attr(0644,root,root) %{_includedir}/valgrind/*.h +%dir %{_includedir}/valgrind/vki +%attr(0644,root,root) %{_includedir}/valgrind/vki/*.h +%dir %{_libdir}/valgrind +%attr(0644,root,root) %{_libdir}/valgrind/*.a +%attr(0644,root,root) %{_prefix}/lib/pkgconfig/valgrind.pc +%dir %{_libexecdir}/valgrind +%attr(0644,root,root) %{_libexecdir}/valgrind/*.xml +%attr(0644,root,root) %{_libexecdir}/valgrind/*.so +%attr(0644,root,root) %{_libexecdir}/valgrind/*.py +%attr(0644,root,root) %{_libexecdir}/valgrind/default.supp +%attr(0644,root,root) %{_libexecdir}/valgrind/dh_view.* +%attr(0755,root,root) %{_libexecdir}/valgrind/cachegrind-amd64-linux +%attr(0755,root,root) %{_libexecdir}/valgrind/callgrind-amd64-linux +%attr(0755,root,root) %{_libexecdir}/valgrind/dhat-amd64-linux +%attr(0755,root,root) %{_libexecdir}/valgrind/drd-amd64-linux +%attr(0755,root,root) %{_libexecdir}/valgrind/exp-bbv-amd64-linux +%attr(0755,root,root) %{_libexecdir}/valgrind/getoff-amd64-linux +%attr(0755,root,root) %{_libexecdir}/valgrind/helgrind-amd64-linux +%attr(0755,root,root) %{_libexecdir}/valgrind/lackey-amd64-linux +%attr(0755,root,root) %{_libexecdir}/valgrind/massif-amd64-linux +%attr(0755,root,root) %{_libexecdir}/valgrind/memcheck-amd64-linux +%attr(0755,root,root) %{_libexecdir}/valgrind/none-amd64-linux +%dir %{_datadir}/doc/%{name}-%{version}/html +%attr(0644,root,root) %{_datadir}/doc/%{name}-%{version}/html/*.html +%attr(0644,root,root) %{_datadir}/doc/%{name}-%{version}/html/*.css +%dir %{_datadir}/doc/%{name}-%{version}/html/images +%attr(0644,root,root) %{_datadir}/doc/%{name}-%{version}/html/images/*.png +%attr(0644,root,root) %{_datadir}/doc/%{name}-%{version}/valgrind_manual.* +%attr(0644,root,root) %{_mandir}/man1/*.1* +%license COPYING COPYING.DOCS +%doc %{name}-make.regtest.log +%doc AUTHORS COPYING COPYING.DOCS NEWS README README_PACKAGERS + + + +%changelog +* Tue Oct 22 2024 Michael A. Peters - 3.23.0-0.rc1 +- Initial RPM spec file for YJL 6.6 (LFS 12.2)