Hello community, here is the log from the commit of package ffcall for openSUSE:Factory checked in at 2017-08-24 18:31:39 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/ffcall (Old) and /work/SRC/openSUSE:Factory/.ffcall.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ffcall" Thu Aug 24 18:31:39 2017 rev:7 rq:506619 version:1.13 Changes: -------- --- /work/SRC/openSUSE:Factory/ffcall/ffcall.changes 2016-02-17 12:11:09.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.ffcall.new/ffcall.changes 2017-08-24 18:32:27.285967092 +0200 @@ -1,0 +2,55 @@ +Wed Jun 28 06:07:53 UTC 2017 - wer...@suse.de + +- Accordingly to Bruno Haible the define -DMAP_VARIABLE=MAP_PRIVATE + should become removed + +------------------------------------------------------------------- +Mon Jun 26 13:04:17 UTC 2017 - wer...@suse.de + +- Add some more debug code for build architecture + +------------------------------------------------------------------- +Mon Jun 26 08:12:41 UTC 2017 - wer...@suse.de + +- Update to (lib)fcall-1.13 release + * The license has been changed from GPLv2 to GPLv2+. + * Added support for the following platforms: + (Previously, a build on these platforms failed.) + - x86_64: Mac OS X 64-bit. + - x86_64: Solaris 64-bit. + - x86_64: Linux with x32 ABI: CC="gcc -mx32". + - arm: Linux 32-bit, without hardware floats. + - arm64: Linux 64-bit. + - s390x: Linux 64-bit. + - powerpc: AIX 64-bit. + - mips: IRIX 6.5 with CC="cc -32". + - sparc: Solaris 64-bit. + * Fixed support for the following platforms: + (Previously, a build on these platforms appeared to succeed but was buggy.) + - x86_64: Linux. + - arm: Linux 32-bit, with hardware floats. + - powerpc: Linux 64-bit. + - mips: Linux with CC="gcc -mabi=32". + - mips: Linux with CC="gcc -mabi=n32". + - mips: Linux with CC="gcc -mabi=64". + - mips: IRIX 6.5 with CC="gcc -mabi=n32". + - s390: Linux. + - sparc: Linux 64-bit. + - ia64: Linux. + - hppa: HP-UX 32-bit. + * Verified support for the following platforms: + (A build on these platforms worked and still works.) + - i386: Linux, Solaris, Mac OS X. + - powerpc: Linux 32-bit. + - powerpc: AIX 32-bit. + - powerpc: MacOS X. + - mips: IRIX 6.5 with CC="cc -n32". + - sparc: Solaris 32-bit. + - sparc: Linux 32-bit: CC="gcc -m32". + - alpha: Linux. + * Support for a security feature: On Linux and FreeBSD platforms, linking with + the libffcall libraries no longer causes the stack to become executable. +- Remove the patch ffcall-asm_cachectl.patch +- Update the patch ffcall-trampoline.patch + +------------------------------------------------------------------- Old: ---- ffcall-1.12.tar.gz ffcall-asm_cachectl.patch New: ---- libffcall-1.13.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ ffcall.spec ++++++ --- /var/tmp/diff_new_pack.MdncQq/_old 2017-08-24 18:32:28.793754669 +0200 +++ /var/tmp/diff_new_pack.MdncQq/_new 2017-08-24 18:32:28.813751852 +0200 @@ -1,7 +1,7 @@ # # spec file for package ffcall # -# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -18,35 +18,25 @@ # Only a static library is provided, so no debug information can be extracted. %global debug_package %{nil} +%global debug no # This package uses assembly to do its work. This is the entire list of # supported architectures understood by RPM, even those not currently supported # by Fedora. RPM hasn't heard about line continuations, hence the mess. -%global ffcall_arches %ix86 x86_64 %alpha %arm parisc hppa1.0 hppa1.1 hppa1.2 hppa2.0 ia64 m68k mips mipsel ppc ppc64 ppc64le ppc8260 ppc8560 ppc32dy4 ppciseries ppcpseries s390 %sparc +%global ffcall_arches %ix86 x86_64 %alpha %arm aarch64 parisc hppa1.0 hppa1.1 hppa1.2 hppa2.0 ia64 m68k mips mipsel ppc ppc64 ppc64le ppc8260 ppc8560 ppc32dy4 ppciseries ppcpseries s390 s390x %sparc sparc64 Name: ffcall -Version: 1.12 +Version: 1.13 Release: 0 Summary: Libraries for foreign function call interfaces +# As this package only provides a static library together with the header files License: GPL-2.0+ Group: Development/Libraries/Other -# As this package only provides a static library together with the header files Provides: %{name}-devel = %version-%release Url: http://www.gnu.org/software/libffcall/ -# -# There has been no official release for several years, and the project web -# site encourages use of a CVS snapshot. Make the tarball as follows: -# cvs -z3 -d:pserver:anonym...@cvs.savannah.gnu.org:/sources/libffcall -# export -D 2012-04-24 ffcall -# tar cJf ffcall-20120424cvs.tar.xz ffcall -# -Source0: https://github.com/libffcall/libffcall/archive/ffcall-%{version}.tar.gz -# PATCH-EXTEND-UPSTREAM -- -# This patch will not be sent upstream. It removes the possibility of using -# mprotect() to make memory executable, as that runs afoul of SELinux. -Patch0: %{name}-trampoline.patch -# PATCH-FIX-OPENSUSE -- There is no <asm/cachectl.h> -Patch1: %{name}-asm_cachectl.patch +# https://git.savannah.gnu.org/cgit/libffcall.git/snapshot/libffcall-%{version}.tar.gz +Source0: https://ftp.gnu.org/gnu/libffcall/libffcall-%{version}.tar.gz +Patch0: ffcall-trampoline.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build ExclusiveArch: %{ffcall_arches} @@ -62,24 +52,44 @@ %prep -%setup -q -n libffcall-ffcall-%{version} -%patch0 -%patch1 +%setup -q -n libffcall-%{version} +#%patch0 +if ! test -e /usr/include/asm/cachectl.h +then + # FIX-OPENSUSE -- Remove this if there is no <asm/cachectl.h> + for c in callback/trampoline_r/trampoline.c trampoline/trampoline.c + do + echo 'No <asm/cachectl.h> on this architecture %arch' + sed -ri '/^#ifdef linux/,/^#else/{ \@#include <asm/cachectl.h>@d }' $c + done +fi # Remove prebuilt object files find . -name \*.o | xargs rm -f %build -export CFLAGS="$RPM_OPT_FLAGS -fPIC -DMAP_VARIABLE=MAP_PRIVATE" -%configure +export CFLAGS="%{optflags} -fPIC" +%configure --disable-rpath --with-gnu-ld +if test -e /.build.log +then + grep -E '^#define (CODE|HAVE)' config.h + sed -rn '/checking whether code in malloc\(\)ed memory is executable/,/result: /p' config.log +fi make # %{?_smp_mflags} %install mkdir -p %{buildroot}%{_libdir} mkdir -p %{buildroot}%{_mandir} +mkdir -p %{buildroot}%{_defaultdocdir}/%{name} make install DESTDIR=%{buildroot} rm -fr %{buildroot}%{_datadir}/html rm -f %{buildroot}%{_libdir}/*.la +if test %debug = yes ; then + install config.log %{buildroot}%{_defaultdocdir}/%{name} + echo %{_defaultdocdir}/%{name}/config.log > list +else + > list +fi cd %{buildroot}%{_mandir}/man3 # Advertise supported architectures @@ -94,7 +104,7 @@ mv $page %{name}-$page done -%files +%files -f list %defattr(-,root,root,-) %doc README NEWS COPYING %doc avcall/avcall.html ++++++ ffcall-trampoline.patch ++++++ --- /var/tmp/diff_new_pack.MdncQq/_old 2017-08-24 18:32:28.941733821 +0200 +++ /var/tmp/diff_new_pack.MdncQq/_new 2017-08-24 18:32:28.941733821 +0200 @@ -1,42 +1,35 @@ ---- ./callback/trampoline_r/trampoline.c.orig 2009-04-27 09:24:05.000000000 -0600 -+++ ./callback/trampoline_r/trampoline.c 2012-01-10 12:03:02.752466354 -0700 -@@ -67,10 +67,6 @@ extern void (*tramp_r) (); /* trampoline - - #ifndef CODE_EXECUTABLE - /* How do we make the trampoline's code executable? */ --#if defined(HAVE_MACH_VM) || defined(__convex__) || defined(HAVE_WORKING_MPROTECT) || defined(HAVE_SYS_M88KBCS_H) --/* mprotect() [or equivalent] the malloc'ed area. */ --#define EXECUTABLE_VIA_MPROTECT --#else - #ifdef HAVE_MMAP - /* Use an mmap'ed page. */ - #define EXECUTABLE_VIA_MMAP -@@ -90,7 +86,6 @@ extern void (*tramp_r) (); /* trampoline - #endif - #endif - #endif --#endif - - #include <stdio.h> /* declares fprintf() */ - ---- ./trampoline/trampoline.c.orig 2008-09-26 14:19:37.000000000 -0600 -+++ ./trampoline/trampoline.c 2012-01-10 12:02:33.027731322 -0700 -@@ -67,10 +67,6 @@ extern void (*tramp) (); /* trampoline p - - #ifndef CODE_EXECUTABLE - /* How do we make the trampoline's code executable? */ --#if defined(HAVE_MACH_VM) || defined(__convex__) || defined(HAVE_WORKING_MPROTECT) || defined(HAVE_SYS_M88KBCS_H) --/* mprotect() [or equivalent] the malloc'ed area. */ --#define EXECUTABLE_VIA_MPROTECT --#else - #ifdef HAVE_MMAP - /* Use an mmap'ed page. */ - #define EXECUTABLE_VIA_MMAP -@@ -90,7 +86,6 @@ extern void (*tramp) (); /* trampoline p - #endif - #endif - #endif --#endif - - #include <stdio.h> /* declares fprintf() */ - +--- + callback/trampoline_r/trampoline.c | 6 ++++++ + trampoline/trampoline.c | 6 ++++++ + 2 files changed, 12 insertions(+) + +--- callback/trampoline_r/trampoline.c ++++ callback/trampoline_r/trampoline.c 2017-06-26 08:51:46.787267290 +0000 +@@ -76,6 +76,12 @@ extern void (*tramp_r) (); /* trampoline + #define EXECUTABLE_VIA_MMAP_THEN_MPROTECT + #elif defined(HAVE_MMAP_SHARED_CAN_EXEC) + #define EXECUTABLE_VIA_MMAP_FILE_SHARED ++ #elif defined(HAVE_MMAP) ++ /* Use an mmap'ed page. */ ++ #define EXECUTABLE_VIA_MMAP ++ #elif defined(HAVE_SHM) ++ /* Use an shmat'ed page. */ ++ #define EXECUTABLE_VIA_SHM + #else + #error "Don't know how to make memory pages executable." + #endif +--- trampoline/trampoline.c ++++ trampoline/trampoline.c 2017-06-26 08:50:21.820815116 +0000 +@@ -76,6 +76,12 @@ extern void (*tramp) (); /* trampoline p + #define EXECUTABLE_VIA_MMAP_THEN_MPROTECT + #elif defined(HAVE_MMAP_SHARED_CAN_EXEC) + #define EXECUTABLE_VIA_MMAP_FILE_SHARED ++ #elif defined(HAVE_MMAP) ++ /* Use an mmap'ed page. */ ++ #define EXECUTABLE_VIA_MMAP ++ #elif defined(HAVE_SHM) ++ /* Use an shmat'ed page. */ ++ #define EXECUTABLE_VIA_SHM + #else + #error "Don't know how to make memory pages executable." + #endif