This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "IPFire 3.x development tree".
The branch, master has been updated via 7dcf09a681fba7e1b5d511e92caea9b59dcea8b1 (commit) via 4034c523117d03861162c0b66cdc5f07c66b4b27 (commit) via c552562aea45eb921e4635fc55ba8fe7071690bf (commit) via 7f27ab78b2229383a276d5eaa7ae3e51fec2e2c5 (commit) via cb87081b3f6c6aeffc571a672da7d3c7790cba8c (commit) via a309947b04557d6e92c9e3319dcd1626e95fe538 (commit) from fdaf9476f6a493fef43d90d6cf3149e4702c9f26 (commit)
Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below.
- Log ----------------------------------------------------------------- commit 7dcf09a681fba7e1b5d511e92caea9b59dcea8b1 Author: Stefan Schantl stefan.schantl@ipfire.org Date: Wed Oct 12 14:40:01 2016 +0200
smartmontools: Rework package.
* Enable useage of libcap-ng. * Drop support for SELinux. * Replace hardcoded path values. * Enable testsuite. * Add scriptlet for systemd.
Fixes #11229.
Signed-off-by: Stefan Schantl stefan.schantl@ipfire.org Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit 4034c523117d03861162c0b66cdc5f07c66b4b27 Author: Stefan Schantl stefan.schantl@ipfire.org Date: Wed Oct 12 13:41:12 2016 +0200
python: Update to 2.7.12.
This is a minor update to the lastest available version of the python 2.7 series.
* Drop support for SELinux.
Fixes #11226.
Signed-off-by: Stefan Schantl stefan.schantl@ipfire.org Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit c552562aea45eb921e4635fc55ba8fe7071690bf Author: Stefan Schantl stefan.schantl@ipfire.org Date: Wed Oct 12 11:10:37 2016 +0200
pam: Update to 1.3.0
This is a major update to the latest available version of pam.
* Adjust source download location. * Replace various hardcode path. * Enable testsuite. * Drop SELinux support.
Fixes #11219.
Signed-off-by: Stefan Schantl stefan.schantl@ipfire.org Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit 7f27ab78b2229383a276d5eaa7ae3e51fec2e2c5 Author: Stefan Schantl stefan.schantl@ipfire.org Date: Wed Oct 12 11:01:03 2016 +0200
sudo: Enable testsuite.
Signed-off-by: Stefan Schantl stefan.schantl@ipfire.org Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit cb87081b3f6c6aeffc571a672da7d3c7790cba8c Author: Stefan Schantl stefan.schantl@ipfire.org Date: Wed Oct 12 08:11:04 2016 +0200
sudo: Update to 1.8.18p1.
This is a minor update to the latest available version of sudo.
* Replace hardcoded path. * Drop SELinux support.
Fixes #11230.
Signed-off-by: Stefan Schantl stefan.schantl@ipfire.org Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit a309947b04557d6e92c9e3319dcd1626e95fe538 Author: Stefan Schantl stefan.schantl@ipfire.org Date: Wed Oct 5 13:40:33 2016 +0200
parted: Update to 3.2.
This is an major update to the latest stable version of parted.
* Drop SELinux support. * Enable testsuite.
Fixes #11220.
Signed-off-by: Stefan Schantl stefan.schantl@ipfire.org Signed-off-by: Michael Tremer michael.tremer@ipfire.org
-----------------------------------------------------------------------
Summary of changes: pam/pam.nm | 25 ++- pam/patches/pam-1.1.5-unix-no-fallback.patch | 69 ------ parted/parted.nm | 27 ++- ...0134-fix-COUNT_ALLOCS-failure-in-test_sys.patch | 14 +- ...6-skip-tests-of-seeking-stdin-in-rpmbuild.patch | 25 +-- python/patches/00157-uid-gid-overflows.patch | 76 +++---- python/patches/00170-gc-assertions.patch | 4 +- ...00173-workaround-ENOPROTOOPT-in-bind_port.patch | 7 +- ...-4238-hostname-check-bypass-in-SSL-module.patch | 247 --------------------- python/patches/00186-memory-leak-marshalc.patch | 57 ----- python/patches/05000-autotool-intermediates.patch | 13 +- python/patches/python-2.5.1-plural-fix.patch | 2 +- python/patches/python-2.6-rpath.patch | 2 +- python/patches/python-2.7rc1-binutils-no-dep.patch | 14 -- ...2.7.3-lib64.patch => python-2.7.12-lib64.patch} | 140 ++++++------ python/python.nm | 7 +- smartmontools/smartmontools.nm | 55 ++++- sudo/sudo.nm | 26 ++- 18 files changed, 234 insertions(+), 576 deletions(-) delete mode 100644 pam/patches/pam-1.1.5-unix-no-fallback.patch delete mode 100644 python/patches/00185-CVE-2013-4238-hostname-check-bypass-in-SSL-module.patch delete mode 100644 python/patches/00186-memory-leak-marshalc.patch delete mode 100644 python/patches/python-2.7rc1-binutils-no-dep.patch rename python/{python-2.7.3-lib64.patch => python-2.7.12-lib64.patch} (63%)
Difference in files: diff --git a/pam/pam.nm b/pam/pam.nm index 54be8d0..1f4da19 100644 --- a/pam/pam.nm +++ b/pam/pam.nm @@ -4,7 +4,7 @@ ###############################################################################
name = pam -version = 1.1.6 +version = 1.3.0 release = 1 thisapp = Linux-PAM-%{version}
@@ -22,7 +22,7 @@ end # This is the old location that might be revived in future # source_dl = http://ftp.us.kernel.org/pub/linux/libs/pam/library/
-source_dl = https://fedorahosted.org/releases/l/i/linux-pam/ +source_dl = http://www.linux-pam.org/library/
build requires @@ -30,24 +30,35 @@ build bison cracklib-devel flex - libselinux-devel end
+ export LD_LIBRARY_PATH = %{DIR_APP}/libpam/.libs + configure_options += \ --includedir=%{includedir}/security \ --docdir=/usr/share/doc/Linux-PAM-%{version} \ --enable-read-both-confs \ --disable-rpath
+ test + # Temporary copy our pam config files to the sysconfdir + # the chroot environment. They are required by various tests + # of the testsuite. + cp -avf %{DIR_SOURCE}/pam.d %{sysconfdir} + + # Run the testsuite. + make check + end + install_cmds #useradd -D -b /home #sed -i 's/yes/no/' %{BUILDROOT}/etc/default/useradd - mkdir -pv %{BUILDROOT}/etc/security + mkdir -pv %{BUILDROOT}%{sysconfdir}/security install -v -m644 %{DIR_SOURCE}/pam_env.conf \ - %{BUILDROOT}/etc/security/pam_env.conf + %{BUILDROOT}%{sysconfdir}/security/pam_env.conf
# Included in setup package - rm -f %{BUILDROOT}/etc/environment + rm -f %{BUILDROOT}%{sysconfdir}/environment
# Install man pages. mkdir -pv %{BUILDROOT}%{mandir}/man5 @@ -61,7 +72,7 @@ end packages package %{name} configfiles - /etc/pam.d + %{sysconfdir}/pam.d end end
diff --git a/pam/patches/pam-1.1.5-unix-no-fallback.patch b/pam/patches/pam-1.1.5-unix-no-fallback.patch deleted file mode 100644 index 7857196..0000000 --- a/pam/patches/pam-1.1.5-unix-no-fallback.patch +++ /dev/null @@ -1,69 +0,0 @@ -diff -up Linux-PAM-1.1.5/modules/pam_unix/pam_unix.8.xml.no-fallback Linux-PAM-1.1.5/modules/pam_unix/pam_unix.8.xml ---- Linux-PAM-1.1.5/modules/pam_unix/pam_unix.8.xml.no-fallback 2011-06-21 11:04:56.000000000 +0200 -+++ Linux-PAM-1.1.5/modules/pam_unix/pam_unix.8.xml 2012-05-09 11:54:34.442036404 +0200 -@@ -265,11 +265,10 @@ - <listitem> - <para> - When a user changes their password next, -- encrypt it with the SHA256 algorithm. If the -- SHA256 algorithm is not known to the <citerefentry> -+ encrypt it with the SHA256 algorithm. The -+ SHA256 algorithm must be supported by the <citerefentry> - <refentrytitle>crypt</refentrytitle><manvolnum>3</manvolnum> -- </citerefentry> function, -- fall back to MD5. -+ </citerefentry> function. - </para> - </listitem> - </varlistentry> -@@ -280,11 +279,10 @@ - <listitem> - <para> - When a user changes their password next, -- encrypt it with the SHA512 algorithm. If the -- SHA512 algorithm is not known to the <citerefentry> -+ encrypt it with the SHA512 algorithm. The -+ SHA512 algorithm must be supported by the <citerefentry> - <refentrytitle>crypt</refentrytitle><manvolnum>3</manvolnum> -- </citerefentry> function, -- fall back to MD5. -+ </citerefentry> function. - </para> - </listitem> - </varlistentry> -@@ -295,11 +293,10 @@ - <listitem> - <para> - When a user changes their password next, -- encrypt it with the blowfish algorithm. If the -- blowfish algorithm is not known to the <citerefentry> -+ encrypt it with the blowfish algorithm. The -+ blowfish algorithm must be supported by the <citerefentry> - <refentrytitle>crypt</refentrytitle><manvolnum>3</manvolnum> -- </citerefentry> function, -- fall back to MD5. -+ </citerefentry> function. - </para> - </listitem> - </varlistentry> -diff -up Linux-PAM-1.1.5/modules/pam_unix/passverify.c.no-fallback Linux-PAM-1.1.5/modules/pam_unix/passverify.c ---- Linux-PAM-1.1.5/modules/pam_unix/passverify.c.no-fallback 2012-05-09 11:48:12.409632377 +0200 -+++ Linux-PAM-1.1.5/modules/pam_unix/passverify.c 2012-05-09 11:48:36.953172291 +0200 -@@ -427,15 +427,14 @@ PAMH_ARG_DECL(char * create_password_has - if (!sp || strncmp(algoid, sp, strlen(algoid)) != 0) { - /* libxcrypt/libc doesn't know the algorithm, use MD5 */ - pam_syslog(pamh, LOG_ERR, -- "Algo %s not supported by the crypto backend, " -- "falling back to MD5\n", -+ "Algo %s not supported by the crypto backend.\n", - on(UNIX_BLOWFISH_PASS, ctrl) ? "blowfish" : - on(UNIX_SHA256_PASS, ctrl) ? "sha256" : - on(UNIX_SHA512_PASS, ctrl) ? "sha512" : algoid); - if(sp) { - memset(sp, '\0', strlen(sp)); - } -- return crypt_md5_wrapper(password); -+ return NULL; - } - - return x_strdup(sp); diff --git a/parted/parted.nm b/parted/parted.nm index 3beb58a..a37b1f8 100644 --- a/parted/parted.nm +++ b/parted/parted.nm @@ -4,7 +4,7 @@ ###############################################################################
name = parted -version = 3.1 +version = 3.2 release = 1
groups = Applications/System @@ -24,18 +24,37 @@ sources = %{thisapp}.tar.xz
build requires + # Testsuite + /usr/sbin/mkswap + /usr/bin/udevadm + + # Build dependencies libdevmapper-devel - libselinux-devel - libsepol-devel libuuid-devel ncurses-devel pkg-config readline-devel end
+ export LD_LIBRARY_PATH=%{DIR_APP}/libparted/.libs:%{DIR_APP}/libparted/fs/.libs + configure_options += \ - --enable-selinux \ --disable-Werror + + test + # Disable test because it needs a locale C.UTF-8. + sed -i '/t0251-gpt-unicode.sh/d' tests/Makefile + + # Disable tests because they force to require loopback devices. + sed -i '/t6001-psep.sh/d' tests/Makefile + sed -i '/t6002-dm-busy.sh/d' tests/Makefile + sed -i '/t6003-dm-hide.sh/d' tests/Makefile + sed -i '/t6004-dm-many-partitions.sh/d' tests/Makefile + sed -i '/t6005-dm-uuid.sh/d' tests/Makefile + + # Run testsuite. + make check + end end
packages diff --git a/python/patches/00134-fix-COUNT_ALLOCS-failure-in-test_sys.patch b/python/patches/00134-fix-COUNT_ALLOCS-failure-in-test_sys.patch index 38381ef..71e7f68 100644 --- a/python/patches/00134-fix-COUNT_ALLOCS-failure-in-test_sys.patch +++ b/python/patches/00134-fix-COUNT_ALLOCS-failure-in-test_sys.patch @@ -1,9 +1,11 @@ ---- Python-2.7.2/Lib/test/test_sys.py.mark-tests-that-fail-in-rpmbuild 2011-09-08 18:02:31.627362039 -0400 -+++ Python-2.7.2/Lib/test/test_sys.py 2011-09-08 18:15:29.450308851 -0400 -@@ -734,6 +734,11 @@ class SizeofTest(unittest.TestCase): - # (PyTypeObject + PyNumberMethods + PyMappingMethods + - # PySequenceMethods + PyBufferProcs) - s = vsize('P2P15Pl4PP9PP11PI') + struct.calcsize('41P 10P 3P 6P') +diff --git a/Lib/test/test_sys.py b/Lib/test/test_sys.py +index 0dd4258..d9b3267 100644 +--- a/Lib/test/test_sys.py ++++ b/Lib/test/test_sys.py +@@ -769,6 +769,11 @@ class SizeofTest(unittest.TestCase): + '10P' # PySequenceMethods + '6P' # PyBufferProcs + '2P') + + # COUNT_ALLOCS adds further fields to the end of a PyTypeObject: + if hasattr(sys, 'getcounts'): diff --git a/python/patches/00136-skip-tests-of-seeking-stdin-in-rpmbuild.patch b/python/patches/00136-skip-tests-of-seeking-stdin-in-rpmbuild.patch index 845fb2a..4d7626f 100644 --- a/python/patches/00136-skip-tests-of-seeking-stdin-in-rpmbuild.patch +++ b/python/patches/00136-skip-tests-of-seeking-stdin-in-rpmbuild.patch @@ -1,22 +1,11 @@ -diff -up Python-2.7.2/Lib/test/test_file2k.py.skip-tests-of-seeking-stdin-in-rpmbuild Python-2.7.2/Lib/test/test_file2k.py ---- Python-2.7.2/Lib/test/test_file2k.py.skip-tests-of-seeking-stdin-in-rpmbuild 2011-09-08 17:23:50.922520729 -0400 -+++ Python-2.7.2/Lib/test/test_file2k.py 2011-09-08 17:24:41.368517277 -0400 -@@ -213,6 +213,7 @@ class OtherFileTests(unittest.TestCase): +diff -up Python-2.7.6/Lib/test/test_file2k.py.stdin-test Python-2.7.6/Lib/test/test_file2k.py +--- Python-2.7.6/Lib/test/test_file2k.py.stdin-test 2013-11-10 08:36:40.000000000 +0100 ++++ Python-2.7.6/Lib/test/test_file2k.py 2014-01-29 14:28:01.029488055 +0100 +@@ -223,6 +223,7 @@ class OtherFileTests(unittest.TestCase): else: f.close()
+ @unittest._skipInRpmBuild('seems not to raise the exception when run in Koji') - def testStdin(self): - # This causes the interpreter to exit on OSF1 v5.1. - if sys.platform != 'osf1V5': -diff -up Python-2.7.2/Lib/test/test_file.py.skip-tests-of-seeking-stdin-in-rpmbuild Python-2.7.2/Lib/test/test_file.py ---- Python-2.7.2/Lib/test/test_file.py.skip-tests-of-seeking-stdin-in-rpmbuild 2011-09-08 17:20:31.146534389 -0400 -+++ Python-2.7.2/Lib/test/test_file.py 2011-09-08 17:24:45.016517030 -0400 -@@ -154,6 +154,7 @@ class OtherFileTests(unittest.TestCase): - f.close() - self.fail('%r is an invalid file mode' % mode) - -+ @unittest._skipInRpmBuild('seems not to raise the exception when run in Koji') - def testStdin(self): - # This causes the interpreter to exit on OSF1 v5.1. - if sys.platform != 'osf1V5': + def testStdinSeek(self): + if sys.platform == 'osf1V5': + # This causes the interpreter to exit on OSF1 v5.1. diff --git a/python/patches/00157-uid-gid-overflows.patch b/python/patches/00157-uid-gid-overflows.patch index 13546bb..a31c98a 100644 --- a/python/patches/00157-uid-gid-overflows.patch +++ b/python/patches/00157-uid-gid-overflows.patch @@ -2,48 +2,48 @@ diff -up Python-2.7.3/Lib/test/test_os.py.uid-gid-overflows Python-2.7.3/Lib/tes --- Python-2.7.3/Lib/test/test_os.py.uid-gid-overflows 2012-04-09 19:07:32.000000000 -0400 +++ Python-2.7.3/Lib/test/test_os.py 2012-06-26 14:51:36.000817929 -0400 @@ -677,30 +677,36 @@ if sys.platform != 'win32': - def test_setuid(self): - if os.getuid() != 0: - self.assertRaises(os.error, os.setuid, 0) -+ self.assertRaises(TypeError, os.setuid, 'not an int') - self.assertRaises(OverflowError, os.setuid, 1<<32) + def test_setuid(self): + if os.getuid() != 0: + self.assertRaises(os.error, os.setuid, 0) ++ self.assertRaises(TypeError, os.setuid, 'not an int') + self.assertRaises(OverflowError, os.setuid, 1<<32)
- if hasattr(os, 'setgid'): - def test_setgid(self): - if os.getuid() != 0: - self.assertRaises(os.error, os.setgid, 0) -+ self.assertRaises(TypeError, os.setgid, 'not an int') - self.assertRaises(OverflowError, os.setgid, 1<<32) + @unittest.skipUnless(hasattr(os, 'setgid'), 'test needs os.setgid()') + def test_setgid(self): + if os.getuid() != 0: + self.assertRaises(os.error, os.setgid, 0) ++ self.assertRaises(TypeError, os.setgid, 'not an int') + self.assertRaises(OverflowError, os.setgid, 1<<32)
- if hasattr(os, 'seteuid'): - def test_seteuid(self): - if os.getuid() != 0: - self.assertRaises(os.error, os.seteuid, 0) -+ self.assertRaises(TypeError, os.seteuid, 'not an int') - self.assertRaises(OverflowError, os.seteuid, 1<<32) + @unittest.skipUnless(hasattr(os, 'seteuid'), 'test needs os.seteuid()') + def test_seteuid(self): + if os.getuid() != 0: + self.assertRaises(os.error, os.seteuid, 0) ++ self.assertRaises(TypeError, os.seteuid, 'not an int') + self.assertRaises(OverflowError, os.seteuid, 1<<32)
- if hasattr(os, 'setegid'): - def test_setegid(self): - if os.getuid() != 0: - self.assertRaises(os.error, os.setegid, 0) -+ self.assertRaises(TypeError, os.setegid, 'not an int') - self.assertRaises(OverflowError, os.setegid, 1<<32) + @unittest.skipUnless(hasattr(os, 'setegid'), 'test needs os.setegid()') + def test_setegid(self): + if os.getuid() != 0: + self.assertRaises(os.error, os.setegid, 0) ++ self.assertRaises(TypeError, os.setegid, 'not an int') + self.assertRaises(OverflowError, os.setegid, 1<<32)
- if hasattr(os, 'setreuid'): - def test_setreuid(self): - if os.getuid() != 0: - self.assertRaises(os.error, os.setreuid, 0, 0) -+ self.assertRaises(TypeError, os.setreuid, 'not an int', 0) -+ self.assertRaises(TypeError, os.setreuid, 0, 'not an int') - self.assertRaises(OverflowError, os.setreuid, 1<<32, 0) - self.assertRaises(OverflowError, os.setreuid, 0, 1<<32) + @unittest.skipUnless(hasattr(os, 'setreuid'), 'test needs os.setreuid()') + def test_setreuid(self): + if os.getuid() != 0: + self.assertRaises(os.error, os.setreuid, 0, 0) ++ self.assertRaises(TypeError, os.setreuid, 'not an int', 0) ++ self.assertRaises(TypeError, os.setreuid, 0, 'not an int') + self.assertRaises(OverflowError, os.setreuid, 1<<32, 0) + self.assertRaises(OverflowError, os.setreuid, 0, 1<<32)
@@ -715,6 +721,8 @@ if sys.platform != 'win32': - def test_setregid(self): - if os.getuid() != 0: - self.assertRaises(os.error, os.setregid, 0, 0) -+ self.assertRaises(TypeError, os.setregid, 'not an int', 0) -+ self.assertRaises(TypeError, os.setregid, 0, 'not an int') - self.assertRaises(OverflowError, os.setregid, 1<<32, 0) - self.assertRaises(OverflowError, os.setregid, 0, 1<<32) + def test_setregid(self): + if os.getuid() != 0: + self.assertRaises(os.error, os.setregid, 0, 0) ++ self.assertRaises(TypeError, os.setregid, 'not an int', 0) ++ self.assertRaises(TypeError, os.setregid, 0, 'not an int') + self.assertRaises(OverflowError, os.setregid, 1<<32, 0) + self.assertRaises(OverflowError, os.setregid, 0, 1<<32)
diff --git a/python/patches/00170-gc-assertions.patch b/python/patches/00170-gc-assertions.patch index 3fb37ff..f3a0838 100644 --- a/python/patches/00170-gc-assertions.patch +++ b/python/patches/00170-gc-assertions.patch @@ -3,8 +3,8 @@ diff -up Python-2.7.3/Lib/test/test_gc.py.gc-assertions Python-2.7.3/Lib/test/te +++ Python-2.7.3/Lib/test/test_gc.py 2013-02-20 16:39:52.720489297 -0500 @@ -1,6 +1,7 @@ import unittest --from test.test_support import verbose, run_unittest -+from test.test_support import verbose, run_unittest, import_module +-from test.test_support import verbose, run_unittest, start_threads ++from test.test_support import verbose, run_unittest, start_threads, import_module import sys +import sysconfig import time diff --git a/python/patches/00173-workaround-ENOPROTOOPT-in-bind_port.patch b/python/patches/00173-workaround-ENOPROTOOPT-in-bind_port.patch index eb34610..3e83d67 100644 --- a/python/patches/00173-workaround-ENOPROTOOPT-in-bind_port.patch +++ b/python/patches/00173-workaround-ENOPROTOOPT-in-bind_port.patch @@ -8,6 +8,7 @@ diff -up Python-2.7.3/Lib/test/test_support.py.rhbz913732 Python-2.7.3/Lib/test/ - if hasattr(socket, 'SO_REUSEPORT'): + if hasattr(socket, 'SO_REUSEPORT') \ + and 'WITHIN_PYTHON_RPM_BUILD' not in os.environ: # rhbz#913732 - if sock.getsockopt(socket.SOL_SOCKET, socket.SO_REUSEPORT) == 1: - raise TestFailed("tests should never set the SO_REUSEPORT " \ - "socket option on TCP/IP sockets!") + try: + if sock.getsockopt(socket.SOL_SOCKET, socket.SO_REUSEPORT) == 1: + raise TestFailed("tests should never set the SO_REUSEPORT " \ + "socket option on TCP/IP sockets!") diff --git a/python/patches/00185-CVE-2013-4238-hostname-check-bypass-in-SSL-module.patch b/python/patches/00185-CVE-2013-4238-hostname-check-bypass-in-SSL-module.patch deleted file mode 100644 index e215589..0000000 --- a/python/patches/00185-CVE-2013-4238-hostname-check-bypass-in-SSL-module.patch +++ /dev/null @@ -1,247 +0,0 @@ -diff -r 9ddc63c039ba Lib/test/nullbytecert.pem ---- /dev/null Thu Jan 01 00:00:00 1970 +0000 -+++ b/Lib/test/nullbytecert.pem Sun Aug 11 18:13:17 2013 +0200 -@@ -0,0 +1,90 @@ -+Certificate: -+ Data: -+ Version: 3 (0x2) -+ Serial Number: 0 (0x0) -+ Signature Algorithm: sha1WithRSAEncryption -+ Issuer: C=US, ST=Oregon, L=Beaverton, O=Python Software Foundation, OU=Python Core Development, CN=null.python.org\x00example.org/emailAddress=python-dev@python.org -+ Validity -+ Not Before: Aug 7 13:11:52 2013 GMT -+ Not After : Aug 7 13:12:52 2013 GMT -+ Subject: C=US, ST=Oregon, L=Beaverton, O=Python Software Foundation, OU=Python Core Development, CN=null.python.org\x00example.org/emailAddress=python-dev@python.org -+ Subject Public Key Info: -+ Public Key Algorithm: rsaEncryption -+ Public-Key: (2048 bit) -+ Modulus: -+ 00:b5:ea:ed:c9:fb:46:7d:6f:3b:76:80:dd:3a:f3: -+ 03:94:0b:a7:a6:db:ec:1d:df:ff:23:74:08:9d:97: -+ 16:3f:a3:a4:7b:3e:1b:0e:96:59:25:03:a7:26:e2: -+ 88:a9:cf:79:cd:f7:04:56:b0:ab:79:32:6e:59:c1: -+ 32:30:54:eb:58:a8:cb:91:f0:42:a5:64:27:cb:d4: -+ 56:31:88:52:ad:cf:bd:7f:f0:06:64:1f:cc:27:b8: -+ a3:8b:8c:f3:d8:29:1f:25:0b:f5:46:06:1b:ca:02: -+ 45:ad:7b:76:0a:9c:bf:bb:b9:ae:0d:16:ab:60:75: -+ ae:06:3e:9c:7c:31:dc:92:2f:29:1a:e0:4b:0c:91: -+ 90:6c:e9:37:c5:90:d7:2a:d7:97:15:a3:80:8f:5d: -+ 7b:49:8f:54:30:d4:97:2c:1c:5b:37:b5:ab:69:30: -+ 68:43:d3:33:78:4b:02:60:f5:3c:44:80:a1:8f:e7: -+ f0:0f:d1:5e:87:9e:46:cf:62:fc:f9:bf:0c:65:12: -+ f1:93:c8:35:79:3f:c8:ec:ec:47:f5:ef:be:44:d5: -+ ae:82:1e:2d:9a:9f:98:5a:67:65:e1:74:70:7c:cb: -+ d3:c2:ce:0e:45:49:27:dc:e3:2d:d4:fb:48:0e:2f: -+ 9e:77:b8:14:46:c0:c4:36:ca:02:ae:6a:91:8c:da: -+ 2f:85 -+ Exponent: 65537 (0x10001) -+ X509v3 extensions: -+ X509v3 Basic Constraints: critical -+ CA:FALSE -+ X509v3 Subject Key Identifier: -+ 88:5A:55:C0:52:FF:61:CD:52:A3:35:0F:EA:5A:9C:24:38:22:F7:5C -+ X509v3 Key Usage: -+ Digital Signature, Non Repudiation, Key Encipherment -+ X509v3 Subject Alternative Name: -+ ************************************************************* -+ WARNING: The values for DNS, email and URI are WRONG. OpenSSL -+ doesn't print the text after a NULL byte. -+ ************************************************************* -+ DNS:altnull.python.org, email:null@python.org, URI:http://null.python.org, IP Address:192.0.2.1, IP Address:2001:DB8:0:0:0:0:0:1 -+ Signature Algorithm: sha1WithRSAEncryption -+ ac:4f:45:ef:7d:49:a8:21:70:8e:88:59:3e:d4:36:42:70:f5: -+ a3:bd:8b:d7:a8:d0:58:f6:31:4a:b1:a4:a6:dd:6f:d9:e8:44: -+ 3c:b6:0a:71:d6:7f:b1:08:61:9d:60:ce:75:cf:77:0c:d2:37: -+ 86:02:8d:5e:5d:f9:0f:71:b4:16:a8:c1:3d:23:1c:f1:11:b3: -+ 56:6e:ca:d0:8d:34:94:e6:87:2a:99:f2:ae:ae:cc:c2:e8:86: -+ de:08:a8:7f:c5:05:fa:6f:81:a7:82:e6:d0:53:9d:34:f4:ac: -+ 3e:40:fe:89:57:7a:29:a4:91:7e:0b:c6:51:31:e5:10:2f:a4: -+ 60:76:cd:95:51:1a:be:8b:a1:b0:fd:ad:52:bd:d7:1b:87:60: -+ d2:31:c7:17:c4:18:4f:2d:08:25:a3:a7:4f:b7:92:ca:e2:f5: -+ 25:f1:54:75:81:9d:b3:3d:61:a2:f7:da:ed:e1:c6:6f:2c:60: -+ 1f:d8:6f:c5:92:05:ab:c9:09:62:49:a9:14:ad:55:11:cc:d6: -+ 4a:19:94:99:97:37:1d:81:5f:8b:cf:a3:a8:96:44:51:08:3d: -+ 0b:05:65:12:eb:b6:70:80:88:48:72:4f:c6:c2:da:cf:cd:8e: -+ 5b:ba:97:2f:60:b4:96:56:49:5e:3a:43:76:63:04:be:2a:f6: -+ c1:ca:a9:94 -+-----BEGIN CERTIFICATE----- -+MIIE2DCCA8CgAwIBAgIBADANBgkqhkiG9w0BAQUFADCBxTELMAkGA1UEBhMCVVMx -+DzANBgNVBAgMBk9yZWdvbjESMBAGA1UEBwwJQmVhdmVydG9uMSMwIQYDVQQKDBpQ -+eXRob24gU29mdHdhcmUgRm91bmRhdGlvbjEgMB4GA1UECwwXUHl0aG9uIENvcmUg -+RGV2ZWxvcG1lbnQxJDAiBgNVBAMMG251bGwucHl0aG9uLm9yZwBleGFtcGxlLm9y -+ZzEkMCIGCSqGSIb3DQEJARYVcHl0aG9uLWRldkBweXRob24ub3JnMB4XDTEzMDgw -+NzEzMTE1MloXDTEzMDgwNzEzMTI1MlowgcUxCzAJBgNVBAYTAlVTMQ8wDQYDVQQI -+DAZPcmVnb24xEjAQBgNVBAcMCUJlYXZlcnRvbjEjMCEGA1UECgwaUHl0aG9uIFNv -+ZnR3YXJlIEZvdW5kYXRpb24xIDAeBgNVBAsMF1B5dGhvbiBDb3JlIERldmVsb3Bt -+ZW50MSQwIgYDVQQDDBtudWxsLnB5dGhvbi5vcmcAZXhhbXBsZS5vcmcxJDAiBgkq -+hkiG9w0BCQEWFXB5dGhvbi1kZXZAcHl0aG9uLm9yZzCCASIwDQYJKoZIhvcNAQEB -+BQADggEPADCCAQoCggEBALXq7cn7Rn1vO3aA3TrzA5QLp6bb7B3f/yN0CJ2XFj+j -+pHs+Gw6WWSUDpybiiKnPec33BFawq3kyblnBMjBU61ioy5HwQqVkJ8vUVjGIUq3P -+vX/wBmQfzCe4o4uM89gpHyUL9UYGG8oCRa17dgqcv7u5rg0Wq2B1rgY+nHwx3JIv -+KRrgSwyRkGzpN8WQ1yrXlxWjgI9de0mPVDDUlywcWze1q2kwaEPTM3hLAmD1PESA -+oY/n8A/RXoeeRs9i/Pm/DGUS8ZPINXk/yOzsR/XvvkTVroIeLZqfmFpnZeF0cHzL -+08LODkVJJ9zjLdT7SA4vnne4FEbAxDbKAq5qkYzaL4UCAwEAAaOB0DCBzTAMBgNV -+HRMBAf8EAjAAMB0GA1UdDgQWBBSIWlXAUv9hzVKjNQ/qWpwkOCL3XDALBgNVHQ8E -+BAMCBeAwgZAGA1UdEQSBiDCBhYIeYWx0bnVsbC5weXRob24ub3JnAGV4YW1wbGUu -+Y29tgSBudWxsQHB5dGhvbi5vcmcAdXNlckBleGFtcGxlLm9yZ4YpaHR0cDovL251 -+bGwucHl0aG9uLm9yZwBodHRwOi8vZXhhbXBsZS5vcmeHBMAAAgGHECABDbgAAAAA -+AAAAAAAAAAEwDQYJKoZIhvcNAQEFBQADggEBAKxPRe99SaghcI6IWT7UNkJw9aO9 -+i9eo0Fj2MUqxpKbdb9noRDy2CnHWf7EIYZ1gznXPdwzSN4YCjV5d+Q9xtBaowT0j -+HPERs1ZuytCNNJTmhyqZ8q6uzMLoht4IqH/FBfpvgaeC5tBTnTT0rD5A/olXeimk -+kX4LxlEx5RAvpGB2zZVRGr6LobD9rVK91xuHYNIxxxfEGE8tCCWjp0+3ksri9SXx -+VHWBnbM9YaL32u3hxm8sYB/Yb8WSBavJCWJJqRStVRHM1koZlJmXNx2BX4vPo6iW -+RFEIPQsFZRLrtnCAiEhyT8bC2s/Njlu6ly9gtJZWSV46Q3ZjBL4q9sHKqZQ= -+-----END CERTIFICATE----- -diff -r 9ddc63c039ba Lib/test/test_ssl.py ---- a/Lib/test/test_ssl.py Sun Aug 11 13:04:50 2013 +0300 -+++ b/Lib/test/test_ssl.py Sun Aug 11 18:13:17 2013 +0200 -@@ -25,6 +25,7 @@ - HOST = test_support.HOST - CERTFILE = None - SVN_PYTHON_ORG_ROOT_CERT = None -+NULLBYTECERT = None - - def handle_error(prefix): - exc_format = ' '.join(traceback.format_exception(*sys.exc_info())) -@@ -123,6 +124,27 @@ - ('DNS', 'projects.forum.nokia.com')) - ) - -+ def test_parse_cert_CVE_2013_4073(self): -+ p = ssl._ssl._test_decode_cert(NULLBYTECERT) -+ if test_support.verbose: -+ sys.stdout.write("\n" + pprint.pformat(p) + "\n") -+ subject = ((('countryName', 'US'),), -+ (('stateOrProvinceName', 'Oregon'),), -+ (('localityName', 'Beaverton'),), -+ (('organizationName', 'Python Software Foundation'),), -+ (('organizationalUnitName', 'Python Core Development'),), -+ (('commonName', 'null.python.org\x00example.org'),), -+ (('emailAddress', 'python-dev@python.org'),)) -+ self.assertEqual(p['subject'], subject) -+ self.assertEqual(p['issuer'], subject) -+ self.assertEqual(p['subjectAltName'], -+ (('DNS', 'altnull.python.org\x00example.com'), -+ ('email', 'null@python.org\x00user@example.org'), -+ ('URI', 'http://null.python.org%5Cx00http://example.org'), -+ ('IP Address', '192.0.2.1'), -+ ('IP Address', '2001:DB8:0:0:0:0:0:1\n')) -+ ) -+ - def test_DER_to_PEM(self): - with open(SVN_PYTHON_ORG_ROOT_CERT, 'r') as f: - pem = f.read() -@@ -1360,7 +1382,7 @@ - - - def test_main(verbose=False): -- global CERTFILE, SVN_PYTHON_ORG_ROOT_CERT, NOKIACERT -+ global CERTFILE, SVN_PYTHON_ORG_ROOT_CERT, NOKIACERT, NULLBYTECERT - CERTFILE = os.path.join(os.path.dirname(__file__) or os.curdir, - "keycert.pem") - SVN_PYTHON_ORG_ROOT_CERT = os.path.join( -@@ -1368,10 +1390,13 @@ - "https_svn_python_org_root.pem") - NOKIACERT = os.path.join(os.path.dirname(__file__) or os.curdir, - "nokia.pem") -+ NULLBYTECERT = os.path.join(os.path.dirname(__file__) or os.curdir, -+ "nullbytecert.pem") - - if (not os.path.exists(CERTFILE) or - not os.path.exists(SVN_PYTHON_ORG_ROOT_CERT) or -- not os.path.exists(NOKIACERT)): -+ not os.path.exists(NOKIACERT) or -+ not os.path.exists(NULLBYTECERT)): - raise test_support.TestFailed("Can't read certificate files!") - - tests = [BasicTests, BasicSocketTests] -diff -r 9ddc63c039ba Modules/_ssl.c ---- a/Modules/_ssl.c Sun Aug 11 13:04:50 2013 +0300 -+++ b/Modules/_ssl.c Sun Aug 11 18:13:17 2013 +0200 -@@ -741,8 +741,13 @@ - - /* get a rendering of each name in the set of names */ - -+ int gntype; -+ ASN1_STRING *as = NULL; -+ - name = sk_GENERAL_NAME_value(names, j); -- if (name->type == GEN_DIRNAME) { -+ gntype = name-> type; -+ switch (gntype) { -+ case GEN_DIRNAME: - - /* we special-case DirName as a tuple of tuples of attributes */ - -@@ -764,11 +769,61 @@ - goto fail; - } - PyTuple_SET_ITEM(t, 1, v); -+ break; - -- } else { -+ case GEN_EMAIL: -+ case GEN_DNS: -+ case GEN_URI: -+ /* GENERAL_NAME_print() doesn't handle NUL bytes in ASN1_string -+ correctly. */ -+ t = PyTuple_New(2); -+ if (t == NULL) -+ goto fail; -+ switch (gntype) { -+ case GEN_EMAIL: -+ v = PyUnicode_FromString("email"); -+ as = name->d.rfc822Name; -+ break; -+ case GEN_DNS: -+ v = PyUnicode_FromString("DNS"); -+ as = name->d.dNSName; -+ break; -+ case GEN_URI: -+ v = PyUnicode_FromString("URI"); -+ as = name->d.uniformResourceIdentifier; -+ break; -+ } -+ if (v == NULL) { -+ Py_DECREF(t); -+ goto fail; -+ } -+ PyTuple_SET_ITEM(t, 0, v); -+ v = PyString_FromStringAndSize((char *)ASN1_STRING_data(as), -+ ASN1_STRING_length(as)); -+ if (v == NULL) { -+ Py_DECREF(t); -+ goto fail; -+ } -+ PyTuple_SET_ITEM(t, 1, v); -+ break; - -+ default: - /* for everything else, we use the OpenSSL print form */ -- -+ switch (gntype) { -+ /* check for new general name type */ -+ case GEN_OTHERNAME: -+ case GEN_X400: -+ case GEN_EDIPARTY: -+ case GEN_IPADD: -+ case GEN_RID: -+ break; -+ default: -+ if (PyErr_Warn(PyExc_RuntimeWarning, -+ "Unknown general name type") == -1) { -+ goto fail; -+ } -+ break; -+ } - (void) BIO_reset(biobuf); - GENERAL_NAME_print(biobuf, name); - len = BIO_gets(biobuf, buf, sizeof(buf)-1); -@@ -794,6 +849,7 @@ - goto fail; - } - PyTuple_SET_ITEM(t, 1, v); -+ break; - } - - /* and add that rendering to the list */ diff --git a/python/patches/00186-memory-leak-marshalc.patch b/python/patches/00186-memory-leak-marshalc.patch deleted file mode 100644 index 19fb175..0000000 --- a/python/patches/00186-memory-leak-marshalc.patch +++ /dev/null @@ -1,57 +0,0 @@ ---- Python-2.7.5/Python/marshal.c 2013-05-12 05:32:53.000000000 +0200 -+++ /home/rkuska/hg/cpython/Python/marshal.c 2013-07-18 10:33:26.392486235 +0200 -@@ -88,7 +88,7 @@ - } - - static void --w_string(char *s, Py_ssize_t n, WFILE *p) -+w_string(const char *s, Py_ssize_t n, WFILE *p) - { - if (p->fp != NULL) { - fwrite(s, 1, n, p->fp); -@@ -141,6 +141,13 @@ - # define W_SIZE w_long - #endif - -+static void -+w_pstring(const char *s, Py_ssize_t n, WFILE *p) -+{ -+ W_SIZE(n, p); -+ w_string(s, n, p); -+} -+ - /* We assume that Python longs are stored internally in base some power of - 2**15; for the sake of portability we'll always read and write them in base - exactly 2**15. */ -@@ -338,9 +345,7 @@ - else { - w_byte(TYPE_STRING, p); - } -- n = PyString_GET_SIZE(v); -- W_SIZE(n, p); -- w_string(PyString_AS_STRING(v), n, p); -+ w_pstring(PyBytes_AS_STRING(v), PyString_GET_SIZE(v), p); - } - #ifdef Py_USING_UNICODE - else if (PyUnicode_CheckExact(v)) { -@@ -352,9 +357,7 @@ - return; - } - w_byte(TYPE_UNICODE, p); -- n = PyString_GET_SIZE(utf8); -- W_SIZE(n, p); -- w_string(PyString_AS_STRING(utf8), n, p); -+ w_pstring(PyString_AS_STRING(utf8), PyString_GET_SIZE(utf8), p); - Py_DECREF(utf8); - } - #endif -@@ -441,8 +444,7 @@ - PyBufferProcs *pb = v->ob_type->tp_as_buffer; - w_byte(TYPE_STRING, p); - n = (*pb->bf_getreadbuffer)(v, 0, (void **)&s); -- W_SIZE(n, p); -- w_string(s, n, p); -+ w_pstring(s, n, p); - } - else { - w_byte(TYPE_UNKNOWN, p); diff --git a/python/patches/05000-autotool-intermediates.patch b/python/patches/05000-autotool-intermediates.patch index cfedc25..dfe0257 100644 --- a/python/patches/05000-autotool-intermediates.patch +++ b/python/patches/05000-autotool-intermediates.patch @@ -43,15 +43,6 @@ diff -up ./configure.autotool-intermediates ./configure --with-wctype-functions use wctype.h functions --with-fpectl enable SIGFPE catching --with-libm=STRING math library -@@ -5171,7 +5181,7 @@ esac - $as_echo_n "checking LIBRARY... " >&6; } - if test -z "$LIBRARY" - then -- LIBRARY='libpython$(VERSION).a' -+ LIBRARY='libpython$(VERSION)$(DEBUG_EXT).a' - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBRARY" >&5 - $as_echo "$LIBRARY" >&6; } @@ -5343,8 +5353,8 @@ $as_echo "#define Py_ENABLE_SHARED 1" >> INSTSONAME="$LDLIBRARY".$SOVERSION ;; @@ -60,7 +51,7 @@ diff -up ./configure.autotool-intermediates ./configure - BLDLIBRARY='-L. -lpython$(VERSION)' + LDLIBRARY='libpython$(VERSION)$(DEBUG_EXT).so' + BLDLIBRARY='-L. -lpython$(VERSION)$(DEBUG_EXT)' - RUNSHARED=LD_LIBRARY_PATH=`pwd`:${LD_LIBRARY_PATH} + RUNSHARED=LD_LIBRARY_PATH=`pwd`${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}} case $ac_sys_system in FreeBSD*) @@ -5367,7 +5377,7 @@ $as_echo "#define Py_ENABLE_SHARED 1" >> @@ -69,7 +60,7 @@ diff -up ./configure.autotool-intermediates ./configure LDLIBRARY='libpython$(VERSION).so' - BLDLIBRARY='-rpath $(LIBDIR) -L. -lpython$(VERSION)' + BLDLIBRARY='-L. -lpython$(VERSION)' - RUNSHARED=LD_LIBRARY_PATH=`pwd`:${LD_LIBRARY_PATH} + RUNSHARED=LD_LIBRARY_PATH=`pwd`${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}} ;; atheos*) @@ -5894,6 +5904,14 @@ $as_echo "no" >&6; } diff --git a/python/patches/python-2.5.1-plural-fix.patch b/python/patches/python-2.5.1-plural-fix.patch index 040adaf..5002cb2 100644 --- a/python/patches/python-2.5.1-plural-fix.patch +++ b/python/patches/python-2.5.1-plural-fix.patch @@ -7,6 +7,6 @@ diff -up Python-2.5.1/Lib/gettext.py.plural Python-2.5.1/Lib/gettext.py continue + if item.startswith("#"): + continue + k = v = None if ':' in item: k, v = item.split(':', 1) - k = k.strip().lower() diff --git a/python/patches/python-2.6-rpath.patch b/python/patches/python-2.6-rpath.patch index 43e3ec4..33d7cf6 100644 --- a/python/patches/python-2.6-rpath.patch +++ b/python/patches/python-2.6-rpath.patch @@ -7,6 +7,6 @@ diff -up Python-2.6/configure.ac.rpath Python-2.6/configure.ac LDLIBRARY='libpython$(VERSION).so' - BLDLIBRARY='-rpath $(LIBDIR) -L. -lpython$(VERSION)' + BLDLIBRARY='-L. -lpython$(VERSION)' - RUNSHARED=LD_LIBRARY_PATH=`pwd`:${LD_LIBRARY_PATH} + RUNSHARED=LD_LIBRARY_PATH=`pwd`${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}} ;; atheos*) diff --git a/python/patches/python-2.7rc1-binutils-no-dep.patch b/python/patches/python-2.7rc1-binutils-no-dep.patch deleted file mode 100644 index ee6157c..0000000 --- a/python/patches/python-2.7rc1-binutils-no-dep.patch +++ /dev/null @@ -1,14 +0,0 @@ -diff -up Python-2.7rc1/Lib/ctypes/util.py.binutils-no-dep Python-2.7rc1/Lib/ctypes/util.py ---- Python-2.7rc1/Lib/ctypes/util.py.binutils-no-dep 2010-03-15 09:42:23.000000000 -0400 -+++ Python-2.7rc1/Lib/ctypes/util.py 2010-06-06 05:03:02.155975210 -0400 -@@ -140,7 +140,9 @@ elif os.name == "posix": - dump = f.read() - rv = f.close() - if rv == 10: -- raise OSError, 'objdump command not found' -+ return os.path.basename(f) # This is good for GLibc, I think, -+ # and a dep on binutils is big (for -+ # live CDs). - f = os.popen(cmd) - try: - data = f.read() diff --git a/python/python-2.7.12-lib64.patch b/python/python-2.7.12-lib64.patch new file mode 100644 index 0000000..00c835c --- /dev/null +++ b/python/python-2.7.12-lib64.patch @@ -0,0 +1,184 @@ +diff --git a/Lib/distutils/command/install.py b/Lib/distutils/command/install.py +index b9f1c6c..7b23714 100644 +--- a/Lib/distutils/command/install.py ++++ b/Lib/distutils/command/install.py +@@ -42,14 +42,14 @@ else: + INSTALL_SCHEMES = { + 'unix_prefix': { + 'purelib': '$base/lib/python$py_version_short/site-packages', +- 'platlib': '$platbase/lib/python$py_version_short/site-packages', ++ 'platlib': '$platbase/lib64/python$py_version_short/site-packages', + 'headers': '$base/include/python$py_version_short/$dist_name', + 'scripts': '$base/bin', + 'data' : '$base', + }, + 'unix_home': { + 'purelib': '$base/lib/python', +- 'platlib': '$base/lib/python', ++ 'platlib': '$base/lib64/python', + 'headers': '$base/include/python/$dist_name', + 'scripts': '$base/bin', + 'data' : '$base', +diff --git a/Lib/distutils/sysconfig.py b/Lib/distutils/sysconfig.py +index 068d1ba..3e7f077 100644 +--- a/Lib/distutils/sysconfig.py ++++ b/Lib/distutils/sysconfig.py +@@ -119,8 +119,12 @@ def get_python_lib(plat_specific=0, standard_lib=0, prefix=None): + prefix = plat_specific and EXEC_PREFIX or PREFIX + + if os.name == "posix": ++ if plat_specific or standard_lib: ++ lib = "lib64" ++ else: ++ lib = "lib" + libpython = os.path.join(prefix, +- "lib", "python" + get_python_version()) ++ lib, "python" + get_python_version()) + if standard_lib: + return libpython + else: +diff --git a/Lib/site.py b/Lib/site.py +index e8433b4..e8e6b50 100644 +--- a/Lib/site.py ++++ b/Lib/site.py +@@ -288,12 +288,16 @@ def getsitepackages(): + if sys.platform in ('os2emx', 'riscos'): + sitepackages.append(os.path.join(prefix, "Lib", "site-packages")) + elif os.sep == '/': ++ sitepackages.append(os.path.join(prefix, "lib64", ++ "python" + sys.version[:3], ++ "site-packages")) + sitepackages.append(os.path.join(prefix, "lib", + "python" + sys.version[:3], + "site-packages")) + sitepackages.append(os.path.join(prefix, "lib", "site-python")) + else: + sitepackages.append(prefix) ++ sitepackages.append(os.path.join(prefix, "lib64", "site-packages")) + sitepackages.append(os.path.join(prefix, "lib", "site-packages")) + if sys.platform == "darwin": + # for framework builds *only* we add the standard Apple +diff --git a/Lib/test/test_site.py b/Lib/test/test_site.py +index 78c4809..3b9e74d 100644 +--- a/Lib/test/test_site.py ++++ b/Lib/test/test_site.py +@@ -246,17 +246,20 @@ class HelperFunctionsTests(unittest.TestCase): + self.assertEqual(dirs[2], wanted) + elif os.sep == '/': + # OS X non-framwework builds, Linux, FreeBSD, etc +- self.assertEqual(len(dirs), 2) +- wanted = os.path.join('xoxo', 'lib', 'python' + sys.version[:3], ++ self.assertEqual(len(dirs), 3) ++ wanted = os.path.join('xoxo', 'lib64', 'python' + sys.version[:3], + 'site-packages') + self.assertEqual(dirs[0], wanted) +- wanted = os.path.join('xoxo', 'lib', 'site-python') ++ wanted = os.path.join('xoxo', 'lib', 'python' + sys.version[:3], ++ 'site-packages') + self.assertEqual(dirs[1], wanted) ++ wanted = os.path.join('xoxo', 'lib', 'site-python') ++ self.assertEqual(dirs[2], wanted) + else: + # other platforms + self.assertEqual(len(dirs), 2) + self.assertEqual(dirs[0], 'xoxo') +- wanted = os.path.join('xoxo', 'lib', 'site-packages') ++ wanted = os.path.join('xoxo', 'lib64', 'site-packages') + self.assertEqual(dirs[1], wanted) + + class PthFile(object): +diff --git a/Makefile.pre.in b/Makefile.pre.in +index 5741a4c..0faa5c5 100644 +--- a/Makefile.pre.in ++++ b/Makefile.pre.in +@@ -111,7 +111,7 @@ LIBDIR= @libdir@ + MANDIR= @mandir@ + INCLUDEDIR= @includedir@ + CONFINCLUDEDIR= $(exec_prefix)/include +-SCRIPTDIR= $(prefix)/lib ++SCRIPTDIR= $(prefix)/lib64 + + # Detailed destination directories + BINLIBDEST= $(LIBDIR)/python$(VERSION) +diff --git a/Modules/Setup.dist b/Modules/Setup.dist +index c70a0d6..051fd41 100644 +--- a/Modules/Setup.dist ++++ b/Modules/Setup.dist +@@ -416,7 +416,7 @@ gdbm gdbmmodule.c -lgdbm + # Edit the variables DB and DBLIBVERto point to the db top directory + # and the subdirectory of PORT where you built it. + DBINC=/usr/include/libdb +-DBLIB=/usr/lib ++DBLIB=/usr/lib64 + _bsddb _bsddb.c -I$(DBINC) -L$(DBLIB) -ldb + + # Historical Berkeley DB 1.85 +@@ -462,7 +462,7 @@ cPickle cPickle.c + # Andrew Kuchling's zlib module. + # This require zlib 1.1.3 (or later). + # See http://www.gzip.org/zlib/ +-zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz ++zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib64 -lz + + # Interface to the Expat XML parser + # +diff --git a/Modules/getpath.c b/Modules/getpath.c +index 428684c..9ef6711 100644 +--- a/Modules/getpath.c ++++ b/Modules/getpath.c +@@ -108,7 +108,7 @@ static char prefix[MAXPATHLEN+1]; + static char exec_prefix[MAXPATHLEN+1]; + static char progpath[MAXPATHLEN+1]; + static char *module_search_path = NULL; +-static char lib_python[] = "lib/python" VERSION; ++static char lib_python[] = "lib64/python" VERSION; + + static void + reduce(char *dir) +@@ -550,7 +550,7 @@ calculate_path(void) + fprintf(stderr, + "Could not find platform dependent libraries <exec_prefix>\n"); + strncpy(exec_prefix, EXEC_PREFIX, MAXPATHLEN); +- joinpath(exec_prefix, "lib/lib-dynload"); ++ joinpath(exec_prefix, "lib64/lib-dynload"); + } + /* If we found EXEC_PREFIX do *not* reduce it! (Yet.) */ + +diff --git a/setup.py b/setup.py +index 55c4f5d..19efe82 100644 +--- a/setup.py ++++ b/setup.py +@@ -456,7 +456,7 @@ class PyBuildExt(build_ext): + def detect_modules(self): + # Ensure that /usr/local is always used + if not cross_compiling: +- add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib') ++ add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib64') + add_dir_to_list(self.compiler.include_dirs, '/usr/local/include') + if cross_compiling: + self.add_gcc_paths() +@@ -782,11 +782,11 @@ class PyBuildExt(build_ext): + elif curses_library: + readline_libs.append(curses_library) + elif self.compiler.find_library_file(lib_dirs + +- ['/usr/lib/termcap'], ++ ['/usr/lib64/termcap'], + 'termcap'): + readline_libs.append('termcap') + exts.append( Extension('readline', ['readline.c'], +- library_dirs=['/usr/lib/termcap'], ++ library_dirs=['/usr/lib64/termcap'], + extra_link_args=readline_extra_link_args, + libraries=readline_libs) ) + else: +@@ -821,8 +821,8 @@ class PyBuildExt(build_ext): + if krb5_h: + ssl_incs += krb5_h + ssl_libs = find_library_file(self.compiler, 'ssl',lib_dirs, +- ['/usr/local/ssl/lib', +- '/usr/contrib/ssl/lib/' ++ ['/usr/local/ssl/lib64', ++ '/usr/contrib/ssl/lib64/' + ] ) + + if (ssl_incs is not None and diff --git a/python/python-2.7.3-lib64.patch b/python/python-2.7.3-lib64.patch deleted file mode 100644 index 71f32c5..0000000 --- a/python/python-2.7.3-lib64.patch +++ /dev/null @@ -1,196 +0,0 @@ -diff -up Python-2.7.3/Lib/distutils/command/install.py.lib64 Python-2.7.3/Lib/distutils/command/install.py ---- Python-2.7.3/Lib/distutils/command/install.py.lib64 2012-04-09 19:07:29.000000000 -0400 -+++ Python-2.7.3/Lib/distutils/command/install.py 2013-02-19 13:58:20.446015129 -0500 -@@ -42,14 +42,14 @@ else: - INSTALL_SCHEMES = { - 'unix_prefix': { - 'purelib': '$base/lib/python$py_version_short/site-packages', -- 'platlib': '$platbase/lib/python$py_version_short/site-packages', -+ 'platlib': '$platbase/lib64/python$py_version_short/site-packages', - 'headers': '$base/include/python$py_version_short/$dist_name', - 'scripts': '$base/bin', - 'data' : '$base', - }, - 'unix_home': { - 'purelib': '$base/lib/python', -- 'platlib': '$base/lib/python', -+ 'platlib': '$base/lib64/python', - 'headers': '$base/include/python/$dist_name', - 'scripts': '$base/bin', - 'data' : '$base', -diff -up Python-2.7.3/Lib/distutils/sysconfig.py.lib64 Python-2.7.3/Lib/distutils/sysconfig.py ---- Python-2.7.3/Lib/distutils/sysconfig.py.lib64 2012-04-09 19:07:29.000000000 -0400 -+++ Python-2.7.3/Lib/distutils/sysconfig.py 2013-02-19 13:58:20.446015129 -0500 -@@ -114,8 +114,12 @@ def get_python_lib(plat_specific=0, stan - prefix = plat_specific and EXEC_PREFIX or PREFIX - - if os.name == "posix": -+ if plat_specific or standard_lib: -+ lib = "lib64" -+ else: -+ lib = "lib" - libpython = os.path.join(prefix, -- "lib", "python" + get_python_version()) -+ lib, "python" + get_python_version()) - if standard_lib: - return libpython - else: -diff -up Python-2.7.3/Lib/site.py.lib64 Python-2.7.3/Lib/site.py ---- Python-2.7.3/Lib/site.py.lib64 2012-04-09 19:07:31.000000000 -0400 -+++ Python-2.7.3/Lib/site.py 2013-02-19 13:58:20.447015128 -0500 -@@ -300,12 +300,16 @@ def getsitepackages(): - if sys.platform in ('os2emx', 'riscos'): - sitepackages.append(os.path.join(prefix, "Lib", "site-packages")) - elif os.sep == '/': -+ sitepackages.append(os.path.join(prefix, "lib64", -+ "python" + sys.version[:3], -+ "site-packages")) - sitepackages.append(os.path.join(prefix, "lib", - "python" + sys.version[:3], - "site-packages")) - sitepackages.append(os.path.join(prefix, "lib", "site-python")) - else: - sitepackages.append(prefix) -+ sitepackages.append(os.path.join(prefix, "lib64", "site-packages")) - sitepackages.append(os.path.join(prefix, "lib", "site-packages")) - if sys.platform == "darwin": - # for framework builds *only* we add the standard Apple -diff -up Python-2.7.3/Lib/test/test_site.py.lib64 Python-2.7.3/Lib/test/test_site.py ---- Python-2.7.3/Lib/test/test_site.py.lib64 2012-04-09 19:07:32.000000000 -0400 -+++ Python-2.7.3/Lib/test/test_site.py 2013-02-19 13:58:20.447015128 -0500 -@@ -241,17 +241,20 @@ class HelperFunctionsTests(unittest.Test - self.assertEqual(dirs[2], wanted) - elif os.sep == '/': - # OS X non-framwework builds, Linux, FreeBSD, etc -- self.assertEqual(len(dirs), 2) -- wanted = os.path.join('xoxo', 'lib', 'python' + sys.version[:3], -+ self.assertEqual(len(dirs), 3) -+ wanted = os.path.join('xoxo', 'lib64', 'python' + sys.version[:3], - 'site-packages') - self.assertEqual(dirs[0], wanted) -- wanted = os.path.join('xoxo', 'lib', 'site-python') -+ wanted = os.path.join('xoxo', 'lib', 'python' + sys.version[:3], -+ 'site-packages') - self.assertEqual(dirs[1], wanted) -+ wanted = os.path.join('xoxo', 'lib', 'site-python') -+ self.assertEqual(dirs[2], wanted) - else: - # other platforms - self.assertEqual(len(dirs), 2) - self.assertEqual(dirs[0], 'xoxo') -- wanted = os.path.join('xoxo', 'lib', 'site-packages') -+ wanted = os.path.join('xoxo', 'lib64', 'site-packages') - self.assertEqual(dirs[1], wanted) - - class PthFile(object): -diff -up Python-2.7.3/Makefile.pre.in.lib64 Python-2.7.3/Makefile.pre.in ---- Python-2.7.3/Makefile.pre.in.lib64 2013-02-19 13:58:20.435015131 -0500 -+++ Python-2.7.3/Makefile.pre.in 2013-02-19 13:58:20.447015128 -0500 -@@ -97,7 +97,7 @@ LIBDIR= @libdir@ - MANDIR= @mandir@ - INCLUDEDIR= @includedir@ - CONFINCLUDEDIR= $(exec_prefix)/include --SCRIPTDIR= $(prefix)/lib -+SCRIPTDIR= $(prefix)/lib64 - - # Detailed destination directories - BINLIBDEST= $(LIBDIR)/python$(VERSION) -diff -up Python-2.7.3/Modules/getpath.c.lib64 Python-2.7.3/Modules/getpath.c ---- Python-2.7.3/Modules/getpath.c.lib64 2012-04-09 19:07:34.000000000 -0400 -+++ Python-2.7.3/Modules/getpath.c 2013-02-19 13:58:20.448015128 -0500 -@@ -117,8 +117,8 @@ - #endif - - #ifndef PYTHONPATH --#define PYTHONPATH PREFIX "/lib/python" VERSION ":" \ -- EXEC_PREFIX "/lib/python" VERSION "/lib-dynload" -+#define PYTHONPATH PREFIX "/lib64/python" VERSION ":" \ -+ EXEC_PREFIX "/lib64/python" VERSION "/lib-dynload" - #endif - - #ifndef LANDMARK -@@ -129,7 +129,7 @@ static char prefix[MAXPATHLEN+1]; - static char exec_prefix[MAXPATHLEN+1]; - static char progpath[MAXPATHLEN+1]; - static char *module_search_path = NULL; --static char lib_python[] = "lib/python" VERSION; -+static char lib_python[] = "lib64/python" VERSION; - - static void - reduce(char *dir) -@@ -528,7 +528,7 @@ calculate_path(void) - } - else - strncpy(zip_path, PREFIX, MAXPATHLEN); -- joinpath(zip_path, "lib/python00.zip"); -+ joinpath(zip_path, "lib64/python00.zip"); - bufsz = strlen(zip_path); /* Replace "00" with version */ - zip_path[bufsz - 6] = VERSION[0]; - zip_path[bufsz - 5] = VERSION[2]; -@@ -538,7 +538,7 @@ calculate_path(void) - fprintf(stderr, - "Could not find platform dependent libraries <exec_prefix>\n"); - strncpy(exec_prefix, EXEC_PREFIX, MAXPATHLEN); -- joinpath(exec_prefix, "lib/lib-dynload"); -+ joinpath(exec_prefix, "lib64/lib-dynload"); - } - /* If we found EXEC_PREFIX do *not* reduce it! (Yet.) */ - -diff -up Python-2.7.3/Modules/Setup.dist.lib64 Python-2.7.3/Modules/Setup.dist ---- Python-2.7.3/Modules/Setup.dist.lib64 2013-02-19 13:58:20.442015131 -0500 -+++ Python-2.7.3/Modules/Setup.dist 2013-02-19 14:02:25.255998391 -0500 -@@ -413,7 +413,7 @@ gdbm gdbmmodule.c -lgdbm - # Edit the variables DB and DBLIBVERto point to the db top directory - # and the subdirectory of PORT where you built it. - DBINC=/usr/include/libdb --DBLIB=/usr/lib -+DBLIB=/usr/lib64 - _bsddb _bsddb.c -I$(DBINC) -L$(DBLIB) -ldb - - # Historical Berkeley DB 1.85 -@@ -459,7 +459,7 @@ cPickle cPickle.c - # Andrew Kuchling's zlib module. - # This require zlib 1.1.3 (or later). - # See http://www.gzip.org/zlib/ --zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz -+zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib64 -lz - - # Interface to the Expat XML parser - # -diff -up Python-2.7.3/setup.py.lib64 Python-2.7.3/setup.py ---- Python-2.7.3/setup.py.lib64 2012-04-09 19:07:36.000000000 -0400 -+++ Python-2.7.3/setup.py 2013-02-19 13:58:20.449015129 -0500 -@@ -369,7 +369,7 @@ class PyBuildExt(build_ext): - - def detect_modules(self): - # Ensure that /usr/local is always used -- add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib') -+ add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib64') - add_dir_to_list(self.compiler.include_dirs, '/usr/local/include') - self.add_gcc_paths() - self.add_multiarch_paths() -@@ -677,11 +677,11 @@ class PyBuildExt(build_ext): - elif curses_library: - readline_libs.append(curses_library) - elif self.compiler.find_library_file(lib_dirs + -- ['/usr/lib/termcap'], -+ ['/usr/lib64/termcap'], - 'termcap'): - readline_libs.append('termcap') - exts.append( Extension('readline', ['readline.c'], -- library_dirs=['/usr/lib/termcap'], -+ library_dirs=['/usr/lib64/termcap'], - extra_link_args=readline_extra_link_args, - libraries=readline_libs) ) - else: -@@ -715,8 +715,8 @@ class PyBuildExt(build_ext): - if krb5_h: - ssl_incs += krb5_h - ssl_libs = find_library_file(self.compiler, 'ssl',lib_dirs, -- ['/usr/local/ssl/lib', -- '/usr/contrib/ssl/lib/' -+ ['/usr/local/ssl/lib64', -+ '/usr/contrib/ssl/lib64/' - ] ) - - if (ssl_incs is not None and diff --git a/python/python.nm b/python/python.nm index 84704b5..0123eb9 100644 --- a/python/python.nm +++ b/python/python.nm @@ -5,8 +5,8 @@
name = python major_ver = 2.7 -version = %{major_ver}.5 -release = 2 +version = %{major_ver}.12 +release = 1 thisapp = Python-%{version}
groups = Development/Languages @@ -35,7 +35,6 @@ build glibc-headers >= 2.16-4 libdb-devel libffi-devel - libselinux-devel ncurses-devel openssl-devel pakfire-builder >= 0.9.23-4 @@ -51,7 +50,7 @@ build export OPT = %{CFLAGS}
if "%{lib}" == "lib64" - patches += %{DIR_SOURCE}/python-2.7.3-lib64.patch + patches += %{DIR_SOURCE}/python-2.7.12-lib64.patch patches += %{DIR_SOURCE}/python-2.7-lib64-sysconfig.patch end
diff --git a/smartmontools/smartmontools.nm b/smartmontools/smartmontools.nm index 222d5d9..9e85375 100644 --- a/smartmontools/smartmontools.nm +++ b/smartmontools/smartmontools.nm @@ -5,7 +5,7 @@
name = smartmontools version = 6.5 -release = 1 +release = 2
groups = System/Statistics url = http://smartmontools.sourceforge.net/ @@ -13,11 +13,11 @@ license = GPLv2 summary = A set of tools that watches HDD S.M.A.R.T status.
description - The smartmontools package contains two utility programs (smartctl \ - and smartd) to control and monitor storage systems using the \ - Self-Monitoring, Analysis and Reporting Technology System (SMART) \ - built into most modern ATA and SCSI harddisks. In many cases, \ - these utilities will provide advanced warning of disk degradation \ + The smartmontools package contains two utility programs (smartctl + and smartd) to control and monitor storage systems using the + Self-Monitoring, Analysis and Reporting Technology System (SMART) + built into most modern ATA and SCSI harddisks. In many cases, + these utilities will provide advanced warning of disk degradation and failure. end
@@ -26,21 +26,56 @@ source_dl = http://sourceforge.net/projects/smartmontools/files/smartmontools/% build requires gcc-c++ - libselinux-devel + libcap-ng-devel end
configure_options += \ - --mandir=/usr/share/man \ - --sysconfdir=/etc \ - --with-selinux + --mandir=%{mandir} \ + --sysconfdir=%{sysconfdir}/%{name} \ + --with-libcap-ng=yes \ + --with-systemdsystemunitdir=%{unitdir} + + test + make check + end
install_cmds + # Drop old sysvinit script. rm -rvf %{BUILDROOT}/etc/rc.d + + # Fix sysconfig path in systemd file. + sed -i 's|/etc/smartmontools/sysconfig|/etc/sysconfig|g' \ + %{BUILDROOT}%{unitdir}/smartd.service end end
packages package %{name} + configfiles + %{sysconfdir}/smartmontools/smartd.conf + end + + prerequires + systemd-units + end + + script postin + systemctl daemon-reload >/dev/null 2>&1 || : + end + + script preun + systemctl --no-reload disable smartd.service >/dev/null 2>&1 || : + systemctl stop smartd.service >/dev/null 2>&1 || : + end + + script postun + systemctl daemon-reload >/dev/null 2>&1 || : + end + + script postup + systemctl daemon-reload >/dev/null 2>&1 || : + systemctl try-restart smartd.service >/dev/null 2>&1 || : + end end
package %{name}-debuginfo diff --git a/sudo/sudo.nm b/sudo/sudo.nm index 5087c1e..1b2dcb1 100644 --- a/sudo/sudo.nm +++ b/sudo/sudo.nm @@ -4,8 +4,8 @@ ###############################################################################
name = sudo -version = 1.8.17p1 -release = 1 +version = 1.8.18p1 +release = 2
groups = Applications/System url = http://www.sudo.ws/ @@ -30,29 +30,39 @@ build requires audit-devel cyrus-sasl-devel - libselinux-devel openldap-devel pam-devel end
+ export LD_LIBRARY_PATH = %{DIR_APP}/lib/util/.libs/ + configure_options += \ --libexecdir=%{libdir} \ --with-logging=syslog \ --with-logfac=authpriv \ --with-pam \ --with-pam-login \ - --with-editor=/usr/bin/vi \ + --with-editor=%{bindir}/vi \ --with-env-editor \ --with-ignore-dot \ --with-tty-tickets \ --with-ldap \ --with-passprompt="[sudo] password for %p: " \ - --with-selinux \ --with-linux-audit
+ prepare_cmds + # The tarball contains files owned by a stange uid:gid which will let + # the testsuite (testsudoers/test3) fail. Fix the ownership of this files. + chown -R 0:0 %{DIR_APP} + end + + test + make check + end + install_cmds - mkdir -pv %{BUILDROOT}/etc - cp -vf %{DIR_SOURCE}/sudoers %{BUILDROOT}/etc/sudoers + mkdir -pv %{BUILDROOT}%{sysconfdir} + cp -vf %{DIR_SOURCE}/sudoers %{BUILDROOT}%{sysconfdir}/sudoers end end
@@ -61,7 +71,7 @@ packages groups += Base
configfiles - /etc/sudoers + %{sysconfdir}/sudoers end end
hooks/post-receive -- IPFire 3.x development tree