From 65f590561de2831e5356ca1387ef0f1c74d23580 Mon Sep 17 00:00:00 2001 From: Toshaan Bharvani Date: Mon, 13 Jan 2025 16:17:36 +0100 Subject: [PATCH] initial package creation Signed-off-by: Toshaan Bharvani --- SOURCES/configure.patch | 23 ++++ SPECS/ffcall.spec | 269 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 292 insertions(+) create mode 100644 SOURCES/configure.patch create mode 100644 SPECS/ffcall.spec diff --git a/SOURCES/configure.patch b/SOURCES/configure.patch new file mode 100644 index 0000000..68f3700 --- /dev/null +++ b/SOURCES/configure.patch @@ -0,0 +1,23 @@ +diff -Nrup a/configure b/configure +--- a/configure 2021-06-06 12:39:23.000000000 -0600 ++++ b/configure 2021-06-11 11:36:25.646094447 -0600 +@@ -20843,7 +20843,7 @@ fi + + mprotect_prog="$mprotect_prog"' + char* area = (char*) malloc(6*pagesize); +- char* fault_address = area + pagesize*7/2; ++ volatile char* fault_address = area + pagesize*7/2; + ' + if test -z "$no_mprotect"; then + if test "$cross_compiling" = yes +@@ -21675,8 +21675,8 @@ else $as_nop + { + unsigned int pagesize = getpagesize (); + int fd; +- char *pw; +- char *px; ++ volatile char *pw; ++ volatile char *px; + fd = open ("$filename", O_CREAT | O_RDWR | O_TRUNC, 0700); + if (fd < 0) + return 1; diff --git a/SPECS/ffcall.spec b/SPECS/ffcall.spec new file mode 100644 index 0000000..fb67db4 --- /dev/null +++ b/SPECS/ffcall.spec @@ -0,0 +1,269 @@ +## START: Set by rpmautospec +## (rpmautospec version 0.7.1) +## RPMAUTOSPEC: autorelease, autochangelog +%define autorelease(e:s:pb:n) %{?-p:0.}%{lua: + release_number = 1; + base_release_number = tonumber(rpm.expand("%{?-b*}%{!?-b:1}")); + print(release_number + base_release_number - 1); +}%{?-e:.%{-e*}}%{?-s:.%{-s*}}%{!?-n:%{?dist}} +## END: Set by rpmautospec + +Name: ffcall +Version: 2.5 +Release: %autorelease +Summary: Libraries for foreign function call interfaces + +License: GPL-2.0-or-later +URL: https://www.gnu.org/software/libffcall/ +VCS: git:https://git.savannah.gnu.org/git/libffcall.git +Source: https://ftp.gnu.org/gnu/libffcall/lib%{name}-%{version}.tar.gz +Patch: configure.patch + +BuildRequires: gcc +BuildRequires: gnulib-devel +BuildRequires: make + +%description +This is a collection of four libraries which can be used to build +foreign function call interfaces in embedded interpreters. The four +packages are: + - avcall: calling C functions with variable arguments + - vacall: C functions accepting variable argument prototypes + - trampoline: closures as first-class C functions + - callback: closures with variable arguments as first-class C functions + (a reentrant combination of vacall and trampoline) + +%package devel +Summary: Files needed to develop programs with %{name} +# The project as a whole is GPL-2.0-or-later. +# The man pages and HTML documentation are GPL-2.0-or-later OR +# GFDL-1.2-no-invariants-or-later. +License: GPL-2.0-or-later AND (GPL-2.0-or-later OR GFDL-1.2-no-invariants-or-later) +Requires: %{name}%{?_isa} = %{version}-%{release} + +%description devel +Files needed to develop programs with %{name}. + +%package static +Summary: Static libraries for foreign function call interfaces +Requires: %{name}-devel%{?_isa} = %{version}-%{release} + +%description static +Static libraries for foreign function call interfaces. + +%prep +%autosetup -n lib%{name}-%{version} -p1 + +%build +%configure + +# Build the actual library +make # %{?_smp_mflags} + +%install +mkdir -p $RPM_BUILD_ROOT%{_libdir} +mkdir -p $RPM_BUILD_ROOT%{_mandir} +%make_install +rm -fr $RPM_BUILD_ROOT%{_datadir}/html +rm -f $RPM_BUILD_ROOT%{_libdir}/*.la + +# Fix permissions +chmod a+x $RPM_BUILD_ROOT%{_libdir}/lib*.so.* + +# Fix man pages with overly generic names (bz 800360) +pushd $RPM_BUILD_ROOT%{_mandir}/man3 +for page in *; do + mv $page %{name}-$page +done +popd + +%files +%license COPYING +%doc README NEWS +%{_libdir}/libavcall.so.1* +%{_libdir}/libcallback.so.1* +%{_libdir}/libffcall.so.0* +%{_libdir}/libtrampoline.so.1* + +%files devel +%doc avcall/avcall.html +%doc callback/callback.html +%doc callback/trampoline_r/trampoline_r.html +%doc trampoline/trampoline.html +%doc vacall/vacall.html +%{_includedir}/avcall.h +%{_includedir}/callback.h +%{_includedir}/ffcall*.h +%{_includedir}/trampoline.h +%{_includedir}/vacall*.h +%{_libdir}/libavcall.so +%{_libdir}/libcallback.so +%{_libdir}/libffcall.so +%{_libdir}/libtrampoline.so +%{_mandir}/man3/ffcall* + +%files static +%{_libdir}/*.a + +%changelog +## START: Generated by rpmautospec +* Tue Sep 03 2024 Jerry James - 2.5-1 +- Version 2.5 +- Correct devel package license +- Stop shipping useless RPM macro file + +* Wed Jul 17 2024 Fedora Release Engineering - 2.4-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Wed Jan 24 2024 Fedora Release Engineering - 2.4-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Fri Jan 19 2024 Fedora Release Engineering - 2.4-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Wed Jul 19 2023 Fedora Release Engineering - 2.4-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Thu Jan 19 2023 Fedora Release Engineering - 2.4-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Tue Aug 16 2022 Jerry James - 2.4-4 +- Convert License tags to SPDX + +* Thu Jul 21 2022 Fedora Release Engineering - 2.4-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Thu Jan 20 2022 Fedora Release Engineering - 2.4-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Wed Jul 21 2021 Fedora Release Engineering - 2.4-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Thu Jun 17 2021 Jerry James - 2.4-1 +- Version 2.4 + +* Tue Jan 26 2021 Fedora Release Engineering - 2.2-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Mon Jul 27 2020 Fedora Release Engineering - 2.2-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Tue Jan 28 2020 Fedora Release Engineering - 2.2-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Fri Jan 17 2020 Jeff Law - 2.2-2 +- Fix autoconf generated configure tests that are compromised + by LTO. + +* Mon Aug 26 2019 Jerry James - 2.2-1 +- New upstream release + +* Thu Jul 25 2019 Fedora Release Engineering - 2.1-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Thu Jan 31 2019 Fedora Release Engineering - 2.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Fri Jul 13 2018 Fedora Release Engineering - 2.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Mon Feb 19 2018 Jerry James - 2.1-1 +- New upstream release +- Drop ExclusiveArch; all Fedora arches supported + +* Wed Feb 07 2018 Fedora Release Engineering - 2.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Tue Sep 12 2017 Jerry James - 2.0-1 +- New upstream release +- Make -devel and -static subpackages + +* Wed Aug 02 2017 Fedora Release Engineering - 1.13-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Wed Jul 26 2017 Fedora Release Engineering - 1.13-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Mon Jul 3 2017 Jerry James - 1.13-3 +- Update to the final 1.13 release +- Drop patches and workarounds for problems fixed upstream + +* Fri Feb 24 2017 Jerry James - 1.13-2 +- Fix missing symbols in the i386 build + +* Fri Feb 24 2017 Jerry James - 1.13-1 +- New upstream release + +* Fri Feb 10 2017 Fedora Release Engineering - 1.12-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Wed Feb 03 2016 Fedora Release Engineering - 1.12-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Tue Sep 29 2015 Jerry James - 1.12-1 +- New upstream release + +* Wed Jun 17 2015 Fedora Release Engineering - 1.10-18.20120424cvs +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Fri Feb 13 2015 Jerry James - 1.10-17.20120424cvs +- Use license macro + +* Sat Aug 16 2014 Fedora Release Engineering - 1.10-16.20120424cvs +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Sat Jun 07 2014 Fedora Release Engineering - 1.10-15.20120424cvs +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Mon Feb 3 2014 Jerry James - 1.10-14.20120424cvs +- Update location of rpm macro file for rpm >= 4.11 + +* Fri Sep 6 2013 Jerry James - 1.10-13.20120424cvs +- Update -arm patch to really use the EABI and hopefully fix clisp + +* Wed Sep 4 2013 Jerry James - 1.10-12.20120424cvs +- Add -arm patch to fix clisp build failure + +* Sat Aug 03 2013 Fedora Release Engineering - 1.10-11.20120424cvs +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + +* Wed Mar 27 2013 Jerry James - 1.10-10.20120424cvs +- Update to CVS 20120424 +- List all architectures supported by this package (bz 925335) +- Rename man pages to avoid conflicts (bz 800360) +- Add Provides: ffcall-static + +* Wed Feb 13 2013 Fedora Release Engineering - 1.10-9.20100903cvs +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + +* Thu Jul 19 2012 Fedora Release Engineering - 1.10-8.20100903cvs +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Tue Jan 10 2012 Jerry James - 1.10-7.20100903cvs +- Clean out prebuilt object files +- Add trampoline patch to force use of mmap() to get executable memory + +* Mon Jan 9 2012 Jerry James - 1.10-6.20100903cvs +- Update to CVS 20100903 +- Minor spec file cleanups + +* Tue Feb 08 2011 Fedora Release Engineering - 1.10-5.20080704cvs.1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Fri Jul 24 2009 Fedora Release Engineering - 1.10-4.20080704cvs.1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild + +* Tue Feb 24 2009 Fedora Release Engineering - 1.10-3.20080704cvs.1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild + +* Wed Dec 10 2008 Jochen Schmitt - 1.10-2.20080704cvs.1 +- Fix -FPIC issue (BZ #475112) + +* Fri Jul 4 2008 Gerard Milmeister - 1.10-2.20080704cvs +- update to cvs 20080704 +- support for ppc64 + +* Mon Feb 25 2008 Gerard Milmeister - 1.10-1 +- first Fedora release + +## END: Generated by rpmautospec