Compare commits

...
Sign in to create a new pull request.

59 commits

Author SHA1 Message Date
DJ Delorie
45b9541de4 Update to libffi-3.5.2 2025-09-05 16:01:59 -04:00
Jesus Checa Hidalgo
0cba045b21 Update testsuite test to run with latest upstream
The test runs the upstream testsuite but with the installed libraries.
This is done patching the test harness to pick libffi from system's
libdir instead the ones from the build directory.

Changes in upstream commit 40a7682 break the way we patch the testsuite
and this change fixes our script to work as it did before.

Additionally, several checks on expected library directories were
improved.

This commit also fixes several shellcheck warnings.
2025-08-21 17:26:23 +02:00
Jesus Checa Hidalgo
9915d8c0eb Migrate STI to TMT
fixes: rhbz#2382942
2025-08-12 11:21:05 +02:00
Fedora Release Engineering
47999d7394 Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild 2025-07-24 19:38:43 +00:00
DJ Delorie
6a2317105a Update to libffi-3.5.1 2025-06-13 16:13:35 -04:00
DJ Delorie
fbf3b77c41 Update to libffi-3.4.8 2025-05-08 14:46:47 -04:00
Florian Weimer
136a084f89 Remove misleading comment about static trampolines
The --disable-static switch is about static libraries.  The real
flag for trampolines is --disable-exec-static-tramp.
2025-04-04 16:07:19 +02:00
Andrea Bolognani
336b1a6022 Fix riscv64 build
Thanks: David Abdurachmanov <davidlt@rivosinc.com>
Thanks: Richard W.M. Jones <rjones@redhat.com>
Signed-off-by: Andrea Bolognani <abologna@redhat.com>
2025-04-04 15:26:48 +02:00
DJ Delorie
3b93042570 Update support for PPC64 static trampolines
Updates for previous patch:
Updated patch
Regenerated configure
2025-03-30 01:26:42 -04:00
DJ Delorie
bbfe6044bc Add support for PPC64 static trampolines
Note: this is not an upstream patch; this is a test of a patch
attached to BZ 2313598
2025-03-06 18:54:19 -05:00
DJ Delorie
62132c1260 Update to libffi-3.4.7
Reviewed-by: Carlos O'Donell <carlos@redhat.com>
2025-03-03 21:41:04 -05:00
DJ Delorie
1782ee5d69 Fix FTBFS for C23 (#2340729)
Backports 0859f8431242d5adff21420b9cab538d2af527b5 from upstream
2025-01-22 20:34:05 -05:00
Fedora Release Engineering
ddf7b4cbe3 Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild 2025-01-17 11:12:51 +00:00
Michal Kolar
9c9f6a4b92 update tests/testsuite
Add main.fmf to meet new tmt testing workflow requirements.

  Update runtest.sh to curent version to fix the CI failures.

  Adapt runtest.sh to the new behavior under Fedora due to rpmbuild started
  using specpartsdir and extra <nvr>-build directory in build path.
2024-12-05 14:28:37 +00:00
Jesus Checa Hidalgo
b1fac7a4b7 Replace testsuite patches with sed expressions (bz#2307027)
Using sed expressions instead patches is more portable and is
how we are testing this downstream.
2024-10-07 13:18:18 +02:00
Jesus Checa Hidalgo
95f8efdc74 Fix testsuite failure in rawhide gating (bz#2307027)
Due to recent changes in rpm 4.20, the rpmbuild build dir is no longer
where the test script expected it, causing the said failures.
2024-10-07 11:47:31 +02:00
Carlos O'Donell
fa2107f4e0 Fix AArch64 BTI enablement issues (#2305877)
Resolves: #2305877
2024-08-21 08:17:07 -04:00
Fedora Release Engineering
6e5f455b1a Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild 2024-07-18 13:51:01 +00:00
DJ Delorie
f5f2a00867 Update to libffi-3.4.6 2024-03-18 21:49:11 -04:00
Carlos O'Donell
44990d68e6 Analyze libffi-3.4.4-7.fc40 sources for license information
- Migrate License field to SPDX identifiers for
  https://docs.fedoraproject.org/en-US/legal/allowed-licenses/
  https://docs.fedoraproject.org/en-US/legal/update-existing-packages

Resolves: #2222084
2024-02-29 17:12:24 -05:00
Fedora Release Engineering
42d1ff7394 Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild 2024-01-25 02:08:17 +00:00
Fedora Release Engineering
c6d6ad650b Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild 2024-01-21 04:04:30 +00:00
Florian Weimer
18bec18c13 Update changelog 2024-01-02 18:00:03 +01:00
Yaakov Selkowitz
a7063fb8f9 Fix implicit declaration of function 'open_temp_exec_file'
https://fedoraproject.org/wiki/Changes/PortingToModernC
https://github.com/libffi/libffi/pull/764
2023-12-21 23:19:34 -05:00
Fedora Release Engineering
586a259cea Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-07-20 10:50:49 +00:00
DJ Delorie
6d176a7c52 Enable static trampolines
Resolves: #2216763
2023-07-05 15:47:57 -04:00
Fedora Release Engineering
4c5c11f73d Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-01-19 16:19:18 +00:00
DJ Delorie
09778f4c43 Update to libffi-3.4.4 2022-11-09 18:14:52 -05:00
Fedora Release Engineering
94901f4732 Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2022-07-21 17:47:45 +00:00
Dan Horák
53030a5c0c bump release 2022-01-31 14:26:32 +01:00
Dan Horák
acfefabea4 Fix handling Float128 structs on ppc64le (#2045797) 2022-01-31 09:42:05 +00:00
Fedora Release Engineering
53606fd875 - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2022-01-20 16:12:26 +00:00
Miro Hrončok
5df3302f45 Rebuilt for https://fedoraproject.org/wiki/Changes/LIBFFI34 2022-01-08 10:26:48 +01:00
Carlos O'Donell
87574daa5c Rebuilt for https://fedoraproject.org/wiki/Changes/LIBFFI34 2021-09-15 17:26:30 -04:00
Carlos O'Donell
69db68caf1 Harmonize spec file layout with downstream. 2021-09-15 09:01:45 -04:00
Carlos O'Donell
91a1b2a09e Enable building. 2021-08-11 00:55:38 -04:00
Carlos O'Donell
ed0518c208 Rebuild package and bump NEVRA. 2021-08-11 00:32:55 -04:00
Carlos O'Donell
382d13fd9f Prevent libffi 3.4 rebuild until after mass rebuild. 2021-07-22 11:00:44 -04:00
Fedora Release Engineering
b50252019d - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2021-07-22 11:22:06 +00:00
Carlos O'Donell
18f0dfb3dd Fix %changelog typo. 2021-07-14 11:52:33 -04:00
Carlos O'Donell
4bc39b5505 Update to libff-3.4.2. 2021-06-28 22:11:50 -04:00
Fedora Release Engineering
16342320c7 - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2021-01-26 17:03:33 +00:00
Tom Stellard
94a646ef38 Add BuildRequires: make
https://fedoraproject.org/wiki/Changes/Remove_make_from_BuildRoot
2021-01-06 19:04:38 +00:00
Carlos O'Donell
7b37dc1150 Use make macros 2020-12-02 13:53:37 -05:00
Fedora Release Engineering
fdac85aeb0 - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2020-07-28 04:38:28 +00:00
DJ Delorie
2c1dc799ce Add $LIBFFI_TMPDIR environment variable support (#1667620) 2020-04-30 23:01:25 -04:00
Fedora Release Engineering
e39a9572c0 - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2020-01-29 09:07:01 +00:00
Fedora Release Engineering
4fbfbe53fe - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2019-07-25 13:15:15 +00:00
Florian Weimer
c040208fe2 Run test suite during build (#1727088) 2019-07-09 18:44:17 +02:00
Anthony Green
e4104c0a47 Fix license tag in spec file 2019-06-19 18:38:05 -04:00
Björn Esser
34c093380d
Remove hardcoded gzip suffix from GNU info pages 2019-04-24 14:56:34 +02:00
Fedora Release Engineering
4f59ea6259 - Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2019-02-01 07:07:30 +00:00
Igor Gnatenko
159547d754
Remove obsolete scriptlets
References: https://fedoraproject.org/wiki/Changes/RemoveObsoleteScriptlets
Signed-off-by: Igor Gnatenko <ignatenkobrain@fedoraproject.org>
2019-01-27 19:05:15 +01:00
Peter Robinson
7c8473e637 Fix FTBFS 2018-07-22 15:36:16 +01:00
Fedora Release Engineering
a67ea03359 - Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2018-07-13 08:05:43 +00:00
Anthony Green
c2ca464069 Merge #1 Add CI tests using the standard test interface 2018-05-10 13:02:13 +00:00
Fedora Release Engineering
5df41d320b - Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2018-02-07 21:37:13 +00:00
Sergey Turivniy
15e20ba802 Add CI tests using the standard test interface 2018-02-05 16:24:23 +00:00
Igor Gnatenko
654c7efd26
Switch to %ldconfig_scriptlets
Signed-off-by: Igor Gnatenko <ignatenkobrain@fedoraproject.org>
2018-02-03 18:34:22 +01:00
13 changed files with 404 additions and 117 deletions

1
.fmf/version Normal file
View file

@ -0,0 +1 @@
1

7
.gitignore vendored
View file

@ -3,3 +3,10 @@ libffi-3.0.9.tar.gz
/libffi-3.0.11.tar.gz
/libffi-3.0.13.tar.gz
/libffi-3.1.tar.gz
/libffi-3.4.2.tar.gz
/libffi-3.4.4.tar.gz
/libffi-3.4.6.tar.gz
/libffi-3.4.7.tar.gz
/libffi-3.4.8.tar.gz
/libffi-3.5.1.tar.gz
/libffi-3.5.2.tar.gz

View file

@ -1,11 +0,0 @@
--- a/src/aarch64/sysv.S
+++ b/src/aarch64/sysv.S
@@ -396,3 +396,8 @@
#ifdef __ELF__
.size CNAME(ffi_closure_SYSV), .-CNAME(ffi_closure_SYSV)
#endif
+
+#if defined __ELF__ && defined __linux__
+ .section .note.GNU-stack,"",%progbits
+#endif
+

View file

@ -1,31 +0,0 @@
From 978c9540154d320525488db1b7049277122f736d Mon Sep 17 00:00:00 2001
From: Samuli Suominen <ssuominen@gentoo.org>
Date: Sat, 31 May 2014 08:53:10 -0400
Subject: [PATCH] Add missing GNU stack markings in win32.S
---
src/x86/win32.S | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/src/x86/win32.S b/src/x86/win32.S
index daf0e79..e42baf2 100644
--- a/src/x86/win32.S
+++ b/src/x86/win32.S
@@ -1,5 +1,6 @@
/* -----------------------------------------------------------------------
- win32.S - Copyright (c) 1996, 1998, 2001, 2002, 2009 Red Hat, Inc.
+ win32.S - Copyright (c) 2014 Anthony Green
+ Copyright (c) 1996, 1998, 2001, 2002, 2009 Red Hat, Inc.
Copyright (c) 2001 John Beniton
Copyright (c) 2002 Ranjit Mathew
Copyright (c) 2009 Daniel Witte
@@ -1304,3 +1305,6 @@ L_ffi_closure_SYSV_inner$stub:
#endif /* !_MSC_VER */
+#if defined __ELF__ && defined __linux__
+ .section .note.GNU-stack,"",@progbits
+#endif
--
1.9.3

View file

@ -1,17 +0,0 @@
diff -up libffi-3.1/libffi.pc.in.fixpath libffi-3.1/libffi.pc.in
--- libffi-3.1/libffi.pc.in.fixpath 2014-04-25 19:45:13.000000000 +0200
+++ libffi-3.1/libffi.pc.in 2014-06-12 12:06:06.000000000 +0200
@@ -1,11 +1,10 @@
prefix=@prefix@
exec_prefix=@exec_prefix@
libdir=@libdir@
-toolexeclibdir=@toolexeclibdir@
-includedir=${libdir}/@PACKAGE_NAME@-@PACKAGE_VERSION@/include
+includedir=@includedir@
Name: @PACKAGE_NAME@
Description: Library supporting Foreign Function Interfaces
Version: @PACKAGE_VERSION@
-Libs: -L${toolexeclibdir} -lffi
+Libs: -L${libdir} -lffi
Cflags: -I${includedir}

View file

@ -1,11 +0,0 @@
--- libffi-3.1/src/aarch64/ffi.c.orig 2014-04-25 18:45:13.000000000 +0100
+++ libffi-3.1/src/aarch64/ffi.c 2015-01-15 02:36:56.314906455 +0000
@@ -728,7 +728,7 @@
state.ngrn = N_X_ARG_REG;
memcpy (allocate_to_stack (&state, stack, ty->alignment,
- ty->size), ecif->avalue + i, ty->size);
+ ty->size), ecif->avalue[i], ty->size);
}
break;

View file

@ -1,20 +1,56 @@
%global multilib_arches %{ix86} ppc ppc64 ppc64p7 s390 s390x x86_64
%bcond_with bootstrap
%global multilib_arches %{ix86} x86_64
Name: libffi
Version: 3.1
Release: 14%{?dist}
Version: 3.5.2
Release: 1%{?dist}
Summary: A portable foreign function interface library
Group: System Environment/Libraries
License: BSD
# No license change for 3.5.2
# No license change for 3.5.1
# No license change for 3.4.8
# No license change for 3.4.7
# No license change for 3.4.6
# The following SPDX licenses are extracted from the sources using
# ScanCode 32.0.8 on build libffi-3.4.4-7.fc40:
#
# MIT - Most of the project sources (Required)
# CC-PDDC - src/dlmalloc.c (Required)
# mit OR gpl-3.0 - ltmain.sh (Ignored)
# mit OR gpl-1.0-plus - ltmain.sh (Ignored)
# gpl-2.0-plus WITH libtool-exception-2.0 - ltmain.sh, libtool.m4, configure (Ignored, not shipped)
# warranty-disclaimer - ltmain.sh (Ignored)
# unknown-license-reference - ltmain.sh (Ignored)
# gpl-2.0-plus - Used by build system only (Ignored)
# gpl-2.0 - Used by build system only (Ignored)
# free-unknown - config.guess, config.sub (Ignored)
# fsf-ap - Used by build system only (Ignored)
# fsf-free - Used by build system only (Ignored)
# fsf-unlimited - Used by build system only (Ignored)
# fsf-unlimited-no-warranty - Used by build system only (Ignored)
# gpl-1.0-plus - False positive in texinfo.tex (Ignored)
# gpl-3.0-plus WITH tex-exception - texinfo.tex used in libffi-devel docs (Required)
# gpl-2.0-plus WITH autoconf-simple-exception-2.0 - Used by build system only (Ignored)
# gpl-3.0 - Used by build system only (Ignored)
# gpl-3.0-plus - Used by the testsuite only (Ignored)
# gpl-3.0-plus WITH autoconf-exception-2.0 - Used by build system only (Ignored)
# gpl-3.0-plus WITH autoconf-simple-exception - Used by build system only (Ignored)
# mpl-1.1 OR gpl-2.0-plus OR lgpl-2.1-plus - Not used in build (Ignored)
# public-domain - Used by build system only (Ignored)
# x11-xconsortium - Used by build system only (Ignored)
License: MIT AND CC-PDDC AND (GPL-3.0-or-later WITH Texinfo-exception)
URL: http://sourceware.org/libffi
Source0: ftp://sourceware.org/pub/libffi/libffi-%{version}.tar.gz
Source0: https://github.com/libffi/libffi/releases/download/v%{version}/libffi-%{version}.tar.gz
Source1: ffi-multilib.h
Source2: ffitarget-multilib.h
Patch0: libffi-3.1-fix-include-path.patch
Patch1: libffi-3.1-fix-exec-stack.patch
Patch2: libffi-aarch64-rhbz1174037.patch
Patch3: libffi-3.1-aarch64-fix-exec-stack.patch
BuildRequires: make
BuildRequires: gcc
%if %{without bootstrap}
BuildRequires: gcc-c++
BuildRequires: dejagnu
%endif
%description
Compilers for high level languages generate code that follow certain
@ -43,35 +79,33 @@ layer of a fully featured foreign function interface. A layer must
exist above `libffi' that handles type conversions for values passed
between the two languages.
%package devel
Summary: Development files for %{name}
Group: Development/Libraries
Requires: %{name} = %{version}-%{release}
Requires: pkgconfig
Requires(post): /sbin/install-info
Requires(preun): /sbin/install-info
%description devel
The %{name}-devel package contains libraries and header files for
developing applications that use %{name}.
%prep
%setup -q
%patch0 -p1 -b .fixpath
%patch1 -p1 -b .execstack
%patch2 -p1 -b .aarch64
%patch3 -p1 -b .aarch64execstack
%autosetup -p1
%build
%configure --disable-static
make %{?_smp_mflags}
# --disable-multi-os-directory is used because otherwise, on riscv64, the
# library is installed under ${_libdir}/lp64d, which we don't want. Other
# architectures don't have the same problem so they're unaffected.
%configure --disable-static --disable-multi-os-directory
%make_build
%check
%if %{without bootstrap}
%make_build check
%endif
%install
make install DESTDIR=$RPM_BUILD_ROOT
%make_install
find $RPM_BUILD_ROOT -name '*.la' -exec rm -f {} ';'
rm -f $RPM_BUILD_ROOT%{_infodir}/dir
@ -87,43 +121,165 @@ mkdir -p $RPM_BUILD_ROOT%{_includedir}
# can have both a 32- and 64-bit version of the library, and they each need
# their own correct-but-different versions of the headers to be usable.
for i in ffi ffitarget; do
mv $RPM_BUILD_ROOT%{_libdir}/libffi-%{version}/include/$i.h $RPM_BUILD_ROOT%{_includedir}/$i-${basearch}.h
mv $RPM_BUILD_ROOT%{_includedir}/$i.h $RPM_BUILD_ROOT%{_includedir}/$i-${basearch}.h
done
install -m644 %{SOURCE1} $RPM_BUILD_ROOT%{_includedir}/ffi.h
install -m644 %{SOURCE2} $RPM_BUILD_ROOT%{_includedir}/ffitarget.h
%else
mv $RPM_BUILD_ROOT%{_libdir}/libffi-%{version}/include/{ffi,ffitarget}.h $RPM_BUILD_ROOT%{_includedir}
%endif
rm -rf $RPM_BUILD_ROOT%{_libdir}/libffi-%{version}
%post -p /sbin/ldconfig
%post devel
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/libffi.info.gz || :
%preun devel
if [ $1 = 0 ] ;then
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/libffi.info.gz || :
fi
%postun -p /sbin/ldconfig
%ldconfig_scriptlets
%files
%{!?_licensedir:%global license %%doc}
%license LICENSE
%doc README
%{_libdir}/*.so.*
%doc README.md
%{_libdir}/libffi.so.8
%{_libdir}/libffi.so.8.2.0
%files devel
%{_libdir}/pkgconfig/*.pc
%{_includedir}/ffi*.h
%{_libdir}/*.so
%{_mandir}/man3/*.gz
%{_infodir}/libffi.info.gz
%{_infodir}/libffi.info.*
%changelog
* Fri Sep 5 2025 DJ Delorie <dj@redhat.com> - 3.5.2-1
- Rebase to libffi 3.5.1.
* Thu Jul 24 2025 Fedora Release Engineering <releng@fedoraproject.org> - 3.5.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild
* Fri Jun 13 2025 DJ Delorie <dj@redhat.com> - 3.5.1-1
- Rebase to libffi 3.5.1.
* Wed May 07 2025 DJ Delorie <dj@redhat.com> - 3.4.8-1
- Rebase to libffi 3.4.8.
* Fri Apr 04 2025 Andrea Bolognani <abologna@redhat.com> - 3.4.7-4
- Fix riscv64 build (thanks David Abdurachmanov and Rich Jones)
* Thu Mar 27 2025 DJ Delorie <dj@redhat.com> - 3.4.7-3
- Regenerate configure for previous patch(#2313598)
* Thu Mar 06 2025 DJ Delorie <dj@redhat.com> - 3.4.7-2
- Add PPC64 static trampoline support (#2313598)
* Tue Feb 18 2025 DJ Delorie <dj@redhat.com> - 3.4.7-1
- Rebase to libffi 3.4.7.
* Wed Jan 22 2025 DJ Delorie <dj@redhat.com> - 3.4.6-5
- Fix FTBFS due to C23 compiler (#2340729)
* Fri Jan 17 2025 Fedora Release Engineering <releng@fedoraproject.org> - 3.4.6-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
* Wed Aug 21 2024 Carlos O'Donell <carlos@redhat.com> 3.4.6-3
- Fix AArch64 BTI enablement issues (#2305877)
* Thu Jul 18 2024 Fedora Release Engineering <releng@fedoraproject.org> - 3.4.6-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
* Mon Mar 18 2024 DJ Delorie <dj@redhat.com> - 3.4.6-1
- Rebase to libffi 3.4.6.
* Thu Feb 29 2024 Carlos O'Donell <carlos@redhat.com> - 3.4.4-8
- Analyze libffi-3.4.4-7.fc40 sources for license information
- Migrate License field to SPDX identifiers for
https://docs.fedoraproject.org/en-US/legal/allowed-licenses/
https://docs.fedoraproject.org/en-US/legal/update-existing-packages
(#2222084)
* Thu Jan 25 2024 Fedora Release Engineering <releng@fedoraproject.org> - 3.4.4-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Sun Jan 21 2024 Fedora Release Engineering <releng@fedoraproject.org> - 3.4.4-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Tue Jan 02 2024 Florian Weimer <fweimer@redhat.com> - 3.4.4-5
- Add missing declaration of open_temp_exec_file
* Thu Jul 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 3.4.4-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Tue May 02 2023 DJ Delorie <dj@redhat.com> - 3.4.4-3
- Enable static trampolines
* Thu Jan 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 3.4.4-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
* Fri Oct 28 2022 DJ Delorie <dj@redhat.com> - 3.4.4-1
- Rebase to libffi 3.4.4.
* Thu Jul 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 3.4.2-9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Mon Jan 31 2022 Dan Horák <dan[at]danny.cz> - 3.4.2-8
- Fix handling Float128 structs on ppc64le (#2045797)
* Thu Jan 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 3.4.2-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Sat Jan 08 2022 Miro Hrončok <mhroncok@redhat.com> - 3.4.2-6
- Rebuilt for https://fedoraproject.org/wiki/Changes/LIBFFI34
* Wed Sep 15 2021 Carlos O'Donell <codonell@redhat.com> - 3.4.2-5
- Rebuilt for https://fedoraproject.org/wiki/Changes/LIBFFI34
* Wed Sep 15 2021 Carlos O'Donell <carlos@redhat.com> - 3.4.2-4
- Harmonize spec file layout with downstream.
* Wed Aug 11 2021 Carlos O'Donell <carlos@redhat.com> - 3.4.2-3
- Rebuild package and bump NEVRA.
* Thu Jul 22 2021 Fedora Release Engineering <releng@fedoraproject.org> - 3.4.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Mon Jun 28 2021 Carlos O'Donell <carlos@redhat.com> - 3.4.2-1
- Rebase to libffi 3.4.2.
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 3.1-28
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Wed Dec 02 2020 Carlos O'Donell <carlos@redhat.com> - 3.1-27
- Use make macros
- https://fedoraproject.org/wiki/Changes/UseMakeBuildInstallMacro
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 3.1-26
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Thu Apr 30 2020 DJ Delorie <idj@redhat.com> - 3.1-25
- Add $LIBFFI_TMPDIR environment variable support (#1667620)
* Wed Jan 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 3.1-24
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 3.1-23
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Tue Jul 9 2019 Florian Weimer <fweimer@redhat.com> - 3.1-22
- Run test suite during build (#1727088)
* Wed Jun 19 2019 Anthony Green <green@redhat.com> - 3.1-21
- Fix license tag
* Wed Apr 24 2019 Björn Esser <besser82@fedoraproject.org> - 3.1-20
- Remove hardcoded gzip suffix from GNU info pages
* Fri Feb 01 2019 Fedora Release Engineering <releng@fedoraproject.org> - 3.1-19
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Sun Jul 22 2018 Peter Robinson <pbrobinson@fedoraproject.org> 3.1-28
- Fix FTBFS
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 3.1-17
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 3.1-16
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
* Sat Feb 03 2018 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 3.1-15
- Switch to %%ldconfig_scriptlets
* Thu Aug 03 2017 Fedora Release Engineering <releng@fedoraproject.org> - 3.1-14
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild

6
plans/gating.fmf Normal file
View file

@ -0,0 +1,6 @@
summary: Gating testplan for libffi
discover:
how: fmf
execute:
how: tmt

View file

@ -1 +1 @@
f5898b29bbfd70502831a212d9249d10 libffi-3.1.tar.gz
SHA512 (libffi-3.5.2.tar.gz) = 76974a84e3aee6bbd646a6da2e641825ae0b791ca6efdc479b2d4cbcd3ad607df59cffcf5031ad5bd30822961a8c6de164ac8ae379d1804acd388b1975cdbf4d

63
tests/testsuite/Makefile Normal file
View file

@ -0,0 +1,63 @@
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Makefile of /tools/libffi/Sanity/testsuite
# Description: Runs upstream testsuite
# Author: Michal Nowak <mnowak@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2010 Red Hat, Inc. All rights reserved.
#
# 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 3 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/libffi/Sanity/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)
chmod a+x runtest.sh
clean:
rm -f *~ $(BUILT_FILES)
include /usr/share/rhts/lib/rhts-make.include
$(METADATA): Makefile
@echo "Owner: Michal Nowak <mnowak@redhat.com>" > $(METADATA)
@echo "Name: $(TEST)" >> $(METADATA)
@echo "TestVersion: $(TESTVERSION)" >> $(METADATA)
@echo "Path: $(TEST_DIR)" >> $(METADATA)
@echo "Description: Runs upstream testsuite" >> $(METADATA)
@echo "Type: Sanity" >> $(METADATA)
@echo "TestTime: 35m" >> $(METADATA)
@echo "RunFor: libffi" >> $(METADATA)
@echo "Requires: libffi libffi-devel libtool gcc dejagnu rpm-build gcc-c++ texinfo strace" >> $(METADATA)
@echo "Priority: Normal" >> $(METADATA)
@echo "License: GPLv3" >> $(METADATA)
@echo "Confidential: no" >> $(METADATA)
@echo "Destructive: no" >> $(METADATA)
@echo "Releases: -RHEL4 -RHEL5" >> $(METADATA)
rhts-lint $(METADATA)

3
tests/testsuite/PURPOSE Normal file
View file

@ -0,0 +1,3 @@
PURPOSE of /tools/libffi/Sanity/testsuite
Description: Runs upstream testsuite
Author: Michal Nowak <mnowak@redhat.com>

33
tests/testsuite/main.fmf Normal file
View file

@ -0,0 +1,33 @@
summary: Runs upstream testsuite
description: ''
enabled: true
link:
- relates: https://bugzilla.redhat.com/show_bug.cgi?id=1031159
- relates: https://bugzilla.redhat.com/show_bug.cgi?id=839210
- relates: https://bugzilla.redhat.com/show_bug.cgi?id=1006261
tag:
- CI-Tier-1
- RHEL6
- Tier1
- rhel-buildroot
tier: '1'
contact: mcermak@redhat.com
component:
- libffi
test: ./runtest.sh
framework: beakerlib
require:
- libffi
- libffi-devel
- libtool
- gcc
- dejagnu
- rpm-build
- gcc-c++
- texinfo
- strace
duration: 35m
extra-nitrate: TC#0063644
extra-summary: /tools/libffi/Sanity/testsuite
extra-task: /tools/libffi/Sanity/testsuite
id: 2d3a499f-1f59-40f0-a76c-1c73569d0512

88
tests/testsuite/runtest.sh Executable file
View file

@ -0,0 +1,88 @@
#!/bin/bash
# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /tools/libffi/Sanity/testsuite
# Description: Runs upstream testsuite
# Author: Michal Nowak <mnowak@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2010 Red Hat, Inc. All rights reserved.
#
# 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 3 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 rhts environment
. /usr/share/beakerlib/beakerlib.sh || exit 1
PACKAGES=(libffi libffi-devel gcc dejagnu rpm-build gcc-c++)
rlJournalStart
rlPhaseStartSetup
for p in "${PACKAGES[@]}"; do
if ! rlCheckRpm "$p"; then
rlRun "yum -y install $p"
rlAssertRpm "$p"
fi
done;
rlRun "TmpDir=$(mktemp -d)" 0 "Creating tmp directory"
rlRun "pushd $TmpDir"
rlFetchSrcForInstalled libffi
rlRun "rpm -ivh libffi*.src.rpm"
rlRun "popd"
rlRun "specfile=$(rpm --eval='%_specdir')/libffi.spec"
rlRun "rpmbuild -bp --undefine specpartsdir $specfile"
rlRun "builddir=$(rpm --eval='%_builddir')"
rlRun "pushd $(dirname "$(find $builddir -name configure)")"
rlRun "./configure"
rlRun "make"
rlPhaseEnd
rlPhaseStartTest "Run testsuite"
set -xe
# Patch the testsuite to run with the installed libffi libraries, not
# with the ones built from the rpm.
# Do not add the current dir or the build dir to ld_library_path
sed -i 's/set ld_library_path "."/set ld_library_path ""/' testsuite/lib/libffi*.exp
sed -i '/append ld_library_path.*blddirffi/d' testsuite/lib/libffi*.exp
# Set ld_library_path to the system libdir (typically /usr/lib or /usr/lib64)
MYLIBDIR=$(rpm --eval '%{_libdir}')
sed -i 's;set libffi_dir.*"[^"]*";set libffi_dir "'"${MYLIBDIR}"'";' testsuite/lib/libffi*.exp
grep -F -e 'set ld_library_path' -e 'set libffi_dir' testsuite/lib/libffi.exp
# As of upstream commit 40a7682 the link flags hardcode the library dir so we need to edit that too
# by removing the explicit library seach path to the built libraries.
# https://github.com/libffi/libffi/commit/40a7682#diff-b4e449eb85934de2bdcf9ee0ac320872a7d09d60df6a24e3f066d7d74f6ddfd0R345
sed -i 's;set libffi_link_flags "-L[^"]*";set libffi_link_flags "";' testsuite/lib/libffi*.exp
set +xe
rlLog "Checking whether we test really the installed libraries."
strace -F -e open,openat,stat -o strace.log -- make check
# Count library calls from places different than the libdir we want (MYLIBDIR)
LIBFFI_SO_CALLS=$(cat strace.log | grep libffi.so | grep -v ENOENT | grep -v "/usr" | grep -v '"/lib' | grep -c -v 'unfinished')
rlAssertGreater "The just built libraries should not be used, everything should be taken from /usr" 5 "$LIBFFI_SO_CALLS"
rlRun "cat strace.log | grep libffi.so | grep /usr"
rlRun "cat strace.log | grep libffi.so | grep rpmbuild" 1
rlRun "make check" 0 "RUNNING THE TESTSUITE"
rlRun "popd"
rlPhaseEnd
rlPhaseStartCleanup
rlRun "ls -al $TmpDir"
rlBundleLogs logs "$(find . -name 'libffi.sum')" "$(find . -name 'libffi.log')"
rlRun "rm -r $TmpDir" 0 "Removing tmp directory"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd