From 623ee73d661e5ed8475cb264511f683407d87365 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Sun, 12 Apr 2020 03:41:30 +0100 Subject: gentoo Easter resync : 12.04.2020 --- sys-libs/Manifest.gz | Bin 14411 -> 14597 bytes sys-libs/argp-standalone/Manifest | 2 +- .../argp-standalone/argp-standalone-1.3-r2.ebuild | 2 +- sys-libs/binutils-libs/Manifest | 8 +- .../binutils-libs/binutils-libs-2.32-r1.ebuild | 2 +- .../binutils-libs/binutils-libs-2.33.1-r1.ebuild | 2 +- sys-libs/binutils-libs/binutils-libs-2.33.1.ebuild | 120 -- sys-libs/binutils-libs/binutils-libs-2.34.ebuild | 11 +- sys-libs/compiler-rt-sanitizers/Manifest | 8 +- .../compiler-rt-sanitizers-10.0.0.ebuild | 146 ++ .../compiler-rt-sanitizers-10.0.0_rc1.ebuild | 158 --- .../compiler-rt-sanitizers-10.0.0_rc2.ebuild | 146 -- .../compiler-rt-sanitizers-9.0.1.ebuild | 2 +- sys-libs/compiler-rt/Manifest | 8 +- sys-libs/compiler-rt/compiler-rt-10.0.0.ebuild | 110 ++ sys-libs/compiler-rt/compiler-rt-10.0.0_rc1.ebuild | 110 -- sys-libs/compiler-rt/compiler-rt-10.0.0_rc2.ebuild | 110 -- sys-libs/compiler-rt/compiler-rt-9.0.1.ebuild | 2 +- sys-libs/cracklib/Manifest | 4 +- sys-libs/cracklib/cracklib-2.9.6-r2.ebuild | 2 +- sys-libs/cracklib/cracklib-2.9.7.ebuild | 2 +- sys-libs/db/Manifest | 34 +- sys-libs/db/db-1.85-r4.ebuild | 2 +- sys-libs/db/db-18.1.32.ebuild | 4 +- sys-libs/db/db-3.2.9_p2-r1.ebuild | 2 +- sys-libs/db/db-4.2.52_p5-r2.ebuild | 185 --- sys-libs/db/db-4.2.52_p5-r3.ebuild | 185 +++ sys-libs/db/db-4.3.29_p1-r2.ebuild | 184 --- sys-libs/db/db-4.3.29_p1-r3.ebuild | 184 +++ sys-libs/db/db-4.4.20_p4-r2.ebuild | 178 --- sys-libs/db/db-4.4.20_p4-r3.ebuild | 178 +++ sys-libs/db/db-4.5.20_p2-r2.ebuild | 190 --- sys-libs/db/db-4.5.20_p2-r3.ebuild | 190 +++ sys-libs/db/db-4.6.21_p4-r1.ebuild | 179 --- sys-libs/db/db-4.6.21_p4-r2.ebuild | 179 +++ sys-libs/db/db-4.7.25_p4-r1.ebuild | 186 --- sys-libs/db/db-4.7.25_p4-r2.ebuild | 186 +++ sys-libs/db/db-4.8.30-r3.ebuild | 2 +- sys-libs/db/db-5.1.29-r2.ebuild | 4 +- sys-libs/db/db-5.3.28-r2.ebuild | 2 +- sys-libs/db/db-5.3.28-r4.ebuild | 4 +- sys-libs/db/db-6.0.35-r2.ebuild | 4 +- sys-libs/db/db-6.1.38.ebuild | 4 +- sys-libs/db/db-6.2.38.ebuild | 4 +- sys-libs/db/metadata.xml | 3 - sys-libs/e2fsprogs-libs/Manifest | 6 +- .../e2fsprogs-libs/e2fsprogs-libs-1.45.4.ebuild | 2 +- .../e2fsprogs-libs/e2fsprogs-libs-1.45.5.ebuild | 2 +- .../e2fsprogs-libs/e2fsprogs-libs-1.45.6.ebuild | 94 ++ sys-libs/efivar/Manifest | 2 +- sys-libs/efivar/efivar-37.ebuild | 2 +- sys-libs/gdbm/Manifest | 10 +- sys-libs/gdbm/gdbm-1.13-r2.ebuild | 2 +- sys-libs/gdbm/gdbm-1.14.1.ebuild | 4 +- sys-libs/gdbm/gdbm-1.17.ebuild | 4 +- sys-libs/gdbm/gdbm-1.18.1.ebuild | 4 +- sys-libs/gdbm/gdbm-1.18.ebuild | 4 +- sys-libs/glibc/Manifest | 38 +- sys-libs/glibc/glibc-2.24-r4.ebuild | 4 +- sys-libs/glibc/glibc-2.25-r11.ebuild | 4 +- sys-libs/glibc/glibc-2.26-r7.ebuild | 4 +- sys-libs/glibc/glibc-2.27-r6.ebuild | 2 +- sys-libs/glibc/glibc-2.28-r6.ebuild | 3 +- sys-libs/glibc/glibc-2.29-r2.ebuild | 1455 ------------------- sys-libs/glibc/glibc-2.29-r7.ebuild | 67 +- sys-libs/glibc/glibc-2.29-r8.ebuild | 1431 +++++++++++++++++++ sys-libs/glibc/glibc-2.30-r2.ebuild | 1488 ------------------- sys-libs/glibc/glibc-2.30-r3.ebuild | 1490 ------------------- sys-libs/glibc/glibc-2.30-r4.ebuild | 1490 ------------------- sys-libs/glibc/glibc-2.30-r7.ebuild | 1471 +++++++++++++++++++ sys-libs/glibc/glibc-2.30-r8.ebuild | 1471 +++++++++++++++++++ sys-libs/glibc/glibc-2.31-r1.ebuild | 1493 -------------------- sys-libs/glibc/glibc-2.31-r2.ebuild | 1444 +++++++++++++++++++ sys-libs/glibc/glibc-2.31.ebuild | 1493 -------------------- sys-libs/glibc/glibc-9999.ebuild | 127 +- sys-libs/glibc/metadata.xml | 1 + sys-libs/gpm/Manifest | 2 +- sys-libs/gpm/gpm-1.20.7-r2.ebuild | 2 +- sys-libs/kpmcore/Manifest | 4 +- sys-libs/kpmcore/kpmcore-4.0.1.ebuild | 40 - sys-libs/kpmcore/kpmcore-4.1.0.ebuild | 2 +- sys-libs/ldb/Manifest | 32 +- .../ldb/files/ldb-1.1.27-optional_packages.patch | 92 -- sys-libs/ldb/files/ldb-1.1.29-disable-python.patch | 48 - .../ldb/files/ldb-1.1.31-optional_packages.patch | 57 - .../files/ldb-1.1.31-talloc-disable-python.patch | 34 - sys-libs/ldb/files/ldb-1.2.3-disable_python.patch | 64 - .../ldb/files/ldb-1.4.0-optional_packages.patch | 45 - sys-libs/ldb/ldb-1.1.29-r1.ebuild | 102 -- sys-libs/ldb/ldb-1.1.31.ebuild | 104 -- sys-libs/ldb/ldb-1.2.4.ebuild | 103 -- sys-libs/ldb/ldb-1.3.6.ebuild | 103 -- sys-libs/ldb/ldb-1.3.8.ebuild | 103 -- sys-libs/ldb/ldb-1.4.8.ebuild | 105 -- sys-libs/ldb/ldb-1.5.4.ebuild | 105 -- sys-libs/ldb/ldb-1.5.6.ebuild | 105 -- sys-libs/ldb/ldb-1.6.3.ebuild | 105 -- sys-libs/ldb/ldb-2.0.7.ebuild | 105 -- sys-libs/ldb/ldb-2.0.8.ebuild | 6 +- sys-libs/ldb/ldb-2.0.9.ebuild | 108 ++ sys-libs/ldb/ldb-2.1.1.ebuild | 108 ++ sys-libs/libapparmor/Manifest | 2 + sys-libs/libapparmor/libapparmor-2.13.4.ebuild | 98 ++ sys-libs/libavc1394/Manifest | 3 +- sys-libs/libavc1394/libavc1394-0.5.4-r1.ebuild | 19 - sys-libs/libavc1394/libavc1394-0.5.4-r2.ebuild | 2 +- sys-libs/libblockdev/Manifest | 2 +- sys-libs/libblockdev/libblockdev-2.20-r2.ebuild | 2 +- sys-libs/libcap-ng/Manifest | 6 +- sys-libs/libcap-ng/libcap-ng-0.7.10.ebuild | 2 +- sys-libs/libcap-ng/libcap-ng-0.7.8.ebuild | 100 -- sys-libs/libcap-ng/libcap-ng-0.7.9.ebuild | 94 -- sys-libs/libcap/Manifest | 11 +- .../files/libcap-2.33-build-system-fixes.patch | 214 +++ sys-libs/libcap/libcap-2.26-r2.ebuild | 2 +- sys-libs/libcap/libcap-2.27.ebuild | 4 +- sys-libs/libcap/libcap-2.31.ebuild | 84 -- sys-libs/libcap/libcap-2.32.ebuild | 2 +- sys-libs/libcap/libcap-2.33.ebuild | 84 ++ sys-libs/libcxx/Manifest | 8 +- sys-libs/libcxx/libcxx-10.0.0.ebuild | 206 +++ sys-libs/libcxx/libcxx-10.0.0_rc1.ebuild | 211 --- sys-libs/libcxx/libcxx-10.0.0_rc2.ebuild | 206 --- sys-libs/libcxx/libcxx-9.0.1.ebuild | 2 +- sys-libs/libcxxabi/Manifest | 8 +- sys-libs/libcxxabi/libcxxabi-10.0.0.ebuild | 119 ++ sys-libs/libcxxabi/libcxxabi-10.0.0_rc1.ebuild | 119 -- sys-libs/libcxxabi/libcxxabi-10.0.0_rc2.ebuild | 119 -- sys-libs/libcxxabi/libcxxabi-9.0.1.ebuild | 2 +- sys-libs/libfaketime/Manifest | 7 +- sys-libs/libfaketime/libfaketime-0.9.6-r1.ebuild | 32 - sys-libs/libfaketime/libfaketime-0.9.6-r2.ebuild | 6 +- sys-libs/libfaketime/libfaketime-0.9.7.ebuild | 8 +- sys-libs/libfaketime/libfaketime-0.9.8.ebuild | 59 + sys-libs/libkudzu/Manifest | 2 +- sys-libs/libkudzu/libkudzu-1.2.57.1.ebuild | 2 +- sys-libs/libnih/Manifest | 2 +- sys-libs/libnih/libnih-1.0.3-r3.ebuild | 2 +- sys-libs/libomp/Manifest | 16 +- sys-libs/libomp/libomp-10.0.0.9999.ebuild | 2 +- sys-libs/libomp/libomp-10.0.0.ebuild | 106 ++ sys-libs/libomp/libomp-10.0.0_rc1.ebuild | 106 -- sys-libs/libomp/libomp-10.0.0_rc2.ebuild | 106 -- sys-libs/libomp/libomp-11.0.0.9999.ebuild | 2 +- sys-libs/libomp/libomp-7.1.0.ebuild | 4 +- sys-libs/libomp/libomp-8.0.1.ebuild | 4 +- sys-libs/libomp/libomp-9.0.1.ebuild | 4 +- sys-libs/libosinfo/Manifest | 4 +- sys-libs/libosinfo/libosinfo-1.4.0.ebuild | 63 - sys-libs/libosinfo/libosinfo-1.6.0.ebuild | 2 +- sys-libs/libraw1394/Manifest | 7 +- sys-libs/libraw1394/libraw1394-2.1.0-r1.ebuild | 20 - sys-libs/libraw1394/libraw1394-2.1.1.ebuild | 20 - sys-libs/libraw1394/libraw1394-2.1.2-r1.ebuild | 2 +- sys-libs/libraw1394/libraw1394-2.1.2.ebuild | 20 - sys-libs/libseccomp/Manifest | 6 +- sys-libs/libseccomp/libseccomp-2.4.0.ebuild | 41 - sys-libs/libseccomp/libseccomp-2.4.1.ebuild | 41 - sys-libs/libseccomp/libseccomp-2.4.3.ebuild | 41 + sys-libs/libsmbios/Manifest | 2 +- sys-libs/libsmbios/libsmbios-2.4.2.ebuild | 2 +- sys-libs/libunwind/Manifest | 6 +- sys-libs/libunwind/libunwind-1.2.1-r3.ebuild | 6 +- sys-libs/libunwind/libunwind-1.3.1.ebuild | 16 +- sys-libs/libunwind/libunwind-1.4.0.ebuild | 102 ++ sys-libs/liburing/Manifest | 3 + sys-libs/liburing/liburing-0.5.ebuild | 44 + sys-libs/liburing/metadata.xml | 11 + sys-libs/libutempter/Manifest | 2 +- sys-libs/libutempter/libutempter-1.1.6-r2.ebuild | 69 - sys-libs/libutempter/libutempter-1.1.6-r3.ebuild | 70 + sys-libs/libxcrypt/Manifest | 2 + sys-libs/libxcrypt/libxcrypt-4.4.16.ebuild | 163 +++ sys-libs/llvm-libunwind/Manifest | 8 +- .../llvm-libunwind/llvm-libunwind-10.0.0.ebuild | 126 ++ .../llvm-libunwind-10.0.0_rc1.ebuild | 126 -- .../llvm-libunwind-10.0.0_rc2.ebuild | 126 -- .../llvm-libunwind/llvm-libunwind-9.0.1.ebuild | 2 +- sys-libs/lwp/Manifest | 2 +- sys-libs/lwp/lwp-2.8.ebuild | 2 +- sys-libs/mtdev/Manifest | 4 +- sys-libs/mtdev/mtdev-1.1.5.ebuild | 24 - sys-libs/mtdev/mtdev-1.1.6.ebuild | 2 +- sys-libs/musl/Manifest | 2 - sys-libs/musl/musl-1.1.23.ebuild | 122 -- sys-libs/ncurses-compat/Manifest | 4 +- sys-libs/ncurses-compat/ncurses-compat-5.9.ebuild | 2 +- .../ncurses-compat-6.1_p20190609.ebuild | 4 +- sys-libs/ncurses/Manifest | 6 +- sys-libs/ncurses/ncurses-6.1_p20181020.ebuild | 2 +- sys-libs/ncurses/ncurses-6.1_p20190609.ebuild | 4 +- sys-libs/ncurses/ncurses-6.2-r1.ebuild | 2 +- sys-libs/newlib/Manifest | 10 +- sys-libs/newlib/newlib-2.2.0.ebuild | 81 -- sys-libs/newlib/newlib-2.5.0.ebuild | 139 -- sys-libs/newlib/newlib-3.1.0.ebuild | 141 -- sys-libs/newlib/newlib-3.3.0.ebuild | 141 ++ sys-libs/newlib/newlib-9999.ebuild | 6 +- sys-libs/nss_wrapper/Manifest | 10 +- sys-libs/nss_wrapper/metadata.xml | 8 +- sys-libs/nss_wrapper/nss_wrapper-1.1.10.ebuild | 15 + sys-libs/nss_wrapper/nss_wrapper-1.1.3.ebuild | 25 - sys-libs/nss_wrapper/nss_wrapper-1.1.5.ebuild | 18 - sys-libs/nss_wrapper/nss_wrapper-1.1.6.ebuild | 15 +- sys-libs/pam/Manifest | 4 +- sys-libs/pam/pam-1.3.1-r1.ebuild | 114 -- sys-libs/pam/pam-1.3.1-r2.ebuild | 113 ++ sys-libs/pam/pam-1.3.1_p20200128-r1.ebuild | 118 ++ sys-libs/pam/pam-1.3.1_p20200128.ebuild | 117 -- sys-libs/pwdb/Manifest | 2 +- sys-libs/pwdb/pwdb-0.62-r1.ebuild | 2 +- sys-libs/readline/Manifest | 8 +- sys-libs/readline/readline-6.3_p8-r3.ebuild | 2 +- sys-libs/readline/readline-7.0_p5-r1.ebuild | 2 +- sys-libs/readline/readline-8.0_p1-r1.ebuild | 4 +- sys-libs/readline/readline-8.0_p4.ebuild | 2 +- sys-libs/slang/Manifest | 2 +- sys-libs/slang/slang-2.3.2.ebuild | 2 +- sys-libs/talloc/Manifest | 12 +- sys-libs/talloc/talloc-2.1.14.ebuild | 89 -- sys-libs/talloc/talloc-2.1.16.ebuild | 90 -- sys-libs/talloc/talloc-2.1.9.ebuild | 93 -- sys-libs/talloc/talloc-2.2.0.ebuild | 96 -- sys-libs/talloc/talloc-2.3.0.ebuild | 96 -- sys-libs/talloc/talloc-2.3.1.ebuild | 2 +- sys-libs/tdb/Manifest | 12 +- sys-libs/tdb/tdb-1.3.13.ebuild | 61 - sys-libs/tdb/tdb-1.3.16.ebuild | 61 - sys-libs/tdb/tdb-1.3.18.ebuild | 62 - sys-libs/tdb/tdb-1.4.0.ebuild | 62 - sys-libs/tdb/tdb-1.4.2.ebuild | 62 - sys-libs/tdb/tdb-1.4.3.ebuild | 2 +- sys-libs/tevent/Manifest | 12 +- sys-libs/tevent/tevent-0.10.0.ebuild | 72 - sys-libs/tevent/tevent-0.10.1.ebuild | 72 - sys-libs/tevent/tevent-0.10.2.ebuild | 2 +- sys-libs/tevent/tevent-0.9.31-r1.ebuild | 61 - sys-libs/tevent/tevent-0.9.37.ebuild | 70 - sys-libs/tevent/tevent-0.9.39.ebuild | 72 - sys-libs/timezone-data/Manifest | 5 +- .../timezone-data/timezone-data-2019b-r2.ebuild | 178 --- sys-libs/timezone-data/timezone-data-2019c.ebuild | 2 +- sys-libs/uid_wrapper/Manifest | 11 +- sys-libs/uid_wrapper/metadata.xml | 8 +- sys-libs/uid_wrapper/uid_wrapper-1.2.1.ebuild | 32 - sys-libs/uid_wrapper/uid_wrapper-1.2.4.ebuild | 19 - sys-libs/uid_wrapper/uid_wrapper-1.2.7.ebuild | 13 +- sys-libs/uid_wrapper/uid_wrapper-1.2.8.ebuild | 16 + sys-libs/zlib/Manifest | 2 +- sys-libs/zlib/zlib-1.2.11-r2.ebuild | 2 +- 250 files changed, 9655 insertions(+), 16455 deletions(-) delete mode 100644 sys-libs/binutils-libs/binutils-libs-2.33.1.ebuild create mode 100644 sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-10.0.0.ebuild delete mode 100644 sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-10.0.0_rc1.ebuild delete mode 100644 sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-10.0.0_rc2.ebuild create mode 100644 sys-libs/compiler-rt/compiler-rt-10.0.0.ebuild delete mode 100644 sys-libs/compiler-rt/compiler-rt-10.0.0_rc1.ebuild delete mode 100644 sys-libs/compiler-rt/compiler-rt-10.0.0_rc2.ebuild delete mode 100644 sys-libs/db/db-4.2.52_p5-r2.ebuild create mode 100644 sys-libs/db/db-4.2.52_p5-r3.ebuild delete mode 100644 sys-libs/db/db-4.3.29_p1-r2.ebuild create mode 100644 sys-libs/db/db-4.3.29_p1-r3.ebuild delete mode 100644 sys-libs/db/db-4.4.20_p4-r2.ebuild create mode 100644 sys-libs/db/db-4.4.20_p4-r3.ebuild delete mode 100644 sys-libs/db/db-4.5.20_p2-r2.ebuild create mode 100644 sys-libs/db/db-4.5.20_p2-r3.ebuild delete mode 100644 sys-libs/db/db-4.6.21_p4-r1.ebuild create mode 100644 sys-libs/db/db-4.6.21_p4-r2.ebuild delete mode 100644 sys-libs/db/db-4.7.25_p4-r1.ebuild create mode 100644 sys-libs/db/db-4.7.25_p4-r2.ebuild create mode 100644 sys-libs/e2fsprogs-libs/e2fsprogs-libs-1.45.6.ebuild delete mode 100644 sys-libs/glibc/glibc-2.29-r2.ebuild create mode 100644 sys-libs/glibc/glibc-2.29-r8.ebuild delete mode 100644 sys-libs/glibc/glibc-2.30-r2.ebuild delete mode 100644 sys-libs/glibc/glibc-2.30-r3.ebuild delete mode 100644 sys-libs/glibc/glibc-2.30-r4.ebuild create mode 100644 sys-libs/glibc/glibc-2.30-r7.ebuild create mode 100644 sys-libs/glibc/glibc-2.30-r8.ebuild delete mode 100644 sys-libs/glibc/glibc-2.31-r1.ebuild create mode 100644 sys-libs/glibc/glibc-2.31-r2.ebuild delete mode 100644 sys-libs/glibc/glibc-2.31.ebuild delete mode 100644 sys-libs/kpmcore/kpmcore-4.0.1.ebuild delete mode 100644 sys-libs/ldb/files/ldb-1.1.27-optional_packages.patch delete mode 100644 sys-libs/ldb/files/ldb-1.1.29-disable-python.patch delete mode 100644 sys-libs/ldb/files/ldb-1.1.31-optional_packages.patch delete mode 100644 sys-libs/ldb/files/ldb-1.1.31-talloc-disable-python.patch delete mode 100644 sys-libs/ldb/files/ldb-1.2.3-disable_python.patch delete mode 100644 sys-libs/ldb/files/ldb-1.4.0-optional_packages.patch delete mode 100644 sys-libs/ldb/ldb-1.1.29-r1.ebuild delete mode 100644 sys-libs/ldb/ldb-1.1.31.ebuild delete mode 100644 sys-libs/ldb/ldb-1.2.4.ebuild delete mode 100644 sys-libs/ldb/ldb-1.3.6.ebuild delete mode 100644 sys-libs/ldb/ldb-1.3.8.ebuild delete mode 100644 sys-libs/ldb/ldb-1.4.8.ebuild delete mode 100644 sys-libs/ldb/ldb-1.5.4.ebuild delete mode 100644 sys-libs/ldb/ldb-1.5.6.ebuild delete mode 100644 sys-libs/ldb/ldb-1.6.3.ebuild delete mode 100644 sys-libs/ldb/ldb-2.0.7.ebuild create mode 100644 sys-libs/ldb/ldb-2.0.9.ebuild create mode 100644 sys-libs/ldb/ldb-2.1.1.ebuild create mode 100644 sys-libs/libapparmor/libapparmor-2.13.4.ebuild delete mode 100644 sys-libs/libavc1394/libavc1394-0.5.4-r1.ebuild delete mode 100644 sys-libs/libcap-ng/libcap-ng-0.7.8.ebuild delete mode 100644 sys-libs/libcap-ng/libcap-ng-0.7.9.ebuild create mode 100644 sys-libs/libcap/files/libcap-2.33-build-system-fixes.patch delete mode 100644 sys-libs/libcap/libcap-2.31.ebuild create mode 100644 sys-libs/libcap/libcap-2.33.ebuild create mode 100644 sys-libs/libcxx/libcxx-10.0.0.ebuild delete mode 100644 sys-libs/libcxx/libcxx-10.0.0_rc1.ebuild delete mode 100644 sys-libs/libcxx/libcxx-10.0.0_rc2.ebuild create mode 100644 sys-libs/libcxxabi/libcxxabi-10.0.0.ebuild delete mode 100644 sys-libs/libcxxabi/libcxxabi-10.0.0_rc1.ebuild delete mode 100644 sys-libs/libcxxabi/libcxxabi-10.0.0_rc2.ebuild delete mode 100644 sys-libs/libfaketime/libfaketime-0.9.6-r1.ebuild create mode 100644 sys-libs/libfaketime/libfaketime-0.9.8.ebuild create mode 100644 sys-libs/libomp/libomp-10.0.0.ebuild delete mode 100644 sys-libs/libomp/libomp-10.0.0_rc1.ebuild delete mode 100644 sys-libs/libomp/libomp-10.0.0_rc2.ebuild delete mode 100644 sys-libs/libosinfo/libosinfo-1.4.0.ebuild delete mode 100644 sys-libs/libraw1394/libraw1394-2.1.0-r1.ebuild delete mode 100644 sys-libs/libraw1394/libraw1394-2.1.1.ebuild delete mode 100644 sys-libs/libraw1394/libraw1394-2.1.2.ebuild delete mode 100644 sys-libs/libseccomp/libseccomp-2.4.0.ebuild delete mode 100644 sys-libs/libseccomp/libseccomp-2.4.1.ebuild create mode 100644 sys-libs/libseccomp/libseccomp-2.4.3.ebuild create mode 100644 sys-libs/libunwind/libunwind-1.4.0.ebuild create mode 100644 sys-libs/liburing/Manifest create mode 100644 sys-libs/liburing/liburing-0.5.ebuild create mode 100644 sys-libs/liburing/metadata.xml delete mode 100644 sys-libs/libutempter/libutempter-1.1.6-r2.ebuild create mode 100644 sys-libs/libutempter/libutempter-1.1.6-r3.ebuild create mode 100644 sys-libs/libxcrypt/libxcrypt-4.4.16.ebuild create mode 100644 sys-libs/llvm-libunwind/llvm-libunwind-10.0.0.ebuild delete mode 100644 sys-libs/llvm-libunwind/llvm-libunwind-10.0.0_rc1.ebuild delete mode 100644 sys-libs/llvm-libunwind/llvm-libunwind-10.0.0_rc2.ebuild delete mode 100644 sys-libs/mtdev/mtdev-1.1.5.ebuild delete mode 100644 sys-libs/musl/musl-1.1.23.ebuild delete mode 100644 sys-libs/newlib/newlib-2.2.0.ebuild delete mode 100644 sys-libs/newlib/newlib-2.5.0.ebuild delete mode 100644 sys-libs/newlib/newlib-3.1.0.ebuild create mode 100644 sys-libs/newlib/newlib-3.3.0.ebuild create mode 100644 sys-libs/nss_wrapper/nss_wrapper-1.1.10.ebuild delete mode 100644 sys-libs/nss_wrapper/nss_wrapper-1.1.3.ebuild delete mode 100644 sys-libs/nss_wrapper/nss_wrapper-1.1.5.ebuild delete mode 100644 sys-libs/pam/pam-1.3.1-r1.ebuild create mode 100644 sys-libs/pam/pam-1.3.1-r2.ebuild create mode 100644 sys-libs/pam/pam-1.3.1_p20200128-r1.ebuild delete mode 100644 sys-libs/pam/pam-1.3.1_p20200128.ebuild delete mode 100644 sys-libs/talloc/talloc-2.1.14.ebuild delete mode 100644 sys-libs/talloc/talloc-2.1.16.ebuild delete mode 100644 sys-libs/talloc/talloc-2.1.9.ebuild delete mode 100644 sys-libs/talloc/talloc-2.2.0.ebuild delete mode 100644 sys-libs/talloc/talloc-2.3.0.ebuild delete mode 100644 sys-libs/tdb/tdb-1.3.13.ebuild delete mode 100644 sys-libs/tdb/tdb-1.3.16.ebuild delete mode 100644 sys-libs/tdb/tdb-1.3.18.ebuild delete mode 100644 sys-libs/tdb/tdb-1.4.0.ebuild delete mode 100644 sys-libs/tdb/tdb-1.4.2.ebuild delete mode 100644 sys-libs/tevent/tevent-0.10.0.ebuild delete mode 100644 sys-libs/tevent/tevent-0.10.1.ebuild delete mode 100644 sys-libs/tevent/tevent-0.9.31-r1.ebuild delete mode 100644 sys-libs/tevent/tevent-0.9.37.ebuild delete mode 100644 sys-libs/tevent/tevent-0.9.39.ebuild delete mode 100644 sys-libs/timezone-data/timezone-data-2019b-r2.ebuild delete mode 100644 sys-libs/uid_wrapper/uid_wrapper-1.2.1.ebuild delete mode 100644 sys-libs/uid_wrapper/uid_wrapper-1.2.4.ebuild create mode 100644 sys-libs/uid_wrapper/uid_wrapper-1.2.8.ebuild (limited to 'sys-libs') diff --git a/sys-libs/Manifest.gz b/sys-libs/Manifest.gz index 5b8d93e3d5de..57c70e072966 100644 Binary files a/sys-libs/Manifest.gz and b/sys-libs/Manifest.gz differ diff --git a/sys-libs/argp-standalone/Manifest b/sys-libs/argp-standalone/Manifest index 6c2fa43ecf18..69f85622202d 100644 --- a/sys-libs/argp-standalone/Manifest +++ b/sys-libs/argp-standalone/Manifest @@ -1,5 +1,5 @@ AUX argp-standalone-1.3-shared.patch 1407 BLAKE2B 6d838b7b65b38562eca560bf094a74bb671cc0e911aed8e858e37768f12756cb579d9d984fe9444dd9b78f33b28ab080a7f6d0160dfeaf3ca4f0758c2d732d4d SHA512 2ee3386b1f63d64abff6a6b58dd7d0a7724bc07fd20f3f9daf24de1abb39d1ef35e3c616926fe3e939ccd491e84a82373e9554566a78683c3622494be2071d72 AUX argp-standalone-1.3-throw-in-funcdef.patch 2500 BLAKE2B 050476f7dec2ff8d79e09f717eada121bc07ef26e0567c2d89ed18d44a4905741494d660ce82df8fb39f19020cf529b513d0e21b651197066d781250a921177e SHA512 5e4cdeeb16e6a4fb46a00ab95f3da9276ee554eec00bb2a05da7467961234ba3f9a630aafa7ceb5feb429a84ece8bf03b869fa996b86468f4716935a914c79a4 DIST argp-standalone-1.3.tar.gz 130255 BLAKE2B 0848a0e7a98cfa09de52fa152eb9a793a9bf25c1edfc7401851ef134b62c051ad6ef2134d6f528e167046be582be23f311e74614c5511d659060addc14de6b2f SHA512 58c3feb8852b90248fff39e49b5019bd0dcf646790c3eaf70c3262eb81dda31a61dc0a45963c7b4a010e80fc14b37288dcb3b3ef48d02f2d33dd72c1c62e62d9 -EBUILD argp-standalone-1.3-r2.ebuild 817 BLAKE2B 2a017f20956486697257aa0ec8550338c201fa5b124b3fd65070e009a822b88a42baae9339addf0ad5242e5c52cde4bb0e5e339ca8fdaa7b01f8985aefdd342c SHA512 d985716b11ff40df12cce2a934784e8403abcc5dd8cdbd3199940c07b7cf4b5971cf0f2ed5223bb8e3b155a9ac619e0b65e2e6f52ec986544bbca6f8a64e1e6b +EBUILD argp-standalone-1.3-r2.ebuild 813 BLAKE2B bf5abfc47695c59a2a329eee3b00fa2979c0701b878abec545bbc757bc980ee2f964975ae78f74e5bc81a924b1137a108b35cc37aa2cc41894a938cc0c73275f SHA512 7439d78ee41062c5fe3b68bac3b16a354d2e704d6ca224291511e80faf12f0f9432bd88cabc605884ecc86dd8cb8c9dbcabcea77a2b5a31b1c9244e1ffb6ddd2 MISC metadata.xml 253 BLAKE2B 1d5af623950024db87f3016a93014ce876894828c8bac85ae8b157f8e2851ca96384c8e195c9693e09e7a76f4fb7033ee466057b930198a6416135eebbb6a8c1 SHA512 66f53c08df7430d7052861b4c483e36d54db4d937be2fd4e3a6135d36992e041aa88d60205b47c3749b54c36925ca4c45c88fa7b44fee283de48ab8aa75b738b diff --git a/sys-libs/argp-standalone/argp-standalone-1.3-r2.ebuild b/sys-libs/argp-standalone/argp-standalone-1.3-r2.ebuild index ebea5b9c470e..e8a52b5d5a9d 100644 --- a/sys-libs/argp-standalone/argp-standalone-1.3-r2.ebuild +++ b/sys-libs/argp-standalone/argp-standalone-1.3-r2.ebuild @@ -11,7 +11,7 @@ SRC_URI="http://www.lysator.liu.se/~nisse/misc/argp-standalone-1.3.tar.gz" LICENSE="public-domain GPL-2 GPL-3 XC" SLOT="0" -KEYWORDS="amd64 arm arm64 ~m68k ~mips ppc ppc64 ~s390 ~sh x86" +KEYWORDS="amd64 arm arm64 ~m68k ~mips ppc ppc64 ~s390 x86" IUSE="static-libs" DEPEND="!sys-libs/glibc" diff --git a/sys-libs/binutils-libs/Manifest b/sys-libs/binutils-libs/Manifest index 44decf878e74..cb001c91b852 100644 --- a/sys-libs/binutils-libs/Manifest +++ b/sys-libs/binutils-libs/Manifest @@ -1,12 +1,10 @@ DIST binutils-2.32-patches-2.tar.xz 145672 BLAKE2B 8218e621f99cb4bcd1638c3011449b94480d207eaeb79cf75c0072e0f1a86bfd1603fc4515bc40d3ac1921a18b9a211b20568f59b11b13eb44e6cff1329c5af9 SHA512 55c25a603f6175af3ade6848e5c1faba06a147d72e9a4f53d44502d97db76499485a67b278a654d18884714a7bf7b360c77c9e42dba3cdc188f805bfe461f09f DIST binutils-2.32.tar.xz 20774880 BLAKE2B d1bdbd9c8487c091665c197974ce4bdf520b7a67ed6997a81b87e6a0af9514a091458244f583acec5ae580ac2ee5e908f67f483b8e5263cd18ced794cb235da6 SHA512 d326408f12a03d9a61a9de56584c2af12f81c2e50d2d7e835d51565df8314df01575724afa1e43bd0db45cfc9916b41519b67dfce03232aa4978704492a6994a -DIST binutils-2.33.1-patches-1.tar.xz 17944 BLAKE2B 811ad416fe9c059f645856a3123ed32303afe1d0f166a15cb6de0673b5494fdcc4c165da4a68eb7ab73f007618e3a97a5578c4b47de21e57fe501d6a21b6d595 SHA512 63b439637206d21e46d2b79383b38da2b28365a0fdea1f5ac3b665cd05e0b55cd1d7763c05567a5f7ae2c645d2ae639a27e465d535b928d9f8f0e6b94f31e1f7 DIST binutils-2.33.1-patches-2.tar.xz 18636 BLAKE2B 0e0757329b6a83aeff4f4c450c95e73fd48fcc89f83e63f294568632bee0972552cf2f57494352c5d9a7c16a51cdbc4108b38fa6028d4388c8e76046b3da9212 SHA512 d982f68d1f5fdb384309a2a1b7426bf840a90e7a85b37229b4223b62c36cab9dd9ec0c08382c85c68adf996dec21133df3180a2fc649363adae8645f8282f71d DIST binutils-2.33.1.tar.xz 21490848 BLAKE2B c336a8412938dc8c224f40a763a8bea9937cca0462a8fb80e62f14aabe590107fc061a3f4b9327e1f4652cb026384d36a91b4766d4d469d2d0680932874b638c SHA512 b7a6767c6c7ca6b5cafa7080e6820b7bb3a53b7148348c438d99905defbdf0d30c9744a484ee01c9441a8153901808513366b15ba9533e20c9673c262ade36ac DIST binutils-2.34-patches-1.tar.xz 20388 BLAKE2B 8828505f62259a307de445357320827e7f6bc416a7f4c72140add505f62eef3928c7daec13be158b52c2a7a1d989f539025e4be6ec27ef80ede81477a42c5042 SHA512 951dffcc30ad5706dc48e71995217655c5d96472446ab66a357f19486b57d1868143a9809887eab7ba8c42c33124f8b37d3bab6618388ea8a08b4399d348a645 DIST binutils-2.34.tar.xz 21637796 BLAKE2B 07dd23916a7d27f71c3f160c8c16abe2bd4fce294c738c665a012a3be6a87dbe8160d0c38740524f9025e01d438e99b2a94bcf9f9f79ee214f5dd033de8aad3d SHA512 2c7976939dcf5e8c5b7374cccd39bfe803b1bec73c6abfa0eb17c24e1942574c6bdb874c66a092a82adc443182eacd8a5a8001c19a76101f0c7ba40c27de0bbd -EBUILD binutils-libs-2.32-r1.ebuild 3675 BLAKE2B 007cc573a26664c2250a4095d41234e130f27dc25d4f31fca09228a21ae549e6cbb72d93fa0df20cc5ca8f612114158b87959575c2170e5896a083db9db84e43 SHA512 dfb15c2700e922d687fe948ba52367c07f47cc4b892df534c8abc9f255480f89971fe791ff5d060bd55e177dbb7cfb0ecd7ccc49aeca5ba512c7a6d764cd9027 -EBUILD binutils-libs-2.33.1-r1.ebuild 3562 BLAKE2B ee2e68e19fec0661f8e64d98837571a1eef1b23c43d936554bc86ee64bd34aef2709b13986cc25c2eda3fabab24f38d0d88695f82d780dca10476a17884c7920 SHA512 f5d6758d1478306d03b4b2b3a85d823b6c1ed212c0836f911b8a9a6862459357ef891a64cdd2447b3e3be90984f518c80ea46ac8fa9a29e55827f329086a0833 -EBUILD binutils-libs-2.33.1.ebuild 3565 BLAKE2B a21ad6b0ee10f11cb18c20201b96dff49f7ac7f59e4fef4dd3e42d50393a16fc2ba981ec48784d5522da00db24af3f37544ea05c796ee00adeb88bc0e66c90f1 SHA512 209fd420f25471252989896e1b715bf7876a72019354e379d82ba32a157a4e9f98e1a835984292ec8a2e0ff476a8121de5e9d4a83ff403b773a05f8a29ed9f20 -EBUILD binutils-libs-2.34.ebuild 3684 BLAKE2B ede17bb101a2d72f8a79cb0821e0a2ab304c917ae4828b7a9ad3bea6aaaed9b8c610bb26cefe8498256dfcecd3ab28f2d1e6b79228e9ed057ffd00e2a8f8bb90 SHA512 f0d1c31700a04d58f157d480d1a73971aa870e462d1b2523733fc423ab78822aff5e93ceab0a33f25db7d0f0467f490b4913cd81f6a0c77d40e45cbd5a393dae +EBUILD binutils-libs-2.32-r1.ebuild 3673 BLAKE2B e25c2c988f087ba4bd904a53502c25d3bb192249ecc21d663b30199b05bae1c2f3d438be0fe5c22b6880d3e0822ddd94233e8e2a67e87359d3fac1f2dc455889 SHA512 98b1cb1e2c6b80832c29c9facd0236c7112e1daad7f3e02d6437b186426de62501b69db2112631b2e9fa4fd7ac711fe3201cc777554354689cd137f63f12ff63 +EBUILD binutils-libs-2.33.1-r1.ebuild 3549 BLAKE2B 931ae3c38edbeed8cca61909b5e0897bc37f3855820ac49ed97955c611a2c8a58c50df2e87d4f13674ea7de511638205f49932663f25afd9f2b96970803dd91c SHA512 9e17954c198e39f725603fd9b6d1c3c24e39c99ee823a3e15b3d5c4838ae507787cb23aaf36e5dbfb9052656955b114a95b2cb3f8b0fc96ecfb0b5ed970053d0 +EBUILD binutils-libs-2.34.ebuild 3611 BLAKE2B add6cdcffe47e1666118939c6bfacd05317fe38dabe34a46a85d47113ca62de800d07e46e86e2f6a526fd1ffb586f0b059224491e1957e73878d4245cba5a0a6 SHA512 e9a329164cd52d95b1d452fd54c3f58cb4656ab1af90a8af0553be36e9b574a3dec9e0dfc228b2ecfde295e77007bd6f319aecd2d2166cb6b8fe48aac1f8ed4c MISC metadata.xml 524 BLAKE2B 6f00793b2dc155b19d816b8acfd49e6bfc2ae35418ecc97fbbd3f9d0ed08b5f95a299b28fe6edad1a66f4d64abe99dc8a62a974fd70e28b535cd366239bf1cca SHA512 9db7c7a3082ee848ec4963831da06cced596d543e53660747fb56ac33998c219e1d7252892ffc32132d7db3c99ce9746fb6d9e85f866c3cba97552c31948342c diff --git a/sys-libs/binutils-libs/binutils-libs-2.32-r1.ebuild b/sys-libs/binutils-libs/binutils-libs-2.32-r1.ebuild index 2261407a205b..a52af5e1ea5b 100644 --- a/sys-libs/binutils-libs/binutils-libs-2.32-r1.ebuild +++ b/sys-libs/binutils-libs/binutils-libs-2.32-r1.ebuild @@ -21,7 +21,7 @@ SRC_URI="mirror://gnu/binutils/${MY_P}.tar.xz LICENSE="|| ( GPL-3 LGPL-3 )" SLOT="0/${PV}" IUSE="64-bit-bfd multitarget nls static-libs" -KEYWORDS="~alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 ~riscv s390 sh sparc x86" +KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 m68k ~mips ppc ppc64 ~riscv s390 sparc x86" COMMON_DEPEND="sys-libs/zlib[${MULTILIB_USEDEP}]" DEPEND="${COMMON_DEPEND} diff --git a/sys-libs/binutils-libs/binutils-libs-2.33.1-r1.ebuild b/sys-libs/binutils-libs/binutils-libs-2.33.1-r1.ebuild index 8d0e28a9ea10..7629a98e5fbd 100644 --- a/sys-libs/binutils-libs/binutils-libs-2.33.1-r1.ebuild +++ b/sys-libs/binutils-libs/binutils-libs-2.33.1-r1.ebuild @@ -21,7 +21,7 @@ SRC_URI="mirror://gnu/binutils/${MY_P}.tar.xz LICENSE="|| ( GPL-3 LGPL-3 )" SLOT="0/${PV}" IUSE="64-bit-bfd multitarget nls static-libs" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sh ~sparc ~x86" +KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv s390 sparc x86" COMMON_DEPEND="sys-libs/zlib[${MULTILIB_USEDEP}]" DEPEND="${COMMON_DEPEND} diff --git a/sys-libs/binutils-libs/binutils-libs-2.33.1.ebuild b/sys-libs/binutils-libs/binutils-libs-2.33.1.ebuild deleted file mode 100644 index 92daa1886028..000000000000 --- a/sys-libs/binutils-libs/binutils-libs-2.33.1.ebuild +++ /dev/null @@ -1,120 +0,0 @@ -# Copyright 1999-2019 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -PATCH_VER=1 -PATCH_DEV=dilfridge - -inherit eutils libtool toolchain-funcs multilib-minimal - -MY_PN="binutils" -MY_P="${MY_PN}-${PV}" -PATCH_BINUTILS_VER=${PATCH_BINUTILS_VER:-${PV}} -PATCH_DEV=${PATCH_DEV:-slyfox} - -DESCRIPTION="Core binutils libraries (libbfd, libopcodes, libiberty) for external packages" -HOMEPAGE="https://sourceware.org/binutils/" -SRC_URI="mirror://gnu/binutils/${MY_P}.tar.xz - https://dev.gentoo.org/~${PATCH_DEV}/distfiles/${MY_PN}-${PATCH_BINUTILS_VER}-patches-${PATCH_VER}.tar.xz" - -LICENSE="|| ( GPL-3 LGPL-3 )" -SLOT="0/${PV}" -IUSE="64-bit-bfd multitarget nls static-libs" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sh ~sparc ~x86" - -COMMON_DEPEND="sys-libs/zlib[${MULTILIB_USEDEP}]" -DEPEND="${COMMON_DEPEND} - nls? ( sys-devel/gettext )" -# Need a newer binutils-config that'll reset include/lib symlinks for us. -RDEPEND="${COMMON_DEPEND} - >=sys-devel/binutils-config-5 - nls? ( !=2.24) make this an explicit option. #497268 - --enable-install-libiberty - --disable-werror - --with-bugurl="https://bugs.gentoo.org/" - --with-pkgversion="$(pkgversion)" - $(use_enable static-libs static) - # The binutils eclass enables this flag for all bi-arch builds, - # but other tools often don't care about that support. Put it - # beyond a flag if people really want it, but otherwise leave - # it disabled as it can slow things down on 32bit arches. #438522 - $(use_enable 64-bit-bfd) - # This only disables building in the zlib subdir. - # For binutils itself, it'll use the system version. #591516 - --without-zlib - --with-system-zlib - # We only care about the libs, so disable programs. #528088 - --disable-{binutils,etc,ld,gas,gold,gprof} - # Disable modules that are in a combined binutils/gdb tree. #490566 - --disable-{gdb,libdecnumber,readline,sim} - # Strip out broken static link flags. - # https://gcc.gnu.org/PR56750 - --without-stage1-ldflags - # We pull in all USE-flags that change ABI in an incompatible - # way. #666100 - # USE=multitarget change size of global arrays - # USE=64-bit-bfd changes data structures of exported API - --with-extra-soversion-suffix=gentoo-${CATEGORY}-${PN}-$(usex multitarget mt st)-$(usex 64-bit-bfd 64 def) - ) - - # mips can't do hash-style=gnu ... - if [[ $(tc-arch) != mips ]] ; then - myconf+=( --enable-default-hash-style=gnu ) - fi - - use multitarget && myconf+=( --enable-targets=all --enable-64-bit-bfd ) - - use nls \ - && myconf+=( --without-included-gettext ) \ - || myconf+=( --disable-nls ) - - ECONF_SOURCE=${S} \ - econf "${myconf[@]}" - - # Prevent makeinfo from running as we don't build docs here. - # bug #622652 - sed -i \ - -e '/^MAKEINFO/s:=.*:= true:' \ - Makefile || die -} - -multilib_src_install() { - default - # Provide libiberty.h directly. - dosym libiberty/libiberty.h /usr/include/libiberty.h -} - -multilib_src_install_all() { - use static-libs || find "${ED}"/usr -name '*.la' -delete -} diff --git a/sys-libs/binutils-libs/binutils-libs-2.34.ebuild b/sys-libs/binutils-libs/binutils-libs-2.34.ebuild index 8cd6943af76b..c7a023759fa5 100644 --- a/sys-libs/binutils-libs/binutils-libs-2.34.ebuild +++ b/sys-libs/binutils-libs/binutils-libs-2.34.ebuild @@ -21,15 +21,14 @@ SRC_URI="mirror://gnu/binutils/${MY_P}.tar.xz LICENSE="|| ( GPL-3 LGPL-3 )" SLOT="0/${PV}" IUSE="64-bit-bfd multitarget nls static-libs" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sh ~sparc ~x86" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" -COMMON_DEPEND="sys-libs/zlib[${MULTILIB_USEDEP}]" -DEPEND="${COMMON_DEPEND} - nls? ( sys-devel/gettext )" +BDEPEND="nls? ( sys-devel/gettext )" +DEPEND="sys-libs/zlib[${MULTILIB_USEDEP}]" # Need a newer binutils-config that'll reset include/lib symlinks for us. -RDEPEND="${COMMON_DEPEND} +RDEPEND="${DEPEND} >=sys-devel/binutils-config-5 - nls? ( !=dev-python/lit-5[\${PYTHON_USEDEP}]") + =sys-devel/clang-${PV%_*}*:${CLANG_SLOT} + sys-libs/compiler-rt:${SLOT} ) + ${PYTHON_DEPS}" + +# least intrusive of all +CMAKE_BUILD_TYPE=RelWithDebInfo + +python_check_deps() { + use test || return 0 + has_version "dev-python/lit[${PYTHON_USEDEP}]" +} + +check_space() { + if use test; then + local CHECKREQS_DISK_BUILD=11G + check-reqs_pkg_pretend + fi +} + +pkg_pretend() { + check_space +} + +pkg_setup() { + check_space + llvm_pkg_setup + python-any-r1_pkg_setup +} + +src_configure() { + # pre-set since we need to pass it to cmake + BUILD_DIR=${WORKDIR}/compiler-rt_build + + if use clang; then + local -x CC=${CHOST}-clang + local -x CXX=${CHOST}-clang++ + strip-unsupported-flags + fi + + local mycmakeargs=( + -DCOMPILER_RT_INSTALL_PATH="${EPREFIX}/usr/lib/clang/${SLOT}" + # use a build dir structure consistent with install + # this makes it possible to easily deploy test-friendly clang + -DCOMPILER_RT_OUTPUT_DIR="${BUILD_DIR}/lib/clang/${SLOT}" + + -DCOMPILER_RT_INCLUDE_TESTS=$(usex test) + # builtins & crt installed by sys-libs/compiler-rt + -DCOMPILER_RT_BUILD_BUILTINS=OFF + -DCOMPILER_RT_BUILD_CRT=OFF + -DCOMPILER_RT_BUILD_LIBFUZZER=$(usex libfuzzer) + -DCOMPILER_RT_BUILD_PROFILE=$(usex profile) + -DCOMPILER_RT_BUILD_SANITIZERS=$(usex sanitize) + -DCOMPILER_RT_BUILD_XRAY=$(usex xray) + ) + if use test; then + mycmakeargs+=( + -DLLVM_MAIN_SRC_DIR="${WORKDIR}/llvm" + -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit" + -DLLVM_LIT_ARGS="-vv;-j;${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")}" + + # they are created during src_test() + -DCOMPILER_RT_TEST_COMPILER="${BUILD_DIR}/lib/llvm/${CLANG_SLOT}/bin/clang" + -DCOMPILER_RT_TEST_CXX_COMPILER="${BUILD_DIR}/lib/llvm/${CLANG_SLOT}/bin/clang++" + ) + + # same flags are passed for build & tests, so we need to strip + # them down to a subset supported by clang + CC=${EPREFIX}/usr/lib/llvm/${CLANG_SLOT}/bin/clang \ + CXX=${EPREFIX}/usr/lib/llvm/${CLANG_SLOT}/bin/clang++ \ + strip-unsupported-flags + fi + + if use prefix && [[ "${CHOST}" == *-darwin* ]] ; then + mycmakeargs+=( + # disable use of SDK for the system itself + -DDARWIN_macosx_CACHED_SYSROOT=/ + ) + fi + + cmake-utils_src_configure + + if use test; then + local sys_dir=( "${EPREFIX}"/usr/lib/clang/${SLOT}/lib/* ) + [[ -e ${sys_dir} ]] || die "Unable to find ${sys_dir}" + [[ ${#sys_dir[@]} -eq 1 ]] || die "Non-deterministic compiler-rt install: ${sys_dir[*]}" + + # copy clang over since resource_dir is located relatively to binary + # therefore, we can put our new libraries in it + mkdir -p "${BUILD_DIR}"/lib/{llvm/${CLANG_SLOT}/{bin,$(get_libdir)},clang/${SLOT}/include} || die + cp "${EPREFIX}"/usr/lib/llvm/${CLANG_SLOT}/bin/clang{,++} \ + "${BUILD_DIR}"/lib/llvm/${CLANG_SLOT}/bin/ || die + cp "${EPREFIX}"/usr/lib/clang/${SLOT}/include/*.h \ + "${BUILD_DIR}"/lib/clang/${SLOT}/include/ || die + cp "${sys_dir}"/*builtins*.a \ + "${BUILD_DIR}/lib/clang/${SLOT}/lib/${sys_dir##*/}/" || die + # we also need LLVMgold.so for gold-based tests + if [[ -f ${EPREFIX}/usr/lib/llvm/${CLANG_SLOT}/$(get_libdir)/LLVMgold.so ]]; then + ln -s "${EPREFIX}"/usr/lib/llvm/${CLANG_SLOT}/$(get_libdir)/LLVMgold.so \ + "${BUILD_DIR}"/lib/llvm/${CLANG_SLOT}/$(get_libdir)/ || die + fi + fi +} + +src_test() { + # respect TMPDIR! + local -x LIT_PRESERVES_TMP=1 + # disable sandbox to have it stop clobbering LD_PRELOAD + local -x SANDBOX_ON=0 + # wipe LD_PRELOAD to make ASAN happy + local -x LD_PRELOAD= + + cmake-utils_src_make check-all +} diff --git a/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-10.0.0_rc1.ebuild b/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-10.0.0_rc1.ebuild deleted file mode 100644 index dfbc385859a8..000000000000 --- a/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-10.0.0_rc1.ebuild +++ /dev/null @@ -1,158 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -PYTHON_COMPAT=( python3_{6,7} ) -inherit check-reqs cmake-utils flag-o-matic llvm llvm.org \ - multiprocessing python-any-r1 - -DESCRIPTION="Compiler runtime libraries for clang (sanitizers & xray)" -HOMEPAGE="https://llvm.org/" -LLVM_COMPONENTS=( compiler-rt ) -LLVM_TEST_COMPONENTS=( llvm/lib/Testing/Support llvm/utils/unittest ) -llvm.org_set_globals - -LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" -SLOT="$(ver_cut 1-3)" -KEYWORDS="" -IUSE="+clang +libfuzzer +profile +sanitize test +xray elibc_glibc" -# FIXME: libfuzzer does not enable all its necessary dependencies -REQUIRED_USE="libfuzzer? ( || ( sanitize xray ) )" -RESTRICT="!test? ( test ) !clang? ( test )" - -CLANG_SLOT=${SLOT%%.*} -# llvm-6 for new lit options -DEPEND=" - >=sys-devel/llvm-6" -BDEPEND=" - clang? ( sys-devel/clang ) - elibc_glibc? ( net-libs/libtirpc ) - test? ( - !=dev-python/lit-5[\${PYTHON_USEDEP}]") - =sys-devel/clang-${PV%_*}*:${CLANG_SLOT} - sys-libs/compiler-rt:${SLOT} ) - ${PYTHON_DEPS}" - -# least intrusive of all -CMAKE_BUILD_TYPE=RelWithDebInfo - -python_check_deps() { - use test || return 0 - has_version "dev-python/lit[${PYTHON_USEDEP}]" -} - -check_space() { - if use test; then - local CHECKREQS_DISK_BUILD=11G - check-reqs_pkg_pretend - fi -} - -pkg_pretend() { - check_space -} - -pkg_setup() { - check_space - llvm_pkg_setup - python-any-r1_pkg_setup -} - -src_prepare() { - cmake-utils_src_prepare - - if use test; then - # remove tests that are (still) broken by new glibc - # https://bugs.llvm.org/show_bug.cgi?id=36065 - if use elibc_glibc && has_version '>=sys-libs/glibc-2.25'; then - rm test/lsan/TestCases/Linux/fork_and_leak.cpp || die - fi - fi -} - -src_configure() { - # pre-set since we need to pass it to cmake - BUILD_DIR=${WORKDIR}/compiler-rt_build - - if use clang; then - local -x CC=${CHOST}-clang - local -x CXX=${CHOST}-clang++ - strip-unsupported-flags - fi - - local mycmakeargs=( - -DCOMPILER_RT_INSTALL_PATH="${EPREFIX}/usr/lib/clang/${SLOT}" - # use a build dir structure consistent with install - # this makes it possible to easily deploy test-friendly clang - -DCOMPILER_RT_OUTPUT_DIR="${BUILD_DIR}/lib/clang/${SLOT}" - - -DCOMPILER_RT_INCLUDE_TESTS=$(usex test) - # builtins & crt installed by sys-libs/compiler-rt - -DCOMPILER_RT_BUILD_BUILTINS=OFF - -DCOMPILER_RT_BUILD_CRT=OFF - -DCOMPILER_RT_BUILD_LIBFUZZER=$(usex libfuzzer) - -DCOMPILER_RT_BUILD_PROFILE=$(usex profile) - -DCOMPILER_RT_BUILD_SANITIZERS=$(usex sanitize) - -DCOMPILER_RT_BUILD_XRAY=$(usex xray) - ) - if use test; then - mycmakeargs+=( - -DLLVM_MAIN_SRC_DIR="${WORKDIR}/llvm" - -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit" - -DLLVM_LIT_ARGS="-vv;-j;${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")}" - - # they are created during src_test() - -DCOMPILER_RT_TEST_COMPILER="${BUILD_DIR}/lib/llvm/${CLANG_SLOT}/bin/clang" - -DCOMPILER_RT_TEST_CXX_COMPILER="${BUILD_DIR}/lib/llvm/${CLANG_SLOT}/bin/clang++" - ) - - # same flags are passed for build & tests, so we need to strip - # them down to a subset supported by clang - CC=${EPREFIX}/usr/lib/llvm/${CLANG_SLOT}/bin/clang \ - CXX=${EPREFIX}/usr/lib/llvm/${CLANG_SLOT}/bin/clang++ \ - strip-unsupported-flags - fi - - if use prefix && [[ "${CHOST}" == *-darwin* ]] ; then - mycmakeargs+=( - # disable use of SDK for the system itself - -DDARWIN_macosx_CACHED_SYSROOT=/ - ) - fi - - cmake-utils_src_configure - - if use test; then - local sys_dir=( "${EPREFIX}"/usr/lib/clang/${SLOT}/lib/* ) - [[ -e ${sys_dir} ]] || die "Unable to find ${sys_dir}" - [[ ${#sys_dir[@]} -eq 1 ]] || die "Non-deterministic compiler-rt install: ${sys_dir[*]}" - - # copy clang over since resource_dir is located relatively to binary - # therefore, we can put our new libraries in it - mkdir -p "${BUILD_DIR}"/lib/{llvm/${CLANG_SLOT}/{bin,$(get_libdir)},clang/${SLOT}/include} || die - cp "${EPREFIX}"/usr/lib/llvm/${CLANG_SLOT}/bin/clang{,++} \ - "${BUILD_DIR}"/lib/llvm/${CLANG_SLOT}/bin/ || die - cp "${EPREFIX}"/usr/lib/clang/${SLOT}/include/*.h \ - "${BUILD_DIR}"/lib/clang/${SLOT}/include/ || die - cp "${sys_dir}"/*builtins*.a \ - "${BUILD_DIR}/lib/clang/${SLOT}/lib/${sys_dir##*/}/" || die - # we also need LLVMgold.so for gold-based tests - if [[ -f ${EPREFIX}/usr/lib/llvm/${CLANG_SLOT}/$(get_libdir)/LLVMgold.so ]]; then - ln -s "${EPREFIX}"/usr/lib/llvm/${CLANG_SLOT}/$(get_libdir)/LLVMgold.so \ - "${BUILD_DIR}"/lib/llvm/${CLANG_SLOT}/$(get_libdir)/ || die - fi - fi -} - -src_test() { - # respect TMPDIR! - local -x LIT_PRESERVES_TMP=1 - # disable sandbox to have it stop clobbering LD_PRELOAD - local -x SANDBOX_ON=0 - # wipe LD_PRELOAD to make ASAN happy - local -x LD_PRELOAD= - - cmake-utils_src_make check-all -} diff --git a/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-10.0.0_rc2.ebuild b/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-10.0.0_rc2.ebuild deleted file mode 100644 index 593a9a3363c3..000000000000 --- a/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-10.0.0_rc2.ebuild +++ /dev/null @@ -1,146 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -PYTHON_COMPAT=( python3_{6,7,8} ) -inherit check-reqs cmake-utils flag-o-matic llvm llvm.org \ - multiprocessing python-any-r1 - -DESCRIPTION="Compiler runtime libraries for clang (sanitizers & xray)" -HOMEPAGE="https://llvm.org/" -LLVM_COMPONENTS=( compiler-rt ) -LLVM_TEST_COMPONENTS=( llvm/lib/Testing/Support llvm/utils/unittest ) -llvm.org_set_globals - -LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" -SLOT="$(ver_cut 1-3)" -KEYWORDS="" -IUSE="+clang +libfuzzer +profile +sanitize test +xray elibc_glibc" -# FIXME: libfuzzer does not enable all its necessary dependencies -REQUIRED_USE="libfuzzer? ( || ( sanitize xray ) )" -RESTRICT="!test? ( test ) !clang? ( test )" - -CLANG_SLOT=${SLOT%%.*} -# llvm-6 for new lit options -DEPEND=" - >=sys-devel/llvm-6" -BDEPEND=" - clang? ( sys-devel/clang ) - elibc_glibc? ( net-libs/libtirpc ) - test? ( - !=dev-python/lit-5[\${PYTHON_USEDEP}]") - =sys-devel/clang-${PV%_*}*:${CLANG_SLOT} - sys-libs/compiler-rt:${SLOT} ) - ${PYTHON_DEPS}" - -# least intrusive of all -CMAKE_BUILD_TYPE=RelWithDebInfo - -python_check_deps() { - use test || return 0 - has_version "dev-python/lit[${PYTHON_USEDEP}]" -} - -check_space() { - if use test; then - local CHECKREQS_DISK_BUILD=11G - check-reqs_pkg_pretend - fi -} - -pkg_pretend() { - check_space -} - -pkg_setup() { - check_space - llvm_pkg_setup - python-any-r1_pkg_setup -} - -src_configure() { - # pre-set since we need to pass it to cmake - BUILD_DIR=${WORKDIR}/compiler-rt_build - - if use clang; then - local -x CC=${CHOST}-clang - local -x CXX=${CHOST}-clang++ - strip-unsupported-flags - fi - - local mycmakeargs=( - -DCOMPILER_RT_INSTALL_PATH="${EPREFIX}/usr/lib/clang/${SLOT}" - # use a build dir structure consistent with install - # this makes it possible to easily deploy test-friendly clang - -DCOMPILER_RT_OUTPUT_DIR="${BUILD_DIR}/lib/clang/${SLOT}" - - -DCOMPILER_RT_INCLUDE_TESTS=$(usex test) - # builtins & crt installed by sys-libs/compiler-rt - -DCOMPILER_RT_BUILD_BUILTINS=OFF - -DCOMPILER_RT_BUILD_CRT=OFF - -DCOMPILER_RT_BUILD_LIBFUZZER=$(usex libfuzzer) - -DCOMPILER_RT_BUILD_PROFILE=$(usex profile) - -DCOMPILER_RT_BUILD_SANITIZERS=$(usex sanitize) - -DCOMPILER_RT_BUILD_XRAY=$(usex xray) - ) - if use test; then - mycmakeargs+=( - -DLLVM_MAIN_SRC_DIR="${WORKDIR}/llvm" - -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit" - -DLLVM_LIT_ARGS="-vv;-j;${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")}" - - # they are created during src_test() - -DCOMPILER_RT_TEST_COMPILER="${BUILD_DIR}/lib/llvm/${CLANG_SLOT}/bin/clang" - -DCOMPILER_RT_TEST_CXX_COMPILER="${BUILD_DIR}/lib/llvm/${CLANG_SLOT}/bin/clang++" - ) - - # same flags are passed for build & tests, so we need to strip - # them down to a subset supported by clang - CC=${EPREFIX}/usr/lib/llvm/${CLANG_SLOT}/bin/clang \ - CXX=${EPREFIX}/usr/lib/llvm/${CLANG_SLOT}/bin/clang++ \ - strip-unsupported-flags - fi - - if use prefix && [[ "${CHOST}" == *-darwin* ]] ; then - mycmakeargs+=( - # disable use of SDK for the system itself - -DDARWIN_macosx_CACHED_SYSROOT=/ - ) - fi - - cmake-utils_src_configure - - if use test; then - local sys_dir=( "${EPREFIX}"/usr/lib/clang/${SLOT}/lib/* ) - [[ -e ${sys_dir} ]] || die "Unable to find ${sys_dir}" - [[ ${#sys_dir[@]} -eq 1 ]] || die "Non-deterministic compiler-rt install: ${sys_dir[*]}" - - # copy clang over since resource_dir is located relatively to binary - # therefore, we can put our new libraries in it - mkdir -p "${BUILD_DIR}"/lib/{llvm/${CLANG_SLOT}/{bin,$(get_libdir)},clang/${SLOT}/include} || die - cp "${EPREFIX}"/usr/lib/llvm/${CLANG_SLOT}/bin/clang{,++} \ - "${BUILD_DIR}"/lib/llvm/${CLANG_SLOT}/bin/ || die - cp "${EPREFIX}"/usr/lib/clang/${SLOT}/include/*.h \ - "${BUILD_DIR}"/lib/clang/${SLOT}/include/ || die - cp "${sys_dir}"/*builtins*.a \ - "${BUILD_DIR}/lib/clang/${SLOT}/lib/${sys_dir##*/}/" || die - # we also need LLVMgold.so for gold-based tests - if [[ -f ${EPREFIX}/usr/lib/llvm/${CLANG_SLOT}/$(get_libdir)/LLVMgold.so ]]; then - ln -s "${EPREFIX}"/usr/lib/llvm/${CLANG_SLOT}/$(get_libdir)/LLVMgold.so \ - "${BUILD_DIR}"/lib/llvm/${CLANG_SLOT}/$(get_libdir)/ || die - fi - fi -} - -src_test() { - # respect TMPDIR! - local -x LIT_PRESERVES_TMP=1 - # disable sandbox to have it stop clobbering LD_PRELOAD - local -x SANDBOX_ON=0 - # wipe LD_PRELOAD to make ASAN happy - local -x LD_PRELOAD= - - cmake-utils_src_make check-all -} diff --git a/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-9.0.1.ebuild b/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-9.0.1.ebuild index 6017f6764101..fe737189a419 100644 --- a/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-9.0.1.ebuild +++ b/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-9.0.1.ebuild @@ -15,7 +15,7 @@ llvm.org_set_globals LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" SLOT="$(ver_cut 1-3)" -KEYWORDS="amd64 arm ~arm64 ppc64 x86 ~amd64-linux ~ppc-macos ~x64-macos ~x86-macos" +KEYWORDS="amd64 arm arm64 ppc64 x86 ~amd64-linux ~ppc-macos ~x64-macos ~x86-macos" IUSE="+clang +libfuzzer +profile +sanitize test +xray elibc_glibc" # FIXME: libfuzzer does not enable all its necessary dependencies REQUIRED_USE="libfuzzer? ( || ( sanitize xray ) )" diff --git a/sys-libs/compiler-rt/Manifest b/sys-libs/compiler-rt/Manifest index a70441a9412b..e4bfbc6889d8 100644 --- a/sys-libs/compiler-rt/Manifest +++ b/sys-libs/compiler-rt/Manifest @@ -1,13 +1,11 @@ DIST compiler-rt-7.1.0.src.tar.xz 1864248 BLAKE2B 42ab86416f7f85c5833cf85dbfb66b18a5d5cf53fa0560ad43b2ef39f5a2cd7ec1dbe4192cc8dac9b3f658b828c8306f26745c4d0e8f846d9f550ac22717eb33 SHA512 54d3ad80936f011dbf2ecebba3f1b7d4a156044b178228411ba855be5ec48eb646155b74dea1a96674adab6f93803456ae1435395e3240a4423a3f65f4566b55 DIST compiler-rt-8.0.1.src.tar.xz 1954204 BLAKE2B cbba1d5fb37385116920da39dea26739d09e3f11c392503f8bc45293f1ef00c97f6a9fbd3ba67094d7f1e532410d0eca461943dadfdb10646110470a8e3b5f1f SHA512 12bf1bdabe25c0c3a84cc73a718fe154573dd729ec3ff5e099bd5f74c6bec9c80521b87ded646d3b20dfdb9aa51dea0234281418c7eb81805e1dd5d3107d3d8e -DIST llvmorg-10.0.0-rc1.tar.gz 120755822 BLAKE2B a729d37d96ba498cb865c6f708734dccb796b2caabb69167b9aa3b0e12c788f2a5980a048b99d5603da3d26af909fb31f406b4f4743cabae56c45f829a7bf695 SHA512 27137fc700971147c00ded6787eaae9f0bcf98c938fe227a5a559b38d983736f3d086f4ff6772d802c5f48a7d97a97c293261e4af88fcb5a720693b9cb5a4f02 -DIST llvmorg-10.0.0-rc2.tar.gz 120795019 BLAKE2B 6e701eddbd2313e777c7b37dff8455a08d3c599d01055b60afc0319373d4709deb429aac6bf9e80c4d2e2ab8ade03bf5b398b6ccd8882e4bde608d10cdbf2284 SHA512 ee571c9258a2d9fc411964f56b0b92b2e7134349ed21dbe7963eb61ef65da506e0c4f7c69259a3b6cecec23f55d24636608287ee4457ee667031e141f8f09aae +DIST llvmorg-10.0.0.tar.gz 120804856 BLAKE2B 6b0254f5b913398cdcf2b2ec1ff219888706d2b79d5296590934714e42ac79f6a6547941ac2b1d2c4e6313dd18b6c7068e748aa6ac033e49fccbf5d355aa8191 SHA512 baa182d62fef1851836013ae8a1a00861ea89769778d67fb97b407a9de664e6c85da2af9c5b3f75d2bf34ff6b00004e531ca7e4b3115a26c0e61c575cf2303a0 DIST llvmorg-9.0.1.tar.gz 113193320 BLAKE2B b86e405f2b8e00436045fd409fe19cdde75c797b1192c62a22b5ec75e6b4dc8e874a0f33008dc31562445e4cbe53a992b6f48c684255a6a1ef261e595b8b161f SHA512 fa88beeaae94b6d0cd9b5ba38658d0ffed8004035d7d8a4f95c3d31a709b88b581ae9bd7761333c8e5375c44b8f6be01768b5a3be901163159d7e6c43b71da59 EBUILD compiler-rt-10.0.0.9999.ebuild 2847 BLAKE2B 79d7dbdf6ae014fbb41efe984ea88b5ba952af4c53c0899201017a8ed5b79211f00858e2b16290f7c485c133a9a064703332c54d13de9ee5ee873b59042e2d13 SHA512 e3bb02a9bb9d5be06aa2e79ee07f9a0ed7819e3832686442d7b95df903348b79d1812bcad40b2b61f5e192d51028c80dbf99df37979131c429ebd5715927fb29 -EBUILD compiler-rt-10.0.0_rc1.ebuild 2845 BLAKE2B 4aa00a66c70c72f8bb901c2aa91146668bc78cb98924faf301678d0ea9654cc2feaa45750442a200b4e2e3dd0e0a89cb3488d25f05774eb1c17c124dd10353dc SHA512 045228904f98f2cbe1a3585c2ff4ceee10d56337af57230e834485056a8c1a31f08b4cc0e66c131ca434e610f9639d4e650660e666877318090d2b098587a464 -EBUILD compiler-rt-10.0.0_rc2.ebuild 2847 BLAKE2B 79d7dbdf6ae014fbb41efe984ea88b5ba952af4c53c0899201017a8ed5b79211f00858e2b16290f7c485c133a9a064703332c54d13de9ee5ee873b59042e2d13 SHA512 e3bb02a9bb9d5be06aa2e79ee07f9a0ed7819e3832686442d7b95df903348b79d1812bcad40b2b61f5e192d51028c80dbf99df37979131c429ebd5715927fb29 +EBUILD compiler-rt-10.0.0.ebuild 2923 BLAKE2B c5f9ed65aa52a8c464d9b9ebff0dd36d7147a5637e2c9b7bb08bf29ee204a583d226c94dbaf5c5ac2eff4b28cd07b64d65271a8dcf3345b12b9d4022827dd12c SHA512 fe6aa86d6fdb5b211326e8c3d5414f0c684d53c0c64431c043a12f0d0483ada79ab724e70f4b69589d5c5166b6867a1620517040d833bcef5c1ba6953ac5fb01 EBUILD compiler-rt-11.0.0.9999.ebuild 2847 BLAKE2B 79d7dbdf6ae014fbb41efe984ea88b5ba952af4c53c0899201017a8ed5b79211f00858e2b16290f7c485c133a9a064703332c54d13de9ee5ee873b59042e2d13 SHA512 e3bb02a9bb9d5be06aa2e79ee07f9a0ed7819e3832686442d7b95df903348b79d1812bcad40b2b61f5e192d51028c80dbf99df37979131c429ebd5715927fb29 EBUILD compiler-rt-7.1.0.ebuild 2995 BLAKE2B 59d478fc487ca1293bd34d719b119d2a4a89a5d623e4b0d0e487c4c7df31bc096dc9ff072b3b5eed94807c3f88d8b2d84daa464a556ba27714efbca22b098207 SHA512 7d5207c13be7861eb07872de640b8bbc5e2a2a732f0a541dc78b92cc0e048b555b2a3378294366b317032afb4f7b3e67cf8da44518cab6d554c49a6d217287e4 EBUILD compiler-rt-8.0.1.ebuild 3033 BLAKE2B aae9682b1069da7024ea1e4bfd29914015cd2eb043d0f56fccc4d817bdf32ccdb3121f25232fe15fafa7e17d5bb9600de57c82b700d571d3ed2b3af3bf0d3673 SHA512 4ccaa041025603d7582775b1982a9644305110268d461bbdfdcfe094e0a85df0dd258aaf378e33d8a63ed6c5ff6d8f2f6701a69564c4ef1ab1a0662001d735da -EBUILD compiler-rt-9.0.1.ebuild 2917 BLAKE2B 9a79834e446eb98dc24ca852601a252a2f39c1f98dc32e011dd6b5edc21fe25dcf2b5f4a99946af863511179e5f21acf653748fff9f8879740735be4deb84005 SHA512 8d86098dc42553b9292659c425a641bd1ae6883ee36f39ba0b83357b1f14435d18ae53b168000a9d9bf4b16ae9e5702fde33f095a31054d5f27bd163ab49cf60 +EBUILD compiler-rt-9.0.1.ebuild 2916 BLAKE2B 4725960cfa3ff697f1b17d709c7a9f463aa8aaf2da33592b6c5d129fc4acb51181a4712c1afce01c0b97e441685cc5932524f02cbacb339f5c7c315813e4ec72 SHA512 2b038aeb653043691f046ae2930cac58ada17ece1f7da2699e1e9ce4dbe1903f21366ca82cb3d08605875f0b24fc0a9707bbde2ea6a039c080f0d54268071f0f MISC metadata.xml 333 BLAKE2B 24e417cb7b8ab7730b18a3e1e5e29d008042e4fd53cf1ba3cc9d18719160b0410854ddfae52315c690138e61fb0196015968fa09b98af6470cd8bdecc09205ef SHA512 97daa7452a696b7297c47f5f637a33425f82b51426060a75b3de6bc812f9ddcd3c70ae068bc3e88ce937ab1eb10d59b0ab48a2d2c0397a112b8b6a754e333bdc diff --git a/sys-libs/compiler-rt/compiler-rt-10.0.0.ebuild b/sys-libs/compiler-rt/compiler-rt-10.0.0.ebuild new file mode 100644 index 000000000000..ff0cc33bd948 --- /dev/null +++ b/sys-libs/compiler-rt/compiler-rt-10.0.0.ebuild @@ -0,0 +1,110 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +PYTHON_COMPAT=( python3_{6,7,8} ) +inherit cmake-utils flag-o-matic llvm llvm.org multiprocessing \ + python-any-r1 toolchain-funcs + +DESCRIPTION="Compiler runtime library for clang (built-in part)" +HOMEPAGE="https://llvm.org/" +LLVM_COMPONENTS=( compiler-rt ) +llvm.org_set_globals + +LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" +SLOT="$(ver_cut 1-3)" +KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86 ~amd64-linux ~ppc-macos ~x64-macos ~x86-macos" +IUSE="+clang test" +RESTRICT="!test? ( test ) !clang? ( test )" + +CLANG_SLOT=${SLOT%%.*} +# llvm-6 for new lit options +DEPEND=" + >=sys-devel/llvm-6" +BDEPEND=" + clang? ( sys-devel/clang ) + test? ( + $(python_gen_any_dep ">=dev-python/lit-9.0.1[\${PYTHON_USEDEP}]") + =sys-devel/clang-${PV%_*}*:${CLANG_SLOT} ) + ${PYTHON_DEPS}" + +# least intrusive of all +CMAKE_BUILD_TYPE=RelWithDebInfo + +python_check_deps() { + use test || return 0 + has_version "dev-python/lit[${PYTHON_USEDEP}]" +} + +pkg_pretend() { + if ! use clang && ! tc-is-clang; then + ewarn "Building using a compiler other than clang may result in broken atomics" + ewarn "library. Enable USE=clang unless you have a very good reason not to." + fi +} + +pkg_setup() { + llvm_pkg_setup + python-any-r1_pkg_setup +} + +test_compiler() { + $(tc-getCC) ${CFLAGS} ${LDFLAGS} "${@}" -o /dev/null -x c - \ + <<<'int main() { return 0; }' &>/dev/null +} + +src_configure() { + # pre-set since we need to pass it to cmake + BUILD_DIR=${WORKDIR}/${P}_build + + local nolib_flags=( -nodefaultlibs -lc ) + if use clang; then + local -x CC=${CHOST}-clang + local -x CXX=${CHOST}-clang++ + strip-unsupported-flags + # ensure we can use clang before installing compiler-rt + local -x LDFLAGS="${LDFLAGS} ${nolib_flags[*]}" + elif ! test_compiler; then + if test_compiler "${nolib_flags[@]}"; then + local -x LDFLAGS="${LDFLAGS} ${nolib_flags[*]}" + ewarn "${CC} seems to lack runtime, trying with ${nolib_flags[*]}" + fi + fi + + local mycmakeargs=( + -DCOMPILER_RT_INSTALL_PATH="${EPREFIX}/usr/lib/clang/${SLOT}" + + -DCOMPILER_RT_INCLUDE_TESTS=$(usex test) + -DCOMPILER_RT_BUILD_LIBFUZZER=OFF + -DCOMPILER_RT_BUILD_PROFILE=OFF + -DCOMPILER_RT_BUILD_SANITIZERS=OFF + -DCOMPILER_RT_BUILD_XRAY=OFF + ) + + if use prefix && [[ "${CHOST}" == *-darwin* ]] ; then + mycmakeargs+=( + # disable use of SDK for the system itself + -DDARWIN_macosx_CACHED_SYSROOT=/ + ) + fi + + if use test; then + mycmakeargs+=( + -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit" + -DLLVM_LIT_ARGS="-vv;-j;${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")}" + + -DCOMPILER_RT_TEST_COMPILER="${EPREFIX}/usr/lib/llvm/${CLANG_SLOT}/bin/clang" + -DCOMPILER_RT_TEST_CXX_COMPILER="${EPREFIX}/usr/lib/llvm/${CLANG_SLOT}/bin/clang++" + ) + fi + + cmake-utils_src_configure +} + +src_test() { + # respect TMPDIR! + local -x LIT_PRESERVES_TMP=1 + + cmake-utils_src_make check-builtins +} diff --git a/sys-libs/compiler-rt/compiler-rt-10.0.0_rc1.ebuild b/sys-libs/compiler-rt/compiler-rt-10.0.0_rc1.ebuild deleted file mode 100644 index 4237b872c6e1..000000000000 --- a/sys-libs/compiler-rt/compiler-rt-10.0.0_rc1.ebuild +++ /dev/null @@ -1,110 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -PYTHON_COMPAT=( python3_{6,7} ) -inherit cmake-utils flag-o-matic llvm llvm.org multiprocessing \ - python-any-r1 toolchain-funcs - -DESCRIPTION="Compiler runtime library for clang (built-in part)" -HOMEPAGE="https://llvm.org/" -LLVM_COMPONENTS=( compiler-rt ) -llvm.org_set_globals - -LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" -SLOT="$(ver_cut 1-3)" -KEYWORDS="" -IUSE="+clang test" -RESTRICT="!test? ( test ) !clang? ( test )" - -CLANG_SLOT=${SLOT%%.*} -# llvm-6 for new lit options -DEPEND=" - >=sys-devel/llvm-6" -BDEPEND=" - clang? ( sys-devel/clang ) - test? ( - $(python_gen_any_dep ">=dev-python/lit-9.0.1[\${PYTHON_USEDEP}]") - =sys-devel/clang-${PV%_*}*:${CLANG_SLOT} ) - ${PYTHON_DEPS}" - -# least intrusive of all -CMAKE_BUILD_TYPE=RelWithDebInfo - -python_check_deps() { - use test || return 0 - has_version "dev-python/lit[${PYTHON_USEDEP}]" -} - -pkg_pretend() { - if ! use clang && ! tc-is-clang; then - ewarn "Building using a compiler other than clang may result in broken atomics" - ewarn "library. Enable USE=clang unless you have a very good reason not to." - fi -} - -pkg_setup() { - llvm_pkg_setup - python-any-r1_pkg_setup -} - -test_compiler() { - $(tc-getCC) ${CFLAGS} ${LDFLAGS} "${@}" -o /dev/null -x c - \ - <<<'int main() { return 0; }' &>/dev/null -} - -src_configure() { - # pre-set since we need to pass it to cmake - BUILD_DIR=${WORKDIR}/${P}_build - - local nolib_flags=( -nodefaultlibs -lc ) - if use clang; then - local -x CC=${CHOST}-clang - local -x CXX=${CHOST}-clang++ - strip-unsupported-flags - # ensure we can use clang before installing compiler-rt - local -x LDFLAGS="${LDFLAGS} ${nolib_flags[*]}" - elif ! test_compiler; then - if test_compiler "${nolib_flags[@]}"; then - local -x LDFLAGS="${LDFLAGS} ${nolib_flags[*]}" - ewarn "${CC} seems to lack runtime, trying with ${nolib_flags[*]}" - fi - fi - - local mycmakeargs=( - -DCOMPILER_RT_INSTALL_PATH="${EPREFIX}/usr/lib/clang/${SLOT}" - - -DCOMPILER_RT_INCLUDE_TESTS=$(usex test) - -DCOMPILER_RT_BUILD_LIBFUZZER=OFF - -DCOMPILER_RT_BUILD_PROFILE=OFF - -DCOMPILER_RT_BUILD_SANITIZERS=OFF - -DCOMPILER_RT_BUILD_XRAY=OFF - ) - - if use prefix && [[ "${CHOST}" == *-darwin* ]] ; then - mycmakeargs+=( - # disable use of SDK for the system itself - -DDARWIN_macosx_CACHED_SYSROOT=/ - ) - fi - - if use test; then - mycmakeargs+=( - -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit" - -DLLVM_LIT_ARGS="-vv;-j;${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")}" - - -DCOMPILER_RT_TEST_COMPILER="${EPREFIX}/usr/lib/llvm/${CLANG_SLOT}/bin/clang" - -DCOMPILER_RT_TEST_CXX_COMPILER="${EPREFIX}/usr/lib/llvm/${CLANG_SLOT}/bin/clang++" - ) - fi - - cmake-utils_src_configure -} - -src_test() { - # respect TMPDIR! - local -x LIT_PRESERVES_TMP=1 - - cmake-utils_src_make check-builtins -} diff --git a/sys-libs/compiler-rt/compiler-rt-10.0.0_rc2.ebuild b/sys-libs/compiler-rt/compiler-rt-10.0.0_rc2.ebuild deleted file mode 100644 index 597584d700e1..000000000000 --- a/sys-libs/compiler-rt/compiler-rt-10.0.0_rc2.ebuild +++ /dev/null @@ -1,110 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -PYTHON_COMPAT=( python3_{6,7,8} ) -inherit cmake-utils flag-o-matic llvm llvm.org multiprocessing \ - python-any-r1 toolchain-funcs - -DESCRIPTION="Compiler runtime library for clang (built-in part)" -HOMEPAGE="https://llvm.org/" -LLVM_COMPONENTS=( compiler-rt ) -llvm.org_set_globals - -LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" -SLOT="$(ver_cut 1-3)" -KEYWORDS="" -IUSE="+clang test" -RESTRICT="!test? ( test ) !clang? ( test )" - -CLANG_SLOT=${SLOT%%.*} -# llvm-6 for new lit options -DEPEND=" - >=sys-devel/llvm-6" -BDEPEND=" - clang? ( sys-devel/clang ) - test? ( - $(python_gen_any_dep ">=dev-python/lit-9.0.1[\${PYTHON_USEDEP}]") - =sys-devel/clang-${PV%_*}*:${CLANG_SLOT} ) - ${PYTHON_DEPS}" - -# least intrusive of all -CMAKE_BUILD_TYPE=RelWithDebInfo - -python_check_deps() { - use test || return 0 - has_version "dev-python/lit[${PYTHON_USEDEP}]" -} - -pkg_pretend() { - if ! use clang && ! tc-is-clang; then - ewarn "Building using a compiler other than clang may result in broken atomics" - ewarn "library. Enable USE=clang unless you have a very good reason not to." - fi -} - -pkg_setup() { - llvm_pkg_setup - python-any-r1_pkg_setup -} - -test_compiler() { - $(tc-getCC) ${CFLAGS} ${LDFLAGS} "${@}" -o /dev/null -x c - \ - <<<'int main() { return 0; }' &>/dev/null -} - -src_configure() { - # pre-set since we need to pass it to cmake - BUILD_DIR=${WORKDIR}/${P}_build - - local nolib_flags=( -nodefaultlibs -lc ) - if use clang; then - local -x CC=${CHOST}-clang - local -x CXX=${CHOST}-clang++ - strip-unsupported-flags - # ensure we can use clang before installing compiler-rt - local -x LDFLAGS="${LDFLAGS} ${nolib_flags[*]}" - elif ! test_compiler; then - if test_compiler "${nolib_flags[@]}"; then - local -x LDFLAGS="${LDFLAGS} ${nolib_flags[*]}" - ewarn "${CC} seems to lack runtime, trying with ${nolib_flags[*]}" - fi - fi - - local mycmakeargs=( - -DCOMPILER_RT_INSTALL_PATH="${EPREFIX}/usr/lib/clang/${SLOT}" - - -DCOMPILER_RT_INCLUDE_TESTS=$(usex test) - -DCOMPILER_RT_BUILD_LIBFUZZER=OFF - -DCOMPILER_RT_BUILD_PROFILE=OFF - -DCOMPILER_RT_BUILD_SANITIZERS=OFF - -DCOMPILER_RT_BUILD_XRAY=OFF - ) - - if use prefix && [[ "${CHOST}" == *-darwin* ]] ; then - mycmakeargs+=( - # disable use of SDK for the system itself - -DDARWIN_macosx_CACHED_SYSROOT=/ - ) - fi - - if use test; then - mycmakeargs+=( - -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit" - -DLLVM_LIT_ARGS="-vv;-j;${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")}" - - -DCOMPILER_RT_TEST_COMPILER="${EPREFIX}/usr/lib/llvm/${CLANG_SLOT}/bin/clang" - -DCOMPILER_RT_TEST_CXX_COMPILER="${EPREFIX}/usr/lib/llvm/${CLANG_SLOT}/bin/clang++" - ) - fi - - cmake-utils_src_configure -} - -src_test() { - # respect TMPDIR! - local -x LIT_PRESERVES_TMP=1 - - cmake-utils_src_make check-builtins -} diff --git a/sys-libs/compiler-rt/compiler-rt-9.0.1.ebuild b/sys-libs/compiler-rt/compiler-rt-9.0.1.ebuild index 6050293e5159..5a78551f828d 100644 --- a/sys-libs/compiler-rt/compiler-rt-9.0.1.ebuild +++ b/sys-libs/compiler-rt/compiler-rt-9.0.1.ebuild @@ -14,7 +14,7 @@ llvm.org_set_globals LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" SLOT="$(ver_cut 1-3)" -KEYWORDS="amd64 arm ~arm64 ppc64 x86 ~amd64-linux ~ppc-macos ~x64-macos ~x86-macos" +KEYWORDS="amd64 arm arm64 ppc64 x86 ~amd64-linux ~ppc-macos ~x64-macos ~x86-macos" IUSE="+clang test" RESTRICT="!test? ( test ) !clang? ( test )" diff --git a/sys-libs/cracklib/Manifest b/sys-libs/cracklib/Manifest index 096e0cf227fb..80ccdf6ef386 100644 --- a/sys-libs/cracklib/Manifest +++ b/sys-libs/cracklib/Manifest @@ -2,6 +2,6 @@ AUX cracklib-2.9.6-CVE-2016-6318.patch 3288 BLAKE2B ed213c5d5228ded6ceed088bed2b AUX cracklib-2.9.6-fix-long-word-bufferoverflow.patch 1614 BLAKE2B 01add5ae4241f0200e8b3e35c376f176c137c8ab9a75e4364e4fd285ac85d1b2e59327eb34bb21f29e0b638199cf4f9c9603b8e747d52e62978fd392b13ce89d SHA512 e4a2f9f467d3f0ce8acd4c9ea6ca19787dca6bd2bfaa80ddbf9ec1214a5e2b519c088b07760349adac9bd6805a4b512c015181863d679643cc12c68104c29a6d DIST cracklib-2.9.6.tar.gz 642402 BLAKE2B 4d7a0d12d1e7101c82d03f76e073407481078747c283fe3251f947542017fff03fbc5e98505c6a7a8987a2bbcea99dab558c15b1eb8fd16755859ce5a4440ed2 SHA512 2b09672e5b412d670e7ed911ebf0c0023fe2901ea05c9c02eefb7a58a13cddbc27a65d75bb20be9f8cebf4c90a9a56dfe1a3b656dff62b1d6048f5376e671786 DIST cracklib-2.9.7.tar.bz2 603630 BLAKE2B 81a45b2fb9f34da84d4fb864e1a9f67a4b22c246f1e4db1c599a555f79d560a04d95afb01a89cd3a2e0936f0e8fc51ff5ada26098c24d7af0777a94f51b82bbd SHA512 f6bf65ac092ba46ff78ddbc115692260fb76dc71219cd679d2ea935ebfb9e709fbb30259a7406743ed00dbdc415335b3ac9d9fcba1d204ea36d5eb96bf1333a2 -EBUILD cracklib-2.9.6-r2.ebuild 2806 BLAKE2B 92215ea8356252bd5db08b7a8fa8c1a1cdb371a75179a0c9584d7f5234e15d74e7160edb26bcb48e23a6cdee80882f4f9a78fcb9d88b1b416d560dfba7b8cb6f SHA512 743966c9b9c6e98038423a89d0a9ffba7f693a4e11efac724a5c542874b177ae2cbc59a9556e249962c76e4c94750916f4f5d5968f35bc1f7ab3cff743fe50e8 -EBUILD cracklib-2.9.7.ebuild 2534 BLAKE2B fe4c19a88b3d6b31519ad4665b7968d8d80e8ec4117616c79b5538e58ca530b96d1d016c9c692438fd5183c087b4b4deb9ccb954ecd90d8b98eb2ea6a2faf834 SHA512 40533b61b449b11f7d8523acaeda8b7b7d309ec59993da1fcf8d09222fa8dcd2d3b1d8147a0a2f0107016823adcf758925ee10b39a69525ed32527888c35570e +EBUILD cracklib-2.9.6-r2.ebuild 2804 BLAKE2B 7f5d48ac1e520ca616bbbc884ed5eb5406bce817a2b20554e334c0410bca217fcd97f43144193a610e2b0f157b6a12e84148ce5ddd8d5e095aa9db3d851b31a4 SHA512 2d25581c6d6ecd0c132906435bdbc0f7fb73fec25b5b4c78be6cd70f86452d9b4b1f325fbfe35c59e8b4fb9acf989836cae3e15088ffb7c52264e8a09adf0c08 +EBUILD cracklib-2.9.7.ebuild 2532 BLAKE2B 72ab19dc638b7d110f6110df0835a7d819ee9db094363d829d6422d4bd56b4bed9ead2daa6443c30b81b70b753703302f3ac64fe4dec8504fc1ab2766c522b69 SHA512 71a0e0299a4731adc0284a5a6129307d33fb11563e5eea6fe54ac7055ad3d361e9fd3de6477d8d97098e114dd74825784b6cc33d17889e78f40436758dbd38e3 MISC metadata.xml 384 BLAKE2B 68827917aeea5af1cc1b3c9badfc420c3e9652f3c79fa22b925f4e317c722bf43420c5cb7e4060ed63d5b5319aad1d4cbe3b09f47422a1be06d07c598ea1cff5 SHA512 773287176f56f1a0f11edc6cd1ca85453f998ad8e58b1e608562335f814aab18124bfb850063dd4fa35aba525b776bf2c202d8afa6d4b51e354276678f324bd1 diff --git a/sys-libs/cracklib/cracklib-2.9.6-r2.ebuild b/sys-libs/cracklib/cracklib-2.9.6-r2.ebuild index 67b01c26b8d7..2136313c2395 100644 --- a/sys-libs/cracklib/cracklib-2.9.6-r2.ebuild +++ b/sys-libs/cracklib/cracklib-2.9.6-r2.ebuild @@ -17,7 +17,7 @@ SRC_URI="https://dev.gentoo.org/~polynomial-c/dist/${P}.tar.gz" LICENSE="LGPL-2.1" SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos ~m68k-mint" +KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 m68k ~mips ppc ppc64 s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos ~m68k-mint" IUSE="nls python static-libs zlib" REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" diff --git a/sys-libs/cracklib/cracklib-2.9.7.ebuild b/sys-libs/cracklib/cracklib-2.9.7.ebuild index 32d12db7d665..2463d104a9e6 100644 --- a/sys-libs/cracklib/cracklib-2.9.7.ebuild +++ b/sys-libs/cracklib/cracklib-2.9.7.ebuild @@ -15,7 +15,7 @@ SRC_URI="https://github.com/${PN}/${PN}/releases/download/v${PV}/${P}.tar.bz2" LICENSE="LGPL-2.1" SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 ~riscv s390 sh sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos ~m68k-mint" +KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 m68k ~mips ppc ppc64 ~riscv s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos ~m68k-mint" IUSE="nls python static-libs zlib" REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" diff --git a/sys-libs/db/Manifest b/sys-libs/db/Manifest index 20bd1f71ad0e..c8b5fffa997e 100644 --- a/sys-libs/db/Manifest +++ b/sys-libs/db/Manifest @@ -61,20 +61,20 @@ DIST patch.4.7.25.1 2072 BLAKE2B 773fb96f9c5995cee22931fcd504b9962d0c3407f7b4239 DIST patch.4.7.25.2 2210 BLAKE2B 3e9727a4e006fa8e4502f1481a44144458401d0df0eeea26eb135b1979f330f354cd5016f56b86400118f13fe29a92798b0dcf19581738d3e9cf83b9be1ebb6d SHA512 d57746a527574966606955a8ad6b97742ff3979e85a0d087ae0c33b64b4fc2fd854f3ac145e2efc061b3479de5ee8172a02183cf54ada91fce3e331ab948ff18 DIST patch.4.7.25.3 8442 BLAKE2B 666b643b3bf0d1e5ef5e445ae03228f436a5528bc197338c3c9bd468d7002bc81a16e295cf34fe6b38903e7f65c2c5c3cd9be0a3227f1122aeda22afc165e2a9 SHA512 815560c45c9c8491fd58d881a0bc1d23a82a13298d4757ed7d2ae4df4b88b278b8e4d6063eb46349a8f6f11ca9aa5b8555f3ce01df025715c2579dfa36241238 DIST patch.4.7.25.4 5647 BLAKE2B 60ecb24fb137f7aeacb9689d8edc41791f78f96d1aa15c7fa47032371533d668c5dc12a5e1641945402f0e21f4e596cebb5010ac170ef462279b2efb887be020 SHA512 df9810034773a9d0556cbd174e4f131f0461402bf3f476ae5da1deb92f3e2e9ef789687c5cc5c2df6385f6b14251e893be225ffacd895d71dfb305b9de32567e -EBUILD db-1.85-r4.ebuild 1307 BLAKE2B 40bc17178480cf4d7c33801aae4073b4a121f209e4f4a89cac10b9e7797ea46e2b6eb4b9b356908f4855500e507f8cc25a9febd2f20bc3ae4f67d3ddb5ac8493 SHA512 f6763764c18c657fcf9d57cc265067aa487f841608bc0ce58b1aeaa27790a8271eb9eaf25792559a6c978dc84680e61f969e071ab0eaf499b5d36de1ee82b94a -EBUILD db-18.1.32.ebuild 6944 BLAKE2B d0966b541e93b454809eca92f092b84e9dfeea3cb2414bac6b20c767f5339f65c5c756680989c14d3b435394125024d8f99f7ba6bc2d0c696d8f9bb76bc2a6e7 SHA512 b123767db77cc67fd02a99c146249cfb311fa0d1f883563abef464eab75d307dd2867dcb18b8707e9a2dddd39a87404f27465fcfe63c046fe4a9aeb479134fc6 -EBUILD db-3.2.9_p2-r1.ebuild 4899 BLAKE2B 43679fb565780d048c477900a90c45027f041988d544c326e0c19b5c7c0cad9c658554af5ebf8c7f0b4e3e28156c2e34e605eaf871d28e866c96bf2feab389e4 SHA512 c5cfc2386a32d13277d270a6c62a4947bb5e7c25cc10e04b7a18328cf24150b9d9eaa6b549f14635429787cf71fbe42f630ef5282d15499df69fe09eb1160cc6 -EBUILD db-4.2.52_p5-r2.ebuild 4637 BLAKE2B 8329a71e1b419b2a650648c8eb20dba5ad10859a63c35f4a637e2dcf994f105c4049f8c3404e64a7adaa13735f188b5732bff673d733a437a27aae02f3a1225d SHA512 667ea5fc902b8367c65fc74349b1de4535b1c4515ff63b41db386bd1c1f110629755a199e982220fad24d584ad82ca1ad1e038154280798a9d4ec920220c2a62 -EBUILD db-4.3.29_p1-r2.ebuild 4547 BLAKE2B 58c407b9c415909c82ffe229b02b6f6579b19060bcbd7e33807ccd04ab719f9d8a85f510214b0ac0fd5af1b751080cf8eb3287c249b24b0fc2629b5792a69d9b SHA512 8258cadbb9c02d820a2808149ba212e43a0ba2530b2289b5dd34b0d5eb5c3a1621ac29706a19a14c0905a83ccc797411eb8848b9fcd229e42582825790ee86c5 -EBUILD db-4.4.20_p4-r2.ebuild 4439 BLAKE2B ea7c61757bd534a41c0b1702dcbb198ba81b8c89b5066c23d5a4a89a946a05d3d2bc6389a00d7bd8902334f5d4acc48ae07487ed49d357fb7848c0fc7a2eead8 SHA512 42d912533b4f611c70f7941e24760fbb603dad6634fe037cd9c2767d98549cfe6843e613e0e445f5c413ec4d6a4cc8ac7db0d490b1a059867414503f38557cef -EBUILD db-4.5.20_p2-r2.ebuild 4675 BLAKE2B 3fcb9a35f5fc687da9cba689da0b30824097c47df4db69cafce5c1cc1bf4c637b57a2bc7c1cc174372c512388b8d30ea58e8bac715e5ddbfdc54c508845f485b SHA512 86023ba29570d86b6eac9ef29b0a973d8fcdde5c653a5e2111a488071493da1fe708e58ea4072aef89b734d76767f1efd40f226b2e9e43da125a0a141ba6431b -EBUILD db-4.6.21_p4-r1.ebuild 4397 BLAKE2B 1f0a5199af505d1e7a4ca0fc1808089f1b40dcd5e866707835c9a97657d4d9f6e128cfd0ae235f52b636d1a1745ca5bdf56c203cdf2e5cd6e650530cfd581261 SHA512 93a745dc7247879fef9b84a74557f855ed00eeefd945c60d6f2f709f2ef679a2f87d3f475f730254ff711a33ca766fdc80b52b0a1db6743849918c1dd252988d -EBUILD db-4.7.25_p4-r1.ebuild 4723 BLAKE2B fc1a72d29058aca3561ca3c11e640c454f48b7a31626802f08f3e62f1f8e1f0276065066fe0c0708971ab9badb5c3a492db1edfe671d67f90020dd1493f194ec SHA512 c1b999536f797af5b5dc882588e5da09b902131c5c004db3676881917f4553f09a9f2d52531d46a45c47e205b6b528f0c633b91210887d66c380051951ccbd74 -EBUILD db-4.8.30-r3.ebuild 5206 BLAKE2B e7526ac9d8f9d460c118f4568e11b0b979802c429a8cb8eaf3f4de7495b99a5890b9e60eb3917471846bac70a5dec2c6c306e3b74160c64424ad5b1d5c4b2d8a SHA512 98c596198d3ba285718848250433907606148628e1d64c51ee58ab897ce73b6753a8c58f56440917669f49a36009a4d4ee48eb748b951b578b572d05f002311c -EBUILD db-5.1.29-r2.ebuild 5856 BLAKE2B 21b51a72428a7523df6c0688f0082d825016ed270684c0a066733304a9857a21bb933078b45b2263ce728b68e6c9c2ace1697d58111be77162ba62cade3ed2c9 SHA512 de70e02208eac3c925e0cdf1ca72d8eb338787643a3583e6ce63dccbca8d83710494cfa8e20f2b104f0c6bbd519ac15ec3280fa3f432627e0eaae8b3d7c272bf -EBUILD db-5.3.28-r2.ebuild 7137 BLAKE2B 66ebc3e3093e14f6b6ea82cf4458b4dc4856c701313c752370f8afefea3b259f68196c8a6c56136c517485049be02ba14899e07a7932326a89ebe1403833783c SHA512 b677a2c27c8fa236b2cb2a07458dedad89d9c0d53d4cc1112d0688d9f3e5e6480306ef7421b62fcbc1c9f337a6377d61e9c2c3e67fef69e3c58758615daa8f2f -EBUILD db-5.3.28-r4.ebuild 7142 BLAKE2B c8d9a8441051754c85174cca506c752f14c8d2b331d25231ae969181fcbefb63bbbbaf215ca348a8e0531e641351bf9b26eb0a61edd54641ab7fdf345c485d43 SHA512 ce16c3a580082df7a9aa1497b47a6fa3124df7fd100626f359824afa0d67b92adca05a0a6dadabbca54498c3408215af2e2832a0f76b25f1817bcc5d2915f513 -EBUILD db-6.0.35-r2.ebuild 7137 BLAKE2B 1dd77dd052e145d829449135c3c53498e112643737949ad7f2d575c135901df0c84c64e537f6a5f04237c32ea4f3e28bce70b71effad2eb1b231db859a5ddb0b SHA512 86088bfe60d3ab9b05e930a486352eb41ef57b51f8a76784c75c3b9cf38732484a576f1cc9fdab8f3240e445327b5a4185c58e58765ccd125710f85b81fcea8b -EBUILD db-6.1.38.ebuild 6908 BLAKE2B 836b5c1b5cdc670e99fadcc7d1ce491f468d8ad82d93046323754ef41fd21ca9014a7e36fa46fcf4ea62625c26b2bbe781a8000ce68995ece393459a6c0a4e5d SHA512 c7e1d9c525bedc9062c29de090f06fca1c5d60b1eaa141ca3bcd6704060b27bc913da0b2acb76e74a995765422de9394a2abd1ce38ef8ef9f2fe1a991c91372d -EBUILD db-6.2.38.ebuild 6911 BLAKE2B b55b1c0e66cbcf52d5ea236dde20d6b1f53dfa568027910e1efe8925a2c07b20f923f5307d67ddab0fd92f2961c7b5a4dbcee89b1bd3875fbb1b84955895e2ac SHA512 e7e1d4132b3af68ed43fa77ec5610c260290ed3620277484c8fd0f4c6b42900b2ac55673a90a840621251e08c1c83b3bd808e6a55469653b7ec73eb728b3ede0 -MISC metadata.xml 1323 BLAKE2B f954567067cc1490d6804dd9d7b612dd90733c7ab84546cbedc0075f8f3ef1faf6f1bb70bae31e83b0aa17666bd6711999b67ce4fe6c15bcffc3ba5bd8d004b7 SHA512 36f8b6db241ef960b2ac0f7bd19738066e3daadd90efbf7edc54a4774e491506d69a2207738f53643a3e52f1f35a900e4717747744bd30ca682265f50cb8884c +EBUILD db-1.85-r4.ebuild 1305 BLAKE2B d7411f09ad2e785bebdd5d79f772571eea74471a7d86d0b040e5241f2d68eed72ae1f2d26b75a58f77dc782b2a32fef64fa51f673da0840928b2c85c32850fcd SHA512 e20a74b665ca26f512caa5ce16323c361fe9f2f367c7c9e3ab9868885c7f410cec02f0577b8726d04e106d741b91295cdfe463864f591dd9749eb7d6dd46e91e +EBUILD db-18.1.32.ebuild 6940 BLAKE2B 869d66cd41771a5fb8ca879079c3c166645b6047d75429c0f12e55e975fc784d7acdbf69cbbc6e46940583cd840896d39368840d3d466f5e54cf3ef2f11c3c04 SHA512 d741d0203a37cc47cbff6adbc2d2072130823f54be2d50096191307b4b88ff62d660884ea2b5d701a3ee86ec9a2d17490a6635628298751d3d1aa5917ca9e434 +EBUILD db-3.2.9_p2-r1.ebuild 4897 BLAKE2B 1a8fa86bc5f24df7bbb0b73560b22b29124af1e29e8850cda60ad1c2e0a5ef61c4a404dea5bf00bda0c6d993394ec9fc40d6661c760506b422c3cc2cec11508b SHA512 948650105b0974815fadf70d118b0474542910635c5f37b5d60ad6ea424ff7a400aefccb10d163d6831f346763c5e4190f8a299624932886102f562fd94672b3 +EBUILD db-4.2.52_p5-r3.ebuild 4627 BLAKE2B c73d82a6091c32b671076d7e99e53ed4ee363d762ce5727e691ba63f5c507e4c762fc3817dd52e4cae92e5da2418f6bb5acc834c630a8cf15bf518df7d9f4b6a SHA512 60c265ec752bebc7e349a0c8127fda9f015450a046de89a932a5f8e9e578760363bf27e268f13cf7bb1b4988a0f0aa774766f7afcaa88a3fe7ede6c9e8d79acc +EBUILD db-4.3.29_p1-r3.ebuild 4537 BLAKE2B 68eda36f5996eb82195e3b229a1c52484a29ab7a67867a39af36e92c4c7c392a33178a1e9a55389919567f914f3c7a5e037d361239b025fc5f321f734dd6cc30 SHA512 5771ab9ccb598f823baca539412ff800bb16d6c21a360d28ff13ec95d6c6fef0a0d438e9e974d7a64e1a44571d6a23b6c2a30a1ea98defdb29a4768c4286671a +EBUILD db-4.4.20_p4-r3.ebuild 4427 BLAKE2B d50b789a433d466e1bc72625aae2f759121ff47048e248c8b42911907714035411f31affd7314a4dec2f19e941e75156a07e6120e3cc54f991495af6f21aaadc SHA512 f67c3d6a7e4350d1ba4c641abfa96ab909a8083fcaabbcbd2d8b6d10155a3c5775edc2f2a9f676c433922b5620f4832eaf6322f7a63782ae09611767306af682 +EBUILD db-4.5.20_p2-r3.ebuild 4665 BLAKE2B aedc11777322c32c2828d43bc8677a316e230b35ed6edfc6354ef164bd640db13643219c6a4e22965a76cc5531b87e843984244e28aaf9516ab3d3a4a9c58544 SHA512 fb617e19ee11a6a3b98b846e7289f98c203492a45d6eeb2ce4f62aa679d8e163b487323274bd485066490cb2f07dd74ddcbfda004a90559a8fc11bda043864e0 +EBUILD db-4.6.21_p4-r2.ebuild 4387 BLAKE2B 0fdf59a6c27fad1381d05a17fee4981a9cf6dd9f694a1a2bb8621a9046fcbe2d9a91004737c2679c7309582349677bcd886a874df9e053f014f6387cd4c99e7a SHA512 7300e3886f9e9b23670c63fa53fcc8e93ee4b213a8b52464eef4e89094414984f247307959517e6d52e3ede20dd606c2c7e4021d6cdc841c388ca908eea9840e +EBUILD db-4.7.25_p4-r2.ebuild 4713 BLAKE2B 708f5a7f4e6fe001fde880354635cc74d6113b33b2542d38f69e3f9eef0761e488d808522f7dbf31b927c760be84882c20996f14d8fa0f3edc1fb13f8c121a09 SHA512 aa9b7797ce9e169d4c579535e606a7272e8788ba31b1009346682a69abde968591c9b7b3482d080f83412c1228f8fa87e2dd59fbc77798aae9be0889e61c0570 +EBUILD db-4.8.30-r3.ebuild 5204 BLAKE2B 299ae5e8e9664113f23c05a816587b9996f894a29e4a609c496aa0445fdae0254bd2aa0f6d86f64f264d6eb24fb7b70e585b434b0e9c90569fce013a24f233aa SHA512 6d6a6462d3e78a8362b9b899f4c7b3de48501e563c494bcd4ae0e9e9d52b26e49167ff6ba728ad50d3369777ccb13a04561a723eaf9a148a24fdd0992546b68f +EBUILD db-5.1.29-r2.ebuild 5852 BLAKE2B 134957fc864e77d18bb7ad43d1d042a464aa6afb741a04ae23f9ae332676c4fc4312f8fefbf6f7cb751c9dd14933eeb2f245e36d84880fcf2d4fadde1b3c0cb3 SHA512 4f686764cd7caa4bb0453ec482a9310b6887f40b3f79e76f02a0f2e33fd6095d715ec0b105035dd3a41ede58fc19d0b0b6267099ad3fbe977f2d4881bf1bf279 +EBUILD db-5.3.28-r2.ebuild 7134 BLAKE2B 8fa99af39ae1c253152d9ce31b9f647db85dbdac3fd6cdfc61e673511158bbcd389e2770ac3175a6eb2c013500dc32937352153b8d2acf97e1bf346f8ca57a06 SHA512 a13f32fce2e3f351449b2e0ad12d4103838df89663aa2f9eb87b4fbf7a0aa425a8f4d17b20057abc6787e71f40514477df1490dcd9a974c74e7683d06864f0c6 +EBUILD db-5.3.28-r4.ebuild 7138 BLAKE2B 663da54915b4c999ccbcdee709dd9d9f3c32b932ba5aaea39d6632cf505fdacb43cf3810bd259c134bae068126991a51629837e75857b6e070584a9687577a29 SHA512 a3e6b517796856fa7a5489f14c4b65799398435f1b82d4b3d695548c44d4d73353517dd56738dd7e05167d3318de35d53dd1eea530e2f7e29d5f3bbedec61c1a +EBUILD db-6.0.35-r2.ebuild 7133 BLAKE2B a8402401fd22d8c1d09094fe1ee01f887cb13a16ca73917f8147a57646c377661e0c4e3bef770e9e9d8addee01a9b70484a33b53d13814dd9cce910e1d6efa4c SHA512 05a4722efd0b38d20a565e548697b9e13d014939777698d19b38db4ba80ca3a042d89024750fb950ea41771b8abdfb1acbe938d172dcbad6a16ffaf21eba6deb +EBUILD db-6.1.38.ebuild 6904 BLAKE2B fbabc619612aaef2db5c66666eb8585c7722c7c992bb645d11b14c19bd8749fa0699377060df9bbd00de8bbce55b35f563d2a8e1515c0ec2e827e1943923ff26 SHA512 c797ac1a3e3242e6f35f53533a9b63492dadf4c1ec47b5b6106f68744e633cba071b1ccaeefb7cd14ea44d79de2b6f6312f8f50b4a4dff335770e06c77656b90 +EBUILD db-6.2.38.ebuild 6907 BLAKE2B 94f773f935b376169ea01aec6da4e6e7eba48761937fee184cc1af2e39a9a134fbce033e3ad5dcddbedaa76ed8e787ccf6f3cb708688f8a61e0032c7f527b1e7 SHA512 32ac2ae009fcea46fd530a4a444bd4e170d40778c238dd49e91a80445c2288903a27bc961fbd7bb8d0ff52f3d97d1a5ed5b603e4077e66b71775a38eb9d11a2c +MISC metadata.xml 1260 BLAKE2B e98fbefa3a80d0fa577c4b5afdda7652db360f86026c356e2f52581189d63a492747857acd8b8f2627a184580a6a98b3c6d144d209e08850cd6e89581e169a68 SHA512 63b883d28b987d8fdc58399d6ed5d942fad361c75cfb62a39dce7d50b155ecba82c17139542d1311effb061e535077a1903052b7f5c2bd3700464af77ef39fa0 diff --git a/sys-libs/db/db-1.85-r4.ebuild b/sys-libs/db/db-1.85-r4.ebuild index 7e2658ff7c9a..585f6acb1c85 100644 --- a/sys-libs/db/db-1.85-r4.ebuild +++ b/sys-libs/db/db-1.85-r4.ebuild @@ -14,7 +14,7 @@ SRC_URI="http://download.oracle.com/berkeley-db/db.${PV}.tar.gz LICENSE="Sleepycat" SLOT="1" -KEYWORDS="~alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86" +KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 m68k ~mips ppc ppc64 s390 sparc x86" IUSE="" DEPEND="" diff --git a/sys-libs/db/db-18.1.32.ebuild b/sys-libs/db/db-18.1.32.ebuild index b44531fc25ed..c8d7486e83f8 100644 --- a/sys-libs/db/db-18.1.32.ebuild +++ b/sys-libs/db/db-18.1.32.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2019 Gentoo Authors +# Copyright 1999-2020 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=6 @@ -30,7 +30,7 @@ done LICENSE="AGPL-3" SLOT="$(ver_cut 1-2)" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~ppc ~ppc64 ~s390 ~sparc ~x86" IUSE="doc java cxx tcl test" REQUIRED_USE="test? ( tcl )" diff --git a/sys-libs/db/db-3.2.9_p2-r1.ebuild b/sys-libs/db/db-3.2.9_p2-r1.ebuild index a08f3c486591..93042b6f29b8 100644 --- a/sys-libs/db/db-3.2.9_p2-r1.ebuild +++ b/sys-libs/db/db-3.2.9_p2-r1.ebuild @@ -28,7 +28,7 @@ LICENSE="Sleepycat" SLOT="3" # This ebuild is to be the compatibility ebuild for when db4 is put # in the tree. -KEYWORDS="~alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86" +KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 m68k ~mips ppc ppc64 s390 sparc x86" IUSE="doc" RESTRICT="!test? ( test )" diff --git a/sys-libs/db/db-4.2.52_p5-r2.ebuild b/sys-libs/db/db-4.2.52_p5-r2.ebuild deleted file mode 100644 index e74218a5d077..000000000000 --- a/sys-libs/db/db-4.2.52_p5-r2.ebuild +++ /dev/null @@ -1,185 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -inherit autotools db flag-o-matic java-pkg-opt-2 multilib - -#Number of official patches -#PATCHNO=`echo ${PV}|sed -e "s,\(.*_p\)\([0-9]*\),\2,"` -PATCHNO="${PV/*.*.*_p}" -if [[ ${PATCHNO} == "${PV}" ]] ; then - MY_PV="${PV}" - MY_P="${P}" - PATCHNO=0 -else - MY_PV="${PV/_p${PATCHNO}}" - MY_P="${PN}-${MY_PV}" -fi - -S="${WORKDIR}/${MY_P}/build_unix" -DESCRIPTION="Oracle Berkeley DB" -HOMEPAGE="http://www.oracle.com/technetwork/database/database-technologies/berkeleydb/overview/index.html" -SRC_URI="http://download.oracle.com/berkeley-db/${MY_P}.tar.gz" -for (( i=1 ; i<=${PATCHNO} ; i++ )) ; do - export SRC_URI="${SRC_URI} http://www.oracle.com/technology/products/berkeley-db/db/update/${MY_PV}/patch.${MY_PV}.${i}" -done - -LICENSE="Sleepycat" -SLOT="$(ver_cut 1-2)" -KEYWORDS="~alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86" -IUSE="tcl java doc cxx rpc" -RESTRICT="!test? ( test )" - -DEPEND="tcl? ( >=dev-lang/tcl-8.4 ) - java? ( >=virtual/jdk-1.4 )" -RDEPEND="tcl? ( dev-lang/tcl ) - java? ( >=virtual/jre-1.4 )" - -PATCHES=( - "${FILESDIR}"/"${PN}"-4.2.52_p2-TXN.patch - "${FILESDIR}"/"${PN}"-"${SLOT}"-libtool.patch - - # use the includes from the prefix - "${FILESDIR}"/"${PN}"-"${SLOT}"-jni-check-prefix-first.patch - "${FILESDIR}"/"${PN}"-"${SLOT}"-listen-to-java-options.patch - "${FILESDIR}"/"${PN}"-4.0.14-fix-dep-link.patch -) - -# Required to avoid unpack attempt of patches -src_unpack() { - unpack ${MY_P}.tar.gz -} - -src_prepare() { - pushd "${WORKDIR}/${MY_P}" &>/dev/null || die - for (( i=1 ; i<=${PATCHNO} ; i++ )) - do - eapply -p0 "${DISTDIR}"/patch."${MY_PV}"."${i}" - done - - default - - sed -e "/^DB_RELEASE_DATE=/s/%B %e, %Y/%Y-%m-%d/" \ - -i dist/RELEASE || die - - # Include the SLOT for Java JAR files - # This supersedes the unused jarlocation patches. - sed -r \ - -e '/jarfile=.*\.jar$/s,(.jar$),-$(LIBVERSION)\1,g' \ - -i dist/Makefile.in || die - - # START of 4.5+earlier specific - # Upstream sucks, they normally concat these - local i j - for j in dist/aclocal{,_java} ; do - pushd ${j} &>/dev/null || die - for i in * ; do - ln -s ${i} ${i%.ac}.m4 || die - done - popd &>/dev/null || die - done - # END of 4.5+earlier specific - pushd dist &>/dev/null || die - rm aclocal/libtool.{m4,ac} || die - sed \ - -e '/AC_PROG_LIBTOOL$/aLT_OUTPUT' \ - -i configure.ac || die - sed \ - -e '/^AC_PATH_TOOL/s/ sh, missing_sh/ bash, missing_sh/' \ - -i aclocal/programs.m4 || die - - AT_M4DIR="aclocal aclocal_java" eautoreconf - - # Upstream sucks - they do autoconf and THEN replace the version variables. - . ./RELEASE - sed \ - -e "s/__EDIT_DB_VERSION_MAJOR__/$DB_VERSION_MAJOR/g" \ - -e "s/__EDIT_DB_VERSION_MINOR__/$DB_VERSION_MINOR/g" \ - -e "s/__EDIT_DB_VERSION_PATCH__/$DB_VERSION_PATCH/g" \ - -e "s/__EDIT_DB_VERSION_STRING__/$DB_VERSION_STRING/g" \ - -e "s/__EDIT_DB_VERSION_UNIQUE_NAME__/$DB_VERSION_UNIQUE_NAME/g" \ - -e "s/__EDIT_DB_VERSION__/$DB_VERSION/g" \ - -i configure || die - - popd &>/dev/null || die - popd &>/dev/null || die -} - -src_configure() { - local myconf=( - --enable-compat185 - --with-uniquename - $(use_enable rpc) - --host="${CHOST}" - - $(usex amd64 '--with-mutex=x86/gcc-assembly' '') - $(use_enable cxx) - $(use_enable tcl) - $(usex tcl "--with-tcl=${EPREFIX}/usr/$(get_libdir)" '') #" - $(use_enable java) - ) - - if use java; then - myconf+=( - --with-java-prefix="${JAVA_HOME}" - --with-javac-flags="$(java-pkg_javac-args)" - ) - fi - - # the entire testsuite needs the TCL functionality - if use tcl && use test; then - myconf+=( --enable-test ) - else - myconf+=( --disable-test ) - fi - - ECONF_SOURCE="${S}"/../dist \ - econf "${myconf[@]}" -} - -src_compile() { - # This isn't safe for prefix (Darwin should be .jnilib), but I can't get the - # build system to behave itself, it generates libtool too late. - sed \ - -e 's/-shrext $(SOFLAGS)/-shrext .so $(SOFLAGS)/g' \ - -i Makefile || die - emake -} - -src_install() { - emake \ - DESTDIR="${D}" \ - libdir="${EPREFIX}/usr/$(get_libdir)" \ - strip="${EPREFIX}/bin/strip" \ - install - - db_src_install_usrbinslot - - db_src_install_headerslot - - db_src_install_doc - - db_src_install_usrlibcleanup - - dodir /usr/sbin - # This file is not always built, and no longer exists as of db-4.8 - if [[ -f "${ED}"/usr/bin/berkeley_db_svc ]] ; then - mv "${ED}"/usr/bin/berkeley_db_svc \ - "${ED}"/usr/sbin/berkeley_db"${SLOT/./}"_svc || die - fi - - if use java; then - java-pkg_regso "${ED}"/usr/"$(get_libdir)"/libdb_java*.so - java-pkg_dojar "${ED}"/usr/"$(get_libdir)"/*.jar - rm -f "${ED}"/usr/"$(get_libdir)"/*.jar - fi -} - -pkg_postinst() { - db_fix_so -} - -pkg_postrm() { - db_fix_so -} diff --git a/sys-libs/db/db-4.2.52_p5-r3.ebuild b/sys-libs/db/db-4.2.52_p5-r3.ebuild new file mode 100644 index 000000000000..9d759a72c662 --- /dev/null +++ b/sys-libs/db/db-4.2.52_p5-r3.ebuild @@ -0,0 +1,185 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit autotools db flag-o-matic java-pkg-opt-2 multilib + +#Number of official patches +#PATCHNO=`echo ${PV}|sed -e "s,\(.*_p\)\([0-9]*\),\2,"` +PATCHNO="${PV/*.*.*_p}" +if [[ ${PATCHNO} == "${PV}" ]] ; then + MY_PV="${PV}" + MY_P="${P}" + PATCHNO=0 +else + MY_PV="${PV/_p${PATCHNO}}" + MY_P="${PN}-${MY_PV}" +fi + +S="${WORKDIR}/${MY_P}/build_unix" +DESCRIPTION="Oracle Berkeley DB" +HOMEPAGE="http://www.oracle.com/technetwork/database/database-technologies/berkeleydb/overview/index.html" +SRC_URI="http://download.oracle.com/berkeley-db/${MY_P}.tar.gz" +for (( i=1 ; i<=${PATCHNO} ; i++ )) ; do + export SRC_URI="${SRC_URI} http://www.oracle.com/technology/products/berkeley-db/db/update/${MY_PV}/patch.${MY_PV}.${i}" +done + +LICENSE="Sleepycat" +SLOT="$(ver_cut 1-2)" +KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 m68k ~mips ppc ppc64 s390 sparc x86" +IUSE="tcl java doc cxx" +RESTRICT="!test? ( test )" + +DEPEND="tcl? ( >=dev-lang/tcl-8.4 ) + java? ( >=virtual/jdk-1.4 )" +RDEPEND="tcl? ( dev-lang/tcl ) + java? ( >=virtual/jre-1.4 )" + +PATCHES=( + "${FILESDIR}"/"${PN}"-4.2.52_p2-TXN.patch + "${FILESDIR}"/"${PN}"-"${SLOT}"-libtool.patch + + # use the includes from the prefix + "${FILESDIR}"/"${PN}"-"${SLOT}"-jni-check-prefix-first.patch + "${FILESDIR}"/"${PN}"-"${SLOT}"-listen-to-java-options.patch + "${FILESDIR}"/"${PN}"-4.0.14-fix-dep-link.patch +) + +# Required to avoid unpack attempt of patches +src_unpack() { + unpack ${MY_P}.tar.gz +} + +src_prepare() { + pushd "${WORKDIR}/${MY_P}" &>/dev/null || die + for (( i=1 ; i<=${PATCHNO} ; i++ )) + do + eapply -p0 "${DISTDIR}"/patch."${MY_PV}"."${i}" + done + + default + + sed -e "/^DB_RELEASE_DATE=/s/%B %e, %Y/%Y-%m-%d/" \ + -i dist/RELEASE || die + + # Include the SLOT for Java JAR files + # This supersedes the unused jarlocation patches. + sed -r \ + -e '/jarfile=.*\.jar$/s,(.jar$),-$(LIBVERSION)\1,g' \ + -i dist/Makefile.in || die + + # START of 4.5+earlier specific + # Upstream sucks, they normally concat these + local i j + for j in dist/aclocal{,_java} ; do + pushd ${j} &>/dev/null || die + for i in * ; do + ln -s ${i} ${i%.ac}.m4 || die + done + popd &>/dev/null || die + done + # END of 4.5+earlier specific + pushd dist &>/dev/null || die + rm aclocal/libtool.{m4,ac} || die + sed \ + -e '/AC_PROG_LIBTOOL$/aLT_OUTPUT' \ + -i configure.ac || die + sed \ + -e '/^AC_PATH_TOOL/s/ sh, missing_sh/ bash, missing_sh/' \ + -i aclocal/programs.m4 || die + + AT_M4DIR="aclocal aclocal_java" eautoreconf + + # Upstream sucks - they do autoconf and THEN replace the version variables. + . ./RELEASE + sed \ + -e "s/__EDIT_DB_VERSION_MAJOR__/$DB_VERSION_MAJOR/g" \ + -e "s/__EDIT_DB_VERSION_MINOR__/$DB_VERSION_MINOR/g" \ + -e "s/__EDIT_DB_VERSION_PATCH__/$DB_VERSION_PATCH/g" \ + -e "s/__EDIT_DB_VERSION_STRING__/$DB_VERSION_STRING/g" \ + -e "s/__EDIT_DB_VERSION_UNIQUE_NAME__/$DB_VERSION_UNIQUE_NAME/g" \ + -e "s/__EDIT_DB_VERSION__/$DB_VERSION/g" \ + -i configure || die + + popd &>/dev/null || die + popd &>/dev/null || die +} + +src_configure() { + local myconf=( + --enable-compat185 + --with-uniquename + --disable-rpc + --host="${CHOST}" + + $(usex amd64 '--with-mutex=x86/gcc-assembly' '') + $(use_enable cxx) + $(use_enable tcl) + $(usex tcl "--with-tcl=${EPREFIX}/usr/$(get_libdir)" '') #" + $(use_enable java) + ) + + if use java; then + myconf+=( + --with-java-prefix="${JAVA_HOME}" + --with-javac-flags="$(java-pkg_javac-args)" + ) + fi + + # the entire testsuite needs the TCL functionality + if use tcl && use test; then + myconf+=( --enable-test ) + else + myconf+=( --disable-test ) + fi + + ECONF_SOURCE="${S}"/../dist \ + econf "${myconf[@]}" +} + +src_compile() { + # This isn't safe for prefix (Darwin should be .jnilib), but I can't get the + # build system to behave itself, it generates libtool too late. + sed \ + -e 's/-shrext $(SOFLAGS)/-shrext .so $(SOFLAGS)/g' \ + -i Makefile || die + emake +} + +src_install() { + emake \ + DESTDIR="${D}" \ + libdir="${EPREFIX}/usr/$(get_libdir)" \ + strip="${EPREFIX}/bin/strip" \ + install + + db_src_install_usrbinslot + + db_src_install_headerslot + + db_src_install_doc + + db_src_install_usrlibcleanup + + dodir /usr/sbin + # This file is not always built, and no longer exists as of db-4.8 + if [[ -f "${ED}"/usr/bin/berkeley_db_svc ]] ; then + mv "${ED}"/usr/bin/berkeley_db_svc \ + "${ED}"/usr/sbin/berkeley_db"${SLOT/./}"_svc || die + fi + + if use java; then + java-pkg_regso "${ED}"/usr/"$(get_libdir)"/libdb_java*.so + java-pkg_dojar "${ED}"/usr/"$(get_libdir)"/*.jar + rm -f "${ED}"/usr/"$(get_libdir)"/*.jar + fi +} + +pkg_postinst() { + db_fix_so +} + +pkg_postrm() { + db_fix_so +} diff --git a/sys-libs/db/db-4.3.29_p1-r2.ebuild b/sys-libs/db/db-4.3.29_p1-r2.ebuild deleted file mode 100644 index b710ea697ea2..000000000000 --- a/sys-libs/db/db-4.3.29_p1-r2.ebuild +++ /dev/null @@ -1,184 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -inherit autotools db flag-o-matic java-pkg-opt-2 multilib - -#Number of official patches -#PATCHNO=`echo ${PV}|sed -e "s,\(.*_p\)\([0-9]*\),\2,"` -PATCHNO="${PV/*.*.*_p}" -if [[ ${PATCHNO} == "${PV}" ]] ; then - MY_PV="${PV}" - MY_P="${P}" - PATCHNO=0 -else - MY_PV="${PV/_p${PATCHNO}}" - MY_P="${PN}-${MY_PV}" -fi - -S="${WORKDIR}/${MY_P}/build_unix" -DESCRIPTION="Oracle Berkeley DB" -HOMEPAGE="http://www.oracle.com/technetwork/database/database-technologies/berkeleydb/overview/index.html" -SRC_URI="http://download.oracle.com/berkeley-db/${MY_P}.tar.gz" -for (( i=1 ; i<=${PATCHNO} ; i++ )) ; do - export SRC_URI="${SRC_URI} http://www.oracle.com/technology/products/berkeley-db/db/update/${MY_PV}/patch.${MY_PV}.${i}" -done - -LICENSE="Sleepycat" -SLOT="$(ver_cut 1-2)" -KEYWORDS="~alpha amd64 arm arm64 hppa ia64 m68k ppc ppc64 s390 sh sparc x86" -IUSE="tcl java doc cxx rpc" -RESTRICT="!test? ( test )" - -DEPEND="tcl? ( >=dev-lang/tcl-8.4 ) - java? ( >=virtual/jdk-1.4 ) - >=sys-devel/binutils-2.16.1" -RDEPEND="tcl? ( dev-lang/tcl ) - java? ( >=virtual/jre-1.4 )" - -PATCHES=( - "${FILESDIR}"/"${PN}"-"${SLOT}"-libtool.patch - - # use the includes from the prefix - "${FILESDIR}"/"${PN}"-4.2-jni-check-prefix-first.patch - "${FILESDIR}"/"${PN}"-4.2-listen-to-java-options.patch - - "${FILESDIR}"/"${PN}"-4.3.27-fix-dep-link.patch -) - -# Required to avoid unpack attempt of patches -src_unpack() { - unpack "${MY_P}".tar.gz -} - -src_prepare() { - pushd "${WORKDIR}"/"${MY_P}" &>/dev/null || die - for (( i=1 ; i<=${PATCHNO} ; i++ )) - do - eapply -p0 "${DISTDIR}"/patch."${MY_PV}"."${i}" - done - - default - - sed -e "/^DB_RELEASE_DATE=/s/%B %e, %Y/%Y-%m-%d/" \ - -i dist/RELEASE || die - - # Include the SLOT for Java JAR files - # This supersedes the unused jarlocation patches. - sed -r \ - -e '/jarfile=.*\.jar$/s,(.jar$),-$(LIBVERSION)\1,g' \ - -i dist/Makefile.in || die - - # START of 4.5+earlier specific - # Upstream sucks, they normally concat these - local i j - for j in dist/aclocal{,_java} ; do - pushd ${j} &>/dev/null || die - for i in * ; do - ln -s ${i} ${i%.ac}.m4 || die - done - popd &>/dev/null || die - done - # END of 4.5+earlier specific - - pushd dist &>/dev/null || die - rm aclocal/libtool.{m4,ac} || die - sed \ - -e '/AC_PROG_LIBTOOL$/aLT_OUTPUT' \ - -i configure.ac || die - sed \ - -e '/^AC_PATH_TOOL/s/ sh, missing_sh/ bash, missing_sh/' \ - -i aclocal/programs.m4 || die - - AT_M4DIR="aclocal aclocal_java" eautoreconf - - # Upstream sucks - they do autoconf and THEN replace the version variables. - . ./RELEASE - sed \ - -e "s/__EDIT_DB_VERSION_MAJOR__/$DB_VERSION_MAJOR/g" \ - -e "s/__EDIT_DB_VERSION_MINOR__/$DB_VERSION_MINOR/g" \ - -e "s/__EDIT_DB_VERSION_PATCH__/$DB_VERSION_PATCH/g" \ - -e "s/__EDIT_DB_VERSION_STRING__/$DB_VERSION_STRING/g" \ - -e "s/__EDIT_DB_VERSION_UNIQUE_NAME__/$DB_VERSION_UNIQUE_NAME/g" \ - -e "s/__EDIT_DB_VERSION__/$DB_VERSION/g" \ - -i configure || die - popd &>/dev/null || die - popd &>/dev/null || die -} - -src_configure() { - local myconf=( - --enable-compat185 - --enable-o_direct - --without-uniquename - $(use_enable rpc) - --host="${CHOST}" - - $(usex amd64 '--with-mutex=x86/gcc-assembly' '') - $(use_enable cxx) - $(use_enable tcl) - $(usex tcl "--with-tcl=${EPREFIX}/usr/$(get_libdir)" '') #" - $(use_enable java) - ) - - if use java; then - myconf+=( - --with-java-prefix="${JAVA_HOME}" - --with-javac-flags="$(java-pkg_javac-args)" - ) - fi - - # the entire testsuite needs the TCL functionality - if use tcl && use test ; then - myconf+=( --enable-test ) - else - myconf+=( --disable-test ) - fi - - # Add linker versions to the symbols. Easier to do, and safer than header - # file mumbo jumbo. - if use userland_GNU; then - append-ldflags -Wl,--default-symver - fi - - ECONF_SOURCE="${S}"/../dist \ - econf "${myconf[@]}" -} - -src_install() { - emake \ - DESTDIR="${D}" \ - libdir="${EPREFIX}/usr/$(get_libdir)" \ - strip="${EPREFIX}/bin/strip" \ - install - - db_src_install_usrbinslot - - db_src_install_headerslot - - db_src_install_doc - - db_src_install_usrlibcleanup - - dodir /usr/sbin - # This file is not always built, and no longer exists as of db-4.8 - if [[ -f "${ED}"/usr/bin/berkeley_db_svc ]] ; then - mv "${ED}"/usr/bin/berkeley_db_svc \ - "${ED}"/usr/sbin/berkeley_db"${SLOT/./}"_svc || die - fi - - if use java; then - java-pkg_regso "${ED}"/usr/"$(get_libdir)"/libdb_java*.so - java-pkg_dojar "${ED}"/usr/"$(get_libdir)"/*.jar - rm -f "${ED}"/usr/"$(get_libdir)"/*.jar - fi -} - -pkg_postinst() { - db_fix_so -} - -pkg_postrm() { - db_fix_so -} diff --git a/sys-libs/db/db-4.3.29_p1-r3.ebuild b/sys-libs/db/db-4.3.29_p1-r3.ebuild new file mode 100644 index 000000000000..166282439034 --- /dev/null +++ b/sys-libs/db/db-4.3.29_p1-r3.ebuild @@ -0,0 +1,184 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit autotools db flag-o-matic java-pkg-opt-2 multilib + +#Number of official patches +#PATCHNO=`echo ${PV}|sed -e "s,\(.*_p\)\([0-9]*\),\2,"` +PATCHNO="${PV/*.*.*_p}" +if [[ ${PATCHNO} == "${PV}" ]] ; then + MY_PV="${PV}" + MY_P="${P}" + PATCHNO=0 +else + MY_PV="${PV/_p${PATCHNO}}" + MY_P="${PN}-${MY_PV}" +fi + +S="${WORKDIR}/${MY_P}/build_unix" +DESCRIPTION="Oracle Berkeley DB" +HOMEPAGE="http://www.oracle.com/technetwork/database/database-technologies/berkeleydb/overview/index.html" +SRC_URI="http://download.oracle.com/berkeley-db/${MY_P}.tar.gz" +for (( i=1 ; i<=${PATCHNO} ; i++ )) ; do + export SRC_URI="${SRC_URI} http://www.oracle.com/technology/products/berkeley-db/db/update/${MY_PV}/patch.${MY_PV}.${i}" +done + +LICENSE="Sleepycat" +SLOT="$(ver_cut 1-2)" +KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 m68k ppc ppc64 s390 sparc x86" +IUSE="tcl java doc cxx" +RESTRICT="!test? ( test )" + +DEPEND="tcl? ( >=dev-lang/tcl-8.4 ) + java? ( >=virtual/jdk-1.4 ) + >=sys-devel/binutils-2.16.1" +RDEPEND="tcl? ( dev-lang/tcl ) + java? ( >=virtual/jre-1.4 )" + +PATCHES=( + "${FILESDIR}"/"${PN}"-"${SLOT}"-libtool.patch + + # use the includes from the prefix + "${FILESDIR}"/"${PN}"-4.2-jni-check-prefix-first.patch + "${FILESDIR}"/"${PN}"-4.2-listen-to-java-options.patch + + "${FILESDIR}"/"${PN}"-4.3.27-fix-dep-link.patch +) + +# Required to avoid unpack attempt of patches +src_unpack() { + unpack "${MY_P}".tar.gz +} + +src_prepare() { + pushd "${WORKDIR}"/"${MY_P}" &>/dev/null || die + for (( i=1 ; i<=${PATCHNO} ; i++ )) + do + eapply -p0 "${DISTDIR}"/patch."${MY_PV}"."${i}" + done + + default + + sed -e "/^DB_RELEASE_DATE=/s/%B %e, %Y/%Y-%m-%d/" \ + -i dist/RELEASE || die + + # Include the SLOT for Java JAR files + # This supersedes the unused jarlocation patches. + sed -r \ + -e '/jarfile=.*\.jar$/s,(.jar$),-$(LIBVERSION)\1,g' \ + -i dist/Makefile.in || die + + # START of 4.5+earlier specific + # Upstream sucks, they normally concat these + local i j + for j in dist/aclocal{,_java} ; do + pushd ${j} &>/dev/null || die + for i in * ; do + ln -s ${i} ${i%.ac}.m4 || die + done + popd &>/dev/null || die + done + # END of 4.5+earlier specific + + pushd dist &>/dev/null || die + rm aclocal/libtool.{m4,ac} || die + sed \ + -e '/AC_PROG_LIBTOOL$/aLT_OUTPUT' \ + -i configure.ac || die + sed \ + -e '/^AC_PATH_TOOL/s/ sh, missing_sh/ bash, missing_sh/' \ + -i aclocal/programs.m4 || die + + AT_M4DIR="aclocal aclocal_java" eautoreconf + + # Upstream sucks - they do autoconf and THEN replace the version variables. + . ./RELEASE + sed \ + -e "s/__EDIT_DB_VERSION_MAJOR__/$DB_VERSION_MAJOR/g" \ + -e "s/__EDIT_DB_VERSION_MINOR__/$DB_VERSION_MINOR/g" \ + -e "s/__EDIT_DB_VERSION_PATCH__/$DB_VERSION_PATCH/g" \ + -e "s/__EDIT_DB_VERSION_STRING__/$DB_VERSION_STRING/g" \ + -e "s/__EDIT_DB_VERSION_UNIQUE_NAME__/$DB_VERSION_UNIQUE_NAME/g" \ + -e "s/__EDIT_DB_VERSION__/$DB_VERSION/g" \ + -i configure || die + popd &>/dev/null || die + popd &>/dev/null || die +} + +src_configure() { + local myconf=( + --enable-compat185 + --enable-o_direct + --without-uniquename + --disable-rpc + --host="${CHOST}" + + $(usex amd64 '--with-mutex=x86/gcc-assembly' '') + $(use_enable cxx) + $(use_enable tcl) + $(usex tcl "--with-tcl=${EPREFIX}/usr/$(get_libdir)" '') #" + $(use_enable java) + ) + + if use java; then + myconf+=( + --with-java-prefix="${JAVA_HOME}" + --with-javac-flags="$(java-pkg_javac-args)" + ) + fi + + # the entire testsuite needs the TCL functionality + if use tcl && use test ; then + myconf+=( --enable-test ) + else + myconf+=( --disable-test ) + fi + + # Add linker versions to the symbols. Easier to do, and safer than header + # file mumbo jumbo. + if use userland_GNU; then + append-ldflags -Wl,--default-symver + fi + + ECONF_SOURCE="${S}"/../dist \ + econf "${myconf[@]}" +} + +src_install() { + emake \ + DESTDIR="${D}" \ + libdir="${EPREFIX}/usr/$(get_libdir)" \ + strip="${EPREFIX}/bin/strip" \ + install + + db_src_install_usrbinslot + + db_src_install_headerslot + + db_src_install_doc + + db_src_install_usrlibcleanup + + dodir /usr/sbin + # This file is not always built, and no longer exists as of db-4.8 + if [[ -f "${ED}"/usr/bin/berkeley_db_svc ]] ; then + mv "${ED}"/usr/bin/berkeley_db_svc \ + "${ED}"/usr/sbin/berkeley_db"${SLOT/./}"_svc || die + fi + + if use java; then + java-pkg_regso "${ED}"/usr/"$(get_libdir)"/libdb_java*.so + java-pkg_dojar "${ED}"/usr/"$(get_libdir)"/*.jar + rm -f "${ED}"/usr/"$(get_libdir)"/*.jar + fi +} + +pkg_postinst() { + db_fix_so +} + +pkg_postrm() { + db_fix_so +} diff --git a/sys-libs/db/db-4.4.20_p4-r2.ebuild b/sys-libs/db/db-4.4.20_p4-r2.ebuild deleted file mode 100644 index ba34f3c14a14..000000000000 --- a/sys-libs/db/db-4.4.20_p4-r2.ebuild +++ /dev/null @@ -1,178 +0,0 @@ -# Copyright 1999-2019 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -inherit autotools db flag-o-matic java-pkg-opt-2 multilib - -#Number of official patches -#PATCHNO=`echo ${PV}|sed -e "s,\(.*_p\)\([0-9]*\),\2,"` -PATCHNO="${PV/*.*.*_p}" -if [[ ${PATCHNO} == "${PV}" ]] ; then - MY_PV="${PV}" - MY_P="${P}" - PATCHNO=0 -else - MY_PV="${PV/_p${PATCHNO}}" - MY_P="${PN}-${MY_PV}" -fi - -S="${WORKDIR}/${MY_P}/build_unix" -DESCRIPTION="Oracle Berkeley DB" -HOMEPAGE="http://www.oracle.com/technetwork/database/database-technologies/berkeleydb/overview/index.html" -SRC_URI="http://download.oracle.com/berkeley-db/${MY_P}.tar.gz - mirror://gentoo/${MY_P}-20060110-rpc_server-java.tar.gz" -for (( i=1 ; i<=${PATCHNO} ; i++ )) ; do - export SRC_URI="${SRC_URI} http://www.oracle.com/technology/products/berkeley-db/db/update/${MY_PV}/patch.${MY_PV}.${i}" -done - -LICENSE="Sleepycat BSD" -SLOT="$(ver_cut 1-2)" -KEYWORDS="~amd64 ~arm ~arm64 ~ia64 ~m68k ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86" -IUSE="tcl java doc cxx rpc" -RESTRICT="!test? ( test )" - -DEPEND="tcl? ( >=dev-lang/tcl-8.4 ) - java? ( >=virtual/jdk-1.4 ) - >=sys-devel/binutils-2.16.1" -RDEPEND="tcl? ( dev-lang/tcl ) - java? ( >=virtual/jre-1.4 )" - -PATCHES=( - "${FILESDIR}"/"${PN}"-"${SLOT}"-libtool.patch - - # use the includes from the prefix - "${FILESDIR}"/"${PN}"-4.2-jni-check-prefix-first.patch - "${FILESDIR}"/"${PN}"-4.2-listen-to-java-options.patch -) - -# Required to avoid unpack attempt of patches -src_unpack() { - unpack "${MY_P}".tar.gz - unpack "${MY_P}-20060110-rpc_server-java".tar.gz -} - -src_prepare() { - pushd "${WORKDIR}"/"${MY_P}" &>/dev/null || die - for (( i=1 ; i<=${PATCHNO} ; i++ )) - do - eapply -p0 "${DISTDIR}"/patch."${MY_PV}"."${i}" - done - - default - - sed -e "/^DB_RELEASE_DATE=/s/%B %e, %Y/%Y-%m-%d/" \ - -i dist/RELEASE || die - - # Include the SLOT for Java JAR files - # This supersedes the unused jarlocation patches. - sed -r \ - -e '/jarfile=.*\.jar$/s,(.jar$),-$(LIBVERSION)\1,g' \ - -i dist/Makefile.in || die - - # START of 4.5+earlier specific - # Upstream sucks, they normally concat these - local i j - for j in dist/aclocal{,_java} ; do - pushd ${j} &>/dev/null || die - for i in * ; do - ln -s ${i} ${i%.ac}.m4 || die - done - popd &>/dev/null || die - done - # END of 4.5+earlier specific - pushd dist &>/dev/null || die - rm aclocal/libtool.{m4,ac} || die - - AT_M4DIR="aclocal aclocal_java" eautoreconf - - # Upstream sucks - they do autoconf and THEN replace the version variables. - . ./RELEASE - sed \ - -e "s/__EDIT_DB_VERSION_MAJOR__/$DB_VERSION_MAJOR/g" \ - -e "s/__EDIT_DB_VERSION_MINOR__/$DB_VERSION_MINOR/g" \ - -e "s/__EDIT_DB_VERSION_PATCH__/$DB_VERSION_PATCH/g" \ - -e "s/__EDIT_DB_VERSION_STRING__/$DB_VERSION_STRING/g" \ - -e "s/__EDIT_DB_VERSION_UNIQUE_NAME__/$DB_VERSION_UNIQUE_NAME/g" \ - -e "s/__EDIT_DB_VERSION__/$DB_VERSION/g" \ - -i configure || die - - popd &>/dev/null || die - popd &>/dev/null || die -} - -src_configure() { - local myconf=( - --enable-compat185 - --enable-o_direct - --without-uniquename - $(use_enable rpc) - --host="${CHOST}" - - $(usex amd64 '--with-mutex=x86/gcc-assembly' '') - $(use_enable cxx) - $(use_enable tcl) - $(usex tcl "--with-tcl=${EPREFIX}/usr/$(get_libdir)" '') #" - $(use_enable java) - ) - - if use java; then - myconf+=( - --with-java-prefix="${JAVA_HOME}" - --with-javac-flags="$(java-pkg_javac-args)" - ) - fi - - # the entire testsuite needs the TCL functionality - if use tcl && use test ; then - myconf+=( --enable-test ) - else - myconf+=( --disable-test ) - fi - - # Add linker versions to the symbols. Easier to do, and safer than header file - # mumbo jumbo. - if use userland_GNU; then - append-ldflags -Wl,--default-symver - fi - - ECONF_SOURCE="${S}"/../dist \ - econf "${myconf[@]}" -} - -src_install() { - emake \ - DESTDIR="${D}" \ - libdir="${EPREFIX}/usr/$(get_libdir)" \ - strip="${EPREFIX}/bin/strip" \ - install - - db_src_install_usrbinslot - - db_src_install_headerslot - - db_src_install_doc - - db_src_install_usrlibcleanup - - dodir /usr/sbin - # This file is not always built, and no longer exists as of db-4.8 - if [[ -f "${ED}"/usr/bin/berkeley_db_svc ]] ; then - mv "${ED}"/usr/bin/berkeley_db_svc \ - "${ED}"/usr/sbin/berkeley_db"${SLOT/./}"_svc || die - fi - - if use java; then - java-pkg_regso "${ED}"/usr/"$(get_libdir)"/libdb_java*.so - java-pkg_dojar "${ED}"/usr/"$(get_libdir)"/*.jar - rm -f "${ED}"/usr/"$(get_libdir)"/*.jar - fi -} - -pkg_postinst() { - db_fix_so -} - -pkg_postrm() { - db_fix_so -} diff --git a/sys-libs/db/db-4.4.20_p4-r3.ebuild b/sys-libs/db/db-4.4.20_p4-r3.ebuild new file mode 100644 index 000000000000..dfdea3ae9c22 --- /dev/null +++ b/sys-libs/db/db-4.4.20_p4-r3.ebuild @@ -0,0 +1,178 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit autotools db flag-o-matic java-pkg-opt-2 multilib + +#Number of official patches +#PATCHNO=`echo ${PV}|sed -e "s,\(.*_p\)\([0-9]*\),\2,"` +PATCHNO="${PV/*.*.*_p}" +if [[ ${PATCHNO} == "${PV}" ]] ; then + MY_PV="${PV}" + MY_P="${P}" + PATCHNO=0 +else + MY_PV="${PV/_p${PATCHNO}}" + MY_P="${PN}-${MY_PV}" +fi + +S="${WORKDIR}/${MY_P}/build_unix" +DESCRIPTION="Oracle Berkeley DB" +HOMEPAGE="http://www.oracle.com/technetwork/database/database-technologies/berkeleydb/overview/index.html" +SRC_URI="http://download.oracle.com/berkeley-db/${MY_P}.tar.gz + mirror://gentoo/${MY_P}-20060110-rpc_server-java.tar.gz" +for (( i=1 ; i<=${PATCHNO} ; i++ )) ; do + export SRC_URI="${SRC_URI} http://www.oracle.com/technology/products/berkeley-db/db/update/${MY_PV}/patch.${MY_PV}.${i}" +done + +LICENSE="Sleepycat BSD" +SLOT="$(ver_cut 1-2)" +KEYWORDS="~amd64 ~arm ~arm64 ~ia64 ~m68k ~ppc ~ppc64 ~s390 ~sparc ~x86" +IUSE="tcl java doc cxx" +RESTRICT="!test? ( test )" + +DEPEND="tcl? ( >=dev-lang/tcl-8.4 ) + java? ( >=virtual/jdk-1.4 ) + >=sys-devel/binutils-2.16.1" +RDEPEND="tcl? ( dev-lang/tcl ) + java? ( >=virtual/jre-1.4 )" + +PATCHES=( + "${FILESDIR}"/"${PN}"-"${SLOT}"-libtool.patch + + # use the includes from the prefix + "${FILESDIR}"/"${PN}"-4.2-jni-check-prefix-first.patch + "${FILESDIR}"/"${PN}"-4.2-listen-to-java-options.patch +) + +# Required to avoid unpack attempt of patches +src_unpack() { + unpack "${MY_P}".tar.gz + unpack "${MY_P}-20060110-rpc_server-java".tar.gz +} + +src_prepare() { + pushd "${WORKDIR}"/"${MY_P}" &>/dev/null || die + for (( i=1 ; i<=${PATCHNO} ; i++ )) + do + eapply -p0 "${DISTDIR}"/patch."${MY_PV}"."${i}" + done + + default + + sed -e "/^DB_RELEASE_DATE=/s/%B %e, %Y/%Y-%m-%d/" \ + -i dist/RELEASE || die + + # Include the SLOT for Java JAR files + # This supersedes the unused jarlocation patches. + sed -r \ + -e '/jarfile=.*\.jar$/s,(.jar$),-$(LIBVERSION)\1,g' \ + -i dist/Makefile.in || die + + # START of 4.5+earlier specific + # Upstream sucks, they normally concat these + local i j + for j in dist/aclocal{,_java} ; do + pushd ${j} &>/dev/null || die + for i in * ; do + ln -s ${i} ${i%.ac}.m4 || die + done + popd &>/dev/null || die + done + # END of 4.5+earlier specific + pushd dist &>/dev/null || die + rm aclocal/libtool.{m4,ac} || die + + AT_M4DIR="aclocal aclocal_java" eautoreconf + + # Upstream sucks - they do autoconf and THEN replace the version variables. + . ./RELEASE + sed \ + -e "s/__EDIT_DB_VERSION_MAJOR__/$DB_VERSION_MAJOR/g" \ + -e "s/__EDIT_DB_VERSION_MINOR__/$DB_VERSION_MINOR/g" \ + -e "s/__EDIT_DB_VERSION_PATCH__/$DB_VERSION_PATCH/g" \ + -e "s/__EDIT_DB_VERSION_STRING__/$DB_VERSION_STRING/g" \ + -e "s/__EDIT_DB_VERSION_UNIQUE_NAME__/$DB_VERSION_UNIQUE_NAME/g" \ + -e "s/__EDIT_DB_VERSION__/$DB_VERSION/g" \ + -i configure || die + + popd &>/dev/null || die + popd &>/dev/null || die +} + +src_configure() { + local myconf=( + --enable-compat185 + --enable-o_direct + --without-uniquename + --disable-rpc + --host="${CHOST}" + + $(usex amd64 '--with-mutex=x86/gcc-assembly' '') + $(use_enable cxx) + $(use_enable tcl) + $(usex tcl "--with-tcl=${EPREFIX}/usr/$(get_libdir)" '') #" + $(use_enable java) + ) + + if use java; then + myconf+=( + --with-java-prefix="${JAVA_HOME}" + --with-javac-flags="$(java-pkg_javac-args)" + ) + fi + + # the entire testsuite needs the TCL functionality + if use tcl && use test ; then + myconf+=( --enable-test ) + else + myconf+=( --disable-test ) + fi + + # Add linker versions to the symbols. Easier to do, and safer than header file + # mumbo jumbo. + if use userland_GNU; then + append-ldflags -Wl,--default-symver + fi + + ECONF_SOURCE="${S}"/../dist \ + econf "${myconf[@]}" +} + +src_install() { + emake \ + DESTDIR="${D}" \ + libdir="${EPREFIX}/usr/$(get_libdir)" \ + strip="${EPREFIX}/bin/strip" \ + install + + db_src_install_usrbinslot + + db_src_install_headerslot + + db_src_install_doc + + db_src_install_usrlibcleanup + + dodir /usr/sbin + # This file is not always built, and no longer exists as of db-4.8 + if [[ -f "${ED}"/usr/bin/berkeley_db_svc ]] ; then + mv "${ED}"/usr/bin/berkeley_db_svc \ + "${ED}"/usr/sbin/berkeley_db"${SLOT/./}"_svc || die + fi + + if use java; then + java-pkg_regso "${ED}"/usr/"$(get_libdir)"/libdb_java*.so + java-pkg_dojar "${ED}"/usr/"$(get_libdir)"/*.jar + rm -f "${ED}"/usr/"$(get_libdir)"/*.jar + fi +} + +pkg_postinst() { + db_fix_so +} + +pkg_postrm() { + db_fix_so +} diff --git a/sys-libs/db/db-4.5.20_p2-r2.ebuild b/sys-libs/db/db-4.5.20_p2-r2.ebuild deleted file mode 100644 index e5d312d7c5dc..000000000000 --- a/sys-libs/db/db-4.5.20_p2-r2.ebuild +++ /dev/null @@ -1,190 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -inherit autotools db flag-o-matic java-pkg-opt-2 multilib - -#Number of official patches -#PATCHNO=`echo ${PV}|sed -e "s,\(.*_p\)\([0-9]*\),\2,"` -PATCHNO="${PV/*.*.*_p}" -if [[ ${PATCHNO} == "${PV}" ]] ; then - MY_PV="${PV}" - MY_P="${P}" - PATCHNO=0 -else - MY_PV="${PV/_p${PATCHNO}}" - MY_P="${PN}-${MY_PV}" -fi - -S="${WORKDIR}/${MY_P}/build_unix" -DESCRIPTION="Oracle Berkeley DB" -HOMEPAGE="http://www.oracle.com/technetwork/database/database-technologies/berkeleydb/overview/index.html" -SRC_URI="http://download.oracle.com/berkeley-db/${MY_P}.tar.gz" -for (( i=1 ; i<=${PATCHNO} ; i++ )) ; do - export SRC_URI="${SRC_URI} http://www.oracle.com/technology/products/berkeley-db/db/update/${MY_PV}/patch.${MY_PV}.${i}" -done - -LICENSE="Sleepycat" -SLOT="$(ver_cut 1-2)" -KEYWORDS="~alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86" -IUSE="tcl java doc cxx rpc" -RESTRICT="!test? ( test )" - -DEPEND="tcl? ( >=dev-lang/tcl-8.4 ) - java? ( >=virtual/jdk-1.4 ) - >=sys-devel/binutils-2.16.1" -RDEPEND="tcl? ( dev-lang/tcl ) - java? ( >=virtual/jre-1.4 )" - -PATCHES=( - "${FILESDIR}"/"${PN}"-4.4-libtool.patch - - # use the includes from the prefix - "${FILESDIR}"/"${PN}"-4.2-jni-check-prefix-first.patch - "${FILESDIR}"/"${PN}"-4.2-listen-to-java-options.patch -) - -# Required to avoid unpack attempt of patches -src_unpack() { - unpack "${MY_P}".tar.gz -} - -src_prepare() { - pushd "${WORKDIR}"/"${MY_P}" &>/dev/null || die - for (( i=1 ; i<=${PATCHNO} ; i++ )) - do - eapply -p0 "${DISTDIR}"/patch."${MY_PV}"."${i}" - done - - default - - sed -e "/^DB_RELEASE_DATE=/s/%B %e, %Y/%Y-%m-%d/" \ - -i dist/RELEASE || die - - # Include the SLOT for Java JAR files - # This supersedes the unused jarlocation patches. - sed -r \ - -e '/jarfile=.*\.jar$/s,(.jar$),-$(LIBVERSION)\1,g' \ - -i dist/Makefile.in || die - - # START of 4.5+earlier specific - # Upstream sucks, they normally concat these - local i j - for j in dist/aclocal{,_java} ; do - pushd ${j} &>/dev/null || die - for i in * ; do - ln -s ${i} ${i%.ac}.m4 || die - done - popd &>/dev/null || die - done - # END of 4.5+earlier specific - pushd dist &>/dev/null || die - rm aclocal/libtool.{m4,ac} || die - sed \ - -e '/AC_PROG_LIBTOOL$/aLT_OUTPUT' \ - -i configure.ac || die - sed \ - -e '/^AC_PATH_TOOL/s/ sh, none/ bash, none/' \ - -i aclocal/programs.m4 || die - - AT_M4DIR="aclocal aclocal_java" eautoreconf - - # Upstream sucks - they do autoconf and THEN replace the version variables. - . ./RELEASE - sed \ - -e "s/__EDIT_DB_VERSION_MAJOR__/$DB_VERSION_MAJOR/g" \ - -e "s/__EDIT_DB_VERSION_MINOR__/$DB_VERSION_MINOR/g" \ - -e "s/__EDIT_DB_VERSION_PATCH__/$DB_VERSION_PATCH/g" \ - -e "s/__EDIT_DB_VERSION_STRING__/$DB_VERSION_STRING/g" \ - -e "s/__EDIT_DB_VERSION_UNIQUE_NAME__/$DB_VERSION_UNIQUE_NAME/g" \ - -e "s/__EDIT_DB_VERSION__/$DB_VERSION/g" \ - -i configure || die - - popd &>/dev/null || die - popd &>/dev/null || die -} - -src_configure() { - # compilation with -O0 fails on amd64, see bug #171231 - if use amd64 ; then - replace-flags -O0 -O2 - is-flagq -O[s123] || append-flags -O2 - fi - - local myconf=( - --enable-compat185 - --enable-o_direct - --without-uniquename - $(use_enable rpc) - --host="${CHOST}" - - $(usex amd64 '--with-mutex=x86/gcc-assembly' '') - $(use_enable cxx) - $(use_enable tcl) - $(usex tcl "--with-tcl=${EPREFIX}/usr/$(get_libdir)" '') #" - $(use_enable java) - ) - - if use java; then - myconf+=( - --with-java-prefix="${JAVA_HOME}" - --with-javac-flags="$(java-pkg_javac-args)" - ) - fi - - # the entire testsuite needs the TCL functionality - if use tcl && use test ; then - myconf+=( --enable-test ) - else - myconf+=( --disable-test ) - fi - - # Add linker versions to the symbols. Easier to do, and safer than header file - # mumbo jumbo. - if use userland_GNU; then - append-ldflags -Wl,--default-symver - fi - - ECONF_SOURCE="${S}"/../dist \ - econf "${myconf[@]}" - - sed -e "s,\(^STRIP *=\).*,\1\"true\"," -i Makefile || die -} - -src_install() { - emake \ - DESTDIR="${D}" \ - libdir="${EPREFIX}/usr/$(get_libdir)" \ - STRIP="true" \ - install - - db_src_install_usrbinslot - - db_src_install_headerslot - - db_src_install_doc - - db_src_install_usrlibcleanup - - dodir /usr/sbin - # This file is not always built, and no longer exists as of db-4.8 - if [[ -f "${ED}"/usr/bin/berkeley_db_svc ]] ; then - mv "${ED}"/usr/bin/berkeley_db_svc \ - "${ED}"/usr/sbin/berkeley_db"${SLOT/./}"_svc || die - fi - - if use java; then - java-pkg_regso "${ED}"/usr/"$(get_libdir)"/libdb_java*.so - java-pkg_dojar "${ED}"/usr/"$(get_libdir)"/*.jar - rm -f "${ED}"/usr/"$(get_libdir)"/*.jar - fi -} - -pkg_postinst() { - db_fix_so -} - -pkg_postrm() { - db_fix_so -} diff --git a/sys-libs/db/db-4.5.20_p2-r3.ebuild b/sys-libs/db/db-4.5.20_p2-r3.ebuild new file mode 100644 index 000000000000..190ce7f7699e --- /dev/null +++ b/sys-libs/db/db-4.5.20_p2-r3.ebuild @@ -0,0 +1,190 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit autotools db flag-o-matic java-pkg-opt-2 multilib + +#Number of official patches +#PATCHNO=`echo ${PV}|sed -e "s,\(.*_p\)\([0-9]*\),\2,"` +PATCHNO="${PV/*.*.*_p}" +if [[ ${PATCHNO} == "${PV}" ]] ; then + MY_PV="${PV}" + MY_P="${P}" + PATCHNO=0 +else + MY_PV="${PV/_p${PATCHNO}}" + MY_P="${PN}-${MY_PV}" +fi + +S="${WORKDIR}/${MY_P}/build_unix" +DESCRIPTION="Oracle Berkeley DB" +HOMEPAGE="http://www.oracle.com/technetwork/database/database-technologies/berkeleydb/overview/index.html" +SRC_URI="http://download.oracle.com/berkeley-db/${MY_P}.tar.gz" +for (( i=1 ; i<=${PATCHNO} ; i++ )) ; do + export SRC_URI="${SRC_URI} http://www.oracle.com/technology/products/berkeley-db/db/update/${MY_PV}/patch.${MY_PV}.${i}" +done + +LICENSE="Sleepycat" +SLOT="$(ver_cut 1-2)" +KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 m68k ~mips ppc ppc64 s390 sparc x86" +IUSE="tcl java doc cxx" +RESTRICT="!test? ( test )" + +DEPEND="tcl? ( >=dev-lang/tcl-8.4 ) + java? ( >=virtual/jdk-1.4 ) + >=sys-devel/binutils-2.16.1" +RDEPEND="tcl? ( dev-lang/tcl ) + java? ( >=virtual/jre-1.4 )" + +PATCHES=( + "${FILESDIR}"/"${PN}"-4.4-libtool.patch + + # use the includes from the prefix + "${FILESDIR}"/"${PN}"-4.2-jni-check-prefix-first.patch + "${FILESDIR}"/"${PN}"-4.2-listen-to-java-options.patch +) + +# Required to avoid unpack attempt of patches +src_unpack() { + unpack "${MY_P}".tar.gz +} + +src_prepare() { + pushd "${WORKDIR}"/"${MY_P}" &>/dev/null || die + for (( i=1 ; i<=${PATCHNO} ; i++ )) + do + eapply -p0 "${DISTDIR}"/patch."${MY_PV}"."${i}" + done + + default + + sed -e "/^DB_RELEASE_DATE=/s/%B %e, %Y/%Y-%m-%d/" \ + -i dist/RELEASE || die + + # Include the SLOT for Java JAR files + # This supersedes the unused jarlocation patches. + sed -r \ + -e '/jarfile=.*\.jar$/s,(.jar$),-$(LIBVERSION)\1,g' \ + -i dist/Makefile.in || die + + # START of 4.5+earlier specific + # Upstream sucks, they normally concat these + local i j + for j in dist/aclocal{,_java} ; do + pushd ${j} &>/dev/null || die + for i in * ; do + ln -s ${i} ${i%.ac}.m4 || die + done + popd &>/dev/null || die + done + # END of 4.5+earlier specific + pushd dist &>/dev/null || die + rm aclocal/libtool.{m4,ac} || die + sed \ + -e '/AC_PROG_LIBTOOL$/aLT_OUTPUT' \ + -i configure.ac || die + sed \ + -e '/^AC_PATH_TOOL/s/ sh, none/ bash, none/' \ + -i aclocal/programs.m4 || die + + AT_M4DIR="aclocal aclocal_java" eautoreconf + + # Upstream sucks - they do autoconf and THEN replace the version variables. + . ./RELEASE + sed \ + -e "s/__EDIT_DB_VERSION_MAJOR__/$DB_VERSION_MAJOR/g" \ + -e "s/__EDIT_DB_VERSION_MINOR__/$DB_VERSION_MINOR/g" \ + -e "s/__EDIT_DB_VERSION_PATCH__/$DB_VERSION_PATCH/g" \ + -e "s/__EDIT_DB_VERSION_STRING__/$DB_VERSION_STRING/g" \ + -e "s/__EDIT_DB_VERSION_UNIQUE_NAME__/$DB_VERSION_UNIQUE_NAME/g" \ + -e "s/__EDIT_DB_VERSION__/$DB_VERSION/g" \ + -i configure || die + + popd &>/dev/null || die + popd &>/dev/null || die +} + +src_configure() { + # compilation with -O0 fails on amd64, see bug #171231 + if use amd64 ; then + replace-flags -O0 -O2 + is-flagq -O[s123] || append-flags -O2 + fi + + local myconf=( + --enable-compat185 + --enable-o_direct + --without-uniquename + --disable-rpc + --host="${CHOST}" + + $(usex amd64 '--with-mutex=x86/gcc-assembly' '') + $(use_enable cxx) + $(use_enable tcl) + $(usex tcl "--with-tcl=${EPREFIX}/usr/$(get_libdir)" '') #" + $(use_enable java) + ) + + if use java; then + myconf+=( + --with-java-prefix="${JAVA_HOME}" + --with-javac-flags="$(java-pkg_javac-args)" + ) + fi + + # the entire testsuite needs the TCL functionality + if use tcl && use test ; then + myconf+=( --enable-test ) + else + myconf+=( --disable-test ) + fi + + # Add linker versions to the symbols. Easier to do, and safer than header file + # mumbo jumbo. + if use userland_GNU; then + append-ldflags -Wl,--default-symver + fi + + ECONF_SOURCE="${S}"/../dist \ + econf "${myconf[@]}" + + sed -e "s,\(^STRIP *=\).*,\1\"true\"," -i Makefile || die +} + +src_install() { + emake \ + DESTDIR="${D}" \ + libdir="${EPREFIX}/usr/$(get_libdir)" \ + STRIP="true" \ + install + + db_src_install_usrbinslot + + db_src_install_headerslot + + db_src_install_doc + + db_src_install_usrlibcleanup + + dodir /usr/sbin + # This file is not always built, and no longer exists as of db-4.8 + if [[ -f "${ED}"/usr/bin/berkeley_db_svc ]] ; then + mv "${ED}"/usr/bin/berkeley_db_svc \ + "${ED}"/usr/sbin/berkeley_db"${SLOT/./}"_svc || die + fi + + if use java; then + java-pkg_regso "${ED}"/usr/"$(get_libdir)"/libdb_java*.so + java-pkg_dojar "${ED}"/usr/"$(get_libdir)"/*.jar + rm -f "${ED}"/usr/"$(get_libdir)"/*.jar + fi +} + +pkg_postinst() { + db_fix_so +} + +pkg_postrm() { + db_fix_so +} diff --git a/sys-libs/db/db-4.6.21_p4-r1.ebuild b/sys-libs/db/db-4.6.21_p4-r1.ebuild deleted file mode 100644 index d62e2ffe83f2..000000000000 --- a/sys-libs/db/db-4.6.21_p4-r1.ebuild +++ /dev/null @@ -1,179 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -inherit autotools db flag-o-matic java-pkg-opt-2 multilib - -#Number of official patches -#PATCHNO=`echo ${PV}|sed -e "s,\(.*_p\)\([0-9]*\),\2,"` -PATCHNO="${PV/*.*.*_p}" -if [[ ${PATCHNO} == "${PV}" ]] ; then - MY_PV="${PV}" - MY_P="${P}" - PATCHNO=0 -else - MY_PV="${PV/_p${PATCHNO}}" - MY_P="${PN}-${MY_PV}" -fi - -S="${WORKDIR}/${MY_P}/build_unix" -DESCRIPTION="Oracle Berkeley DB" -HOMEPAGE="http://www.oracle.com/technetwork/database/database-technologies/berkeleydb/overview/index.html" -SRC_URI="http://download.oracle.com/berkeley-db/${MY_P}.tar.gz" -for (( i=1 ; i<=${PATCHNO} ; i++ )) ; do - export SRC_URI="${SRC_URI} http://www.oracle.com/technology/products/berkeley-db/db/update/${MY_PV}/patch.${MY_PV}.${i}" -done - -LICENSE="Sleepycat" -SLOT="$(ver_cut 1-2)" -KEYWORDS="~alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86" -IUSE="tcl java doc cxx rpc" -RESTRICT="!test? ( test )" - -DEPEND="tcl? ( >=dev-lang/tcl-8.4 ) - java? ( >=virtual/jdk-1.4 ) - >=sys-devel/binutils-2.16.1" -RDEPEND="tcl? ( dev-lang/tcl ) - java? ( >=virtual/jre-1.4 )" - -PATCHES=( - "${FILESDIR}"/"${PN}"-4.4-libtool.patch - - # use the includes from the prefix - "${FILESDIR}"/"${PN}"-"${SLOT}"-jni-check-prefix-first.patch - "${FILESDIR}"/"${PN}"-4.2-listen-to-java-options.patch -) - -# Required to avoid unpack attempt of patches -src_unpack() { - unpack "${MY_P}".tar.gz -} - -src_prepare() { - pushd "${WORKDIR}"/"${MY_P}" &>/dev/null || die - for (( i=1 ; i<=${PATCHNO} ; i++ )) - do - eapply -p0 "${DISTDIR}"/patch."${MY_PV}"."${i}" - done - - default - - sed -e "/^DB_RELEASE_DATE=/s/%B %e, %Y/%Y-%m-%d/" \ - -i dist/RELEASE || die - - # Include the SLOT for Java JAR files - # This supersedes the unused jarlocation patches. - sed -r \ - -e '/jarfile=.*\.jar$/s,(.jar$),-$(LIBVERSION)\1,g' \ - -i dist/Makefile.in || die - - pushd dist &>/dev/null || die - rm aclocal/libtool.m4 || die - sed \ - -e '/AC_PROG_LIBTOOL$/aLT_OUTPUT' \ - -i configure.ac || die - sed \ - -e '/^AC_PATH_TOOL/s/ sh, none/ bash, none/' \ - -i aclocal/programs.m4 || die - - AT_M4DIR="aclocal aclocal_java" eautoreconf - - # Upstream sucks - they do autoconf and THEN replace the version variables. - . ./RELEASE - sed \ - -e "s/__EDIT_DB_VERSION_MAJOR__/$DB_VERSION_MAJOR/g" \ - -e "s/__EDIT_DB_VERSION_MINOR__/$DB_VERSION_MINOR/g" \ - -e "s/__EDIT_DB_VERSION_PATCH__/$DB_VERSION_PATCH/g" \ - -e "s/__EDIT_DB_VERSION_STRING__/$DB_VERSION_STRING/g" \ - -e "s/__EDIT_DB_VERSION_UNIQUE_NAME__/$DB_VERSION_UNIQUE_NAME/g" \ - -e "s/__EDIT_DB_VERSION__/$DB_VERSION/g" \ - -i configure || die - - popd &>/dev/null || die - popd &>/dev/null || die -} - -src_configure() { - # compilation with -O0 fails on amd64, see bug #171231 - if use amd64 ; then - replace-flags -O0 -O2 - is-flagq -O[s123] || append-flags -O2 - fi - - local myconf=( - --enable-compat185 - --enable-o_direct - --without-uniquename - $(use_enable rpc) - --host="${CHOST}" - - $(usex amd64 '--with-mutex=x86/gcc-assembly' '') - $(use_enable cxx) - $(use_enable tcl) - $(usex tcl "--with-tcl=${EPREFIX}/usr/$(get_libdir)" '') #" - $(use_enable java) - ) - - if use java; then - myconf+=( - --with-java-prefix="${JAVA_HOME}" - --with-javac-flags="$(java-pkg_javac-args)" - ) - fi - - # the entire testsuite needs the TCL functionality - if use tcl && use test ; then - myconf+=( --enable-test ) - else - myconf+=( --disable-test ) - fi - - # Add linker versions to the symbols. Easier to do, and safer than header file - # mumbo jumbo. - if use userland_GNU; then - append-ldflags -Wl,--default-symver - fi - - ECONF_SOURCE="${S}"/../dist \ - econf "${myconf[@]}" - - sed -e "s,\(^STRIP *=\).*,\1\"true\"," -i Makefile || die -} - -src_install() { - emake \ - DESTDIR="${D}" \ - libdir="${EPREFIX}/usr/$(get_libdir)" \ - STRIP="true" \ - install - - db_src_install_usrbinslot - - db_src_install_headerslot - - db_src_install_doc - - db_src_install_usrlibcleanup - - dodir /usr/sbin - # This file is not always built, and no longer exists as of db-4.8 - if [[ -f "${ED}"/usr/bin/berkeley_db_svc ]] ; then - mv "${ED}"/usr/bin/berkeley_db_svc \ - "${ED}"/usr/sbin/berkeley_db"${SLOT/./}"_svc || die - fi - - if use java; then - java-pkg_regso "${ED}"/usr/"$(get_libdir)"/libdb_java*.so - java-pkg_dojar "${ED}"/usr/"$(get_libdir)"/*.jar - rm -f "${ED}"/usr/"$(get_libdir)"/*.jar - fi -} - -pkg_postinst() { - db_fix_so -} - -pkg_postrm() { - db_fix_so -} diff --git a/sys-libs/db/db-4.6.21_p4-r2.ebuild b/sys-libs/db/db-4.6.21_p4-r2.ebuild new file mode 100644 index 000000000000..75ffe55fa00c --- /dev/null +++ b/sys-libs/db/db-4.6.21_p4-r2.ebuild @@ -0,0 +1,179 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit autotools db flag-o-matic java-pkg-opt-2 multilib + +#Number of official patches +#PATCHNO=`echo ${PV}|sed -e "s,\(.*_p\)\([0-9]*\),\2,"` +PATCHNO="${PV/*.*.*_p}" +if [[ ${PATCHNO} == "${PV}" ]] ; then + MY_PV="${PV}" + MY_P="${P}" + PATCHNO=0 +else + MY_PV="${PV/_p${PATCHNO}}" + MY_P="${PN}-${MY_PV}" +fi + +S="${WORKDIR}/${MY_P}/build_unix" +DESCRIPTION="Oracle Berkeley DB" +HOMEPAGE="http://www.oracle.com/technetwork/database/database-technologies/berkeleydb/overview/index.html" +SRC_URI="http://download.oracle.com/berkeley-db/${MY_P}.tar.gz" +for (( i=1 ; i<=${PATCHNO} ; i++ )) ; do + export SRC_URI="${SRC_URI} http://www.oracle.com/technology/products/berkeley-db/db/update/${MY_PV}/patch.${MY_PV}.${i}" +done + +LICENSE="Sleepycat" +SLOT="$(ver_cut 1-2)" +KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 m68k ~mips ppc ppc64 s390 sparc x86" +IUSE="tcl java doc cxx" +RESTRICT="!test? ( test )" + +DEPEND="tcl? ( >=dev-lang/tcl-8.4 ) + java? ( >=virtual/jdk-1.4 ) + >=sys-devel/binutils-2.16.1" +RDEPEND="tcl? ( dev-lang/tcl ) + java? ( >=virtual/jre-1.4 )" + +PATCHES=( + "${FILESDIR}"/"${PN}"-4.4-libtool.patch + + # use the includes from the prefix + "${FILESDIR}"/"${PN}"-"${SLOT}"-jni-check-prefix-first.patch + "${FILESDIR}"/"${PN}"-4.2-listen-to-java-options.patch +) + +# Required to avoid unpack attempt of patches +src_unpack() { + unpack "${MY_P}".tar.gz +} + +src_prepare() { + pushd "${WORKDIR}"/"${MY_P}" &>/dev/null || die + for (( i=1 ; i<=${PATCHNO} ; i++ )) + do + eapply -p0 "${DISTDIR}"/patch."${MY_PV}"."${i}" + done + + default + + sed -e "/^DB_RELEASE_DATE=/s/%B %e, %Y/%Y-%m-%d/" \ + -i dist/RELEASE || die + + # Include the SLOT for Java JAR files + # This supersedes the unused jarlocation patches. + sed -r \ + -e '/jarfile=.*\.jar$/s,(.jar$),-$(LIBVERSION)\1,g' \ + -i dist/Makefile.in || die + + pushd dist &>/dev/null || die + rm aclocal/libtool.m4 || die + sed \ + -e '/AC_PROG_LIBTOOL$/aLT_OUTPUT' \ + -i configure.ac || die + sed \ + -e '/^AC_PATH_TOOL/s/ sh, none/ bash, none/' \ + -i aclocal/programs.m4 || die + + AT_M4DIR="aclocal aclocal_java" eautoreconf + + # Upstream sucks - they do autoconf and THEN replace the version variables. + . ./RELEASE + sed \ + -e "s/__EDIT_DB_VERSION_MAJOR__/$DB_VERSION_MAJOR/g" \ + -e "s/__EDIT_DB_VERSION_MINOR__/$DB_VERSION_MINOR/g" \ + -e "s/__EDIT_DB_VERSION_PATCH__/$DB_VERSION_PATCH/g" \ + -e "s/__EDIT_DB_VERSION_STRING__/$DB_VERSION_STRING/g" \ + -e "s/__EDIT_DB_VERSION_UNIQUE_NAME__/$DB_VERSION_UNIQUE_NAME/g" \ + -e "s/__EDIT_DB_VERSION__/$DB_VERSION/g" \ + -i configure || die + + popd &>/dev/null || die + popd &>/dev/null || die +} + +src_configure() { + # compilation with -O0 fails on amd64, see bug #171231 + if use amd64 ; then + replace-flags -O0 -O2 + is-flagq -O[s123] || append-flags -O2 + fi + + local myconf=( + --enable-compat185 + --enable-o_direct + --without-uniquename + --disable-rpc + --host="${CHOST}" + + $(usex amd64 '--with-mutex=x86/gcc-assembly' '') + $(use_enable cxx) + $(use_enable tcl) + $(usex tcl "--with-tcl=${EPREFIX}/usr/$(get_libdir)" '') #" + $(use_enable java) + ) + + if use java; then + myconf+=( + --with-java-prefix="${JAVA_HOME}" + --with-javac-flags="$(java-pkg_javac-args)" + ) + fi + + # the entire testsuite needs the TCL functionality + if use tcl && use test ; then + myconf+=( --enable-test ) + else + myconf+=( --disable-test ) + fi + + # Add linker versions to the symbols. Easier to do, and safer than header file + # mumbo jumbo. + if use userland_GNU; then + append-ldflags -Wl,--default-symver + fi + + ECONF_SOURCE="${S}"/../dist \ + econf "${myconf[@]}" + + sed -e "s,\(^STRIP *=\).*,\1\"true\"," -i Makefile || die +} + +src_install() { + emake \ + DESTDIR="${D}" \ + libdir="${EPREFIX}/usr/$(get_libdir)" \ + STRIP="true" \ + install + + db_src_install_usrbinslot + + db_src_install_headerslot + + db_src_install_doc + + db_src_install_usrlibcleanup + + dodir /usr/sbin + # This file is not always built, and no longer exists as of db-4.8 + if [[ -f "${ED}"/usr/bin/berkeley_db_svc ]] ; then + mv "${ED}"/usr/bin/berkeley_db_svc \ + "${ED}"/usr/sbin/berkeley_db"${SLOT/./}"_svc || die + fi + + if use java; then + java-pkg_regso "${ED}"/usr/"$(get_libdir)"/libdb_java*.so + java-pkg_dojar "${ED}"/usr/"$(get_libdir)"/*.jar + rm -f "${ED}"/usr/"$(get_libdir)"/*.jar + fi +} + +pkg_postinst() { + db_fix_so +} + +pkg_postrm() { + db_fix_so +} diff --git a/sys-libs/db/db-4.7.25_p4-r1.ebuild b/sys-libs/db/db-4.7.25_p4-r1.ebuild deleted file mode 100644 index 3a78c89cd14d..000000000000 --- a/sys-libs/db/db-4.7.25_p4-r1.ebuild +++ /dev/null @@ -1,186 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -inherit autotools db flag-o-matic java-pkg-opt-2 multilib - -#Number of official patches -#PATCHNO=`echo ${PV}|sed -e "s,\(.*_p\)\([0-9]*\),\2,"` -PATCHNO="${PV/*.*.*_p}" -if [[ ${PATCHNO} == "${PV}" ]] ; then - MY_PV="${PV}" - MY_P="${P}" - PATCHNO=0 -else - MY_PV="${PV/_p${PATCHNO}}" - MY_P="${PN}-${MY_PV}" -fi - -RESTRICT="!test? ( test )" - -S="${WORKDIR}/${MY_P}/build_unix" -DESCRIPTION="Oracle Berkeley DB" -HOMEPAGE="http://www.oracle.com/technetwork/database/database-technologies/berkeleydb/overview/index.html" -SRC_URI="http://download.oracle.com/berkeley-db/${MY_P}.tar.gz" -for (( i=1 ; i<=${PATCHNO} ; i++ )) ; do - export SRC_URI="${SRC_URI} http://www.oracle.com/technology/products/berkeley-db/db/update/${MY_PV}/patch.${MY_PV}.${i}" -done - -LICENSE="Sleepycat" -SLOT="$(ver_cut 1-2)" -KEYWORDS="~alpha amd64 arm arm64 hppa ia64 m68k ppc ppc64 s390 sh sparc x86" -IUSE="doc java cxx tcl test rpc" - -# the entire testsuite needs the TCL functionality -DEPEND="tcl? ( >=dev-lang/tcl-8.4 ) - test? ( >=dev-lang/tcl-8.4 ) - java? ( >=virtual/jdk-1.5 ) - >=sys-devel/binutils-2.16.1" -RDEPEND="tcl? ( dev-lang/tcl ) - java? ( >=virtual/jre-1.5 )" - -PATCHES=( - "${FILESDIR}"/"${PN}"-4.4-libtool.patch - - # use the includes from the prefix - "${FILESDIR}"/"${PN}"-4.6-jni-check-prefix-first.patch - "${FILESDIR}"/"${PN}"-4.2-listen-to-java-options.patch -) - -# Required to avoid unpack attempt of patches -src_unpack() { - unpack "${MY_P}".tar.gz -} - -src_prepare() { - pushd "${WORKDIR}"/"${MY_P}" &>/dev/null || die - for (( i=1 ; i<=${PATCHNO} ; i++ )) - do - eapply -p0 "${DISTDIR}"/patch."${MY_PV}"."${i}" - done - - default - - sed -e "/^DB_RELEASE_DATE=/s/%B %e, %Y/%Y-%m-%d/" \ - -i dist/RELEASE || die - - # Include the SLOT for Java JAR files - # This supersedes the unused jarlocation patches. - sed -r \ - -e '/jarfile=.*\.jar$/s,(.jar$),-$(LIBVERSION)\1,g' \ - -i dist/Makefile.in || die - - pushd dist &>/dev/null || die - rm aclocal/libtool.m4 || die - sed \ - -e '/AC_PROG_LIBTOOL$/aLT_OUTPUT' \ - -i configure.ac || die - sed \ - -e '/^AC_PATH_TOOL/s/ sh, none/ bash, none/' \ - -i aclocal/programs.m4 || die - - AT_M4DIR="aclocal aclocal_java" eautoreconf - - # Upstream sucks - they do autoconf and THEN replace the version variables. - . ./RELEASE - sed \ - -e "s/__EDIT_DB_VERSION_MAJOR__/$DB_VERSION_MAJOR/g" \ - -e "s/__EDIT_DB_VERSION_MINOR__/$DB_VERSION_MINOR/g" \ - -e "s/__EDIT_DB_VERSION_PATCH__/$DB_VERSION_PATCH/g" \ - -e "s/__EDIT_DB_VERSION_STRING__/$DB_VERSION_STRING/g" \ - -e "s/__EDIT_DB_VERSION_UNIQUE_NAME__/$DB_VERSION_UNIQUE_NAME/g" \ - -e "s/__EDIT_DB_VERSION__/$DB_VERSION/g" \ - -i configure || die - - popd &>/dev/null || die - popd &>/dev/null || die -} - -src_configure() { - # compilation with -O0 fails on amd64, see bug #171231 - if use amd64 ; then - replace-flags -O0 -O2 - is-flagq -O[s123] || append-flags -O2 - fi - - local myconf=( - --enable-compat185 - --enable-o_direct - --without-uniquename - $(use_enable rpc) - - $(usex amd64 '--with-mutex=x86/gcc-assembly' '') - $(use_enable cxx) - $(use_enable tcl) - $(usex tcl "--with-tcl=${EPREFIX}/usr/$(get_libdir)" '') #" - $(use_enable java) - $(use_enable test) - ) - - if use java; then - myconf+=( - --with-java-prefix="${JAVA_HOME}" - --with-javac-flags="$(java-pkg_javac-args)" - ) - fi - - # Bug #270851: test needs TCL support - if use tcl && use test ; then - myconf+=( --enable-test ) - else - myconf+=( --disable-test ) - fi - - # Add linker versions to the symbols. Easier to do, and safer than header file - # mumbo jumbo. - if use userland_GNU ; then - append-ldflags -Wl,--default-symver - fi - - ECONF_SOURCE="${S}"/../dist \ - STRIP="true" \ - econf "${myconf[@]}" - - # The embedded assembly on ARM does not work on newer hardware - # so you CANNOT use --with-mutex=ARM/gcc-assembly anymore. - # Specifically, it uses the SWPB op, which was deprecated: - # http://www.keil.com/support/man/docs/armasm/armasm_dom1361289909499.htm - - # The op ALSO cannot be used in ARM-Thumb mode. - # Trust the compiler instead. - # >=db-6.1 uses LDREX instead. -} - -src_install() { - emake DESTDIR="${D}" install - - db_src_install_usrbinslot - - db_src_install_headerslot - - db_src_install_doc - - db_src_install_usrlibcleanup - - dodir /usr/sbin - # This file is not always built, and no longer exists as of db-4.8 - if [[ -f "${ED}"/usr/bin/berkeley_db_svc ]] ; then - mv "${ED}"/usr/bin/berkeley_db_svc \ - "${ED}"/usr/sbin/berkeley_db"${SLOT/./}"_svc || die - fi - - if use java; then - java-pkg_regso "${ED}"/usr/"$(get_libdir)"/libdb_java*.so - java-pkg_dojar "${ED}"/usr/"$(get_libdir)"/*.jar - rm -f "${ED}"/usr/"$(get_libdir)"/*.jar - fi -} - -pkg_postinst() { - db_fix_so -} - -pkg_postrm() { - db_fix_so -} diff --git a/sys-libs/db/db-4.7.25_p4-r2.ebuild b/sys-libs/db/db-4.7.25_p4-r2.ebuild new file mode 100644 index 000000000000..d017f0dff1c2 --- /dev/null +++ b/sys-libs/db/db-4.7.25_p4-r2.ebuild @@ -0,0 +1,186 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit autotools db flag-o-matic java-pkg-opt-2 multilib + +#Number of official patches +#PATCHNO=`echo ${PV}|sed -e "s,\(.*_p\)\([0-9]*\),\2,"` +PATCHNO="${PV/*.*.*_p}" +if [[ ${PATCHNO} == "${PV}" ]] ; then + MY_PV="${PV}" + MY_P="${P}" + PATCHNO=0 +else + MY_PV="${PV/_p${PATCHNO}}" + MY_P="${PN}-${MY_PV}" +fi + +RESTRICT="!test? ( test )" + +S="${WORKDIR}/${MY_P}/build_unix" +DESCRIPTION="Oracle Berkeley DB" +HOMEPAGE="http://www.oracle.com/technetwork/database/database-technologies/berkeleydb/overview/index.html" +SRC_URI="http://download.oracle.com/berkeley-db/${MY_P}.tar.gz" +for (( i=1 ; i<=${PATCHNO} ; i++ )) ; do + export SRC_URI="${SRC_URI} http://www.oracle.com/technology/products/berkeley-db/db/update/${MY_PV}/patch.${MY_PV}.${i}" +done + +LICENSE="Sleepycat" +SLOT="$(ver_cut 1-2)" +KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 m68k ppc ppc64 s390 sparc x86" +IUSE="doc java cxx tcl test" + +# the entire testsuite needs the TCL functionality +DEPEND="tcl? ( >=dev-lang/tcl-8.4 ) + test? ( >=dev-lang/tcl-8.4 ) + java? ( >=virtual/jdk-1.5 ) + >=sys-devel/binutils-2.16.1" +RDEPEND="tcl? ( dev-lang/tcl ) + java? ( >=virtual/jre-1.5 )" + +PATCHES=( + "${FILESDIR}"/"${PN}"-4.4-libtool.patch + + # use the includes from the prefix + "${FILESDIR}"/"${PN}"-4.6-jni-check-prefix-first.patch + "${FILESDIR}"/"${PN}"-4.2-listen-to-java-options.patch +) + +# Required to avoid unpack attempt of patches +src_unpack() { + unpack "${MY_P}".tar.gz +} + +src_prepare() { + pushd "${WORKDIR}"/"${MY_P}" &>/dev/null || die + for (( i=1 ; i<=${PATCHNO} ; i++ )) + do + eapply -p0 "${DISTDIR}"/patch."${MY_PV}"."${i}" + done + + default + + sed -e "/^DB_RELEASE_DATE=/s/%B %e, %Y/%Y-%m-%d/" \ + -i dist/RELEASE || die + + # Include the SLOT for Java JAR files + # This supersedes the unused jarlocation patches. + sed -r \ + -e '/jarfile=.*\.jar$/s,(.jar$),-$(LIBVERSION)\1,g' \ + -i dist/Makefile.in || die + + pushd dist &>/dev/null || die + rm aclocal/libtool.m4 || die + sed \ + -e '/AC_PROG_LIBTOOL$/aLT_OUTPUT' \ + -i configure.ac || die + sed \ + -e '/^AC_PATH_TOOL/s/ sh, none/ bash, none/' \ + -i aclocal/programs.m4 || die + + AT_M4DIR="aclocal aclocal_java" eautoreconf + + # Upstream sucks - they do autoconf and THEN replace the version variables. + . ./RELEASE + sed \ + -e "s/__EDIT_DB_VERSION_MAJOR__/$DB_VERSION_MAJOR/g" \ + -e "s/__EDIT_DB_VERSION_MINOR__/$DB_VERSION_MINOR/g" \ + -e "s/__EDIT_DB_VERSION_PATCH__/$DB_VERSION_PATCH/g" \ + -e "s/__EDIT_DB_VERSION_STRING__/$DB_VERSION_STRING/g" \ + -e "s/__EDIT_DB_VERSION_UNIQUE_NAME__/$DB_VERSION_UNIQUE_NAME/g" \ + -e "s/__EDIT_DB_VERSION__/$DB_VERSION/g" \ + -i configure || die + + popd &>/dev/null || die + popd &>/dev/null || die +} + +src_configure() { + # compilation with -O0 fails on amd64, see bug #171231 + if use amd64 ; then + replace-flags -O0 -O2 + is-flagq -O[s123] || append-flags -O2 + fi + + local myconf=( + --enable-compat185 + --enable-o_direct + --without-uniquename + --disable-rpc + + $(usex amd64 '--with-mutex=x86/gcc-assembly' '') + $(use_enable cxx) + $(use_enable tcl) + $(usex tcl "--with-tcl=${EPREFIX}/usr/$(get_libdir)" '') #" + $(use_enable java) + $(use_enable test) + ) + + if use java; then + myconf+=( + --with-java-prefix="${JAVA_HOME}" + --with-javac-flags="$(java-pkg_javac-args)" + ) + fi + + # Bug #270851: test needs TCL support + if use tcl && use test ; then + myconf+=( --enable-test ) + else + myconf+=( --disable-test ) + fi + + # Add linker versions to the symbols. Easier to do, and safer than header file + # mumbo jumbo. + if use userland_GNU ; then + append-ldflags -Wl,--default-symver + fi + + ECONF_SOURCE="${S}"/../dist \ + STRIP="true" \ + econf "${myconf[@]}" + + # The embedded assembly on ARM does not work on newer hardware + # so you CANNOT use --with-mutex=ARM/gcc-assembly anymore. + # Specifically, it uses the SWPB op, which was deprecated: + # http://www.keil.com/support/man/docs/armasm/armasm_dom1361289909499.htm + + # The op ALSO cannot be used in ARM-Thumb mode. + # Trust the compiler instead. + # >=db-6.1 uses LDREX instead. +} + +src_install() { + emake DESTDIR="${D}" install + + db_src_install_usrbinslot + + db_src_install_headerslot + + db_src_install_doc + + db_src_install_usrlibcleanup + + dodir /usr/sbin + # This file is not always built, and no longer exists as of db-4.8 + if [[ -f "${ED}"/usr/bin/berkeley_db_svc ]] ; then + mv "${ED}"/usr/bin/berkeley_db_svc \ + "${ED}"/usr/sbin/berkeley_db"${SLOT/./}"_svc || die + fi + + if use java; then + java-pkg_regso "${ED}"/usr/"$(get_libdir)"/libdb_java*.so + java-pkg_dojar "${ED}"/usr/"$(get_libdir)"/*.jar + rm -f "${ED}"/usr/"$(get_libdir)"/*.jar + fi +} + +pkg_postinst() { + db_fix_so +} + +pkg_postrm() { + db_fix_so +} diff --git a/sys-libs/db/db-4.8.30-r3.ebuild b/sys-libs/db/db-4.8.30-r3.ebuild index c7077ddb38b3..e08beab6240a 100644 --- a/sys-libs/db/db-4.8.30-r3.ebuild +++ b/sys-libs/db/db-4.8.30-r3.ebuild @@ -29,7 +29,7 @@ done LICENSE="Sleepycat" SLOT="$(ver_cut 1-2)" -KEYWORDS="~alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86" +KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 m68k ~mips ppc ppc64 s390 sparc x86" IUSE="doc java cxx tcl test" REQUIRED_USE="test? ( tcl )" diff --git a/sys-libs/db/db-5.1.29-r2.ebuild b/sys-libs/db/db-5.1.29-r2.ebuild index fa1ad448f712..210615eeed80 100644 --- a/sys-libs/db/db-5.1.29-r2.ebuild +++ b/sys-libs/db/db-5.1.29-r2.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2019 Gentoo Authors +# Copyright 1999-2020 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 @@ -29,7 +29,7 @@ done LICENSE="Sleepycat" SLOT="$(ver_cut 1-2)" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~ppc ~ppc64 ~s390 ~sparc ~x86" IUSE="doc java cxx tcl test" REQUIRED_USE="test? ( tcl )" diff --git a/sys-libs/db/db-5.3.28-r2.ebuild b/sys-libs/db/db-5.3.28-r2.ebuild index 99dffeadf8c6..fed3b53efbf0 100644 --- a/sys-libs/db/db-5.3.28-r2.ebuild +++ b/sys-libs/db/db-5.3.28-r2.ebuild @@ -29,7 +29,7 @@ done LICENSE="Sleepycat" SLOT="5.3" -KEYWORDS="~alpha amd64 arm arm64 hppa ia64 ~m68k ppc ppc64 ~riscv ~s390 ~sh sparc x86" +KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ppc ppc64 ~riscv ~s390 sparc x86" IUSE="doc java cxx tcl test" REQUIRED_USE="test? ( tcl )" diff --git a/sys-libs/db/db-5.3.28-r4.ebuild b/sys-libs/db/db-5.3.28-r4.ebuild index d7e61dc35ab2..01c3e5b1835e 100644 --- a/sys-libs/db/db-5.3.28-r4.ebuild +++ b/sys-libs/db/db-5.3.28-r4.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2019 Gentoo Authors +# Copyright 1999-2020 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 @@ -29,7 +29,7 @@ done LICENSE="Sleepycat" SLOT="$(ver_cut 1-2)" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~ppc ~ppc64 ~riscv ~s390 ~sh ~sparc ~x86" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" IUSE="doc java cxx tcl test" REQUIRED_USE="test? ( tcl )" diff --git a/sys-libs/db/db-6.0.35-r2.ebuild b/sys-libs/db/db-6.0.35-r2.ebuild index b10a1424460f..9b1696e96c3c 100644 --- a/sys-libs/db/db-6.0.35-r2.ebuild +++ b/sys-libs/db/db-6.0.35-r2.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2019 Gentoo Authors +# Copyright 1999-2020 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 @@ -29,7 +29,7 @@ done LICENSE="AGPL-3" SLOT="$(ver_cut 1-2)" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~ppc ~ppc64 ~riscv ~s390 ~sh ~sparc ~x86" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" IUSE="doc java cxx tcl test" REQUIRED_USE="test? ( tcl )" diff --git a/sys-libs/db/db-6.1.38.ebuild b/sys-libs/db/db-6.1.38.ebuild index fa361fed9012..3609e94268bb 100644 --- a/sys-libs/db/db-6.1.38.ebuild +++ b/sys-libs/db/db-6.1.38.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2019 Gentoo Authors +# Copyright 1999-2020 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=6 @@ -29,7 +29,7 @@ done LICENSE="AGPL-3" SLOT="$(get_version_component_range 1-2)" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~ppc ~ppc64 ~riscv ~s390 ~sh ~sparc ~x86" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" IUSE="doc java cxx tcl test" REQUIRED_USE="test? ( tcl )" diff --git a/sys-libs/db/db-6.2.38.ebuild b/sys-libs/db/db-6.2.38.ebuild index 574e8c6fda31..965668160fc0 100644 --- a/sys-libs/db/db-6.2.38.ebuild +++ b/sys-libs/db/db-6.2.38.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2019 Gentoo Authors +# Copyright 1999-2020 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=6 @@ -29,7 +29,7 @@ done LICENSE="AGPL-3" SLOT="$(get_version_component_range 1-2)" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~ppc ~ppc64 ~riscv ~s390 ~sh ~sparc ~x86" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" IUSE="doc java cxx tcl test" REQUIRED_USE="test? ( tcl )" diff --git a/sys-libs/db/metadata.xml b/sys-libs/db/metadata.xml index 19c65222929a..4b0876002621 100644 --- a/sys-libs/db/metadata.xml +++ b/sys-libs/db/metadata.xml @@ -23,7 +23,4 @@ gedeeld geheugen caching en database herstel. DB ondersteund C, C++, Java en Perl API's. DB is beschikbaar voor veel UNIX platformen en Windows. - - Enable rpc client/server - diff --git a/sys-libs/e2fsprogs-libs/Manifest b/sys-libs/e2fsprogs-libs/Manifest index 44d38687050a..3eca70c70513 100644 --- a/sys-libs/e2fsprogs-libs/Manifest +++ b/sys-libs/e2fsprogs-libs/Manifest @@ -1,6 +1,8 @@ AUX e2fsprogs-libs-1.42.13-fix-build-cflags.patch 300 BLAKE2B a6cfc44d27991cb98b1cf94854dabb4bfefd0d44d7605cbca6353b27730dcc37ed65c1d4b35f2b7e5386a607056f7397afbf4e3dadc57efb0e3172a94287f5b7 SHA512 0c0a39a7cdf1930c2c8da0072f935eb02e15ce7a5202990b4ee5458a4ba7a5c1848a7b759e91e32c76f38ea419059179b04ff94fa336cbf77e4ecde55f9dc1d3 DIST e2fsprogs-1.45.4.tar.xz 5567164 BLAKE2B ab7be15e504b674290a25572d09d1ca4bacebc14d23a0ae400636bdcf3bf117f3aaf82b806ca7fd25dcd6ef9fedff588de7c72134b095e27f7a363f7d70c94c7 SHA512 408f093a6674ef2316c451173481851041957617c550308d2969b983e11d988ddfc120626cd957c0759648bc357edf1d9971e6d46bed109c2af5f8a09bdc5bda DIST e2fsprogs-1.45.5.tar.xz 5569796 BLAKE2B cf9633caa6c00afa51408364d0c0a1515a9989ad1582fb485a300fd71bf61ec56b57dbb26f152609eaf2d63bfb04fe1e3f271085c26aa0c832c1f467960e6480 SHA512 d1a8611b525742387061f390fb24825dfa175997cc7db05decea913fcc7b97a95a3e787091f2920d4a7d4eb1d813568af734a1610229ead09bcbf9f3e262e4ce -EBUILD e2fsprogs-libs-1.45.4.ebuild 2219 BLAKE2B 568d10511fbeea8ddc3e025d5f5965dac277c40f65cbbf16630b4195efce3b58c4dfd99c60af78f2253b1570bbfb42cd1e1d8679ffbe854f4608d84d8ccc7549 SHA512 a9751b6f537d6ae10d7783253389c54b0a0f0e7474b8eaa432261354d1b92a4907b268524a9d278d4e97655c57ae08d9c44cdabcee4047ced29de40f1935a7d6 -EBUILD e2fsprogs-libs-1.45.5.ebuild 2221 BLAKE2B 295c1c8b62ea621f85e754a83ce3241a2b1a7e8ea1c92dd7acb915b5d6736d2df57a5fbaa9893608e0b963fe3cdcfe10f335ee6aab48d0911812bfeab3872240 SHA512 de010651a7e89e282fec11ae1567804157bfa5236d611e6094d465e74c6af67813d45a6a916d11488e5408aab7cd45579b178732957c331c81ca3b40ee631d9f +DIST e2fsprogs-1.45.6.tar.xz 5572144 BLAKE2B 24a44d27a02a1fa178083d5ee6034b20fedcac9faf7cf7f5cfcd4e4cee6d38775bc78949b9b00823cbbdacfab783e8e1e739579b9a7236c5425f51b27600743b SHA512 f3abfb6fe7ef632bb81152e2127d601cadd3fa93162178576a1d5ed82c2286627184b207b85a5b2a1793db0addf0885dfc3b9523bb340443224caf9c6d613b84 +EBUILD e2fsprogs-libs-1.45.4.ebuild 2217 BLAKE2B 22f4b307244a118b022d0dc072abcb5ca5ebbd399f0d635691e71d647f97ba63499c63d33663b2b6a7508e3def09c35eab49b0102263b5cd428a239d779586d2 SHA512 e1f9ed9a064ce8537b6bf4bf38a10c4ab53b64d0dc6ff0a20b8d085df15d26e458c3ce5b413c1aca5e0ebf958b1d76f63c1fe439b7f8057e43496a3b84e2826f +EBUILD e2fsprogs-libs-1.45.5.ebuild 2218 BLAKE2B 25ef186951ef58eb15f500c536ad3f8f39297208f87197c81e094d499fb47379074024b9ba0126d64e711ef62bbf37dc0063320f04d6cb2ae5904b619c9743a2 SHA512 356fd05f5995ff4c90a964ba1271dc6c0730d997506e16c2253ea1c048df0a413afd3b9ff0a0de3c7b22ed50895ae66efb96e01b6db6799053cf32af4c91fb50 +EBUILD e2fsprogs-libs-1.45.6.ebuild 2227 BLAKE2B e469ba0db1f533fe014e1058b68b34f290f9602ae1d1e7f9c20b9404768619133d77ef5c1a71d479a4619b8f7cd23a65667fd516797d8ac12baf2bd73a8bf601 SHA512 2344a9f504bf99e7aa0d84f171d2f14d5ca62eb05078ae9f778058b07d36c307ececea85f74702a059ac0c4b0c258dd8acf5431bdd56f0cbbbaf0d8519ed7858 MISC metadata.xml 399 BLAKE2B 7f75ab727887efba1f1991c5944cd262c95b53dbc48a391afdd67cb5c1f99d9c06753b06c7d28c5472075835ff5da4718eb0c3ca5b9e68a4d83173f223162c31 SHA512 45e90f3d9b83bffd42173290d47dce2247a2eff4d6293b7bcbcf422115e11b8c958a7a13f60b7742a96350bd5a2b37d8e76a807776f943c88833b77782d4f180 diff --git a/sys-libs/e2fsprogs-libs/e2fsprogs-libs-1.45.4.ebuild b/sys-libs/e2fsprogs-libs/e2fsprogs-libs-1.45.4.ebuild index c58bec60eb55..4333c8104127 100644 --- a/sys-libs/e2fsprogs-libs/e2fsprogs-libs-1.45.4.ebuild +++ b/sys-libs/e2fsprogs-libs/e2fsprogs-libs-1.45.4.ebuild @@ -15,7 +15,7 @@ SRC_URI="mirror://sourceforge/e2fsprogs/${MY_P}.tar.xz LICENSE="GPL-2" SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 ~riscv s390 sh sparc x86 ~amd64-linux ~x86-linux ~m68k-mint ~x86-solaris" +KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 m68k ~mips ppc ppc64 ~riscv s390 sparc x86 ~amd64-linux ~x86-linux ~m68k-mint ~x86-solaris" IUSE="static-libs" RDEPEND="!sys-libs/com_err diff --git a/sys-libs/e2fsprogs-libs/e2fsprogs-libs-1.45.5.ebuild b/sys-libs/e2fsprogs-libs/e2fsprogs-libs-1.45.5.ebuild index ecd796000142..4d8e8d0d7e00 100644 --- a/sys-libs/e2fsprogs-libs/e2fsprogs-libs-1.45.5.ebuild +++ b/sys-libs/e2fsprogs-libs/e2fsprogs-libs-1.45.5.ebuild @@ -15,7 +15,7 @@ SRC_URI="mirror://sourceforge/e2fsprogs/${MY_P}.tar.xz LICENSE="GPL-2" SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 hppa ia64 ~m68k ~mips ppc ppc64 ~riscv s390 ~sh sparc x86 ~amd64-linux ~x86-linux ~m68k-mint ~x86-solaris" +KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv s390 sparc x86 ~amd64-linux ~x86-linux ~m68k-mint ~x86-solaris" IUSE="static-libs" RDEPEND="!sys-libs/com_err diff --git a/sys-libs/e2fsprogs-libs/e2fsprogs-libs-1.45.6.ebuild b/sys-libs/e2fsprogs-libs/e2fsprogs-libs-1.45.6.ebuild new file mode 100644 index 000000000000..cd86eb815c29 --- /dev/null +++ b/sys-libs/e2fsprogs-libs/e2fsprogs-libs-1.45.6.ebuild @@ -0,0 +1,94 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit toolchain-funcs multilib-minimal usr-ldscript + +MY_PN=${PN%-libs} +MY_P="${MY_PN}-${PV}" + +DESCRIPTION="e2fsprogs libraries (common error and subsystem)" +HOMEPAGE="http://e2fsprogs.sourceforge.net/" +SRC_URI="mirror://sourceforge/e2fsprogs/${MY_P}.tar.xz + https://www.kernel.org/pub/linux/kernel/people/tytso/e2fsprogs/v${PV}/${MY_P}.tar.xz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~m68k-mint ~x86-solaris" +IUSE="static-libs" + +RDEPEND="!sys-libs/com_err + !sys-libs/ss + !' | $(tc-getCPP ${CTARGET}) ${CFLAGS} 2>&1 | grep -o '[^"]*linux/version.h') - ALT_BUILD_HEADERS=${header_path%/linux/version.h} - fi - fi - fi - echo "${ALT_BUILD_HEADERS}" -} - -alt_libdir() { - echo $(alt_prefix)/$(get_libdir) -} -alt_usrlibdir() { - echo $(alt_prefix)/usr/$(get_libdir) -} - -builddir() { - echo "${WORKDIR}/build-${ABI}-${CTARGET}-$1" -} - -do_compile_test() { - local ret save_cflags=${CFLAGS} - CFLAGS+=" $1" - shift - - pushd "${T}" >/dev/null - - rm -f glibc-test* - printf '%b' "$*" > glibc-test.c - - nonfatal emake -s glibc-test - ret=$? - - popd >/dev/null - - CFLAGS=${save_cflags} - return ${ret} -} - -do_run_test() { - local ret - - if [[ ${MERGE_TYPE} == "binary" ]] ; then - # ignore build failures when installing a binary package #324685 - do_compile_test "" "$@" 2>/dev/null || return 0 - else - if ! do_compile_test "" "$@" ; then - ewarn "Simple build failed ... assuming this is desired #324685" - return 0 - fi - fi - - pushd "${T}" >/dev/null - - ./glibc-test - ret=$? - rm -f glibc-test* - - popd >/dev/null - - return ${ret} -} - -setup_target_flags() { - # This largely mucks with compiler flags. None of which should matter - # when building up just the headers. - just_headers && return 0 - - case $(tc-arch) in - x86) - # -march needed for #185404 #199334 - # TODO: When creating the first glibc cross-compile, this test will - # always fail as it does a full link which in turn requires glibc. - # Probably also applies when changing multilib profile settings (e.g. - # enabling x86 when the profile was amd64-only previously). - # We could change main to _start and pass -nostdlib here so that we - # only test the gcc code compilation. Or we could do a compile and - # then look for the symbol via scanelf. - if ! do_compile_test "" 'void f(int i, void *p) {if (__sync_fetch_and_add(&i, 1)) f(i, p);}\nint main(){return 0;}\n' 2>/dev/null ; then - local t=${CTARGET_OPT:-${CTARGET}} - t=${t%%-*} - filter-flags '-march=*' - export CFLAGS="-march=${t} ${CFLAGS}" - einfo "Auto adding -march=${t} to CFLAGS #185404" - fi - ;; - amd64) - # -march needed for #185404 #199334 - # Note: This test only matters when the x86 ABI is enabled, so we could - # optimize a bit and elide it. - # TODO: See cross-compile issues listed above for x86. - if ! do_compile_test "${CFLAGS_x86}" 'void f(int i, void *p) {if (__sync_fetch_and_add(&i, 1)) f(i, p);}\nint main(){return 0;}\n' 2>/dev/null ; then - local t=${CTARGET_OPT:-${CTARGET}} - t=${t%%-*} - # Normally the target is x86_64-xxx, so turn that into the -march that - # gcc actually accepts. #528708 - [[ ${t} == "x86_64" ]] && t="x86-64" - filter-flags '-march=*' - # ugly, ugly, ugly. ugly. - CFLAGS_x86=$(CFLAGS=${CFLAGS_x86} filter-flags '-march=*'; echo "${CFLAGS}") - export CFLAGS_x86="${CFLAGS_x86} -march=${t}" - einfo "Auto adding -march=${t} to CFLAGS_x86 #185404" - fi - ;; - mips) - # The mips abi cannot support the GNU style hashes. #233233 - filter-ldflags -Wl,--hash-style=gnu -Wl,--hash-style=both - ;; - sparc) - # Both sparc and sparc64 can use -fcall-used-g6. -g7 is bad, though. - filter-flags "-fcall-used-g7" - append-flags "-fcall-used-g6" - - # If the CHOST is the basic one (e.g. not sparcv9-xxx already), - # try to pick a better one so glibc can use cpu-specific .S files. - # We key off the CFLAGS to get a good value. Also need to handle - # version skew. - # We can't force users to set their CHOST to their exact machine - # as many of these are not recognized by config.sub/gcc and such :(. - # Note: If the mcpu values don't scale, we might try probing CPP defines. - # Note: Should we factor in -Wa,-AvXXX flags too ? Or -mvis/etc... ? - - local cpu - case ${CTARGET} in - sparc64-*) - case $(get-flag mcpu) in - niagara[234]) - if ver_test -ge 2.8 ; then - cpu="sparc64v2" - elif ver_test -ge 2.4 ; then - cpu="sparc64v" - elif ver_test -ge 2.2.3 ; then - cpu="sparc64b" - fi - ;; - niagara) - if ver_test -ge 2.4 ; then - cpu="sparc64v" - elif ver_test -ge 2.2.3 ; then - cpu="sparc64b" - fi - ;; - ultrasparc3) - cpu="sparc64b" - ;; - *) - # We need to force at least v9a because the base build doesn't - # work with just v9. - # https://sourceware.org/bugzilla/show_bug.cgi?id=19477 - [[ -z ${cpu} ]] && append-flags "-Wa,-xarch=v9a" - ;; - esac - ;; - sparc-*) - case $(get-flag mcpu) in - niagara[234]) - if ver_test -ge 2.8 ; then - cpu="sparcv9v2" - elif ver_test -ge 2.4 ; then - cpu="sparcv9v" - elif ver_test -ge 2.2.3 ; then - cpu="sparcv9b" - else - cpu="sparcv9" - fi - ;; - niagara) - if ver_test -ge 2.4 ; then - cpu="sparcv9v" - elif ver_test -ge 2.2.3 ; then - cpu="sparcv9b" - else - cpu="sparcv9" - fi - ;; - ultrasparc3) - cpu="sparcv9b" - ;; - v9|ultrasparc) - cpu="sparcv9" - ;; - v8|supersparc|hypersparc|leon|leon3) - cpu="sparcv8" - ;; - esac - ;; - esac - [[ -n ${cpu} ]] && CTARGET_OPT="${cpu}-${CTARGET#*-}" - ;; - esac -} - -setup_flags() { - # Make sure host make.conf doesn't pollute us - if is_crosscompile || tc-is-cross-compiler ; then - CHOST=${CTARGET} strip-unsupported-flags - fi - - # Store our CFLAGS because it's changed depending on which CTARGET - # we are building when pulling glibc on a multilib profile - CFLAGS_BASE=${CFLAGS_BASE-${CFLAGS}} - CFLAGS=${CFLAGS_BASE} - CXXFLAGS_BASE=${CXXFLAGS_BASE-${CXXFLAGS}} - CXXFLAGS=${CXXFLAGS_BASE} - ASFLAGS_BASE=${ASFLAGS_BASE-${ASFLAGS}} - ASFLAGS=${ASFLAGS_BASE} - - # Over-zealous CFLAGS can often cause problems. What may work for one - # person may not work for another. To avoid a large influx of bugs - # relating to failed builds, we strip most CFLAGS out to ensure as few - # problems as possible. - strip-flags - strip-unsupported-flags - filter-flags -m32 -m64 '-mabi=*' - - # glibc aborts if rpath is set by LDFLAGS - filter-ldflags '-Wl,-rpath=*' - - # #492892 - filter-flags -frecord-gcc-switches - - unset CBUILD_OPT CTARGET_OPT - if use multilib ; then - CTARGET_OPT=$(get_abi_CTARGET) - [[ -z ${CTARGET_OPT} ]] && CTARGET_OPT=$(get_abi_CHOST) - fi - - setup_target_flags - - if [[ -n ${CTARGET_OPT} && ${CBUILD} == ${CHOST} ]] && ! is_crosscompile; then - CBUILD_OPT=${CTARGET_OPT} - fi - - # Lock glibc at -O2; we want to be conservative here. - # -fno-strict-aliasing is to work around #155906. - filter-flags '-O?' - append-flags -O2 -fno-strict-aliasing - - filter-flags '-fstack-protector*' -} - -want_tls() { - # Archs that can use TLS (Thread Local Storage) - case $(tc-arch) in - x86) - # requires i486 or better #106556 - [[ ${CTARGET} == i[4567]86* ]] && return 0 - return 1 - ;; - esac - return 0 -} - -want__thread() { - want_tls || return 1 - - # For some reason --with-tls --with__thread is causing segfaults on sparc32. - [[ ${PROFILE_ARCH} == "sparc" ]] && return 1 - - [[ -n ${WANT__THREAD} ]] && return ${WANT__THREAD} - - # only test gcc -- can't test linking yet - tc-has-tls -c ${CTARGET} - WANT__THREAD=$? - - return ${WANT__THREAD} -} - -use_multiarch() { - # Allow user to disable runtime arch detection in multilib. - use multiarch || return 1 - # Make sure binutils is new enough to support indirect functions, - # #336792. This funky sed supports gold and bfd linkers. - local bver nver - bver=$($(tc-getLD ${CTARGET}) -v | sed -n -r '1{s:[^0-9]*::;s:^([0-9.]*).*:\1:;p}') - case $(tc-arch ${CTARGET}) in - amd64|x86) nver="2.20" ;; - arm) nver="2.22" ;; - hppa) nver="2.23" ;; - ppc|ppc64) nver="2.20" ;; - # ifunc support was added in 2.23, but glibc also needs - # machinemode which is in 2.24. - s390) nver="2.24" ;; - sparc) nver="2.21" ;; - *) return 1 ;; - esac - ver_test ${bver} -ge ${nver} -} - -# Setup toolchain variables that had historically been defined in the -# profiles for these archs. -setup_env() { - # silly users - unset LD_RUN_PATH - unset LD_ASSUME_KERNEL - - if is_crosscompile || tc-is-cross-compiler ; then - multilib_env ${CTARGET_OPT:-${CTARGET}} - - if ! use multilib ; then - MULTILIB_ABIS=${DEFAULT_ABI} - else - MULTILIB_ABIS=${MULTILIB_ABIS:-${DEFAULT_ABI}} - fi - - # If the user has CFLAGS_ in their make.conf, use that, - # and fall back on CFLAGS. - local VAR=CFLAGS_${CTARGET//[-.]/_} - CFLAGS=${!VAR-${CFLAGS}} - einfo " $(printf '%15s' 'Manual CFLAGS:') ${CFLAGS}" - fi - - setup_flags - - export ABI=${ABI:-${DEFAULT_ABI:-default}} - - if just_headers ; then - # Avoid mixing host's CC and target's CFLAGS_${ABI}: - # At this bootstrap stage we have only binutils for - # target but not compiler yet. - einfo "Skip CC ABI injection. We can't use (cross-)compiler yet." - return 0 - fi - local VAR=CFLAGS_${ABI} - # We need to export CFLAGS with abi information in them because glibc's - # configure script checks CFLAGS for some targets (like mips). Keep - # around the original clean value to avoid appending multiple ABIs on - # top of each other. - : ${__GLIBC_CC:=$(tc-getCC ${CTARGET_OPT:-${CTARGET}})} - export __GLIBC_CC CC="${__GLIBC_CC} ${!VAR}" - einfo " $(printf '%15s' 'Manual CC:') ${CC}" -} - -foreach_abi() { - setup_env - - local ret=0 - local abilist="" - if use multilib ; then - abilist=$(get_install_abis) - else - abilist=${DEFAULT_ABI} - fi - local -x ABI - for ABI in ${abilist:-default} ; do - setup_env - einfo "Running $1 for ABI ${ABI}" - $1 - : $(( ret |= $? )) - done - return ${ret} -} - -glibc_banner() { - local b="Gentoo ${PVR}" - [[ -n ${PATCH_VER} ]] && ! use vanilla && b+=" p${PATCH_VER}" - echo "${b}" -} - -check_devpts() { - # Make sure devpts is mounted correctly for use w/out setuid pt_chown. - - # If merely building the binary package, then there's nothing to verify. - [[ ${MERGE_TYPE} == "buildonly" ]] && return - - # Only sanity check when installing the native glibc. - [[ ${ROOT} != "/" ]] && return - - # If they're opting in to the old suid code, then no need to check. - use suid && return - - if awk '$3 == "devpts" && $4 ~ /[, ]gid=5[, ]/ { exit 1 }' /proc/mounts ; then - eerror "In order to use glibc with USE=-suid, you must make sure that" - eerror "you have devpts mounted at /dev/pts with the gid=5 option." - eerror "Openrc should do this for you, so you should check /etc/fstab" - eerror "and make sure you do not have any invalid settings there." - die "mount & fix your /dev/pts settings" - fi -} - -# The following Kernel version handling functions are mostly copied from portage -# source. It's better not to use linux-info.eclass here since a) it adds too -# much magic, see bug 326693 for some of the arguments, and b) some of the -# functions are just not provided. - -g_get_running_KV() { - uname -r - return $? -} - -g_KV_major() { - [[ -z $1 ]] && return 1 - local KV=$@ - echo "${KV%%.*}" -} - -g_KV_minor() { - [[ -z $1 ]] && return 1 - local KV=$@ - KV=${KV#*.} - echo "${KV%%.*}" -} - -g_KV_micro() { - [[ -z $1 ]] && return 1 - local KV=$@ - KV=${KV#*.*.} - echo "${KV%%[^[:digit:]]*}" -} - -g_KV_to_int() { - [[ -z $1 ]] && return 1 - local KV_MAJOR=$(g_KV_major "$1") - local KV_MINOR=$(g_KV_minor "$1") - local KV_MICRO=$(g_KV_micro "$1") - local KV_int=$(( KV_MAJOR * 65536 + KV_MINOR * 256 + KV_MICRO )) - - # We make version 2.2.0 the minimum version we will handle as - # a sanity check ... if its less, we fail ... - if [[ ${KV_int} -ge 131584 ]] ; then - echo "${KV_int}" - return 0 - fi - return 1 -} - -g_int_to_KV() { - local version=$1 major minor micro - major=$((version / 65536)) - minor=$(((version % 65536) / 256)) - micro=$((version % 256)) - echo ${major}.${minor}.${micro} -} - -eend_KV() { - [[ $(g_KV_to_int $1) -ge $(g_KV_to_int $2) ]] - eend $? -} - -get_kheader_version() { - printf '#include \nLINUX_VERSION_CODE\n' | \ - $(tc-getCPP ${CTARGET}) -I "$(build_eprefix)$(alt_build_headers)" - | \ - tail -n 1 -} - -# We collect all sanity checks here. Consistency is not guranteed between -# pkg_ and src_ phases, so we call this function both in pkg_pretend and in -# src_unpack. -sanity_prechecks() { - # Make sure devpts is mounted correctly for use w/out setuid pt_chown - check_devpts - - # Prevent native builds from downgrading - if [[ ${MERGE_TYPE} != "buildonly" ]] && \ - [[ ${ROOT} == "/" ]] && \ - [[ ${CBUILD} == ${CHOST} ]] && \ - [[ ${CHOST} == ${CTARGET} ]] ; then - - # The high rev # is to allow people to downgrade between -r# - # versions. We want to block 2.20->2.19, but 2.20-r3->2.20-r2 - # should be fine. Hopefully we never actually use a r# this - # high. - if has_version ">${CATEGORY}/${P}-r10000" ; then - eerror "Sanity check to keep you from breaking your system:" - eerror " Downgrading glibc is not supported and a sure way to destruction." - [[ ${I_ALLOW_TO_BREAK_MY_SYSTEM} = yes ]] || die "Aborting to save your system." - fi - - if ! do_run_test '#include \n#include \nint main(){return syscall(1000)!=-1;}\n' ; then - eerror "Your old kernel is broken. You need to update it to a newer" - eerror "version as syscall() will break. See bug 279260." - die "Old and broken kernel." - fi - fi - - # Users have had a chance to phase themselves, time to give em the boot - if [[ -e ${EROOT}/etc/locale.gen ]] && [[ -e ${EROOT}/etc/locales.build ]] ; then - eerror "You still haven't deleted ${EROOT}/etc/locales.build." - eerror "Do so now after making sure ${EROOT}/etc/locale.gen is kosher." - die "Lazy upgrader detected" - fi - - if [[ ${CTARGET} == i386-* ]] ; then - eerror "i386 CHOSTs are no longer supported." - eerror "Chances are you don't actually want/need i386." - eerror "Please read https://www.gentoo.org/doc/en/change-chost.xml" - die "Please fix your CHOST" - fi - - if [[ -e /proc/xen ]] && [[ $(tc-arch) == "x86" ]] && ! is-flag -mno-tls-direct-seg-refs ; then - ewarn "You are using Xen but don't have -mno-tls-direct-seg-refs in your CFLAGS." - ewarn "This will result in a 50% performance penalty when running with a 32bit" - ewarn "hypervisor, which is probably not what you want." - fi - - # Check for sanity of /etc/nsswitch.conf - if [[ -e ${EROOT}/etc/nsswitch.conf ]] ; then - local entry - for entry in passwd group shadow; do - if ! egrep -q "^[ \t]*${entry}:.*files" "${EROOT}"/etc/nsswitch.conf; then - eerror "Your ${EROOT}/etc/nsswitch.conf is out of date." - eerror "Please make sure you have 'files' entries for" - eerror "'passwd:', 'group:' and 'shadow:' databases." - eerror "For more details see:" - eerror " https://wiki.gentoo.org/wiki/Project:Toolchain/nsswitch.conf_in_glibc-2.26" - die "nsswitch.conf has no 'files' provider in '${entry}'." - fi - done - fi - - # ABI-specific checks follow here. Hey, we have a lot more specific conditions that - # we test for... - if ! is_crosscompile ; then - if use amd64 && use multilib && [[ ${MERGE_TYPE} != "binary" ]] ; then - ebegin "Checking that IA32 emulation is enabled in the running kernel" - echo 'int main(){return 0;}' > "${T}/check-ia32-emulation.c" - local STAT - if "${CC-${CHOST}-gcc}" ${CFLAGS_x86} "${T}/check-ia32-emulation.c" -o "${T}/check-ia32-emulation.elf32"; then - "${T}/check-ia32-emulation.elf32" - STAT=$? - else - # Don't fail here to allow single->multi ABI switch - # or recover from breakage like bug #646424 - ewarn "Failed to compile the ABI test. Broken host glibc?" - STAT=0 - fi - rm -f "${T}/check-ia32-emulation.elf32" - eend $STAT - [[ $STAT -eq 0 ]] || die "CONFIG_IA32_EMULATION must be enabled in the kernel to compile a multilib glibc." - fi - - fi - - # When we actually have to compile something... - if ! just_headers ; then - ebegin "Checking gcc for __thread support" - if ! eend $(want__thread ; echo $?) ; then - echo - eerror "Could not find a gcc that supports the __thread directive!" - eerror "Please update your binutils/gcc and try again." - die "No __thread support in gcc!" - fi - - if [[ ${CTARGET} == *-linux* ]] ; then - local run_kv build_kv want_kv - - run_kv=$(g_get_running_KV) - build_kv=$(g_int_to_KV $(get_kheader_version)) - want_kv=${MIN_KERN_VER} - - if ! is_crosscompile && ! tc-is-cross-compiler ; then - # Building fails on an non-supporting kernel - ebegin "Checking running kernel version (${run_kv} >= ${want_kv})" - if ! eend_KV ${run_kv} ${want_kv} ; then - echo - eerror "You need a kernel of at least ${want_kv}!" - die "Kernel version too low!" - fi - fi - - ebegin "Checking linux-headers version (${build_kv} >= ${want_kv})" - if ! eend_KV ${build_kv} ${want_kv} ; then - echo - eerror "You need linux-headers of at least ${want_kv}!" - die "linux-headers version too low!" - fi - fi - fi -} - -# -# the phases -# - -# pkg_pretend - -pkg_pretend() { - # All the checks... - einfo "Checking general environment sanity." - sanity_prechecks -} - -pkg_setup() { - # see bug 682570 - [[ -z ${BOOTSTRAP_RAP} ]] && python-any-r1_pkg_setup -} - -# src_unpack - -src_unpack() { - # Consistency is not guaranteed between pkg_ and src_ ... - sanity_prechecks - - use multilib && unpack gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}.tar.xz - - setup_env - - if [[ -n ${EGIT_REPO_URI} ]] ; then - git-r3_src_unpack - else - unpack ${P}.tar.xz - fi - - cd "${WORKDIR}" || die - unpack glibc-${RELEASE_VER}-patches-${PATCH_VER}.tar.xz -} - -src_prepare() { - if ! use vanilla ; then - elog "Applying Gentoo Glibc Patchset ${RELEASE_VER}-${PATCH_VER}" - eapply "${WORKDIR}"/patches - einfo "Done." - fi - - default - - gnuconfig_update - - cd "${WORKDIR}" - find . -name configure -exec touch {} + - - eprefixify extra/locale/locale-gen - - # Fix permissions on some of the scripts. - chmod u+x "${S}"/scripts/*.sh - - cd "${S}" -} - -glibc_do_configure() { - # Glibc does not work with gold (for various reasons) #269274. - tc-ld-disable-gold - - # CXX isnt handled by the multilib system, so if we dont unset here - # we accumulate crap across abis - unset CXX - - einfo "Configuring glibc for nptl" - - if use doc ; then - export MAKEINFO=makeinfo - else - export MAKEINFO=/dev/null - fi - - local v - for v in ABI CBUILD CHOST CTARGET CBUILD_OPT CTARGET_OPT CC CXX LD {AS,C,CPP,CXX,LD}FLAGS MAKEINFO ; do - einfo " $(printf '%15s' ${v}:) ${!v}" - done - - # CFLAGS can contain ABI-specific flags like -mfpu=neon, see bug #657760 - # To build .S (assembly) files with the same ABI-specific flags - # upstream currently recommends adding CFLAGS to CC/CXX: - # https://sourceware.org/PR23273 - # Note: Passing CFLAGS via CPPFLAGS overrides glibc's arch-specific CFLAGS - # and breaks multiarch support. See 659030#c3 for an example. - # The glibc configure script doesn't properly use LDFLAGS all the time. - export CC="$(tc-getCC ${CTARGET}) ${CFLAGS} ${LDFLAGS}" - einfo " $(printf '%15s' 'Manual CC:') ${CC}" - - # Some of the tests are written in C++, so we need to force our multlib abis in, bug 623548 - export CXX="$(tc-getCXX ${CTARGET}) $(get_abi_CFLAGS) ${CFLAGS}" - - if is_crosscompile; then - # Assume worst-case bootstrap: glibc is buil first time - # when ${CTARGET}-g++ is not available yet. We avoid - # building auxiliary programs that require C++: bug #683074 - # It should not affect final result. - export libc_cv_cxx_link_ok=no - # The line above has the same effect. We set CXX explicitly - # to make build logs less confusing. - export CXX= - fi - einfo " $(printf '%15s' 'Manual CXX:') ${CXX}" - - echo - - local myconf=() - - case ${CTARGET} in - m68k*) - # setjmp() is not compatible with stack protection: - # https://sourceware.org/PR24202 - myconf+=( --enable-stack-protector=no ) - ;; - powerpc-*) - # Currently gcc on powerpc32 generates invalid code for - # __builtin_return_address(0) calls. Normally programs - # don't do that but malloc hooks in glibc do: - # https://gcc.gnu.org/PR81996 - # https://bugs.gentoo.org/629054 - myconf+=( --enable-stack-protector=no ) - ;; - *) - myconf+=( --enable-stack-protector=$(usex ssp all no) ) - ;; - esac - myconf+=( --enable-stackguard-randomization ) - - # Keep a whitelist of targets supporing IFUNC. glibc's ./configure - # is not robust enough to detect proper support: - # https://bugs.gentoo.org/641216 - # https://sourceware.org/PR22634#c0 - case $(tc-arch ${CTARGET}) in - # Keep whitelist of targets where autodetection mostly works. - amd64|x86|sparc|ppc|ppc64|arm|arm64|s390) ;; - # Blacklist everywhere else - *) myconf+=( libc_cv_ld_gnu_indirect_function=no ) ;; - esac - - # Enable Intel Control-flow Enforcement Technology on amd64 if requested - case ${CTARGET} in - x86_64-*) myconf+=( $(use_enable cet) ) ;; - *) ;; - esac - - [[ $(tc-is-softfloat) == "yes" ]] && myconf+=( --without-fp ) - - myconf+=( --enable-kernel=${MIN_KERN_VER} ) - - # Since SELinux support is only required for nscd, only enable it if: - # 1. USE selinux - # 2. only for the primary ABI on multilib systems - # 3. Not a crosscompile - if ! is_crosscompile && use selinux ; then - if use multilib ; then - if is_final_abi ; then - myconf+=( --with-selinux ) - else - myconf+=( --without-selinux ) - fi - else - myconf+=( --with-selinux ) - fi - else - myconf+=( --without-selinux ) - fi - - # Force a few tests where we always know the answer but - # configure is incapable of finding it. - if is_crosscompile ; then - export \ - libc_cv_c_cleanup=yes \ - libc_cv_forced_unwind=yes - fi - - myconf+=( - --without-cvs - --disable-werror - --enable-bind-now - --build=${CBUILD_OPT:-${CBUILD}} - --host=${CTARGET_OPT:-${CTARGET}} - $(use_enable profile) - $(use_with gd) - --with-headers=$(alt_build_headers) - --prefix="$(host_eprefix)/usr" - --sysconfdir="$(host_eprefix)/etc" - --localstatedir="$(host_eprefix)/var" - --libdir='$(prefix)'/$(get_libdir) - --mandir='$(prefix)'/share/man - --infodir='$(prefix)'/share/info - --libexecdir='$(libdir)'/misc/glibc - --with-bugurl=https://bugs.gentoo.org/ - --with-pkgversion="$(glibc_banner)" - $(use_multiarch || echo --disable-multi-arch) - $(use_enable systemtap) - $(use_enable nscd) - ${EXTRA_ECONF} - ) - - # We rely on sys-libs/timezone-data for timezone tools normally. - myconf+=( $(use_enable vanilla timezone-tools) ) - - # These libs don't have configure flags. - ac_cv_lib_audit_audit_log_user_avc_message=$(usex audit || echo no) - ac_cv_lib_cap_cap_init=$(usex caps || echo no) - - # There is no configure option for this and we need to export it - # since the glibc build will re-run configure on itself - export libc_cv_rootsbindir="$(host_eprefix)/sbin" - export libc_cv_slibdir="$(host_eprefix)/$(get_libdir)" - - # We take care of patching our binutils to use both hash styles, - # and many people like to force gnu hash style only, so disable - # this overriding check. #347761 - export libc_cv_hashstyle=no - - local builddir=$(builddir nptl) - mkdir -p "${builddir}" - cd "${builddir}" - set -- "${S}"/configure "${myconf[@]}" - echo "$@" - "$@" || die "failed to configure glibc" - - # ia64 static cross-compilers are a pita in so much that they - # can't produce static ELFs (as the libgcc.a is broken). so - # disable building of the programs for those targets if it - # doesn't work. - # XXX: We could turn this into a compiler test, but ia64 is - # the only one that matters, so this should be fine for now. - if is_crosscompile && [[ ${CTARGET} == ia64* ]] ; then - sed -i '1i+link-static = touch $@' config.make - fi - - # If we're trying to migrate between ABI sets, we need - # to lie and use a local copy of gcc. Like if the system - # is built with MULTILIB_ABIS="amd64 x86" but we want to - # add x32 to it, gcc/glibc don't yet support x32. - # - if [[ -n ${GCC_BOOTSTRAP_VER} ]] && use multilib ; then - echo 'main(){}' > "${T}"/test.c - if ! $(tc-getCC ${CTARGET}) ${CFLAGS} ${LDFLAGS} "${T}"/test.c -Wl,-emain -lgcc 2>/dev/null ; then - sed -i -e '/^CC = /s:$: -B$(objdir)/../'"gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}/${ABI}:" config.make || die - fi - fi -} - -glibc_headers_configure() { - export ABI=default - - local builddir=$(builddir "headers") - mkdir -p "${builddir}" - cd "${builddir}" - - # if we don't have a compiler yet, we can't really test it now ... - # hopefully they don't affect header generation, so let's hope for - # the best here ... - local v vars=( - ac_cv_header_cpuid_h=yes - libc_cv_{386,390,alpha,arm,hppa,ia64,mips,{powerpc,sparc}{,32,64},sh,x86_64}_tls=yes - libc_cv_asm_cfi_directives=yes - libc_cv_broken_visibility_attribute=no - libc_cv_c_cleanup=yes - libc_cv_compiler_powerpc64le_binary128_ok=yes - libc_cv_forced_unwind=yes - libc_cv_gcc___thread=yes - libc_cv_mlong_double_128=yes - libc_cv_mlong_double_128ibm=yes - libc_cv_ppc_machine=yes - libc_cv_ppc_rel16=yes - libc_cv_predef_fortify_source=no - libc_cv_target_power8_ok=yes - libc_cv_visibility_attribute=yes - libc_cv_z_combreloc=yes - libc_cv_z_execstack=yes - libc_cv_z_initfirst=yes - libc_cv_z_nodelete=yes - libc_cv_z_nodlopen=yes - libc_cv_z_relro=yes - libc_mips_abi=${ABI} - libc_mips_float=$([[ $(tc-is-softfloat) == "yes" ]] && echo soft || echo hard) - # These libs don't have configure flags. - ac_cv_lib_audit_audit_log_user_avc_message=no - ac_cv_lib_cap_cap_init=no - ) - - einfo "Forcing cached settings:" - for v in "${vars[@]}" ; do - einfo " ${v}" - export ${v} - done - - local headers_only_arch_CPPFLAGS=() - - # Blow away some random CC settings that screw things up. #550192 - if [[ -d ${S}/sysdeps/mips ]]; then - pushd "${S}"/sysdeps/mips >/dev/null - sed -i -e '/^CC +=/s:=.*:= -D_MIPS_SZPTR=32:' mips32/Makefile mips64/n32/Makefile || die - sed -i -e '/^CC +=/s:=.*:= -D_MIPS_SZPTR=64:' mips64/n64/Makefile || die - - # Force the mips ABI to the default. This is OK because the set of - # installed headers in this phase is the same between the 3 ABIs. - # If this ever changes, this hack will break, but that's unlikely - # as glibc discourages that behavior. - # https://crbug.com/647033 - sed -i -e 's:abiflag=.*:abiflag=_ABIO32:' preconfigure || die - - popd >/dev/null - fi - - case ${CTARGET} in - riscv*) - # RISC-V interrogates the compiler to determine which target to - # build. If building the headers then we don't strictly need a - # RISC-V compiler, so the built-in definitions that are provided - # along with all RISC-V compiler might not exist. This causes - # glibc's RISC-V preconfigure script to blow up. Since we're just - # building the headers any value will actually work here, so just - # pick the standard one (rv64g/lp64d) to make the build scripts - # happy for now -- the headers are all the same anyway so it - # doesn't matter. - headers_only_arch_CPPFLAGS+=( - -D__riscv_xlen=64 - -D__riscv_flen=64 - -D__riscv_float_abi_double=1 - -D__riscv_atomic=1 - ) ;; - esac - - local myconf=() - myconf+=( - --disable-sanity-checks - --enable-hacker-mode - --without-cvs - --disable-werror - --enable-bind-now - --build=${CBUILD_OPT:-${CBUILD}} - --host=${CTARGET_OPT:-${CTARGET}} - --with-headers=$(alt_build_headers) - --prefix="$(host_eprefix)/usr" - ${EXTRA_ECONF} - ) - - # Nothing is compiled here which would affect the headers for the target. - # So forcing CC/CFLAGS is sane. - local headers_only_CC=$(tc-getBUILD_CC) - local headers_only_CFLAGS="-O1 -pipe" - local headers_only_CPPFLAGS="-U_FORTIFY_SOURCE ${headers_only_arch_CPPFLAGS[*]}" - local headers_only_LDFLAGS="" - set -- "${S}"/configure "${myconf[@]}" - echo \ - "CC=${headers_only_CC}" \ - "CFLAGS=${headers_only_CFLAGS}" \ - "CPPFLAGS=${headers_only_CPPFLAGS}" \ - "LDFLAGS=${headers_only_LDFLAGS}" \ - "$@" - CC=${headers_only_CC} \ - CFLAGS=${headers_only_CFLAGS} \ - CPPFLAGS=${headers_only_CPPFLAGS} \ - LDFLAGS="" \ - "$@" || die "failed to configure glibc" -} - -do_src_configure() { - if just_headers ; then - glibc_headers_configure - else - glibc_do_configure nptl - fi -} - -src_configure() { - foreach_abi do_src_configure -} - -do_src_compile() { - emake -C "$(builddir nptl)" -} - -src_compile() { - if just_headers ; then - return - fi - - foreach_abi do_src_compile -} - -glibc_src_test() { - cd "$(builddir nptl)" - emake check -} - -do_src_test() { - local ret=0 - - glibc_src_test - : $(( ret |= $? )) - - return ${ret} -} - -src_test() { - if just_headers ; then - return - fi - - # Give tests more time to complete. - export TIMEOUTFACTOR=5 - - foreach_abi do_src_test || die "tests failed" -} - -run_locale_gen() { - # if the host locales.gen contains no entries, we'll install everything - local root="$1" - local locale_list="${root}/etc/locale.gen" - if [[ -z $(locale-gen --list --config "${locale_list}") ]] ; then - ewarn "Generating all locales; edit /etc/locale.gen to save time/space" - locale_list="${root}/usr/share/i18n/SUPPORTED" - fi - - locale-gen --jobs $(makeopts_jobs) --config "${locale_list}" \ - --destdir "${root}" -} - -glibc_do_src_install() { - local builddir=$(builddir nptl) - cd "${builddir}" - - emake install_root="${D}$(build_eprefix)$(alt_prefix)" install - - # This version (2.26) provides some compatibility libraries for the NIS/NIS+ support - # which come without headers etc. Only needed for binary packages since the - # external net-libs/libnsl has increased soversion. Keep only versioned libraries. - find "${D}" -name "libnsl.a" -delete - find "${D}" -name "libnsl.so" -delete - - # Normally upstream_pv is ${PV}. Live ebuilds are exception, there we need - # to infer upstream version: - # '#define VERSION "2.26.90"' -> '2.26.90' - local upstream_pv=$(sed -n -r 's/#define VERSION "(.*)"/\1/p' "${S}"/version.h) - - if [[ -e ${ED}$(alt_usrlibdir)/libm-${upstream_pv}.a ]] ; then - # Move versioned .a file out of libdir to evade portage QA checks - # instead of using gen_usr_ldscript(). We fix ldscript as: - # "GROUP ( /usr/lib64/libm-.a ..." -> "GROUP ( /usr/lib64/glibc-/libm-.a ..." - sed -i "s@\(libm-${upstream_pv}.a\)@${P}/\1@" "${ED}"$(alt_usrlibdir)/libm.a || die - dodir $(alt_usrlibdir)/${P} - mv "${ED}"$(alt_usrlibdir)/libm-${upstream_pv}.a "${ED}"$(alt_usrlibdir)/${P}/libm-${upstream_pv}.a || die - fi - - # We'll take care of the cache ourselves - rm -f "${ED}"/etc/ld.so.cache - - # Everything past this point just needs to be done once ... - is_final_abi || return 0 - - # Make sure the non-native interp can be found on multilib systems even - # if the main library set isn't installed into the right place. Maybe - # we should query the active gcc for info instead of hardcoding it ? - local i ldso_abi ldso_name - local ldso_abi_list=( - # x86 - amd64 /lib64/ld-linux-x86-64.so.2 - x32 /libx32/ld-linux-x32.so.2 - x86 /lib/ld-linux.so.2 - # mips - o32 /lib/ld.so.1 - n32 /lib32/ld.so.1 - n64 /lib64/ld.so.1 - # powerpc - ppc /lib/ld.so.1 - ppc64 /lib64/ld64.so.1 - # riscv - lp64d /lib/ld-linux-riscv64-lp64d.so.1 - lp64 /lib/ld-linux-riscv64-lp64.so.1 - # s390 - s390 /lib/ld.so.1 - s390x /lib/ld64.so.1 - # sparc - sparc32 /lib/ld-linux.so.2 - sparc64 /lib64/ld-linux.so.2 - ) - case $(tc-endian) in - little) - ldso_abi_list+=( - # arm - arm64 /lib/ld-linux-aarch64.so.1 - ) - ;; - big) - ldso_abi_list+=( - # arm - arm64 /lib/ld-linux-aarch64_be.so.1 - ) - ;; - esac - if [[ ${SYMLINK_LIB} == "yes" ]] && [[ ! -e ${ED}/$(alt_prefix)/lib ]] ; then - dosym $(get_abi_LIBDIR ${DEFAULT_ABI}) $(alt_prefix)/lib - fi - for (( i = 0; i < ${#ldso_abi_list[@]}; i += 2 )) ; do - ldso_abi=${ldso_abi_list[i]} - has ${ldso_abi} $(get_install_abis) || continue - - ldso_name="$(alt_prefix)${ldso_abi_list[i+1]}" - if [[ ! -L ${ED}/${ldso_name} && ! -e ${ED}/${ldso_name} ]] ; then - dosym ../$(get_abi_LIBDIR ${ldso_abi})/${ldso_name##*/} ${ldso_name} - fi - done - - # With devpts under Linux mounted properly, we do not need the pt_chown - # binary to be setuid. This is because the default owners/perms will be - # exactly what we want. - if ! use suid ; then - find "${ED}" -name pt_chown -exec chmod -s {} + - fi - - ################################################################# - # EVERYTHING AFTER THIS POINT IS FOR NATIVE GLIBC INSTALLS ONLY # - # Make sure we install some symlink hacks so that when we build - # a 2nd stage cross-compiler, gcc finds the target system - # headers correctly. See gcc/doc/gccinstall.info - if is_crosscompile ; then - # We need to make sure that /lib and /usr/lib always exists. - # gcc likes to use relative paths to get to its multilibs like - # /usr/lib/../lib64/. So while we don't install any files into - # /usr/lib/, we do need it to exist. - keepdir $(alt_prefix)/lib - keepdir $(alt_prefix)/usr/lib - - dosym usr/include $(alt_prefix)/sys-include - return 0 - fi - - # Files for Debian-style locale updating - dodir /usr/share/i18n - sed \ - -e "/^#/d" \ - -e "/SUPPORTED-LOCALES=/d" \ - -e "s: \\\\::g" -e "s:/: :g" \ - "${S}"/localedata/SUPPORTED > "${ED}"/usr/share/i18n/SUPPORTED \ - || die "generating /usr/share/i18n/SUPPORTED failed" - cd "${WORKDIR}"/extra/locale - dosbin locale-gen - doman *.[0-8] - insinto /etc - doins locale.gen - - # Make sure all the ABI's can find the locales and so we only - # have to generate one set - local a - keepdir /usr/$(get_libdir)/locale - for a in $(get_install_abis) ; do - if [[ ! -e ${ED}/usr/$(get_abi_LIBDIR ${a})/locale ]] ; then - dosym ../$(get_libdir)/locale /usr/$(get_abi_LIBDIR ${a})/locale - fi - done - - # HACK: If we're building for riscv, we need to additionally make sure that - # we can find the locale archive afterwards - case ${CTARGET} in - riscv*) - if [[ ! -e ${ED}/usr/lib/locale ]] ; then - dosym ../$(get_libdir)/locale /usr/lib/locale - fi - ;; - *) ;; - esac - - cd "${S}" - - # Install misc network config files - insinto /etc - doins nscd/nscd.conf posix/gai.conf nss/nsswitch.conf - doins "${WORKDIR}"/extra/etc/*.conf - - if use nscd ; then - doinitd "$(prefixify_ro "${WORKDIR}"/extra/etc/nscd)" - - local nscd_args=( - -e "s:@PIDFILE@:$(strings "${ED}"/usr/sbin/nscd | grep nscd.pid):" - ) - - sed -i "${nscd_args[@]}" "${ED}"/etc/init.d/nscd - - systemd_dounit nscd/nscd.service - systemd_newtmpfilesd nscd/nscd.tmpfiles nscd.conf - else - # Do this since extra/etc/*.conf above might have nscd.conf. - rm -f "${ED}"/etc/nscd.conf - fi - - echo 'LDPATH="include ld.so.conf.d/*.conf"' > "${T}"/00glibc - doenvd "${T}"/00glibc - - for d in BUGS ChangeLog CONFORMANCE FAQ NEWS NOTES PROJECTS README* ; do - [[ -s ${d} ]] && dodoc ${d} - done - dodoc -r ChangeLog.old - - # Prevent overwriting of the /etc/localtime symlink. We'll handle the - # creation of the "factory" symlink in pkg_postinst(). - rm -f "${ED}"/etc/localtime - - # Generate all locales if this is a native build as locale generation - if use compile-locales && ! is_crosscompile ; then - run_locale_gen "${ED}" - fi -} - -glibc_headers_install() { - local builddir=$(builddir "headers") - cd "${builddir}" - emake install_root="${D}$(build_eprefix)$(alt_prefix)" install-headers - - insinto $(alt_headers)/gnu - doins "${S}"/include/gnu/stubs.h - - # Make sure we install the sys-include symlink so that when - # we build a 2nd stage cross-compiler, gcc finds the target - # system headers correctly. See gcc/doc/gccinstall.info - dosym usr/include $(alt_prefix)/sys-include -} - -src_install() { - if just_headers ; then - export ABI=default - glibc_headers_install - return - fi - - foreach_abi glibc_do_src_install -} - -# Simple test to make sure our new glibc isn't completely broken. -# Make sure we don't test with statically built binaries since -# they will fail. Also, skip if this glibc is a cross compiler. -# -# If coreutils is built with USE=multicall, some of these files -# will just be wrapper scripts, not actual ELFs we can test. -glibc_sanity_check() { - cd / #228809 - - # We enter ${ED} so to avoid trouble if the path contains - # special characters; for instance if the path contains the - # colon character (:), then the linker will try to split it - # and look for the libraries in an unexpected place. This can - # lead to unsafe code execution if the generated prefix is - # within a world-writable directory. - # (e.g. /var/tmp/portage:${HOSTNAME}) - pushd "${ED}"/$(get_libdir) >/dev/null - - local x striptest - for x in cal date env free ls true uname uptime ; do - x=$(type -p ${x}) - [[ -z ${x} || ${x} != ${EPREFIX}/* ]] && continue - striptest=$(LC_ALL="C" file -L ${x} 2>/dev/null) || continue - case ${striptest} in - *"statically linked"*) continue;; - *"ASCII text"*) continue;; - esac - # We need to clear the locale settings as the upgrade might want - # incompatible locale data. This test is not for verifying that. - LC_ALL=C \ - ./ld-*.so --library-path . ${x} > /dev/null \ - || die "simple run test (${x}) failed" - done - - popd >/dev/null -} - -pkg_preinst() { - # nothing to do if just installing headers - just_headers && return - - # prepare /etc/ld.so.conf.d/ for files - mkdir -p "${EROOT}"/etc/ld.so.conf.d - - # Default /etc/hosts.conf:multi to on for systems with small dbs. - if [[ $(wc -l < "${EROOT}"/etc/hosts) -lt 1000 ]] ; then - sed -i '/^multi off/s:off:on:' "${ED}"/etc/host.conf - einfo "Defaulting /etc/host.conf:multi to on" - fi - - [[ ${ROOT} != "/" ]] && return 0 - [[ -d ${ED}/$(get_libdir) ]] || return 0 - [[ -z ${BOOTSTRAP_RAP} ]] && glibc_sanity_check -} - -pkg_postinst() { - # nothing to do if just installing headers - just_headers && return - - if ! tc-is-cross-compiler && [[ -x ${EROOT}/usr/sbin/iconvconfig ]] ; then - # Generate fastloading iconv module configuration file. - "${EROOT}"/usr/sbin/iconvconfig --prefix="${ROOT}" - fi - - if ! is_crosscompile && [[ ${ROOT} == "/" ]] ; then - use compile-locales || run_locale_gen "${EROOT}" - fi - - # Check for sanity of /etc/nsswitch.conf, take 2 - if [[ -e ${EROOT}/etc/nsswitch.conf ]] && ! has_version sys-auth/libnss-nis ; then - local entry - for entry in passwd group shadow; do - if egrep -q "^[ \t]*${entry}:.*nis" "${EROOT}"/etc/nsswitch.conf; then - ewarn "" - ewarn "Your ${EROOT}/etc/nsswitch.conf uses NIS. Support for that has been" - ewarn "removed from glibc and is now provided by the package" - ewarn " sys-auth/libnss-nis" - ewarn "Install it now to keep your NIS setup working." - ewarn "" - fi - done - fi -} diff --git a/sys-libs/glibc/glibc-2.29-r7.ebuild b/sys-libs/glibc/glibc-2.29-r7.ebuild index 18e819210555..8b75be92edba 100644 --- a/sys-libs/glibc/glibc-2.29-r7.ebuild +++ b/sys-libs/glibc/glibc-2.29-r7.ebuild @@ -19,7 +19,7 @@ if [[ ${PV} == 9999* ]]; then EGIT_REPO_URI="https://sourceware.org/git/glibc.git" inherit git-r3 else - KEYWORDS="~alpha amd64 arm arm64 hppa ia64 ~m68k ~mips ppc ppc64 ~riscv s390 ~sh sparc x86" + KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv s390 sparc x86" SRC_URI="mirror://gnu/glibc/${P}.tar.xz" fi @@ -89,7 +89,6 @@ BDEPEND=" >=app-misc/pax-utils-0.1.10 sys-devel/bison !' | $(tc-getCPP ${CTARGET}) ${CFLAGS} 2>&1 | grep -o '[^"]*linux/version.h') + ALT_BUILD_HEADERS=${header_path%/linux/version.h} + fi + fi + fi + echo "${ALT_BUILD_HEADERS}" +} + +alt_libdir() { + echo $(alt_prefix)/$(get_libdir) +} +alt_usrlibdir() { + echo $(alt_prefix)/usr/$(get_libdir) +} + +builddir() { + echo "${WORKDIR}/build-${ABI}-${CTARGET}-$1" +} + +do_compile_test() { + local ret save_cflags=${CFLAGS} + CFLAGS+=" $1" + shift + + pushd "${T}" >/dev/null + + rm -f glibc-test* + printf '%b' "$*" > glibc-test.c + + nonfatal emake -s glibc-test + ret=$? + + popd >/dev/null + + CFLAGS=${save_cflags} + return ${ret} +} + +do_run_test() { + local ret + + if [[ ${MERGE_TYPE} == "binary" ]] ; then + # ignore build failures when installing a binary package #324685 + do_compile_test "" "$@" 2>/dev/null || return 0 + else + if ! do_compile_test "" "$@" ; then + ewarn "Simple build failed ... assuming this is desired #324685" + return 0 + fi + fi + + pushd "${T}" >/dev/null + + ./glibc-test + ret=$? + rm -f glibc-test* + + popd >/dev/null + + return ${ret} +} + +setup_target_flags() { + # This largely mucks with compiler flags. None of which should matter + # when building up just the headers. + just_headers && return 0 + + case $(tc-arch) in + x86) + # -march needed for #185404 #199334 + # TODO: When creating the first glibc cross-compile, this test will + # always fail as it does a full link which in turn requires glibc. + # Probably also applies when changing multilib profile settings (e.g. + # enabling x86 when the profile was amd64-only previously). + # We could change main to _start and pass -nostdlib here so that we + # only test the gcc code compilation. Or we could do a compile and + # then look for the symbol via scanelf. + if ! do_compile_test "" 'void f(int i, void *p) {if (__sync_fetch_and_add(&i, 1)) f(i, p);}\nint main(){return 0;}\n' 2>/dev/null ; then + local t=${CTARGET_OPT:-${CTARGET}} + t=${t%%-*} + filter-flags '-march=*' + export CFLAGS="-march=${t} ${CFLAGS}" + einfo "Auto adding -march=${t} to CFLAGS #185404" + fi + ;; + amd64) + # -march needed for #185404 #199334 + # Note: This test only matters when the x86 ABI is enabled, so we could + # optimize a bit and elide it. + # TODO: See cross-compile issues listed above for x86. + if ! do_compile_test "${CFLAGS_x86}" 'void f(int i, void *p) {if (__sync_fetch_and_add(&i, 1)) f(i, p);}\nint main(){return 0;}\n' 2>/dev/null ; then + local t=${CTARGET_OPT:-${CTARGET}} + t=${t%%-*} + # Normally the target is x86_64-xxx, so turn that into the -march that + # gcc actually accepts. #528708 + [[ ${t} == "x86_64" ]] && t="x86-64" + filter-flags '-march=*' + # ugly, ugly, ugly. ugly. + CFLAGS_x86=$(CFLAGS=${CFLAGS_x86} filter-flags '-march=*'; echo "${CFLAGS}") + export CFLAGS_x86="${CFLAGS_x86} -march=${t}" + einfo "Auto adding -march=${t} to CFLAGS_x86 #185404" + fi + ;; + mips) + # The mips abi cannot support the GNU style hashes. #233233 + filter-ldflags -Wl,--hash-style=gnu -Wl,--hash-style=both + ;; + sparc) + # Both sparc and sparc64 can use -fcall-used-g6. -g7 is bad, though. + filter-flags "-fcall-used-g7" + append-flags "-fcall-used-g6" + + local cpu + case ${CTARGET} in + sparc64-*) + cpu="sparc64" + case $(get-flag mcpu) in + v9) + # We need to force at least v9a because the base build doesn't + # work with just v9. + # https://sourceware.org/bugzilla/show_bug.cgi?id=19477 + append-flags "-Wa,-xarch=v9a" + ;; + esac + ;; + sparc-*) + case $(get-flag mcpu) in + v8|supersparc|hypersparc|leon|leon3) + cpu="sparcv8" + ;; + *) + cpu="sparcv9" + ;; + esac + ;; + esac + [[ -n ${cpu} ]] && CTARGET_OPT="${cpu}-${CTARGET#*-}" + ;; + esac +} + +setup_flags() { + # Make sure host make.conf doesn't pollute us + if is_crosscompile || tc-is-cross-compiler ; then + CHOST=${CTARGET} strip-unsupported-flags + fi + + # Store our CFLAGS because it's changed depending on which CTARGET + # we are building when pulling glibc on a multilib profile + CFLAGS_BASE=${CFLAGS_BASE-${CFLAGS}} + CFLAGS=${CFLAGS_BASE} + CXXFLAGS_BASE=${CXXFLAGS_BASE-${CXXFLAGS}} + CXXFLAGS=${CXXFLAGS_BASE} + ASFLAGS_BASE=${ASFLAGS_BASE-${ASFLAGS}} + ASFLAGS=${ASFLAGS_BASE} + + # Over-zealous CFLAGS can often cause problems. What may work for one + # person may not work for another. To avoid a large influx of bugs + # relating to failed builds, we strip most CFLAGS out to ensure as few + # problems as possible. + strip-flags + strip-unsupported-flags + filter-flags -m32 -m64 '-mabi=*' + + # glibc aborts if rpath is set by LDFLAGS + filter-ldflags '-Wl,-rpath=*' + + # #492892 + filter-flags -frecord-gcc-switches + + unset CBUILD_OPT CTARGET_OPT + if use multilib ; then + CTARGET_OPT=$(get_abi_CTARGET) + [[ -z ${CTARGET_OPT} ]] && CTARGET_OPT=$(get_abi_CHOST) + fi + + setup_target_flags + + if [[ -n ${CTARGET_OPT} && ${CBUILD} == ${CHOST} ]] && ! is_crosscompile; then + CBUILD_OPT=${CTARGET_OPT} + fi + + # Lock glibc at -O2; we want to be conservative here. + # -fno-strict-aliasing is to work around #155906. + filter-flags '-O?' + append-flags -O2 -fno-strict-aliasing + + filter-flags '-fstack-protector*' +} + +want_tls() { + # Archs that can use TLS (Thread Local Storage) + case $(tc-arch) in + x86) + # requires i486 or better #106556 + [[ ${CTARGET} == i[4567]86* ]] && return 0 + return 1 + ;; + esac + return 0 +} + +want__thread() { + want_tls || return 1 + + # For some reason --with-tls --with__thread is causing segfaults on sparc32. + [[ ${PROFILE_ARCH} == "sparc" ]] && return 1 + + [[ -n ${WANT__THREAD} ]] && return ${WANT__THREAD} + + # only test gcc -- can't test linking yet + tc-has-tls -c ${CTARGET} + WANT__THREAD=$? + + return ${WANT__THREAD} +} + +use_multiarch() { + # Allow user to disable runtime arch detection in multilib. + use multiarch || return 1 + # Make sure binutils is new enough to support indirect functions, + # #336792. This funky sed supports gold and bfd linkers. + local bver nver + bver=$($(tc-getLD ${CTARGET}) -v | sed -n -r '1{s:[^0-9]*::;s:^([0-9.]*).*:\1:;p}') + case $(tc-arch ${CTARGET}) in + amd64|x86) nver="2.20" ;; + arm) nver="2.22" ;; + hppa) nver="2.23" ;; + ppc|ppc64) nver="2.20" ;; + # ifunc support was added in 2.23, but glibc also needs + # machinemode which is in 2.24. + s390) nver="2.24" ;; + sparc) nver="2.21" ;; + *) return 1 ;; + esac + ver_test ${bver} -ge ${nver} +} + +# Setup toolchain variables that had historically been defined in the +# profiles for these archs. +setup_env() { + # silly users + unset LD_RUN_PATH + unset LD_ASSUME_KERNEL + + if is_crosscompile || tc-is-cross-compiler ; then + multilib_env ${CTARGET_OPT:-${CTARGET}} + + if ! use multilib ; then + MULTILIB_ABIS=${DEFAULT_ABI} + else + MULTILIB_ABIS=${MULTILIB_ABIS:-${DEFAULT_ABI}} + fi + + # If the user has CFLAGS_ in their make.conf, use that, + # and fall back on CFLAGS. + local VAR=CFLAGS_${CTARGET//[-.]/_} + CFLAGS=${!VAR-${CFLAGS}} + einfo " $(printf '%15s' 'Manual CFLAGS:') ${CFLAGS}" + fi + + setup_flags + + export ABI=${ABI:-${DEFAULT_ABI:-default}} + + if just_headers ; then + # Avoid mixing host's CC and target's CFLAGS_${ABI}: + # At this bootstrap stage we have only binutils for + # target but not compiler yet. + einfo "Skip CC ABI injection. We can't use (cross-)compiler yet." + return 0 + fi + local VAR=CFLAGS_${ABI} + # We need to export CFLAGS with abi information in them because glibc's + # configure script checks CFLAGS for some targets (like mips). Keep + # around the original clean value to avoid appending multiple ABIs on + # top of each other. + : ${__GLIBC_CC:=$(tc-getCC ${CTARGET})} + export __GLIBC_CC CC="${__GLIBC_CC} ${!VAR}" + einfo " $(printf '%15s' 'Manual CC:') ${CC}" +} + +foreach_abi() { + setup_env + + local ret=0 + local abilist="" + if use multilib ; then + abilist=$(get_install_abis) + else + abilist=${DEFAULT_ABI} + fi + local -x ABI + for ABI in ${abilist:-default} ; do + setup_env + einfo "Running $1 for ABI ${ABI}" + $1 + : $(( ret |= $? )) + done + return ${ret} +} + +glibc_banner() { + local b="Gentoo ${PVR}" + [[ -n ${PATCH_VER} ]] && ! use vanilla && b+=" p${PATCH_VER}" + echo "${b}" +} + +check_devpts() { + # Make sure devpts is mounted correctly for use w/out setuid pt_chown. + + # If merely building the binary package, then there's nothing to verify. + [[ ${MERGE_TYPE} == "buildonly" ]] && return + + # Only sanity check when installing the native glibc. + [[ -n ${ROOT} ]] && return + + # If they're opting in to the old suid code, then no need to check. + use suid && return + + if awk '$3 == "devpts" && $4 ~ /[, ]gid=5[, ]/ { exit 1 }' /proc/mounts ; then + eerror "In order to use glibc with USE=-suid, you must make sure that" + eerror "you have devpts mounted at /dev/pts with the gid=5 option." + eerror "Openrc should do this for you, so you should check /etc/fstab" + eerror "and make sure you do not have any invalid settings there." + die "mount & fix your /dev/pts settings" + fi +} + +# The following Kernel version handling functions are mostly copied from portage +# source. It's better not to use linux-info.eclass here since a) it adds too +# much magic, see bug 326693 for some of the arguments, and b) some of the +# functions are just not provided. + +g_get_running_KV() { + uname -r + return $? +} + +g_KV_major() { + [[ -z $1 ]] && return 1 + local KV=$@ + echo "${KV%%.*}" +} + +g_KV_minor() { + [[ -z $1 ]] && return 1 + local KV=$@ + KV=${KV#*.} + echo "${KV%%.*}" +} + +g_KV_micro() { + [[ -z $1 ]] && return 1 + local KV=$@ + KV=${KV#*.*.} + echo "${KV%%[^[:digit:]]*}" +} + +g_KV_to_int() { + [[ -z $1 ]] && return 1 + local KV_MAJOR=$(g_KV_major "$1") + local KV_MINOR=$(g_KV_minor "$1") + local KV_MICRO=$(g_KV_micro "$1") + local KV_int=$(( KV_MAJOR * 65536 + KV_MINOR * 256 + KV_MICRO )) + + # We make version 2.2.0 the minimum version we will handle as + # a sanity check ... if its less, we fail ... + if [[ ${KV_int} -ge 131584 ]] ; then + echo "${KV_int}" + return 0 + fi + return 1 +} + +g_int_to_KV() { + local version=$1 major minor micro + major=$((version / 65536)) + minor=$(((version % 65536) / 256)) + micro=$((version % 256)) + echo ${major}.${minor}.${micro} +} + +eend_KV() { + [[ $(g_KV_to_int $1) -ge $(g_KV_to_int $2) ]] + eend $? +} + +get_kheader_version() { + printf '#include \nLINUX_VERSION_CODE\n' | \ + $(tc-getCPP ${CTARGET}) -I "$(build_eprefix)$(alt_build_headers)" - | \ + tail -n 1 +} + +# We collect all sanity checks here. Consistency is not guranteed between +# pkg_ and src_ phases, so we call this function both in pkg_pretend and in +# src_unpack. +sanity_prechecks() { + # Make sure devpts is mounted correctly for use w/out setuid pt_chown + check_devpts + + # Prevent native builds from downgrading + if [[ ${MERGE_TYPE} != "buildonly" ]] && \ + [[ -z ${ROOT} ]] && \ + [[ ${CBUILD} == ${CHOST} ]] && \ + [[ ${CHOST} == ${CTARGET} ]] ; then + + # The high rev # is to allow people to downgrade between -r# + # versions. We want to block 2.20->2.19, but 2.20-r3->2.20-r2 + # should be fine. Hopefully we never actually use a r# this + # high. + if has_version ">${CATEGORY}/${P}-r10000" ; then + eerror "Sanity check to keep you from breaking your system:" + eerror " Downgrading glibc is not supported and a sure way to destruction." + [[ ${I_ALLOW_TO_BREAK_MY_SYSTEM} = yes ]] || die "Aborting to save your system." + fi + + if ! do_run_test '#include \n#include \nint main(){return syscall(1000)!=-1;}\n' ; then + eerror "Your old kernel is broken. You need to update it to a newer" + eerror "version as syscall() will break. See bug 279260." + die "Old and broken kernel." + fi + fi + + # Users have had a chance to phase themselves, time to give em the boot + if [[ -e ${EROOT}/etc/locale.gen ]] && [[ -e ${EROOT}/etc/locales.build ]] ; then + eerror "You still haven't deleted ${EROOT}/etc/locales.build." + eerror "Do so now after making sure ${EROOT}/etc/locale.gen is kosher." + die "Lazy upgrader detected" + fi + + if [[ ${CTARGET} == i386-* ]] ; then + eerror "i386 CHOSTs are no longer supported." + eerror "Chances are you don't actually want/need i386." + eerror "Please read https://www.gentoo.org/doc/en/change-chost.xml" + die "Please fix your CHOST" + fi + + if [[ -e /proc/xen ]] && [[ $(tc-arch) == "x86" ]] && ! is-flag -mno-tls-direct-seg-refs ; then + ewarn "You are using Xen but don't have -mno-tls-direct-seg-refs in your CFLAGS." + ewarn "This will result in a 50% performance penalty when running with a 32bit" + ewarn "hypervisor, which is probably not what you want." + fi + + # Check for sanity of /etc/nsswitch.conf + if [[ -e ${EROOT}/etc/nsswitch.conf ]] ; then + local entry + for entry in passwd group shadow; do + if ! egrep -q "^[ \t]*${entry}:.*files" "${EROOT}"/etc/nsswitch.conf; then + eerror "Your ${EROOT}/etc/nsswitch.conf is out of date." + eerror "Please make sure you have 'files' entries for" + eerror "'passwd:', 'group:' and 'shadow:' databases." + eerror "For more details see:" + eerror " https://wiki.gentoo.org/wiki/Project:Toolchain/nsswitch.conf_in_glibc-2.26" + die "nsswitch.conf has no 'files' provider in '${entry}'." + fi + done + fi + + # ABI-specific checks follow here. Hey, we have a lot more specific conditions that + # we test for... + if ! is_crosscompile ; then + if use amd64 && use multilib && [[ ${MERGE_TYPE} != "binary" ]] ; then + ebegin "Checking that IA32 emulation is enabled in the running kernel" + echo 'int main(){return 0;}' > "${T}/check-ia32-emulation.c" + local STAT + if "${CC-${CHOST}-gcc}" ${CFLAGS_x86} "${T}/check-ia32-emulation.c" -o "${T}/check-ia32-emulation.elf32"; then + "${T}/check-ia32-emulation.elf32" + STAT=$? + else + # Don't fail here to allow single->multi ABI switch + # or recover from breakage like bug #646424 + ewarn "Failed to compile the ABI test. Broken host glibc?" + STAT=0 + fi + rm -f "${T}/check-ia32-emulation.elf32" + eend $STAT + [[ $STAT -eq 0 ]] || die "CONFIG_IA32_EMULATION must be enabled in the kernel to compile a multilib glibc." + fi + + fi + + # When we actually have to compile something... + if ! just_headers ; then + ebegin "Checking gcc for __thread support" + if ! eend $(want__thread ; echo $?) ; then + echo + eerror "Could not find a gcc that supports the __thread directive!" + eerror "Please update your binutils/gcc and try again." + die "No __thread support in gcc!" + fi + + if [[ ${CTARGET} == *-linux* ]] ; then + local run_kv build_kv want_kv + + run_kv=$(g_get_running_KV) + build_kv=$(g_int_to_KV $(get_kheader_version)) + want_kv=${MIN_KERN_VER} + + if ! is_crosscompile && ! tc-is-cross-compiler ; then + # Building fails on an non-supporting kernel + ebegin "Checking running kernel version (${run_kv} >= ${want_kv})" + if ! eend_KV ${run_kv} ${want_kv} ; then + echo + eerror "You need a kernel of at least ${want_kv}!" + die "Kernel version too low!" + fi + fi + + ebegin "Checking linux-headers version (${build_kv} >= ${want_kv})" + if ! eend_KV ${build_kv} ${want_kv} ; then + echo + eerror "You need linux-headers of at least ${want_kv}!" + die "linux-headers version too low!" + fi + fi + fi +} + +# +# the phases +# + +# pkg_pretend + +pkg_pretend() { + # All the checks... + einfo "Checking general environment sanity." + sanity_prechecks +} + +pkg_setup() { + # see bug 682570 + [[ -z ${BOOTSTRAP_RAP} ]] && python-any-r1_pkg_setup +} + +# src_unpack + +src_unpack() { + # Consistency is not guaranteed between pkg_ and src_ ... + sanity_prechecks + + use multilib && unpack gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}.tar.xz + + setup_env + + if [[ -n ${EGIT_REPO_URI} ]] ; then + git-r3_src_unpack + else + unpack ${P}.tar.xz + fi + + cd "${WORKDIR}" || die + unpack glibc-${RELEASE_VER}-patches-${PATCH_VER}.tar.xz +} + +src_prepare() { + if ! use vanilla ; then + elog "Applying Gentoo Glibc Patchset ${RELEASE_VER}-${PATCH_VER}" + eapply "${WORKDIR}"/patches + einfo "Done." + fi + + default + + gnuconfig_update + + cd "${WORKDIR}" + find . -name configure -exec touch {} + + + eprefixify extra/locale/locale-gen + + # Fix permissions on some of the scripts. + chmod u+x "${S}"/scripts/*.sh + + cd "${S}" +} + +glibc_do_configure() { + # Glibc does not work with gold (for various reasons) #269274. + tc-ld-disable-gold + + # CXX isnt handled by the multilib system, so if we dont unset here + # we accumulate crap across abis + unset CXX + + einfo "Configuring glibc for nptl" + + if use doc ; then + export MAKEINFO=makeinfo + else + export MAKEINFO=/dev/null + fi + + local v + for v in ABI CBUILD CHOST CTARGET CBUILD_OPT CTARGET_OPT CC CXX LD {AS,C,CPP,CXX,LD}FLAGS MAKEINFO ; do + einfo " $(printf '%15s' ${v}:) ${!v}" + done + + # CFLAGS can contain ABI-specific flags like -mfpu=neon, see bug #657760 + # To build .S (assembly) files with the same ABI-specific flags + # upstream currently recommends adding CFLAGS to CC/CXX: + # https://sourceware.org/PR23273 + # Note: Passing CFLAGS via CPPFLAGS overrides glibc's arch-specific CFLAGS + # and breaks multiarch support. See 659030#c3 for an example. + # The glibc configure script doesn't properly use LDFLAGS all the time. + export CC="$(tc-getCC ${CTARGET}) ${CFLAGS} ${LDFLAGS}" + einfo " $(printf '%15s' 'Manual CC:') ${CC}" + + # Some of the tests are written in C++, so we need to force our multlib abis in, bug 623548 + export CXX="$(tc-getCXX ${CTARGET}) $(get_abi_CFLAGS) ${CFLAGS}" + + if is_crosscompile; then + # Assume worst-case bootstrap: glibc is buil first time + # when ${CTARGET}-g++ is not available yet. We avoid + # building auxiliary programs that require C++: bug #683074 + # It should not affect final result. + export libc_cv_cxx_link_ok=no + # The line above has the same effect. We set CXX explicitly + # to make build logs less confusing. + export CXX= + fi + einfo " $(printf '%15s' 'Manual CXX:') ${CXX}" + + echo + + local myconf=() + + case ${CTARGET} in + m68k*) + # setjmp() is not compatible with stack protection: + # https://sourceware.org/PR24202 + myconf+=( --enable-stack-protector=no ) + ;; + powerpc-*) + # Currently gcc on powerpc32 generates invalid code for + # __builtin_return_address(0) calls. Normally programs + # don't do that but malloc hooks in glibc do: + # https://gcc.gnu.org/PR81996 + # https://bugs.gentoo.org/629054 + myconf+=( --enable-stack-protector=no ) + ;; + *) + # Use '=strong' instead of '=all' to protect only functions + # worth protecting from stack smashes. + # '=all' is also known to have a problem in IFUNC resolution + # tests: https://sourceware.org/PR25680, bug #712356. + myconf+=( --enable-stack-protector=$(usex ssp strong no) ) + ;; + esac + myconf+=( --enable-stackguard-randomization ) + + # Keep a whitelist of targets supporing IFUNC. glibc's ./configure + # is not robust enough to detect proper support: + # https://bugs.gentoo.org/641216 + # https://sourceware.org/PR22634#c0 + case $(tc-arch ${CTARGET}) in + # Keep whitelist of targets where autodetection mostly works. + amd64|x86|sparc|ppc|ppc64|arm|arm64|s390) ;; + # Blacklist everywhere else + *) myconf+=( libc_cv_ld_gnu_indirect_function=no ) ;; + esac + + # Enable Intel Control-flow Enforcement Technology on amd64 if requested + case ${CTARGET} in + x86_64-*) myconf+=( $(use_enable cet) ) ;; + *) ;; + esac + + [[ $(tc-is-softfloat) == "yes" ]] && myconf+=( --without-fp ) + + myconf+=( --enable-kernel=${MIN_KERN_VER} ) + + # Since SELinux support is only required for nscd, only enable it if: + # 1. USE selinux + # 2. only for the primary ABI on multilib systems + # 3. Not a crosscompile + if ! is_crosscompile && use selinux ; then + if use multilib ; then + if is_final_abi ; then + myconf+=( --with-selinux ) + else + myconf+=( --without-selinux ) + fi + else + myconf+=( --with-selinux ) + fi + else + myconf+=( --without-selinux ) + fi + + # Force a few tests where we always know the answer but + # configure is incapable of finding it. + if is_crosscompile ; then + export \ + libc_cv_c_cleanup=yes \ + libc_cv_forced_unwind=yes + fi + + myconf+=( + --without-cvs + --disable-werror + --enable-bind-now + --build=${CBUILD_OPT:-${CBUILD}} + --host=${CTARGET_OPT:-${CTARGET}} + $(use_enable profile) + $(use_with gd) + --with-headers=$(alt_build_headers) + --prefix="$(host_eprefix)/usr" + --sysconfdir="$(host_eprefix)/etc" + --localstatedir="$(host_eprefix)/var" + --libdir='$(prefix)'/$(get_libdir) + --mandir='$(prefix)'/share/man + --infodir='$(prefix)'/share/info + --libexecdir='$(libdir)'/misc/glibc + --with-bugurl=https://bugs.gentoo.org/ + --with-pkgversion="$(glibc_banner)" + $(use_multiarch || echo --disable-multi-arch) + $(use_enable systemtap) + $(use_enable nscd) + ${EXTRA_ECONF} + ) + + # We rely on sys-libs/timezone-data for timezone tools normally. + myconf+=( $(use_enable vanilla timezone-tools) ) + + # These libs don't have configure flags. + ac_cv_lib_audit_audit_log_user_avc_message=$(usex audit || echo no) + ac_cv_lib_cap_cap_init=$(usex caps || echo no) + + # There is no configure option for this and we need to export it + # since the glibc build will re-run configure on itself + export libc_cv_rootsbindir="$(host_eprefix)/sbin" + export libc_cv_slibdir="$(host_eprefix)/$(get_libdir)" + + # We take care of patching our binutils to use both hash styles, + # and many people like to force gnu hash style only, so disable + # this overriding check. #347761 + export libc_cv_hashstyle=no + + local builddir=$(builddir nptl) + mkdir -p "${builddir}" + cd "${builddir}" + set -- "${S}"/configure "${myconf[@]}" + echo "$@" + "$@" || die "failed to configure glibc" + + # ia64 static cross-compilers are a pita in so much that they + # can't produce static ELFs (as the libgcc.a is broken). so + # disable building of the programs for those targets if it + # doesn't work. + # XXX: We could turn this into a compiler test, but ia64 is + # the only one that matters, so this should be fine for now. + if is_crosscompile && [[ ${CTARGET} == ia64* ]] ; then + sed -i '1i+link-static = touch $@' config.make + fi + + # If we're trying to migrate between ABI sets, we need + # to lie and use a local copy of gcc. Like if the system + # is built with MULTILIB_ABIS="amd64 x86" but we want to + # add x32 to it, gcc/glibc don't yet support x32. + # + if [[ -n ${GCC_BOOTSTRAP_VER} ]] && use multilib ; then + echo 'main(){}' > "${T}"/test.c + if ! $(tc-getCC ${CTARGET}) ${CFLAGS} ${LDFLAGS} "${T}"/test.c -Wl,-emain -lgcc 2>/dev/null ; then + sed -i -e '/^CC = /s:$: -B$(objdir)/../'"gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}/${ABI}:" config.make || die + fi + fi +} + +glibc_headers_configure() { + export ABI=default + + local builddir=$(builddir "headers") + mkdir -p "${builddir}" + cd "${builddir}" + + # if we don't have a compiler yet, we can't really test it now ... + # hopefully they don't affect header generation, so let's hope for + # the best here ... + local v vars=( + ac_cv_header_cpuid_h=yes + libc_cv_{386,390,alpha,arm,hppa,ia64,mips,{powerpc,sparc}{,32,64},sh,x86_64}_tls=yes + libc_cv_asm_cfi_directives=yes + libc_cv_broken_visibility_attribute=no + libc_cv_c_cleanup=yes + libc_cv_compiler_powerpc64le_binary128_ok=yes + libc_cv_forced_unwind=yes + libc_cv_gcc___thread=yes + libc_cv_mlong_double_128=yes + libc_cv_mlong_double_128ibm=yes + libc_cv_ppc_machine=yes + libc_cv_ppc_rel16=yes + libc_cv_predef_fortify_source=no + libc_cv_target_power8_ok=yes + libc_cv_visibility_attribute=yes + libc_cv_z_combreloc=yes + libc_cv_z_execstack=yes + libc_cv_z_initfirst=yes + libc_cv_z_nodelete=yes + libc_cv_z_nodlopen=yes + libc_cv_z_relro=yes + libc_mips_abi=${ABI} + libc_mips_float=$([[ $(tc-is-softfloat) == "yes" ]] && echo soft || echo hard) + # These libs don't have configure flags. + ac_cv_lib_audit_audit_log_user_avc_message=no + ac_cv_lib_cap_cap_init=no + ) + + einfo "Forcing cached settings:" + for v in "${vars[@]}" ; do + einfo " ${v}" + export ${v} + done + + local headers_only_arch_CPPFLAGS=() + + # Blow away some random CC settings that screw things up. #550192 + if [[ -d ${S}/sysdeps/mips ]]; then + pushd "${S}"/sysdeps/mips >/dev/null + sed -i -e '/^CC +=/s:=.*:= -D_MIPS_SZPTR=32:' mips32/Makefile mips64/n32/Makefile || die + sed -i -e '/^CC +=/s:=.*:= -D_MIPS_SZPTR=64:' mips64/n64/Makefile || die + + # Force the mips ABI to the default. This is OK because the set of + # installed headers in this phase is the same between the 3 ABIs. + # If this ever changes, this hack will break, but that's unlikely + # as glibc discourages that behavior. + # https://crbug.com/647033 + sed -i -e 's:abiflag=.*:abiflag=_ABIO32:' preconfigure || die + + popd >/dev/null + fi + + case ${CTARGET} in + riscv*) + # RISC-V interrogates the compiler to determine which target to + # build. If building the headers then we don't strictly need a + # RISC-V compiler, so the built-in definitions that are provided + # along with all RISC-V compiler might not exist. This causes + # glibc's RISC-V preconfigure script to blow up. Since we're just + # building the headers any value will actually work here, so just + # pick the standard one (rv64g/lp64d) to make the build scripts + # happy for now -- the headers are all the same anyway so it + # doesn't matter. + headers_only_arch_CPPFLAGS+=( + -D__riscv_xlen=64 + -D__riscv_flen=64 + -D__riscv_float_abi_double=1 + -D__riscv_atomic=1 + ) ;; + esac + + local myconf=() + myconf+=( + --disable-sanity-checks + --enable-hacker-mode + --without-cvs + --disable-werror + --enable-bind-now + --build=${CBUILD_OPT:-${CBUILD}} + --host=${CTARGET_OPT:-${CTARGET}} + --with-headers=$(alt_build_headers) + --prefix="$(host_eprefix)/usr" + ${EXTRA_ECONF} + ) + + # Nothing is compiled here which would affect the headers for the target. + # So forcing CC/CFLAGS is sane. + local headers_only_CC=$(tc-getBUILD_CC) + local headers_only_CFLAGS="-O1 -pipe" + local headers_only_CPPFLAGS="-U_FORTIFY_SOURCE ${headers_only_arch_CPPFLAGS[*]}" + local headers_only_LDFLAGS="" + set -- "${S}"/configure "${myconf[@]}" + echo \ + "CC=${headers_only_CC}" \ + "CFLAGS=${headers_only_CFLAGS}" \ + "CPPFLAGS=${headers_only_CPPFLAGS}" \ + "LDFLAGS=${headers_only_LDFLAGS}" \ + "$@" + CC=${headers_only_CC} \ + CFLAGS=${headers_only_CFLAGS} \ + CPPFLAGS=${headers_only_CPPFLAGS} \ + LDFLAGS="" \ + "$@" || die "failed to configure glibc" +} + +do_src_configure() { + if just_headers ; then + glibc_headers_configure + else + glibc_do_configure nptl + fi +} + +src_configure() { + foreach_abi do_src_configure +} + +do_src_compile() { + emake -C "$(builddir nptl)" +} + +src_compile() { + if just_headers ; then + return + fi + + foreach_abi do_src_compile +} + +glibc_src_test() { + cd "$(builddir nptl)" + emake check +} + +do_src_test() { + local ret=0 + + glibc_src_test + : $(( ret |= $? )) + + return ${ret} +} + +src_test() { + if just_headers ; then + return + fi + + # Give tests more time to complete. + export TIMEOUTFACTOR=5 + + foreach_abi do_src_test || die "tests failed" +} + +run_locale_gen() { + # if the host locales.gen contains no entries, we'll install everything + local root="$1" + local inplace="" + + if [[ "${root}" == "--inplace-glibc" ]] ; then + inplace="--inplace-glibc" + root="$2" + fi + + local locale_list="${root}/etc/locale.gen" + + pushd "${ED}"/$(get_libdir) >/dev/null + + if [[ -z $(locale-gen --list --config "${locale_list}") ]] ; then + [[ -z ${inplace} ]] && ewarn "Generating all locales; edit /etc/locale.gen to save time/space" + locale_list="${root}/usr/share/i18n/SUPPORTED" + fi + + locale-gen ${inplace} --jobs $(makeopts_jobs) --config "${locale_list}" \ + --destdir "${root}" + + popd >/dev/null +} + +glibc_do_src_install() { + local builddir=$(builddir nptl) + cd "${builddir}" + + emake install_root="${D}/$(build_eprefix)$(alt_prefix)" install + + # This version (2.26) provides some compatibility libraries for the NIS/NIS+ support + # which come without headers etc. Only needed for binary packages since the + # external net-libs/libnsl has increased soversion. Keep only versioned libraries. + find "${D}" -name "libnsl.a" -delete + find "${D}" -name "libnsl.so" -delete + + # Normally upstream_pv is ${PV}. Live ebuilds are exception, there we need + # to infer upstream version: + # '#define VERSION "2.26.90"' -> '2.26.90' + local upstream_pv=$(sed -n -r 's/#define VERSION "(.*)"/\1/p' "${S}"/version.h) + + # Avoid stripping binaries not targeted by ${CHOST}. Or else + # ${CHOST}-strip would break binaries build for ${CTARGET}. + is_crosscompile && dostrip -x / + # gdb thread introspection relies on local libpthreas symbols. stripping breaks it + # See Note [Disable automatic stripping] + dostrip -x $(alt_libdir)/libpthread-${upstream_pv}.so + + if [[ -e ${ED}/$(alt_usrlibdir)/libm-${upstream_pv}.a ]] ; then + # Move versioned .a file out of libdir to evade portage QA checks + # instead of using gen_usr_ldscript(). We fix ldscript as: + # "GROUP ( /usr/lib64/libm-.a ..." -> "GROUP ( /usr/lib64/glibc-/libm-.a ..." + sed -i "s@\(libm-${upstream_pv}.a\)@${P}/\1@" "${ED}"/$(alt_usrlibdir)/libm.a || die + dodir $(alt_usrlibdir)/${P} + mv "${ED}"/$(alt_usrlibdir)/libm-${upstream_pv}.a "${ED}"/$(alt_usrlibdir)/${P}/libm-${upstream_pv}.a || die + fi + + # We'll take care of the cache ourselves + rm -f "${ED}"/etc/ld.so.cache + + # Everything past this point just needs to be done once ... + is_final_abi || return 0 + + # Make sure the non-native interp can be found on multilib systems even + # if the main library set isn't installed into the right place. Maybe + # we should query the active gcc for info instead of hardcoding it ? + local i ldso_abi ldso_name + local ldso_abi_list=( + # x86 + amd64 /lib64/ld-linux-x86-64.so.2 + x32 /libx32/ld-linux-x32.so.2 + x86 /lib/ld-linux.so.2 + # mips + o32 /lib/ld.so.1 + n32 /lib32/ld.so.1 + n64 /lib64/ld.so.1 + # powerpc + ppc /lib/ld.so.1 + ppc64 /lib64/ld64.so.1 + # riscv + lp64d /lib/ld-linux-riscv64-lp64d.so.1 + lp64 /lib/ld-linux-riscv64-lp64.so.1 + # s390 + s390 /lib/ld.so.1 + s390x /lib/ld64.so.1 + # sparc + sparc32 /lib/ld-linux.so.2 + sparc64 /lib64/ld-linux.so.2 + ) + case $(tc-endian) in + little) + ldso_abi_list+=( + # arm + arm64 /lib/ld-linux-aarch64.so.1 + ) + ;; + big) + ldso_abi_list+=( + # arm + arm64 /lib/ld-linux-aarch64_be.so.1 + ) + ;; + esac + if [[ ${SYMLINK_LIB} == "yes" ]] && [[ ! -e ${ED}/$(alt_prefix)/lib ]] ; then + dosym $(get_abi_LIBDIR ${DEFAULT_ABI}) $(alt_prefix)/lib + fi + for (( i = 0; i < ${#ldso_abi_list[@]}; i += 2 )) ; do + ldso_abi=${ldso_abi_list[i]} + has ${ldso_abi} $(get_install_abis) || continue + + ldso_name="$(alt_prefix)${ldso_abi_list[i+1]}" + if [[ ! -L ${ED}/${ldso_name} && ! -e ${ED}/${ldso_name} ]] ; then + dosym ../$(get_abi_LIBDIR ${ldso_abi})/${ldso_name##*/} ${ldso_name} + fi + done + + # With devpts under Linux mounted properly, we do not need the pt_chown + # binary to be setuid. This is because the default owners/perms will be + # exactly what we want. + if ! use suid ; then + find "${ED}" -name pt_chown -exec chmod -s {} + + fi + + ################################################################# + # EVERYTHING AFTER THIS POINT IS FOR NATIVE GLIBC INSTALLS ONLY # + # Make sure we install some symlink hacks so that when we build + # a 2nd stage cross-compiler, gcc finds the target system + # headers correctly. See gcc/doc/gccinstall.info + if is_crosscompile ; then + # We need to make sure that /lib and /usr/lib always exists. + # gcc likes to use relative paths to get to its multilibs like + # /usr/lib/../lib64/. So while we don't install any files into + # /usr/lib/, we do need it to exist. + keepdir $(alt_prefix)/lib + keepdir $(alt_prefix)/usr/lib + + dosym usr/include $(alt_prefix)/sys-include + return 0 + fi + + # Files for Debian-style locale updating + dodir /usr/share/i18n + sed \ + -e "/^#/d" \ + -e "/SUPPORTED-LOCALES=/d" \ + -e "s: \\\\::g" -e "s:/: :g" \ + "${S}"/localedata/SUPPORTED > "${ED}"/usr/share/i18n/SUPPORTED \ + || die "generating /usr/share/i18n/SUPPORTED failed" + cd "${WORKDIR}"/extra/locale + dosbin locale-gen + doman *.[0-8] + insinto /etc + doins locale.gen + + # Make sure all the ABI's can find the locales and so we only + # have to generate one set + local a + keepdir /usr/$(get_libdir)/locale + for a in $(get_install_abis) ; do + if [[ ! -e ${ED}/usr/$(get_abi_LIBDIR ${a})/locale ]] ; then + dosym ../$(get_libdir)/locale /usr/$(get_abi_LIBDIR ${a})/locale + fi + done + + # HACK: If we're building for riscv, we need to additionally make sure that + # we can find the locale archive afterwards + case ${CTARGET} in + riscv*) + if [[ ! -e ${ED}/usr/lib/locale ]] ; then + dosym ../$(get_libdir)/locale /usr/lib/locale + fi + ;; + *) ;; + esac + + cd "${S}" + + # Install misc network config files + insinto /etc + doins nscd/nscd.conf posix/gai.conf nss/nsswitch.conf + doins "${WORKDIR}"/extra/etc/*.conf + + if use nscd ; then + doinitd "$(prefixify_ro "${WORKDIR}"/extra/etc/nscd)" + + local nscd_args=( + -e "s:@PIDFILE@:$(strings "${ED}"/usr/sbin/nscd | grep nscd.pid):" + ) + + sed -i "${nscd_args[@]}" "${ED}"/etc/init.d/nscd + + systemd_dounit nscd/nscd.service + systemd_newtmpfilesd nscd/nscd.tmpfiles nscd.conf + else + # Do this since extra/etc/*.conf above might have nscd.conf. + rm -f "${ED}"/etc/nscd.conf + fi + + echo 'LDPATH="include ld.so.conf.d/*.conf"' > "${T}"/00glibc + doenvd "${T}"/00glibc + + for d in BUGS ChangeLog CONFORMANCE FAQ NEWS NOTES PROJECTS README* ; do + [[ -s ${d} ]] && dodoc ${d} + done + dodoc -r ChangeLog.old + + # Prevent overwriting of the /etc/localtime symlink. We'll handle the + # creation of the "factory" symlink in pkg_postinst(). + rm -f "${ED}"/etc/localtime + + # Generate all locales if this is a native build as locale generation + if use compile-locales && ! is_crosscompile ; then + run_locale_gen --inplace-glibc "${ED}/" + sed -e 's:COMPILED_LOCALES="":COMPILED_LOCALES="1":' -i "${ED}"/usr/sbin/locale-gen || die + fi +} + +glibc_headers_install() { + local builddir=$(builddir "headers") + cd "${builddir}" + emake install_root="${D}/$(build_eprefix)$(alt_prefix)" install-headers + + insinto $(alt_headers)/gnu + doins "${S}"/include/gnu/stubs.h + + # Make sure we install the sys-include symlink so that when + # we build a 2nd stage cross-compiler, gcc finds the target + # system headers correctly. See gcc/doc/gccinstall.info + dosym usr/include $(alt_prefix)/sys-include +} + +src_install() { + if just_headers ; then + export ABI=default + glibc_headers_install + return + fi + + foreach_abi glibc_do_src_install +} + +# Simple test to make sure our new glibc isn't completely broken. +# Make sure we don't test with statically built binaries since +# they will fail. Also, skip if this glibc is a cross compiler. +# +# If coreutils is built with USE=multicall, some of these files +# will just be wrapper scripts, not actual ELFs we can test. +glibc_sanity_check() { + cd / #228809 + + # We enter ${ED} so to avoid trouble if the path contains + # special characters; for instance if the path contains the + # colon character (:), then the linker will try to split it + # and look for the libraries in an unexpected place. This can + # lead to unsafe code execution if the generated prefix is + # within a world-writable directory. + # (e.g. /var/tmp/portage:${HOSTNAME}) + pushd "${ED}"/$(get_libdir) >/dev/null + + local x striptest + for x in cal date env free ls true uname uptime ; do + x=$(type -p ${x}) + [[ -z ${x} || ${x} != ${EPREFIX}/* ]] && continue + striptest=$(LC_ALL="C" file -L ${x} 2>/dev/null) || continue + case ${striptest} in + *"statically linked"*) continue;; + *"ASCII text"*) continue;; + esac + # We need to clear the locale settings as the upgrade might want + # incompatible locale data. This test is not for verifying that. + LC_ALL=C \ + ./ld-*.so --library-path . ${x} > /dev/null \ + || die "simple run test (${x}) failed" + done + + popd >/dev/null +} + +pkg_preinst() { + # nothing to do if just installing headers + just_headers && return + + # prepare /etc/ld.so.conf.d/ for files + mkdir -p "${EROOT}"/etc/ld.so.conf.d + + # Default /etc/hosts.conf:multi to on for systems with small dbs. + if [[ $(wc -l < "${EROOT}"/etc/hosts) -lt 1000 ]] ; then + sed -i '/^multi off/s:off:on:' "${ED}"/etc/host.conf + einfo "Defaulting /etc/host.conf:multi to on" + fi + + [[ -n ${ROOT} ]] && return 0 + [[ -d ${ED}/$(get_libdir) ]] || return 0 + [[ -z ${BOOTSTRAP_RAP} ]] && glibc_sanity_check +} + +pkg_postinst() { + # nothing to do if just installing headers + just_headers && return + + if ! tc-is-cross-compiler && [[ -x ${EROOT}/usr/sbin/iconvconfig ]] ; then + # Generate fastloading iconv module configuration file. + "${EROOT}"/usr/sbin/iconvconfig --prefix="${ROOT}/" + fi + + if ! is_crosscompile && [[ -z ${ROOT} ]] ; then + use compile-locales || run_locale_gen "${EROOT}/" + fi + + # Check for sanity of /etc/nsswitch.conf, take 2 + if [[ -e ${EROOT}/etc/nsswitch.conf ]] && ! has_version sys-auth/libnss-nis ; then + local entry + for entry in passwd group shadow; do + if egrep -q "^[ \t]*${entry}:.*nis" "${EROOT}"/etc/nsswitch.conf; then + ewarn "" + ewarn "Your ${EROOT}/etc/nsswitch.conf uses NIS. Support for that has been" + ewarn "removed from glibc and is now provided by the package" + ewarn " sys-auth/libnss-nis" + ewarn "Install it now to keep your NIS setup working." + ewarn "" + fi + done + fi +} diff --git a/sys-libs/glibc/glibc-2.30-r2.ebuild b/sys-libs/glibc/glibc-2.30-r2.ebuild deleted file mode 100644 index b357fd43e0af..000000000000 --- a/sys-libs/glibc/glibc-2.30-r2.ebuild +++ /dev/null @@ -1,1488 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -PYTHON_COMPAT=( python3_{6,7} ) - -inherit python-any-r1 prefix eutils toolchain-funcs flag-o-matic gnuconfig \ - multilib systemd multiprocessing - -DESCRIPTION="GNU libc C library" -HOMEPAGE="https://www.gnu.org/software/libc/" -LICENSE="LGPL-2.1+ BSD HPND ISC inner-net rc PCRE" -SLOT="2.2" - -EMULTILIB_PKG="true" - -if [[ ${PV} == 9999* ]]; then - EGIT_REPO_URI="https://sourceware.org/git/glibc.git" - inherit git-r3 -else - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sh ~sparc ~x86" - SRC_URI="mirror://gnu/glibc/${P}.tar.xz" -fi - -RELEASE_VER=${PV} - -GCC_BOOTSTRAP_VER=20180511 - -# Gentoo patchset -PATCH_VER=3 - -SRC_URI+=" https://dev.gentoo.org/~slyfox/distfiles/${P}-patches-${PATCH_VER}.tar.xz" -SRC_URI+=" multilib? ( https://dev.gentoo.org/~dilfridge/distfiles/gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}.tar.xz )" - -IUSE="audit caps cet compile-locales +crypt custom-cflags doc gd headers-only +multiarch multilib nscd profile selinux +ssp +static-libs suid systemtap test vanilla" - -# Minimum kernel version that glibc requires -MIN_KERN_VER="3.2.0" - -# Here's how the cross-compile logic breaks down ... -# CTARGET - machine that will target the binaries -# CHOST - machine that will host the binaries -# CBUILD - machine that will build the binaries -# If CTARGET != CHOST, it means you want a libc for cross-compiling. -# If CHOST != CBUILD, it means you want to cross-compile the libc. -# CBUILD = CHOST = CTARGET - native build/install -# CBUILD != (CHOST = CTARGET) - cross-compile a native build -# (CBUILD = CHOST) != CTARGET - libc for cross-compiler -# CBUILD != CHOST != CTARGET - cross-compile a libc for a cross-compiler -# For install paths: -# CHOST = CTARGET - install into / -# CHOST != CTARGET - install into /usr/CTARGET/ -# -export CBUILD=${CBUILD:-${CHOST}} -export CTARGET=${CTARGET:-${CHOST}} -if [[ ${CTARGET} == ${CHOST} ]] ; then - if [[ ${CATEGORY} == cross-* ]] ; then - export CTARGET=${CATEGORY#cross-} - fi -fi - -# Note [Disable automatic stripping] -# Disabling automatic stripping for a few reasons: -# - portage's attempt to strip breaks non-native binaries at least on -# arm: bug #697428 -# - portage's attempt to strip libpthread.so.0 breaks gdb thread -# enumeration: bug #697910. This is quite subtle: -# * gdb uses glibc's libthread_db-1.0.so to enumerate threads. -# * libthread_db-1.0.so needs access to libpthread.so.0 local symbols -# via 'ps_pglobal_lookup' symbol defined in gdb. -# * 'ps_pglobal_lookup' uses '.symtab' section table to resolve all -# known symbols in 'libpthread.so.0'. Specifically 'nptl_version' -# (unexported) is used to sanity check compatibility before enabling -# debugging. -# Also see https://sourceware.org/gdb/wiki/FAQ#GDB_does_not_see_any_threads_besides_the_one_in_which_crash_occurred.3B_or_SIGTRAP_kills_my_program_when_I_set_a_breakpoint -# * normal 'strip' command trims '.symtab' -# Thus our main goal here is to prevent 'libpthread.so.0' from -# losing it's '.symtab' entries. -# As Gentoo's strip does not allow us to pass less aggressive stripping -# options and does not check the machine target we strip selectively. - -# We need a new-enough binutils/gcc to match upstream baseline. -# Also we need to make sure our binutils/gcc supports TLS, -# and that gcc already contains the hardened patches. -BDEPEND=" - ${PYTHON_DEPS} - >=app-misc/pax-utils-0.1.10 - sys-devel/bison - !' | $(tc-getCPP ${CTARGET}) ${CFLAGS} 2>&1 | grep -o '[^"]*linux/version.h') - ALT_BUILD_HEADERS=${header_path%/linux/version.h} - fi - fi - fi - echo "${ALT_BUILD_HEADERS}" -} - -alt_libdir() { - echo $(alt_prefix)/$(get_libdir) -} -alt_usrlibdir() { - echo $(alt_prefix)/usr/$(get_libdir) -} - -builddir() { - echo "${WORKDIR}/build-${ABI}-${CTARGET}-$1" -} - -do_compile_test() { - local ret save_cflags=${CFLAGS} - CFLAGS+=" $1" - shift - - pushd "${T}" >/dev/null - - rm -f glibc-test* - printf '%b' "$*" > glibc-test.c - - nonfatal emake glibc-test - ret=$? - - popd >/dev/null - - CFLAGS=${save_cflags} - return ${ret} -} - -do_run_test() { - local ret - - if [[ ${MERGE_TYPE} == "binary" ]] ; then - # ignore build failures when installing a binary package #324685 - do_compile_test "" "$@" 2>/dev/null || return 0 - else - if ! do_compile_test "" "$@" ; then - ewarn "Simple build failed ... assuming this is desired #324685" - return 0 - fi - fi - - pushd "${T}" >/dev/null - - ./glibc-test - ret=$? - rm -f glibc-test* - - popd >/dev/null - - return ${ret} -} - -setup_target_flags() { - # This largely mucks with compiler flags. None of which should matter - # when building up just the headers. - just_headers && return 0 - - case $(tc-arch) in - x86) - # -march needed for #185404 #199334 - # TODO: When creating the first glibc cross-compile, this test will - # always fail as it does a full link which in turn requires glibc. - # Probably also applies when changing multilib profile settings (e.g. - # enabling x86 when the profile was amd64-only previously). - # We could change main to _start and pass -nostdlib here so that we - # only test the gcc code compilation. Or we could do a compile and - # then look for the symbol via scanelf. - if ! do_compile_test "" 'void f(int i, void *p) {if (__sync_fetch_and_add(&i, 1)) f(i, p);}\nint main(){return 0;}\n'; then - local t=${CTARGET_OPT:-${CTARGET}} - t=${t%%-*} - filter-flags '-march=*' - export CFLAGS="-march=${t} ${CFLAGS}" - einfo "Auto adding -march=${t} to CFLAGS #185404" - fi - ;; - amd64) - # -march needed for #185404 #199334 - # TODO: See cross-compile issues listed above for x86. - [[ ${ABI} == x86 ]] && - if ! do_compile_test "${CFLAGS_x86}" 'void f(int i, void *p) {if (__sync_fetch_and_add(&i, 1)) f(i, p);}\nint main(){return 0;}\n'; then - local t=${CTARGET_OPT:-${CTARGET}} - t=${t%%-*} - # Normally the target is x86_64-xxx, so turn that into the -march that - # gcc actually accepts. #528708 - [[ ${t} == "x86_64" ]] && t="x86-64" - filter-flags '-march=*' - # ugly, ugly, ugly. ugly. - CFLAGS_x86=$(CFLAGS=${CFLAGS_x86} filter-flags '-march=*'; echo "${CFLAGS}") - export CFLAGS_x86="${CFLAGS_x86} -march=${t}" - einfo "Auto adding -march=${t} to CFLAGS_x86 #185404 (ABI=${ABI})" - fi - ;; - mips) - # The mips abi cannot support the GNU style hashes. #233233 - filter-ldflags -Wl,--hash-style=gnu -Wl,--hash-style=both - ;; - sparc) - # Both sparc and sparc64 can use -fcall-used-g6. -g7 is bad, though. - filter-flags "-fcall-used-g7" - append-flags "-fcall-used-g6" - - # If the CHOST is the basic one (e.g. not sparcv9-xxx already), - # try to pick a better one so glibc can use cpu-specific .S files. - # We key off the CFLAGS to get a good value. Also need to handle - # version skew. - # We can't force users to set their CHOST to their exact machine - # as many of these are not recognized by config.sub/gcc and such :(. - # Note: If the mcpu values don't scale, we might try probing CPP defines. - # Note: Should we factor in -Wa,-AvXXX flags too ? Or -mvis/etc... ? - - local cpu - case ${CTARGET} in - sparc64-*) - case $(get-flag mcpu) in - niagara[234]) - if ver_test -ge 2.8 ; then - cpu="sparc64v2" - elif ver_test -ge 2.4 ; then - cpu="sparc64v" - elif ver_test -ge 2.2.3 ; then - cpu="sparc64b" - fi - ;; - niagara) - if ver_test -ge 2.4 ; then - cpu="sparc64v" - elif ver_test -ge 2.2.3 ; then - cpu="sparc64b" - fi - ;; - ultrasparc3) - cpu="sparc64b" - ;; - *) - # We need to force at least v9a because the base build doesn't - # work with just v9. - # https://sourceware.org/bugzilla/show_bug.cgi?id=19477 - [[ -z ${cpu} ]] && append-flags "-Wa,-xarch=v9a" - ;; - esac - ;; - sparc-*) - case $(get-flag mcpu) in - niagara[234]) - if ver_test -ge 2.8 ; then - cpu="sparcv9v2" - elif ver_test -ge 2.4 ; then - cpu="sparcv9v" - elif ver_test -ge 2.2.3 ; then - cpu="sparcv9b" - else - cpu="sparcv9" - fi - ;; - niagara) - if ver_test -ge 2.4 ; then - cpu="sparcv9v" - elif ver_test -ge 2.2.3 ; then - cpu="sparcv9b" - else - cpu="sparcv9" - fi - ;; - ultrasparc3) - cpu="sparcv9b" - ;; - v9|ultrasparc) - cpu="sparcv9" - ;; - v8|supersparc|hypersparc|leon|leon3) - cpu="sparcv8" - ;; - esac - ;; - esac - [[ -n ${cpu} ]] && CTARGET_OPT="${cpu}-${CTARGET#*-}" - ;; - esac -} - -setup_flags() { - # Make sure host make.conf doesn't pollute us - if is_crosscompile || tc-is-cross-compiler ; then - CHOST=${CTARGET} strip-unsupported-flags - fi - - # Store our CFLAGS because it's changed depending on which CTARGET - # we are building when pulling glibc on a multilib profile - CFLAGS_BASE=${CFLAGS_BASE-${CFLAGS}} - CFLAGS=${CFLAGS_BASE} - CXXFLAGS_BASE=${CXXFLAGS_BASE-${CXXFLAGS}} - CXXFLAGS=${CXXFLAGS_BASE} - ASFLAGS_BASE=${ASFLAGS_BASE-${ASFLAGS}} - ASFLAGS=${ASFLAGS_BASE} - - # Allow users to explicitly avoid flag sanitization via - # USE=custom-cflags. - if ! use custom-cflags; then - # Over-zealous CFLAGS can often cause problems. What may work for one - # person may not work for another. To avoid a large influx of bugs - # relating to failed builds, we strip most CFLAGS out to ensure as few - # problems as possible. - strip-flags - # Lock glibc at -O2; we want to be conservative here. - filter-flags '-O?' - append-flags -O2 - fi - strip-unsupported-flags - filter-flags -m32 -m64 '-mabi=*' - - # glibc aborts if rpath is set by LDFLAGS - filter-ldflags '-Wl,-rpath=*' - - # #492892 - filter-flags -frecord-gcc-switches - - unset CBUILD_OPT CTARGET_OPT - if use multilib ; then - CTARGET_OPT=$(get_abi_CTARGET) - [[ -z ${CTARGET_OPT} ]] && CTARGET_OPT=$(get_abi_CHOST) - fi - - setup_target_flags - - if [[ -n ${CTARGET_OPT} && ${CBUILD} == ${CHOST} ]] && ! is_crosscompile; then - CBUILD_OPT=${CTARGET_OPT} - fi - - # glibc's headers disallow -O0 and fail at build time: - # include/libc-symbols.h:75:3: #error "glibc cannot be compiled without optimization" - replace-flags -O0 -O1 - - filter-flags '-fstack-protector*' -} - -want_tls() { - # Archs that can use TLS (Thread Local Storage) - case $(tc-arch) in - x86) - # requires i486 or better #106556 - [[ ${CTARGET} == i[4567]86* ]] && return 0 - return 1 - ;; - esac - return 0 -} - -want__thread() { - want_tls || return 1 - - # For some reason --with-tls --with__thread is causing segfaults on sparc32. - [[ ${PROFILE_ARCH} == "sparc" ]] && return 1 - - [[ -n ${WANT__THREAD} ]] && return ${WANT__THREAD} - - # only test gcc -- can't test linking yet - tc-has-tls -c ${CTARGET} - WANT__THREAD=$? - - return ${WANT__THREAD} -} - -use_multiarch() { - # Allow user to disable runtime arch detection in multilib. - use multiarch || return 1 - # Make sure binutils is new enough to support indirect functions, - # #336792. This funky sed supports gold and bfd linkers. - local bver nver - bver=$($(tc-getLD ${CTARGET}) -v | sed -n -r '1{s:[^0-9]*::;s:^([0-9.]*).*:\1:;p}') - case $(tc-arch ${CTARGET}) in - amd64|x86) nver="2.20" ;; - arm) nver="2.22" ;; - hppa) nver="2.23" ;; - ppc|ppc64) nver="2.20" ;; - # ifunc support was added in 2.23, but glibc also needs - # machinemode which is in 2.24. - s390) nver="2.24" ;; - sparc) nver="2.21" ;; - *) return 1 ;; - esac - ver_test ${bver} -ge ${nver} -} - -# Setup toolchain variables that had historically been defined in the -# profiles for these archs. -setup_env() { - # silly users - unset LD_RUN_PATH - unset LD_ASSUME_KERNEL - - if is_crosscompile || tc-is-cross-compiler ; then - multilib_env ${CTARGET_OPT:-${CTARGET}} - - if ! use multilib ; then - MULTILIB_ABIS=${DEFAULT_ABI} - else - MULTILIB_ABIS=${MULTILIB_ABIS:-${DEFAULT_ABI}} - fi - - # If the user has CFLAGS_ in their make.conf, use that, - # and fall back on CFLAGS. - local VAR=CFLAGS_${CTARGET//[-.]/_} - CFLAGS=${!VAR-${CFLAGS}} - einfo " $(printf '%15s' 'Manual CFLAGS:') ${CFLAGS}" - fi - - setup_flags - - export ABI=${ABI:-${DEFAULT_ABI:-default}} - - if just_headers ; then - # Avoid mixing host's CC and target's CFLAGS_${ABI}: - # At this bootstrap stage we have only binutils for - # target but not compiler yet. - einfo "Skip CC ABI injection. We can't use (cross-)compiler yet." - return 0 - fi - local VAR=CFLAGS_${ABI} - # We need to export CFLAGS with abi information in them because glibc's - # configure script checks CFLAGS for some targets (like mips). Keep - # around the original clean value to avoid appending multiple ABIs on - # top of each other. - : ${__GLIBC_CC:=$(tc-getCC ${CTARGET_OPT:-${CTARGET}})} - export __GLIBC_CC CC="${__GLIBC_CC} ${!VAR}" - einfo " $(printf '%15s' 'Manual CC:') ${CC}" -} - -foreach_abi() { - setup_env - - local ret=0 - local abilist="" - if use multilib ; then - abilist=$(get_install_abis) - else - abilist=${DEFAULT_ABI} - fi - local -x ABI - for ABI in ${abilist:-default} ; do - setup_env - einfo "Running $1 for ABI ${ABI}" - $1 - : $(( ret |= $? )) - done - return ${ret} -} - -glibc_banner() { - local b="Gentoo ${PVR}" - [[ -n ${PATCH_VER} ]] && ! use vanilla && b+=" p${PATCH_VER}" - echo "${b}" -} - -check_devpts() { - # Make sure devpts is mounted correctly for use w/out setuid pt_chown. - - # If merely building the binary package, then there's nothing to verify. - [[ ${MERGE_TYPE} == "buildonly" ]] && return - - # Only sanity check when installing the native glibc. - [[ -n ${ROOT} ]] && return - - # If they're opting in to the old suid code, then no need to check. - use suid && return - - if awk '$3 == "devpts" && $4 ~ /[, ]gid=5[, ]/ { exit 1 }' /proc/mounts ; then - eerror "In order to use glibc with USE=-suid, you must make sure that" - eerror "you have devpts mounted at /dev/pts with the gid=5 option." - eerror "Openrc should do this for you, so you should check /etc/fstab" - eerror "and make sure you do not have any invalid settings there." - die "mount & fix your /dev/pts settings" - fi -} - -# The following Kernel version handling functions are mostly copied from portage -# source. It's better not to use linux-info.eclass here since a) it adds too -# much magic, see bug 326693 for some of the arguments, and b) some of the -# functions are just not provided. - -g_get_running_KV() { - uname -r - return $? -} - -g_KV_major() { - [[ -z $1 ]] && return 1 - local KV=$@ - echo "${KV%%.*}" -} - -g_KV_minor() { - [[ -z $1 ]] && return 1 - local KV=$@ - KV=${KV#*.} - echo "${KV%%.*}" -} - -g_KV_micro() { - [[ -z $1 ]] && return 1 - local KV=$@ - KV=${KV#*.*.} - echo "${KV%%[^[:digit:]]*}" -} - -g_KV_to_int() { - [[ -z $1 ]] && return 1 - local KV_MAJOR=$(g_KV_major "$1") - local KV_MINOR=$(g_KV_minor "$1") - local KV_MICRO=$(g_KV_micro "$1") - local KV_int=$(( KV_MAJOR * 65536 + KV_MINOR * 256 + KV_MICRO )) - - # We make version 2.2.0 the minimum version we will handle as - # a sanity check ... if its less, we fail ... - if [[ ${KV_int} -ge 131584 ]] ; then - echo "${KV_int}" - return 0 - fi - return 1 -} - -g_int_to_KV() { - local version=$1 major minor micro - major=$((version / 65536)) - minor=$(((version % 65536) / 256)) - micro=$((version % 256)) - echo ${major}.${minor}.${micro} -} - -eend_KV() { - [[ $(g_KV_to_int $1) -ge $(g_KV_to_int $2) ]] - eend $? -} - -get_kheader_version() { - printf '#include \nLINUX_VERSION_CODE\n' | \ - $(tc-getCPP ${CTARGET}) -I "$(build_eprefix)$(alt_build_headers)" - | \ - tail -n 1 -} - -# We collect all sanity checks here. Consistency is not guranteed between -# pkg_ and src_ phases, so we call this function both in pkg_pretend and in -# src_unpack. -sanity_prechecks() { - # Make sure devpts is mounted correctly for use w/out setuid pt_chown - check_devpts - - # Prevent native builds from downgrading - if [[ ${MERGE_TYPE} != "buildonly" ]] && \ - [[ -z ${ROOT} ]] && \ - [[ ${CBUILD} == ${CHOST} ]] && \ - [[ ${CHOST} == ${CTARGET} ]] ; then - - # The high rev # is to allow people to downgrade between -r# - # versions. We want to block 2.20->2.19, but 2.20-r3->2.20-r2 - # should be fine. Hopefully we never actually use a r# this - # high. - if has_version ">${CATEGORY}/${P}-r10000" ; then - eerror "Sanity check to keep you from breaking your system:" - eerror " Downgrading glibc is not supported and a sure way to destruction." - [[ ${I_ALLOW_TO_BREAK_MY_SYSTEM} = yes ]] || die "Aborting to save your system." - fi - - if ! do_run_test '#include \n#include \nint main(){return syscall(1000)!=-1;}\n' ; then - eerror "Your old kernel is broken. You need to update it to a newer" - eerror "version as syscall() will break. See bug 279260." - die "Old and broken kernel." - fi - fi - - # Users have had a chance to phase themselves, time to give em the boot - if [[ -e ${EROOT}/etc/locale.gen ]] && [[ -e ${EROOT}/etc/locales.build ]] ; then - eerror "You still haven't deleted ${EROOT}/etc/locales.build." - eerror "Do so now after making sure ${EROOT}/etc/locale.gen is kosher." - die "Lazy upgrader detected" - fi - - if [[ ${CTARGET} == i386-* ]] ; then - eerror "i386 CHOSTs are no longer supported." - eerror "Chances are you don't actually want/need i386." - eerror "Please read https://www.gentoo.org/doc/en/change-chost.xml" - die "Please fix your CHOST" - fi - - if [[ -e /proc/xen ]] && [[ $(tc-arch) == "x86" ]] && ! is-flag -mno-tls-direct-seg-refs ; then - ewarn "You are using Xen but don't have -mno-tls-direct-seg-refs in your CFLAGS." - ewarn "This will result in a 50% performance penalty when running with a 32bit" - ewarn "hypervisor, which is probably not what you want." - fi - - # Check for sanity of /etc/nsswitch.conf - if [[ -e ${EROOT}/etc/nsswitch.conf ]] ; then - local entry - for entry in passwd group shadow; do - if ! egrep -q "^[ \t]*${entry}:.*files" "${EROOT}"/etc/nsswitch.conf; then - eerror "Your ${EROOT}/etc/nsswitch.conf is out of date." - eerror "Please make sure you have 'files' entries for" - eerror "'passwd:', 'group:' and 'shadow:' databases." - eerror "For more details see:" - eerror " https://wiki.gentoo.org/wiki/Project:Toolchain/nsswitch.conf_in_glibc-2.26" - die "nsswitch.conf has no 'files' provider in '${entry}'." - fi - done - fi - - # ABI-specific checks follow here. Hey, we have a lot more specific conditions that - # we test for... - if ! is_crosscompile ; then - if use amd64 && use multilib && [[ ${MERGE_TYPE} != "binary" ]] ; then - ebegin "Checking that IA32 emulation is enabled in the running kernel" - echo 'int main(){return 0;}' > "${T}/check-ia32-emulation.c" - local STAT - if "${CC-${CHOST}-gcc}" ${CFLAGS_x86} "${T}/check-ia32-emulation.c" -o "${T}/check-ia32-emulation.elf32"; then - "${T}/check-ia32-emulation.elf32" - STAT=$? - else - # Don't fail here to allow single->multi ABI switch - # or recover from breakage like bug #646424 - ewarn "Failed to compile the ABI test. Broken host glibc?" - STAT=0 - fi - rm -f "${T}/check-ia32-emulation.elf32" - eend $STAT - [[ $STAT -eq 0 ]] || die "CONFIG_IA32_EMULATION must be enabled in the kernel to compile a multilib glibc." - fi - - fi - - # When we actually have to compile something... - if ! just_headers ; then - ebegin "Checking gcc for __thread support" - if ! eend $(want__thread ; echo $?) ; then - echo - eerror "Could not find a gcc that supports the __thread directive!" - eerror "Please update your binutils/gcc and try again." - die "No __thread support in gcc!" - fi - - if [[ ${CTARGET} == *-linux* ]] ; then - local run_kv build_kv want_kv - - run_kv=$(g_get_running_KV) - build_kv=$(g_int_to_KV $(get_kheader_version)) - want_kv=${MIN_KERN_VER} - - if ! is_crosscompile && ! tc-is-cross-compiler ; then - # Building fails on an non-supporting kernel - ebegin "Checking running kernel version (${run_kv} >= ${want_kv})" - if ! eend_KV ${run_kv} ${want_kv} ; then - echo - eerror "You need a kernel of at least ${want_kv}!" - die "Kernel version too low!" - fi - fi - - ebegin "Checking linux-headers version (${build_kv} >= ${want_kv})" - if ! eend_KV ${build_kv} ${want_kv} ; then - echo - eerror "You need linux-headers of at least ${want_kv}!" - die "linux-headers version too low!" - fi - fi - fi -} - -# -# the phases -# - -# pkg_pretend - -pkg_pretend() { - # All the checks... - einfo "Checking general environment sanity." - sanity_prechecks -} - -pkg_setup() { - # see bug 682570 - [[ -z ${BOOTSTRAP_RAP} ]] && python-any-r1_pkg_setup -} - -# src_unpack - -src_unpack() { - # Consistency is not guaranteed between pkg_ and src_ ... - sanity_prechecks - - use multilib && unpack gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}.tar.xz - - setup_env - - if [[ -n ${EGIT_REPO_URI} ]] ; then - git-r3_src_unpack - else - unpack ${P}.tar.xz - fi - - cd "${WORKDIR}" || die - unpack glibc-${RELEASE_VER}-patches-${PATCH_VER}.tar.xz -} - -src_prepare() { - if ! use vanilla ; then - elog "Applying Gentoo Glibc Patchset ${RELEASE_VER}-${PATCH_VER}" - eapply "${WORKDIR}"/patches - einfo "Done." - fi - - default - - gnuconfig_update - - cd "${WORKDIR}" - find . -name configure -exec touch {} + - - eprefixify extra/locale/locale-gen - - # Fix permissions on some of the scripts. - chmod u+x "${S}"/scripts/*.sh - - cd "${S}" -} - -glibc_do_configure() { - # Glibc does not work with gold (for various reasons) #269274. - tc-ld-disable-gold - - # CXX isnt handled by the multilib system, so if we dont unset here - # we accumulate crap across abis - unset CXX - - einfo "Configuring glibc for nptl" - - if use doc ; then - export MAKEINFO=makeinfo - else - export MAKEINFO=/dev/null - fi - - local v - for v in ABI CBUILD CHOST CTARGET CBUILD_OPT CTARGET_OPT CC CXX LD {AS,C,CPP,CXX,LD}FLAGS MAKEINFO ; do - einfo " $(printf '%15s' ${v}:) ${!v}" - done - - # CFLAGS can contain ABI-specific flags like -mfpu=neon, see bug #657760 - # To build .S (assembly) files with the same ABI-specific flags - # upstream currently recommends adding CFLAGS to CC/CXX: - # https://sourceware.org/PR23273 - # Note: Passing CFLAGS via CPPFLAGS overrides glibc's arch-specific CFLAGS - # and breaks multiarch support. See 659030#c3 for an example. - # The glibc configure script doesn't properly use LDFLAGS all the time. - export CC="$(tc-getCC ${CTARGET}) ${CFLAGS} ${LDFLAGS}" - einfo " $(printf '%15s' 'Manual CC:') ${CC}" - - # Some of the tests are written in C++, so we need to force our multlib abis in, bug 623548 - export CXX="$(tc-getCXX ${CTARGET}) $(get_abi_CFLAGS) ${CFLAGS}" - - if is_crosscompile; then - # Assume worst-case bootstrap: glibc is buil first time - # when ${CTARGET}-g++ is not available yet. We avoid - # building auxiliary programs that require C++: bug #683074 - # It should not affect final result. - export libc_cv_cxx_link_ok=no - # The line above has the same effect. We set CXX explicitly - # to make build logs less confusing. - export CXX= - fi - einfo " $(printf '%15s' 'Manual CXX:') ${CXX}" - - echo - - local myconf=() - - case ${CTARGET} in - m68k*) - # setjmp() is not compatible with stack protection: - # https://sourceware.org/PR24202 - myconf+=( --enable-stack-protector=no ) - ;; - powerpc-*) - # Currently gcc on powerpc32 generates invalid code for - # __builtin_return_address(0) calls. Normally programs - # don't do that but malloc hooks in glibc do: - # https://gcc.gnu.org/PR81996 - # https://bugs.gentoo.org/629054 - myconf+=( --enable-stack-protector=no ) - ;; - *) - myconf+=( --enable-stack-protector=$(usex ssp all no) ) - ;; - esac - myconf+=( --enable-stackguard-randomization ) - - # Keep a whitelist of targets supporing IFUNC. glibc's ./configure - # is not robust enough to detect proper support: - # https://bugs.gentoo.org/641216 - # https://sourceware.org/PR22634#c0 - case $(tc-arch ${CTARGET}) in - # Keep whitelist of targets where autodetection mostly works. - amd64|x86|sparc|ppc|ppc64|arm|arm64|s390) ;; - # Blacklist everywhere else - *) myconf+=( libc_cv_ld_gnu_indirect_function=no ) ;; - esac - - # Enable Intel Control-flow Enforcement Technology on amd64 if requested - case ${CTARGET} in - x86_64-*) myconf+=( $(use_enable cet) ) ;; - *) ;; - esac - - [[ $(tc-is-softfloat) == "yes" ]] && myconf+=( --without-fp ) - - myconf+=( --enable-kernel=${MIN_KERN_VER} ) - - # Since SELinux support is only required for nscd, only enable it if: - # 1. USE selinux - # 2. only for the primary ABI on multilib systems - # 3. Not a crosscompile - if ! is_crosscompile && use selinux ; then - if use multilib ; then - if is_final_abi ; then - myconf+=( --with-selinux ) - else - myconf+=( --without-selinux ) - fi - else - myconf+=( --with-selinux ) - fi - else - myconf+=( --without-selinux ) - fi - - # Force a few tests where we always know the answer but - # configure is incapable of finding it. - if is_crosscompile ; then - export \ - libc_cv_c_cleanup=yes \ - libc_cv_forced_unwind=yes - fi - - myconf+=( - --without-cvs - --disable-werror - --enable-bind-now - --build=${CBUILD_OPT:-${CBUILD}} - --host=${CTARGET_OPT:-${CTARGET}} - $(use_enable profile) - $(use_with gd) - --with-headers=$(alt_build_headers) - --prefix="$(host_eprefix)/usr" - --sysconfdir="$(host_eprefix)/etc" - --localstatedir="$(host_eprefix)/var" - --libdir='$(prefix)'/$(get_libdir) - --mandir='$(prefix)'/share/man - --infodir='$(prefix)'/share/info - --libexecdir='$(libdir)'/misc/glibc - --with-bugurl=https://bugs.gentoo.org/ - --with-pkgversion="$(glibc_banner)" - $(use_enable crypt) - $(use_multiarch || echo --disable-multi-arch) - $(use_enable systemtap) - $(use_enable nscd) - ${EXTRA_ECONF} - ) - - # We rely on sys-libs/timezone-data for timezone tools normally. - myconf+=( $(use_enable vanilla timezone-tools) ) - - # These libs don't have configure flags. - ac_cv_lib_audit_audit_log_user_avc_message=$(usex audit || echo no) - ac_cv_lib_cap_cap_init=$(usex caps || echo no) - - # There is no configure option for this and we need to export it - # since the glibc build will re-run configure on itself - export libc_cv_rootsbindir="$(host_eprefix)/sbin" - export libc_cv_slibdir="$(host_eprefix)/$(get_libdir)" - - # We take care of patching our binutils to use both hash styles, - # and many people like to force gnu hash style only, so disable - # this overriding check. #347761 - export libc_cv_hashstyle=no - - local builddir=$(builddir nptl) - mkdir -p "${builddir}" - cd "${builddir}" - set -- "${S}"/configure "${myconf[@]}" - echo "$@" - "$@" || die "failed to configure glibc" - - # ia64 static cross-compilers are a pita in so much that they - # can't produce static ELFs (as the libgcc.a is broken). so - # disable building of the programs for those targets if it - # doesn't work. - # XXX: We could turn this into a compiler test, but ia64 is - # the only one that matters, so this should be fine for now. - if is_crosscompile && [[ ${CTARGET} == ia64* ]] ; then - sed -i '1i+link-static = touch $@' config.make - fi - - # If we're trying to migrate between ABI sets, we need - # to lie and use a local copy of gcc. Like if the system - # is built with MULTILIB_ABIS="amd64 x86" but we want to - # add x32 to it, gcc/glibc don't yet support x32. - # - if [[ -n ${GCC_BOOTSTRAP_VER} ]] && use multilib ; then - echo 'main(){}' > "${T}"/test.c - if ! $(tc-getCC ${CTARGET}) ${CFLAGS} ${LDFLAGS} "${T}"/test.c -Wl,-emain -lgcc 2>/dev/null ; then - sed -i -e '/^CC = /s:$: -B$(objdir)/../'"gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}/${ABI}:" config.make || die - fi - fi -} - -glibc_headers_configure() { - export ABI=default - - local builddir=$(builddir "headers") - mkdir -p "${builddir}" - cd "${builddir}" - - # if we don't have a compiler yet, we can't really test it now ... - # hopefully they don't affect header generation, so let's hope for - # the best here ... - local v vars=( - ac_cv_header_cpuid_h=yes - libc_cv_{386,390,alpha,arm,hppa,ia64,mips,{powerpc,sparc}{,32,64},sh,x86_64}_tls=yes - libc_cv_asm_cfi_directives=yes - libc_cv_broken_visibility_attribute=no - libc_cv_c_cleanup=yes - libc_cv_compiler_powerpc64le_binary128_ok=yes - libc_cv_forced_unwind=yes - libc_cv_gcc___thread=yes - libc_cv_mlong_double_128=yes - libc_cv_mlong_double_128ibm=yes - libc_cv_ppc_machine=yes - libc_cv_ppc_rel16=yes - libc_cv_predef_fortify_source=no - libc_cv_target_power8_ok=yes - libc_cv_visibility_attribute=yes - libc_cv_z_combreloc=yes - libc_cv_z_execstack=yes - libc_cv_z_initfirst=yes - libc_cv_z_nodelete=yes - libc_cv_z_nodlopen=yes - libc_cv_z_relro=yes - libc_mips_abi=${ABI} - libc_mips_float=$([[ $(tc-is-softfloat) == "yes" ]] && echo soft || echo hard) - # These libs don't have configure flags. - ac_cv_lib_audit_audit_log_user_avc_message=no - ac_cv_lib_cap_cap_init=no - ) - - einfo "Forcing cached settings:" - for v in "${vars[@]}" ; do - einfo " ${v}" - export ${v} - done - - local headers_only_arch_CPPFLAGS=() - - # Blow away some random CC settings that screw things up. #550192 - if [[ -d ${S}/sysdeps/mips ]]; then - pushd "${S}"/sysdeps/mips >/dev/null - sed -i -e '/^CC +=/s:=.*:= -D_MIPS_SZPTR=32:' mips32/Makefile mips64/n32/Makefile || die - sed -i -e '/^CC +=/s:=.*:= -D_MIPS_SZPTR=64:' mips64/n64/Makefile || die - - # Force the mips ABI to the default. This is OK because the set of - # installed headers in this phase is the same between the 3 ABIs. - # If this ever changes, this hack will break, but that's unlikely - # as glibc discourages that behavior. - # https://crbug.com/647033 - sed -i -e 's:abiflag=.*:abiflag=_ABIO32:' preconfigure || die - - popd >/dev/null - fi - - case ${CTARGET} in - riscv*) - # RISC-V interrogates the compiler to determine which target to - # build. If building the headers then we don't strictly need a - # RISC-V compiler, so the built-in definitions that are provided - # along with all RISC-V compiler might not exist. This causes - # glibc's RISC-V preconfigure script to blow up. Since we're just - # building the headers any value will actually work here, so just - # pick the standard one (rv64g/lp64d) to make the build scripts - # happy for now -- the headers are all the same anyway so it - # doesn't matter. - headers_only_arch_CPPFLAGS+=( - -D__riscv_xlen=64 - -D__riscv_flen=64 - -D__riscv_float_abi_double=1 - -D__riscv_atomic=1 - ) ;; - esac - - local myconf=() - myconf+=( - --disable-sanity-checks - --enable-hacker-mode - --without-cvs - --disable-werror - --enable-bind-now - --build=${CBUILD_OPT:-${CBUILD}} - --host=${CTARGET_OPT:-${CTARGET}} - --with-headers=$(alt_build_headers) - --prefix="$(host_eprefix)/usr" - ${EXTRA_ECONF} - ) - - # Nothing is compiled here which would affect the headers for the target. - # So forcing CC/CFLAGS is sane. - local headers_only_CC=$(tc-getBUILD_CC) - local headers_only_CFLAGS="-O1 -pipe" - local headers_only_CPPFLAGS="-U_FORTIFY_SOURCE ${headers_only_arch_CPPFLAGS[*]}" - local headers_only_LDFLAGS="" - set -- "${S}"/configure "${myconf[@]}" - echo \ - "CC=${headers_only_CC}" \ - "CFLAGS=${headers_only_CFLAGS}" \ - "CPPFLAGS=${headers_only_CPPFLAGS}" \ - "LDFLAGS=${headers_only_LDFLAGS}" \ - "$@" - CC=${headers_only_CC} \ - CFLAGS=${headers_only_CFLAGS} \ - CPPFLAGS=${headers_only_CPPFLAGS} \ - LDFLAGS="" \ - "$@" || die "failed to configure glibc" -} - -do_src_configure() { - if just_headers ; then - glibc_headers_configure - else - glibc_do_configure nptl - fi -} - -src_configure() { - foreach_abi do_src_configure -} - -do_src_compile() { - emake -C "$(builddir nptl)" -} - -src_compile() { - if just_headers ; then - return - fi - - foreach_abi do_src_compile -} - -glibc_src_test() { - cd "$(builddir nptl)" - emake check -} - -do_src_test() { - local ret=0 - - glibc_src_test - : $(( ret |= $? )) - - return ${ret} -} - -src_test() { - if just_headers ; then - return - fi - - # Give tests more time to complete. - export TIMEOUTFACTOR=5 - - foreach_abi do_src_test || die "tests failed" -} - -run_locale_gen() { - # if the host locales.gen contains no entries, we'll install everything - local root="$1" - local inplace="" - - if [[ "${root}" == "--inplace-glibc" ]] ; then - inplace="--inplace-glibc" - root="$2" - fi - - local locale_list="${root}/etc/locale.gen" - - pushd "${ED}"/$(get_libdir) >/dev/null - - if [[ -z $(locale-gen --list --config "${locale_list}") ]] ; then - [[ -z ${inplace} ]] && ewarn "Generating all locales; edit /etc/locale.gen to save time/space" - locale_list="${root}/usr/share/i18n/SUPPORTED" - fi - - locale-gen ${inplace} --jobs $(makeopts_jobs) --config "${locale_list}" \ - --destdir "${root}" - - popd >/dev/null -} - -glibc_do_src_install() { - local builddir=$(builddir nptl) - cd "${builddir}" - - emake install_root="${D}/$(build_eprefix)$(alt_prefix)" install - - # This version (2.26) provides some compatibility libraries for the NIS/NIS+ support - # which come without headers etc. Only needed for binary packages since the - # external net-libs/libnsl has increased soversion. Keep only versioned libraries. - find "${D}" -name "libnsl.a" -delete - find "${D}" -name "libnsl.so" -delete - - # Normally upstream_pv is ${PV}. Live ebuilds are exception, there we need - # to infer upstream version: - # '#define VERSION "2.26.90"' -> '2.26.90' - local upstream_pv=$(sed -n -r 's/#define VERSION "(.*)"/\1/p' "${S}"/version.h) - - # Avoid stripping binaries not targeted by ${CHOST}. Or else - # ${CHOST}-strip would break binaries build for ${CTARGET}. - is_crosscompile && dostrip -x / - # gdb thread introspection relies on local libpthreas symbols. stripping breaks it - # See Note [Disable automatic stripping] - dostrip -x $(alt_libdir)/libpthread-${upstream_pv}.so - - if [[ -e ${ED}/$(alt_usrlibdir)/libm-${upstream_pv}.a ]] ; then - # Move versioned .a file out of libdir to evade portage QA checks - # instead of using gen_usr_ldscript(). We fix ldscript as: - # "GROUP ( /usr/lib64/libm-.a ..." -> "GROUP ( /usr/lib64/glibc-/libm-.a ..." - sed -i "s@\(libm-${upstream_pv}.a\)@${P}/\1@" "${ED}"/$(alt_usrlibdir)/libm.a || die - dodir $(alt_usrlibdir)/${P} - mv "${ED}"/$(alt_usrlibdir)/libm-${upstream_pv}.a "${ED}"/$(alt_usrlibdir)/${P}/libm-${upstream_pv}.a || die - fi - - # We'll take care of the cache ourselves - rm -f "${ED}"/etc/ld.so.cache - - # Everything past this point just needs to be done once ... - is_final_abi || return 0 - - # Make sure the non-native interp can be found on multilib systems even - # if the main library set isn't installed into the right place. Maybe - # we should query the active gcc for info instead of hardcoding it ? - local i ldso_abi ldso_name - local ldso_abi_list=( - # x86 - amd64 /lib64/ld-linux-x86-64.so.2 - x32 /libx32/ld-linux-x32.so.2 - x86 /lib/ld-linux.so.2 - # mips - o32 /lib/ld.so.1 - n32 /lib32/ld.so.1 - n64 /lib64/ld.so.1 - # powerpc - ppc /lib/ld.so.1 - ppc64 /lib64/ld64.so.1 - # riscv - lp64d /lib/ld-linux-riscv64-lp64d.so.1 - lp64 /lib/ld-linux-riscv64-lp64.so.1 - # s390 - s390 /lib/ld.so.1 - s390x /lib/ld64.so.1 - # sparc - sparc32 /lib/ld-linux.so.2 - sparc64 /lib64/ld-linux.so.2 - ) - case $(tc-endian) in - little) - ldso_abi_list+=( - # arm - arm64 /lib/ld-linux-aarch64.so.1 - ) - ;; - big) - ldso_abi_list+=( - # arm - arm64 /lib/ld-linux-aarch64_be.so.1 - ) - ;; - esac - if [[ ${SYMLINK_LIB} == "yes" ]] && [[ ! -e ${ED}/$(alt_prefix)/lib ]] ; then - dosym $(get_abi_LIBDIR ${DEFAULT_ABI}) $(alt_prefix)/lib - fi - for (( i = 0; i < ${#ldso_abi_list[@]}; i += 2 )) ; do - ldso_abi=${ldso_abi_list[i]} - has ${ldso_abi} $(get_install_abis) || continue - - ldso_name="$(alt_prefix)${ldso_abi_list[i+1]}" - if [[ ! -L ${ED}/${ldso_name} && ! -e ${ED}/${ldso_name} ]] ; then - dosym ../$(get_abi_LIBDIR ${ldso_abi})/${ldso_name##*/} ${ldso_name} - fi - done - - # With devpts under Linux mounted properly, we do not need the pt_chown - # binary to be setuid. This is because the default owners/perms will be - # exactly what we want. - if ! use suid ; then - find "${ED}" -name pt_chown -exec chmod -s {} + - fi - - ################################################################# - # EVERYTHING AFTER THIS POINT IS FOR NATIVE GLIBC INSTALLS ONLY # - # Make sure we install some symlink hacks so that when we build - # a 2nd stage cross-compiler, gcc finds the target system - # headers correctly. See gcc/doc/gccinstall.info - if is_crosscompile ; then - # We need to make sure that /lib and /usr/lib always exists. - # gcc likes to use relative paths to get to its multilibs like - # /usr/lib/../lib64/. So while we don't install any files into - # /usr/lib/, we do need it to exist. - keepdir $(alt_prefix)/lib - keepdir $(alt_prefix)/usr/lib - - dosym usr/include $(alt_prefix)/sys-include - return 0 - fi - - # Files for Debian-style locale updating - dodir /usr/share/i18n - sed \ - -e "/^#/d" \ - -e "/SUPPORTED-LOCALES=/d" \ - -e "s: \\\\::g" -e "s:/: :g" \ - "${S}"/localedata/SUPPORTED > "${ED}"/usr/share/i18n/SUPPORTED \ - || die "generating /usr/share/i18n/SUPPORTED failed" - cd "${WORKDIR}"/extra/locale - dosbin locale-gen - doman *.[0-8] - insinto /etc - doins locale.gen - - # Make sure all the ABI's can find the locales and so we only - # have to generate one set - local a - keepdir /usr/$(get_libdir)/locale - for a in $(get_install_abis) ; do - if [[ ! -e ${ED}/usr/$(get_abi_LIBDIR ${a})/locale ]] ; then - dosym ../$(get_libdir)/locale /usr/$(get_abi_LIBDIR ${a})/locale - fi - done - - # HACK: If we're building for riscv, we need to additionally make sure that - # we can find the locale archive afterwards - case ${CTARGET} in - riscv*) - if [[ ! -e ${ED}/usr/lib/locale ]] ; then - dosym ../$(get_libdir)/locale /usr/lib/locale - fi - ;; - *) ;; - esac - - cd "${S}" - - # Install misc network config files - insinto /etc - doins nscd/nscd.conf posix/gai.conf nss/nsswitch.conf - doins "${WORKDIR}"/extra/etc/*.conf - - if use nscd ; then - doinitd "$(prefixify_ro "${WORKDIR}"/extra/etc/nscd)" - - local nscd_args=( - -e "s:@PIDFILE@:$(strings "${ED}"/usr/sbin/nscd | grep nscd.pid):" - ) - - sed -i "${nscd_args[@]}" "${ED}"/etc/init.d/nscd - - systemd_dounit nscd/nscd.service - systemd_newtmpfilesd nscd/nscd.tmpfiles nscd.conf - else - # Do this since extra/etc/*.conf above might have nscd.conf. - rm -f "${ED}"/etc/nscd.conf - fi - - echo 'LDPATH="include ld.so.conf.d/*.conf"' > "${T}"/00glibc - doenvd "${T}"/00glibc - - for d in BUGS ChangeLog CONFORMANCE FAQ NEWS NOTES PROJECTS README* ; do - [[ -s ${d} ]] && dodoc ${d} - done - dodoc -r ChangeLog.old - - # Prevent overwriting of the /etc/localtime symlink. We'll handle the - # creation of the "factory" symlink in pkg_postinst(). - rm -f "${ED}"/etc/localtime - - # Generate all locales if this is a native build as locale generation - if use compile-locales && ! is_crosscompile ; then - run_locale_gen --inplace-glibc "${ED}/" - sed -e 's:COMPILED_LOCALES="":COMPILED_LOCALES="1":' -i "${ED}"/usr/sbin/locale-gen || die - fi -} - -glibc_headers_install() { - local builddir=$(builddir "headers") - cd "${builddir}" - emake install_root="${D}/$(build_eprefix)$(alt_prefix)" install-headers - - insinto $(alt_headers)/gnu - doins "${S}"/include/gnu/stubs.h - - # Make sure we install the sys-include symlink so that when - # we build a 2nd stage cross-compiler, gcc finds the target - # system headers correctly. See gcc/doc/gccinstall.info - dosym usr/include $(alt_prefix)/sys-include -} - -src_install() { - if just_headers ; then - export ABI=default - glibc_headers_install - return - fi - - foreach_abi glibc_do_src_install - - if ! use static-libs ; then - elog "Not installing static glibc libraries" - find "${ED}" -name "*.a" -and -not -name "*_nonshared.a" -delete - fi -} - -# Simple test to make sure our new glibc isn't completely broken. -# Make sure we don't test with statically built binaries since -# they will fail. Also, skip if this glibc is a cross compiler. -# -# If coreutils is built with USE=multicall, some of these files -# will just be wrapper scripts, not actual ELFs we can test. -glibc_sanity_check() { - cd / #228809 - - # We enter ${ED} so to avoid trouble if the path contains - # special characters; for instance if the path contains the - # colon character (:), then the linker will try to split it - # and look for the libraries in an unexpected place. This can - # lead to unsafe code execution if the generated prefix is - # within a world-writable directory. - # (e.g. /var/tmp/portage:${HOSTNAME}) - pushd "${ED}"/$(get_libdir) >/dev/null - - local x striptest - for x in cal date env free ls true uname uptime ; do - x=$(type -p ${x}) - [[ -z ${x} || ${x} != ${EPREFIX}/* ]] && continue - striptest=$(LC_ALL="C" file -L ${x} 2>/dev/null) || continue - case ${striptest} in - *"statically linked"*) continue;; - *"ASCII text"*) continue;; - esac - # We need to clear the locale settings as the upgrade might want - # incompatible locale data. This test is not for verifying that. - LC_ALL=C \ - ./ld-*.so --library-path . ${x} > /dev/null \ - || die "simple run test (${x}) failed" - done - - popd >/dev/null -} - -pkg_preinst() { - # nothing to do if just installing headers - just_headers && return - - # prepare /etc/ld.so.conf.d/ for files - mkdir -p "${EROOT}"/etc/ld.so.conf.d - - # Default /etc/hosts.conf:multi to on for systems with small dbs. - if [[ $(wc -l < "${EROOT}"/etc/hosts) -lt 1000 ]] ; then - sed -i '/^multi off/s:off:on:' "${ED}"/etc/host.conf - einfo "Defaulting /etc/host.conf:multi to on" - fi - - [[ -n ${ROOT} ]] && return 0 - [[ -d ${ED}/$(get_libdir) ]] || return 0 - [[ -z ${BOOTSTRAP_RAP} ]] && glibc_sanity_check -} - -pkg_postinst() { - # nothing to do if just installing headers - just_headers && return - - if ! tc-is-cross-compiler && [[ -x ${EROOT}/usr/sbin/iconvconfig ]] ; then - # Generate fastloading iconv module configuration file. - "${EROOT}"/usr/sbin/iconvconfig --prefix="${ROOT}/" - fi - - if ! is_crosscompile && [[ -z ${ROOT} ]] ; then - use compile-locales || run_locale_gen "${EROOT}/" - fi - - # Check for sanity of /etc/nsswitch.conf, take 2 - if [[ -e ${EROOT}/etc/nsswitch.conf ]] && ! has_version sys-auth/libnss-nis ; then - local entry - for entry in passwd group shadow; do - if egrep -q "^[ \t]*${entry}:.*nis" "${EROOT}"/etc/nsswitch.conf; then - ewarn "" - ewarn "Your ${EROOT}/etc/nsswitch.conf uses NIS. Support for that has been" - ewarn "removed from glibc and is now provided by the package" - ewarn " sys-auth/libnss-nis" - ewarn "Install it now to keep your NIS setup working." - ewarn "" - fi - done - fi -} diff --git a/sys-libs/glibc/glibc-2.30-r3.ebuild b/sys-libs/glibc/glibc-2.30-r3.ebuild deleted file mode 100644 index d1da04b428a1..000000000000 --- a/sys-libs/glibc/glibc-2.30-r3.ebuild +++ /dev/null @@ -1,1490 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -PYTHON_COMPAT=( python3_{6,7,8} ) - -inherit python-any-r1 prefix eutils toolchain-funcs flag-o-matic gnuconfig \ - multilib systemd multiprocessing - -DESCRIPTION="GNU libc C library" -HOMEPAGE="https://www.gnu.org/software/libc/" -LICENSE="LGPL-2.1+ BSD HPND ISC inner-net rc PCRE" -SLOT="2.2" - -EMULTILIB_PKG="true" - -if [[ ${PV} == 9999* ]]; then - EGIT_REPO_URI="https://sourceware.org/git/glibc.git" - inherit git-r3 -else - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sh ~sparc ~x86" - SRC_URI="mirror://gnu/glibc/${P}.tar.xz" -fi - -RELEASE_VER=${PV} - -GCC_BOOTSTRAP_VER=20180511 - -# Gentoo patchset -PATCH_VER=4 -PATCH_DEV=dilfridge - -SRC_URI+=" https://dev.gentoo.org/~${PATCH_DEV}/distfiles/${P}-patches-${PATCH_VER}.tar.xz" -SRC_URI+=" multilib? ( https://dev.gentoo.org/~dilfridge/distfiles/gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}.tar.xz )" - -IUSE="audit caps cet compile-locales +crypt custom-cflags doc gd headers-only +multiarch multilib nscd profile selinux +ssp +static-libs suid systemtap test vanilla" - -# Minimum kernel version that glibc requires -MIN_KERN_VER="3.2.0" - -# Here's how the cross-compile logic breaks down ... -# CTARGET - machine that will target the binaries -# CHOST - machine that will host the binaries -# CBUILD - machine that will build the binaries -# If CTARGET != CHOST, it means you want a libc for cross-compiling. -# If CHOST != CBUILD, it means you want to cross-compile the libc. -# CBUILD = CHOST = CTARGET - native build/install -# CBUILD != (CHOST = CTARGET) - cross-compile a native build -# (CBUILD = CHOST) != CTARGET - libc for cross-compiler -# CBUILD != CHOST != CTARGET - cross-compile a libc for a cross-compiler -# For install paths: -# CHOST = CTARGET - install into / -# CHOST != CTARGET - install into /usr/CTARGET/ -# -export CBUILD=${CBUILD:-${CHOST}} -export CTARGET=${CTARGET:-${CHOST}} -if [[ ${CTARGET} == ${CHOST} ]] ; then - if [[ ${CATEGORY} == cross-* ]] ; then - export CTARGET=${CATEGORY#cross-} - fi -fi - -# Note [Disable automatic stripping] -# Disabling automatic stripping for a few reasons: -# - portage's attempt to strip breaks non-native binaries at least on -# arm: bug #697428 -# - portage's attempt to strip libpthread.so.0 breaks gdb thread -# enumeration: bug #697910. This is quite subtle: -# * gdb uses glibc's libthread_db-1.0.so to enumerate threads. -# * libthread_db-1.0.so needs access to libpthread.so.0 local symbols -# via 'ps_pglobal_lookup' symbol defined in gdb. -# * 'ps_pglobal_lookup' uses '.symtab' section table to resolve all -# known symbols in 'libpthread.so.0'. Specifically 'nptl_version' -# (unexported) is used to sanity check compatibility before enabling -# debugging. -# Also see https://sourceware.org/gdb/wiki/FAQ#GDB_does_not_see_any_threads_besides_the_one_in_which_crash_occurred.3B_or_SIGTRAP_kills_my_program_when_I_set_a_breakpoint -# * normal 'strip' command trims '.symtab' -# Thus our main goal here is to prevent 'libpthread.so.0' from -# losing it's '.symtab' entries. -# As Gentoo's strip does not allow us to pass less aggressive stripping -# options and does not check the machine target we strip selectively. - -# We need a new-enough binutils/gcc to match upstream baseline. -# Also we need to make sure our binutils/gcc supports TLS, -# and that gcc already contains the hardened patches. -BDEPEND=" - ${PYTHON_DEPS} - >=app-misc/pax-utils-0.1.10 - sys-devel/bison - !' | $(tc-getCPP ${CTARGET}) ${CFLAGS} 2>&1 | grep -o '[^"]*linux/version.h') - ALT_BUILD_HEADERS=${header_path%/linux/version.h} - fi - fi - fi - echo "${ALT_BUILD_HEADERS}" -} - -alt_libdir() { - echo $(alt_prefix)/$(get_libdir) -} -alt_usrlibdir() { - echo $(alt_prefix)/usr/$(get_libdir) -} - -builddir() { - echo "${WORKDIR}/build-${ABI}-${CTARGET}-$1" -} - -do_compile_test() { - local ret save_cflags=${CFLAGS} - CFLAGS+=" $1" - shift - - pushd "${T}" >/dev/null - - rm -f glibc-test* - printf '%b' "$*" > glibc-test.c - - nonfatal emake glibc-test - ret=$? - - popd >/dev/null - - CFLAGS=${save_cflags} - return ${ret} -} - -do_run_test() { - local ret - - if [[ ${MERGE_TYPE} == "binary" ]] ; then - # ignore build failures when installing a binary package #324685 - do_compile_test "" "$@" 2>/dev/null || return 0 - else - if ! do_compile_test "" "$@" ; then - ewarn "Simple build failed ... assuming this is desired #324685" - return 0 - fi - fi - - pushd "${T}" >/dev/null - - ./glibc-test - ret=$? - rm -f glibc-test* - - popd >/dev/null - - return ${ret} -} - -setup_target_flags() { - # This largely mucks with compiler flags. None of which should matter - # when building up just the headers. - just_headers && return 0 - - case $(tc-arch) in - x86) - # -march needed for #185404 #199334 - # TODO: When creating the first glibc cross-compile, this test will - # always fail as it does a full link which in turn requires glibc. - # Probably also applies when changing multilib profile settings (e.g. - # enabling x86 when the profile was amd64-only previously). - # We could change main to _start and pass -nostdlib here so that we - # only test the gcc code compilation. Or we could do a compile and - # then look for the symbol via scanelf. - if ! do_compile_test "" 'void f(int i, void *p) {if (__sync_fetch_and_add(&i, 1)) f(i, p);}\nint main(){return 0;}\n'; then - local t=${CTARGET_OPT:-${CTARGET}} - t=${t%%-*} - filter-flags '-march=*' - export CFLAGS="-march=${t} ${CFLAGS}" - einfo "Auto adding -march=${t} to CFLAGS #185404" - fi - ;; - amd64) - # -march needed for #185404 #199334 - # TODO: See cross-compile issues listed above for x86. - [[ ${ABI} == x86 ]] && - if ! do_compile_test "${CFLAGS_x86}" 'void f(int i, void *p) {if (__sync_fetch_and_add(&i, 1)) f(i, p);}\nint main(){return 0;}\n'; then - local t=${CTARGET_OPT:-${CTARGET}} - t=${t%%-*} - # Normally the target is x86_64-xxx, so turn that into the -march that - # gcc actually accepts. #528708 - [[ ${t} == "x86_64" ]] && t="x86-64" - filter-flags '-march=*' - # ugly, ugly, ugly. ugly. - CFLAGS_x86=$(CFLAGS=${CFLAGS_x86} filter-flags '-march=*'; echo "${CFLAGS}") - export CFLAGS_x86="${CFLAGS_x86} -march=${t}" - einfo "Auto adding -march=${t} to CFLAGS_x86 #185404 (ABI=${ABI})" - fi - ;; - mips) - # The mips abi cannot support the GNU style hashes. #233233 - filter-ldflags -Wl,--hash-style=gnu -Wl,--hash-style=both - ;; - sparc) - # Both sparc and sparc64 can use -fcall-used-g6. -g7 is bad, though. - filter-flags "-fcall-used-g7" - append-flags "-fcall-used-g6" - - # If the CHOST is the basic one (e.g. not sparcv9-xxx already), - # try to pick a better one so glibc can use cpu-specific .S files. - # We key off the CFLAGS to get a good value. Also need to handle - # version skew. - # We can't force users to set their CHOST to their exact machine - # as many of these are not recognized by config.sub/gcc and such :(. - # Note: If the mcpu values don't scale, we might try probing CPP defines. - # Note: Should we factor in -Wa,-AvXXX flags too ? Or -mvis/etc... ? - - local cpu - case ${CTARGET} in - sparc64-*) - case $(get-flag mcpu) in - niagara[234]) - if ver_test -ge 2.8 ; then - cpu="sparc64v2" - elif ver_test -ge 2.4 ; then - cpu="sparc64v" - elif ver_test -ge 2.2.3 ; then - cpu="sparc64b" - fi - ;; - niagara) - if ver_test -ge 2.4 ; then - cpu="sparc64v" - elif ver_test -ge 2.2.3 ; then - cpu="sparc64b" - fi - ;; - ultrasparc3) - cpu="sparc64b" - ;; - *) - # We need to force at least v9a because the base build doesn't - # work with just v9. - # https://sourceware.org/bugzilla/show_bug.cgi?id=19477 - [[ -z ${cpu} ]] && append-flags "-Wa,-xarch=v9a" - ;; - esac - ;; - sparc-*) - case $(get-flag mcpu) in - niagara[234]) - if ver_test -ge 2.8 ; then - cpu="sparcv9v2" - elif ver_test -ge 2.4 ; then - cpu="sparcv9v" - elif ver_test -ge 2.2.3 ; then - cpu="sparcv9b" - else - cpu="sparcv9" - fi - ;; - niagara) - if ver_test -ge 2.4 ; then - cpu="sparcv9v" - elif ver_test -ge 2.2.3 ; then - cpu="sparcv9b" - else - cpu="sparcv9" - fi - ;; - ultrasparc3) - cpu="sparcv9b" - ;; - v9|ultrasparc) - cpu="sparcv9" - ;; - v8|supersparc|hypersparc|leon|leon3) - cpu="sparcv8" - ;; - esac - ;; - esac - [[ -n ${cpu} ]] && CTARGET_OPT="${cpu}-${CTARGET#*-}" - ;; - esac -} - -setup_flags() { - # Make sure host make.conf doesn't pollute us - if is_crosscompile || tc-is-cross-compiler ; then - CHOST=${CTARGET} strip-unsupported-flags - fi - - # Store our CFLAGS because it's changed depending on which CTARGET - # we are building when pulling glibc on a multilib profile - CFLAGS_BASE=${CFLAGS_BASE-${CFLAGS}} - CFLAGS=${CFLAGS_BASE} - CXXFLAGS_BASE=${CXXFLAGS_BASE-${CXXFLAGS}} - CXXFLAGS=${CXXFLAGS_BASE} - ASFLAGS_BASE=${ASFLAGS_BASE-${ASFLAGS}} - ASFLAGS=${ASFLAGS_BASE} - - # Allow users to explicitly avoid flag sanitization via - # USE=custom-cflags. - if ! use custom-cflags; then - # Over-zealous CFLAGS can often cause problems. What may work for one - # person may not work for another. To avoid a large influx of bugs - # relating to failed builds, we strip most CFLAGS out to ensure as few - # problems as possible. - strip-flags - # Lock glibc at -O2; we want to be conservative here. - filter-flags '-O?' - append-flags -O2 - fi - strip-unsupported-flags - filter-flags -m32 -m64 '-mabi=*' - - # glibc aborts if rpath is set by LDFLAGS - filter-ldflags '-Wl,-rpath=*' - - # #492892 - filter-flags -frecord-gcc-switches - - unset CBUILD_OPT CTARGET_OPT - if use multilib ; then - CTARGET_OPT=$(get_abi_CTARGET) - [[ -z ${CTARGET_OPT} ]] && CTARGET_OPT=$(get_abi_CHOST) - fi - - setup_target_flags - - if [[ -n ${CTARGET_OPT} && ${CBUILD} == ${CHOST} ]] && ! is_crosscompile; then - CBUILD_OPT=${CTARGET_OPT} - fi - - # glibc's headers disallow -O0 and fail at build time: - # include/libc-symbols.h:75:3: #error "glibc cannot be compiled without optimization" - replace-flags -O0 -O1 - - filter-flags '-fstack-protector*' -} - -want_tls() { - # Archs that can use TLS (Thread Local Storage) - case $(tc-arch) in - x86) - # requires i486 or better #106556 - [[ ${CTARGET} == i[4567]86* ]] && return 0 - return 1 - ;; - esac - return 0 -} - -want__thread() { - want_tls || return 1 - - # For some reason --with-tls --with__thread is causing segfaults on sparc32. - [[ ${PROFILE_ARCH} == "sparc" ]] && return 1 - - [[ -n ${WANT__THREAD} ]] && return ${WANT__THREAD} - - # only test gcc -- can't test linking yet - tc-has-tls -c ${CTARGET} - WANT__THREAD=$? - - return ${WANT__THREAD} -} - -use_multiarch() { - # Allow user to disable runtime arch detection in multilib. - use multiarch || return 1 - # Make sure binutils is new enough to support indirect functions, - # #336792. This funky sed supports gold and bfd linkers. - local bver nver - bver=$($(tc-getLD ${CTARGET}) -v | sed -n -r '1{s:[^0-9]*::;s:^([0-9.]*).*:\1:;p}') - case $(tc-arch ${CTARGET}) in - amd64|x86) nver="2.20" ;; - arm) nver="2.22" ;; - hppa) nver="2.23" ;; - ppc|ppc64) nver="2.20" ;; - # ifunc support was added in 2.23, but glibc also needs - # machinemode which is in 2.24. - s390) nver="2.24" ;; - sparc) nver="2.21" ;; - *) return 1 ;; - esac - ver_test ${bver} -ge ${nver} -} - -# Setup toolchain variables that had historically been defined in the -# profiles for these archs. -setup_env() { - # silly users - unset LD_RUN_PATH - unset LD_ASSUME_KERNEL - - if is_crosscompile || tc-is-cross-compiler ; then - multilib_env ${CTARGET_OPT:-${CTARGET}} - - if ! use multilib ; then - MULTILIB_ABIS=${DEFAULT_ABI} - else - MULTILIB_ABIS=${MULTILIB_ABIS:-${DEFAULT_ABI}} - fi - - # If the user has CFLAGS_ in their make.conf, use that, - # and fall back on CFLAGS. - local VAR=CFLAGS_${CTARGET//[-.]/_} - CFLAGS=${!VAR-${CFLAGS}} - einfo " $(printf '%15s' 'Manual CFLAGS:') ${CFLAGS}" - fi - - setup_flags - - export ABI=${ABI:-${DEFAULT_ABI:-default}} - - if just_headers ; then - # Avoid mixing host's CC and target's CFLAGS_${ABI}: - # At this bootstrap stage we have only binutils for - # target but not compiler yet. - einfo "Skip CC ABI injection. We can't use (cross-)compiler yet." - return 0 - fi - local VAR=CFLAGS_${ABI} - # We need to export CFLAGS with abi information in them because glibc's - # configure script checks CFLAGS for some targets (like mips). Keep - # around the original clean value to avoid appending multiple ABIs on - # top of each other. - : ${__GLIBC_CC:=$(tc-getCC ${CTARGET_OPT:-${CTARGET}})} - export __GLIBC_CC CC="${__GLIBC_CC} ${!VAR}" - einfo " $(printf '%15s' 'Manual CC:') ${CC}" -} - -foreach_abi() { - setup_env - - local ret=0 - local abilist="" - if use multilib ; then - abilist=$(get_install_abis) - else - abilist=${DEFAULT_ABI} - fi - local -x ABI - for ABI in ${abilist:-default} ; do - setup_env - einfo "Running $1 for ABI ${ABI}" - $1 - : $(( ret |= $? )) - done - return ${ret} -} - -glibc_banner() { - local b="Gentoo ${PVR}" - [[ -n ${PATCH_VER} ]] && ! use vanilla && b+=" p${PATCH_VER}" - echo "${b}" -} - -check_devpts() { - # Make sure devpts is mounted correctly for use w/out setuid pt_chown. - - # If merely building the binary package, then there's nothing to verify. - [[ ${MERGE_TYPE} == "buildonly" ]] && return - - # Only sanity check when installing the native glibc. - [[ -n ${ROOT} ]] && return - - # If they're opting in to the old suid code, then no need to check. - use suid && return - - if awk '$3 == "devpts" && $4 ~ /[, ]gid=5[, ]/ { exit 1 }' /proc/mounts ; then - eerror "In order to use glibc with USE=-suid, you must make sure that" - eerror "you have devpts mounted at /dev/pts with the gid=5 option." - eerror "Openrc should do this for you, so you should check /etc/fstab" - eerror "and make sure you do not have any invalid settings there." - die "mount & fix your /dev/pts settings" - fi -} - -# The following Kernel version handling functions are mostly copied from portage -# source. It's better not to use linux-info.eclass here since a) it adds too -# much magic, see bug 326693 for some of the arguments, and b) some of the -# functions are just not provided. - -g_get_running_KV() { - uname -r - return $? -} - -g_KV_major() { - [[ -z $1 ]] && return 1 - local KV=$@ - echo "${KV%%.*}" -} - -g_KV_minor() { - [[ -z $1 ]] && return 1 - local KV=$@ - KV=${KV#*.} - echo "${KV%%.*}" -} - -g_KV_micro() { - [[ -z $1 ]] && return 1 - local KV=$@ - KV=${KV#*.*.} - echo "${KV%%[^[:digit:]]*}" -} - -g_KV_to_int() { - [[ -z $1 ]] && return 1 - local KV_MAJOR=$(g_KV_major "$1") - local KV_MINOR=$(g_KV_minor "$1") - local KV_MICRO=$(g_KV_micro "$1") - local KV_int=$(( KV_MAJOR * 65536 + KV_MINOR * 256 + KV_MICRO )) - - # We make version 2.2.0 the minimum version we will handle as - # a sanity check ... if its less, we fail ... - if [[ ${KV_int} -ge 131584 ]] ; then - echo "${KV_int}" - return 0 - fi - return 1 -} - -g_int_to_KV() { - local version=$1 major minor micro - major=$((version / 65536)) - minor=$(((version % 65536) / 256)) - micro=$((version % 256)) - echo ${major}.${minor}.${micro} -} - -eend_KV() { - [[ $(g_KV_to_int $1) -ge $(g_KV_to_int $2) ]] - eend $? -} - -get_kheader_version() { - printf '#include \nLINUX_VERSION_CODE\n' | \ - $(tc-getCPP ${CTARGET}) -I "$(build_eprefix)$(alt_build_headers)" - | \ - tail -n 1 -} - -# We collect all sanity checks here. Consistency is not guranteed between -# pkg_ and src_ phases, so we call this function both in pkg_pretend and in -# src_unpack. -sanity_prechecks() { - # Make sure devpts is mounted correctly for use w/out setuid pt_chown - check_devpts - - # Prevent native builds from downgrading - if [[ ${MERGE_TYPE} != "buildonly" ]] && \ - [[ -z ${ROOT} ]] && \ - [[ ${CBUILD} == ${CHOST} ]] && \ - [[ ${CHOST} == ${CTARGET} ]] ; then - - # The high rev # is to allow people to downgrade between -r# - # versions. We want to block 2.20->2.19, but 2.20-r3->2.20-r2 - # should be fine. Hopefully we never actually use a r# this - # high. - if has_version ">${CATEGORY}/${P}-r10000" ; then - eerror "Sanity check to keep you from breaking your system:" - eerror " Downgrading glibc is not supported and a sure way to destruction." - [[ ${I_ALLOW_TO_BREAK_MY_SYSTEM} = yes ]] || die "Aborting to save your system." - fi - - if ! do_run_test '#include \n#include \nint main(){return syscall(1000)!=-1;}\n' ; then - eerror "Your old kernel is broken. You need to update it to a newer" - eerror "version as syscall() will break. See bug 279260." - die "Old and broken kernel." - fi - fi - - # Users have had a chance to phase themselves, time to give em the boot - if [[ -e ${EROOT}/etc/locale.gen ]] && [[ -e ${EROOT}/etc/locales.build ]] ; then - eerror "You still haven't deleted ${EROOT}/etc/locales.build." - eerror "Do so now after making sure ${EROOT}/etc/locale.gen is kosher." - die "Lazy upgrader detected" - fi - - if [[ ${CTARGET} == i386-* ]] ; then - eerror "i386 CHOSTs are no longer supported." - eerror "Chances are you don't actually want/need i386." - eerror "Please read https://www.gentoo.org/doc/en/change-chost.xml" - die "Please fix your CHOST" - fi - - if [[ -e /proc/xen ]] && [[ $(tc-arch) == "x86" ]] && ! is-flag -mno-tls-direct-seg-refs ; then - ewarn "You are using Xen but don't have -mno-tls-direct-seg-refs in your CFLAGS." - ewarn "This will result in a 50% performance penalty when running with a 32bit" - ewarn "hypervisor, which is probably not what you want." - fi - - # Check for sanity of /etc/nsswitch.conf - if [[ -e ${EROOT}/etc/nsswitch.conf ]] ; then - local entry - for entry in passwd group shadow; do - if ! egrep -q "^[ \t]*${entry}:.*files" "${EROOT}"/etc/nsswitch.conf; then - eerror "Your ${EROOT}/etc/nsswitch.conf is out of date." - eerror "Please make sure you have 'files' entries for" - eerror "'passwd:', 'group:' and 'shadow:' databases." - eerror "For more details see:" - eerror " https://wiki.gentoo.org/wiki/Project:Toolchain/nsswitch.conf_in_glibc-2.26" - die "nsswitch.conf has no 'files' provider in '${entry}'." - fi - done - fi - - # ABI-specific checks follow here. Hey, we have a lot more specific conditions that - # we test for... - if ! is_crosscompile ; then - if use amd64 && use multilib && [[ ${MERGE_TYPE} != "binary" ]] ; then - ebegin "Checking that IA32 emulation is enabled in the running kernel" - echo 'int main(){return 0;}' > "${T}/check-ia32-emulation.c" - local STAT - if "${CC-${CHOST}-gcc}" ${CFLAGS_x86} "${T}/check-ia32-emulation.c" -o "${T}/check-ia32-emulation.elf32"; then - "${T}/check-ia32-emulation.elf32" - STAT=$? - else - # Don't fail here to allow single->multi ABI switch - # or recover from breakage like bug #646424 - ewarn "Failed to compile the ABI test. Broken host glibc?" - STAT=0 - fi - rm -f "${T}/check-ia32-emulation.elf32" - eend $STAT - [[ $STAT -eq 0 ]] || die "CONFIG_IA32_EMULATION must be enabled in the kernel to compile a multilib glibc." - fi - - fi - - # When we actually have to compile something... - if ! just_headers ; then - ebegin "Checking gcc for __thread support" - if ! eend $(want__thread ; echo $?) ; then - echo - eerror "Could not find a gcc that supports the __thread directive!" - eerror "Please update your binutils/gcc and try again." - die "No __thread support in gcc!" - fi - - if [[ ${CTARGET} == *-linux* ]] ; then - local run_kv build_kv want_kv - - run_kv=$(g_get_running_KV) - build_kv=$(g_int_to_KV $(get_kheader_version)) - want_kv=${MIN_KERN_VER} - - if ! is_crosscompile && ! tc-is-cross-compiler ; then - # Building fails on an non-supporting kernel - ebegin "Checking running kernel version (${run_kv} >= ${want_kv})" - if ! eend_KV ${run_kv} ${want_kv} ; then - echo - eerror "You need a kernel of at least ${want_kv}!" - die "Kernel version too low!" - fi - fi - - ebegin "Checking linux-headers version (${build_kv} >= ${want_kv})" - if ! eend_KV ${build_kv} ${want_kv} ; then - echo - eerror "You need linux-headers of at least ${want_kv}!" - die "linux-headers version too low!" - fi - fi - fi -} - -# -# the phases -# - -# pkg_pretend - -pkg_pretend() { - # All the checks... - einfo "Checking general environment sanity." - sanity_prechecks -} - -pkg_setup() { - # see bug 682570 - [[ -z ${BOOTSTRAP_RAP} ]] && python-any-r1_pkg_setup -} - -# src_unpack - -src_unpack() { - # Consistency is not guaranteed between pkg_ and src_ ... - sanity_prechecks - - use multilib && unpack gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}.tar.xz - - setup_env - - if [[ -n ${EGIT_REPO_URI} ]] ; then - git-r3_src_unpack - else - unpack ${P}.tar.xz - fi - - cd "${WORKDIR}" || die - unpack glibc-${RELEASE_VER}-patches-${PATCH_VER}.tar.xz -} - -src_prepare() { - if ! use vanilla ; then - elog "Applying Gentoo Glibc Patchset ${RELEASE_VER}-${PATCH_VER}" - eapply "${WORKDIR}"/patches - einfo "Done." - fi - - default - - gnuconfig_update - - cd "${WORKDIR}" - find . -name configure -exec touch {} + - - eprefixify extra/locale/locale-gen - - # Fix permissions on some of the scripts. - chmod u+x "${S}"/scripts/*.sh - - cd "${S}" -} - -glibc_do_configure() { - # Glibc does not work with gold (for various reasons) #269274. - tc-ld-disable-gold - - # CXX isnt handled by the multilib system, so if we dont unset here - # we accumulate crap across abis - unset CXX - - einfo "Configuring glibc for nptl" - - if use doc ; then - export MAKEINFO=makeinfo - else - export MAKEINFO=/dev/null - fi - - local v - for v in ABI CBUILD CHOST CTARGET CBUILD_OPT CTARGET_OPT CC CXX LD {AS,C,CPP,CXX,LD}FLAGS MAKEINFO ; do - einfo " $(printf '%15s' ${v}:) ${!v}" - done - - # CFLAGS can contain ABI-specific flags like -mfpu=neon, see bug #657760 - # To build .S (assembly) files with the same ABI-specific flags - # upstream currently recommends adding CFLAGS to CC/CXX: - # https://sourceware.org/PR23273 - # Note: Passing CFLAGS via CPPFLAGS overrides glibc's arch-specific CFLAGS - # and breaks multiarch support. See 659030#c3 for an example. - # The glibc configure script doesn't properly use LDFLAGS all the time. - export CC="$(tc-getCC ${CTARGET}) ${CFLAGS} ${LDFLAGS}" - einfo " $(printf '%15s' 'Manual CC:') ${CC}" - - # Some of the tests are written in C++, so we need to force our multlib abis in, bug 623548 - export CXX="$(tc-getCXX ${CTARGET}) $(get_abi_CFLAGS) ${CFLAGS}" - - if is_crosscompile; then - # Assume worst-case bootstrap: glibc is buil first time - # when ${CTARGET}-g++ is not available yet. We avoid - # building auxiliary programs that require C++: bug #683074 - # It should not affect final result. - export libc_cv_cxx_link_ok=no - # The line above has the same effect. We set CXX explicitly - # to make build logs less confusing. - export CXX= - fi - einfo " $(printf '%15s' 'Manual CXX:') ${CXX}" - - echo - - local myconf=() - - case ${CTARGET} in - m68k*) - # setjmp() is not compatible with stack protection: - # https://sourceware.org/PR24202 - myconf+=( --enable-stack-protector=no ) - ;; - powerpc-*) - # Currently gcc on powerpc32 generates invalid code for - # __builtin_return_address(0) calls. Normally programs - # don't do that but malloc hooks in glibc do: - # https://gcc.gnu.org/PR81996 - # https://bugs.gentoo.org/629054 - myconf+=( --enable-stack-protector=no ) - ;; - *) - myconf+=( --enable-stack-protector=$(usex ssp all no) ) - ;; - esac - myconf+=( --enable-stackguard-randomization ) - - # Keep a whitelist of targets supporing IFUNC. glibc's ./configure - # is not robust enough to detect proper support: - # https://bugs.gentoo.org/641216 - # https://sourceware.org/PR22634#c0 - case $(tc-arch ${CTARGET}) in - # Keep whitelist of targets where autodetection mostly works. - amd64|x86|sparc|ppc|ppc64|arm|arm64|s390) ;; - # Blacklist everywhere else - *) myconf+=( libc_cv_ld_gnu_indirect_function=no ) ;; - esac - - # Enable Intel Control-flow Enforcement Technology on amd64 if requested - case ${CTARGET} in - x86_64-*) myconf+=( $(use_enable cet) ) ;; - *) ;; - esac - - [[ $(tc-is-softfloat) == "yes" ]] && myconf+=( --without-fp ) - - myconf+=( --enable-kernel=${MIN_KERN_VER} ) - - # Since SELinux support is only required for nscd, only enable it if: - # 1. USE selinux - # 2. only for the primary ABI on multilib systems - # 3. Not a crosscompile - if ! is_crosscompile && use selinux ; then - if use multilib ; then - if is_final_abi ; then - myconf+=( --with-selinux ) - else - myconf+=( --without-selinux ) - fi - else - myconf+=( --with-selinux ) - fi - else - myconf+=( --without-selinux ) - fi - - # Force a few tests where we always know the answer but - # configure is incapable of finding it. - if is_crosscompile ; then - export \ - libc_cv_c_cleanup=yes \ - libc_cv_forced_unwind=yes - fi - - myconf+=( - --without-cvs - --disable-werror - --enable-bind-now - --build=${CBUILD_OPT:-${CBUILD}} - --host=${CTARGET_OPT:-${CTARGET}} - $(use_enable profile) - $(use_with gd) - --with-headers=$(build_eprefix)$(alt_build_headers) - --prefix="$(host_eprefix)/usr" - --sysconfdir="$(host_eprefix)/etc" - --localstatedir="$(host_eprefix)/var" - --libdir='$(prefix)'/$(get_libdir) - --mandir='$(prefix)'/share/man - --infodir='$(prefix)'/share/info - --libexecdir='$(libdir)'/misc/glibc - --with-bugurl=https://bugs.gentoo.org/ - --with-pkgversion="$(glibc_banner)" - $(use_enable crypt) - $(use_multiarch || echo --disable-multi-arch) - $(use_enable systemtap) - $(use_enable nscd) - ${EXTRA_ECONF} - ) - - # We rely on sys-libs/timezone-data for timezone tools normally. - myconf+=( $(use_enable vanilla timezone-tools) ) - - # These libs don't have configure flags. - ac_cv_lib_audit_audit_log_user_avc_message=$(usex audit || echo no) - ac_cv_lib_cap_cap_init=$(usex caps || echo no) - - # There is no configure option for this and we need to export it - # since the glibc build will re-run configure on itself - export libc_cv_rootsbindir="$(host_eprefix)/sbin" - export libc_cv_slibdir="$(host_eprefix)/$(get_libdir)" - - # We take care of patching our binutils to use both hash styles, - # and many people like to force gnu hash style only, so disable - # this overriding check. #347761 - export libc_cv_hashstyle=no - - local builddir=$(builddir nptl) - mkdir -p "${builddir}" - cd "${builddir}" - set -- "${S}"/configure "${myconf[@]}" - echo "$@" - "$@" || die "failed to configure glibc" - - # ia64 static cross-compilers are a pita in so much that they - # can't produce static ELFs (as the libgcc.a is broken). so - # disable building of the programs for those targets if it - # doesn't work. - # XXX: We could turn this into a compiler test, but ia64 is - # the only one that matters, so this should be fine for now. - if is_crosscompile && [[ ${CTARGET} == ia64* ]] ; then - sed -i '1i+link-static = touch $@' config.make - fi - - # If we're trying to migrate between ABI sets, we need - # to lie and use a local copy of gcc. Like if the system - # is built with MULTILIB_ABIS="amd64 x86" but we want to - # add x32 to it, gcc/glibc don't yet support x32. - # - if [[ -n ${GCC_BOOTSTRAP_VER} ]] && use multilib ; then - echo 'main(){}' > "${T}"/test.c - if ! $(tc-getCC ${CTARGET}) ${CFLAGS} ${LDFLAGS} "${T}"/test.c -Wl,-emain -lgcc 2>/dev/null ; then - sed -i -e '/^CC = /s:$: -B$(objdir)/../'"gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}/${ABI}:" config.make || die - fi - fi -} - -glibc_headers_configure() { - export ABI=default - - local builddir=$(builddir "headers") - mkdir -p "${builddir}" - cd "${builddir}" - - # if we don't have a compiler yet, we can't really test it now ... - # hopefully they don't affect header generation, so let's hope for - # the best here ... - local v vars=( - ac_cv_header_cpuid_h=yes - libc_cv_{386,390,alpha,arm,hppa,ia64,mips,{powerpc,sparc}{,32,64},sh,x86_64}_tls=yes - libc_cv_asm_cfi_directives=yes - libc_cv_broken_visibility_attribute=no - libc_cv_c_cleanup=yes - libc_cv_compiler_powerpc64le_binary128_ok=yes - libc_cv_forced_unwind=yes - libc_cv_gcc___thread=yes - libc_cv_mlong_double_128=yes - libc_cv_mlong_double_128ibm=yes - libc_cv_ppc_machine=yes - libc_cv_ppc_rel16=yes - libc_cv_predef_fortify_source=no - libc_cv_target_power8_ok=yes - libc_cv_visibility_attribute=yes - libc_cv_z_combreloc=yes - libc_cv_z_execstack=yes - libc_cv_z_initfirst=yes - libc_cv_z_nodelete=yes - libc_cv_z_nodlopen=yes - libc_cv_z_relro=yes - libc_mips_abi=${ABI} - libc_mips_float=$([[ $(tc-is-softfloat) == "yes" ]] && echo soft || echo hard) - # These libs don't have configure flags. - ac_cv_lib_audit_audit_log_user_avc_message=no - ac_cv_lib_cap_cap_init=no - ) - - einfo "Forcing cached settings:" - for v in "${vars[@]}" ; do - einfo " ${v}" - export ${v} - done - - local headers_only_arch_CPPFLAGS=() - - # Blow away some random CC settings that screw things up. #550192 - if [[ -d ${S}/sysdeps/mips ]]; then - pushd "${S}"/sysdeps/mips >/dev/null - sed -i -e '/^CC +=/s:=.*:= -D_MIPS_SZPTR=32:' mips32/Makefile mips64/n32/Makefile || die - sed -i -e '/^CC +=/s:=.*:= -D_MIPS_SZPTR=64:' mips64/n64/Makefile || die - - # Force the mips ABI to the default. This is OK because the set of - # installed headers in this phase is the same between the 3 ABIs. - # If this ever changes, this hack will break, but that's unlikely - # as glibc discourages that behavior. - # https://crbug.com/647033 - sed -i -e 's:abiflag=.*:abiflag=_ABIO32:' preconfigure || die - - popd >/dev/null - fi - - case ${CTARGET} in - riscv*) - # RISC-V interrogates the compiler to determine which target to - # build. If building the headers then we don't strictly need a - # RISC-V compiler, so the built-in definitions that are provided - # along with all RISC-V compiler might not exist. This causes - # glibc's RISC-V preconfigure script to blow up. Since we're just - # building the headers any value will actually work here, so just - # pick the standard one (rv64g/lp64d) to make the build scripts - # happy for now -- the headers are all the same anyway so it - # doesn't matter. - headers_only_arch_CPPFLAGS+=( - -D__riscv_xlen=64 - -D__riscv_flen=64 - -D__riscv_float_abi_double=1 - -D__riscv_atomic=1 - ) ;; - esac - - local myconf=() - myconf+=( - --disable-sanity-checks - --enable-hacker-mode - --without-cvs - --disable-werror - --enable-bind-now - --build=${CBUILD_OPT:-${CBUILD}} - --host=${CTARGET_OPT:-${CTARGET}} - --with-headers=$(build_eprefix)$(alt_build_headers) - --prefix="$(host_eprefix)/usr" - ${EXTRA_ECONF} - ) - - # Nothing is compiled here which would affect the headers for the target. - # So forcing CC/CFLAGS is sane. - local headers_only_CC=$(tc-getBUILD_CC) - local headers_only_CFLAGS="-O1 -pipe" - local headers_only_CPPFLAGS="-U_FORTIFY_SOURCE ${headers_only_arch_CPPFLAGS[*]}" - local headers_only_LDFLAGS="" - set -- "${S}"/configure "${myconf[@]}" - echo \ - "CC=${headers_only_CC}" \ - "CFLAGS=${headers_only_CFLAGS}" \ - "CPPFLAGS=${headers_only_CPPFLAGS}" \ - "LDFLAGS=${headers_only_LDFLAGS}" \ - "$@" - CC=${headers_only_CC} \ - CFLAGS=${headers_only_CFLAGS} \ - CPPFLAGS=${headers_only_CPPFLAGS} \ - LDFLAGS="" \ - "$@" || die "failed to configure glibc" -} - -do_src_configure() { - if just_headers ; then - glibc_headers_configure - else - glibc_do_configure nptl - fi -} - -src_configure() { - foreach_abi do_src_configure -} - -do_src_compile() { - emake -C "$(builddir nptl)" -} - -src_compile() { - if just_headers ; then - return - fi - - foreach_abi do_src_compile -} - -glibc_src_test() { - cd "$(builddir nptl)" - emake check -} - -do_src_test() { - local ret=0 - - glibc_src_test - : $(( ret |= $? )) - - return ${ret} -} - -src_test() { - if just_headers ; then - return - fi - - # Give tests more time to complete. - export TIMEOUTFACTOR=5 - - foreach_abi do_src_test || die "tests failed" -} - -run_locale_gen() { - # if the host locales.gen contains no entries, we'll install everything - local root="$1" - local inplace="" - - if [[ "${root}" == "--inplace-glibc" ]] ; then - inplace="--inplace-glibc" - root="$2" - fi - - local locale_list="${root}/etc/locale.gen" - - pushd "${ED}"/$(get_libdir) >/dev/null - - if [[ -z $(locale-gen --list --config "${locale_list}") ]] ; then - [[ -z ${inplace} ]] && ewarn "Generating all locales; edit /etc/locale.gen to save time/space" - locale_list="${root}/usr/share/i18n/SUPPORTED" - fi - - locale-gen ${inplace} --jobs $(makeopts_jobs) --config "${locale_list}" \ - --destdir "${root}" - - popd >/dev/null -} - -glibc_do_src_install() { - local builddir=$(builddir nptl) - cd "${builddir}" - - emake install_root="${D}/$(build_eprefix)$(alt_prefix)" install - - # This version (2.26) provides some compatibility libraries for the NIS/NIS+ support - # which come without headers etc. Only needed for binary packages since the - # external net-libs/libnsl has increased soversion. Keep only versioned libraries. - find "${D}" -name "libnsl.a" -delete - find "${D}" -name "libnsl.so" -delete - - # Normally upstream_pv is ${PV}. Live ebuilds are exception, there we need - # to infer upstream version: - # '#define VERSION "2.26.90"' -> '2.26.90' - local upstream_pv=$(sed -n -r 's/#define VERSION "(.*)"/\1/p' "${S}"/version.h) - - # Avoid stripping binaries not targeted by ${CHOST}. Or else - # ${CHOST}-strip would break binaries build for ${CTARGET}. - is_crosscompile && dostrip -x / - # gdb thread introspection relies on local libpthreas symbols. stripping breaks it - # See Note [Disable automatic stripping] - dostrip -x $(alt_libdir)/libpthread-${upstream_pv}.so - - if [[ -e ${ED}/$(alt_usrlibdir)/libm-${upstream_pv}.a ]] ; then - # Move versioned .a file out of libdir to evade portage QA checks - # instead of using gen_usr_ldscript(). We fix ldscript as: - # "GROUP ( /usr/lib64/libm-.a ..." -> "GROUP ( /usr/lib64/glibc-/libm-.a ..." - sed -i "s@\(libm-${upstream_pv}.a\)@${P}/\1@" "${ED}"/$(alt_usrlibdir)/libm.a || die - dodir $(alt_usrlibdir)/${P} - mv "${ED}"/$(alt_usrlibdir)/libm-${upstream_pv}.a "${ED}"/$(alt_usrlibdir)/${P}/libm-${upstream_pv}.a || die - fi - - # We'll take care of the cache ourselves - rm -f "${ED}"/etc/ld.so.cache - - # Everything past this point just needs to be done once ... - is_final_abi || return 0 - - # Make sure the non-native interp can be found on multilib systems even - # if the main library set isn't installed into the right place. Maybe - # we should query the active gcc for info instead of hardcoding it ? - local i ldso_abi ldso_name - local ldso_abi_list=( - # x86 - amd64 /lib64/ld-linux-x86-64.so.2 - x32 /libx32/ld-linux-x32.so.2 - x86 /lib/ld-linux.so.2 - # mips - o32 /lib/ld.so.1 - n32 /lib32/ld.so.1 - n64 /lib64/ld.so.1 - # powerpc - ppc /lib/ld.so.1 - ppc64 /lib64/ld64.so.1 - # riscv - lp64d /lib/ld-linux-riscv64-lp64d.so.1 - lp64 /lib/ld-linux-riscv64-lp64.so.1 - # s390 - s390 /lib/ld.so.1 - s390x /lib/ld64.so.1 - # sparc - sparc32 /lib/ld-linux.so.2 - sparc64 /lib64/ld-linux.so.2 - ) - case $(tc-endian) in - little) - ldso_abi_list+=( - # arm - arm64 /lib/ld-linux-aarch64.so.1 - ) - ;; - big) - ldso_abi_list+=( - # arm - arm64 /lib/ld-linux-aarch64_be.so.1 - ) - ;; - esac - if [[ ${SYMLINK_LIB} == "yes" ]] && [[ ! -e ${ED}/$(alt_prefix)/lib ]] ; then - dosym $(get_abi_LIBDIR ${DEFAULT_ABI}) $(alt_prefix)/lib - fi - for (( i = 0; i < ${#ldso_abi_list[@]}; i += 2 )) ; do - ldso_abi=${ldso_abi_list[i]} - has ${ldso_abi} $(get_install_abis) || continue - - ldso_name="$(alt_prefix)${ldso_abi_list[i+1]}" - if [[ ! -L ${ED}/${ldso_name} && ! -e ${ED}/${ldso_name} ]] ; then - dosym ../$(get_abi_LIBDIR ${ldso_abi})/${ldso_name##*/} ${ldso_name} - fi - done - - # With devpts under Linux mounted properly, we do not need the pt_chown - # binary to be setuid. This is because the default owners/perms will be - # exactly what we want. - if ! use suid ; then - find "${ED}" -name pt_chown -exec chmod -s {} + - fi - - ################################################################# - # EVERYTHING AFTER THIS POINT IS FOR NATIVE GLIBC INSTALLS ONLY # - # Make sure we install some symlink hacks so that when we build - # a 2nd stage cross-compiler, gcc finds the target system - # headers correctly. See gcc/doc/gccinstall.info - if is_crosscompile ; then - # We need to make sure that /lib and /usr/lib always exists. - # gcc likes to use relative paths to get to its multilibs like - # /usr/lib/../lib64/. So while we don't install any files into - # /usr/lib/, we do need it to exist. - keepdir $(alt_prefix)/lib - keepdir $(alt_prefix)/usr/lib - - dosym usr/include $(alt_prefix)/sys-include - return 0 - fi - - # Files for Debian-style locale updating - dodir /usr/share/i18n - sed \ - -e "/^#/d" \ - -e "/SUPPORTED-LOCALES=/d" \ - -e "s: \\\\::g" -e "s:/: :g" \ - "${S}"/localedata/SUPPORTED > "${ED}"/usr/share/i18n/SUPPORTED \ - || die "generating /usr/share/i18n/SUPPORTED failed" - cd "${WORKDIR}"/extra/locale - dosbin locale-gen - doman *.[0-8] - insinto /etc - doins locale.gen - - # Make sure all the ABI's can find the locales and so we only - # have to generate one set - local a - keepdir /usr/$(get_libdir)/locale - for a in $(get_install_abis) ; do - if [[ ! -e ${ED}/usr/$(get_abi_LIBDIR ${a})/locale ]] ; then - dosym ../$(get_libdir)/locale /usr/$(get_abi_LIBDIR ${a})/locale - fi - done - - # HACK: If we're building for riscv, we need to additionally make sure that - # we can find the locale archive afterwards - case ${CTARGET} in - riscv*) - if [[ ! -e ${ED}/usr/lib/locale ]] ; then - dosym ../$(get_libdir)/locale /usr/lib/locale - fi - ;; - *) ;; - esac - - cd "${S}" - - # Install misc network config files - insinto /etc - doins nscd/nscd.conf posix/gai.conf nss/nsswitch.conf - doins "${WORKDIR}"/extra/etc/*.conf - - if use nscd ; then - doinitd "$(prefixify_ro "${WORKDIR}"/extra/etc/nscd)" - - local nscd_args=( - -e "s:@PIDFILE@:$(strings "${ED}"/usr/sbin/nscd | grep nscd.pid):" - ) - - sed -i "${nscd_args[@]}" "${ED}"/etc/init.d/nscd - - systemd_dounit nscd/nscd.service - systemd_newtmpfilesd nscd/nscd.tmpfiles nscd.conf - else - # Do this since extra/etc/*.conf above might have nscd.conf. - rm -f "${ED}"/etc/nscd.conf - fi - - echo 'LDPATH="include ld.so.conf.d/*.conf"' > "${T}"/00glibc - doenvd "${T}"/00glibc - - for d in BUGS ChangeLog CONFORMANCE FAQ NEWS NOTES PROJECTS README* ; do - [[ -s ${d} ]] && dodoc ${d} - done - dodoc -r ChangeLog.old - - # Prevent overwriting of the /etc/localtime symlink. We'll handle the - # creation of the "factory" symlink in pkg_postinst(). - rm -f "${ED}"/etc/localtime - - # Generate all locales if this is a native build as locale generation - if use compile-locales && ! is_crosscompile ; then - run_locale_gen --inplace-glibc "${ED}/" - sed -e 's:COMPILED_LOCALES="":COMPILED_LOCALES="1":' -i "${ED}"/usr/sbin/locale-gen || die - fi -} - -glibc_headers_install() { - local builddir=$(builddir "headers") - cd "${builddir}" - emake install_root="${D}/$(build_eprefix)$(alt_prefix)" install-headers - - insinto $(alt_headers)/gnu - doins "${S}"/include/gnu/stubs.h - - # Make sure we install the sys-include symlink so that when - # we build a 2nd stage cross-compiler, gcc finds the target - # system headers correctly. See gcc/doc/gccinstall.info - dosym usr/include $(alt_prefix)/sys-include -} - -src_install() { - if just_headers ; then - export ABI=default - glibc_headers_install - return - fi - - foreach_abi glibc_do_src_install - - if ! use static-libs ; then - elog "Not installing static glibc libraries" - find "${ED}" -name "*.a" -and -not -name "*_nonshared.a" -delete - fi -} - -# Simple test to make sure our new glibc isn't completely broken. -# Make sure we don't test with statically built binaries since -# they will fail. Also, skip if this glibc is a cross compiler. -# -# If coreutils is built with USE=multicall, some of these files -# will just be wrapper scripts, not actual ELFs we can test. -glibc_sanity_check() { - cd / #228809 - - # We enter ${ED} so to avoid trouble if the path contains - # special characters; for instance if the path contains the - # colon character (:), then the linker will try to split it - # and look for the libraries in an unexpected place. This can - # lead to unsafe code execution if the generated prefix is - # within a world-writable directory. - # (e.g. /var/tmp/portage:${HOSTNAME}) - pushd "${ED}"/$(get_libdir) >/dev/null - - local x striptest - for x in cal date env free ls true uname uptime ; do - x=$(type -p ${x}) - [[ -z ${x} || ${x} != ${EPREFIX}/* ]] && continue - striptest=$(LC_ALL="C" file -L ${x} 2>/dev/null) || continue - case ${striptest} in - *"statically linked"*) continue;; - *"ASCII text"*) continue;; - esac - # We need to clear the locale settings as the upgrade might want - # incompatible locale data. This test is not for verifying that. - LC_ALL=C \ - ./ld-*.so --library-path . ${x} > /dev/null \ - || die "simple run test (${x}) failed" - done - - popd >/dev/null -} - -pkg_preinst() { - # nothing to do if just installing headers - just_headers && return - - # prepare /etc/ld.so.conf.d/ for files - mkdir -p "${EROOT}"/etc/ld.so.conf.d - - # Default /etc/hosts.conf:multi to on for systems with small dbs. - if [[ $(wc -l < "${EROOT}"/etc/hosts) -lt 1000 ]] ; then - sed -i '/^multi off/s:off:on:' "${ED}"/etc/host.conf - einfo "Defaulting /etc/host.conf:multi to on" - fi - - [[ -n ${ROOT} ]] && return 0 - [[ -d ${ED}/$(get_libdir) ]] || return 0 - [[ -z ${BOOTSTRAP_RAP} ]] && glibc_sanity_check -} - -pkg_postinst() { - # nothing to do if just installing headers - just_headers && return - - if ! tc-is-cross-compiler && [[ -x ${EROOT}/usr/sbin/iconvconfig ]] ; then - # Generate fastloading iconv module configuration file. - "${EROOT}"/usr/sbin/iconvconfig --prefix="${ROOT}/" - fi - - if ! is_crosscompile && [[ -z ${ROOT} ]] ; then - use compile-locales || run_locale_gen "${EROOT}/" - fi - - # Check for sanity of /etc/nsswitch.conf, take 2 - if [[ -e ${EROOT}/etc/nsswitch.conf ]] && ! has_version sys-auth/libnss-nis ; then - local entry - for entry in passwd group shadow; do - if egrep -q "^[ \t]*${entry}:.*nis" "${EROOT}"/etc/nsswitch.conf; then - ewarn "" - ewarn "Your ${EROOT}/etc/nsswitch.conf uses NIS. Support for that has been" - ewarn "removed from glibc and is now provided by the package" - ewarn " sys-auth/libnss-nis" - ewarn "Install it now to keep your NIS setup working." - ewarn "" - fi - done - fi -} diff --git a/sys-libs/glibc/glibc-2.30-r4.ebuild b/sys-libs/glibc/glibc-2.30-r4.ebuild deleted file mode 100644 index 807c5b3944de..000000000000 --- a/sys-libs/glibc/glibc-2.30-r4.ebuild +++ /dev/null @@ -1,1490 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -PYTHON_COMPAT=( python3_{6,7,8} ) - -inherit python-any-r1 prefix eutils toolchain-funcs flag-o-matic gnuconfig \ - multilib systemd multiprocessing - -DESCRIPTION="GNU libc C library" -HOMEPAGE="https://www.gnu.org/software/libc/" -LICENSE="LGPL-2.1+ BSD HPND ISC inner-net rc PCRE" -SLOT="2.2" - -EMULTILIB_PKG="true" - -if [[ ${PV} == 9999* ]]; then - EGIT_REPO_URI="https://sourceware.org/git/glibc.git" - inherit git-r3 -else - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sh ~sparc ~x86" - SRC_URI="mirror://gnu/glibc/${P}.tar.xz" -fi - -RELEASE_VER=${PV} - -GCC_BOOTSTRAP_VER=20180511 - -# Gentoo patchset -PATCH_VER=5 -PATCH_DEV=slyfox - -SRC_URI+=" https://dev.gentoo.org/~${PATCH_DEV}/distfiles/${P}-patches-${PATCH_VER}.tar.xz" -SRC_URI+=" multilib? ( https://dev.gentoo.org/~dilfridge/distfiles/gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}.tar.xz )" - -IUSE="audit caps cet compile-locales +crypt custom-cflags doc gd headers-only +multiarch multilib nscd profile selinux +ssp +static-libs suid systemtap test vanilla" - -# Minimum kernel version that glibc requires -MIN_KERN_VER="3.2.0" - -# Here's how the cross-compile logic breaks down ... -# CTARGET - machine that will target the binaries -# CHOST - machine that will host the binaries -# CBUILD - machine that will build the binaries -# If CTARGET != CHOST, it means you want a libc for cross-compiling. -# If CHOST != CBUILD, it means you want to cross-compile the libc. -# CBUILD = CHOST = CTARGET - native build/install -# CBUILD != (CHOST = CTARGET) - cross-compile a native build -# (CBUILD = CHOST) != CTARGET - libc for cross-compiler -# CBUILD != CHOST != CTARGET - cross-compile a libc for a cross-compiler -# For install paths: -# CHOST = CTARGET - install into / -# CHOST != CTARGET - install into /usr/CTARGET/ -# -export CBUILD=${CBUILD:-${CHOST}} -export CTARGET=${CTARGET:-${CHOST}} -if [[ ${CTARGET} == ${CHOST} ]] ; then - if [[ ${CATEGORY} == cross-* ]] ; then - export CTARGET=${CATEGORY#cross-} - fi -fi - -# Note [Disable automatic stripping] -# Disabling automatic stripping for a few reasons: -# - portage's attempt to strip breaks non-native binaries at least on -# arm: bug #697428 -# - portage's attempt to strip libpthread.so.0 breaks gdb thread -# enumeration: bug #697910. This is quite subtle: -# * gdb uses glibc's libthread_db-1.0.so to enumerate threads. -# * libthread_db-1.0.so needs access to libpthread.so.0 local symbols -# via 'ps_pglobal_lookup' symbol defined in gdb. -# * 'ps_pglobal_lookup' uses '.symtab' section table to resolve all -# known symbols in 'libpthread.so.0'. Specifically 'nptl_version' -# (unexported) is used to sanity check compatibility before enabling -# debugging. -# Also see https://sourceware.org/gdb/wiki/FAQ#GDB_does_not_see_any_threads_besides_the_one_in_which_crash_occurred.3B_or_SIGTRAP_kills_my_program_when_I_set_a_breakpoint -# * normal 'strip' command trims '.symtab' -# Thus our main goal here is to prevent 'libpthread.so.0' from -# losing it's '.symtab' entries. -# As Gentoo's strip does not allow us to pass less aggressive stripping -# options and does not check the machine target we strip selectively. - -# We need a new-enough binutils/gcc to match upstream baseline. -# Also we need to make sure our binutils/gcc supports TLS, -# and that gcc already contains the hardened patches. -BDEPEND=" - ${PYTHON_DEPS} - >=app-misc/pax-utils-0.1.10 - sys-devel/bison - !' | $(tc-getCPP ${CTARGET}) ${CFLAGS} 2>&1 | grep -o '[^"]*linux/version.h') - ALT_BUILD_HEADERS=${header_path%/linux/version.h} - fi - fi - fi - echo "${ALT_BUILD_HEADERS}" -} - -alt_libdir() { - echo $(alt_prefix)/$(get_libdir) -} -alt_usrlibdir() { - echo $(alt_prefix)/usr/$(get_libdir) -} - -builddir() { - echo "${WORKDIR}/build-${ABI}-${CTARGET}-$1" -} - -do_compile_test() { - local ret save_cflags=${CFLAGS} - CFLAGS+=" $1" - shift - - pushd "${T}" >/dev/null - - rm -f glibc-test* - printf '%b' "$*" > glibc-test.c - - nonfatal emake glibc-test - ret=$? - - popd >/dev/null - - CFLAGS=${save_cflags} - return ${ret} -} - -do_run_test() { - local ret - - if [[ ${MERGE_TYPE} == "binary" ]] ; then - # ignore build failures when installing a binary package #324685 - do_compile_test "" "$@" 2>/dev/null || return 0 - else - if ! do_compile_test "" "$@" ; then - ewarn "Simple build failed ... assuming this is desired #324685" - return 0 - fi - fi - - pushd "${T}" >/dev/null - - ./glibc-test - ret=$? - rm -f glibc-test* - - popd >/dev/null - - return ${ret} -} - -setup_target_flags() { - # This largely mucks with compiler flags. None of which should matter - # when building up just the headers. - just_headers && return 0 - - case $(tc-arch) in - x86) - # -march needed for #185404 #199334 - # TODO: When creating the first glibc cross-compile, this test will - # always fail as it does a full link which in turn requires glibc. - # Probably also applies when changing multilib profile settings (e.g. - # enabling x86 when the profile was amd64-only previously). - # We could change main to _start and pass -nostdlib here so that we - # only test the gcc code compilation. Or we could do a compile and - # then look for the symbol via scanelf. - if ! do_compile_test "" 'void f(int i, void *p) {if (__sync_fetch_and_add(&i, 1)) f(i, p);}\nint main(){return 0;}\n'; then - local t=${CTARGET_OPT:-${CTARGET}} - t=${t%%-*} - filter-flags '-march=*' - export CFLAGS="-march=${t} ${CFLAGS}" - einfo "Auto adding -march=${t} to CFLAGS #185404" - fi - ;; - amd64) - # -march needed for #185404 #199334 - # TODO: See cross-compile issues listed above for x86. - [[ ${ABI} == x86 ]] && - if ! do_compile_test "${CFLAGS_x86}" 'void f(int i, void *p) {if (__sync_fetch_and_add(&i, 1)) f(i, p);}\nint main(){return 0;}\n'; then - local t=${CTARGET_OPT:-${CTARGET}} - t=${t%%-*} - # Normally the target is x86_64-xxx, so turn that into the -march that - # gcc actually accepts. #528708 - [[ ${t} == "x86_64" ]] && t="x86-64" - filter-flags '-march=*' - # ugly, ugly, ugly. ugly. - CFLAGS_x86=$(CFLAGS=${CFLAGS_x86} filter-flags '-march=*'; echo "${CFLAGS}") - export CFLAGS_x86="${CFLAGS_x86} -march=${t}" - einfo "Auto adding -march=${t} to CFLAGS_x86 #185404 (ABI=${ABI})" - fi - ;; - mips) - # The mips abi cannot support the GNU style hashes. #233233 - filter-ldflags -Wl,--hash-style=gnu -Wl,--hash-style=both - ;; - sparc) - # Both sparc and sparc64 can use -fcall-used-g6. -g7 is bad, though. - filter-flags "-fcall-used-g7" - append-flags "-fcall-used-g6" - - # If the CHOST is the basic one (e.g. not sparcv9-xxx already), - # try to pick a better one so glibc can use cpu-specific .S files. - # We key off the CFLAGS to get a good value. Also need to handle - # version skew. - # We can't force users to set their CHOST to their exact machine - # as many of these are not recognized by config.sub/gcc and such :(. - # Note: If the mcpu values don't scale, we might try probing CPP defines. - # Note: Should we factor in -Wa,-AvXXX flags too ? Or -mvis/etc... ? - - local cpu - case ${CTARGET} in - sparc64-*) - case $(get-flag mcpu) in - niagara[234]) - if ver_test -ge 2.8 ; then - cpu="sparc64v2" - elif ver_test -ge 2.4 ; then - cpu="sparc64v" - elif ver_test -ge 2.2.3 ; then - cpu="sparc64b" - fi - ;; - niagara) - if ver_test -ge 2.4 ; then - cpu="sparc64v" - elif ver_test -ge 2.2.3 ; then - cpu="sparc64b" - fi - ;; - ultrasparc3) - cpu="sparc64b" - ;; - *) - # We need to force at least v9a because the base build doesn't - # work with just v9. - # https://sourceware.org/bugzilla/show_bug.cgi?id=19477 - [[ -z ${cpu} ]] && append-flags "-Wa,-xarch=v9a" - ;; - esac - ;; - sparc-*) - case $(get-flag mcpu) in - niagara[234]) - if ver_test -ge 2.8 ; then - cpu="sparcv9v2" - elif ver_test -ge 2.4 ; then - cpu="sparcv9v" - elif ver_test -ge 2.2.3 ; then - cpu="sparcv9b" - else - cpu="sparcv9" - fi - ;; - niagara) - if ver_test -ge 2.4 ; then - cpu="sparcv9v" - elif ver_test -ge 2.2.3 ; then - cpu="sparcv9b" - else - cpu="sparcv9" - fi - ;; - ultrasparc3) - cpu="sparcv9b" - ;; - v9|ultrasparc) - cpu="sparcv9" - ;; - v8|supersparc|hypersparc|leon|leon3) - cpu="sparcv8" - ;; - esac - ;; - esac - [[ -n ${cpu} ]] && CTARGET_OPT="${cpu}-${CTARGET#*-}" - ;; - esac -} - -setup_flags() { - # Make sure host make.conf doesn't pollute us - if is_crosscompile || tc-is-cross-compiler ; then - CHOST=${CTARGET} strip-unsupported-flags - fi - - # Store our CFLAGS because it's changed depending on which CTARGET - # we are building when pulling glibc on a multilib profile - CFLAGS_BASE=${CFLAGS_BASE-${CFLAGS}} - CFLAGS=${CFLAGS_BASE} - CXXFLAGS_BASE=${CXXFLAGS_BASE-${CXXFLAGS}} - CXXFLAGS=${CXXFLAGS_BASE} - ASFLAGS_BASE=${ASFLAGS_BASE-${ASFLAGS}} - ASFLAGS=${ASFLAGS_BASE} - - # Allow users to explicitly avoid flag sanitization via - # USE=custom-cflags. - if ! use custom-cflags; then - # Over-zealous CFLAGS can often cause problems. What may work for one - # person may not work for another. To avoid a large influx of bugs - # relating to failed builds, we strip most CFLAGS out to ensure as few - # problems as possible. - strip-flags - # Lock glibc at -O2; we want to be conservative here. - filter-flags '-O?' - append-flags -O2 - fi - strip-unsupported-flags - filter-flags -m32 -m64 '-mabi=*' - - # glibc aborts if rpath is set by LDFLAGS - filter-ldflags '-Wl,-rpath=*' - - # #492892 - filter-flags -frecord-gcc-switches - - unset CBUILD_OPT CTARGET_OPT - if use multilib ; then - CTARGET_OPT=$(get_abi_CTARGET) - [[ -z ${CTARGET_OPT} ]] && CTARGET_OPT=$(get_abi_CHOST) - fi - - setup_target_flags - - if [[ -n ${CTARGET_OPT} && ${CBUILD} == ${CHOST} ]] && ! is_crosscompile; then - CBUILD_OPT=${CTARGET_OPT} - fi - - # glibc's headers disallow -O0 and fail at build time: - # include/libc-symbols.h:75:3: #error "glibc cannot be compiled without optimization" - replace-flags -O0 -O1 - - filter-flags '-fstack-protector*' -} - -want_tls() { - # Archs that can use TLS (Thread Local Storage) - case $(tc-arch) in - x86) - # requires i486 or better #106556 - [[ ${CTARGET} == i[4567]86* ]] && return 0 - return 1 - ;; - esac - return 0 -} - -want__thread() { - want_tls || return 1 - - # For some reason --with-tls --with__thread is causing segfaults on sparc32. - [[ ${PROFILE_ARCH} == "sparc" ]] && return 1 - - [[ -n ${WANT__THREAD} ]] && return ${WANT__THREAD} - - # only test gcc -- can't test linking yet - tc-has-tls -c ${CTARGET} - WANT__THREAD=$? - - return ${WANT__THREAD} -} - -use_multiarch() { - # Allow user to disable runtime arch detection in multilib. - use multiarch || return 1 - # Make sure binutils is new enough to support indirect functions, - # #336792. This funky sed supports gold and bfd linkers. - local bver nver - bver=$($(tc-getLD ${CTARGET}) -v | sed -n -r '1{s:[^0-9]*::;s:^([0-9.]*).*:\1:;p}') - case $(tc-arch ${CTARGET}) in - amd64|x86) nver="2.20" ;; - arm) nver="2.22" ;; - hppa) nver="2.23" ;; - ppc|ppc64) nver="2.20" ;; - # ifunc support was added in 2.23, but glibc also needs - # machinemode which is in 2.24. - s390) nver="2.24" ;; - sparc) nver="2.21" ;; - *) return 1 ;; - esac - ver_test ${bver} -ge ${nver} -} - -# Setup toolchain variables that had historically been defined in the -# profiles for these archs. -setup_env() { - # silly users - unset LD_RUN_PATH - unset LD_ASSUME_KERNEL - - if is_crosscompile || tc-is-cross-compiler ; then - multilib_env ${CTARGET_OPT:-${CTARGET}} - - if ! use multilib ; then - MULTILIB_ABIS=${DEFAULT_ABI} - else - MULTILIB_ABIS=${MULTILIB_ABIS:-${DEFAULT_ABI}} - fi - - # If the user has CFLAGS_ in their make.conf, use that, - # and fall back on CFLAGS. - local VAR=CFLAGS_${CTARGET//[-.]/_} - CFLAGS=${!VAR-${CFLAGS}} - einfo " $(printf '%15s' 'Manual CFLAGS:') ${CFLAGS}" - fi - - setup_flags - - export ABI=${ABI:-${DEFAULT_ABI:-default}} - - if just_headers ; then - # Avoid mixing host's CC and target's CFLAGS_${ABI}: - # At this bootstrap stage we have only binutils for - # target but not compiler yet. - einfo "Skip CC ABI injection. We can't use (cross-)compiler yet." - return 0 - fi - local VAR=CFLAGS_${ABI} - # We need to export CFLAGS with abi information in them because glibc's - # configure script checks CFLAGS for some targets (like mips). Keep - # around the original clean value to avoid appending multiple ABIs on - # top of each other. - : ${__GLIBC_CC:=$(tc-getCC ${CTARGET_OPT:-${CTARGET}})} - export __GLIBC_CC CC="${__GLIBC_CC} ${!VAR}" - einfo " $(printf '%15s' 'Manual CC:') ${CC}" -} - -foreach_abi() { - setup_env - - local ret=0 - local abilist="" - if use multilib ; then - abilist=$(get_install_abis) - else - abilist=${DEFAULT_ABI} - fi - local -x ABI - for ABI in ${abilist:-default} ; do - setup_env - einfo "Running $1 for ABI ${ABI}" - $1 - : $(( ret |= $? )) - done - return ${ret} -} - -glibc_banner() { - local b="Gentoo ${PVR}" - [[ -n ${PATCH_VER} ]] && ! use vanilla && b+=" p${PATCH_VER}" - echo "${b}" -} - -check_devpts() { - # Make sure devpts is mounted correctly for use w/out setuid pt_chown. - - # If merely building the binary package, then there's nothing to verify. - [[ ${MERGE_TYPE} == "buildonly" ]] && return - - # Only sanity check when installing the native glibc. - [[ -n ${ROOT} ]] && return - - # If they're opting in to the old suid code, then no need to check. - use suid && return - - if awk '$3 == "devpts" && $4 ~ /[, ]gid=5[, ]/ { exit 1 }' /proc/mounts ; then - eerror "In order to use glibc with USE=-suid, you must make sure that" - eerror "you have devpts mounted at /dev/pts with the gid=5 option." - eerror "Openrc should do this for you, so you should check /etc/fstab" - eerror "and make sure you do not have any invalid settings there." - die "mount & fix your /dev/pts settings" - fi -} - -# The following Kernel version handling functions are mostly copied from portage -# source. It's better not to use linux-info.eclass here since a) it adds too -# much magic, see bug 326693 for some of the arguments, and b) some of the -# functions are just not provided. - -g_get_running_KV() { - uname -r - return $? -} - -g_KV_major() { - [[ -z $1 ]] && return 1 - local KV=$@ - echo "${KV%%.*}" -} - -g_KV_minor() { - [[ -z $1 ]] && return 1 - local KV=$@ - KV=${KV#*.} - echo "${KV%%.*}" -} - -g_KV_micro() { - [[ -z $1 ]] && return 1 - local KV=$@ - KV=${KV#*.*.} - echo "${KV%%[^[:digit:]]*}" -} - -g_KV_to_int() { - [[ -z $1 ]] && return 1 - local KV_MAJOR=$(g_KV_major "$1") - local KV_MINOR=$(g_KV_minor "$1") - local KV_MICRO=$(g_KV_micro "$1") - local KV_int=$(( KV_MAJOR * 65536 + KV_MINOR * 256 + KV_MICRO )) - - # We make version 2.2.0 the minimum version we will handle as - # a sanity check ... if its less, we fail ... - if [[ ${KV_int} -ge 131584 ]] ; then - echo "${KV_int}" - return 0 - fi - return 1 -} - -g_int_to_KV() { - local version=$1 major minor micro - major=$((version / 65536)) - minor=$(((version % 65536) / 256)) - micro=$((version % 256)) - echo ${major}.${minor}.${micro} -} - -eend_KV() { - [[ $(g_KV_to_int $1) -ge $(g_KV_to_int $2) ]] - eend $? -} - -get_kheader_version() { - printf '#include \nLINUX_VERSION_CODE\n' | \ - $(tc-getCPP ${CTARGET}) -I "$(build_eprefix)$(alt_build_headers)" - | \ - tail -n 1 -} - -# We collect all sanity checks here. Consistency is not guranteed between -# pkg_ and src_ phases, so we call this function both in pkg_pretend and in -# src_unpack. -sanity_prechecks() { - # Make sure devpts is mounted correctly for use w/out setuid pt_chown - check_devpts - - # Prevent native builds from downgrading - if [[ ${MERGE_TYPE} != "buildonly" ]] && \ - [[ -z ${ROOT} ]] && \ - [[ ${CBUILD} == ${CHOST} ]] && \ - [[ ${CHOST} == ${CTARGET} ]] ; then - - # The high rev # is to allow people to downgrade between -r# - # versions. We want to block 2.20->2.19, but 2.20-r3->2.20-r2 - # should be fine. Hopefully we never actually use a r# this - # high. - if has_version ">${CATEGORY}/${P}-r10000" ; then - eerror "Sanity check to keep you from breaking your system:" - eerror " Downgrading glibc is not supported and a sure way to destruction." - [[ ${I_ALLOW_TO_BREAK_MY_SYSTEM} = yes ]] || die "Aborting to save your system." - fi - - if ! do_run_test '#include \n#include \nint main(){return syscall(1000)!=-1;}\n' ; then - eerror "Your old kernel is broken. You need to update it to a newer" - eerror "version as syscall() will break. See bug 279260." - die "Old and broken kernel." - fi - fi - - # Users have had a chance to phase themselves, time to give em the boot - if [[ -e ${EROOT}/etc/locale.gen ]] && [[ -e ${EROOT}/etc/locales.build ]] ; then - eerror "You still haven't deleted ${EROOT}/etc/locales.build." - eerror "Do so now after making sure ${EROOT}/etc/locale.gen is kosher." - die "Lazy upgrader detected" - fi - - if [[ ${CTARGET} == i386-* ]] ; then - eerror "i386 CHOSTs are no longer supported." - eerror "Chances are you don't actually want/need i386." - eerror "Please read https://www.gentoo.org/doc/en/change-chost.xml" - die "Please fix your CHOST" - fi - - if [[ -e /proc/xen ]] && [[ $(tc-arch) == "x86" ]] && ! is-flag -mno-tls-direct-seg-refs ; then - ewarn "You are using Xen but don't have -mno-tls-direct-seg-refs in your CFLAGS." - ewarn "This will result in a 50% performance penalty when running with a 32bit" - ewarn "hypervisor, which is probably not what you want." - fi - - # Check for sanity of /etc/nsswitch.conf - if [[ -e ${EROOT}/etc/nsswitch.conf ]] ; then - local entry - for entry in passwd group shadow; do - if ! egrep -q "^[ \t]*${entry}:.*files" "${EROOT}"/etc/nsswitch.conf; then - eerror "Your ${EROOT}/etc/nsswitch.conf is out of date." - eerror "Please make sure you have 'files' entries for" - eerror "'passwd:', 'group:' and 'shadow:' databases." - eerror "For more details see:" - eerror " https://wiki.gentoo.org/wiki/Project:Toolchain/nsswitch.conf_in_glibc-2.26" - die "nsswitch.conf has no 'files' provider in '${entry}'." - fi - done - fi - - # ABI-specific checks follow here. Hey, we have a lot more specific conditions that - # we test for... - if ! is_crosscompile ; then - if use amd64 && use multilib && [[ ${MERGE_TYPE} != "binary" ]] ; then - ebegin "Checking that IA32 emulation is enabled in the running kernel" - echo 'int main(){return 0;}' > "${T}/check-ia32-emulation.c" - local STAT - if "${CC-${CHOST}-gcc}" ${CFLAGS_x86} "${T}/check-ia32-emulation.c" -o "${T}/check-ia32-emulation.elf32"; then - "${T}/check-ia32-emulation.elf32" - STAT=$? - else - # Don't fail here to allow single->multi ABI switch - # or recover from breakage like bug #646424 - ewarn "Failed to compile the ABI test. Broken host glibc?" - STAT=0 - fi - rm -f "${T}/check-ia32-emulation.elf32" - eend $STAT - [[ $STAT -eq 0 ]] || die "CONFIG_IA32_EMULATION must be enabled in the kernel to compile a multilib glibc." - fi - - fi - - # When we actually have to compile something... - if ! just_headers ; then - ebegin "Checking gcc for __thread support" - if ! eend $(want__thread ; echo $?) ; then - echo - eerror "Could not find a gcc that supports the __thread directive!" - eerror "Please update your binutils/gcc and try again." - die "No __thread support in gcc!" - fi - - if [[ ${CTARGET} == *-linux* ]] ; then - local run_kv build_kv want_kv - - run_kv=$(g_get_running_KV) - build_kv=$(g_int_to_KV $(get_kheader_version)) - want_kv=${MIN_KERN_VER} - - if ! is_crosscompile && ! tc-is-cross-compiler ; then - # Building fails on an non-supporting kernel - ebegin "Checking running kernel version (${run_kv} >= ${want_kv})" - if ! eend_KV ${run_kv} ${want_kv} ; then - echo - eerror "You need a kernel of at least ${want_kv}!" - die "Kernel version too low!" - fi - fi - - ebegin "Checking linux-headers version (${build_kv} >= ${want_kv})" - if ! eend_KV ${build_kv} ${want_kv} ; then - echo - eerror "You need linux-headers of at least ${want_kv}!" - die "linux-headers version too low!" - fi - fi - fi -} - -# -# the phases -# - -# pkg_pretend - -pkg_pretend() { - # All the checks... - einfo "Checking general environment sanity." - sanity_prechecks -} - -pkg_setup() { - # see bug 682570 - [[ -z ${BOOTSTRAP_RAP} ]] && python-any-r1_pkg_setup -} - -# src_unpack - -src_unpack() { - # Consistency is not guaranteed between pkg_ and src_ ... - sanity_prechecks - - use multilib && unpack gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}.tar.xz - - setup_env - - if [[ -n ${EGIT_REPO_URI} ]] ; then - git-r3_src_unpack - else - unpack ${P}.tar.xz - fi - - cd "${WORKDIR}" || die - unpack glibc-${RELEASE_VER}-patches-${PATCH_VER}.tar.xz -} - -src_prepare() { - if ! use vanilla ; then - elog "Applying Gentoo Glibc Patchset ${RELEASE_VER}-${PATCH_VER}" - eapply "${WORKDIR}"/patches - einfo "Done." - fi - - default - - gnuconfig_update - - cd "${WORKDIR}" - find . -name configure -exec touch {} + - - eprefixify extra/locale/locale-gen - - # Fix permissions on some of the scripts. - chmod u+x "${S}"/scripts/*.sh - - cd "${S}" -} - -glibc_do_configure() { - # Glibc does not work with gold (for various reasons) #269274. - tc-ld-disable-gold - - # CXX isnt handled by the multilib system, so if we dont unset here - # we accumulate crap across abis - unset CXX - - einfo "Configuring glibc for nptl" - - if use doc ; then - export MAKEINFO=makeinfo - else - export MAKEINFO=/dev/null - fi - - local v - for v in ABI CBUILD CHOST CTARGET CBUILD_OPT CTARGET_OPT CC CXX LD {AS,C,CPP,CXX,LD}FLAGS MAKEINFO ; do - einfo " $(printf '%15s' ${v}:) ${!v}" - done - - # CFLAGS can contain ABI-specific flags like -mfpu=neon, see bug #657760 - # To build .S (assembly) files with the same ABI-specific flags - # upstream currently recommends adding CFLAGS to CC/CXX: - # https://sourceware.org/PR23273 - # Note: Passing CFLAGS via CPPFLAGS overrides glibc's arch-specific CFLAGS - # and breaks multiarch support. See 659030#c3 for an example. - # The glibc configure script doesn't properly use LDFLAGS all the time. - export CC="$(tc-getCC ${CTARGET}) ${CFLAGS} ${LDFLAGS}" - einfo " $(printf '%15s' 'Manual CC:') ${CC}" - - # Some of the tests are written in C++, so we need to force our multlib abis in, bug 623548 - export CXX="$(tc-getCXX ${CTARGET}) $(get_abi_CFLAGS) ${CFLAGS}" - - if is_crosscompile; then - # Assume worst-case bootstrap: glibc is buil first time - # when ${CTARGET}-g++ is not available yet. We avoid - # building auxiliary programs that require C++: bug #683074 - # It should not affect final result. - export libc_cv_cxx_link_ok=no - # The line above has the same effect. We set CXX explicitly - # to make build logs less confusing. - export CXX= - fi - einfo " $(printf '%15s' 'Manual CXX:') ${CXX}" - - echo - - local myconf=() - - case ${CTARGET} in - m68k*) - # setjmp() is not compatible with stack protection: - # https://sourceware.org/PR24202 - myconf+=( --enable-stack-protector=no ) - ;; - powerpc-*) - # Currently gcc on powerpc32 generates invalid code for - # __builtin_return_address(0) calls. Normally programs - # don't do that but malloc hooks in glibc do: - # https://gcc.gnu.org/PR81996 - # https://bugs.gentoo.org/629054 - myconf+=( --enable-stack-protector=no ) - ;; - *) - myconf+=( --enable-stack-protector=$(usex ssp all no) ) - ;; - esac - myconf+=( --enable-stackguard-randomization ) - - # Keep a whitelist of targets supporing IFUNC. glibc's ./configure - # is not robust enough to detect proper support: - # https://bugs.gentoo.org/641216 - # https://sourceware.org/PR22634#c0 - case $(tc-arch ${CTARGET}) in - # Keep whitelist of targets where autodetection mostly works. - amd64|x86|sparc|ppc|ppc64|arm|arm64|s390) ;; - # Blacklist everywhere else - *) myconf+=( libc_cv_ld_gnu_indirect_function=no ) ;; - esac - - # Enable Intel Control-flow Enforcement Technology on amd64 if requested - case ${CTARGET} in - x86_64-*) myconf+=( $(use_enable cet) ) ;; - *) ;; - esac - - [[ $(tc-is-softfloat) == "yes" ]] && myconf+=( --without-fp ) - - myconf+=( --enable-kernel=${MIN_KERN_VER} ) - - # Since SELinux support is only required for nscd, only enable it if: - # 1. USE selinux - # 2. only for the primary ABI on multilib systems - # 3. Not a crosscompile - if ! is_crosscompile && use selinux ; then - if use multilib ; then - if is_final_abi ; then - myconf+=( --with-selinux ) - else - myconf+=( --without-selinux ) - fi - else - myconf+=( --with-selinux ) - fi - else - myconf+=( --without-selinux ) - fi - - # Force a few tests where we always know the answer but - # configure is incapable of finding it. - if is_crosscompile ; then - export \ - libc_cv_c_cleanup=yes \ - libc_cv_forced_unwind=yes - fi - - myconf+=( - --without-cvs - --disable-werror - --enable-bind-now - --build=${CBUILD_OPT:-${CBUILD}} - --host=${CTARGET_OPT:-${CTARGET}} - $(use_enable profile) - $(use_with gd) - --with-headers=$(build_eprefix)$(alt_build_headers) - --prefix="$(host_eprefix)/usr" - --sysconfdir="$(host_eprefix)/etc" - --localstatedir="$(host_eprefix)/var" - --libdir='$(prefix)'/$(get_libdir) - --mandir='$(prefix)'/share/man - --infodir='$(prefix)'/share/info - --libexecdir='$(libdir)'/misc/glibc - --with-bugurl=https://bugs.gentoo.org/ - --with-pkgversion="$(glibc_banner)" - $(use_enable crypt) - $(use_multiarch || echo --disable-multi-arch) - $(use_enable systemtap) - $(use_enable nscd) - ${EXTRA_ECONF} - ) - - # We rely on sys-libs/timezone-data for timezone tools normally. - myconf+=( $(use_enable vanilla timezone-tools) ) - - # These libs don't have configure flags. - ac_cv_lib_audit_audit_log_user_avc_message=$(usex audit || echo no) - ac_cv_lib_cap_cap_init=$(usex caps || echo no) - - # There is no configure option for this and we need to export it - # since the glibc build will re-run configure on itself - export libc_cv_rootsbindir="$(host_eprefix)/sbin" - export libc_cv_slibdir="$(host_eprefix)/$(get_libdir)" - - # We take care of patching our binutils to use both hash styles, - # and many people like to force gnu hash style only, so disable - # this overriding check. #347761 - export libc_cv_hashstyle=no - - local builddir=$(builddir nptl) - mkdir -p "${builddir}" - cd "${builddir}" - set -- "${S}"/configure "${myconf[@]}" - echo "$@" - "$@" || die "failed to configure glibc" - - # ia64 static cross-compilers are a pita in so much that they - # can't produce static ELFs (as the libgcc.a is broken). so - # disable building of the programs for those targets if it - # doesn't work. - # XXX: We could turn this into a compiler test, but ia64 is - # the only one that matters, so this should be fine for now. - if is_crosscompile && [[ ${CTARGET} == ia64* ]] ; then - sed -i '1i+link-static = touch $@' config.make - fi - - # If we're trying to migrate between ABI sets, we need - # to lie and use a local copy of gcc. Like if the system - # is built with MULTILIB_ABIS="amd64 x86" but we want to - # add x32 to it, gcc/glibc don't yet support x32. - # - if [[ -n ${GCC_BOOTSTRAP_VER} ]] && use multilib ; then - echo 'main(){}' > "${T}"/test.c - if ! $(tc-getCC ${CTARGET}) ${CFLAGS} ${LDFLAGS} "${T}"/test.c -Wl,-emain -lgcc 2>/dev/null ; then - sed -i -e '/^CC = /s:$: -B$(objdir)/../'"gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}/${ABI}:" config.make || die - fi - fi -} - -glibc_headers_configure() { - export ABI=default - - local builddir=$(builddir "headers") - mkdir -p "${builddir}" - cd "${builddir}" - - # if we don't have a compiler yet, we can't really test it now ... - # hopefully they don't affect header generation, so let's hope for - # the best here ... - local v vars=( - ac_cv_header_cpuid_h=yes - libc_cv_{386,390,alpha,arm,hppa,ia64,mips,{powerpc,sparc}{,32,64},sh,x86_64}_tls=yes - libc_cv_asm_cfi_directives=yes - libc_cv_broken_visibility_attribute=no - libc_cv_c_cleanup=yes - libc_cv_compiler_powerpc64le_binary128_ok=yes - libc_cv_forced_unwind=yes - libc_cv_gcc___thread=yes - libc_cv_mlong_double_128=yes - libc_cv_mlong_double_128ibm=yes - libc_cv_ppc_machine=yes - libc_cv_ppc_rel16=yes - libc_cv_predef_fortify_source=no - libc_cv_target_power8_ok=yes - libc_cv_visibility_attribute=yes - libc_cv_z_combreloc=yes - libc_cv_z_execstack=yes - libc_cv_z_initfirst=yes - libc_cv_z_nodelete=yes - libc_cv_z_nodlopen=yes - libc_cv_z_relro=yes - libc_mips_abi=${ABI} - libc_mips_float=$([[ $(tc-is-softfloat) == "yes" ]] && echo soft || echo hard) - # These libs don't have configure flags. - ac_cv_lib_audit_audit_log_user_avc_message=no - ac_cv_lib_cap_cap_init=no - ) - - einfo "Forcing cached settings:" - for v in "${vars[@]}" ; do - einfo " ${v}" - export ${v} - done - - local headers_only_arch_CPPFLAGS=() - - # Blow away some random CC settings that screw things up. #550192 - if [[ -d ${S}/sysdeps/mips ]]; then - pushd "${S}"/sysdeps/mips >/dev/null - sed -i -e '/^CC +=/s:=.*:= -D_MIPS_SZPTR=32:' mips32/Makefile mips64/n32/Makefile || die - sed -i -e '/^CC +=/s:=.*:= -D_MIPS_SZPTR=64:' mips64/n64/Makefile || die - - # Force the mips ABI to the default. This is OK because the set of - # installed headers in this phase is the same between the 3 ABIs. - # If this ever changes, this hack will break, but that's unlikely - # as glibc discourages that behavior. - # https://crbug.com/647033 - sed -i -e 's:abiflag=.*:abiflag=_ABIO32:' preconfigure || die - - popd >/dev/null - fi - - case ${CTARGET} in - riscv*) - # RISC-V interrogates the compiler to determine which target to - # build. If building the headers then we don't strictly need a - # RISC-V compiler, so the built-in definitions that are provided - # along with all RISC-V compiler might not exist. This causes - # glibc's RISC-V preconfigure script to blow up. Since we're just - # building the headers any value will actually work here, so just - # pick the standard one (rv64g/lp64d) to make the build scripts - # happy for now -- the headers are all the same anyway so it - # doesn't matter. - headers_only_arch_CPPFLAGS+=( - -D__riscv_xlen=64 - -D__riscv_flen=64 - -D__riscv_float_abi_double=1 - -D__riscv_atomic=1 - ) ;; - esac - - local myconf=() - myconf+=( - --disable-sanity-checks - --enable-hacker-mode - --without-cvs - --disable-werror - --enable-bind-now - --build=${CBUILD_OPT:-${CBUILD}} - --host=${CTARGET_OPT:-${CTARGET}} - --with-headers=$(build_eprefix)$(alt_build_headers) - --prefix="$(host_eprefix)/usr" - ${EXTRA_ECONF} - ) - - # Nothing is compiled here which would affect the headers for the target. - # So forcing CC/CFLAGS is sane. - local headers_only_CC=$(tc-getBUILD_CC) - local headers_only_CFLAGS="-O1 -pipe" - local headers_only_CPPFLAGS="-U_FORTIFY_SOURCE ${headers_only_arch_CPPFLAGS[*]}" - local headers_only_LDFLAGS="" - set -- "${S}"/configure "${myconf[@]}" - echo \ - "CC=${headers_only_CC}" \ - "CFLAGS=${headers_only_CFLAGS}" \ - "CPPFLAGS=${headers_only_CPPFLAGS}" \ - "LDFLAGS=${headers_only_LDFLAGS}" \ - "$@" - CC=${headers_only_CC} \ - CFLAGS=${headers_only_CFLAGS} \ - CPPFLAGS=${headers_only_CPPFLAGS} \ - LDFLAGS="" \ - "$@" || die "failed to configure glibc" -} - -do_src_configure() { - if just_headers ; then - glibc_headers_configure - else - glibc_do_configure nptl - fi -} - -src_configure() { - foreach_abi do_src_configure -} - -do_src_compile() { - emake -C "$(builddir nptl)" -} - -src_compile() { - if just_headers ; then - return - fi - - foreach_abi do_src_compile -} - -glibc_src_test() { - cd "$(builddir nptl)" - emake check -} - -do_src_test() { - local ret=0 - - glibc_src_test - : $(( ret |= $? )) - - return ${ret} -} - -src_test() { - if just_headers ; then - return - fi - - # Give tests more time to complete. - export TIMEOUTFACTOR=5 - - foreach_abi do_src_test || die "tests failed" -} - -run_locale_gen() { - # if the host locales.gen contains no entries, we'll install everything - local root="$1" - local inplace="" - - if [[ "${root}" == "--inplace-glibc" ]] ; then - inplace="--inplace-glibc" - root="$2" - fi - - local locale_list="${root}/etc/locale.gen" - - pushd "${ED}"/$(get_libdir) >/dev/null - - if [[ -z $(locale-gen --list --config "${locale_list}") ]] ; then - [[ -z ${inplace} ]] && ewarn "Generating all locales; edit /etc/locale.gen to save time/space" - locale_list="${root}/usr/share/i18n/SUPPORTED" - fi - - locale-gen ${inplace} --jobs $(makeopts_jobs) --config "${locale_list}" \ - --destdir "${root}" - - popd >/dev/null -} - -glibc_do_src_install() { - local builddir=$(builddir nptl) - cd "${builddir}" - - emake install_root="${D}/$(build_eprefix)$(alt_prefix)" install - - # This version (2.26) provides some compatibility libraries for the NIS/NIS+ support - # which come without headers etc. Only needed for binary packages since the - # external net-libs/libnsl has increased soversion. Keep only versioned libraries. - find "${D}" -name "libnsl.a" -delete - find "${D}" -name "libnsl.so" -delete - - # Normally upstream_pv is ${PV}. Live ebuilds are exception, there we need - # to infer upstream version: - # '#define VERSION "2.26.90"' -> '2.26.90' - local upstream_pv=$(sed -n -r 's/#define VERSION "(.*)"/\1/p' "${S}"/version.h) - - # Avoid stripping binaries not targeted by ${CHOST}. Or else - # ${CHOST}-strip would break binaries build for ${CTARGET}. - is_crosscompile && dostrip -x / - # gdb thread introspection relies on local libpthreas symbols. stripping breaks it - # See Note [Disable automatic stripping] - dostrip -x $(alt_libdir)/libpthread-${upstream_pv}.so - - if [[ -e ${ED}/$(alt_usrlibdir)/libm-${upstream_pv}.a ]] ; then - # Move versioned .a file out of libdir to evade portage QA checks - # instead of using gen_usr_ldscript(). We fix ldscript as: - # "GROUP ( /usr/lib64/libm-.a ..." -> "GROUP ( /usr/lib64/glibc-/libm-.a ..." - sed -i "s@\(libm-${upstream_pv}.a\)@${P}/\1@" "${ED}"/$(alt_usrlibdir)/libm.a || die - dodir $(alt_usrlibdir)/${P} - mv "${ED}"/$(alt_usrlibdir)/libm-${upstream_pv}.a "${ED}"/$(alt_usrlibdir)/${P}/libm-${upstream_pv}.a || die - fi - - # We'll take care of the cache ourselves - rm -f "${ED}"/etc/ld.so.cache - - # Everything past this point just needs to be done once ... - is_final_abi || return 0 - - # Make sure the non-native interp can be found on multilib systems even - # if the main library set isn't installed into the right place. Maybe - # we should query the active gcc for info instead of hardcoding it ? - local i ldso_abi ldso_name - local ldso_abi_list=( - # x86 - amd64 /lib64/ld-linux-x86-64.so.2 - x32 /libx32/ld-linux-x32.so.2 - x86 /lib/ld-linux.so.2 - # mips - o32 /lib/ld.so.1 - n32 /lib32/ld.so.1 - n64 /lib64/ld.so.1 - # powerpc - ppc /lib/ld.so.1 - ppc64 /lib64/ld64.so.1 - # riscv - lp64d /lib/ld-linux-riscv64-lp64d.so.1 - lp64 /lib/ld-linux-riscv64-lp64.so.1 - # s390 - s390 /lib/ld.so.1 - s390x /lib/ld64.so.1 - # sparc - sparc32 /lib/ld-linux.so.2 - sparc64 /lib64/ld-linux.so.2 - ) - case $(tc-endian) in - little) - ldso_abi_list+=( - # arm - arm64 /lib/ld-linux-aarch64.so.1 - ) - ;; - big) - ldso_abi_list+=( - # arm - arm64 /lib/ld-linux-aarch64_be.so.1 - ) - ;; - esac - if [[ ${SYMLINK_LIB} == "yes" ]] && [[ ! -e ${ED}/$(alt_prefix)/lib ]] ; then - dosym $(get_abi_LIBDIR ${DEFAULT_ABI}) $(alt_prefix)/lib - fi - for (( i = 0; i < ${#ldso_abi_list[@]}; i += 2 )) ; do - ldso_abi=${ldso_abi_list[i]} - has ${ldso_abi} $(get_install_abis) || continue - - ldso_name="$(alt_prefix)${ldso_abi_list[i+1]}" - if [[ ! -L ${ED}/${ldso_name} && ! -e ${ED}/${ldso_name} ]] ; then - dosym ../$(get_abi_LIBDIR ${ldso_abi})/${ldso_name##*/} ${ldso_name} - fi - done - - # With devpts under Linux mounted properly, we do not need the pt_chown - # binary to be setuid. This is because the default owners/perms will be - # exactly what we want. - if ! use suid ; then - find "${ED}" -name pt_chown -exec chmod -s {} + - fi - - ################################################################# - # EVERYTHING AFTER THIS POINT IS FOR NATIVE GLIBC INSTALLS ONLY # - # Make sure we install some symlink hacks so that when we build - # a 2nd stage cross-compiler, gcc finds the target system - # headers correctly. See gcc/doc/gccinstall.info - if is_crosscompile ; then - # We need to make sure that /lib and /usr/lib always exists. - # gcc likes to use relative paths to get to its multilibs like - # /usr/lib/../lib64/. So while we don't install any files into - # /usr/lib/, we do need it to exist. - keepdir $(alt_prefix)/lib - keepdir $(alt_prefix)/usr/lib - - dosym usr/include $(alt_prefix)/sys-include - return 0 - fi - - # Files for Debian-style locale updating - dodir /usr/share/i18n - sed \ - -e "/^#/d" \ - -e "/SUPPORTED-LOCALES=/d" \ - -e "s: \\\\::g" -e "s:/: :g" \ - "${S}"/localedata/SUPPORTED > "${ED}"/usr/share/i18n/SUPPORTED \ - || die "generating /usr/share/i18n/SUPPORTED failed" - cd "${WORKDIR}"/extra/locale - dosbin locale-gen - doman *.[0-8] - insinto /etc - doins locale.gen - - # Make sure all the ABI's can find the locales and so we only - # have to generate one set - local a - keepdir /usr/$(get_libdir)/locale - for a in $(get_install_abis) ; do - if [[ ! -e ${ED}/usr/$(get_abi_LIBDIR ${a})/locale ]] ; then - dosym ../$(get_libdir)/locale /usr/$(get_abi_LIBDIR ${a})/locale - fi - done - - # HACK: If we're building for riscv, we need to additionally make sure that - # we can find the locale archive afterwards - case ${CTARGET} in - riscv*) - if [[ ! -e ${ED}/usr/lib/locale ]] ; then - dosym ../$(get_libdir)/locale /usr/lib/locale - fi - ;; - *) ;; - esac - - cd "${S}" - - # Install misc network config files - insinto /etc - doins nscd/nscd.conf posix/gai.conf nss/nsswitch.conf - doins "${WORKDIR}"/extra/etc/*.conf - - if use nscd ; then - doinitd "$(prefixify_ro "${WORKDIR}"/extra/etc/nscd)" - - local nscd_args=( - -e "s:@PIDFILE@:$(strings "${ED}"/usr/sbin/nscd | grep nscd.pid):" - ) - - sed -i "${nscd_args[@]}" "${ED}"/etc/init.d/nscd - - systemd_dounit nscd/nscd.service - systemd_newtmpfilesd nscd/nscd.tmpfiles nscd.conf - else - # Do this since extra/etc/*.conf above might have nscd.conf. - rm -f "${ED}"/etc/nscd.conf - fi - - echo 'LDPATH="include ld.so.conf.d/*.conf"' > "${T}"/00glibc - doenvd "${T}"/00glibc - - for d in BUGS ChangeLog CONFORMANCE FAQ NEWS NOTES PROJECTS README* ; do - [[ -s ${d} ]] && dodoc ${d} - done - dodoc -r ChangeLog.old - - # Prevent overwriting of the /etc/localtime symlink. We'll handle the - # creation of the "factory" symlink in pkg_postinst(). - rm -f "${ED}"/etc/localtime - - # Generate all locales if this is a native build as locale generation - if use compile-locales && ! is_crosscompile ; then - run_locale_gen --inplace-glibc "${ED}/" - sed -e 's:COMPILED_LOCALES="":COMPILED_LOCALES="1":' -i "${ED}"/usr/sbin/locale-gen || die - fi -} - -glibc_headers_install() { - local builddir=$(builddir "headers") - cd "${builddir}" - emake install_root="${D}/$(build_eprefix)$(alt_prefix)" install-headers - - insinto $(alt_headers)/gnu - doins "${S}"/include/gnu/stubs.h - - # Make sure we install the sys-include symlink so that when - # we build a 2nd stage cross-compiler, gcc finds the target - # system headers correctly. See gcc/doc/gccinstall.info - dosym usr/include $(alt_prefix)/sys-include -} - -src_install() { - if just_headers ; then - export ABI=default - glibc_headers_install - return - fi - - foreach_abi glibc_do_src_install - - if ! use static-libs ; then - elog "Not installing static glibc libraries" - find "${ED}" -name "*.a" -and -not -name "*_nonshared.a" -delete - fi -} - -# Simple test to make sure our new glibc isn't completely broken. -# Make sure we don't test with statically built binaries since -# they will fail. Also, skip if this glibc is a cross compiler. -# -# If coreutils is built with USE=multicall, some of these files -# will just be wrapper scripts, not actual ELFs we can test. -glibc_sanity_check() { - cd / #228809 - - # We enter ${ED} so to avoid trouble if the path contains - # special characters; for instance if the path contains the - # colon character (:), then the linker will try to split it - # and look for the libraries in an unexpected place. This can - # lead to unsafe code execution if the generated prefix is - # within a world-writable directory. - # (e.g. /var/tmp/portage:${HOSTNAME}) - pushd "${ED}"/$(get_libdir) >/dev/null - - local x striptest - for x in cal date env free ls true uname uptime ; do - x=$(type -p ${x}) - [[ -z ${x} || ${x} != ${EPREFIX}/* ]] && continue - striptest=$(LC_ALL="C" file -L ${x} 2>/dev/null) || continue - case ${striptest} in - *"statically linked"*) continue;; - *"ASCII text"*) continue;; - esac - # We need to clear the locale settings as the upgrade might want - # incompatible locale data. This test is not for verifying that. - LC_ALL=C \ - ./ld-*.so --library-path . ${x} > /dev/null \ - || die "simple run test (${x}) failed" - done - - popd >/dev/null -} - -pkg_preinst() { - # nothing to do if just installing headers - just_headers && return - - # prepare /etc/ld.so.conf.d/ for files - mkdir -p "${EROOT}"/etc/ld.so.conf.d - - # Default /etc/hosts.conf:multi to on for systems with small dbs. - if [[ $(wc -l < "${EROOT}"/etc/hosts) -lt 1000 ]] ; then - sed -i '/^multi off/s:off:on:' "${ED}"/etc/host.conf - einfo "Defaulting /etc/host.conf:multi to on" - fi - - [[ -n ${ROOT} ]] && return 0 - [[ -d ${ED}/$(get_libdir) ]] || return 0 - [[ -z ${BOOTSTRAP_RAP} ]] && glibc_sanity_check -} - -pkg_postinst() { - # nothing to do if just installing headers - just_headers && return - - if ! tc-is-cross-compiler && [[ -x ${EROOT}/usr/sbin/iconvconfig ]] ; then - # Generate fastloading iconv module configuration file. - "${EROOT}"/usr/sbin/iconvconfig --prefix="${ROOT}/" - fi - - if ! is_crosscompile && [[ -z ${ROOT} ]] ; then - use compile-locales || run_locale_gen "${EROOT}/" - fi - - # Check for sanity of /etc/nsswitch.conf, take 2 - if [[ -e ${EROOT}/etc/nsswitch.conf ]] && ! has_version sys-auth/libnss-nis ; then - local entry - for entry in passwd group shadow; do - if egrep -q "^[ \t]*${entry}:.*nis" "${EROOT}"/etc/nsswitch.conf; then - ewarn "" - ewarn "Your ${EROOT}/etc/nsswitch.conf uses NIS. Support for that has been" - ewarn "removed from glibc and is now provided by the package" - ewarn " sys-auth/libnss-nis" - ewarn "Install it now to keep your NIS setup working." - ewarn "" - fi - done - fi -} diff --git a/sys-libs/glibc/glibc-2.30-r7.ebuild b/sys-libs/glibc/glibc-2.30-r7.ebuild new file mode 100644 index 000000000000..58f64e8203c3 --- /dev/null +++ b/sys-libs/glibc/glibc-2.30-r7.ebuild @@ -0,0 +1,1471 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +PYTHON_COMPAT=( python3_{6,7,8} ) + +inherit python-any-r1 prefix eutils toolchain-funcs flag-o-matic gnuconfig \ + multilib systemd multiprocessing + +DESCRIPTION="GNU libc C library" +HOMEPAGE="https://www.gnu.org/software/libc/" +LICENSE="LGPL-2.1+ BSD HPND ISC inner-net rc PCRE" +SLOT="2.2" + +EMULTILIB_PKG="true" + +if [[ ${PV} == 9999* ]]; then + EGIT_REPO_URI="https://sourceware.org/git/glibc.git" + inherit git-r3 +else + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + SRC_URI="mirror://gnu/glibc/${P}.tar.xz" +fi + +RELEASE_VER=${PV} + +GCC_BOOTSTRAP_VER=20180511 + +# Gentoo patchset +PATCH_VER=9 +PATCH_DEV=slyfox + +SRC_URI+=" https://dev.gentoo.org/~${PATCH_DEV}/distfiles/${P}-patches-${PATCH_VER}.tar.xz" +SRC_URI+=" multilib? ( https://dev.gentoo.org/~dilfridge/distfiles/gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}.tar.xz )" + +IUSE="audit caps cet compile-locales +crypt custom-cflags doc gd headers-only +multiarch multilib nscd profile selinux +ssp +static-libs suid systemtap test vanilla" + +# Minimum kernel version that glibc requires +MIN_KERN_VER="3.2.0" + +# Here's how the cross-compile logic breaks down ... +# CTARGET - machine that will target the binaries +# CHOST - machine that will host the binaries +# CBUILD - machine that will build the binaries +# If CTARGET != CHOST, it means you want a libc for cross-compiling. +# If CHOST != CBUILD, it means you want to cross-compile the libc. +# CBUILD = CHOST = CTARGET - native build/install +# CBUILD != (CHOST = CTARGET) - cross-compile a native build +# (CBUILD = CHOST) != CTARGET - libc for cross-compiler +# CBUILD != CHOST != CTARGET - cross-compile a libc for a cross-compiler +# For install paths: +# CHOST = CTARGET - install into / +# CHOST != CTARGET - install into /usr/CTARGET/ +# +export CBUILD=${CBUILD:-${CHOST}} +export CTARGET=${CTARGET:-${CHOST}} +if [[ ${CTARGET} == ${CHOST} ]] ; then + if [[ ${CATEGORY} == cross-* ]] ; then + export CTARGET=${CATEGORY#cross-} + fi +fi + +# Note [Disable automatic stripping] +# Disabling automatic stripping for a few reasons: +# - portage's attempt to strip breaks non-native binaries at least on +# arm: bug #697428 +# - portage's attempt to strip libpthread.so.0 breaks gdb thread +# enumeration: bug #697910. This is quite subtle: +# * gdb uses glibc's libthread_db-1.0.so to enumerate threads. +# * libthread_db-1.0.so needs access to libpthread.so.0 local symbols +# via 'ps_pglobal_lookup' symbol defined in gdb. +# * 'ps_pglobal_lookup' uses '.symtab' section table to resolve all +# known symbols in 'libpthread.so.0'. Specifically 'nptl_version' +# (unexported) is used to sanity check compatibility before enabling +# debugging. +# Also see https://sourceware.org/gdb/wiki/FAQ#GDB_does_not_see_any_threads_besides_the_one_in_which_crash_occurred.3B_or_SIGTRAP_kills_my_program_when_I_set_a_breakpoint +# * normal 'strip' command trims '.symtab' +# Thus our main goal here is to prevent 'libpthread.so.0' from +# losing it's '.symtab' entries. +# As Gentoo's strip does not allow us to pass less aggressive stripping +# options and does not check the machine target we strip selectively. + +# We need a new-enough binutils/gcc to match upstream baseline. +# Also we need to make sure our binutils/gcc supports TLS, +# and that gcc already contains the hardened patches. +BDEPEND=" + ${PYTHON_DEPS} + >=app-misc/pax-utils-0.1.10 + sys-devel/bison + !' | $(tc-getCPP ${CTARGET}) ${CFLAGS} 2>&1 | grep -o '[^"]*linux/version.h') + ALT_BUILD_HEADERS=${header_path%/linux/version.h} + fi + fi + fi + echo "${ALT_BUILD_HEADERS}" +} + +alt_libdir() { + echo $(alt_prefix)/$(get_libdir) +} +alt_usrlibdir() { + echo $(alt_prefix)/usr/$(get_libdir) +} + +builddir() { + echo "${WORKDIR}/build-${ABI}-${CTARGET}-$1" +} + +do_compile_test() { + local ret save_cflags=${CFLAGS} + CFLAGS+=" $1" + shift + + pushd "${T}" >/dev/null + + rm -f glibc-test* + printf '%b' "$*" > glibc-test.c + + nonfatal emake glibc-test + ret=$? + + popd >/dev/null + + CFLAGS=${save_cflags} + return ${ret} +} + +do_run_test() { + local ret + + if [[ ${MERGE_TYPE} == "binary" ]] ; then + # ignore build failures when installing a binary package #324685 + do_compile_test "" "$@" 2>/dev/null || return 0 + else + if ! do_compile_test "" "$@" ; then + ewarn "Simple build failed ... assuming this is desired #324685" + return 0 + fi + fi + + pushd "${T}" >/dev/null + + ./glibc-test + ret=$? + rm -f glibc-test* + + popd >/dev/null + + return ${ret} +} + +setup_target_flags() { + # This largely mucks with compiler flags. None of which should matter + # when building up just the headers. + just_headers && return 0 + + case $(tc-arch) in + x86) + # -march needed for #185404 #199334 + # TODO: When creating the first glibc cross-compile, this test will + # always fail as it does a full link which in turn requires glibc. + # Probably also applies when changing multilib profile settings (e.g. + # enabling x86 when the profile was amd64-only previously). + # We could change main to _start and pass -nostdlib here so that we + # only test the gcc code compilation. Or we could do a compile and + # then look for the symbol via scanelf. + if ! do_compile_test "" 'void f(int i, void *p) {if (__sync_fetch_and_add(&i, 1)) f(i, p);}\nint main(){return 0;}\n'; then + local t=${CTARGET_OPT:-${CTARGET}} + t=${t%%-*} + filter-flags '-march=*' + export CFLAGS="-march=${t} ${CFLAGS}" + einfo "Auto adding -march=${t} to CFLAGS #185404" + fi + ;; + amd64) + # -march needed for #185404 #199334 + # TODO: See cross-compile issues listed above for x86. + [[ ${ABI} == x86 ]] && + if ! do_compile_test "${CFLAGS_x86}" 'void f(int i, void *p) {if (__sync_fetch_and_add(&i, 1)) f(i, p);}\nint main(){return 0;}\n'; then + local t=${CTARGET_OPT:-${CTARGET}} + t=${t%%-*} + # Normally the target is x86_64-xxx, so turn that into the -march that + # gcc actually accepts. #528708 + [[ ${t} == "x86_64" ]] && t="x86-64" + filter-flags '-march=*' + # ugly, ugly, ugly. ugly. + CFLAGS_x86=$(CFLAGS=${CFLAGS_x86} filter-flags '-march=*'; echo "${CFLAGS}") + export CFLAGS_x86="${CFLAGS_x86} -march=${t}" + einfo "Auto adding -march=${t} to CFLAGS_x86 #185404 (ABI=${ABI})" + fi + ;; + mips) + # The mips abi cannot support the GNU style hashes. #233233 + filter-ldflags -Wl,--hash-style=gnu -Wl,--hash-style=both + ;; + sparc) + # Both sparc and sparc64 can use -fcall-used-g6. -g7 is bad, though. + filter-flags "-fcall-used-g7" + append-flags "-fcall-used-g6" + + local cpu + case ${CTARGET} in + sparc64-*) + cpu="sparc64" + case $(get-flag mcpu) in + v9) + # We need to force at least v9a because the base build doesn't + # work with just v9. + # https://sourceware.org/bugzilla/show_bug.cgi?id=19477 + append-flags "-Wa,-xarch=v9a" + ;; + esac + ;; + sparc-*) + case $(get-flag mcpu) in + v8|supersparc|hypersparc|leon|leon3) + cpu="sparcv8" + ;; + *) + cpu="sparcv9" + ;; + esac + ;; + esac + [[ -n ${cpu} ]] && CTARGET_OPT="${cpu}-${CTARGET#*-}" + ;; + esac +} + +setup_flags() { + # Make sure host make.conf doesn't pollute us + if is_crosscompile || tc-is-cross-compiler ; then + CHOST=${CTARGET} strip-unsupported-flags + fi + + # Store our CFLAGS because it's changed depending on which CTARGET + # we are building when pulling glibc on a multilib profile + CFLAGS_BASE=${CFLAGS_BASE-${CFLAGS}} + CFLAGS=${CFLAGS_BASE} + CXXFLAGS_BASE=${CXXFLAGS_BASE-${CXXFLAGS}} + CXXFLAGS=${CXXFLAGS_BASE} + ASFLAGS_BASE=${ASFLAGS_BASE-${ASFLAGS}} + ASFLAGS=${ASFLAGS_BASE} + + # Allow users to explicitly avoid flag sanitization via + # USE=custom-cflags. + if ! use custom-cflags; then + # Over-zealous CFLAGS can often cause problems. What may work for one + # person may not work for another. To avoid a large influx of bugs + # relating to failed builds, we strip most CFLAGS out to ensure as few + # problems as possible. + strip-flags + # Lock glibc at -O2; we want to be conservative here. + filter-flags '-O?' + append-flags -O2 + fi + strip-unsupported-flags + filter-flags -m32 -m64 '-mabi=*' + + # glibc aborts if rpath is set by LDFLAGS + filter-ldflags '-Wl,-rpath=*' + + # #492892 + filter-flags -frecord-gcc-switches + + unset CBUILD_OPT CTARGET_OPT + if use multilib ; then + CTARGET_OPT=$(get_abi_CTARGET) + [[ -z ${CTARGET_OPT} ]] && CTARGET_OPT=$(get_abi_CHOST) + fi + + setup_target_flags + + if [[ -n ${CTARGET_OPT} && ${CBUILD} == ${CHOST} ]] && ! is_crosscompile; then + CBUILD_OPT=${CTARGET_OPT} + fi + + # glibc's headers disallow -O0 and fail at build time: + # include/libc-symbols.h:75:3: #error "glibc cannot be compiled without optimization" + replace-flags -O0 -O1 + + filter-flags '-fstack-protector*' +} + +want_tls() { + # Archs that can use TLS (Thread Local Storage) + case $(tc-arch) in + x86) + # requires i486 or better #106556 + [[ ${CTARGET} == i[4567]86* ]] && return 0 + return 1 + ;; + esac + return 0 +} + +want__thread() { + want_tls || return 1 + + # For some reason --with-tls --with__thread is causing segfaults on sparc32. + [[ ${PROFILE_ARCH} == "sparc" ]] && return 1 + + [[ -n ${WANT__THREAD} ]] && return ${WANT__THREAD} + + # only test gcc -- can't test linking yet + tc-has-tls -c ${CTARGET} + WANT__THREAD=$? + + return ${WANT__THREAD} +} + +use_multiarch() { + # Allow user to disable runtime arch detection in multilib. + use multiarch || return 1 + # Make sure binutils is new enough to support indirect functions, + # #336792. This funky sed supports gold and bfd linkers. + local bver nver + bver=$($(tc-getLD ${CTARGET}) -v | sed -n -r '1{s:[^0-9]*::;s:^([0-9.]*).*:\1:;p}') + case $(tc-arch ${CTARGET}) in + amd64|x86) nver="2.20" ;; + arm) nver="2.22" ;; + hppa) nver="2.23" ;; + ppc|ppc64) nver="2.20" ;; + # ifunc support was added in 2.23, but glibc also needs + # machinemode which is in 2.24. + s390) nver="2.24" ;; + sparc) nver="2.21" ;; + *) return 1 ;; + esac + ver_test ${bver} -ge ${nver} +} + +# Setup toolchain variables that had historically been defined in the +# profiles for these archs. +setup_env() { + # silly users + unset LD_RUN_PATH + unset LD_ASSUME_KERNEL + + if is_crosscompile || tc-is-cross-compiler ; then + multilib_env ${CTARGET_OPT:-${CTARGET}} + + if ! use multilib ; then + MULTILIB_ABIS=${DEFAULT_ABI} + else + MULTILIB_ABIS=${MULTILIB_ABIS:-${DEFAULT_ABI}} + fi + + # If the user has CFLAGS_ in their make.conf, use that, + # and fall back on CFLAGS. + local VAR=CFLAGS_${CTARGET//[-.]/_} + CFLAGS=${!VAR-${CFLAGS}} + einfo " $(printf '%15s' 'Manual CFLAGS:') ${CFLAGS}" + fi + + setup_flags + + export ABI=${ABI:-${DEFAULT_ABI:-default}} + + if just_headers ; then + # Avoid mixing host's CC and target's CFLAGS_${ABI}: + # At this bootstrap stage we have only binutils for + # target but not compiler yet. + einfo "Skip CC ABI injection. We can't use (cross-)compiler yet." + return 0 + fi + local VAR=CFLAGS_${ABI} + # We need to export CFLAGS with abi information in them because glibc's + # configure script checks CFLAGS for some targets (like mips). Keep + # around the original clean value to avoid appending multiple ABIs on + # top of each other. + : ${__GLIBC_CC:=$(tc-getCC ${CTARGET})} + export __GLIBC_CC CC="${__GLIBC_CC} ${!VAR}" + einfo " $(printf '%15s' 'Manual CC:') ${CC}" +} + +foreach_abi() { + setup_env + + local ret=0 + local abilist="" + if use multilib ; then + abilist=$(get_install_abis) + else + abilist=${DEFAULT_ABI} + fi + local -x ABI + for ABI in ${abilist:-default} ; do + setup_env + einfo "Running $1 for ABI ${ABI}" + $1 + : $(( ret |= $? )) + done + return ${ret} +} + +glibc_banner() { + local b="Gentoo ${PVR}" + [[ -n ${PATCH_VER} ]] && ! use vanilla && b+=" p${PATCH_VER}" + echo "${b}" +} + +check_devpts() { + # Make sure devpts is mounted correctly for use w/out setuid pt_chown. + + # If merely building the binary package, then there's nothing to verify. + [[ ${MERGE_TYPE} == "buildonly" ]] && return + + # Only sanity check when installing the native glibc. + [[ -n ${ROOT} ]] && return + + # If they're opting in to the old suid code, then no need to check. + use suid && return + + if awk '$3 == "devpts" && $4 ~ /[, ]gid=5[, ]/ { exit 1 }' /proc/mounts ; then + eerror "In order to use glibc with USE=-suid, you must make sure that" + eerror "you have devpts mounted at /dev/pts with the gid=5 option." + eerror "Openrc should do this for you, so you should check /etc/fstab" + eerror "and make sure you do not have any invalid settings there." + die "mount & fix your /dev/pts settings" + fi +} + +# The following Kernel version handling functions are mostly copied from portage +# source. It's better not to use linux-info.eclass here since a) it adds too +# much magic, see bug 326693 for some of the arguments, and b) some of the +# functions are just not provided. + +g_get_running_KV() { + uname -r + return $? +} + +g_KV_major() { + [[ -z $1 ]] && return 1 + local KV=$@ + echo "${KV%%.*}" +} + +g_KV_minor() { + [[ -z $1 ]] && return 1 + local KV=$@ + KV=${KV#*.} + echo "${KV%%.*}" +} + +g_KV_micro() { + [[ -z $1 ]] && return 1 + local KV=$@ + KV=${KV#*.*.} + echo "${KV%%[^[:digit:]]*}" +} + +g_KV_to_int() { + [[ -z $1 ]] && return 1 + local KV_MAJOR=$(g_KV_major "$1") + local KV_MINOR=$(g_KV_minor "$1") + local KV_MICRO=$(g_KV_micro "$1") + local KV_int=$(( KV_MAJOR * 65536 + KV_MINOR * 256 + KV_MICRO )) + + # We make version 2.2.0 the minimum version we will handle as + # a sanity check ... if its less, we fail ... + if [[ ${KV_int} -ge 131584 ]] ; then + echo "${KV_int}" + return 0 + fi + return 1 +} + +g_int_to_KV() { + local version=$1 major minor micro + major=$((version / 65536)) + minor=$(((version % 65536) / 256)) + micro=$((version % 256)) + echo ${major}.${minor}.${micro} +} + +eend_KV() { + [[ $(g_KV_to_int $1) -ge $(g_KV_to_int $2) ]] + eend $? +} + +get_kheader_version() { + printf '#include \nLINUX_VERSION_CODE\n' | \ + $(tc-getCPP ${CTARGET}) -I "$(build_eprefix)$(alt_build_headers)" - | \ + tail -n 1 +} + +# We collect all sanity checks here. Consistency is not guranteed between +# pkg_ and src_ phases, so we call this function both in pkg_pretend and in +# src_unpack. +sanity_prechecks() { + # Make sure devpts is mounted correctly for use w/out setuid pt_chown + check_devpts + + # Prevent native builds from downgrading + if [[ ${MERGE_TYPE} != "buildonly" ]] && \ + [[ -z ${ROOT} ]] && \ + [[ ${CBUILD} == ${CHOST} ]] && \ + [[ ${CHOST} == ${CTARGET} ]] ; then + + # The high rev # is to allow people to downgrade between -r# + # versions. We want to block 2.20->2.19, but 2.20-r3->2.20-r2 + # should be fine. Hopefully we never actually use a r# this + # high. + if has_version ">${CATEGORY}/${P}-r10000" ; then + eerror "Sanity check to keep you from breaking your system:" + eerror " Downgrading glibc is not supported and a sure way to destruction." + [[ ${I_ALLOW_TO_BREAK_MY_SYSTEM} = yes ]] || die "Aborting to save your system." + fi + + if ! do_run_test '#include \n#include \nint main(){return syscall(1000)!=-1;}\n' ; then + eerror "Your old kernel is broken. You need to update it to a newer" + eerror "version as syscall() will break. See bug 279260." + die "Old and broken kernel." + fi + fi + + # Users have had a chance to phase themselves, time to give em the boot + if [[ -e ${EROOT}/etc/locale.gen ]] && [[ -e ${EROOT}/etc/locales.build ]] ; then + eerror "You still haven't deleted ${EROOT}/etc/locales.build." + eerror "Do so now after making sure ${EROOT}/etc/locale.gen is kosher." + die "Lazy upgrader detected" + fi + + if [[ ${CTARGET} == i386-* ]] ; then + eerror "i386 CHOSTs are no longer supported." + eerror "Chances are you don't actually want/need i386." + eerror "Please read https://www.gentoo.org/doc/en/change-chost.xml" + die "Please fix your CHOST" + fi + + if [[ -e /proc/xen ]] && [[ $(tc-arch) == "x86" ]] && ! is-flag -mno-tls-direct-seg-refs ; then + ewarn "You are using Xen but don't have -mno-tls-direct-seg-refs in your CFLAGS." + ewarn "This will result in a 50% performance penalty when running with a 32bit" + ewarn "hypervisor, which is probably not what you want." + fi + + # Check for sanity of /etc/nsswitch.conf + if [[ -e ${EROOT}/etc/nsswitch.conf ]] ; then + local entry + for entry in passwd group shadow; do + if ! egrep -q "^[ \t]*${entry}:.*files" "${EROOT}"/etc/nsswitch.conf; then + eerror "Your ${EROOT}/etc/nsswitch.conf is out of date." + eerror "Please make sure you have 'files' entries for" + eerror "'passwd:', 'group:' and 'shadow:' databases." + eerror "For more details see:" + eerror " https://wiki.gentoo.org/wiki/Project:Toolchain/nsswitch.conf_in_glibc-2.26" + die "nsswitch.conf has no 'files' provider in '${entry}'." + fi + done + fi + + # ABI-specific checks follow here. Hey, we have a lot more specific conditions that + # we test for... + if ! is_crosscompile ; then + if use amd64 && use multilib && [[ ${MERGE_TYPE} != "binary" ]] ; then + ebegin "Checking that IA32 emulation is enabled in the running kernel" + echo 'int main(){return 0;}' > "${T}/check-ia32-emulation.c" + local STAT + if "${CC-${CHOST}-gcc}" ${CFLAGS_x86} "${T}/check-ia32-emulation.c" -o "${T}/check-ia32-emulation.elf32"; then + "${T}/check-ia32-emulation.elf32" + STAT=$? + else + # Don't fail here to allow single->multi ABI switch + # or recover from breakage like bug #646424 + ewarn "Failed to compile the ABI test. Broken host glibc?" + STAT=0 + fi + rm -f "${T}/check-ia32-emulation.elf32" + eend $STAT + [[ $STAT -eq 0 ]] || die "CONFIG_IA32_EMULATION must be enabled in the kernel to compile a multilib glibc." + fi + + fi + + # When we actually have to compile something... + if ! just_headers ; then + ebegin "Checking gcc for __thread support" + if ! eend $(want__thread ; echo $?) ; then + echo + eerror "Could not find a gcc that supports the __thread directive!" + eerror "Please update your binutils/gcc and try again." + die "No __thread support in gcc!" + fi + + if [[ ${CTARGET} == *-linux* ]] ; then + local run_kv build_kv want_kv + + run_kv=$(g_get_running_KV) + build_kv=$(g_int_to_KV $(get_kheader_version)) + want_kv=${MIN_KERN_VER} + + if ! is_crosscompile && ! tc-is-cross-compiler ; then + # Building fails on an non-supporting kernel + ebegin "Checking running kernel version (${run_kv} >= ${want_kv})" + if ! eend_KV ${run_kv} ${want_kv} ; then + echo + eerror "You need a kernel of at least ${want_kv}!" + die "Kernel version too low!" + fi + fi + + ebegin "Checking linux-headers version (${build_kv} >= ${want_kv})" + if ! eend_KV ${build_kv} ${want_kv} ; then + echo + eerror "You need linux-headers of at least ${want_kv}!" + die "linux-headers version too low!" + fi + fi + fi +} + +# +# the phases +# + +# pkg_pretend + +pkg_pretend() { + # All the checks... + einfo "Checking general environment sanity." + sanity_prechecks +} + +pkg_setup() { + # see bug 682570 + [[ -z ${BOOTSTRAP_RAP} ]] && python-any-r1_pkg_setup +} + +# src_unpack + +src_unpack() { + # Consistency is not guaranteed between pkg_ and src_ ... + sanity_prechecks + + use multilib && unpack gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}.tar.xz + + setup_env + + if [[ -n ${EGIT_REPO_URI} ]] ; then + git-r3_src_unpack + else + unpack ${P}.tar.xz + fi + + cd "${WORKDIR}" || die + unpack glibc-${RELEASE_VER}-patches-${PATCH_VER}.tar.xz +} + +src_prepare() { + if ! use vanilla ; then + elog "Applying Gentoo Glibc Patchset ${RELEASE_VER}-${PATCH_VER}" + eapply "${WORKDIR}"/patches + einfo "Done." + fi + + default + + gnuconfig_update + + cd "${WORKDIR}" + find . -name configure -exec touch {} + + + eprefixify extra/locale/locale-gen + + # Fix permissions on some of the scripts. + chmod u+x "${S}"/scripts/*.sh + + cd "${S}" +} + +glibc_do_configure() { + # Glibc does not work with gold (for various reasons) #269274. + tc-ld-disable-gold + + # CXX isnt handled by the multilib system, so if we dont unset here + # we accumulate crap across abis + unset CXX + + einfo "Configuring glibc for nptl" + + if use doc ; then + export MAKEINFO=makeinfo + else + export MAKEINFO=/dev/null + fi + + local v + for v in ABI CBUILD CHOST CTARGET CBUILD_OPT CTARGET_OPT CC CXX LD {AS,C,CPP,CXX,LD}FLAGS MAKEINFO ; do + einfo " $(printf '%15s' ${v}:) ${!v}" + done + + # CFLAGS can contain ABI-specific flags like -mfpu=neon, see bug #657760 + # To build .S (assembly) files with the same ABI-specific flags + # upstream currently recommends adding CFLAGS to CC/CXX: + # https://sourceware.org/PR23273 + # Note: Passing CFLAGS via CPPFLAGS overrides glibc's arch-specific CFLAGS + # and breaks multiarch support. See 659030#c3 for an example. + # The glibc configure script doesn't properly use LDFLAGS all the time. + export CC="$(tc-getCC ${CTARGET}) ${CFLAGS} ${LDFLAGS}" + einfo " $(printf '%15s' 'Manual CC:') ${CC}" + + # Some of the tests are written in C++, so we need to force our multlib abis in, bug 623548 + export CXX="$(tc-getCXX ${CTARGET}) $(get_abi_CFLAGS) ${CFLAGS}" + + if is_crosscompile; then + # Assume worst-case bootstrap: glibc is buil first time + # when ${CTARGET}-g++ is not available yet. We avoid + # building auxiliary programs that require C++: bug #683074 + # It should not affect final result. + export libc_cv_cxx_link_ok=no + # The line above has the same effect. We set CXX explicitly + # to make build logs less confusing. + export CXX= + fi + einfo " $(printf '%15s' 'Manual CXX:') ${CXX}" + + echo + + local myconf=() + + case ${CTARGET} in + m68k*) + # setjmp() is not compatible with stack protection: + # https://sourceware.org/PR24202 + myconf+=( --enable-stack-protector=no ) + ;; + powerpc-*) + # Currently gcc on powerpc32 generates invalid code for + # __builtin_return_address(0) calls. Normally programs + # don't do that but malloc hooks in glibc do: + # https://gcc.gnu.org/PR81996 + # https://bugs.gentoo.org/629054 + myconf+=( --enable-stack-protector=no ) + ;; + *) + # Use '=strong' instead of '=all' to protect only functions + # worth protecting from stack smashes. + # '=all' is also known to have a problem in IFUNC resolution + # tests: https://sourceware.org/PR25680, bug #712356. + myconf+=( --enable-stack-protector=$(usex ssp strong no) ) + ;; + esac + myconf+=( --enable-stackguard-randomization ) + + # Keep a whitelist of targets supporing IFUNC. glibc's ./configure + # is not robust enough to detect proper support: + # https://bugs.gentoo.org/641216 + # https://sourceware.org/PR22634#c0 + case $(tc-arch ${CTARGET}) in + # Keep whitelist of targets where autodetection mostly works. + amd64|x86|sparc|ppc|ppc64|arm|arm64|s390) ;; + # Blacklist everywhere else + *) myconf+=( libc_cv_ld_gnu_indirect_function=no ) ;; + esac + + # Enable Intel Control-flow Enforcement Technology on amd64 if requested + case ${CTARGET} in + x86_64-*) myconf+=( $(use_enable cet) ) ;; + *) ;; + esac + + [[ $(tc-is-softfloat) == "yes" ]] && myconf+=( --without-fp ) + + myconf+=( --enable-kernel=${MIN_KERN_VER} ) + + # Since SELinux support is only required for nscd, only enable it if: + # 1. USE selinux + # 2. only for the primary ABI on multilib systems + # 3. Not a crosscompile + if ! is_crosscompile && use selinux ; then + if use multilib ; then + if is_final_abi ; then + myconf+=( --with-selinux ) + else + myconf+=( --without-selinux ) + fi + else + myconf+=( --with-selinux ) + fi + else + myconf+=( --without-selinux ) + fi + + # Force a few tests where we always know the answer but + # configure is incapable of finding it. + if is_crosscompile ; then + export \ + libc_cv_c_cleanup=yes \ + libc_cv_forced_unwind=yes + fi + + myconf+=( + --without-cvs + --disable-werror + --enable-bind-now + --build=${CBUILD_OPT:-${CBUILD}} + --host=${CTARGET_OPT:-${CTARGET}} + $(use_enable profile) + $(use_with gd) + --with-headers=$(build_eprefix)$(alt_build_headers) + --prefix="$(host_eprefix)/usr" + --sysconfdir="$(host_eprefix)/etc" + --localstatedir="$(host_eprefix)/var" + --libdir='$(prefix)'/$(get_libdir) + --mandir='$(prefix)'/share/man + --infodir='$(prefix)'/share/info + --libexecdir='$(libdir)'/misc/glibc + --with-bugurl=https://bugs.gentoo.org/ + --with-pkgversion="$(glibc_banner)" + $(use_enable crypt) + $(use_multiarch || echo --disable-multi-arch) + $(use_enable systemtap) + $(use_enable nscd) + ${EXTRA_ECONF} + ) + + # We rely on sys-libs/timezone-data for timezone tools normally. + myconf+=( $(use_enable vanilla timezone-tools) ) + + # These libs don't have configure flags. + ac_cv_lib_audit_audit_log_user_avc_message=$(usex audit || echo no) + ac_cv_lib_cap_cap_init=$(usex caps || echo no) + + # There is no configure option for this and we need to export it + # since the glibc build will re-run configure on itself + export libc_cv_rootsbindir="$(host_eprefix)/sbin" + export libc_cv_slibdir="$(host_eprefix)/$(get_libdir)" + + # We take care of patching our binutils to use both hash styles, + # and many people like to force gnu hash style only, so disable + # this overriding check. #347761 + export libc_cv_hashstyle=no + + local builddir=$(builddir nptl) + mkdir -p "${builddir}" + cd "${builddir}" + set -- "${S}"/configure "${myconf[@]}" + echo "$@" + "$@" || die "failed to configure glibc" + + # ia64 static cross-compilers are a pita in so much that they + # can't produce static ELFs (as the libgcc.a is broken). so + # disable building of the programs for those targets if it + # doesn't work. + # XXX: We could turn this into a compiler test, but ia64 is + # the only one that matters, so this should be fine for now. + if is_crosscompile && [[ ${CTARGET} == ia64* ]] ; then + sed -i '1i+link-static = touch $@' config.make + fi + + # If we're trying to migrate between ABI sets, we need + # to lie and use a local copy of gcc. Like if the system + # is built with MULTILIB_ABIS="amd64 x86" but we want to + # add x32 to it, gcc/glibc don't yet support x32. + # + if [[ -n ${GCC_BOOTSTRAP_VER} ]] && use multilib ; then + echo 'main(){}' > "${T}"/test.c + if ! $(tc-getCC ${CTARGET}) ${CFLAGS} ${LDFLAGS} "${T}"/test.c -Wl,-emain -lgcc 2>/dev/null ; then + sed -i -e '/^CC = /s:$: -B$(objdir)/../'"gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}/${ABI}:" config.make || die + fi + fi +} + +glibc_headers_configure() { + export ABI=default + + local builddir=$(builddir "headers") + mkdir -p "${builddir}" + cd "${builddir}" + + # if we don't have a compiler yet, we can't really test it now ... + # hopefully they don't affect header generation, so let's hope for + # the best here ... + local v vars=( + ac_cv_header_cpuid_h=yes + libc_cv_{386,390,alpha,arm,hppa,ia64,mips,{powerpc,sparc}{,32,64},sh,x86_64}_tls=yes + libc_cv_asm_cfi_directives=yes + libc_cv_broken_visibility_attribute=no + libc_cv_c_cleanup=yes + libc_cv_compiler_powerpc64le_binary128_ok=yes + libc_cv_forced_unwind=yes + libc_cv_gcc___thread=yes + libc_cv_mlong_double_128=yes + libc_cv_mlong_double_128ibm=yes + libc_cv_ppc_machine=yes + libc_cv_ppc_rel16=yes + libc_cv_predef_fortify_source=no + libc_cv_target_power8_ok=yes + libc_cv_visibility_attribute=yes + libc_cv_z_combreloc=yes + libc_cv_z_execstack=yes + libc_cv_z_initfirst=yes + libc_cv_z_nodelete=yes + libc_cv_z_nodlopen=yes + libc_cv_z_relro=yes + libc_mips_abi=${ABI} + libc_mips_float=$([[ $(tc-is-softfloat) == "yes" ]] && echo soft || echo hard) + # These libs don't have configure flags. + ac_cv_lib_audit_audit_log_user_avc_message=no + ac_cv_lib_cap_cap_init=no + ) + + einfo "Forcing cached settings:" + for v in "${vars[@]}" ; do + einfo " ${v}" + export ${v} + done + + local headers_only_arch_CPPFLAGS=() + + # Blow away some random CC settings that screw things up. #550192 + if [[ -d ${S}/sysdeps/mips ]]; then + pushd "${S}"/sysdeps/mips >/dev/null + sed -i -e '/^CC +=/s:=.*:= -D_MIPS_SZPTR=32:' mips32/Makefile mips64/n32/Makefile || die + sed -i -e '/^CC +=/s:=.*:= -D_MIPS_SZPTR=64:' mips64/n64/Makefile || die + + # Force the mips ABI to the default. This is OK because the set of + # installed headers in this phase is the same between the 3 ABIs. + # If this ever changes, this hack will break, but that's unlikely + # as glibc discourages that behavior. + # https://crbug.com/647033 + sed -i -e 's:abiflag=.*:abiflag=_ABIO32:' preconfigure || die + + popd >/dev/null + fi + + case ${CTARGET} in + riscv*) + # RISC-V interrogates the compiler to determine which target to + # build. If building the headers then we don't strictly need a + # RISC-V compiler, so the built-in definitions that are provided + # along with all RISC-V compiler might not exist. This causes + # glibc's RISC-V preconfigure script to blow up. Since we're just + # building the headers any value will actually work here, so just + # pick the standard one (rv64g/lp64d) to make the build scripts + # happy for now -- the headers are all the same anyway so it + # doesn't matter. + headers_only_arch_CPPFLAGS+=( + -D__riscv_xlen=64 + -D__riscv_flen=64 + -D__riscv_float_abi_double=1 + -D__riscv_atomic=1 + ) ;; + esac + + local myconf=() + myconf+=( + --disable-sanity-checks + --enable-hacker-mode + --without-cvs + --disable-werror + --enable-bind-now + --build=${CBUILD_OPT:-${CBUILD}} + --host=${CTARGET_OPT:-${CTARGET}} + --with-headers=$(build_eprefix)$(alt_build_headers) + --prefix="$(host_eprefix)/usr" + ${EXTRA_ECONF} + ) + + # Nothing is compiled here which would affect the headers for the target. + # So forcing CC/CFLAGS is sane. + local headers_only_CC=$(tc-getBUILD_CC) + local headers_only_CFLAGS="-O1 -pipe" + local headers_only_CPPFLAGS="-U_FORTIFY_SOURCE ${headers_only_arch_CPPFLAGS[*]}" + local headers_only_LDFLAGS="" + set -- "${S}"/configure "${myconf[@]}" + echo \ + "CC=${headers_only_CC}" \ + "CFLAGS=${headers_only_CFLAGS}" \ + "CPPFLAGS=${headers_only_CPPFLAGS}" \ + "LDFLAGS=${headers_only_LDFLAGS}" \ + "$@" + CC=${headers_only_CC} \ + CFLAGS=${headers_only_CFLAGS} \ + CPPFLAGS=${headers_only_CPPFLAGS} \ + LDFLAGS="" \ + "$@" || die "failed to configure glibc" +} + +do_src_configure() { + if just_headers ; then + glibc_headers_configure + else + glibc_do_configure nptl + fi +} + +src_configure() { + foreach_abi do_src_configure +} + +do_src_compile() { + emake -C "$(builddir nptl)" +} + +src_compile() { + if just_headers ; then + return + fi + + foreach_abi do_src_compile +} + +glibc_src_test() { + cd "$(builddir nptl)" + + local myxfailparams="" + if [[ "${GENTOO_GLIBC_XFAIL_TESTS}" == "yes" ]] ; then + for myt in ${XFAIL_TEST_LIST[@]} ; do + myxfailparams+="test-xfail-${myt}=yes " + done + fi + + emake ${myxfailparams} check +} + +do_src_test() { + local ret=0 + + glibc_src_test + : $(( ret |= $? )) + + return ${ret} +} + +src_test() { + if just_headers ; then + return + fi + + # Give tests more time to complete. + export TIMEOUTFACTOR=5 + + foreach_abi do_src_test || die "tests failed" +} + +run_locale_gen() { + # if the host locales.gen contains no entries, we'll install everything + local root="$1" + local inplace="" + + if [[ "${root}" == "--inplace-glibc" ]] ; then + inplace="--inplace-glibc" + root="$2" + fi + + local locale_list="${root}/etc/locale.gen" + + pushd "${ED}"/$(get_libdir) >/dev/null + + if [[ -z $(locale-gen --list --config "${locale_list}") ]] ; then + [[ -z ${inplace} ]] && ewarn "Generating all locales; edit /etc/locale.gen to save time/space" + locale_list="${root}/usr/share/i18n/SUPPORTED" + fi + + locale-gen ${inplace} --jobs $(makeopts_jobs) --config "${locale_list}" \ + --destdir "${root}" + + popd >/dev/null +} + +glibc_do_src_install() { + local builddir=$(builddir nptl) + cd "${builddir}" + + emake install_root="${D}/$(build_eprefix)$(alt_prefix)" install + + # This version (2.26) provides some compatibility libraries for the NIS/NIS+ support + # which come without headers etc. Only needed for binary packages since the + # external net-libs/libnsl has increased soversion. Keep only versioned libraries. + find "${D}" -name "libnsl.a" -delete + find "${D}" -name "libnsl.so" -delete + + # Normally upstream_pv is ${PV}. Live ebuilds are exception, there we need + # to infer upstream version: + # '#define VERSION "2.26.90"' -> '2.26.90' + local upstream_pv=$(sed -n -r 's/#define VERSION "(.*)"/\1/p' "${S}"/version.h) + + # Avoid stripping binaries not targeted by ${CHOST}. Or else + # ${CHOST}-strip would break binaries build for ${CTARGET}. + is_crosscompile && dostrip -x / + # gdb thread introspection relies on local libpthreas symbols. stripping breaks it + # See Note [Disable automatic stripping] + dostrip -x $(alt_libdir)/libpthread-${upstream_pv}.so + + if [[ -e ${ED}/$(alt_usrlibdir)/libm-${upstream_pv}.a ]] ; then + # Move versioned .a file out of libdir to evade portage QA checks + # instead of using gen_usr_ldscript(). We fix ldscript as: + # "GROUP ( /usr/lib64/libm-.a ..." -> "GROUP ( /usr/lib64/glibc-/libm-.a ..." + sed -i "s@\(libm-${upstream_pv}.a\)@${P}/\1@" "${ED}"/$(alt_usrlibdir)/libm.a || die + dodir $(alt_usrlibdir)/${P} + mv "${ED}"/$(alt_usrlibdir)/libm-${upstream_pv}.a "${ED}"/$(alt_usrlibdir)/${P}/libm-${upstream_pv}.a || die + fi + + # We'll take care of the cache ourselves + rm -f "${ED}"/etc/ld.so.cache + + # Everything past this point just needs to be done once ... + is_final_abi || return 0 + + # Make sure the non-native interp can be found on multilib systems even + # if the main library set isn't installed into the right place. Maybe + # we should query the active gcc for info instead of hardcoding it ? + local i ldso_abi ldso_name + local ldso_abi_list=( + # x86 + amd64 /lib64/ld-linux-x86-64.so.2 + x32 /libx32/ld-linux-x32.so.2 + x86 /lib/ld-linux.so.2 + # mips + o32 /lib/ld.so.1 + n32 /lib32/ld.so.1 + n64 /lib64/ld.so.1 + # powerpc + ppc /lib/ld.so.1 + ppc64 /lib64/ld64.so.1 + # riscv + lp64d /lib/ld-linux-riscv64-lp64d.so.1 + lp64 /lib/ld-linux-riscv64-lp64.so.1 + # s390 + s390 /lib/ld.so.1 + s390x /lib/ld64.so.1 + # sparc + sparc32 /lib/ld-linux.so.2 + sparc64 /lib64/ld-linux.so.2 + ) + case $(tc-endian) in + little) + ldso_abi_list+=( + # arm + arm64 /lib/ld-linux-aarch64.so.1 + ) + ;; + big) + ldso_abi_list+=( + # arm + arm64 /lib/ld-linux-aarch64_be.so.1 + ) + ;; + esac + if [[ ${SYMLINK_LIB} == "yes" ]] && [[ ! -e ${ED}/$(alt_prefix)/lib ]] ; then + dosym $(get_abi_LIBDIR ${DEFAULT_ABI}) $(alt_prefix)/lib + fi + for (( i = 0; i < ${#ldso_abi_list[@]}; i += 2 )) ; do + ldso_abi=${ldso_abi_list[i]} + has ${ldso_abi} $(get_install_abis) || continue + + ldso_name="$(alt_prefix)${ldso_abi_list[i+1]}" + if [[ ! -L ${ED}/${ldso_name} && ! -e ${ED}/${ldso_name} ]] ; then + dosym ../$(get_abi_LIBDIR ${ldso_abi})/${ldso_name##*/} ${ldso_name} + fi + done + + # With devpts under Linux mounted properly, we do not need the pt_chown + # binary to be setuid. This is because the default owners/perms will be + # exactly what we want. + if ! use suid ; then + find "${ED}" -name pt_chown -exec chmod -s {} + + fi + + ################################################################# + # EVERYTHING AFTER THIS POINT IS FOR NATIVE GLIBC INSTALLS ONLY # + # Make sure we install some symlink hacks so that when we build + # a 2nd stage cross-compiler, gcc finds the target system + # headers correctly. See gcc/doc/gccinstall.info + if is_crosscompile ; then + # We need to make sure that /lib and /usr/lib always exists. + # gcc likes to use relative paths to get to its multilibs like + # /usr/lib/../lib64/. So while we don't install any files into + # /usr/lib/, we do need it to exist. + keepdir $(alt_prefix)/lib + keepdir $(alt_prefix)/usr/lib + + dosym usr/include $(alt_prefix)/sys-include + return 0 + fi + + # Files for Debian-style locale updating + dodir /usr/share/i18n + sed \ + -e "/^#/d" \ + -e "/SUPPORTED-LOCALES=/d" \ + -e "s: \\\\::g" -e "s:/: :g" \ + "${S}"/localedata/SUPPORTED > "${ED}"/usr/share/i18n/SUPPORTED \ + || die "generating /usr/share/i18n/SUPPORTED failed" + cd "${WORKDIR}"/extra/locale + dosbin locale-gen + doman *.[0-8] + insinto /etc + doins locale.gen + + # Make sure all the ABI's can find the locales and so we only + # have to generate one set + local a + keepdir /usr/$(get_libdir)/locale + for a in $(get_install_abis) ; do + if [[ ! -e ${ED}/usr/$(get_abi_LIBDIR ${a})/locale ]] ; then + dosym ../$(get_libdir)/locale /usr/$(get_abi_LIBDIR ${a})/locale + fi + done + + # HACK: If we're building for riscv, we need to additionally make sure that + # we can find the locale archive afterwards + case ${CTARGET} in + riscv*) + if [[ ! -e ${ED}/usr/lib/locale ]] ; then + dosym ../$(get_libdir)/locale /usr/lib/locale + fi + ;; + *) ;; + esac + + cd "${S}" + + # Install misc network config files + insinto /etc + doins nscd/nscd.conf posix/gai.conf nss/nsswitch.conf + doins "${WORKDIR}"/extra/etc/*.conf + + if use nscd ; then + doinitd "$(prefixify_ro "${WORKDIR}"/extra/etc/nscd)" + + local nscd_args=( + -e "s:@PIDFILE@:$(strings "${ED}"/usr/sbin/nscd | grep nscd.pid):" + ) + + sed -i "${nscd_args[@]}" "${ED}"/etc/init.d/nscd + + systemd_dounit nscd/nscd.service + systemd_newtmpfilesd nscd/nscd.tmpfiles nscd.conf + else + # Do this since extra/etc/*.conf above might have nscd.conf. + rm -f "${ED}"/etc/nscd.conf + fi + + echo 'LDPATH="include ld.so.conf.d/*.conf"' > "${T}"/00glibc + doenvd "${T}"/00glibc + + for d in BUGS ChangeLog CONFORMANCE FAQ NEWS NOTES PROJECTS README* ; do + [[ -s ${d} ]] && dodoc ${d} + done + dodoc -r ChangeLog.old + + # Prevent overwriting of the /etc/localtime symlink. We'll handle the + # creation of the "factory" symlink in pkg_postinst(). + rm -f "${ED}"/etc/localtime + + # Generate all locales if this is a native build as locale generation + if use compile-locales && ! is_crosscompile ; then + run_locale_gen --inplace-glibc "${ED}/" + sed -e 's:COMPILED_LOCALES="":COMPILED_LOCALES="1":' -i "${ED}"/usr/sbin/locale-gen || die + fi +} + +glibc_headers_install() { + local builddir=$(builddir "headers") + cd "${builddir}" + emake install_root="${D}/$(build_eprefix)$(alt_prefix)" install-headers + + insinto $(alt_headers)/gnu + doins "${S}"/include/gnu/stubs.h + + # Make sure we install the sys-include symlink so that when + # we build a 2nd stage cross-compiler, gcc finds the target + # system headers correctly. See gcc/doc/gccinstall.info + dosym usr/include $(alt_prefix)/sys-include +} + +src_install() { + if just_headers ; then + export ABI=default + glibc_headers_install + return + fi + + foreach_abi glibc_do_src_install + + if ! use static-libs ; then + elog "Not installing static glibc libraries" + find "${ED}" -name "*.a" -and -not -name "*_nonshared.a" -delete + fi +} + +# Simple test to make sure our new glibc isn't completely broken. +# Make sure we don't test with statically built binaries since +# they will fail. Also, skip if this glibc is a cross compiler. +# +# If coreutils is built with USE=multicall, some of these files +# will just be wrapper scripts, not actual ELFs we can test. +glibc_sanity_check() { + cd / #228809 + + # We enter ${ED} so to avoid trouble if the path contains + # special characters; for instance if the path contains the + # colon character (:), then the linker will try to split it + # and look for the libraries in an unexpected place. This can + # lead to unsafe code execution if the generated prefix is + # within a world-writable directory. + # (e.g. /var/tmp/portage:${HOSTNAME}) + pushd "${ED}"/$(get_libdir) >/dev/null + + local x striptest + for x in cal date env free ls true uname uptime ; do + x=$(type -p ${x}) + [[ -z ${x} || ${x} != ${EPREFIX}/* ]] && continue + striptest=$(LC_ALL="C" file -L ${x} 2>/dev/null) || continue + case ${striptest} in + *"statically linked"*) continue;; + *"ASCII text"*) continue;; + esac + # We need to clear the locale settings as the upgrade might want + # incompatible locale data. This test is not for verifying that. + LC_ALL=C \ + ./ld-*.so --library-path . ${x} > /dev/null \ + || die "simple run test (${x}) failed" + done + + popd >/dev/null +} + +pkg_preinst() { + # nothing to do if just installing headers + just_headers && return + + # prepare /etc/ld.so.conf.d/ for files + mkdir -p "${EROOT}"/etc/ld.so.conf.d + + # Default /etc/hosts.conf:multi to on for systems with small dbs. + if [[ $(wc -l < "${EROOT}"/etc/hosts) -lt 1000 ]] ; then + sed -i '/^multi off/s:off:on:' "${ED}"/etc/host.conf + einfo "Defaulting /etc/host.conf:multi to on" + fi + + [[ -n ${ROOT} ]] && return 0 + [[ -d ${ED}/$(get_libdir) ]] || return 0 + [[ -z ${BOOTSTRAP_RAP} ]] && glibc_sanity_check +} + +pkg_postinst() { + # nothing to do if just installing headers + just_headers && return + + if ! tc-is-cross-compiler && [[ -x ${EROOT}/usr/sbin/iconvconfig ]] ; then + # Generate fastloading iconv module configuration file. + "${EROOT}"/usr/sbin/iconvconfig --prefix="${ROOT}/" + fi + + if ! is_crosscompile && [[ -z ${ROOT} ]] ; then + use compile-locales || run_locale_gen "${EROOT}/" + fi + + # Check for sanity of /etc/nsswitch.conf, take 2 + if [[ -e ${EROOT}/etc/nsswitch.conf ]] && ! has_version sys-auth/libnss-nis ; then + local entry + for entry in passwd group shadow; do + if egrep -q "^[ \t]*${entry}:.*nis" "${EROOT}"/etc/nsswitch.conf; then + ewarn "" + ewarn "Your ${EROOT}/etc/nsswitch.conf uses NIS. Support for that has been" + ewarn "removed from glibc and is now provided by the package" + ewarn " sys-auth/libnss-nis" + ewarn "Install it now to keep your NIS setup working." + ewarn "" + fi + done + fi +} diff --git a/sys-libs/glibc/glibc-2.30-r8.ebuild b/sys-libs/glibc/glibc-2.30-r8.ebuild new file mode 100644 index 000000000000..ca3472965c1e --- /dev/null +++ b/sys-libs/glibc/glibc-2.30-r8.ebuild @@ -0,0 +1,1471 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +PYTHON_COMPAT=( python3_{6,7,8} ) + +inherit python-any-r1 prefix eutils toolchain-funcs flag-o-matic gnuconfig \ + multilib systemd multiprocessing + +DESCRIPTION="GNU libc C library" +HOMEPAGE="https://www.gnu.org/software/libc/" +LICENSE="LGPL-2.1+ BSD HPND ISC inner-net rc PCRE" +SLOT="2.2" + +EMULTILIB_PKG="true" + +if [[ ${PV} == 9999* ]]; then + EGIT_REPO_URI="https://sourceware.org/git/glibc.git" + inherit git-r3 +else + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + SRC_URI="mirror://gnu/glibc/${P}.tar.xz" +fi + +RELEASE_VER=${PV} + +GCC_BOOTSTRAP_VER=20180511 + +# Gentoo patchset +PATCH_VER=10 +PATCH_DEV=dilfridge + +SRC_URI+=" https://dev.gentoo.org/~${PATCH_DEV}/distfiles/${P}-patches-${PATCH_VER}.tar.xz" +SRC_URI+=" multilib? ( https://dev.gentoo.org/~dilfridge/distfiles/gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}.tar.xz )" + +IUSE="audit caps cet compile-locales +crypt custom-cflags doc gd headers-only +multiarch multilib nscd profile selinux +ssp +static-libs suid systemtap test vanilla" + +# Minimum kernel version that glibc requires +MIN_KERN_VER="3.2.0" + +# Here's how the cross-compile logic breaks down ... +# CTARGET - machine that will target the binaries +# CHOST - machine that will host the binaries +# CBUILD - machine that will build the binaries +# If CTARGET != CHOST, it means you want a libc for cross-compiling. +# If CHOST != CBUILD, it means you want to cross-compile the libc. +# CBUILD = CHOST = CTARGET - native build/install +# CBUILD != (CHOST = CTARGET) - cross-compile a native build +# (CBUILD = CHOST) != CTARGET - libc for cross-compiler +# CBUILD != CHOST != CTARGET - cross-compile a libc for a cross-compiler +# For install paths: +# CHOST = CTARGET - install into / +# CHOST != CTARGET - install into /usr/CTARGET/ +# +export CBUILD=${CBUILD:-${CHOST}} +export CTARGET=${CTARGET:-${CHOST}} +if [[ ${CTARGET} == ${CHOST} ]] ; then + if [[ ${CATEGORY} == cross-* ]] ; then + export CTARGET=${CATEGORY#cross-} + fi +fi + +# Note [Disable automatic stripping] +# Disabling automatic stripping for a few reasons: +# - portage's attempt to strip breaks non-native binaries at least on +# arm: bug #697428 +# - portage's attempt to strip libpthread.so.0 breaks gdb thread +# enumeration: bug #697910. This is quite subtle: +# * gdb uses glibc's libthread_db-1.0.so to enumerate threads. +# * libthread_db-1.0.so needs access to libpthread.so.0 local symbols +# via 'ps_pglobal_lookup' symbol defined in gdb. +# * 'ps_pglobal_lookup' uses '.symtab' section table to resolve all +# known symbols in 'libpthread.so.0'. Specifically 'nptl_version' +# (unexported) is used to sanity check compatibility before enabling +# debugging. +# Also see https://sourceware.org/gdb/wiki/FAQ#GDB_does_not_see_any_threads_besides_the_one_in_which_crash_occurred.3B_or_SIGTRAP_kills_my_program_when_I_set_a_breakpoint +# * normal 'strip' command trims '.symtab' +# Thus our main goal here is to prevent 'libpthread.so.0' from +# losing it's '.symtab' entries. +# As Gentoo's strip does not allow us to pass less aggressive stripping +# options and does not check the machine target we strip selectively. + +# We need a new-enough binutils/gcc to match upstream baseline. +# Also we need to make sure our binutils/gcc supports TLS, +# and that gcc already contains the hardened patches. +BDEPEND=" + ${PYTHON_DEPS} + >=app-misc/pax-utils-0.1.10 + sys-devel/bison + !' | $(tc-getCPP ${CTARGET}) ${CFLAGS} 2>&1 | grep -o '[^"]*linux/version.h') + ALT_BUILD_HEADERS=${header_path%/linux/version.h} + fi + fi + fi + echo "${ALT_BUILD_HEADERS}" +} + +alt_libdir() { + echo $(alt_prefix)/$(get_libdir) +} +alt_usrlibdir() { + echo $(alt_prefix)/usr/$(get_libdir) +} + +builddir() { + echo "${WORKDIR}/build-${ABI}-${CTARGET}-$1" +} + +do_compile_test() { + local ret save_cflags=${CFLAGS} + CFLAGS+=" $1" + shift + + pushd "${T}" >/dev/null + + rm -f glibc-test* + printf '%b' "$*" > glibc-test.c + + nonfatal emake glibc-test + ret=$? + + popd >/dev/null + + CFLAGS=${save_cflags} + return ${ret} +} + +do_run_test() { + local ret + + if [[ ${MERGE_TYPE} == "binary" ]] ; then + # ignore build failures when installing a binary package #324685 + do_compile_test "" "$@" 2>/dev/null || return 0 + else + if ! do_compile_test "" "$@" ; then + ewarn "Simple build failed ... assuming this is desired #324685" + return 0 + fi + fi + + pushd "${T}" >/dev/null + + ./glibc-test + ret=$? + rm -f glibc-test* + + popd >/dev/null + + return ${ret} +} + +setup_target_flags() { + # This largely mucks with compiler flags. None of which should matter + # when building up just the headers. + just_headers && return 0 + + case $(tc-arch) in + x86) + # -march needed for #185404 #199334 + # TODO: When creating the first glibc cross-compile, this test will + # always fail as it does a full link which in turn requires glibc. + # Probably also applies when changing multilib profile settings (e.g. + # enabling x86 when the profile was amd64-only previously). + # We could change main to _start and pass -nostdlib here so that we + # only test the gcc code compilation. Or we could do a compile and + # then look for the symbol via scanelf. + if ! do_compile_test "" 'void f(int i, void *p) {if (__sync_fetch_and_add(&i, 1)) f(i, p);}\nint main(){return 0;}\n'; then + local t=${CTARGET_OPT:-${CTARGET}} + t=${t%%-*} + filter-flags '-march=*' + export CFLAGS="-march=${t} ${CFLAGS}" + einfo "Auto adding -march=${t} to CFLAGS #185404" + fi + ;; + amd64) + # -march needed for #185404 #199334 + # TODO: See cross-compile issues listed above for x86. + [[ ${ABI} == x86 ]] && + if ! do_compile_test "${CFLAGS_x86}" 'void f(int i, void *p) {if (__sync_fetch_and_add(&i, 1)) f(i, p);}\nint main(){return 0;}\n'; then + local t=${CTARGET_OPT:-${CTARGET}} + t=${t%%-*} + # Normally the target is x86_64-xxx, so turn that into the -march that + # gcc actually accepts. #528708 + [[ ${t} == "x86_64" ]] && t="x86-64" + filter-flags '-march=*' + # ugly, ugly, ugly. ugly. + CFLAGS_x86=$(CFLAGS=${CFLAGS_x86} filter-flags '-march=*'; echo "${CFLAGS}") + export CFLAGS_x86="${CFLAGS_x86} -march=${t}" + einfo "Auto adding -march=${t} to CFLAGS_x86 #185404 (ABI=${ABI})" + fi + ;; + mips) + # The mips abi cannot support the GNU style hashes. #233233 + filter-ldflags -Wl,--hash-style=gnu -Wl,--hash-style=both + ;; + sparc) + # Both sparc and sparc64 can use -fcall-used-g6. -g7 is bad, though. + filter-flags "-fcall-used-g7" + append-flags "-fcall-used-g6" + + local cpu + case ${CTARGET} in + sparc64-*) + cpu="sparc64" + case $(get-flag mcpu) in + v9) + # We need to force at least v9a because the base build doesn't + # work with just v9. + # https://sourceware.org/bugzilla/show_bug.cgi?id=19477 + append-flags "-Wa,-xarch=v9a" + ;; + esac + ;; + sparc-*) + case $(get-flag mcpu) in + v8|supersparc|hypersparc|leon|leon3) + cpu="sparcv8" + ;; + *) + cpu="sparcv9" + ;; + esac + ;; + esac + [[ -n ${cpu} ]] && CTARGET_OPT="${cpu}-${CTARGET#*-}" + ;; + esac +} + +setup_flags() { + # Make sure host make.conf doesn't pollute us + if is_crosscompile || tc-is-cross-compiler ; then + CHOST=${CTARGET} strip-unsupported-flags + fi + + # Store our CFLAGS because it's changed depending on which CTARGET + # we are building when pulling glibc on a multilib profile + CFLAGS_BASE=${CFLAGS_BASE-${CFLAGS}} + CFLAGS=${CFLAGS_BASE} + CXXFLAGS_BASE=${CXXFLAGS_BASE-${CXXFLAGS}} + CXXFLAGS=${CXXFLAGS_BASE} + ASFLAGS_BASE=${ASFLAGS_BASE-${ASFLAGS}} + ASFLAGS=${ASFLAGS_BASE} + + # Allow users to explicitly avoid flag sanitization via + # USE=custom-cflags. + if ! use custom-cflags; then + # Over-zealous CFLAGS can often cause problems. What may work for one + # person may not work for another. To avoid a large influx of bugs + # relating to failed builds, we strip most CFLAGS out to ensure as few + # problems as possible. + strip-flags + # Lock glibc at -O2; we want to be conservative here. + filter-flags '-O?' + append-flags -O2 + fi + strip-unsupported-flags + filter-flags -m32 -m64 '-mabi=*' + + # glibc aborts if rpath is set by LDFLAGS + filter-ldflags '-Wl,-rpath=*' + + # #492892 + filter-flags -frecord-gcc-switches + + unset CBUILD_OPT CTARGET_OPT + if use multilib ; then + CTARGET_OPT=$(get_abi_CTARGET) + [[ -z ${CTARGET_OPT} ]] && CTARGET_OPT=$(get_abi_CHOST) + fi + + setup_target_flags + + if [[ -n ${CTARGET_OPT} && ${CBUILD} == ${CHOST} ]] && ! is_crosscompile; then + CBUILD_OPT=${CTARGET_OPT} + fi + + # glibc's headers disallow -O0 and fail at build time: + # include/libc-symbols.h:75:3: #error "glibc cannot be compiled without optimization" + replace-flags -O0 -O1 + + filter-flags '-fstack-protector*' +} + +want_tls() { + # Archs that can use TLS (Thread Local Storage) + case $(tc-arch) in + x86) + # requires i486 or better #106556 + [[ ${CTARGET} == i[4567]86* ]] && return 0 + return 1 + ;; + esac + return 0 +} + +want__thread() { + want_tls || return 1 + + # For some reason --with-tls --with__thread is causing segfaults on sparc32. + [[ ${PROFILE_ARCH} == "sparc" ]] && return 1 + + [[ -n ${WANT__THREAD} ]] && return ${WANT__THREAD} + + # only test gcc -- can't test linking yet + tc-has-tls -c ${CTARGET} + WANT__THREAD=$? + + return ${WANT__THREAD} +} + +use_multiarch() { + # Allow user to disable runtime arch detection in multilib. + use multiarch || return 1 + # Make sure binutils is new enough to support indirect functions, + # #336792. This funky sed supports gold and bfd linkers. + local bver nver + bver=$($(tc-getLD ${CTARGET}) -v | sed -n -r '1{s:[^0-9]*::;s:^([0-9.]*).*:\1:;p}') + case $(tc-arch ${CTARGET}) in + amd64|x86) nver="2.20" ;; + arm) nver="2.22" ;; + hppa) nver="2.23" ;; + ppc|ppc64) nver="2.20" ;; + # ifunc support was added in 2.23, but glibc also needs + # machinemode which is in 2.24. + s390) nver="2.24" ;; + sparc) nver="2.21" ;; + *) return 1 ;; + esac + ver_test ${bver} -ge ${nver} +} + +# Setup toolchain variables that had historically been defined in the +# profiles for these archs. +setup_env() { + # silly users + unset LD_RUN_PATH + unset LD_ASSUME_KERNEL + + if is_crosscompile || tc-is-cross-compiler ; then + multilib_env ${CTARGET_OPT:-${CTARGET}} + + if ! use multilib ; then + MULTILIB_ABIS=${DEFAULT_ABI} + else + MULTILIB_ABIS=${MULTILIB_ABIS:-${DEFAULT_ABI}} + fi + + # If the user has CFLAGS_ in their make.conf, use that, + # and fall back on CFLAGS. + local VAR=CFLAGS_${CTARGET//[-.]/_} + CFLAGS=${!VAR-${CFLAGS}} + einfo " $(printf '%15s' 'Manual CFLAGS:') ${CFLAGS}" + fi + + setup_flags + + export ABI=${ABI:-${DEFAULT_ABI:-default}} + + if just_headers ; then + # Avoid mixing host's CC and target's CFLAGS_${ABI}: + # At this bootstrap stage we have only binutils for + # target but not compiler yet. + einfo "Skip CC ABI injection. We can't use (cross-)compiler yet." + return 0 + fi + local VAR=CFLAGS_${ABI} + # We need to export CFLAGS with abi information in them because glibc's + # configure script checks CFLAGS for some targets (like mips). Keep + # around the original clean value to avoid appending multiple ABIs on + # top of each other. + : ${__GLIBC_CC:=$(tc-getCC ${CTARGET})} + export __GLIBC_CC CC="${__GLIBC_CC} ${!VAR}" + einfo " $(printf '%15s' 'Manual CC:') ${CC}" +} + +foreach_abi() { + setup_env + + local ret=0 + local abilist="" + if use multilib ; then + abilist=$(get_install_abis) + else + abilist=${DEFAULT_ABI} + fi + local -x ABI + for ABI in ${abilist:-default} ; do + setup_env + einfo "Running $1 for ABI ${ABI}" + $1 + : $(( ret |= $? )) + done + return ${ret} +} + +glibc_banner() { + local b="Gentoo ${PVR}" + [[ -n ${PATCH_VER} ]] && ! use vanilla && b+=" p${PATCH_VER}" + echo "${b}" +} + +check_devpts() { + # Make sure devpts is mounted correctly for use w/out setuid pt_chown. + + # If merely building the binary package, then there's nothing to verify. + [[ ${MERGE_TYPE} == "buildonly" ]] && return + + # Only sanity check when installing the native glibc. + [[ -n ${ROOT} ]] && return + + # If they're opting in to the old suid code, then no need to check. + use suid && return + + if awk '$3 == "devpts" && $4 ~ /[, ]gid=5[, ]/ { exit 1 }' /proc/mounts ; then + eerror "In order to use glibc with USE=-suid, you must make sure that" + eerror "you have devpts mounted at /dev/pts with the gid=5 option." + eerror "Openrc should do this for you, so you should check /etc/fstab" + eerror "and make sure you do not have any invalid settings there." + die "mount & fix your /dev/pts settings" + fi +} + +# The following Kernel version handling functions are mostly copied from portage +# source. It's better not to use linux-info.eclass here since a) it adds too +# much magic, see bug 326693 for some of the arguments, and b) some of the +# functions are just not provided. + +g_get_running_KV() { + uname -r + return $? +} + +g_KV_major() { + [[ -z $1 ]] && return 1 + local KV=$@ + echo "${KV%%.*}" +} + +g_KV_minor() { + [[ -z $1 ]] && return 1 + local KV=$@ + KV=${KV#*.} + echo "${KV%%.*}" +} + +g_KV_micro() { + [[ -z $1 ]] && return 1 + local KV=$@ + KV=${KV#*.*.} + echo "${KV%%[^[:digit:]]*}" +} + +g_KV_to_int() { + [[ -z $1 ]] && return 1 + local KV_MAJOR=$(g_KV_major "$1") + local KV_MINOR=$(g_KV_minor "$1") + local KV_MICRO=$(g_KV_micro "$1") + local KV_int=$(( KV_MAJOR * 65536 + KV_MINOR * 256 + KV_MICRO )) + + # We make version 2.2.0 the minimum version we will handle as + # a sanity check ... if its less, we fail ... + if [[ ${KV_int} -ge 131584 ]] ; then + echo "${KV_int}" + return 0 + fi + return 1 +} + +g_int_to_KV() { + local version=$1 major minor micro + major=$((version / 65536)) + minor=$(((version % 65536) / 256)) + micro=$((version % 256)) + echo ${major}.${minor}.${micro} +} + +eend_KV() { + [[ $(g_KV_to_int $1) -ge $(g_KV_to_int $2) ]] + eend $? +} + +get_kheader_version() { + printf '#include \nLINUX_VERSION_CODE\n' | \ + $(tc-getCPP ${CTARGET}) -I "$(build_eprefix)$(alt_build_headers)" - | \ + tail -n 1 +} + +# We collect all sanity checks here. Consistency is not guranteed between +# pkg_ and src_ phases, so we call this function both in pkg_pretend and in +# src_unpack. +sanity_prechecks() { + # Make sure devpts is mounted correctly for use w/out setuid pt_chown + check_devpts + + # Prevent native builds from downgrading + if [[ ${MERGE_TYPE} != "buildonly" ]] && \ + [[ -z ${ROOT} ]] && \ + [[ ${CBUILD} == ${CHOST} ]] && \ + [[ ${CHOST} == ${CTARGET} ]] ; then + + # The high rev # is to allow people to downgrade between -r# + # versions. We want to block 2.20->2.19, but 2.20-r3->2.20-r2 + # should be fine. Hopefully we never actually use a r# this + # high. + if has_version ">${CATEGORY}/${P}-r10000" ; then + eerror "Sanity check to keep you from breaking your system:" + eerror " Downgrading glibc is not supported and a sure way to destruction." + [[ ${I_ALLOW_TO_BREAK_MY_SYSTEM} = yes ]] || die "Aborting to save your system." + fi + + if ! do_run_test '#include \n#include \nint main(){return syscall(1000)!=-1;}\n' ; then + eerror "Your old kernel is broken. You need to update it to a newer" + eerror "version as syscall() will break. See bug 279260." + die "Old and broken kernel." + fi + fi + + # Users have had a chance to phase themselves, time to give em the boot + if [[ -e ${EROOT}/etc/locale.gen ]] && [[ -e ${EROOT}/etc/locales.build ]] ; then + eerror "You still haven't deleted ${EROOT}/etc/locales.build." + eerror "Do so now after making sure ${EROOT}/etc/locale.gen is kosher." + die "Lazy upgrader detected" + fi + + if [[ ${CTARGET} == i386-* ]] ; then + eerror "i386 CHOSTs are no longer supported." + eerror "Chances are you don't actually want/need i386." + eerror "Please read https://www.gentoo.org/doc/en/change-chost.xml" + die "Please fix your CHOST" + fi + + if [[ -e /proc/xen ]] && [[ $(tc-arch) == "x86" ]] && ! is-flag -mno-tls-direct-seg-refs ; then + ewarn "You are using Xen but don't have -mno-tls-direct-seg-refs in your CFLAGS." + ewarn "This will result in a 50% performance penalty when running with a 32bit" + ewarn "hypervisor, which is probably not what you want." + fi + + # Check for sanity of /etc/nsswitch.conf + if [[ -e ${EROOT}/etc/nsswitch.conf ]] ; then + local entry + for entry in passwd group shadow; do + if ! egrep -q "^[ \t]*${entry}:.*files" "${EROOT}"/etc/nsswitch.conf; then + eerror "Your ${EROOT}/etc/nsswitch.conf is out of date." + eerror "Please make sure you have 'files' entries for" + eerror "'passwd:', 'group:' and 'shadow:' databases." + eerror "For more details see:" + eerror " https://wiki.gentoo.org/wiki/Project:Toolchain/nsswitch.conf_in_glibc-2.26" + die "nsswitch.conf has no 'files' provider in '${entry}'." + fi + done + fi + + # ABI-specific checks follow here. Hey, we have a lot more specific conditions that + # we test for... + if ! is_crosscompile ; then + if use amd64 && use multilib && [[ ${MERGE_TYPE} != "binary" ]] ; then + ebegin "Checking that IA32 emulation is enabled in the running kernel" + echo 'int main(){return 0;}' > "${T}/check-ia32-emulation.c" + local STAT + if "${CC-${CHOST}-gcc}" ${CFLAGS_x86} "${T}/check-ia32-emulation.c" -o "${T}/check-ia32-emulation.elf32"; then + "${T}/check-ia32-emulation.elf32" + STAT=$? + else + # Don't fail here to allow single->multi ABI switch + # or recover from breakage like bug #646424 + ewarn "Failed to compile the ABI test. Broken host glibc?" + STAT=0 + fi + rm -f "${T}/check-ia32-emulation.elf32" + eend $STAT + [[ $STAT -eq 0 ]] || die "CONFIG_IA32_EMULATION must be enabled in the kernel to compile a multilib glibc." + fi + + fi + + # When we actually have to compile something... + if ! just_headers ; then + ebegin "Checking gcc for __thread support" + if ! eend $(want__thread ; echo $?) ; then + echo + eerror "Could not find a gcc that supports the __thread directive!" + eerror "Please update your binutils/gcc and try again." + die "No __thread support in gcc!" + fi + + if [[ ${CTARGET} == *-linux* ]] ; then + local run_kv build_kv want_kv + + run_kv=$(g_get_running_KV) + build_kv=$(g_int_to_KV $(get_kheader_version)) + want_kv=${MIN_KERN_VER} + + if ! is_crosscompile && ! tc-is-cross-compiler ; then + # Building fails on an non-supporting kernel + ebegin "Checking running kernel version (${run_kv} >= ${want_kv})" + if ! eend_KV ${run_kv} ${want_kv} ; then + echo + eerror "You need a kernel of at least ${want_kv}!" + die "Kernel version too low!" + fi + fi + + ebegin "Checking linux-headers version (${build_kv} >= ${want_kv})" + if ! eend_KV ${build_kv} ${want_kv} ; then + echo + eerror "You need linux-headers of at least ${want_kv}!" + die "linux-headers version too low!" + fi + fi + fi +} + +# +# the phases +# + +# pkg_pretend + +pkg_pretend() { + # All the checks... + einfo "Checking general environment sanity." + sanity_prechecks +} + +pkg_setup() { + # see bug 682570 + [[ -z ${BOOTSTRAP_RAP} ]] && python-any-r1_pkg_setup +} + +# src_unpack + +src_unpack() { + # Consistency is not guaranteed between pkg_ and src_ ... + sanity_prechecks + + use multilib && unpack gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}.tar.xz + + setup_env + + if [[ -n ${EGIT_REPO_URI} ]] ; then + git-r3_src_unpack + else + unpack ${P}.tar.xz + fi + + cd "${WORKDIR}" || die + unpack glibc-${RELEASE_VER}-patches-${PATCH_VER}.tar.xz +} + +src_prepare() { + if ! use vanilla ; then + elog "Applying Gentoo Glibc Patchset ${RELEASE_VER}-${PATCH_VER}" + eapply "${WORKDIR}"/patches + einfo "Done." + fi + + default + + gnuconfig_update + + cd "${WORKDIR}" + find . -name configure -exec touch {} + + + eprefixify extra/locale/locale-gen + + # Fix permissions on some of the scripts. + chmod u+x "${S}"/scripts/*.sh + + cd "${S}" +} + +glibc_do_configure() { + # Glibc does not work with gold (for various reasons) #269274. + tc-ld-disable-gold + + # CXX isnt handled by the multilib system, so if we dont unset here + # we accumulate crap across abis + unset CXX + + einfo "Configuring glibc for nptl" + + if use doc ; then + export MAKEINFO=makeinfo + else + export MAKEINFO=/dev/null + fi + + local v + for v in ABI CBUILD CHOST CTARGET CBUILD_OPT CTARGET_OPT CC CXX LD {AS,C,CPP,CXX,LD}FLAGS MAKEINFO ; do + einfo " $(printf '%15s' ${v}:) ${!v}" + done + + # CFLAGS can contain ABI-specific flags like -mfpu=neon, see bug #657760 + # To build .S (assembly) files with the same ABI-specific flags + # upstream currently recommends adding CFLAGS to CC/CXX: + # https://sourceware.org/PR23273 + # Note: Passing CFLAGS via CPPFLAGS overrides glibc's arch-specific CFLAGS + # and breaks multiarch support. See 659030#c3 for an example. + # The glibc configure script doesn't properly use LDFLAGS all the time. + export CC="$(tc-getCC ${CTARGET}) ${CFLAGS} ${LDFLAGS}" + einfo " $(printf '%15s' 'Manual CC:') ${CC}" + + # Some of the tests are written in C++, so we need to force our multlib abis in, bug 623548 + export CXX="$(tc-getCXX ${CTARGET}) $(get_abi_CFLAGS) ${CFLAGS}" + + if is_crosscompile; then + # Assume worst-case bootstrap: glibc is buil first time + # when ${CTARGET}-g++ is not available yet. We avoid + # building auxiliary programs that require C++: bug #683074 + # It should not affect final result. + export libc_cv_cxx_link_ok=no + # The line above has the same effect. We set CXX explicitly + # to make build logs less confusing. + export CXX= + fi + einfo " $(printf '%15s' 'Manual CXX:') ${CXX}" + + echo + + local myconf=() + + case ${CTARGET} in + m68k*) + # setjmp() is not compatible with stack protection: + # https://sourceware.org/PR24202 + myconf+=( --enable-stack-protector=no ) + ;; + powerpc-*) + # Currently gcc on powerpc32 generates invalid code for + # __builtin_return_address(0) calls. Normally programs + # don't do that but malloc hooks in glibc do: + # https://gcc.gnu.org/PR81996 + # https://bugs.gentoo.org/629054 + myconf+=( --enable-stack-protector=no ) + ;; + *) + # Use '=strong' instead of '=all' to protect only functions + # worth protecting from stack smashes. + # '=all' is also known to have a problem in IFUNC resolution + # tests: https://sourceware.org/PR25680, bug #712356. + myconf+=( --enable-stack-protector=$(usex ssp strong no) ) + ;; + esac + myconf+=( --enable-stackguard-randomization ) + + # Keep a whitelist of targets supporing IFUNC. glibc's ./configure + # is not robust enough to detect proper support: + # https://bugs.gentoo.org/641216 + # https://sourceware.org/PR22634#c0 + case $(tc-arch ${CTARGET}) in + # Keep whitelist of targets where autodetection mostly works. + amd64|x86|sparc|ppc|ppc64|arm|arm64|s390) ;; + # Blacklist everywhere else + *) myconf+=( libc_cv_ld_gnu_indirect_function=no ) ;; + esac + + # Enable Intel Control-flow Enforcement Technology on amd64 if requested + case ${CTARGET} in + x86_64-*) myconf+=( $(use_enable cet) ) ;; + *) ;; + esac + + [[ $(tc-is-softfloat) == "yes" ]] && myconf+=( --without-fp ) + + myconf+=( --enable-kernel=${MIN_KERN_VER} ) + + # Since SELinux support is only required for nscd, only enable it if: + # 1. USE selinux + # 2. only for the primary ABI on multilib systems + # 3. Not a crosscompile + if ! is_crosscompile && use selinux ; then + if use multilib ; then + if is_final_abi ; then + myconf+=( --with-selinux ) + else + myconf+=( --without-selinux ) + fi + else + myconf+=( --with-selinux ) + fi + else + myconf+=( --without-selinux ) + fi + + # Force a few tests where we always know the answer but + # configure is incapable of finding it. + if is_crosscompile ; then + export \ + libc_cv_c_cleanup=yes \ + libc_cv_forced_unwind=yes + fi + + myconf+=( + --without-cvs + --disable-werror + --enable-bind-now + --build=${CBUILD_OPT:-${CBUILD}} + --host=${CTARGET_OPT:-${CTARGET}} + $(use_enable profile) + $(use_with gd) + --with-headers=$(build_eprefix)$(alt_build_headers) + --prefix="$(host_eprefix)/usr" + --sysconfdir="$(host_eprefix)/etc" + --localstatedir="$(host_eprefix)/var" + --libdir='$(prefix)'/$(get_libdir) + --mandir='$(prefix)'/share/man + --infodir='$(prefix)'/share/info + --libexecdir='$(libdir)'/misc/glibc + --with-bugurl=https://bugs.gentoo.org/ + --with-pkgversion="$(glibc_banner)" + $(use_enable crypt) + $(use_multiarch || echo --disable-multi-arch) + $(use_enable systemtap) + $(use_enable nscd) + ${EXTRA_ECONF} + ) + + # We rely on sys-libs/timezone-data for timezone tools normally. + myconf+=( $(use_enable vanilla timezone-tools) ) + + # These libs don't have configure flags. + ac_cv_lib_audit_audit_log_user_avc_message=$(usex audit || echo no) + ac_cv_lib_cap_cap_init=$(usex caps || echo no) + + # There is no configure option for this and we need to export it + # since the glibc build will re-run configure on itself + export libc_cv_rootsbindir="$(host_eprefix)/sbin" + export libc_cv_slibdir="$(host_eprefix)/$(get_libdir)" + + # We take care of patching our binutils to use both hash styles, + # and many people like to force gnu hash style only, so disable + # this overriding check. #347761 + export libc_cv_hashstyle=no + + local builddir=$(builddir nptl) + mkdir -p "${builddir}" + cd "${builddir}" + set -- "${S}"/configure "${myconf[@]}" + echo "$@" + "$@" || die "failed to configure glibc" + + # ia64 static cross-compilers are a pita in so much that they + # can't produce static ELFs (as the libgcc.a is broken). so + # disable building of the programs for those targets if it + # doesn't work. + # XXX: We could turn this into a compiler test, but ia64 is + # the only one that matters, so this should be fine for now. + if is_crosscompile && [[ ${CTARGET} == ia64* ]] ; then + sed -i '1i+link-static = touch $@' config.make + fi + + # If we're trying to migrate between ABI sets, we need + # to lie and use a local copy of gcc. Like if the system + # is built with MULTILIB_ABIS="amd64 x86" but we want to + # add x32 to it, gcc/glibc don't yet support x32. + # + if [[ -n ${GCC_BOOTSTRAP_VER} ]] && use multilib ; then + echo 'main(){}' > "${T}"/test.c + if ! $(tc-getCC ${CTARGET}) ${CFLAGS} ${LDFLAGS} "${T}"/test.c -Wl,-emain -lgcc 2>/dev/null ; then + sed -i -e '/^CC = /s:$: -B$(objdir)/../'"gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}/${ABI}:" config.make || die + fi + fi +} + +glibc_headers_configure() { + export ABI=default + + local builddir=$(builddir "headers") + mkdir -p "${builddir}" + cd "${builddir}" + + # if we don't have a compiler yet, we can't really test it now ... + # hopefully they don't affect header generation, so let's hope for + # the best here ... + local v vars=( + ac_cv_header_cpuid_h=yes + libc_cv_{386,390,alpha,arm,hppa,ia64,mips,{powerpc,sparc}{,32,64},sh,x86_64}_tls=yes + libc_cv_asm_cfi_directives=yes + libc_cv_broken_visibility_attribute=no + libc_cv_c_cleanup=yes + libc_cv_compiler_powerpc64le_binary128_ok=yes + libc_cv_forced_unwind=yes + libc_cv_gcc___thread=yes + libc_cv_mlong_double_128=yes + libc_cv_mlong_double_128ibm=yes + libc_cv_ppc_machine=yes + libc_cv_ppc_rel16=yes + libc_cv_predef_fortify_source=no + libc_cv_target_power8_ok=yes + libc_cv_visibility_attribute=yes + libc_cv_z_combreloc=yes + libc_cv_z_execstack=yes + libc_cv_z_initfirst=yes + libc_cv_z_nodelete=yes + libc_cv_z_nodlopen=yes + libc_cv_z_relro=yes + libc_mips_abi=${ABI} + libc_mips_float=$([[ $(tc-is-softfloat) == "yes" ]] && echo soft || echo hard) + # These libs don't have configure flags. + ac_cv_lib_audit_audit_log_user_avc_message=no + ac_cv_lib_cap_cap_init=no + ) + + einfo "Forcing cached settings:" + for v in "${vars[@]}" ; do + einfo " ${v}" + export ${v} + done + + local headers_only_arch_CPPFLAGS=() + + # Blow away some random CC settings that screw things up. #550192 + if [[ -d ${S}/sysdeps/mips ]]; then + pushd "${S}"/sysdeps/mips >/dev/null + sed -i -e '/^CC +=/s:=.*:= -D_MIPS_SZPTR=32:' mips32/Makefile mips64/n32/Makefile || die + sed -i -e '/^CC +=/s:=.*:= -D_MIPS_SZPTR=64:' mips64/n64/Makefile || die + + # Force the mips ABI to the default. This is OK because the set of + # installed headers in this phase is the same between the 3 ABIs. + # If this ever changes, this hack will break, but that's unlikely + # as glibc discourages that behavior. + # https://crbug.com/647033 + sed -i -e 's:abiflag=.*:abiflag=_ABIO32:' preconfigure || die + + popd >/dev/null + fi + + case ${CTARGET} in + riscv*) + # RISC-V interrogates the compiler to determine which target to + # build. If building the headers then we don't strictly need a + # RISC-V compiler, so the built-in definitions that are provided + # along with all RISC-V compiler might not exist. This causes + # glibc's RISC-V preconfigure script to blow up. Since we're just + # building the headers any value will actually work here, so just + # pick the standard one (rv64g/lp64d) to make the build scripts + # happy for now -- the headers are all the same anyway so it + # doesn't matter. + headers_only_arch_CPPFLAGS+=( + -D__riscv_xlen=64 + -D__riscv_flen=64 + -D__riscv_float_abi_double=1 + -D__riscv_atomic=1 + ) ;; + esac + + local myconf=() + myconf+=( + --disable-sanity-checks + --enable-hacker-mode + --without-cvs + --disable-werror + --enable-bind-now + --build=${CBUILD_OPT:-${CBUILD}} + --host=${CTARGET_OPT:-${CTARGET}} + --with-headers=$(build_eprefix)$(alt_build_headers) + --prefix="$(host_eprefix)/usr" + ${EXTRA_ECONF} + ) + + # Nothing is compiled here which would affect the headers for the target. + # So forcing CC/CFLAGS is sane. + local headers_only_CC=$(tc-getBUILD_CC) + local headers_only_CFLAGS="-O1 -pipe" + local headers_only_CPPFLAGS="-U_FORTIFY_SOURCE ${headers_only_arch_CPPFLAGS[*]}" + local headers_only_LDFLAGS="" + set -- "${S}"/configure "${myconf[@]}" + echo \ + "CC=${headers_only_CC}" \ + "CFLAGS=${headers_only_CFLAGS}" \ + "CPPFLAGS=${headers_only_CPPFLAGS}" \ + "LDFLAGS=${headers_only_LDFLAGS}" \ + "$@" + CC=${headers_only_CC} \ + CFLAGS=${headers_only_CFLAGS} \ + CPPFLAGS=${headers_only_CPPFLAGS} \ + LDFLAGS="" \ + "$@" || die "failed to configure glibc" +} + +do_src_configure() { + if just_headers ; then + glibc_headers_configure + else + glibc_do_configure nptl + fi +} + +src_configure() { + foreach_abi do_src_configure +} + +do_src_compile() { + emake -C "$(builddir nptl)" +} + +src_compile() { + if just_headers ; then + return + fi + + foreach_abi do_src_compile +} + +glibc_src_test() { + cd "$(builddir nptl)" + + local myxfailparams="" + if [[ "${GENTOO_GLIBC_XFAIL_TESTS}" == "yes" ]] ; then + for myt in ${XFAIL_TEST_LIST[@]} ; do + myxfailparams+="test-xfail-${myt}=yes " + done + fi + + emake ${myxfailparams} check +} + +do_src_test() { + local ret=0 + + glibc_src_test + : $(( ret |= $? )) + + return ${ret} +} + +src_test() { + if just_headers ; then + return + fi + + # Give tests more time to complete. + export TIMEOUTFACTOR=5 + + foreach_abi do_src_test || die "tests failed" +} + +run_locale_gen() { + # if the host locales.gen contains no entries, we'll install everything + local root="$1" + local inplace="" + + if [[ "${root}" == "--inplace-glibc" ]] ; then + inplace="--inplace-glibc" + root="$2" + fi + + local locale_list="${root}/etc/locale.gen" + + pushd "${ED}"/$(get_libdir) >/dev/null + + if [[ -z $(locale-gen --list --config "${locale_list}") ]] ; then + [[ -z ${inplace} ]] && ewarn "Generating all locales; edit /etc/locale.gen to save time/space" + locale_list="${root}/usr/share/i18n/SUPPORTED" + fi + + locale-gen ${inplace} --jobs $(makeopts_jobs) --config "${locale_list}" \ + --destdir "${root}" + + popd >/dev/null +} + +glibc_do_src_install() { + local builddir=$(builddir nptl) + cd "${builddir}" + + emake install_root="${D}/$(build_eprefix)$(alt_prefix)" install + + # This version (2.26) provides some compatibility libraries for the NIS/NIS+ support + # which come without headers etc. Only needed for binary packages since the + # external net-libs/libnsl has increased soversion. Keep only versioned libraries. + find "${D}" -name "libnsl.a" -delete + find "${D}" -name "libnsl.so" -delete + + # Normally upstream_pv is ${PV}. Live ebuilds are exception, there we need + # to infer upstream version: + # '#define VERSION "2.26.90"' -> '2.26.90' + local upstream_pv=$(sed -n -r 's/#define VERSION "(.*)"/\1/p' "${S}"/version.h) + + # Avoid stripping binaries not targeted by ${CHOST}. Or else + # ${CHOST}-strip would break binaries build for ${CTARGET}. + is_crosscompile && dostrip -x / + # gdb thread introspection relies on local libpthreas symbols. stripping breaks it + # See Note [Disable automatic stripping] + dostrip -x $(alt_libdir)/libpthread-${upstream_pv}.so + + if [[ -e ${ED}/$(alt_usrlibdir)/libm-${upstream_pv}.a ]] ; then + # Move versioned .a file out of libdir to evade portage QA checks + # instead of using gen_usr_ldscript(). We fix ldscript as: + # "GROUP ( /usr/lib64/libm-.a ..." -> "GROUP ( /usr/lib64/glibc-/libm-.a ..." + sed -i "s@\(libm-${upstream_pv}.a\)@${P}/\1@" "${ED}"/$(alt_usrlibdir)/libm.a || die + dodir $(alt_usrlibdir)/${P} + mv "${ED}"/$(alt_usrlibdir)/libm-${upstream_pv}.a "${ED}"/$(alt_usrlibdir)/${P}/libm-${upstream_pv}.a || die + fi + + # We'll take care of the cache ourselves + rm -f "${ED}"/etc/ld.so.cache + + # Everything past this point just needs to be done once ... + is_final_abi || return 0 + + # Make sure the non-native interp can be found on multilib systems even + # if the main library set isn't installed into the right place. Maybe + # we should query the active gcc for info instead of hardcoding it ? + local i ldso_abi ldso_name + local ldso_abi_list=( + # x86 + amd64 /lib64/ld-linux-x86-64.so.2 + x32 /libx32/ld-linux-x32.so.2 + x86 /lib/ld-linux.so.2 + # mips + o32 /lib/ld.so.1 + n32 /lib32/ld.so.1 + n64 /lib64/ld.so.1 + # powerpc + ppc /lib/ld.so.1 + ppc64 /lib64/ld64.so.1 + # riscv + lp64d /lib/ld-linux-riscv64-lp64d.so.1 + lp64 /lib/ld-linux-riscv64-lp64.so.1 + # s390 + s390 /lib/ld.so.1 + s390x /lib/ld64.so.1 + # sparc + sparc32 /lib/ld-linux.so.2 + sparc64 /lib64/ld-linux.so.2 + ) + case $(tc-endian) in + little) + ldso_abi_list+=( + # arm + arm64 /lib/ld-linux-aarch64.so.1 + ) + ;; + big) + ldso_abi_list+=( + # arm + arm64 /lib/ld-linux-aarch64_be.so.1 + ) + ;; + esac + if [[ ${SYMLINK_LIB} == "yes" ]] && [[ ! -e ${ED}/$(alt_prefix)/lib ]] ; then + dosym $(get_abi_LIBDIR ${DEFAULT_ABI}) $(alt_prefix)/lib + fi + for (( i = 0; i < ${#ldso_abi_list[@]}; i += 2 )) ; do + ldso_abi=${ldso_abi_list[i]} + has ${ldso_abi} $(get_install_abis) || continue + + ldso_name="$(alt_prefix)${ldso_abi_list[i+1]}" + if [[ ! -L ${ED}/${ldso_name} && ! -e ${ED}/${ldso_name} ]] ; then + dosym ../$(get_abi_LIBDIR ${ldso_abi})/${ldso_name##*/} ${ldso_name} + fi + done + + # With devpts under Linux mounted properly, we do not need the pt_chown + # binary to be setuid. This is because the default owners/perms will be + # exactly what we want. + if ! use suid ; then + find "${ED}" -name pt_chown -exec chmod -s {} + + fi + + ################################################################# + # EVERYTHING AFTER THIS POINT IS FOR NATIVE GLIBC INSTALLS ONLY # + # Make sure we install some symlink hacks so that when we build + # a 2nd stage cross-compiler, gcc finds the target system + # headers correctly. See gcc/doc/gccinstall.info + if is_crosscompile ; then + # We need to make sure that /lib and /usr/lib always exists. + # gcc likes to use relative paths to get to its multilibs like + # /usr/lib/../lib64/. So while we don't install any files into + # /usr/lib/, we do need it to exist. + keepdir $(alt_prefix)/lib + keepdir $(alt_prefix)/usr/lib + + dosym usr/include $(alt_prefix)/sys-include + return 0 + fi + + # Files for Debian-style locale updating + dodir /usr/share/i18n + sed \ + -e "/^#/d" \ + -e "/SUPPORTED-LOCALES=/d" \ + -e "s: \\\\::g" -e "s:/: :g" \ + "${S}"/localedata/SUPPORTED > "${ED}"/usr/share/i18n/SUPPORTED \ + || die "generating /usr/share/i18n/SUPPORTED failed" + cd "${WORKDIR}"/extra/locale + dosbin locale-gen + doman *.[0-8] + insinto /etc + doins locale.gen + + # Make sure all the ABI's can find the locales and so we only + # have to generate one set + local a + keepdir /usr/$(get_libdir)/locale + for a in $(get_install_abis) ; do + if [[ ! -e ${ED}/usr/$(get_abi_LIBDIR ${a})/locale ]] ; then + dosym ../$(get_libdir)/locale /usr/$(get_abi_LIBDIR ${a})/locale + fi + done + + # HACK: If we're building for riscv, we need to additionally make sure that + # we can find the locale archive afterwards + case ${CTARGET} in + riscv*) + if [[ ! -e ${ED}/usr/lib/locale ]] ; then + dosym ../$(get_libdir)/locale /usr/lib/locale + fi + ;; + *) ;; + esac + + cd "${S}" + + # Install misc network config files + insinto /etc + doins nscd/nscd.conf posix/gai.conf nss/nsswitch.conf + doins "${WORKDIR}"/extra/etc/*.conf + + if use nscd ; then + doinitd "$(prefixify_ro "${WORKDIR}"/extra/etc/nscd)" + + local nscd_args=( + -e "s:@PIDFILE@:$(strings "${ED}"/usr/sbin/nscd | grep nscd.pid):" + ) + + sed -i "${nscd_args[@]}" "${ED}"/etc/init.d/nscd + + systemd_dounit nscd/nscd.service + systemd_newtmpfilesd nscd/nscd.tmpfiles nscd.conf + else + # Do this since extra/etc/*.conf above might have nscd.conf. + rm -f "${ED}"/etc/nscd.conf + fi + + echo 'LDPATH="include ld.so.conf.d/*.conf"' > "${T}"/00glibc + doenvd "${T}"/00glibc + + for d in BUGS ChangeLog CONFORMANCE FAQ NEWS NOTES PROJECTS README* ; do + [[ -s ${d} ]] && dodoc ${d} + done + dodoc -r ChangeLog.old + + # Prevent overwriting of the /etc/localtime symlink. We'll handle the + # creation of the "factory" symlink in pkg_postinst(). + rm -f "${ED}"/etc/localtime + + # Generate all locales if this is a native build as locale generation + if use compile-locales && ! is_crosscompile ; then + run_locale_gen --inplace-glibc "${ED}/" + sed -e 's:COMPILED_LOCALES="":COMPILED_LOCALES="1":' -i "${ED}"/usr/sbin/locale-gen || die + fi +} + +glibc_headers_install() { + local builddir=$(builddir "headers") + cd "${builddir}" + emake install_root="${D}/$(build_eprefix)$(alt_prefix)" install-headers + + insinto $(alt_headers)/gnu + doins "${S}"/include/gnu/stubs.h + + # Make sure we install the sys-include symlink so that when + # we build a 2nd stage cross-compiler, gcc finds the target + # system headers correctly. See gcc/doc/gccinstall.info + dosym usr/include $(alt_prefix)/sys-include +} + +src_install() { + if just_headers ; then + export ABI=default + glibc_headers_install + return + fi + + foreach_abi glibc_do_src_install + + if ! use static-libs ; then + elog "Not installing static glibc libraries" + find "${ED}" -name "*.a" -and -not -name "*_nonshared.a" -delete + fi +} + +# Simple test to make sure our new glibc isn't completely broken. +# Make sure we don't test with statically built binaries since +# they will fail. Also, skip if this glibc is a cross compiler. +# +# If coreutils is built with USE=multicall, some of these files +# will just be wrapper scripts, not actual ELFs we can test. +glibc_sanity_check() { + cd / #228809 + + # We enter ${ED} so to avoid trouble if the path contains + # special characters; for instance if the path contains the + # colon character (:), then the linker will try to split it + # and look for the libraries in an unexpected place. This can + # lead to unsafe code execution if the generated prefix is + # within a world-writable directory. + # (e.g. /var/tmp/portage:${HOSTNAME}) + pushd "${ED}"/$(get_libdir) >/dev/null + + local x striptest + for x in cal date env free ls true uname uptime ; do + x=$(type -p ${x}) + [[ -z ${x} || ${x} != ${EPREFIX}/* ]] && continue + striptest=$(LC_ALL="C" file -L ${x} 2>/dev/null) || continue + case ${striptest} in + *"statically linked"*) continue;; + *"ASCII text"*) continue;; + esac + # We need to clear the locale settings as the upgrade might want + # incompatible locale data. This test is not for verifying that. + LC_ALL=C \ + ./ld-*.so --library-path . ${x} > /dev/null \ + || die "simple run test (${x}) failed" + done + + popd >/dev/null +} + +pkg_preinst() { + # nothing to do if just installing headers + just_headers && return + + # prepare /etc/ld.so.conf.d/ for files + mkdir -p "${EROOT}"/etc/ld.so.conf.d + + # Default /etc/hosts.conf:multi to on for systems with small dbs. + if [[ $(wc -l < "${EROOT}"/etc/hosts) -lt 1000 ]] ; then + sed -i '/^multi off/s:off:on:' "${ED}"/etc/host.conf + einfo "Defaulting /etc/host.conf:multi to on" + fi + + [[ -n ${ROOT} ]] && return 0 + [[ -d ${ED}/$(get_libdir) ]] || return 0 + [[ -z ${BOOTSTRAP_RAP} ]] && glibc_sanity_check +} + +pkg_postinst() { + # nothing to do if just installing headers + just_headers && return + + if ! tc-is-cross-compiler && [[ -x ${EROOT}/usr/sbin/iconvconfig ]] ; then + # Generate fastloading iconv module configuration file. + "${EROOT}"/usr/sbin/iconvconfig --prefix="${ROOT}/" + fi + + if ! is_crosscompile && [[ -z ${ROOT} ]] ; then + use compile-locales || run_locale_gen "${EROOT}/" + fi + + # Check for sanity of /etc/nsswitch.conf, take 2 + if [[ -e ${EROOT}/etc/nsswitch.conf ]] && ! has_version sys-auth/libnss-nis ; then + local entry + for entry in passwd group shadow; do + if egrep -q "^[ \t]*${entry}:.*nis" "${EROOT}"/etc/nsswitch.conf; then + ewarn "" + ewarn "Your ${EROOT}/etc/nsswitch.conf uses NIS. Support for that has been" + ewarn "removed from glibc and is now provided by the package" + ewarn " sys-auth/libnss-nis" + ewarn "Install it now to keep your NIS setup working." + ewarn "" + fi + done + fi +} diff --git a/sys-libs/glibc/glibc-2.31-r1.ebuild b/sys-libs/glibc/glibc-2.31-r1.ebuild deleted file mode 100644 index 14d8f5289a1d..000000000000 --- a/sys-libs/glibc/glibc-2.31-r1.ebuild +++ /dev/null @@ -1,1493 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -PYTHON_COMPAT=( python3_{6,7,8} ) - -inherit python-any-r1 prefix eutils toolchain-funcs flag-o-matic gnuconfig \ - multilib systemd multiprocessing - -DESCRIPTION="GNU libc C library" -HOMEPAGE="https://www.gnu.org/software/libc/" -LICENSE="LGPL-2.1+ BSD HPND ISC inner-net rc PCRE" -SLOT="2.2" - -EMULTILIB_PKG="true" - -if [[ ${PV} == 9999* ]]; then - EGIT_REPO_URI="https://sourceware.org/git/glibc.git" - inherit git-r3 -else - # needs minimal testing - #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sh ~sparc ~x86" - SRC_URI="mirror://gnu/glibc/${P}.tar.xz" -fi - -RELEASE_VER=${PV} - -GCC_BOOTSTRAP_VER=20180511 - -# Gentoo patchset -PATCH_VER=2 -PATCH_DEV=slyfox - -SRC_URI+=" https://dev.gentoo.org/~${PATCH_DEV}/distfiles/${P}-patches-${PATCH_VER}.tar.xz" -SRC_URI+=" multilib? ( https://dev.gentoo.org/~dilfridge/distfiles/gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}.tar.xz )" - -IUSE="audit caps cet compile-locales +crypt custom-cflags doc gd headers-only +multiarch multilib nscd profile selinux +ssp +static-libs suid systemtap test vanilla" - -# Minimum kernel version that glibc requires -MIN_KERN_VER="3.2.0" - -# Here's how the cross-compile logic breaks down ... -# CTARGET - machine that will target the binaries -# CHOST - machine that will host the binaries -# CBUILD - machine that will build the binaries -# If CTARGET != CHOST, it means you want a libc for cross-compiling. -# If CHOST != CBUILD, it means you want to cross-compile the libc. -# CBUILD = CHOST = CTARGET - native build/install -# CBUILD != (CHOST = CTARGET) - cross-compile a native build -# (CBUILD = CHOST) != CTARGET - libc for cross-compiler -# CBUILD != CHOST != CTARGET - cross-compile a libc for a cross-compiler -# For install paths: -# CHOST = CTARGET - install into / -# CHOST != CTARGET - install into /usr/CTARGET/ -# -export CBUILD=${CBUILD:-${CHOST}} -export CTARGET=${CTARGET:-${CHOST}} -if [[ ${CTARGET} == ${CHOST} ]] ; then - if [[ ${CATEGORY} == cross-* ]] ; then - export CTARGET=${CATEGORY#cross-} - fi -fi - -# Note [Disable automatic stripping] -# Disabling automatic stripping for a few reasons: -# - portage's attempt to strip breaks non-native binaries at least on -# arm: bug #697428 -# - portage's attempt to strip libpthread.so.0 breaks gdb thread -# enumeration: bug #697910. This is quite subtle: -# * gdb uses glibc's libthread_db-1.0.so to enumerate threads. -# * libthread_db-1.0.so needs access to libpthread.so.0 local symbols -# via 'ps_pglobal_lookup' symbol defined in gdb. -# * 'ps_pglobal_lookup' uses '.symtab' section table to resolve all -# known symbols in 'libpthread.so.0'. Specifically 'nptl_version' -# (unexported) is used to sanity check compatibility before enabling -# debugging. -# Also see https://sourceware.org/gdb/wiki/FAQ#GDB_does_not_see_any_threads_besides_the_one_in_which_crash_occurred.3B_or_SIGTRAP_kills_my_program_when_I_set_a_breakpoint -# * normal 'strip' command trims '.symtab' -# Thus our main goal here is to prevent 'libpthread.so.0' from -# losing it's '.symtab' entries. -# As Gentoo's strip does not allow us to pass less aggressive stripping -# options and does not check the machine target we strip selectively. - -# We need a new-enough binutils/gcc to match upstream baseline. -# Also we need to make sure our binutils/gcc supports TLS, -# and that gcc already contains the hardened patches. -BDEPEND=" - ${PYTHON_DEPS} - >=app-misc/pax-utils-0.1.10 - sys-devel/bison - !' | $(tc-getCPP ${CTARGET}) ${CFLAGS} 2>&1 | grep -o '[^"]*linux/version.h') - ALT_BUILD_HEADERS=${header_path%/linux/version.h} - fi - fi - fi - echo "${ALT_BUILD_HEADERS}" -} - -alt_libdir() { - echo $(alt_prefix)/$(get_libdir) -} -alt_usrlibdir() { - echo $(alt_prefix)/usr/$(get_libdir) -} - -builddir() { - echo "${WORKDIR}/build-${ABI}-${CTARGET}-$1" -} - -do_compile_test() { - local ret save_cflags=${CFLAGS} - CFLAGS+=" $1" - shift - - pushd "${T}" >/dev/null - - rm -f glibc-test* - printf '%b' "$*" > glibc-test.c - - nonfatal emake glibc-test - ret=$? - - popd >/dev/null - - CFLAGS=${save_cflags} - return ${ret} -} - -do_run_test() { - local ret - - if [[ ${MERGE_TYPE} == "binary" ]] ; then - # ignore build failures when installing a binary package #324685 - do_compile_test "" "$@" 2>/dev/null || return 0 - else - if ! do_compile_test "" "$@" ; then - ewarn "Simple build failed ... assuming this is desired #324685" - return 0 - fi - fi - - pushd "${T}" >/dev/null - - ./glibc-test - ret=$? - rm -f glibc-test* - - popd >/dev/null - - return ${ret} -} - -setup_target_flags() { - # This largely mucks with compiler flags. None of which should matter - # when building up just the headers. - just_headers && return 0 - - case $(tc-arch) in - x86) - # -march needed for #185404 #199334 - # TODO: When creating the first glibc cross-compile, this test will - # always fail as it does a full link which in turn requires glibc. - # Probably also applies when changing multilib profile settings (e.g. - # enabling x86 when the profile was amd64-only previously). - # We could change main to _start and pass -nostdlib here so that we - # only test the gcc code compilation. Or we could do a compile and - # then look for the symbol via scanelf. - if ! do_compile_test "" 'void f(int i, void *p) {if (__sync_fetch_and_add(&i, 1)) f(i, p);}\nint main(){return 0;}\n'; then - local t=${CTARGET_OPT:-${CTARGET}} - t=${t%%-*} - filter-flags '-march=*' - export CFLAGS="-march=${t} ${CFLAGS}" - einfo "Auto adding -march=${t} to CFLAGS #185404" - fi - ;; - amd64) - # -march needed for #185404 #199334 - # TODO: See cross-compile issues listed above for x86. - [[ ${ABI} == x86 ]] && - if ! do_compile_test "${CFLAGS_x86}" 'void f(int i, void *p) {if (__sync_fetch_and_add(&i, 1)) f(i, p);}\nint main(){return 0;}\n'; then - local t=${CTARGET_OPT:-${CTARGET}} - t=${t%%-*} - # Normally the target is x86_64-xxx, so turn that into the -march that - # gcc actually accepts. #528708 - [[ ${t} == "x86_64" ]] && t="x86-64" - filter-flags '-march=*' - # ugly, ugly, ugly. ugly. - CFLAGS_x86=$(CFLAGS=${CFLAGS_x86} filter-flags '-march=*'; echo "${CFLAGS}") - export CFLAGS_x86="${CFLAGS_x86} -march=${t}" - einfo "Auto adding -march=${t} to CFLAGS_x86 #185404 (ABI=${ABI})" - fi - ;; - mips) - # The mips abi cannot support the GNU style hashes. #233233 - filter-ldflags -Wl,--hash-style=gnu -Wl,--hash-style=both - ;; - sparc) - # Both sparc and sparc64 can use -fcall-used-g6. -g7 is bad, though. - filter-flags "-fcall-used-g7" - append-flags "-fcall-used-g6" - - # If the CHOST is the basic one (e.g. not sparcv9-xxx already), - # try to pick a better one so glibc can use cpu-specific .S files. - # We key off the CFLAGS to get a good value. Also need to handle - # version skew. - # We can't force users to set their CHOST to their exact machine - # as many of these are not recognized by config.sub/gcc and such :(. - # Note: If the mcpu values don't scale, we might try probing CPP defines. - # Note: Should we factor in -Wa,-AvXXX flags too ? Or -mvis/etc... ? - - local cpu - case ${CTARGET} in - sparc64-*) - case $(get-flag mcpu) in - niagara[234]) - if ver_test -ge 2.8 ; then - cpu="sparc64v2" - elif ver_test -ge 2.4 ; then - cpu="sparc64v" - elif ver_test -ge 2.2.3 ; then - cpu="sparc64b" - fi - ;; - niagara) - if ver_test -ge 2.4 ; then - cpu="sparc64v" - elif ver_test -ge 2.2.3 ; then - cpu="sparc64b" - fi - ;; - ultrasparc3) - cpu="sparc64b" - ;; - *) - # We need to force at least v9a because the base build doesn't - # work with just v9. - # https://sourceware.org/bugzilla/show_bug.cgi?id=19477 - [[ -z ${cpu} ]] && append-flags "-Wa,-xarch=v9a" - ;; - esac - ;; - sparc-*) - case $(get-flag mcpu) in - niagara[234]) - if ver_test -ge 2.8 ; then - cpu="sparcv9v2" - elif ver_test -ge 2.4 ; then - cpu="sparcv9v" - elif ver_test -ge 2.2.3 ; then - cpu="sparcv9b" - else - cpu="sparcv9" - fi - ;; - niagara) - if ver_test -ge 2.4 ; then - cpu="sparcv9v" - elif ver_test -ge 2.2.3 ; then - cpu="sparcv9b" - else - cpu="sparcv9" - fi - ;; - ultrasparc3) - cpu="sparcv9b" - ;; - v9|ultrasparc) - cpu="sparcv9" - ;; - v8|supersparc|hypersparc|leon|leon3) - cpu="sparcv8" - ;; - esac - ;; - esac - [[ -n ${cpu} ]] && CTARGET_OPT="${cpu}-${CTARGET#*-}" - ;; - esac -} - -setup_flags() { - # Make sure host make.conf doesn't pollute us - if is_crosscompile || tc-is-cross-compiler ; then - CHOST=${CTARGET} strip-unsupported-flags - fi - - # Store our CFLAGS because it's changed depending on which CTARGET - # we are building when pulling glibc on a multilib profile - CFLAGS_BASE=${CFLAGS_BASE-${CFLAGS}} - CFLAGS=${CFLAGS_BASE} - CXXFLAGS_BASE=${CXXFLAGS_BASE-${CXXFLAGS}} - CXXFLAGS=${CXXFLAGS_BASE} - ASFLAGS_BASE=${ASFLAGS_BASE-${ASFLAGS}} - ASFLAGS=${ASFLAGS_BASE} - - # Allow users to explicitly avoid flag sanitization via - # USE=custom-cflags. - if ! use custom-cflags; then - # Over-zealous CFLAGS can often cause problems. What may work for one - # person may not work for another. To avoid a large influx of bugs - # relating to failed builds, we strip most CFLAGS out to ensure as few - # problems as possible. - strip-flags - # Lock glibc at -O2; we want to be conservative here. - filter-flags '-O?' - append-flags -O2 - fi - strip-unsupported-flags - filter-flags -m32 -m64 '-mabi=*' - - # glibc aborts if rpath is set by LDFLAGS - filter-ldflags '-Wl,-rpath=*' - - # #492892 - filter-flags -frecord-gcc-switches - - unset CBUILD_OPT CTARGET_OPT - if use multilib ; then - CTARGET_OPT=$(get_abi_CTARGET) - [[ -z ${CTARGET_OPT} ]] && CTARGET_OPT=$(get_abi_CHOST) - fi - - setup_target_flags - - if [[ -n ${CTARGET_OPT} && ${CBUILD} == ${CHOST} ]] && ! is_crosscompile; then - CBUILD_OPT=${CTARGET_OPT} - fi - - # glibc's headers disallow -O0 and fail at build time: - # include/libc-symbols.h:75:3: #error "glibc cannot be compiled without optimization" - replace-flags -O0 -O1 - - filter-flags '-fstack-protector*' -} - -want_tls() { - # Archs that can use TLS (Thread Local Storage) - case $(tc-arch) in - x86) - # requires i486 or better #106556 - [[ ${CTARGET} == i[4567]86* ]] && return 0 - return 1 - ;; - esac - return 0 -} - -want__thread() { - want_tls || return 1 - - # For some reason --with-tls --with__thread is causing segfaults on sparc32. - [[ ${PROFILE_ARCH} == "sparc" ]] && return 1 - - [[ -n ${WANT__THREAD} ]] && return ${WANT__THREAD} - - # only test gcc -- can't test linking yet - tc-has-tls -c ${CTARGET} - WANT__THREAD=$? - - return ${WANT__THREAD} -} - -use_multiarch() { - # Allow user to disable runtime arch detection in multilib. - use multiarch || return 1 - # Make sure binutils is new enough to support indirect functions, - # #336792. This funky sed supports gold and bfd linkers. - local bver nver - bver=$($(tc-getLD ${CTARGET}) -v | sed -n -r '1{s:[^0-9]*::;s:^([0-9.]*).*:\1:;p}') - case $(tc-arch ${CTARGET}) in - amd64|x86) nver="2.20" ;; - arm) nver="2.22" ;; - hppa) nver="2.23" ;; - ppc|ppc64) nver="2.20" ;; - # ifunc support was added in 2.23, but glibc also needs - # machinemode which is in 2.24. - s390) nver="2.24" ;; - sparc) nver="2.21" ;; - *) return 1 ;; - esac - ver_test ${bver} -ge ${nver} -} - -# Setup toolchain variables that had historically been defined in the -# profiles for these archs. -setup_env() { - # silly users - unset LD_RUN_PATH - unset LD_ASSUME_KERNEL - - if is_crosscompile || tc-is-cross-compiler ; then - multilib_env ${CTARGET_OPT:-${CTARGET}} - - if ! use multilib ; then - MULTILIB_ABIS=${DEFAULT_ABI} - else - MULTILIB_ABIS=${MULTILIB_ABIS:-${DEFAULT_ABI}} - fi - - # If the user has CFLAGS_ in their make.conf, use that, - # and fall back on CFLAGS. - local VAR=CFLAGS_${CTARGET//[-.]/_} - CFLAGS=${!VAR-${CFLAGS}} - einfo " $(printf '%15s' 'Manual CFLAGS:') ${CFLAGS}" - fi - - setup_flags - - export ABI=${ABI:-${DEFAULT_ABI:-default}} - - if just_headers ; then - # Avoid mixing host's CC and target's CFLAGS_${ABI}: - # At this bootstrap stage we have only binutils for - # target but not compiler yet. - einfo "Skip CC ABI injection. We can't use (cross-)compiler yet." - return 0 - fi - local VAR=CFLAGS_${ABI} - # We need to export CFLAGS with abi information in them because glibc's - # configure script checks CFLAGS for some targets (like mips). Keep - # around the original clean value to avoid appending multiple ABIs on - # top of each other. - : ${__GLIBC_CC:=$(tc-getCC ${CTARGET_OPT:-${CTARGET}})} - export __GLIBC_CC CC="${__GLIBC_CC} ${!VAR}" - einfo " $(printf '%15s' 'Manual CC:') ${CC}" -} - -foreach_abi() { - setup_env - - local ret=0 - local abilist="" - if use multilib ; then - abilist=$(get_install_abis) - else - abilist=${DEFAULT_ABI} - fi - local -x ABI - for ABI in ${abilist:-default} ; do - setup_env - einfo "Running $1 for ABI ${ABI}" - $1 - : $(( ret |= $? )) - done - return ${ret} -} - -glibc_banner() { - local b="Gentoo ${PVR}" - [[ -n ${PATCH_VER} ]] && ! use vanilla && b+=" p${PATCH_VER}" - echo "${b}" -} - -check_devpts() { - # Make sure devpts is mounted correctly for use w/out setuid pt_chown. - - # If merely building the binary package, then there's nothing to verify. - [[ ${MERGE_TYPE} == "buildonly" ]] && return - - # Only sanity check when installing the native glibc. - [[ -n ${ROOT} ]] && return - - # If they're opting in to the old suid code, then no need to check. - use suid && return - - if awk '$3 == "devpts" && $4 ~ /[, ]gid=5[, ]/ { exit 1 }' /proc/mounts ; then - eerror "In order to use glibc with USE=-suid, you must make sure that" - eerror "you have devpts mounted at /dev/pts with the gid=5 option." - eerror "Openrc should do this for you, so you should check /etc/fstab" - eerror "and make sure you do not have any invalid settings there." - die "mount & fix your /dev/pts settings" - fi -} - -# The following Kernel version handling functions are mostly copied from portage -# source. It's better not to use linux-info.eclass here since a) it adds too -# much magic, see bug 326693 for some of the arguments, and b) some of the -# functions are just not provided. - -g_get_running_KV() { - uname -r - return $? -} - -g_KV_major() { - [[ -z $1 ]] && return 1 - local KV=$@ - echo "${KV%%.*}" -} - -g_KV_minor() { - [[ -z $1 ]] && return 1 - local KV=$@ - KV=${KV#*.} - echo "${KV%%.*}" -} - -g_KV_micro() { - [[ -z $1 ]] && return 1 - local KV=$@ - KV=${KV#*.*.} - echo "${KV%%[^[:digit:]]*}" -} - -g_KV_to_int() { - [[ -z $1 ]] && return 1 - local KV_MAJOR=$(g_KV_major "$1") - local KV_MINOR=$(g_KV_minor "$1") - local KV_MICRO=$(g_KV_micro "$1") - local KV_int=$(( KV_MAJOR * 65536 + KV_MINOR * 256 + KV_MICRO )) - - # We make version 2.2.0 the minimum version we will handle as - # a sanity check ... if its less, we fail ... - if [[ ${KV_int} -ge 131584 ]] ; then - echo "${KV_int}" - return 0 - fi - return 1 -} - -g_int_to_KV() { - local version=$1 major minor micro - major=$((version / 65536)) - minor=$(((version % 65536) / 256)) - micro=$((version % 256)) - echo ${major}.${minor}.${micro} -} - -eend_KV() { - [[ $(g_KV_to_int $1) -ge $(g_KV_to_int $2) ]] - eend $? -} - -get_kheader_version() { - printf '#include \nLINUX_VERSION_CODE\n' | \ - $(tc-getCPP ${CTARGET}) -I "$(build_eprefix)$(alt_build_headers)" - | \ - tail -n 1 -} - -# We collect all sanity checks here. Consistency is not guranteed between -# pkg_ and src_ phases, so we call this function both in pkg_pretend and in -# src_unpack. -sanity_prechecks() { - # Make sure devpts is mounted correctly for use w/out setuid pt_chown - check_devpts - - # Prevent native builds from downgrading - if [[ ${MERGE_TYPE} != "buildonly" ]] && \ - [[ -z ${ROOT} ]] && \ - [[ ${CBUILD} == ${CHOST} ]] && \ - [[ ${CHOST} == ${CTARGET} ]] ; then - - # The high rev # is to allow people to downgrade between -r# - # versions. We want to block 2.20->2.19, but 2.20-r3->2.20-r2 - # should be fine. Hopefully we never actually use a r# this - # high. - if has_version ">${CATEGORY}/${P}-r10000" ; then - eerror "Sanity check to keep you from breaking your system:" - eerror " Downgrading glibc is not supported and a sure way to destruction." - [[ ${I_ALLOW_TO_BREAK_MY_SYSTEM} = yes ]] || die "Aborting to save your system." - fi - - if ! do_run_test '#include \n#include \nint main(){return syscall(1000)!=-1;}\n' ; then - eerror "Your old kernel is broken. You need to update it to a newer" - eerror "version as syscall() will break. See bug 279260." - die "Old and broken kernel." - fi - fi - - # Users have had a chance to phase themselves, time to give em the boot - if [[ -e ${EROOT}/etc/locale.gen ]] && [[ -e ${EROOT}/etc/locales.build ]] ; then - eerror "You still haven't deleted ${EROOT}/etc/locales.build." - eerror "Do so now after making sure ${EROOT}/etc/locale.gen is kosher." - die "Lazy upgrader detected" - fi - - if [[ ${CTARGET} == i386-* ]] ; then - eerror "i386 CHOSTs are no longer supported." - eerror "Chances are you don't actually want/need i386." - eerror "Please read https://www.gentoo.org/doc/en/change-chost.xml" - die "Please fix your CHOST" - fi - - if [[ -e /proc/xen ]] && [[ $(tc-arch) == "x86" ]] && ! is-flag -mno-tls-direct-seg-refs ; then - ewarn "You are using Xen but don't have -mno-tls-direct-seg-refs in your CFLAGS." - ewarn "This will result in a 50% performance penalty when running with a 32bit" - ewarn "hypervisor, which is probably not what you want." - fi - - # Check for sanity of /etc/nsswitch.conf - if [[ -e ${EROOT}/etc/nsswitch.conf ]] ; then - local entry - for entry in passwd group shadow; do - if ! egrep -q "^[ \t]*${entry}:.*files" "${EROOT}"/etc/nsswitch.conf; then - eerror "Your ${EROOT}/etc/nsswitch.conf is out of date." - eerror "Please make sure you have 'files' entries for" - eerror "'passwd:', 'group:' and 'shadow:' databases." - eerror "For more details see:" - eerror " https://wiki.gentoo.org/wiki/Project:Toolchain/nsswitch.conf_in_glibc-2.26" - die "nsswitch.conf has no 'files' provider in '${entry}'." - fi - done - fi - - # ABI-specific checks follow here. Hey, we have a lot more specific conditions that - # we test for... - if ! is_crosscompile ; then - if use amd64 && use multilib && [[ ${MERGE_TYPE} != "binary" ]] ; then - ebegin "Checking that IA32 emulation is enabled in the running kernel" - echo 'int main(){return 0;}' > "${T}/check-ia32-emulation.c" - local STAT - if "${CC-${CHOST}-gcc}" ${CFLAGS_x86} "${T}/check-ia32-emulation.c" -o "${T}/check-ia32-emulation.elf32"; then - "${T}/check-ia32-emulation.elf32" - STAT=$? - else - # Don't fail here to allow single->multi ABI switch - # or recover from breakage like bug #646424 - ewarn "Failed to compile the ABI test. Broken host glibc?" - STAT=0 - fi - rm -f "${T}/check-ia32-emulation.elf32" - eend $STAT - [[ $STAT -eq 0 ]] || die "CONFIG_IA32_EMULATION must be enabled in the kernel to compile a multilib glibc." - fi - - fi - - # When we actually have to compile something... - if ! just_headers ; then - ebegin "Checking gcc for __thread support" - if ! eend $(want__thread ; echo $?) ; then - echo - eerror "Could not find a gcc that supports the __thread directive!" - eerror "Please update your binutils/gcc and try again." - die "No __thread support in gcc!" - fi - - if [[ ${CTARGET} == *-linux* ]] ; then - local run_kv build_kv want_kv - - run_kv=$(g_get_running_KV) - build_kv=$(g_int_to_KV $(get_kheader_version)) - want_kv=${MIN_KERN_VER} - - if ! is_crosscompile && ! tc-is-cross-compiler ; then - # Building fails on an non-supporting kernel - ebegin "Checking running kernel version (${run_kv} >= ${want_kv})" - if ! eend_KV ${run_kv} ${want_kv} ; then - echo - eerror "You need a kernel of at least ${want_kv}!" - die "Kernel version too low!" - fi - fi - - ebegin "Checking linux-headers version (${build_kv} >= ${want_kv})" - if ! eend_KV ${build_kv} ${want_kv} ; then - echo - eerror "You need linux-headers of at least ${want_kv}!" - die "linux-headers version too low!" - fi - fi - fi -} - -# -# the phases -# - -# pkg_pretend - -pkg_pretend() { - # All the checks... - einfo "Checking general environment sanity." - sanity_prechecks -} - -pkg_setup() { - # see bug 682570 - [[ -z ${BOOTSTRAP_RAP} ]] && python-any-r1_pkg_setup -} - -# src_unpack - -src_unpack() { - # Consistency is not guaranteed between pkg_ and src_ ... - sanity_prechecks - - use multilib && unpack gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}.tar.xz - - setup_env - - if [[ -n ${EGIT_REPO_URI} ]] ; then - git-r3_src_unpack - else - unpack ${P}.tar.xz - fi - - cd "${WORKDIR}" || die - unpack glibc-${RELEASE_VER}-patches-${PATCH_VER}.tar.xz -} - -src_prepare() { - if ! use vanilla ; then - elog "Applying Gentoo Glibc Patchset ${RELEASE_VER}-${PATCH_VER}" - eapply "${WORKDIR}"/patches - einfo "Done." - fi - - default - - gnuconfig_update - - cd "${WORKDIR}" - find . -name configure -exec touch {} + - - eprefixify extra/locale/locale-gen - - # Fix permissions on some of the scripts. - chmod u+x "${S}"/scripts/*.sh - - cd "${S}" -} - -glibc_do_configure() { - # Glibc does not work with gold (for various reasons) #269274. - tc-ld-disable-gold - - # CXX isnt handled by the multilib system, so if we dont unset here - # we accumulate crap across abis - unset CXX - - einfo "Configuring glibc for nptl" - - if use doc ; then - export MAKEINFO=makeinfo - else - export MAKEINFO=/dev/null - fi - - local v - for v in ABI CBUILD CHOST CTARGET CBUILD_OPT CTARGET_OPT CC CXX LD {AS,C,CPP,CXX,LD}FLAGS MAKEINFO ; do - einfo " $(printf '%15s' ${v}:) ${!v}" - done - - # CFLAGS can contain ABI-specific flags like -mfpu=neon, see bug #657760 - # To build .S (assembly) files with the same ABI-specific flags - # upstream currently recommends adding CFLAGS to CC/CXX: - # https://sourceware.org/PR23273 - # Note: Passing CFLAGS via CPPFLAGS overrides glibc's arch-specific CFLAGS - # and breaks multiarch support. See 659030#c3 for an example. - # The glibc configure script doesn't properly use LDFLAGS all the time. - export CC="$(tc-getCC ${CTARGET}) ${CFLAGS} ${LDFLAGS}" - einfo " $(printf '%15s' 'Manual CC:') ${CC}" - - # Some of the tests are written in C++, so we need to force our multlib abis in, bug 623548 - export CXX="$(tc-getCXX ${CTARGET}) $(get_abi_CFLAGS) ${CFLAGS}" - - if is_crosscompile; then - # Assume worst-case bootstrap: glibc is buil first time - # when ${CTARGET}-g++ is not available yet. We avoid - # building auxiliary programs that require C++: bug #683074 - # It should not affect final result. - export libc_cv_cxx_link_ok=no - # The line above has the same effect. We set CXX explicitly - # to make build logs less confusing. - export CXX= - fi - einfo " $(printf '%15s' 'Manual CXX:') ${CXX}" - - echo - - local myconf=() - - case ${CTARGET} in - m68k*) - # setjmp() is not compatible with stack protection: - # https://sourceware.org/PR24202 - myconf+=( --enable-stack-protector=no ) - ;; - powerpc-*) - # Currently gcc on powerpc32 generates invalid code for - # __builtin_return_address(0) calls. Normally programs - # don't do that but malloc hooks in glibc do: - # https://gcc.gnu.org/PR81996 - # https://bugs.gentoo.org/629054 - myconf+=( --enable-stack-protector=no ) - ;; - *) - myconf+=( --enable-stack-protector=$(usex ssp all no) ) - ;; - esac - myconf+=( --enable-stackguard-randomization ) - - # Keep a whitelist of targets supporing IFUNC. glibc's ./configure - # is not robust enough to detect proper support: - # https://bugs.gentoo.org/641216 - # https://sourceware.org/PR22634#c0 - case $(tc-arch ${CTARGET}) in - # Keep whitelist of targets where autodetection mostly works. - amd64|x86|sparc|ppc|ppc64|arm|arm64|s390) ;; - # Blacklist everywhere else - *) myconf+=( libc_cv_ld_gnu_indirect_function=no ) ;; - esac - - # Enable Intel Control-flow Enforcement Technology on amd64 if requested - case ${CTARGET} in - x86_64-*) myconf+=( $(use_enable cet) ) ;; - *) ;; - esac - - [[ $(tc-is-softfloat) == "yes" ]] && myconf+=( --without-fp ) - - myconf+=( --enable-kernel=${MIN_KERN_VER} ) - - # Since SELinux support is only required for nscd, only enable it if: - # 1. USE selinux - # 2. only for the primary ABI on multilib systems - # 3. Not a crosscompile - if ! is_crosscompile && use selinux ; then - if use multilib ; then - if is_final_abi ; then - myconf+=( --with-selinux ) - else - myconf+=( --without-selinux ) - fi - else - myconf+=( --with-selinux ) - fi - else - myconf+=( --without-selinux ) - fi - - # Force a few tests where we always know the answer but - # configure is incapable of finding it. - if is_crosscompile ; then - export \ - libc_cv_c_cleanup=yes \ - libc_cv_forced_unwind=yes - fi - - myconf+=( - --without-cvs - --disable-werror - --enable-bind-now - --build=${CBUILD_OPT:-${CBUILD}} - --host=${CTARGET_OPT:-${CTARGET}} - $(use_enable profile) - $(use_with gd) - --with-headers=$(build_eprefix)$(alt_build_headers) - --prefix="$(host_eprefix)/usr" - --sysconfdir="$(host_eprefix)/etc" - --localstatedir="$(host_eprefix)/var" - --libdir='$(prefix)'/$(get_libdir) - --mandir='$(prefix)'/share/man - --infodir='$(prefix)'/share/info - --libexecdir='$(libdir)'/misc/glibc - --with-bugurl=https://bugs.gentoo.org/ - --with-pkgversion="$(glibc_banner)" - $(use_enable crypt) - $(use_multiarch || echo --disable-multi-arch) - $(use_enable systemtap) - $(use_enable nscd) - ${EXTRA_ECONF} - ) - - # We rely on sys-libs/timezone-data for timezone tools normally. - myconf+=( $(use_enable vanilla timezone-tools) ) - - # These libs don't have configure flags. - ac_cv_lib_audit_audit_log_user_avc_message=$(usex audit || echo no) - ac_cv_lib_cap_cap_init=$(usex caps || echo no) - - # There is no configure option for this and we need to export it - # since the glibc build will re-run configure on itself - export libc_cv_rootsbindir="$(host_eprefix)/sbin" - export libc_cv_slibdir="$(host_eprefix)/$(get_libdir)" - - # We take care of patching our binutils to use both hash styles, - # and many people like to force gnu hash style only, so disable - # this overriding check. #347761 - export libc_cv_hashstyle=no - - local builddir=$(builddir nptl) - mkdir -p "${builddir}" - cd "${builddir}" - set -- "${S}"/configure "${myconf[@]}" - echo "$@" - "$@" || die "failed to configure glibc" - - # ia64 static cross-compilers are a pita in so much that they - # can't produce static ELFs (as the libgcc.a is broken). so - # disable building of the programs for those targets if it - # doesn't work. - # XXX: We could turn this into a compiler test, but ia64 is - # the only one that matters, so this should be fine for now. - if is_crosscompile && [[ ${CTARGET} == ia64* ]] ; then - sed -i '1i+link-static = touch $@' config.make - fi - - # If we're trying to migrate between ABI sets, we need - # to lie and use a local copy of gcc. Like if the system - # is built with MULTILIB_ABIS="amd64 x86" but we want to - # add x32 to it, gcc/glibc don't yet support x32. - # - if [[ -n ${GCC_BOOTSTRAP_VER} ]] && use multilib ; then - echo 'main(){}' > "${T}"/test.c - if ! $(tc-getCC ${CTARGET}) ${CFLAGS} ${LDFLAGS} "${T}"/test.c -Wl,-emain -lgcc 2>/dev/null ; then - sed -i -e '/^CC = /s:$: -B$(objdir)/../'"gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}/${ABI}:" config.make || die - fi - fi -} - -glibc_headers_configure() { - export ABI=default - - local builddir=$(builddir "headers") - mkdir -p "${builddir}" - cd "${builddir}" - - # if we don't have a compiler yet, we can't really test it now ... - # hopefully they don't affect header generation, so let's hope for - # the best here ... - local v vars=( - ac_cv_header_cpuid_h=yes - libc_cv_{386,390,alpha,arm,hppa,ia64,mips,{powerpc,sparc}{,32,64},sh,x86_64}_tls=yes - libc_cv_asm_cfi_directives=yes - libc_cv_broken_visibility_attribute=no - libc_cv_c_cleanup=yes - libc_cv_compiler_powerpc64le_binary128_ok=yes - libc_cv_forced_unwind=yes - libc_cv_gcc___thread=yes - libc_cv_mlong_double_128=yes - libc_cv_mlong_double_128ibm=yes - libc_cv_ppc_machine=yes - libc_cv_ppc_rel16=yes - libc_cv_predef_fortify_source=no - libc_cv_target_power8_ok=yes - libc_cv_visibility_attribute=yes - libc_cv_z_combreloc=yes - libc_cv_z_execstack=yes - libc_cv_z_initfirst=yes - libc_cv_z_nodelete=yes - libc_cv_z_nodlopen=yes - libc_cv_z_relro=yes - libc_mips_abi=${ABI} - libc_mips_float=$([[ $(tc-is-softfloat) == "yes" ]] && echo soft || echo hard) - # These libs don't have configure flags. - ac_cv_lib_audit_audit_log_user_avc_message=no - ac_cv_lib_cap_cap_init=no - ) - - einfo "Forcing cached settings:" - for v in "${vars[@]}" ; do - einfo " ${v}" - export ${v} - done - - local headers_only_arch_CPPFLAGS=() - - # Blow away some random CC settings that screw things up. #550192 - if [[ -d ${S}/sysdeps/mips ]]; then - pushd "${S}"/sysdeps/mips >/dev/null - sed -i -e '/^CC +=/s:=.*:= -D_MIPS_SZPTR=32:' mips32/Makefile mips64/n32/Makefile || die - sed -i -e '/^CC +=/s:=.*:= -D_MIPS_SZPTR=64:' mips64/n64/Makefile || die - - # Force the mips ABI to the default. This is OK because the set of - # installed headers in this phase is the same between the 3 ABIs. - # If this ever changes, this hack will break, but that's unlikely - # as glibc discourages that behavior. - # https://crbug.com/647033 - sed -i -e 's:abiflag=.*:abiflag=_ABIO32:' preconfigure || die - - popd >/dev/null - fi - - case ${CTARGET} in - riscv*) - # RISC-V interrogates the compiler to determine which target to - # build. If building the headers then we don't strictly need a - # RISC-V compiler, so the built-in definitions that are provided - # along with all RISC-V compiler might not exist. This causes - # glibc's RISC-V preconfigure script to blow up. Since we're just - # building the headers any value will actually work here, so just - # pick the standard one (rv64g/lp64d) to make the build scripts - # happy for now -- the headers are all the same anyway so it - # doesn't matter. - headers_only_arch_CPPFLAGS+=( - -D__riscv_xlen=64 - -D__riscv_flen=64 - -D__riscv_float_abi_double=1 - -D__riscv_atomic=1 - ) ;; - esac - - local myconf=() - myconf+=( - --disable-sanity-checks - --enable-hacker-mode - --without-cvs - --disable-werror - --enable-bind-now - --build=${CBUILD_OPT:-${CBUILD}} - --host=${CTARGET_OPT:-${CTARGET}} - --with-headers=$(build_eprefix)$(alt_build_headers) - --prefix="$(host_eprefix)/usr" - ${EXTRA_ECONF} - ) - - # Nothing is compiled here which would affect the headers for the target. - # So forcing CC/CFLAGS is sane. - local headers_only_CC=$(tc-getBUILD_CC) - local headers_only_CFLAGS="-O1 -pipe" - local headers_only_CPPFLAGS="-U_FORTIFY_SOURCE ${headers_only_arch_CPPFLAGS[*]}" - local headers_only_LDFLAGS="" - set -- "${S}"/configure "${myconf[@]}" - echo \ - "CC=${headers_only_CC}" \ - "CFLAGS=${headers_only_CFLAGS}" \ - "CPPFLAGS=${headers_only_CPPFLAGS}" \ - "LDFLAGS=${headers_only_LDFLAGS}" \ - "$@" - CC=${headers_only_CC} \ - CFLAGS=${headers_only_CFLAGS} \ - CPPFLAGS=${headers_only_CPPFLAGS} \ - LDFLAGS="" \ - "$@" || die "failed to configure glibc" -} - -do_src_configure() { - if just_headers ; then - glibc_headers_configure - else - glibc_do_configure nptl - fi -} - -src_configure() { - foreach_abi do_src_configure -} - -do_src_compile() { - emake -C "$(builddir nptl)" -} - -src_compile() { - if just_headers ; then - return - fi - - foreach_abi do_src_compile -} - -glibc_src_test() { - cd "$(builddir nptl)" - emake check -} - -do_src_test() { - local ret=0 - - glibc_src_test - : $(( ret |= $? )) - - return ${ret} -} - -src_test() { - if just_headers ; then - return - fi - - # Give tests more time to complete. - export TIMEOUTFACTOR=5 - - foreach_abi do_src_test || die "tests failed" -} - -run_locale_gen() { - # if the host locales.gen contains no entries, we'll install everything - local root="$1" - local inplace="" - - if [[ "${root}" == "--inplace-glibc" ]] ; then - inplace="--inplace-glibc" - root="$2" - fi - - local locale_list="${root}/etc/locale.gen" - - pushd "${ED}"/$(get_libdir) >/dev/null - - if [[ -z $(locale-gen --list --config "${locale_list}") ]] ; then - [[ -z ${inplace} ]] && ewarn "Generating all locales; edit /etc/locale.gen to save time/space" - locale_list="${root}/usr/share/i18n/SUPPORTED" - fi - - set -- locale-gen ${inplace} --jobs $(makeopts_jobs) --config "${locale_list}" \ - --destdir "${root}" - echo "$@" - "$@" - - popd >/dev/null -} - -glibc_do_src_install() { - local builddir=$(builddir nptl) - cd "${builddir}" - - emake install_root="${D}/$(build_eprefix)$(alt_prefix)" install - - # This version (2.26) provides some compatibility libraries for the NIS/NIS+ support - # which come without headers etc. Only needed for binary packages since the - # external net-libs/libnsl has increased soversion. Keep only versioned libraries. - find "${D}" -name "libnsl.a" -delete - find "${D}" -name "libnsl.so" -delete - - # Normally upstream_pv is ${PV}. Live ebuilds are exception, there we need - # to infer upstream version: - # '#define VERSION "2.26.90"' -> '2.26.90' - local upstream_pv=$(sed -n -r 's/#define VERSION "(.*)"/\1/p' "${S}"/version.h) - - # Avoid stripping binaries not targeted by ${CHOST}. Or else - # ${CHOST}-strip would break binaries build for ${CTARGET}. - is_crosscompile && dostrip -x / - # gdb thread introspection relies on local libpthreas symbols. stripping breaks it - # See Note [Disable automatic stripping] - dostrip -x $(alt_libdir)/libpthread-${upstream_pv}.so - - if [[ -e ${ED}/$(alt_usrlibdir)/libm-${upstream_pv}.a ]] ; then - # Move versioned .a file out of libdir to evade portage QA checks - # instead of using gen_usr_ldscript(). We fix ldscript as: - # "GROUP ( /usr/lib64/libm-.a ..." -> "GROUP ( /usr/lib64/glibc-/libm-.a ..." - sed -i "s@\(libm-${upstream_pv}.a\)@${P}/\1@" "${ED}"/$(alt_usrlibdir)/libm.a || die - dodir $(alt_usrlibdir)/${P} - mv "${ED}"/$(alt_usrlibdir)/libm-${upstream_pv}.a "${ED}"/$(alt_usrlibdir)/${P}/libm-${upstream_pv}.a || die - fi - - # We'll take care of the cache ourselves - rm -f "${ED}"/etc/ld.so.cache - - # Everything past this point just needs to be done once ... - is_final_abi || return 0 - - # Make sure the non-native interp can be found on multilib systems even - # if the main library set isn't installed into the right place. Maybe - # we should query the active gcc for info instead of hardcoding it ? - local i ldso_abi ldso_name - local ldso_abi_list=( - # x86 - amd64 /lib64/ld-linux-x86-64.so.2 - x32 /libx32/ld-linux-x32.so.2 - x86 /lib/ld-linux.so.2 - # mips - o32 /lib/ld.so.1 - n32 /lib32/ld.so.1 - n64 /lib64/ld.so.1 - # powerpc - ppc /lib/ld.so.1 - ppc64 /lib64/ld64.so.1 - # riscv - lp64d /lib/ld-linux-riscv64-lp64d.so.1 - lp64 /lib/ld-linux-riscv64-lp64.so.1 - # s390 - s390 /lib/ld.so.1 - s390x /lib/ld64.so.1 - # sparc - sparc32 /lib/ld-linux.so.2 - sparc64 /lib64/ld-linux.so.2 - ) - case $(tc-endian) in - little) - ldso_abi_list+=( - # arm - arm64 /lib/ld-linux-aarch64.so.1 - ) - ;; - big) - ldso_abi_list+=( - # arm - arm64 /lib/ld-linux-aarch64_be.so.1 - ) - ;; - esac - if [[ ${SYMLINK_LIB} == "yes" ]] && [[ ! -e ${ED}/$(alt_prefix)/lib ]] ; then - dosym $(get_abi_LIBDIR ${DEFAULT_ABI}) $(alt_prefix)/lib - fi - for (( i = 0; i < ${#ldso_abi_list[@]}; i += 2 )) ; do - ldso_abi=${ldso_abi_list[i]} - has ${ldso_abi} $(get_install_abis) || continue - - ldso_name="$(alt_prefix)${ldso_abi_list[i+1]}" - if [[ ! -L ${ED}/${ldso_name} && ! -e ${ED}/${ldso_name} ]] ; then - dosym ../$(get_abi_LIBDIR ${ldso_abi})/${ldso_name##*/} ${ldso_name} - fi - done - - # With devpts under Linux mounted properly, we do not need the pt_chown - # binary to be setuid. This is because the default owners/perms will be - # exactly what we want. - if ! use suid ; then - find "${ED}" -name pt_chown -exec chmod -s {} + - fi - - ################################################################# - # EVERYTHING AFTER THIS POINT IS FOR NATIVE GLIBC INSTALLS ONLY # - # Make sure we install some symlink hacks so that when we build - # a 2nd stage cross-compiler, gcc finds the target system - # headers correctly. See gcc/doc/gccinstall.info - if is_crosscompile ; then - # We need to make sure that /lib and /usr/lib always exists. - # gcc likes to use relative paths to get to its multilibs like - # /usr/lib/../lib64/. So while we don't install any files into - # /usr/lib/, we do need it to exist. - keepdir $(alt_prefix)/lib - keepdir $(alt_prefix)/usr/lib - - dosym usr/include $(alt_prefix)/sys-include - return 0 - fi - - # Files for Debian-style locale updating - dodir /usr/share/i18n - sed \ - -e "/^#/d" \ - -e "/SUPPORTED-LOCALES=/d" \ - -e "s: \\\\::g" -e "s:/: :g" \ - "${S}"/localedata/SUPPORTED > "${ED}"/usr/share/i18n/SUPPORTED \ - || die "generating /usr/share/i18n/SUPPORTED failed" - cd "${WORKDIR}"/extra/locale - dosbin locale-gen - doman *.[0-8] - insinto /etc - doins locale.gen - - # Make sure all the ABI's can find the locales and so we only - # have to generate one set - local a - keepdir /usr/$(get_libdir)/locale - for a in $(get_install_abis) ; do - if [[ ! -e ${ED}/usr/$(get_abi_LIBDIR ${a})/locale ]] ; then - dosym ../$(get_libdir)/locale /usr/$(get_abi_LIBDIR ${a})/locale - fi - done - - # HACK: If we're building for riscv, we need to additionally make sure that - # we can find the locale archive afterwards - case ${CTARGET} in - riscv*) - if [[ ! -e ${ED}/usr/lib/locale ]] ; then - dosym ../$(get_libdir)/locale /usr/lib/locale - fi - ;; - *) ;; - esac - - cd "${S}" - - # Install misc network config files - insinto /etc - doins nscd/nscd.conf posix/gai.conf nss/nsswitch.conf - doins "${WORKDIR}"/extra/etc/*.conf - - if use nscd ; then - doinitd "$(prefixify_ro "${WORKDIR}"/extra/etc/nscd)" - - local nscd_args=( - -e "s:@PIDFILE@:$(strings "${ED}"/usr/sbin/nscd | grep nscd.pid):" - ) - - sed -i "${nscd_args[@]}" "${ED}"/etc/init.d/nscd - - systemd_dounit nscd/nscd.service - systemd_newtmpfilesd nscd/nscd.tmpfiles nscd.conf - else - # Do this since extra/etc/*.conf above might have nscd.conf. - rm -f "${ED}"/etc/nscd.conf - fi - - echo 'LDPATH="include ld.so.conf.d/*.conf"' > "${T}"/00glibc - doenvd "${T}"/00glibc - - for d in BUGS ChangeLog CONFORMANCE FAQ NEWS NOTES PROJECTS README* ; do - [[ -s ${d} ]] && dodoc ${d} - done - dodoc -r ChangeLog.old - - # Prevent overwriting of the /etc/localtime symlink. We'll handle the - # creation of the "factory" symlink in pkg_postinst(). - rm -f "${ED}"/etc/localtime - - # Generate all locales if this is a native build as locale generation - if use compile-locales && ! is_crosscompile ; then - run_locale_gen --inplace-glibc "${ED}/" - sed -e 's:COMPILED_LOCALES="":COMPILED_LOCALES="1":' -i "${ED}"/usr/sbin/locale-gen || die - fi -} - -glibc_headers_install() { - local builddir=$(builddir "headers") - cd "${builddir}" - emake install_root="${D}/$(build_eprefix)$(alt_prefix)" install-headers - - insinto $(alt_headers)/gnu - doins "${S}"/include/gnu/stubs.h - - # Make sure we install the sys-include symlink so that when - # we build a 2nd stage cross-compiler, gcc finds the target - # system headers correctly. See gcc/doc/gccinstall.info - dosym usr/include $(alt_prefix)/sys-include -} - -src_install() { - if just_headers ; then - export ABI=default - glibc_headers_install - return - fi - - foreach_abi glibc_do_src_install - - if ! use static-libs ; then - elog "Not installing static glibc libraries" - find "${ED}" -name "*.a" -and -not -name "*_nonshared.a" -delete - fi -} - -# Simple test to make sure our new glibc isn't completely broken. -# Make sure we don't test with statically built binaries since -# they will fail. Also, skip if this glibc is a cross compiler. -# -# If coreutils is built with USE=multicall, some of these files -# will just be wrapper scripts, not actual ELFs we can test. -glibc_sanity_check() { - cd / #228809 - - # We enter ${ED} so to avoid trouble if the path contains - # special characters; for instance if the path contains the - # colon character (:), then the linker will try to split it - # and look for the libraries in an unexpected place. This can - # lead to unsafe code execution if the generated prefix is - # within a world-writable directory. - # (e.g. /var/tmp/portage:${HOSTNAME}) - pushd "${ED}"/$(get_libdir) >/dev/null - - local x striptest - for x in cal date env free ls true uname uptime ; do - x=$(type -p ${x}) - [[ -z ${x} || ${x} != ${EPREFIX}/* ]] && continue - striptest=$(LC_ALL="C" file -L ${x} 2>/dev/null) || continue - case ${striptest} in - *"statically linked"*) continue;; - *"ASCII text"*) continue;; - esac - # We need to clear the locale settings as the upgrade might want - # incompatible locale data. This test is not for verifying that. - LC_ALL=C \ - ./ld-*.so --library-path . ${x} > /dev/null \ - || die "simple run test (${x}) failed" - done - - popd >/dev/null -} - -pkg_preinst() { - # nothing to do if just installing headers - just_headers && return - - # prepare /etc/ld.so.conf.d/ for files - mkdir -p "${EROOT}"/etc/ld.so.conf.d - - # Default /etc/hosts.conf:multi to on for systems with small dbs. - if [[ $(wc -l < "${EROOT}"/etc/hosts) -lt 1000 ]] ; then - sed -i '/^multi off/s:off:on:' "${ED}"/etc/host.conf - einfo "Defaulting /etc/host.conf:multi to on" - fi - - [[ -n ${ROOT} ]] && return 0 - [[ -d ${ED}/$(get_libdir) ]] || return 0 - [[ -z ${BOOTSTRAP_RAP} ]] && glibc_sanity_check -} - -pkg_postinst() { - # nothing to do if just installing headers - just_headers && return - - if ! tc-is-cross-compiler && [[ -x ${EROOT}/usr/sbin/iconvconfig ]] ; then - # Generate fastloading iconv module configuration file. - "${EROOT}"/usr/sbin/iconvconfig --prefix="${ROOT}/" - fi - - if ! is_crosscompile && [[ -z ${ROOT} ]] ; then - use compile-locales || run_locale_gen "${EROOT}/" - fi - - # Check for sanity of /etc/nsswitch.conf, take 2 - if [[ -e ${EROOT}/etc/nsswitch.conf ]] && ! has_version sys-auth/libnss-nis ; then - local entry - for entry in passwd group shadow; do - if egrep -q "^[ \t]*${entry}:.*nis" "${EROOT}"/etc/nsswitch.conf; then - ewarn "" - ewarn "Your ${EROOT}/etc/nsswitch.conf uses NIS. Support for that has been" - ewarn "removed from glibc and is now provided by the package" - ewarn " sys-auth/libnss-nis" - ewarn "Install it now to keep your NIS setup working." - ewarn "" - fi - done - fi -} diff --git a/sys-libs/glibc/glibc-2.31-r2.ebuild b/sys-libs/glibc/glibc-2.31-r2.ebuild new file mode 100644 index 000000000000..db866fbf1a24 --- /dev/null +++ b/sys-libs/glibc/glibc-2.31-r2.ebuild @@ -0,0 +1,1444 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +PYTHON_COMPAT=( python3_{6,7,8} ) + +inherit python-any-r1 prefix eutils toolchain-funcs flag-o-matic gnuconfig \ + multilib systemd multiprocessing + +DESCRIPTION="GNU libc C library" +HOMEPAGE="https://www.gnu.org/software/libc/" +LICENSE="LGPL-2.1+ BSD HPND ISC inner-net rc PCRE" +SLOT="2.2" + +EMULTILIB_PKG="true" + +if [[ ${PV} == 9999* ]]; then + EGIT_REPO_URI="https://sourceware.org/git/glibc.git" + inherit git-r3 +else + # needs minimal testing + #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sh ~sparc ~x86" + SRC_URI="mirror://gnu/glibc/${P}.tar.xz" +fi + +RELEASE_VER=${PV} + +GCC_BOOTSTRAP_VER=20180511 + +# Gentoo patchset +PATCH_VER=3 +PATCH_DEV=dilfridge + +SRC_URI+=" https://dev.gentoo.org/~${PATCH_DEV}/distfiles/${P}-patches-${PATCH_VER}.tar.xz" +SRC_URI+=" multilib? ( https://dev.gentoo.org/~dilfridge/distfiles/gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}.tar.xz )" + +IUSE="audit caps cet compile-locales +crypt custom-cflags doc gd headers-only +multiarch multilib nscd profile selinux +ssp +static-libs static-pie suid systemtap test vanilla" + +# Minimum kernel version that glibc requires +MIN_KERN_VER="3.2.0" + +# Here's how the cross-compile logic breaks down ... +# CTARGET - machine that will target the binaries +# CHOST - machine that will host the binaries +# CBUILD - machine that will build the binaries +# If CTARGET != CHOST, it means you want a libc for cross-compiling. +# If CHOST != CBUILD, it means you want to cross-compile the libc. +# CBUILD = CHOST = CTARGET - native build/install +# CBUILD != (CHOST = CTARGET) - cross-compile a native build +# (CBUILD = CHOST) != CTARGET - libc for cross-compiler +# CBUILD != CHOST != CTARGET - cross-compile a libc for a cross-compiler +# For install paths: +# CHOST = CTARGET - install into / +# CHOST != CTARGET - install into /usr/CTARGET/ +# +export CBUILD=${CBUILD:-${CHOST}} +export CTARGET=${CTARGET:-${CHOST}} +if [[ ${CTARGET} == ${CHOST} ]] ; then + if [[ ${CATEGORY} == cross-* ]] ; then + export CTARGET=${CATEGORY#cross-} + fi +fi + +# Note [Disable automatic stripping] +# Disabling automatic stripping for a few reasons: +# - portage's attempt to strip breaks non-native binaries at least on +# arm: bug #697428 +# - portage's attempt to strip libpthread.so.0 breaks gdb thread +# enumeration: bug #697910. This is quite subtle: +# * gdb uses glibc's libthread_db-1.0.so to enumerate threads. +# * libthread_db-1.0.so needs access to libpthread.so.0 local symbols +# via 'ps_pglobal_lookup' symbol defined in gdb. +# * 'ps_pglobal_lookup' uses '.symtab' section table to resolve all +# known symbols in 'libpthread.so.0'. Specifically 'nptl_version' +# (unexported) is used to sanity check compatibility before enabling +# debugging. +# Also see https://sourceware.org/gdb/wiki/FAQ#GDB_does_not_see_any_threads_besides_the_one_in_which_crash_occurred.3B_or_SIGTRAP_kills_my_program_when_I_set_a_breakpoint +# * normal 'strip' command trims '.symtab' +# Thus our main goal here is to prevent 'libpthread.so.0' from +# losing it's '.symtab' entries. +# As Gentoo's strip does not allow us to pass less aggressive stripping +# options and does not check the machine target we strip selectively. + +# We need a new-enough binutils/gcc to match upstream baseline. +# Also we need to make sure our binutils/gcc supports TLS, +# and that gcc already contains the hardened patches. +BDEPEND=" + ${PYTHON_DEPS} + >=app-misc/pax-utils-0.1.10 + sys-devel/bison + !' | $(tc-getCPP ${CTARGET}) ${CFLAGS} 2>&1 | grep -o '[^"]*linux/version.h') + ALT_BUILD_HEADERS=${header_path%/linux/version.h} + fi + fi + fi + echo "${ALT_BUILD_HEADERS}" +} + +alt_libdir() { + echo $(alt_prefix)/$(get_libdir) +} +alt_usrlibdir() { + echo $(alt_prefix)/usr/$(get_libdir) +} + +builddir() { + echo "${WORKDIR}/build-${ABI}-${CTARGET}-$1" +} + +do_compile_test() { + local ret save_cflags=${CFLAGS} + CFLAGS+=" $1" + shift + + pushd "${T}" >/dev/null + + rm -f glibc-test* + printf '%b' "$*" > glibc-test.c + + nonfatal emake glibc-test + ret=$? + + popd >/dev/null + + CFLAGS=${save_cflags} + return ${ret} +} + +do_run_test() { + local ret + + if [[ ${MERGE_TYPE} == "binary" ]] ; then + # ignore build failures when installing a binary package #324685 + do_compile_test "" "$@" 2>/dev/null || return 0 + else + if ! do_compile_test "" "$@" ; then + ewarn "Simple build failed ... assuming this is desired #324685" + return 0 + fi + fi + + pushd "${T}" >/dev/null + + ./glibc-test + ret=$? + rm -f glibc-test* + + popd >/dev/null + + return ${ret} +} + +setup_target_flags() { + # This largely mucks with compiler flags. None of which should matter + # when building up just the headers. + just_headers && return 0 + + case $(tc-arch) in + x86) + # -march needed for #185404 #199334 + # TODO: When creating the first glibc cross-compile, this test will + # always fail as it does a full link which in turn requires glibc. + # Probably also applies when changing multilib profile settings (e.g. + # enabling x86 when the profile was amd64-only previously). + # We could change main to _start and pass -nostdlib here so that we + # only test the gcc code compilation. Or we could do a compile and + # then look for the symbol via scanelf. + if ! do_compile_test "" 'void f(int i, void *p) {if (__sync_fetch_and_add(&i, 1)) f(i, p);}\nint main(){return 0;}\n'; then + local t=${CTARGET_OPT:-${CTARGET}} + t=${t%%-*} + filter-flags '-march=*' + export CFLAGS="-march=${t} ${CFLAGS}" + einfo "Auto adding -march=${t} to CFLAGS #185404" + fi + ;; + amd64) + # -march needed for #185404 #199334 + # TODO: See cross-compile issues listed above for x86. + [[ ${ABI} == x86 ]] && + if ! do_compile_test "${CFLAGS_x86}" 'void f(int i, void *p) {if (__sync_fetch_and_add(&i, 1)) f(i, p);}\nint main(){return 0;}\n'; then + local t=${CTARGET_OPT:-${CTARGET}} + t=${t%%-*} + # Normally the target is x86_64-xxx, so turn that into the -march that + # gcc actually accepts. #528708 + [[ ${t} == "x86_64" ]] && t="x86-64" + filter-flags '-march=*' + # ugly, ugly, ugly. ugly. + CFLAGS_x86=$(CFLAGS=${CFLAGS_x86} filter-flags '-march=*'; echo "${CFLAGS}") + export CFLAGS_x86="${CFLAGS_x86} -march=${t}" + einfo "Auto adding -march=${t} to CFLAGS_x86 #185404 (ABI=${ABI})" + fi + ;; + mips) + # The mips abi cannot support the GNU style hashes. #233233 + filter-ldflags -Wl,--hash-style=gnu -Wl,--hash-style=both + ;; + sparc) + # Both sparc and sparc64 can use -fcall-used-g6. -g7 is bad, though. + filter-flags "-fcall-used-g7" + append-flags "-fcall-used-g6" + + local cpu + case ${CTARGET} in + sparc64-*) + cpu="sparc64" + case $(get-flag mcpu) in + v9) + # We need to force at least v9a because the base build doesn't + # work with just v9. + # https://sourceware.org/bugzilla/show_bug.cgi?id=19477 + append-flags "-Wa,-xarch=v9a" + ;; + esac + ;; + sparc-*) + case $(get-flag mcpu) in + v8|supersparc|hypersparc|leon|leon3) + cpu="sparcv8" + ;; + *) + cpu="sparcv9" + ;; + esac + ;; + esac + [[ -n ${cpu} ]] && CTARGET_OPT="${cpu}-${CTARGET#*-}" + ;; + esac +} + +setup_flags() { + # Make sure host make.conf doesn't pollute us + if is_crosscompile || tc-is-cross-compiler ; then + CHOST=${CTARGET} strip-unsupported-flags + fi + + # Store our CFLAGS because it's changed depending on which CTARGET + # we are building when pulling glibc on a multilib profile + CFLAGS_BASE=${CFLAGS_BASE-${CFLAGS}} + CFLAGS=${CFLAGS_BASE} + CXXFLAGS_BASE=${CXXFLAGS_BASE-${CXXFLAGS}} + CXXFLAGS=${CXXFLAGS_BASE} + ASFLAGS_BASE=${ASFLAGS_BASE-${ASFLAGS}} + ASFLAGS=${ASFLAGS_BASE} + + # Allow users to explicitly avoid flag sanitization via + # USE=custom-cflags. + if ! use custom-cflags; then + # Over-zealous CFLAGS can often cause problems. What may work for one + # person may not work for another. To avoid a large influx of bugs + # relating to failed builds, we strip most CFLAGS out to ensure as few + # problems as possible. + strip-flags + # Lock glibc at -O2; we want to be conservative here. + filter-flags '-O?' + append-flags -O2 + fi + strip-unsupported-flags + filter-flags -m32 -m64 '-mabi=*' + + # glibc aborts if rpath is set by LDFLAGS + filter-ldflags '-Wl,-rpath=*' + + # #492892 + filter-flags -frecord-gcc-switches + + unset CBUILD_OPT CTARGET_OPT + if use multilib ; then + CTARGET_OPT=$(get_abi_CTARGET) + [[ -z ${CTARGET_OPT} ]] && CTARGET_OPT=$(get_abi_CHOST) + fi + + setup_target_flags + + if [[ -n ${CTARGET_OPT} && ${CBUILD} == ${CHOST} ]] && ! is_crosscompile; then + CBUILD_OPT=${CTARGET_OPT} + fi + + # glibc's headers disallow -O0 and fail at build time: + # include/libc-symbols.h:75:3: #error "glibc cannot be compiled without optimization" + replace-flags -O0 -O1 + + filter-flags '-fstack-protector*' +} + +want_tls() { + # Archs that can use TLS (Thread Local Storage) + case $(tc-arch) in + x86) + # requires i486 or better #106556 + [[ ${CTARGET} == i[4567]86* ]] && return 0 + return 1 + ;; + esac + return 0 +} + +want__thread() { + want_tls || return 1 + + # For some reason --with-tls --with__thread is causing segfaults on sparc32. + [[ ${PROFILE_ARCH} == "sparc" ]] && return 1 + + [[ -n ${WANT__THREAD} ]] && return ${WANT__THREAD} + + # only test gcc -- can't test linking yet + tc-has-tls -c ${CTARGET} + WANT__THREAD=$? + + return ${WANT__THREAD} +} + +use_multiarch() { + # Allow user to disable runtime arch detection in multilib. + use multiarch || return 1 + # Make sure binutils is new enough to support indirect functions, + # #336792. This funky sed supports gold and bfd linkers. + local bver nver + bver=$($(tc-getLD ${CTARGET}) -v | sed -n -r '1{s:[^0-9]*::;s:^([0-9.]*).*:\1:;p}') + case $(tc-arch ${CTARGET}) in + amd64|x86) nver="2.20" ;; + arm) nver="2.22" ;; + hppa) nver="2.23" ;; + ppc|ppc64) nver="2.20" ;; + # ifunc support was added in 2.23, but glibc also needs + # machinemode which is in 2.24. + s390) nver="2.24" ;; + sparc) nver="2.21" ;; + *) return 1 ;; + esac + ver_test ${bver} -ge ${nver} +} + +# Setup toolchain variables that had historically been defined in the +# profiles for these archs. +setup_env() { + # silly users + unset LD_RUN_PATH + unset LD_ASSUME_KERNEL + + if is_crosscompile || tc-is-cross-compiler ; then + multilib_env ${CTARGET_OPT:-${CTARGET}} + + if ! use multilib ; then + MULTILIB_ABIS=${DEFAULT_ABI} + else + MULTILIB_ABIS=${MULTILIB_ABIS:-${DEFAULT_ABI}} + fi + + # If the user has CFLAGS_ in their make.conf, use that, + # and fall back on CFLAGS. + local VAR=CFLAGS_${CTARGET//[-.]/_} + CFLAGS=${!VAR-${CFLAGS}} + einfo " $(printf '%15s' 'Manual CFLAGS:') ${CFLAGS}" + fi + + setup_flags + + export ABI=${ABI:-${DEFAULT_ABI:-default}} + + if just_headers ; then + # Avoid mixing host's CC and target's CFLAGS_${ABI}: + # At this bootstrap stage we have only binutils for + # target but not compiler yet. + einfo "Skip CC ABI injection. We can't use (cross-)compiler yet." + return 0 + fi + local VAR=CFLAGS_${ABI} + # We need to export CFLAGS with abi information in them because glibc's + # configure script checks CFLAGS for some targets (like mips). Keep + # around the original clean value to avoid appending multiple ABIs on + # top of each other. + : ${__GLIBC_CC:=$(tc-getCC ${CTARGET})} + export __GLIBC_CC CC="${__GLIBC_CC} ${!VAR}" + einfo " $(printf '%15s' 'Manual CC:') ${CC}" +} + +foreach_abi() { + setup_env + + local ret=0 + local abilist="" + if use multilib ; then + abilist=$(get_install_abis) + else + abilist=${DEFAULT_ABI} + fi + local -x ABI + for ABI in ${abilist:-default} ; do + setup_env + einfo "Running $1 for ABI ${ABI}" + $1 + : $(( ret |= $? )) + done + return ${ret} +} + +glibc_banner() { + local b="Gentoo ${PVR}" + [[ -n ${PATCH_VER} ]] && ! use vanilla && b+=" p${PATCH_VER}" + echo "${b}" +} + +# The following Kernel version handling functions are mostly copied from portage +# source. It's better not to use linux-info.eclass here since a) it adds too +# much magic, see bug 326693 for some of the arguments, and b) some of the +# functions are just not provided. + +g_get_running_KV() { + uname -r + return $? +} + +g_KV_major() { + [[ -z $1 ]] && return 1 + local KV=$@ + echo "${KV%%.*}" +} + +g_KV_minor() { + [[ -z $1 ]] && return 1 + local KV=$@ + KV=${KV#*.} + echo "${KV%%.*}" +} + +g_KV_micro() { + [[ -z $1 ]] && return 1 + local KV=$@ + KV=${KV#*.*.} + echo "${KV%%[^[:digit:]]*}" +} + +g_KV_to_int() { + [[ -z $1 ]] && return 1 + local KV_MAJOR=$(g_KV_major "$1") + local KV_MINOR=$(g_KV_minor "$1") + local KV_MICRO=$(g_KV_micro "$1") + local KV_int=$(( KV_MAJOR * 65536 + KV_MINOR * 256 + KV_MICRO )) + + # We make version 2.2.0 the minimum version we will handle as + # a sanity check ... if its less, we fail ... + if [[ ${KV_int} -ge 131584 ]] ; then + echo "${KV_int}" + return 0 + fi + return 1 +} + +g_int_to_KV() { + local version=$1 major minor micro + major=$((version / 65536)) + minor=$(((version % 65536) / 256)) + micro=$((version % 256)) + echo ${major}.${minor}.${micro} +} + +eend_KV() { + [[ $(g_KV_to_int $1) -ge $(g_KV_to_int $2) ]] + eend $? +} + +get_kheader_version() { + printf '#include \nLINUX_VERSION_CODE\n' | \ + $(tc-getCPP ${CTARGET}) -I "$(build_eprefix)$(alt_build_headers)" - | \ + tail -n 1 +} + +# We collect all sanity checks here. Consistency is not guranteed between +# pkg_ and src_ phases, so we call this function both in pkg_pretend and in +# src_unpack. +sanity_prechecks() { + # Prevent native builds from downgrading + if [[ ${MERGE_TYPE} != "buildonly" ]] && \ + [[ -z ${ROOT} ]] && \ + [[ ${CBUILD} == ${CHOST} ]] && \ + [[ ${CHOST} == ${CTARGET} ]] ; then + + # The high rev # is to allow people to downgrade between -r# + # versions. We want to block 2.20->2.19, but 2.20-r3->2.20-r2 + # should be fine. Hopefully we never actually use a r# this + # high. + if has_version ">${CATEGORY}/${P}-r10000" ; then + eerror "Sanity check to keep you from breaking your system:" + eerror " Downgrading glibc is not supported and a sure way to destruction." + [[ ${I_ALLOW_TO_BREAK_MY_SYSTEM} = yes ]] || die "Aborting to save your system." + fi + + if ! do_run_test '#include \n#include \nint main(){return syscall(1000)!=-1;}\n' ; then + eerror "Your old kernel is broken. You need to update it to a newer" + eerror "version as syscall() will break. See bug 279260." + die "Old and broken kernel." + fi + fi + + # Users have had a chance to phase themselves, time to give em the boot + if [[ -e ${EROOT}/etc/locale.gen ]] && [[ -e ${EROOT}/etc/locales.build ]] ; then + eerror "You still haven't deleted ${EROOT}/etc/locales.build." + eerror "Do so now after making sure ${EROOT}/etc/locale.gen is kosher." + die "Lazy upgrader detected" + fi + + if [[ ${CTARGET} == i386-* ]] ; then + eerror "i386 CHOSTs are no longer supported." + eerror "Chances are you don't actually want/need i386." + eerror "Please read https://www.gentoo.org/doc/en/change-chost.xml" + die "Please fix your CHOST" + fi + + if [[ -e /proc/xen ]] && [[ $(tc-arch) == "x86" ]] && ! is-flag -mno-tls-direct-seg-refs ; then + ewarn "You are using Xen but don't have -mno-tls-direct-seg-refs in your CFLAGS." + ewarn "This will result in a 50% performance penalty when running with a 32bit" + ewarn "hypervisor, which is probably not what you want." + fi + + # Check for sanity of /etc/nsswitch.conf + if [[ -e ${EROOT}/etc/nsswitch.conf ]] ; then + local entry + for entry in passwd group shadow; do + if ! egrep -q "^[ \t]*${entry}:.*files" "${EROOT}"/etc/nsswitch.conf; then + eerror "Your ${EROOT}/etc/nsswitch.conf is out of date." + eerror "Please make sure you have 'files' entries for" + eerror "'passwd:', 'group:' and 'shadow:' databases." + eerror "For more details see:" + eerror " https://wiki.gentoo.org/wiki/Project:Toolchain/nsswitch.conf_in_glibc-2.26" + die "nsswitch.conf has no 'files' provider in '${entry}'." + fi + done + fi + + # ABI-specific checks follow here. Hey, we have a lot more specific conditions that + # we test for... + if ! is_crosscompile ; then + if use amd64 && use multilib && [[ ${MERGE_TYPE} != "binary" ]] ; then + ebegin "Checking that IA32 emulation is enabled in the running kernel" + echo 'int main(){return 0;}' > "${T}/check-ia32-emulation.c" + local STAT + if "${CC-${CHOST}-gcc}" ${CFLAGS_x86} "${T}/check-ia32-emulation.c" -o "${T}/check-ia32-emulation.elf32"; then + "${T}/check-ia32-emulation.elf32" + STAT=$? + else + # Don't fail here to allow single->multi ABI switch + # or recover from breakage like bug #646424 + ewarn "Failed to compile the ABI test. Broken host glibc?" + STAT=0 + fi + rm -f "${T}/check-ia32-emulation.elf32" + eend $STAT + [[ $STAT -eq 0 ]] || die "CONFIG_IA32_EMULATION must be enabled in the kernel to compile a multilib glibc." + fi + + fi + + # When we actually have to compile something... + if ! just_headers ; then + ebegin "Checking gcc for __thread support" + if ! eend $(want__thread ; echo $?) ; then + echo + eerror "Could not find a gcc that supports the __thread directive!" + eerror "Please update your binutils/gcc and try again." + die "No __thread support in gcc!" + fi + + if [[ ${CTARGET} == *-linux* ]] ; then + local run_kv build_kv want_kv + + run_kv=$(g_get_running_KV) + build_kv=$(g_int_to_KV $(get_kheader_version)) + want_kv=${MIN_KERN_VER} + + if ! is_crosscompile && ! tc-is-cross-compiler ; then + # Building fails on an non-supporting kernel + ebegin "Checking running kernel version (${run_kv} >= ${want_kv})" + if ! eend_KV ${run_kv} ${want_kv} ; then + echo + eerror "You need a kernel of at least ${want_kv}!" + die "Kernel version too low!" + fi + fi + + ebegin "Checking linux-headers version (${build_kv} >= ${want_kv})" + if ! eend_KV ${build_kv} ${want_kv} ; then + echo + eerror "You need linux-headers of at least ${want_kv}!" + die "linux-headers version too low!" + fi + fi + fi +} + +# +# the phases +# + +# pkg_pretend + +pkg_pretend() { + # All the checks... + einfo "Checking general environment sanity." + sanity_prechecks +} + +pkg_setup() { + # see bug 682570 + [[ -z ${BOOTSTRAP_RAP} ]] && python-any-r1_pkg_setup +} + +# src_unpack + +src_unpack() { + # Consistency is not guaranteed between pkg_ and src_ ... + sanity_prechecks + + use multilib && unpack gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}.tar.xz + + setup_env + + if [[ -n ${EGIT_REPO_URI} ]] ; then + git-r3_src_unpack + else + unpack ${P}.tar.xz + fi + + cd "${WORKDIR}" || die + unpack glibc-${RELEASE_VER}-patches-${PATCH_VER}.tar.xz +} + +src_prepare() { + if ! use vanilla ; then + elog "Applying Gentoo Glibc Patchset ${RELEASE_VER}-${PATCH_VER}" + eapply "${WORKDIR}"/patches + einfo "Done." + fi + + default + + gnuconfig_update + + cd "${WORKDIR}" + find . -name configure -exec touch {} + + + eprefixify extra/locale/locale-gen + + # Fix permissions on some of the scripts. + chmod u+x "${S}"/scripts/*.sh + + cd "${S}" +} + +glibc_do_configure() { + # Glibc does not work with gold (for various reasons) #269274. + tc-ld-disable-gold + + # CXX isnt handled by the multilib system, so if we dont unset here + # we accumulate crap across abis + unset CXX + + einfo "Configuring glibc for nptl" + + if use doc ; then + export MAKEINFO=makeinfo + else + export MAKEINFO=/dev/null + fi + + local v + for v in ABI CBUILD CHOST CTARGET CBUILD_OPT CTARGET_OPT CC CXX LD {AS,C,CPP,CXX,LD}FLAGS MAKEINFO ; do + einfo " $(printf '%15s' ${v}:) ${!v}" + done + + # CFLAGS can contain ABI-specific flags like -mfpu=neon, see bug #657760 + # To build .S (assembly) files with the same ABI-specific flags + # upstream currently recommends adding CFLAGS to CC/CXX: + # https://sourceware.org/PR23273 + # Note: Passing CFLAGS via CPPFLAGS overrides glibc's arch-specific CFLAGS + # and breaks multiarch support. See 659030#c3 for an example. + # The glibc configure script doesn't properly use LDFLAGS all the time. + export CC="$(tc-getCC ${CTARGET}) ${CFLAGS} ${LDFLAGS}" + einfo " $(printf '%15s' 'Manual CC:') ${CC}" + + # Some of the tests are written in C++, so we need to force our multlib abis in, bug 623548 + export CXX="$(tc-getCXX ${CTARGET}) $(get_abi_CFLAGS) ${CFLAGS}" + + if is_crosscompile; then + # Assume worst-case bootstrap: glibc is buil first time + # when ${CTARGET}-g++ is not available yet. We avoid + # building auxiliary programs that require C++: bug #683074 + # It should not affect final result. + export libc_cv_cxx_link_ok=no + # The line above has the same effect. We set CXX explicitly + # to make build logs less confusing. + export CXX= + fi + einfo " $(printf '%15s' 'Manual CXX:') ${CXX}" + + echo + + local myconf=() + + case ${CTARGET} in + m68k*) + # setjmp() is not compatible with stack protection: + # https://sourceware.org/PR24202 + myconf+=( --enable-stack-protector=no ) + ;; + powerpc-*) + # Currently gcc on powerpc32 generates invalid code for + # __builtin_return_address(0) calls. Normally programs + # don't do that but malloc hooks in glibc do: + # https://gcc.gnu.org/PR81996 + # https://bugs.gentoo.org/629054 + myconf+=( --enable-stack-protector=no ) + ;; + *) + # Use '=strong' instead of '=all' to protect only functions + # worth protecting from stack smashes. + # '=all' is also known to have a problem in IFUNC resolution + # tests: https://sourceware.org/PR25680, bug #712356. + myconf+=( --enable-stack-protector=$(usex ssp strong no) ) + ;; + esac + myconf+=( --enable-stackguard-randomization ) + + # Keep a whitelist of targets supporing IFUNC. glibc's ./configure + # is not robust enough to detect proper support: + # https://bugs.gentoo.org/641216 + # https://sourceware.org/PR22634#c0 + case $(tc-arch ${CTARGET}) in + # Keep whitelist of targets where autodetection mostly works. + amd64|x86|sparc|ppc|ppc64|arm|arm64|s390) ;; + # Blacklist everywhere else + *) myconf+=( libc_cv_ld_gnu_indirect_function=no ) ;; + esac + + # Enable Intel Control-flow Enforcement Technology on amd64 if requested + case ${CTARGET} in + x86_64-*) myconf+=( $(use_enable cet) ) ;; + *) ;; + esac + + [[ $(tc-is-softfloat) == "yes" ]] && myconf+=( --without-fp ) + + myconf+=( --enable-kernel=${MIN_KERN_VER} ) + + # Since SELinux support is only required for nscd, only enable it if: + # 1. USE selinux + # 2. only for the primary ABI on multilib systems + # 3. Not a crosscompile + if ! is_crosscompile && use selinux ; then + if use multilib ; then + if is_final_abi ; then + myconf+=( --with-selinux ) + else + myconf+=( --without-selinux ) + fi + else + myconf+=( --with-selinux ) + fi + else + myconf+=( --without-selinux ) + fi + + # Force a few tests where we always know the answer but + # configure is incapable of finding it. + if is_crosscompile ; then + export \ + libc_cv_c_cleanup=yes \ + libc_cv_forced_unwind=yes + fi + + myconf+=( + --without-cvs + --disable-werror + --enable-bind-now + --build=${CBUILD_OPT:-${CBUILD}} + --host=${CTARGET_OPT:-${CTARGET}} + $(use_enable profile) + $(use_with gd) + --with-headers=$(build_eprefix)$(alt_build_headers) + --prefix="$(host_eprefix)/usr" + --sysconfdir="$(host_eprefix)/etc" + --localstatedir="$(host_eprefix)/var" + --libdir='$(prefix)'/$(get_libdir) + --mandir='$(prefix)'/share/man + --infodir='$(prefix)'/share/info + --libexecdir='$(libdir)'/misc/glibc + --with-bugurl=https://bugs.gentoo.org/ + --with-pkgversion="$(glibc_banner)" + $(use_enable crypt) + $(use_multiarch || echo --disable-multi-arch) + $(use_enable static-pie) + $(use_enable systemtap) + $(use_enable nscd) + ${EXTRA_ECONF} + ) + + # We rely on sys-libs/timezone-data for timezone tools normally. + myconf+=( $(use_enable vanilla timezone-tools) ) + + # These libs don't have configure flags. + ac_cv_lib_audit_audit_log_user_avc_message=$(usex audit || echo no) + ac_cv_lib_cap_cap_init=$(usex caps || echo no) + + # There is no configure option for this and we need to export it + # since the glibc build will re-run configure on itself + export libc_cv_rootsbindir="$(host_eprefix)/sbin" + export libc_cv_slibdir="$(host_eprefix)/$(get_libdir)" + + # We take care of patching our binutils to use both hash styles, + # and many people like to force gnu hash style only, so disable + # this overriding check. #347761 + export libc_cv_hashstyle=no + + local builddir=$(builddir nptl) + mkdir -p "${builddir}" + cd "${builddir}" + set -- "${S}"/configure "${myconf[@]}" + echo "$@" + "$@" || die "failed to configure glibc" + + # ia64 static cross-compilers are a pita in so much that they + # can't produce static ELFs (as the libgcc.a is broken). so + # disable building of the programs for those targets if it + # doesn't work. + # XXX: We could turn this into a compiler test, but ia64 is + # the only one that matters, so this should be fine for now. + if is_crosscompile && [[ ${CTARGET} == ia64* ]] ; then + sed -i '1i+link-static = touch $@' config.make + fi + + # If we're trying to migrate between ABI sets, we need + # to lie and use a local copy of gcc. Like if the system + # is built with MULTILIB_ABIS="amd64 x86" but we want to + # add x32 to it, gcc/glibc don't yet support x32. + # + if [[ -n ${GCC_BOOTSTRAP_VER} ]] && use multilib ; then + echo 'main(){}' > "${T}"/test.c + if ! $(tc-getCC ${CTARGET}) ${CFLAGS} ${LDFLAGS} "${T}"/test.c -Wl,-emain -lgcc 2>/dev/null ; then + sed -i -e '/^CC = /s:$: -B$(objdir)/../'"gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}/${ABI}:" config.make || die + fi + fi +} + +glibc_headers_configure() { + export ABI=default + + local builddir=$(builddir "headers") + mkdir -p "${builddir}" + cd "${builddir}" + + # if we don't have a compiler yet, we can't really test it now ... + # hopefully they don't affect header generation, so let's hope for + # the best here ... + local v vars=( + ac_cv_header_cpuid_h=yes + libc_cv_{386,390,alpha,arm,hppa,ia64,mips,{powerpc,sparc}{,32,64},sh,x86_64}_tls=yes + libc_cv_asm_cfi_directives=yes + libc_cv_broken_visibility_attribute=no + libc_cv_c_cleanup=yes + libc_cv_compiler_powerpc64le_binary128_ok=yes + libc_cv_forced_unwind=yes + libc_cv_gcc___thread=yes + libc_cv_mlong_double_128=yes + libc_cv_mlong_double_128ibm=yes + libc_cv_ppc_machine=yes + libc_cv_ppc_rel16=yes + libc_cv_predef_fortify_source=no + libc_cv_target_power8_ok=yes + libc_cv_visibility_attribute=yes + libc_cv_z_combreloc=yes + libc_cv_z_execstack=yes + libc_cv_z_initfirst=yes + libc_cv_z_nodelete=yes + libc_cv_z_nodlopen=yes + libc_cv_z_relro=yes + libc_mips_abi=${ABI} + libc_mips_float=$([[ $(tc-is-softfloat) == "yes" ]] && echo soft || echo hard) + # These libs don't have configure flags. + ac_cv_lib_audit_audit_log_user_avc_message=no + ac_cv_lib_cap_cap_init=no + ) + + einfo "Forcing cached settings:" + for v in "${vars[@]}" ; do + einfo " ${v}" + export ${v} + done + + local headers_only_arch_CPPFLAGS=() + + # Blow away some random CC settings that screw things up. #550192 + if [[ -d ${S}/sysdeps/mips ]]; then + pushd "${S}"/sysdeps/mips >/dev/null + sed -i -e '/^CC +=/s:=.*:= -D_MIPS_SZPTR=32:' mips32/Makefile mips64/n32/Makefile || die + sed -i -e '/^CC +=/s:=.*:= -D_MIPS_SZPTR=64:' mips64/n64/Makefile || die + + # Force the mips ABI to the default. This is OK because the set of + # installed headers in this phase is the same between the 3 ABIs. + # If this ever changes, this hack will break, but that's unlikely + # as glibc discourages that behavior. + # https://crbug.com/647033 + sed -i -e 's:abiflag=.*:abiflag=_ABIO32:' preconfigure || die + + popd >/dev/null + fi + + case ${CTARGET} in + riscv*) + # RISC-V interrogates the compiler to determine which target to + # build. If building the headers then we don't strictly need a + # RISC-V compiler, so the built-in definitions that are provided + # along with all RISC-V compiler might not exist. This causes + # glibc's RISC-V preconfigure script to blow up. Since we're just + # building the headers any value will actually work here, so just + # pick the standard one (rv64g/lp64d) to make the build scripts + # happy for now -- the headers are all the same anyway so it + # doesn't matter. + headers_only_arch_CPPFLAGS+=( + -D__riscv_xlen=64 + -D__riscv_flen=64 + -D__riscv_float_abi_double=1 + -D__riscv_atomic=1 + ) ;; + esac + + local myconf=() + myconf+=( + --disable-sanity-checks + --enable-hacker-mode + --without-cvs + --disable-werror + --enable-bind-now + --build=${CBUILD_OPT:-${CBUILD}} + --host=${CTARGET_OPT:-${CTARGET}} + --with-headers=$(build_eprefix)$(alt_build_headers) + --prefix="$(host_eprefix)/usr" + ${EXTRA_ECONF} + ) + + # Nothing is compiled here which would affect the headers for the target. + # So forcing CC/CFLAGS is sane. + local headers_only_CC=$(tc-getBUILD_CC) + local headers_only_CFLAGS="-O1 -pipe" + local headers_only_CPPFLAGS="-U_FORTIFY_SOURCE ${headers_only_arch_CPPFLAGS[*]}" + local headers_only_LDFLAGS="" + set -- "${S}"/configure "${myconf[@]}" + echo \ + "CC=${headers_only_CC}" \ + "CFLAGS=${headers_only_CFLAGS}" \ + "CPPFLAGS=${headers_only_CPPFLAGS}" \ + "LDFLAGS=${headers_only_LDFLAGS}" \ + "$@" + CC=${headers_only_CC} \ + CFLAGS=${headers_only_CFLAGS} \ + CPPFLAGS=${headers_only_CPPFLAGS} \ + LDFLAGS="" \ + "$@" || die "failed to configure glibc" +} + +do_src_configure() { + if just_headers ; then + glibc_headers_configure + else + glibc_do_configure nptl + fi +} + +src_configure() { + foreach_abi do_src_configure +} + +do_src_compile() { + emake -C "$(builddir nptl)" +} + +src_compile() { + if just_headers ; then + return + fi + + foreach_abi do_src_compile +} + +glibc_src_test() { + cd "$(builddir nptl)" + + local myxfailparams="" + if [[ "${GENTOO_GLIBC_XFAIL_TESTS}" == "yes" ]] ; then + for myt in ${XFAIL_TEST_LIST[@]} ; do + myxfailparams+="test-xfail-${myt}=yes " + done + fi + + # sandbox does not understand unshare() and prevents + # writes to /proc/, which makes many tests fail + + SANDBOX_ON=0 LD_PRELOAD= emake ${myxfailparams} check +} + +do_src_test() { + local ret=0 + + glibc_src_test + : $(( ret |= $? )) + + return ${ret} +} + +src_test() { + if just_headers ; then + return + fi + + # Give tests more time to complete. + export TIMEOUTFACTOR=5 + + foreach_abi do_src_test || die "tests failed" +} + +run_locale_gen() { + # if the host locales.gen contains no entries, we'll install everything + local root="$1" + local inplace="" + + if [[ "${root}" == "--inplace-glibc" ]] ; then + inplace="--inplace-glibc" + root="$2" + fi + + local locale_list="${root}/etc/locale.gen" + + pushd "${ED}"/$(get_libdir) >/dev/null + + if [[ -z $(locale-gen --list --config "${locale_list}") ]] ; then + [[ -z ${inplace} ]] && ewarn "Generating all locales; edit /etc/locale.gen to save time/space" + locale_list="${root}/usr/share/i18n/SUPPORTED" + fi + + set -- locale-gen ${inplace} --jobs $(makeopts_jobs) --config "${locale_list}" \ + --destdir "${root}" + echo "$@" + "$@" + + popd >/dev/null +} + +glibc_do_src_install() { + local builddir=$(builddir nptl) + cd "${builddir}" + + emake install_root="${D}/$(build_eprefix)$(alt_prefix)" install + + # This version (2.26) provides some compatibility libraries for the NIS/NIS+ support + # which come without headers etc. Only needed for binary packages since the + # external net-libs/libnsl has increased soversion. Keep only versioned libraries. + find "${D}" -name "libnsl.a" -delete + find "${D}" -name "libnsl.so" -delete + + # Normally upstream_pv is ${PV}. Live ebuilds are exception, there we need + # to infer upstream version: + # '#define VERSION "2.26.90"' -> '2.26.90' + local upstream_pv=$(sed -n -r 's/#define VERSION "(.*)"/\1/p' "${S}"/version.h) + + # Avoid stripping binaries not targeted by ${CHOST}. Or else + # ${CHOST}-strip would break binaries build for ${CTARGET}. + is_crosscompile && dostrip -x / + # gdb thread introspection relies on local libpthreas symbols. stripping breaks it + # See Note [Disable automatic stripping] + dostrip -x $(alt_libdir)/libpthread-${upstream_pv}.so + + if [[ -e ${ED}/$(alt_usrlibdir)/libm-${upstream_pv}.a ]] ; then + # Move versioned .a file out of libdir to evade portage QA checks + # instead of using gen_usr_ldscript(). We fix ldscript as: + # "GROUP ( /usr/lib64/libm-.a ..." -> "GROUP ( /usr/lib64/glibc-/libm-.a ..." + sed -i "s@\(libm-${upstream_pv}.a\)@${P}/\1@" "${ED}"/$(alt_usrlibdir)/libm.a || die + dodir $(alt_usrlibdir)/${P} + mv "${ED}"/$(alt_usrlibdir)/libm-${upstream_pv}.a "${ED}"/$(alt_usrlibdir)/${P}/libm-${upstream_pv}.a || die + fi + + # We'll take care of the cache ourselves + rm -f "${ED}"/etc/ld.so.cache + + # Everything past this point just needs to be done once ... + is_final_abi || return 0 + + # Make sure the non-native interp can be found on multilib systems even + # if the main library set isn't installed into the right place. Maybe + # we should query the active gcc for info instead of hardcoding it ? + local i ldso_abi ldso_name + local ldso_abi_list=( + # x86 + amd64 /lib64/ld-linux-x86-64.so.2 + x32 /libx32/ld-linux-x32.so.2 + x86 /lib/ld-linux.so.2 + # mips + o32 /lib/ld.so.1 + n32 /lib32/ld.so.1 + n64 /lib64/ld.so.1 + # powerpc + ppc /lib/ld.so.1 + ppc64 /lib64/ld64.so.1 + # riscv + lp64d /lib/ld-linux-riscv64-lp64d.so.1 + lp64 /lib/ld-linux-riscv64-lp64.so.1 + # s390 + s390 /lib/ld.so.1 + s390x /lib/ld64.so.1 + # sparc + sparc32 /lib/ld-linux.so.2 + sparc64 /lib64/ld-linux.so.2 + ) + case $(tc-endian) in + little) + ldso_abi_list+=( + # arm + arm64 /lib/ld-linux-aarch64.so.1 + ) + ;; + big) + ldso_abi_list+=( + # arm + arm64 /lib/ld-linux-aarch64_be.so.1 + ) + ;; + esac + if [[ ${SYMLINK_LIB} == "yes" ]] && [[ ! -e ${ED}/$(alt_prefix)/lib ]] ; then + dosym $(get_abi_LIBDIR ${DEFAULT_ABI}) $(alt_prefix)/lib + fi + for (( i = 0; i < ${#ldso_abi_list[@]}; i += 2 )) ; do + ldso_abi=${ldso_abi_list[i]} + has ${ldso_abi} $(get_install_abis) || continue + + ldso_name="$(alt_prefix)${ldso_abi_list[i+1]}" + if [[ ! -L ${ED}/${ldso_name} && ! -e ${ED}/${ldso_name} ]] ; then + dosym ../$(get_abi_LIBDIR ${ldso_abi})/${ldso_name##*/} ${ldso_name} + fi + done + + # With devpts under Linux mounted properly, we do not need the pt_chown + # binary to be setuid. This is because the default owners/perms will be + # exactly what we want. + if ! use suid ; then + find "${ED}" -name pt_chown -exec chmod -s {} + + fi + + ################################################################# + # EVERYTHING AFTER THIS POINT IS FOR NATIVE GLIBC INSTALLS ONLY # + # Make sure we install some symlink hacks so that when we build + # a 2nd stage cross-compiler, gcc finds the target system + # headers correctly. See gcc/doc/gccinstall.info + if is_crosscompile ; then + # We need to make sure that /lib and /usr/lib always exists. + # gcc likes to use relative paths to get to its multilibs like + # /usr/lib/../lib64/. So while we don't install any files into + # /usr/lib/, we do need it to exist. + keepdir $(alt_prefix)/lib + keepdir $(alt_prefix)/usr/lib + + dosym usr/include $(alt_prefix)/sys-include + return 0 + fi + + # Files for Debian-style locale updating + dodir /usr/share/i18n + sed \ + -e "/^#/d" \ + -e "/SUPPORTED-LOCALES=/d" \ + -e "s: \\\\::g" -e "s:/: :g" \ + "${S}"/localedata/SUPPORTED > "${ED}"/usr/share/i18n/SUPPORTED \ + || die "generating /usr/share/i18n/SUPPORTED failed" + cd "${WORKDIR}"/extra/locale + dosbin locale-gen + doman *.[0-8] + insinto /etc + doins locale.gen + + # Make sure all the ABI's can find the locales and so we only + # have to generate one set + local a + keepdir /usr/$(get_libdir)/locale + for a in $(get_install_abis) ; do + if [[ ! -e ${ED}/usr/$(get_abi_LIBDIR ${a})/locale ]] ; then + dosym ../$(get_libdir)/locale /usr/$(get_abi_LIBDIR ${a})/locale + fi + done + + # HACK: If we're building for riscv, we need to additionally make sure that + # we can find the locale archive afterwards + case ${CTARGET} in + riscv*) + if [[ ! -e ${ED}/usr/lib/locale ]] ; then + dosym ../$(get_libdir)/locale /usr/lib/locale + fi + ;; + *) ;; + esac + + cd "${S}" + + # Install misc network config files + insinto /etc + doins nscd/nscd.conf posix/gai.conf nss/nsswitch.conf + doins "${WORKDIR}"/extra/etc/*.conf + + if use nscd ; then + doinitd "$(prefixify_ro "${WORKDIR}"/extra/etc/nscd)" + + local nscd_args=( + -e "s:@PIDFILE@:$(strings "${ED}"/usr/sbin/nscd | grep nscd.pid):" + ) + + sed -i "${nscd_args[@]}" "${ED}"/etc/init.d/nscd + + systemd_dounit nscd/nscd.service + systemd_newtmpfilesd nscd/nscd.tmpfiles nscd.conf + else + # Do this since extra/etc/*.conf above might have nscd.conf. + rm -f "${ED}"/etc/nscd.conf + fi + + echo 'LDPATH="include ld.so.conf.d/*.conf"' > "${T}"/00glibc + doenvd "${T}"/00glibc + + for d in BUGS ChangeLog CONFORMANCE FAQ NEWS NOTES PROJECTS README* ; do + [[ -s ${d} ]] && dodoc ${d} + done + dodoc -r ChangeLog.old + + # Prevent overwriting of the /etc/localtime symlink. We'll handle the + # creation of the "factory" symlink in pkg_postinst(). + rm -f "${ED}"/etc/localtime + + # Generate all locales if this is a native build as locale generation + if use compile-locales && ! is_crosscompile ; then + run_locale_gen --inplace-glibc "${ED}/" + sed -e 's:COMPILED_LOCALES="":COMPILED_LOCALES="1":' -i "${ED}"/usr/sbin/locale-gen || die + fi +} + +glibc_headers_install() { + local builddir=$(builddir "headers") + cd "${builddir}" + emake install_root="${D}/$(build_eprefix)$(alt_prefix)" install-headers + + insinto $(alt_headers)/gnu + doins "${S}"/include/gnu/stubs.h + + # Make sure we install the sys-include symlink so that when + # we build a 2nd stage cross-compiler, gcc finds the target + # system headers correctly. See gcc/doc/gccinstall.info + dosym usr/include $(alt_prefix)/sys-include +} + +src_install() { + if just_headers ; then + export ABI=default + glibc_headers_install + return + fi + + foreach_abi glibc_do_src_install + + if ! use static-libs ; then + elog "Not installing static glibc libraries" + find "${ED}" -name "*.a" -and -not -name "*_nonshared.a" -delete + fi +} + +# Simple test to make sure our new glibc isn't completely broken. +# Make sure we don't test with statically built binaries since +# they will fail. Also, skip if this glibc is a cross compiler. +# +# If coreutils is built with USE=multicall, some of these files +# will just be wrapper scripts, not actual ELFs we can test. +glibc_sanity_check() { + cd / #228809 + + # We enter ${ED} so to avoid trouble if the path contains + # special characters; for instance if the path contains the + # colon character (:), then the linker will try to split it + # and look for the libraries in an unexpected place. This can + # lead to unsafe code execution if the generated prefix is + # within a world-writable directory. + # (e.g. /var/tmp/portage:${HOSTNAME}) + pushd "${ED}"/$(get_libdir) >/dev/null + + local x striptest + for x in cal date env free ls true uname uptime ; do + x=$(type -p ${x}) + [[ -z ${x} || ${x} != ${EPREFIX}/* ]] && continue + striptest=$(LC_ALL="C" file -L ${x} 2>/dev/null) || continue + case ${striptest} in + *"statically linked"*) continue;; + *"ASCII text"*) continue;; + esac + # We need to clear the locale settings as the upgrade might want + # incompatible locale data. This test is not for verifying that. + LC_ALL=C \ + ./ld-*.so --library-path . ${x} > /dev/null \ + || die "simple run test (${x}) failed" + done + + popd >/dev/null +} + +pkg_preinst() { + # nothing to do if just installing headers + just_headers && return + + # prepare /etc/ld.so.conf.d/ for files + mkdir -p "${EROOT}"/etc/ld.so.conf.d + + # Default /etc/hosts.conf:multi to on for systems with small dbs. + if [[ $(wc -l < "${EROOT}"/etc/hosts) -lt 1000 ]] ; then + sed -i '/^multi off/s:off:on:' "${ED}"/etc/host.conf + einfo "Defaulting /etc/host.conf:multi to on" + fi + + [[ -n ${ROOT} ]] && return 0 + [[ -d ${ED}/$(get_libdir) ]] || return 0 + [[ -z ${BOOTSTRAP_RAP} ]] && glibc_sanity_check +} + +pkg_postinst() { + # nothing to do if just installing headers + just_headers && return + + if ! tc-is-cross-compiler && [[ -x ${EROOT}/usr/sbin/iconvconfig ]] ; then + # Generate fastloading iconv module configuration file. + "${EROOT}"/usr/sbin/iconvconfig --prefix="${ROOT}/" + fi + + if ! is_crosscompile && [[ -z ${ROOT} ]] ; then + use compile-locales || run_locale_gen "${EROOT}/" + fi + + # Check for sanity of /etc/nsswitch.conf, take 2 + if [[ -e ${EROOT}/etc/nsswitch.conf ]] && ! has_version sys-auth/libnss-nis ; then + local entry + for entry in passwd group shadow; do + if egrep -q "^[ \t]*${entry}:.*nis" "${EROOT}"/etc/nsswitch.conf; then + ewarn "" + ewarn "Your ${EROOT}/etc/nsswitch.conf uses NIS. Support for that has been" + ewarn "removed from glibc and is now provided by the package" + ewarn " sys-auth/libnss-nis" + ewarn "Install it now to keep your NIS setup working." + ewarn "" + fi + done + fi +} diff --git a/sys-libs/glibc/glibc-2.31.ebuild b/sys-libs/glibc/glibc-2.31.ebuild deleted file mode 100644 index d951ee59a366..000000000000 --- a/sys-libs/glibc/glibc-2.31.ebuild +++ /dev/null @@ -1,1493 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -PYTHON_COMPAT=( python3_{6,7,8} ) - -inherit python-any-r1 prefix eutils toolchain-funcs flag-o-matic gnuconfig \ - multilib systemd multiprocessing - -DESCRIPTION="GNU libc C library" -HOMEPAGE="https://www.gnu.org/software/libc/" -LICENSE="LGPL-2.1+ BSD HPND ISC inner-net rc PCRE" -SLOT="2.2" - -EMULTILIB_PKG="true" - -if [[ ${PV} == 9999* ]]; then - EGIT_REPO_URI="https://sourceware.org/git/glibc.git" - inherit git-r3 -else - # needs minimal testing - #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sh ~sparc ~x86" - SRC_URI="mirror://gnu/glibc/${P}.tar.xz" -fi - -RELEASE_VER=${PV} - -GCC_BOOTSTRAP_VER=20180511 - -# Gentoo patchset -PATCH_VER=1 -PATCH_DEV=slyfox - -SRC_URI+=" https://dev.gentoo.org/~${PATCH_DEV}/distfiles/${P}-patches-${PATCH_VER}.tar.xz" -SRC_URI+=" multilib? ( https://dev.gentoo.org/~dilfridge/distfiles/gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}.tar.xz )" - -IUSE="audit caps cet compile-locales +crypt custom-cflags doc gd headers-only +multiarch multilib nscd profile selinux +ssp +static-libs suid systemtap test vanilla" - -# Minimum kernel version that glibc requires -MIN_KERN_VER="3.2.0" - -# Here's how the cross-compile logic breaks down ... -# CTARGET - machine that will target the binaries -# CHOST - machine that will host the binaries -# CBUILD - machine that will build the binaries -# If CTARGET != CHOST, it means you want a libc for cross-compiling. -# If CHOST != CBUILD, it means you want to cross-compile the libc. -# CBUILD = CHOST = CTARGET - native build/install -# CBUILD != (CHOST = CTARGET) - cross-compile a native build -# (CBUILD = CHOST) != CTARGET - libc for cross-compiler -# CBUILD != CHOST != CTARGET - cross-compile a libc for a cross-compiler -# For install paths: -# CHOST = CTARGET - install into / -# CHOST != CTARGET - install into /usr/CTARGET/ -# -export CBUILD=${CBUILD:-${CHOST}} -export CTARGET=${CTARGET:-${CHOST}} -if [[ ${CTARGET} == ${CHOST} ]] ; then - if [[ ${CATEGORY} == cross-* ]] ; then - export CTARGET=${CATEGORY#cross-} - fi -fi - -# Note [Disable automatic stripping] -# Disabling automatic stripping for a few reasons: -# - portage's attempt to strip breaks non-native binaries at least on -# arm: bug #697428 -# - portage's attempt to strip libpthread.so.0 breaks gdb thread -# enumeration: bug #697910. This is quite subtle: -# * gdb uses glibc's libthread_db-1.0.so to enumerate threads. -# * libthread_db-1.0.so needs access to libpthread.so.0 local symbols -# via 'ps_pglobal_lookup' symbol defined in gdb. -# * 'ps_pglobal_lookup' uses '.symtab' section table to resolve all -# known symbols in 'libpthread.so.0'. Specifically 'nptl_version' -# (unexported) is used to sanity check compatibility before enabling -# debugging. -# Also see https://sourceware.org/gdb/wiki/FAQ#GDB_does_not_see_any_threads_besides_the_one_in_which_crash_occurred.3B_or_SIGTRAP_kills_my_program_when_I_set_a_breakpoint -# * normal 'strip' command trims '.symtab' -# Thus our main goal here is to prevent 'libpthread.so.0' from -# losing it's '.symtab' entries. -# As Gentoo's strip does not allow us to pass less aggressive stripping -# options and does not check the machine target we strip selectively. - -# We need a new-enough binutils/gcc to match upstream baseline. -# Also we need to make sure our binutils/gcc supports TLS, -# and that gcc already contains the hardened patches. -BDEPEND=" - ${PYTHON_DEPS} - >=app-misc/pax-utils-0.1.10 - sys-devel/bison - !' | $(tc-getCPP ${CTARGET}) ${CFLAGS} 2>&1 | grep -o '[^"]*linux/version.h') - ALT_BUILD_HEADERS=${header_path%/linux/version.h} - fi - fi - fi - echo "${ALT_BUILD_HEADERS}" -} - -alt_libdir() { - echo $(alt_prefix)/$(get_libdir) -} -alt_usrlibdir() { - echo $(alt_prefix)/usr/$(get_libdir) -} - -builddir() { - echo "${WORKDIR}/build-${ABI}-${CTARGET}-$1" -} - -do_compile_test() { - local ret save_cflags=${CFLAGS} - CFLAGS+=" $1" - shift - - pushd "${T}" >/dev/null - - rm -f glibc-test* - printf '%b' "$*" > glibc-test.c - - nonfatal emake glibc-test - ret=$? - - popd >/dev/null - - CFLAGS=${save_cflags} - return ${ret} -} - -do_run_test() { - local ret - - if [[ ${MERGE_TYPE} == "binary" ]] ; then - # ignore build failures when installing a binary package #324685 - do_compile_test "" "$@" 2>/dev/null || return 0 - else - if ! do_compile_test "" "$@" ; then - ewarn "Simple build failed ... assuming this is desired #324685" - return 0 - fi - fi - - pushd "${T}" >/dev/null - - ./glibc-test - ret=$? - rm -f glibc-test* - - popd >/dev/null - - return ${ret} -} - -setup_target_flags() { - # This largely mucks with compiler flags. None of which should matter - # when building up just the headers. - just_headers && return 0 - - case $(tc-arch) in - x86) - # -march needed for #185404 #199334 - # TODO: When creating the first glibc cross-compile, this test will - # always fail as it does a full link which in turn requires glibc. - # Probably also applies when changing multilib profile settings (e.g. - # enabling x86 when the profile was amd64-only previously). - # We could change main to _start and pass -nostdlib here so that we - # only test the gcc code compilation. Or we could do a compile and - # then look for the symbol via scanelf. - if ! do_compile_test "" 'void f(int i, void *p) {if (__sync_fetch_and_add(&i, 1)) f(i, p);}\nint main(){return 0;}\n'; then - local t=${CTARGET_OPT:-${CTARGET}} - t=${t%%-*} - filter-flags '-march=*' - export CFLAGS="-march=${t} ${CFLAGS}" - einfo "Auto adding -march=${t} to CFLAGS #185404" - fi - ;; - amd64) - # -march needed for #185404 #199334 - # TODO: See cross-compile issues listed above for x86. - [[ ${ABI} == x86 ]] && - if ! do_compile_test "${CFLAGS_x86}" 'void f(int i, void *p) {if (__sync_fetch_and_add(&i, 1)) f(i, p);}\nint main(){return 0;}\n'; then - local t=${CTARGET_OPT:-${CTARGET}} - t=${t%%-*} - # Normally the target is x86_64-xxx, so turn that into the -march that - # gcc actually accepts. #528708 - [[ ${t} == "x86_64" ]] && t="x86-64" - filter-flags '-march=*' - # ugly, ugly, ugly. ugly. - CFLAGS_x86=$(CFLAGS=${CFLAGS_x86} filter-flags '-march=*'; echo "${CFLAGS}") - export CFLAGS_x86="${CFLAGS_x86} -march=${t}" - einfo "Auto adding -march=${t} to CFLAGS_x86 #185404 (ABI=${ABI})" - fi - ;; - mips) - # The mips abi cannot support the GNU style hashes. #233233 - filter-ldflags -Wl,--hash-style=gnu -Wl,--hash-style=both - ;; - sparc) - # Both sparc and sparc64 can use -fcall-used-g6. -g7 is bad, though. - filter-flags "-fcall-used-g7" - append-flags "-fcall-used-g6" - - # If the CHOST is the basic one (e.g. not sparcv9-xxx already), - # try to pick a better one so glibc can use cpu-specific .S files. - # We key off the CFLAGS to get a good value. Also need to handle - # version skew. - # We can't force users to set their CHOST to their exact machine - # as many of these are not recognized by config.sub/gcc and such :(. - # Note: If the mcpu values don't scale, we might try probing CPP defines. - # Note: Should we factor in -Wa,-AvXXX flags too ? Or -mvis/etc... ? - - local cpu - case ${CTARGET} in - sparc64-*) - case $(get-flag mcpu) in - niagara[234]) - if ver_test -ge 2.8 ; then - cpu="sparc64v2" - elif ver_test -ge 2.4 ; then - cpu="sparc64v" - elif ver_test -ge 2.2.3 ; then - cpu="sparc64b" - fi - ;; - niagara) - if ver_test -ge 2.4 ; then - cpu="sparc64v" - elif ver_test -ge 2.2.3 ; then - cpu="sparc64b" - fi - ;; - ultrasparc3) - cpu="sparc64b" - ;; - *) - # We need to force at least v9a because the base build doesn't - # work with just v9. - # https://sourceware.org/bugzilla/show_bug.cgi?id=19477 - [[ -z ${cpu} ]] && append-flags "-Wa,-xarch=v9a" - ;; - esac - ;; - sparc-*) - case $(get-flag mcpu) in - niagara[234]) - if ver_test -ge 2.8 ; then - cpu="sparcv9v2" - elif ver_test -ge 2.4 ; then - cpu="sparcv9v" - elif ver_test -ge 2.2.3 ; then - cpu="sparcv9b" - else - cpu="sparcv9" - fi - ;; - niagara) - if ver_test -ge 2.4 ; then - cpu="sparcv9v" - elif ver_test -ge 2.2.3 ; then - cpu="sparcv9b" - else - cpu="sparcv9" - fi - ;; - ultrasparc3) - cpu="sparcv9b" - ;; - v9|ultrasparc) - cpu="sparcv9" - ;; - v8|supersparc|hypersparc|leon|leon3) - cpu="sparcv8" - ;; - esac - ;; - esac - [[ -n ${cpu} ]] && CTARGET_OPT="${cpu}-${CTARGET#*-}" - ;; - esac -} - -setup_flags() { - # Make sure host make.conf doesn't pollute us - if is_crosscompile || tc-is-cross-compiler ; then - CHOST=${CTARGET} strip-unsupported-flags - fi - - # Store our CFLAGS because it's changed depending on which CTARGET - # we are building when pulling glibc on a multilib profile - CFLAGS_BASE=${CFLAGS_BASE-${CFLAGS}} - CFLAGS=${CFLAGS_BASE} - CXXFLAGS_BASE=${CXXFLAGS_BASE-${CXXFLAGS}} - CXXFLAGS=${CXXFLAGS_BASE} - ASFLAGS_BASE=${ASFLAGS_BASE-${ASFLAGS}} - ASFLAGS=${ASFLAGS_BASE} - - # Allow users to explicitly avoid flag sanitization via - # USE=custom-cflags. - if ! use custom-cflags; then - # Over-zealous CFLAGS can often cause problems. What may work for one - # person may not work for another. To avoid a large influx of bugs - # relating to failed builds, we strip most CFLAGS out to ensure as few - # problems as possible. - strip-flags - # Lock glibc at -O2; we want to be conservative here. - filter-flags '-O?' - append-flags -O2 - fi - strip-unsupported-flags - filter-flags -m32 -m64 '-mabi=*' - - # glibc aborts if rpath is set by LDFLAGS - filter-ldflags '-Wl,-rpath=*' - - # #492892 - filter-flags -frecord-gcc-switches - - unset CBUILD_OPT CTARGET_OPT - if use multilib ; then - CTARGET_OPT=$(get_abi_CTARGET) - [[ -z ${CTARGET_OPT} ]] && CTARGET_OPT=$(get_abi_CHOST) - fi - - setup_target_flags - - if [[ -n ${CTARGET_OPT} && ${CBUILD} == ${CHOST} ]] && ! is_crosscompile; then - CBUILD_OPT=${CTARGET_OPT} - fi - - # glibc's headers disallow -O0 and fail at build time: - # include/libc-symbols.h:75:3: #error "glibc cannot be compiled without optimization" - replace-flags -O0 -O1 - - filter-flags '-fstack-protector*' -} - -want_tls() { - # Archs that can use TLS (Thread Local Storage) - case $(tc-arch) in - x86) - # requires i486 or better #106556 - [[ ${CTARGET} == i[4567]86* ]] && return 0 - return 1 - ;; - esac - return 0 -} - -want__thread() { - want_tls || return 1 - - # For some reason --with-tls --with__thread is causing segfaults on sparc32. - [[ ${PROFILE_ARCH} == "sparc" ]] && return 1 - - [[ -n ${WANT__THREAD} ]] && return ${WANT__THREAD} - - # only test gcc -- can't test linking yet - tc-has-tls -c ${CTARGET} - WANT__THREAD=$? - - return ${WANT__THREAD} -} - -use_multiarch() { - # Allow user to disable runtime arch detection in multilib. - use multiarch || return 1 - # Make sure binutils is new enough to support indirect functions, - # #336792. This funky sed supports gold and bfd linkers. - local bver nver - bver=$($(tc-getLD ${CTARGET}) -v | sed -n -r '1{s:[^0-9]*::;s:^([0-9.]*).*:\1:;p}') - case $(tc-arch ${CTARGET}) in - amd64|x86) nver="2.20" ;; - arm) nver="2.22" ;; - hppa) nver="2.23" ;; - ppc|ppc64) nver="2.20" ;; - # ifunc support was added in 2.23, but glibc also needs - # machinemode which is in 2.24. - s390) nver="2.24" ;; - sparc) nver="2.21" ;; - *) return 1 ;; - esac - ver_test ${bver} -ge ${nver} -} - -# Setup toolchain variables that had historically been defined in the -# profiles for these archs. -setup_env() { - # silly users - unset LD_RUN_PATH - unset LD_ASSUME_KERNEL - - if is_crosscompile || tc-is-cross-compiler ; then - multilib_env ${CTARGET_OPT:-${CTARGET}} - - if ! use multilib ; then - MULTILIB_ABIS=${DEFAULT_ABI} - else - MULTILIB_ABIS=${MULTILIB_ABIS:-${DEFAULT_ABI}} - fi - - # If the user has CFLAGS_ in their make.conf, use that, - # and fall back on CFLAGS. - local VAR=CFLAGS_${CTARGET//[-.]/_} - CFLAGS=${!VAR-${CFLAGS}} - einfo " $(printf '%15s' 'Manual CFLAGS:') ${CFLAGS}" - fi - - setup_flags - - export ABI=${ABI:-${DEFAULT_ABI:-default}} - - if just_headers ; then - # Avoid mixing host's CC and target's CFLAGS_${ABI}: - # At this bootstrap stage we have only binutils for - # target but not compiler yet. - einfo "Skip CC ABI injection. We can't use (cross-)compiler yet." - return 0 - fi - local VAR=CFLAGS_${ABI} - # We need to export CFLAGS with abi information in them because glibc's - # configure script checks CFLAGS for some targets (like mips). Keep - # around the original clean value to avoid appending multiple ABIs on - # top of each other. - : ${__GLIBC_CC:=$(tc-getCC ${CTARGET_OPT:-${CTARGET}})} - export __GLIBC_CC CC="${__GLIBC_CC} ${!VAR}" - einfo " $(printf '%15s' 'Manual CC:') ${CC}" -} - -foreach_abi() { - setup_env - - local ret=0 - local abilist="" - if use multilib ; then - abilist=$(get_install_abis) - else - abilist=${DEFAULT_ABI} - fi - local -x ABI - for ABI in ${abilist:-default} ; do - setup_env - einfo "Running $1 for ABI ${ABI}" - $1 - : $(( ret |= $? )) - done - return ${ret} -} - -glibc_banner() { - local b="Gentoo ${PVR}" - [[ -n ${PATCH_VER} ]] && ! use vanilla && b+=" p${PATCH_VER}" - echo "${b}" -} - -check_devpts() { - # Make sure devpts is mounted correctly for use w/out setuid pt_chown. - - # If merely building the binary package, then there's nothing to verify. - [[ ${MERGE_TYPE} == "buildonly" ]] && return - - # Only sanity check when installing the native glibc. - [[ -n ${ROOT} ]] && return - - # If they're opting in to the old suid code, then no need to check. - use suid && return - - if awk '$3 == "devpts" && $4 ~ /[, ]gid=5[, ]/ { exit 1 }' /proc/mounts ; then - eerror "In order to use glibc with USE=-suid, you must make sure that" - eerror "you have devpts mounted at /dev/pts with the gid=5 option." - eerror "Openrc should do this for you, so you should check /etc/fstab" - eerror "and make sure you do not have any invalid settings there." - die "mount & fix your /dev/pts settings" - fi -} - -# The following Kernel version handling functions are mostly copied from portage -# source. It's better not to use linux-info.eclass here since a) it adds too -# much magic, see bug 326693 for some of the arguments, and b) some of the -# functions are just not provided. - -g_get_running_KV() { - uname -r - return $? -} - -g_KV_major() { - [[ -z $1 ]] && return 1 - local KV=$@ - echo "${KV%%.*}" -} - -g_KV_minor() { - [[ -z $1 ]] && return 1 - local KV=$@ - KV=${KV#*.} - echo "${KV%%.*}" -} - -g_KV_micro() { - [[ -z $1 ]] && return 1 - local KV=$@ - KV=${KV#*.*.} - echo "${KV%%[^[:digit:]]*}" -} - -g_KV_to_int() { - [[ -z $1 ]] && return 1 - local KV_MAJOR=$(g_KV_major "$1") - local KV_MINOR=$(g_KV_minor "$1") - local KV_MICRO=$(g_KV_micro "$1") - local KV_int=$(( KV_MAJOR * 65536 + KV_MINOR * 256 + KV_MICRO )) - - # We make version 2.2.0 the minimum version we will handle as - # a sanity check ... if its less, we fail ... - if [[ ${KV_int} -ge 131584 ]] ; then - echo "${KV_int}" - return 0 - fi - return 1 -} - -g_int_to_KV() { - local version=$1 major minor micro - major=$((version / 65536)) - minor=$(((version % 65536) / 256)) - micro=$((version % 256)) - echo ${major}.${minor}.${micro} -} - -eend_KV() { - [[ $(g_KV_to_int $1) -ge $(g_KV_to_int $2) ]] - eend $? -} - -get_kheader_version() { - printf '#include \nLINUX_VERSION_CODE\n' | \ - $(tc-getCPP ${CTARGET}) -I "$(build_eprefix)$(alt_build_headers)" - | \ - tail -n 1 -} - -# We collect all sanity checks here. Consistency is not guranteed between -# pkg_ and src_ phases, so we call this function both in pkg_pretend and in -# src_unpack. -sanity_prechecks() { - # Make sure devpts is mounted correctly for use w/out setuid pt_chown - check_devpts - - # Prevent native builds from downgrading - if [[ ${MERGE_TYPE} != "buildonly" ]] && \ - [[ -z ${ROOT} ]] && \ - [[ ${CBUILD} == ${CHOST} ]] && \ - [[ ${CHOST} == ${CTARGET} ]] ; then - - # The high rev # is to allow people to downgrade between -r# - # versions. We want to block 2.20->2.19, but 2.20-r3->2.20-r2 - # should be fine. Hopefully we never actually use a r# this - # high. - if has_version ">${CATEGORY}/${P}-r10000" ; then - eerror "Sanity check to keep you from breaking your system:" - eerror " Downgrading glibc is not supported and a sure way to destruction." - [[ ${I_ALLOW_TO_BREAK_MY_SYSTEM} = yes ]] || die "Aborting to save your system." - fi - - if ! do_run_test '#include \n#include \nint main(){return syscall(1000)!=-1;}\n' ; then - eerror "Your old kernel is broken. You need to update it to a newer" - eerror "version as syscall() will break. See bug 279260." - die "Old and broken kernel." - fi - fi - - # Users have had a chance to phase themselves, time to give em the boot - if [[ -e ${EROOT}/etc/locale.gen ]] && [[ -e ${EROOT}/etc/locales.build ]] ; then - eerror "You still haven't deleted ${EROOT}/etc/locales.build." - eerror "Do so now after making sure ${EROOT}/etc/locale.gen is kosher." - die "Lazy upgrader detected" - fi - - if [[ ${CTARGET} == i386-* ]] ; then - eerror "i386 CHOSTs are no longer supported." - eerror "Chances are you don't actually want/need i386." - eerror "Please read https://www.gentoo.org/doc/en/change-chost.xml" - die "Please fix your CHOST" - fi - - if [[ -e /proc/xen ]] && [[ $(tc-arch) == "x86" ]] && ! is-flag -mno-tls-direct-seg-refs ; then - ewarn "You are using Xen but don't have -mno-tls-direct-seg-refs in your CFLAGS." - ewarn "This will result in a 50% performance penalty when running with a 32bit" - ewarn "hypervisor, which is probably not what you want." - fi - - # Check for sanity of /etc/nsswitch.conf - if [[ -e ${EROOT}/etc/nsswitch.conf ]] ; then - local entry - for entry in passwd group shadow; do - if ! egrep -q "^[ \t]*${entry}:.*files" "${EROOT}"/etc/nsswitch.conf; then - eerror "Your ${EROOT}/etc/nsswitch.conf is out of date." - eerror "Please make sure you have 'files' entries for" - eerror "'passwd:', 'group:' and 'shadow:' databases." - eerror "For more details see:" - eerror " https://wiki.gentoo.org/wiki/Project:Toolchain/nsswitch.conf_in_glibc-2.26" - die "nsswitch.conf has no 'files' provider in '${entry}'." - fi - done - fi - - # ABI-specific checks follow here. Hey, we have a lot more specific conditions that - # we test for... - if ! is_crosscompile ; then - if use amd64 && use multilib && [[ ${MERGE_TYPE} != "binary" ]] ; then - ebegin "Checking that IA32 emulation is enabled in the running kernel" - echo 'int main(){return 0;}' > "${T}/check-ia32-emulation.c" - local STAT - if "${CC-${CHOST}-gcc}" ${CFLAGS_x86} "${T}/check-ia32-emulation.c" -o "${T}/check-ia32-emulation.elf32"; then - "${T}/check-ia32-emulation.elf32" - STAT=$? - else - # Don't fail here to allow single->multi ABI switch - # or recover from breakage like bug #646424 - ewarn "Failed to compile the ABI test. Broken host glibc?" - STAT=0 - fi - rm -f "${T}/check-ia32-emulation.elf32" - eend $STAT - [[ $STAT -eq 0 ]] || die "CONFIG_IA32_EMULATION must be enabled in the kernel to compile a multilib glibc." - fi - - fi - - # When we actually have to compile something... - if ! just_headers ; then - ebegin "Checking gcc for __thread support" - if ! eend $(want__thread ; echo $?) ; then - echo - eerror "Could not find a gcc that supports the __thread directive!" - eerror "Please update your binutils/gcc and try again." - die "No __thread support in gcc!" - fi - - if [[ ${CTARGET} == *-linux* ]] ; then - local run_kv build_kv want_kv - - run_kv=$(g_get_running_KV) - build_kv=$(g_int_to_KV $(get_kheader_version)) - want_kv=${MIN_KERN_VER} - - if ! is_crosscompile && ! tc-is-cross-compiler ; then - # Building fails on an non-supporting kernel - ebegin "Checking running kernel version (${run_kv} >= ${want_kv})" - if ! eend_KV ${run_kv} ${want_kv} ; then - echo - eerror "You need a kernel of at least ${want_kv}!" - die "Kernel version too low!" - fi - fi - - ebegin "Checking linux-headers version (${build_kv} >= ${want_kv})" - if ! eend_KV ${build_kv} ${want_kv} ; then - echo - eerror "You need linux-headers of at least ${want_kv}!" - die "linux-headers version too low!" - fi - fi - fi -} - -# -# the phases -# - -# pkg_pretend - -pkg_pretend() { - # All the checks... - einfo "Checking general environment sanity." - sanity_prechecks -} - -pkg_setup() { - # see bug 682570 - [[ -z ${BOOTSTRAP_RAP} ]] && python-any-r1_pkg_setup -} - -# src_unpack - -src_unpack() { - # Consistency is not guaranteed between pkg_ and src_ ... - sanity_prechecks - - use multilib && unpack gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}.tar.xz - - setup_env - - if [[ -n ${EGIT_REPO_URI} ]] ; then - git-r3_src_unpack - else - unpack ${P}.tar.xz - fi - - cd "${WORKDIR}" || die - unpack glibc-${RELEASE_VER}-patches-${PATCH_VER}.tar.xz -} - -src_prepare() { - if ! use vanilla ; then - elog "Applying Gentoo Glibc Patchset ${RELEASE_VER}-${PATCH_VER}" - eapply "${WORKDIR}"/patches - einfo "Done." - fi - - default - - gnuconfig_update - - cd "${WORKDIR}" - find . -name configure -exec touch {} + - - eprefixify extra/locale/locale-gen - - # Fix permissions on some of the scripts. - chmod u+x "${S}"/scripts/*.sh - - cd "${S}" -} - -glibc_do_configure() { - # Glibc does not work with gold (for various reasons) #269274. - tc-ld-disable-gold - - # CXX isnt handled by the multilib system, so if we dont unset here - # we accumulate crap across abis - unset CXX - - einfo "Configuring glibc for nptl" - - if use doc ; then - export MAKEINFO=makeinfo - else - export MAKEINFO=/dev/null - fi - - local v - for v in ABI CBUILD CHOST CTARGET CBUILD_OPT CTARGET_OPT CC CXX LD {AS,C,CPP,CXX,LD}FLAGS MAKEINFO ; do - einfo " $(printf '%15s' ${v}:) ${!v}" - done - - # CFLAGS can contain ABI-specific flags like -mfpu=neon, see bug #657760 - # To build .S (assembly) files with the same ABI-specific flags - # upstream currently recommends adding CFLAGS to CC/CXX: - # https://sourceware.org/PR23273 - # Note: Passing CFLAGS via CPPFLAGS overrides glibc's arch-specific CFLAGS - # and breaks multiarch support. See 659030#c3 for an example. - # The glibc configure script doesn't properly use LDFLAGS all the time. - export CC="$(tc-getCC ${CTARGET}) ${CFLAGS} ${LDFLAGS}" - einfo " $(printf '%15s' 'Manual CC:') ${CC}" - - # Some of the tests are written in C++, so we need to force our multlib abis in, bug 623548 - export CXX="$(tc-getCXX ${CTARGET}) $(get_abi_CFLAGS) ${CFLAGS}" - - if is_crosscompile; then - # Assume worst-case bootstrap: glibc is buil first time - # when ${CTARGET}-g++ is not available yet. We avoid - # building auxiliary programs that require C++: bug #683074 - # It should not affect final result. - export libc_cv_cxx_link_ok=no - # The line above has the same effect. We set CXX explicitly - # to make build logs less confusing. - export CXX= - fi - einfo " $(printf '%15s' 'Manual CXX:') ${CXX}" - - echo - - local myconf=() - - case ${CTARGET} in - m68k*) - # setjmp() is not compatible with stack protection: - # https://sourceware.org/PR24202 - myconf+=( --enable-stack-protector=no ) - ;; - powerpc-*) - # Currently gcc on powerpc32 generates invalid code for - # __builtin_return_address(0) calls. Normally programs - # don't do that but malloc hooks in glibc do: - # https://gcc.gnu.org/PR81996 - # https://bugs.gentoo.org/629054 - myconf+=( --enable-stack-protector=no ) - ;; - *) - myconf+=( --enable-stack-protector=$(usex ssp all no) ) - ;; - esac - myconf+=( --enable-stackguard-randomization ) - - # Keep a whitelist of targets supporing IFUNC. glibc's ./configure - # is not robust enough to detect proper support: - # https://bugs.gentoo.org/641216 - # https://sourceware.org/PR22634#c0 - case $(tc-arch ${CTARGET}) in - # Keep whitelist of targets where autodetection mostly works. - amd64|x86|sparc|ppc|ppc64|arm|arm64|s390) ;; - # Blacklist everywhere else - *) myconf+=( libc_cv_ld_gnu_indirect_function=no ) ;; - esac - - # Enable Intel Control-flow Enforcement Technology on amd64 if requested - case ${CTARGET} in - x86_64-*) myconf+=( $(use_enable cet) ) ;; - *) ;; - esac - - [[ $(tc-is-softfloat) == "yes" ]] && myconf+=( --without-fp ) - - myconf+=( --enable-kernel=${MIN_KERN_VER} ) - - # Since SELinux support is only required for nscd, only enable it if: - # 1. USE selinux - # 2. only for the primary ABI on multilib systems - # 3. Not a crosscompile - if ! is_crosscompile && use selinux ; then - if use multilib ; then - if is_final_abi ; then - myconf+=( --with-selinux ) - else - myconf+=( --without-selinux ) - fi - else - myconf+=( --with-selinux ) - fi - else - myconf+=( --without-selinux ) - fi - - # Force a few tests where we always know the answer but - # configure is incapable of finding it. - if is_crosscompile ; then - export \ - libc_cv_c_cleanup=yes \ - libc_cv_forced_unwind=yes - fi - - myconf+=( - --without-cvs - --disable-werror - --enable-bind-now - --build=${CBUILD_OPT:-${CBUILD}} - --host=${CTARGET_OPT:-${CTARGET}} - $(use_enable profile) - $(use_with gd) - --with-headers=$(build_eprefix)$(alt_build_headers) - --prefix="$(host_eprefix)/usr" - --sysconfdir="$(host_eprefix)/etc" - --localstatedir="$(host_eprefix)/var" - --libdir='$(prefix)'/$(get_libdir) - --mandir='$(prefix)'/share/man - --infodir='$(prefix)'/share/info - --libexecdir='$(libdir)'/misc/glibc - --with-bugurl=https://bugs.gentoo.org/ - --with-pkgversion="$(glibc_banner)" - $(use_enable crypt) - $(use_multiarch || echo --disable-multi-arch) - $(use_enable systemtap) - $(use_enable nscd) - ${EXTRA_ECONF} - ) - - # We rely on sys-libs/timezone-data for timezone tools normally. - myconf+=( $(use_enable vanilla timezone-tools) ) - - # These libs don't have configure flags. - ac_cv_lib_audit_audit_log_user_avc_message=$(usex audit || echo no) - ac_cv_lib_cap_cap_init=$(usex caps || echo no) - - # There is no configure option for this and we need to export it - # since the glibc build will re-run configure on itself - export libc_cv_rootsbindir="$(host_eprefix)/sbin" - export libc_cv_slibdir="$(host_eprefix)/$(get_libdir)" - - # We take care of patching our binutils to use both hash styles, - # and many people like to force gnu hash style only, so disable - # this overriding check. #347761 - export libc_cv_hashstyle=no - - local builddir=$(builddir nptl) - mkdir -p "${builddir}" - cd "${builddir}" - set -- "${S}"/configure "${myconf[@]}" - echo "$@" - "$@" || die "failed to configure glibc" - - # ia64 static cross-compilers are a pita in so much that they - # can't produce static ELFs (as the libgcc.a is broken). so - # disable building of the programs for those targets if it - # doesn't work. - # XXX: We could turn this into a compiler test, but ia64 is - # the only one that matters, so this should be fine for now. - if is_crosscompile && [[ ${CTARGET} == ia64* ]] ; then - sed -i '1i+link-static = touch $@' config.make - fi - - # If we're trying to migrate between ABI sets, we need - # to lie and use a local copy of gcc. Like if the system - # is built with MULTILIB_ABIS="amd64 x86" but we want to - # add x32 to it, gcc/glibc don't yet support x32. - # - if [[ -n ${GCC_BOOTSTRAP_VER} ]] && use multilib ; then - echo 'main(){}' > "${T}"/test.c - if ! $(tc-getCC ${CTARGET}) ${CFLAGS} ${LDFLAGS} "${T}"/test.c -Wl,-emain -lgcc 2>/dev/null ; then - sed -i -e '/^CC = /s:$: -B$(objdir)/../'"gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}/${ABI}:" config.make || die - fi - fi -} - -glibc_headers_configure() { - export ABI=default - - local builddir=$(builddir "headers") - mkdir -p "${builddir}" - cd "${builddir}" - - # if we don't have a compiler yet, we can't really test it now ... - # hopefully they don't affect header generation, so let's hope for - # the best here ... - local v vars=( - ac_cv_header_cpuid_h=yes - libc_cv_{386,390,alpha,arm,hppa,ia64,mips,{powerpc,sparc}{,32,64},sh,x86_64}_tls=yes - libc_cv_asm_cfi_directives=yes - libc_cv_broken_visibility_attribute=no - libc_cv_c_cleanup=yes - libc_cv_compiler_powerpc64le_binary128_ok=yes - libc_cv_forced_unwind=yes - libc_cv_gcc___thread=yes - libc_cv_mlong_double_128=yes - libc_cv_mlong_double_128ibm=yes - libc_cv_ppc_machine=yes - libc_cv_ppc_rel16=yes - libc_cv_predef_fortify_source=no - libc_cv_target_power8_ok=yes - libc_cv_visibility_attribute=yes - libc_cv_z_combreloc=yes - libc_cv_z_execstack=yes - libc_cv_z_initfirst=yes - libc_cv_z_nodelete=yes - libc_cv_z_nodlopen=yes - libc_cv_z_relro=yes - libc_mips_abi=${ABI} - libc_mips_float=$([[ $(tc-is-softfloat) == "yes" ]] && echo soft || echo hard) - # These libs don't have configure flags. - ac_cv_lib_audit_audit_log_user_avc_message=no - ac_cv_lib_cap_cap_init=no - ) - - einfo "Forcing cached settings:" - for v in "${vars[@]}" ; do - einfo " ${v}" - export ${v} - done - - local headers_only_arch_CPPFLAGS=() - - # Blow away some random CC settings that screw things up. #550192 - if [[ -d ${S}/sysdeps/mips ]]; then - pushd "${S}"/sysdeps/mips >/dev/null - sed -i -e '/^CC +=/s:=.*:= -D_MIPS_SZPTR=32:' mips32/Makefile mips64/n32/Makefile || die - sed -i -e '/^CC +=/s:=.*:= -D_MIPS_SZPTR=64:' mips64/n64/Makefile || die - - # Force the mips ABI to the default. This is OK because the set of - # installed headers in this phase is the same between the 3 ABIs. - # If this ever changes, this hack will break, but that's unlikely - # as glibc discourages that behavior. - # https://crbug.com/647033 - sed -i -e 's:abiflag=.*:abiflag=_ABIO32:' preconfigure || die - - popd >/dev/null - fi - - case ${CTARGET} in - riscv*) - # RISC-V interrogates the compiler to determine which target to - # build. If building the headers then we don't strictly need a - # RISC-V compiler, so the built-in definitions that are provided - # along with all RISC-V compiler might not exist. This causes - # glibc's RISC-V preconfigure script to blow up. Since we're just - # building the headers any value will actually work here, so just - # pick the standard one (rv64g/lp64d) to make the build scripts - # happy for now -- the headers are all the same anyway so it - # doesn't matter. - headers_only_arch_CPPFLAGS+=( - -D__riscv_xlen=64 - -D__riscv_flen=64 - -D__riscv_float_abi_double=1 - -D__riscv_atomic=1 - ) ;; - esac - - local myconf=() - myconf+=( - --disable-sanity-checks - --enable-hacker-mode - --without-cvs - --disable-werror - --enable-bind-now - --build=${CBUILD_OPT:-${CBUILD}} - --host=${CTARGET_OPT:-${CTARGET}} - --with-headers=$(build_eprefix)$(alt_build_headers) - --prefix="$(host_eprefix)/usr" - ${EXTRA_ECONF} - ) - - # Nothing is compiled here which would affect the headers for the target. - # So forcing CC/CFLAGS is sane. - local headers_only_CC=$(tc-getBUILD_CC) - local headers_only_CFLAGS="-O1 -pipe" - local headers_only_CPPFLAGS="-U_FORTIFY_SOURCE ${headers_only_arch_CPPFLAGS[*]}" - local headers_only_LDFLAGS="" - set -- "${S}"/configure "${myconf[@]}" - echo \ - "CC=${headers_only_CC}" \ - "CFLAGS=${headers_only_CFLAGS}" \ - "CPPFLAGS=${headers_only_CPPFLAGS}" \ - "LDFLAGS=${headers_only_LDFLAGS}" \ - "$@" - CC=${headers_only_CC} \ - CFLAGS=${headers_only_CFLAGS} \ - CPPFLAGS=${headers_only_CPPFLAGS} \ - LDFLAGS="" \ - "$@" || die "failed to configure glibc" -} - -do_src_configure() { - if just_headers ; then - glibc_headers_configure - else - glibc_do_configure nptl - fi -} - -src_configure() { - foreach_abi do_src_configure -} - -do_src_compile() { - emake -C "$(builddir nptl)" -} - -src_compile() { - if just_headers ; then - return - fi - - foreach_abi do_src_compile -} - -glibc_src_test() { - cd "$(builddir nptl)" - emake check -} - -do_src_test() { - local ret=0 - - glibc_src_test - : $(( ret |= $? )) - - return ${ret} -} - -src_test() { - if just_headers ; then - return - fi - - # Give tests more time to complete. - export TIMEOUTFACTOR=5 - - foreach_abi do_src_test || die "tests failed" -} - -run_locale_gen() { - # if the host locales.gen contains no entries, we'll install everything - local root="$1" - local inplace="" - - if [[ "${root}" == "--inplace-glibc" ]] ; then - inplace="--inplace-glibc" - root="$2" - fi - - local locale_list="${root}/etc/locale.gen" - - pushd "${ED}"/$(get_libdir) >/dev/null - - if [[ -z $(locale-gen --list --config "${locale_list}") ]] ; then - [[ -z ${inplace} ]] && ewarn "Generating all locales; edit /etc/locale.gen to save time/space" - locale_list="${root}/usr/share/i18n/SUPPORTED" - fi - - set -- locale-gen ${inplace} --jobs $(makeopts_jobs) --config "${locale_list}" \ - --destdir "${root}" - echo "$@" - "$@" - - popd >/dev/null -} - -glibc_do_src_install() { - local builddir=$(builddir nptl) - cd "${builddir}" - - emake install_root="${D}/$(build_eprefix)$(alt_prefix)" install - - # This version (2.26) provides some compatibility libraries for the NIS/NIS+ support - # which come without headers etc. Only needed for binary packages since the - # external net-libs/libnsl has increased soversion. Keep only versioned libraries. - find "${D}" -name "libnsl.a" -delete - find "${D}" -name "libnsl.so" -delete - - # Normally upstream_pv is ${PV}. Live ebuilds are exception, there we need - # to infer upstream version: - # '#define VERSION "2.26.90"' -> '2.26.90' - local upstream_pv=$(sed -n -r 's/#define VERSION "(.*)"/\1/p' "${S}"/version.h) - - # Avoid stripping binaries not targeted by ${CHOST}. Or else - # ${CHOST}-strip would break binaries build for ${CTARGET}. - is_crosscompile && dostrip -x / - # gdb thread introspection relies on local libpthreas symbols. stripping breaks it - # See Note [Disable automatic stripping] - dostrip -x $(alt_libdir)/libpthread-${upstream_pv}.so - - if [[ -e ${ED}/$(alt_usrlibdir)/libm-${upstream_pv}.a ]] ; then - # Move versioned .a file out of libdir to evade portage QA checks - # instead of using gen_usr_ldscript(). We fix ldscript as: - # "GROUP ( /usr/lib64/libm-.a ..." -> "GROUP ( /usr/lib64/glibc-/libm-.a ..." - sed -i "s@\(libm-${upstream_pv}.a\)@${P}/\1@" "${ED}"/$(alt_usrlibdir)/libm.a || die - dodir $(alt_usrlibdir)/${P} - mv "${ED}"/$(alt_usrlibdir)/libm-${upstream_pv}.a "${ED}"/$(alt_usrlibdir)/${P}/libm-${upstream_pv}.a || die - fi - - # We'll take care of the cache ourselves - rm -f "${ED}"/etc/ld.so.cache - - # Everything past this point just needs to be done once ... - is_final_abi || return 0 - - # Make sure the non-native interp can be found on multilib systems even - # if the main library set isn't installed into the right place. Maybe - # we should query the active gcc for info instead of hardcoding it ? - local i ldso_abi ldso_name - local ldso_abi_list=( - # x86 - amd64 /lib64/ld-linux-x86-64.so.2 - x32 /libx32/ld-linux-x32.so.2 - x86 /lib/ld-linux.so.2 - # mips - o32 /lib/ld.so.1 - n32 /lib32/ld.so.1 - n64 /lib64/ld.so.1 - # powerpc - ppc /lib/ld.so.1 - ppc64 /lib64/ld64.so.1 - # riscv - lp64d /lib/ld-linux-riscv64-lp64d.so.1 - lp64 /lib/ld-linux-riscv64-lp64.so.1 - # s390 - s390 /lib/ld.so.1 - s390x /lib/ld64.so.1 - # sparc - sparc32 /lib/ld-linux.so.2 - sparc64 /lib64/ld-linux.so.2 - ) - case $(tc-endian) in - little) - ldso_abi_list+=( - # arm - arm64 /lib/ld-linux-aarch64.so.1 - ) - ;; - big) - ldso_abi_list+=( - # arm - arm64 /lib/ld-linux-aarch64_be.so.1 - ) - ;; - esac - if [[ ${SYMLINK_LIB} == "yes" ]] && [[ ! -e ${ED}/$(alt_prefix)/lib ]] ; then - dosym $(get_abi_LIBDIR ${DEFAULT_ABI}) $(alt_prefix)/lib - fi - for (( i = 0; i < ${#ldso_abi_list[@]}; i += 2 )) ; do - ldso_abi=${ldso_abi_list[i]} - has ${ldso_abi} $(get_install_abis) || continue - - ldso_name="$(alt_prefix)${ldso_abi_list[i+1]}" - if [[ ! -L ${ED}/${ldso_name} && ! -e ${ED}/${ldso_name} ]] ; then - dosym ../$(get_abi_LIBDIR ${ldso_abi})/${ldso_name##*/} ${ldso_name} - fi - done - - # With devpts under Linux mounted properly, we do not need the pt_chown - # binary to be setuid. This is because the default owners/perms will be - # exactly what we want. - if ! use suid ; then - find "${ED}" -name pt_chown -exec chmod -s {} + - fi - - ################################################################# - # EVERYTHING AFTER THIS POINT IS FOR NATIVE GLIBC INSTALLS ONLY # - # Make sure we install some symlink hacks so that when we build - # a 2nd stage cross-compiler, gcc finds the target system - # headers correctly. See gcc/doc/gccinstall.info - if is_crosscompile ; then - # We need to make sure that /lib and /usr/lib always exists. - # gcc likes to use relative paths to get to its multilibs like - # /usr/lib/../lib64/. So while we don't install any files into - # /usr/lib/, we do need it to exist. - keepdir $(alt_prefix)/lib - keepdir $(alt_prefix)/usr/lib - - dosym usr/include $(alt_prefix)/sys-include - return 0 - fi - - # Files for Debian-style locale updating - dodir /usr/share/i18n - sed \ - -e "/^#/d" \ - -e "/SUPPORTED-LOCALES=/d" \ - -e "s: \\\\::g" -e "s:/: :g" \ - "${S}"/localedata/SUPPORTED > "${ED}"/usr/share/i18n/SUPPORTED \ - || die "generating /usr/share/i18n/SUPPORTED failed" - cd "${WORKDIR}"/extra/locale - dosbin locale-gen - doman *.[0-8] - insinto /etc - doins locale.gen - - # Make sure all the ABI's can find the locales and so we only - # have to generate one set - local a - keepdir /usr/$(get_libdir)/locale - for a in $(get_install_abis) ; do - if [[ ! -e ${ED}/usr/$(get_abi_LIBDIR ${a})/locale ]] ; then - dosym ../$(get_libdir)/locale /usr/$(get_abi_LIBDIR ${a})/locale - fi - done - - # HACK: If we're building for riscv, we need to additionally make sure that - # we can find the locale archive afterwards - case ${CTARGET} in - riscv*) - if [[ ! -e ${ED}/usr/lib/locale ]] ; then - dosym ../$(get_libdir)/locale /usr/lib/locale - fi - ;; - *) ;; - esac - - cd "${S}" - - # Install misc network config files - insinto /etc - doins nscd/nscd.conf posix/gai.conf nss/nsswitch.conf - doins "${WORKDIR}"/extra/etc/*.conf - - if use nscd ; then - doinitd "$(prefixify_ro "${WORKDIR}"/extra/etc/nscd)" - - local nscd_args=( - -e "s:@PIDFILE@:$(strings "${ED}"/usr/sbin/nscd | grep nscd.pid):" - ) - - sed -i "${nscd_args[@]}" "${ED}"/etc/init.d/nscd - - systemd_dounit nscd/nscd.service - systemd_newtmpfilesd nscd/nscd.tmpfiles nscd.conf - else - # Do this since extra/etc/*.conf above might have nscd.conf. - rm -f "${ED}"/etc/nscd.conf - fi - - echo 'LDPATH="include ld.so.conf.d/*.conf"' > "${T}"/00glibc - doenvd "${T}"/00glibc - - for d in BUGS ChangeLog CONFORMANCE FAQ NEWS NOTES PROJECTS README* ; do - [[ -s ${d} ]] && dodoc ${d} - done - dodoc -r ChangeLog.old - - # Prevent overwriting of the /etc/localtime symlink. We'll handle the - # creation of the "factory" symlink in pkg_postinst(). - rm -f "${ED}"/etc/localtime - - # Generate all locales if this is a native build as locale generation - if use compile-locales && ! is_crosscompile ; then - run_locale_gen --inplace-glibc "${ED}/" - sed -e 's:COMPILED_LOCALES="":COMPILED_LOCALES="1":' -i "${ED}"/usr/sbin/locale-gen || die - fi -} - -glibc_headers_install() { - local builddir=$(builddir "headers") - cd "${builddir}" - emake install_root="${D}/$(build_eprefix)$(alt_prefix)" install-headers - - insinto $(alt_headers)/gnu - doins "${S}"/include/gnu/stubs.h - - # Make sure we install the sys-include symlink so that when - # we build a 2nd stage cross-compiler, gcc finds the target - # system headers correctly. See gcc/doc/gccinstall.info - dosym usr/include $(alt_prefix)/sys-include -} - -src_install() { - if just_headers ; then - export ABI=default - glibc_headers_install - return - fi - - foreach_abi glibc_do_src_install - - if ! use static-libs ; then - elog "Not installing static glibc libraries" - find "${ED}" -name "*.a" -and -not -name "*_nonshared.a" -delete - fi -} - -# Simple test to make sure our new glibc isn't completely broken. -# Make sure we don't test with statically built binaries since -# they will fail. Also, skip if this glibc is a cross compiler. -# -# If coreutils is built with USE=multicall, some of these files -# will just be wrapper scripts, not actual ELFs we can test. -glibc_sanity_check() { - cd / #228809 - - # We enter ${ED} so to avoid trouble if the path contains - # special characters; for instance if the path contains the - # colon character (:), then the linker will try to split it - # and look for the libraries in an unexpected place. This can - # lead to unsafe code execution if the generated prefix is - # within a world-writable directory. - # (e.g. /var/tmp/portage:${HOSTNAME}) - pushd "${ED}"/$(get_libdir) >/dev/null - - local x striptest - for x in cal date env free ls true uname uptime ; do - x=$(type -p ${x}) - [[ -z ${x} || ${x} != ${EPREFIX}/* ]] && continue - striptest=$(LC_ALL="C" file -L ${x} 2>/dev/null) || continue - case ${striptest} in - *"statically linked"*) continue;; - *"ASCII text"*) continue;; - esac - # We need to clear the locale settings as the upgrade might want - # incompatible locale data. This test is not for verifying that. - LC_ALL=C \ - ./ld-*.so --library-path . ${x} > /dev/null \ - || die "simple run test (${x}) failed" - done - - popd >/dev/null -} - -pkg_preinst() { - # nothing to do if just installing headers - just_headers && return - - # prepare /etc/ld.so.conf.d/ for files - mkdir -p "${EROOT}"/etc/ld.so.conf.d - - # Default /etc/hosts.conf:multi to on for systems with small dbs. - if [[ $(wc -l < "${EROOT}"/etc/hosts) -lt 1000 ]] ; then - sed -i '/^multi off/s:off:on:' "${ED}"/etc/host.conf - einfo "Defaulting /etc/host.conf:multi to on" - fi - - [[ -n ${ROOT} ]] && return 0 - [[ -d ${ED}/$(get_libdir) ]] || return 0 - [[ -z ${BOOTSTRAP_RAP} ]] && glibc_sanity_check -} - -pkg_postinst() { - # nothing to do if just installing headers - just_headers && return - - if ! tc-is-cross-compiler && [[ -x ${EROOT}/usr/sbin/iconvconfig ]] ; then - # Generate fastloading iconv module configuration file. - "${EROOT}"/usr/sbin/iconvconfig --prefix="${ROOT}/" - fi - - if ! is_crosscompile && [[ -z ${ROOT} ]] ; then - use compile-locales || run_locale_gen "${EROOT}/" - fi - - # Check for sanity of /etc/nsswitch.conf, take 2 - if [[ -e ${EROOT}/etc/nsswitch.conf ]] && ! has_version sys-auth/libnss-nis ; then - local entry - for entry in passwd group shadow; do - if egrep -q "^[ \t]*${entry}:.*nis" "${EROOT}"/etc/nsswitch.conf; then - ewarn "" - ewarn "Your ${EROOT}/etc/nsswitch.conf uses NIS. Support for that has been" - ewarn "removed from glibc and is now provided by the package" - ewarn " sys-auth/libnss-nis" - ewarn "Install it now to keep your NIS setup working." - ewarn "" - fi - done - fi -} diff --git a/sys-libs/glibc/glibc-9999.ebuild b/sys-libs/glibc/glibc-9999.ebuild index fb9790efbb56..ca7219535589 100644 --- a/sys-libs/glibc/glibc-9999.ebuild +++ b/sys-libs/glibc/glibc-9999.ebuild @@ -29,12 +29,12 @@ RELEASE_VER=${PV} GCC_BOOTSTRAP_VER=20180511 # Gentoo patchset -PATCH_VER=15 +PATCH_VER=16 SRC_URI+=" https://dev.gentoo.org/~slyfox/distfiles/${P}-patches-${PATCH_VER}.tar.xz" SRC_URI+=" multilib? ( https://dev.gentoo.org/~dilfridge/distfiles/gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}.tar.xz )" -IUSE="audit caps cet compile-locales +crypt custom-cflags doc gd headers-only +multiarch multilib nscd profile selinux +ssp +static-libs suid systemtap test vanilla" +IUSE="audit caps cet compile-locales +crypt custom-cflags doc gd headers-only +multiarch multilib nscd profile selinux +ssp +static-libs static-pie suid systemtap test vanilla" # Minimum kernel version that glibc requires MIN_KERN_VER="3.2.0" @@ -89,7 +89,6 @@ BDEPEND=" >=app-misc/pax-utils-0.1.10 sys-devel/bison !Build, and enable support for, the Name Service Cache Daemon Enable obsolete RPC/NIS layers protect stack of glibc internals + Enable static PIE support (runtime files for -static-pie gcc option). Make internal pt_chown helper setuid -- not needed if using Linux and have /dev/pts mounted with gid=5 enable systemtap static probe points diff --git a/sys-libs/gpm/Manifest b/sys-libs/gpm/Manifest index b7516d39644c..44f978975020 100644 --- a/sys-libs/gpm/Manifest +++ b/sys-libs/gpm/Manifest @@ -6,5 +6,5 @@ AUX gpm.rc6-2 553 BLAKE2B 609a2fe28fc0539e50eed703e2ed6c5a37d98737add953fe4f7d7a AUX gpm.service 218 BLAKE2B 728726976390bb394d479e424d5c1fafb9bc17d00e23a90218991527326c3fe88eb8d37b84707febbf28017ecaf5ec3559534e9d0571bfd100beec8c60ac25c0 SHA512 b3b258a2b0ed42256b16ae05e9c13baa3bca0d6d9d5d1ef489e2f8fbfc2a6a4d8f570a595f50f79fba9ad94ad3acbf0dfe098887f0ce799006916a08101f5bc2 DIST gpm-1.20.7-docs.patch.xz 41668 BLAKE2B cab4649d0eda83c37474b68ac141fab84cbfaac4e18f0f42ad7c0a90d14bc39697b17c450e8a8dc8b1c960f6d9e7ff344ec15791df240f61a27ccfcd7d0a9171 SHA512 6cdcad70d0a77a56cb507330ff8409155de11255b5e61fb92ee439c1e117932c346df475f4187abb0e348ee4c28fa235a9693883b1c36913e91404662df272f4 DIST gpm-1.20.7.tar.lzma 789691 BLAKE2B 5dbceedaa330d5f1ead8b2267fb5844cfd284627e085edd784a72365830a700f9a6a97f96afb4aa00a44ddbae735ef23be7eafc97a65f6250d72e15b359486c7 SHA512 a502741e2f457b47e41c6d155b1f7ef7c95384fd394503f82ddacf80cde9cdc286c906c77be12b6af8565ef1c3ab24d226379c1dcebcfcd15d64bcf3e94b63b9 -EBUILD gpm-1.20.7-r2.ebuild 2279 BLAKE2B f2eab7ac3e2e0cb9850f655c1a809488ced2f303f1f73139ad4ba5826c902bb33675bf66eb92848ccefc414fbffdc8008f17817577f6eeb952b64bf424490838 SHA512 d7f91f90cac9b51433c8e089ac813a04559afb1cc7da3860921b7cc484cc0a054026b3c9d3dc4f46a8fef51e4e5ec6ddce4834be630f7c4740d6dec15b61a545 +EBUILD gpm-1.20.7-r2.ebuild 2277 BLAKE2B 2f464f388486ddd0fe9c1e9648024466cfc14d9cec8fbc06501e3bc65fa5e78506321ff6fe6ad060f2bc76d80da7893967ba87643d53fb780d215d5e11bda0f1 SHA512 8d2e932e64f8b14abda837f82744217e075ee5f72d62e43092cc2e120fb7fae598d671830b11300db04c1a64ea0a3211eace29e8d9130b508ab41231452a0924 MISC metadata.xml 253 BLAKE2B 295e9d6d93aaa12af413972e1590c67087801cc09c9aa6b59d4606c0f4106d1dacf2baa9858559083b4c6d91beeef218d0729e8593a33788958da6d2897e8ce2 SHA512 54a9069aeb4165d2dff3d473c8001bc51613aac9dff3f7f5e9971a9891a737a31511ffa11cbd523febe581ac1d9de2bdf2f40410f0c4239138f2ccca3ef15555 diff --git a/sys-libs/gpm/gpm-1.20.7-r2.ebuild b/sys-libs/gpm/gpm-1.20.7-r2.ebuild index df485bea459d..0186f28ce85b 100644 --- a/sys-libs/gpm/gpm-1.20.7-r2.ebuild +++ b/sys-libs/gpm/gpm-1.20.7-r2.ebuild @@ -14,7 +14,7 @@ SRC_URI="https://www.nico.schottelius.org/software/${PN}/archives/${P}.tar.lzma LICENSE="GPL-2" SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 ~riscv s390 sh sparc x86" +KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 m68k ~mips ppc ppc64 ~riscv s390 sparc x86" IUSE="selinux static-libs" RDEPEND=">=sys-libs/ncurses-5.9-r3:0=[${MULTILIB_USEDEP}] diff --git a/sys-libs/kpmcore/Manifest b/sys-libs/kpmcore/Manifest index 911762fe9479..3655374e8d30 100644 --- a/sys-libs/kpmcore/Manifest +++ b/sys-libs/kpmcore/Manifest @@ -1,5 +1,3 @@ -DIST kpmcore-4.0.1.tar.xz 416932 BLAKE2B db429a9a51baf2d3f83d36479c05ac28c1d742dfc9e0dda51486d17958c95751da6295fe9e915359717eebbab3877464284b871dd8ded5a87c01c590cf4eac85 SHA512 982ad77246f59ade74edba15effca6490ac9ac7bb6db7f6194bcdbfddfa735c9bc1b58020affccd945fcdfc96fce3488167f492d6a13dcd6d19c5692505303ac DIST kpmcore-4.1.0.tar.xz 420344 BLAKE2B 1a8043c5eb774a3b9b99431543217910120a38b06a17db9db9ae6c577593c2736223e8d466ef62c33224e52513eae52d062584fc8afd86d90eb667af4e923645 SHA512 c45b31a41c62a68aee991be0f7954f4bd2136660578cc60f7fa6f05e56716458421e16cd314b3b9a14b56fdc9377db511c1645e5c41f0446d86a8ac5bb66c273 -EBUILD kpmcore-4.0.1.ebuild 894 BLAKE2B 60be55ec27464546d849fdeacb3f30d00085ffb0dbb6ec6b11f139777268acfc4e38f26cd99120f43c786f45ded5da14b3b723b4b517238b6d31cfd2b0c0fff0 SHA512 fb8eae8d2009055c524265802c9d3523218581b99a9c06244c386b12610e59bb19fa6ff7ba92bcf33c3fdb6b21971175d2832b0722f3712df240bec2cd430f1a -EBUILD kpmcore-4.1.0.ebuild 914 BLAKE2B e7eb5f772aea9d7cae764b49d5a6c54d54c27ecbdf6960c8cb1745d14f2e2373b68630f9bcc6a1b6d71f9898a6c4f224e48d46b99f5db19856367c6385ee4562 SHA512 0ee6e22370c667d5d5c13d383613f0e3361aeb6d93219f201254f10f86f53cd421c7c483cdd35d071da7c81c5c01fb2e5c5a7a37e0d05bb3d3f4e1fab492b2e4 +EBUILD kpmcore-4.1.0.ebuild 912 BLAKE2B d0f53a645cf7dabaf8bdc717e734ab9b146230f36b9448d1da4d05110657347315dc50d49cd9b8e53b7ac73ef64284127c85110a4a05de03e26080137604cb24 SHA512 25fe3f766e69d7e5da6c5b37cd7776a5b7d35e87267f0bba3c186d90d11011c113390408ad76982ac33e613f75f710d5a8436eacde480ab5f55ccff876478e1c MISC metadata.xml 249 BLAKE2B ad415db89e5dee1627aa77f44ded9d4e1e5b8217d06c7ca25bbaa3fe92ce67c2b1090957c45a821b407d7927e5af798498aa6a5b903895ee1af8ee20a446c7f7 SHA512 76a5a340b13f0053ca3c5e94ed24380ea8d29b45ac8655419e22eaadb1e4a827c04d2e7e36b65145c4964e6526f656618fc6ac144e277ef53cb7373e6239e3c3 diff --git a/sys-libs/kpmcore/kpmcore-4.0.1.ebuild b/sys-libs/kpmcore/kpmcore-4.0.1.ebuild deleted file mode 100644 index 84b1bc595f9e..000000000000 --- a/sys-libs/kpmcore/kpmcore-4.0.1.ebuild +++ /dev/null @@ -1,40 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -KFMIN=5.60.0 -QTMIN=5.12.3 -inherit ecm kde.org - -if [[ ${KDE_BUILD_TYPE} = release ]]; then - SRC_URI="mirror://kde/stable/${PN}/${PV}/src/${P}.tar.xz" - KEYWORDS="amd64 ~arm ~arm64 x86" -fi - -DESCRIPTION="Library for managing partitions" -HOMEPAGE="https://kde.org/applications/system/org.kde.partitionmanager" - -LICENSE="GPL-3" -SLOT="5/8" -IUSE="" - -BDEPEND="virtual/pkgconfig" -DEPEND=" - || ( - app-crypt/qca[botan] - app-crypt/qca[ssl] - ) - >=dev-qt/qtdbus-${QTMIN}:5 - >=dev-qt/qtgui-${QTMIN}:5 - >=dev-qt/qtwidgets-${QTMIN}:5 - >=kde-frameworks/kauth-${KFMIN}:5 - >=kde-frameworks/kcoreaddons-${KFMIN}:5 - >=kde-frameworks/ki18n-${KFMIN}:5 - >=kde-frameworks/kwidgetsaddons-${KFMIN}:5 - >=sys-apps/util-linux-2.33.2 -" -RDEPEND="${DEPEND}" - -# bug 689468, tests need polkit etc. -RESTRICT+=" test" diff --git a/sys-libs/kpmcore/kpmcore-4.1.0.ebuild b/sys-libs/kpmcore/kpmcore-4.1.0.ebuild index d9ba96a5b5e4..de6c97e63e1d 100644 --- a/sys-libs/kpmcore/kpmcore-4.1.0.ebuild +++ b/sys-libs/kpmcore/kpmcore-4.1.0.ebuild @@ -10,7 +10,7 @@ inherit ecm kde.org if [[ ${KDE_BUILD_TYPE} = release ]]; then SRC_URI="mirror://kde/stable/${PN}/${PV}/src/${P}.tar.xz" - KEYWORDS="~amd64 ~arm ~arm64 ~x86" + KEYWORDS="amd64 ~arm ~arm64 x86" fi DESCRIPTION="Library for managing partitions" diff --git a/sys-libs/ldb/Manifest b/sys-libs/ldb/Manifest index 8d711672fb80..4fd3319e3663 100644 --- a/sys-libs/ldb/Manifest +++ b/sys-libs/ldb/Manifest @@ -1,31 +1,9 @@ -AUX ldb-1.1.27-optional_packages.patch 3596 BLAKE2B 0913225b0bb4a0918102d3eb399cf0f4eb690eb55483e24ade75d064e47d423714cdac00f816d8676e9f56e29f79f98c044cc50c9c42bd665b14311b1027708b SHA512 ddc567f926a82fd855ef1690ff14dd6995f3beec9cec3796377edf10d787f89bca7375c6990c29fc8a0dfd88a519f29bf331d8ecdc7a37a6f6e1de21780e4b4a -AUX ldb-1.1.29-disable-python.patch 2294 BLAKE2B 3a9d7da3c6c82e849d2b0fad8bd4906203645eeee23d69088ff3dfc2ac86eb2c6b3826fecb6328343de6897ff52d7ca2ce1b72acb63c05f950059cb8ef514911 SHA512 f13ebcae2b4c1a844cad65729b31926249887d82ad6d295857c5402a07fd88e76150adce5b34e1a4dc059e4ba29356d60f7f7a8e24b8ae622f2a3477914d7fe1 AUX ldb-1.1.31-fix_PKGCONFIGDIR-when-python-disabled.patch 701 BLAKE2B dd2398f9e1fa39bfc3de89928dd3b935fd6ee9db4bc2c4e381ba5672098ae9209b2d6e475fa2549a9cef2e3ce5e9a789557413fbdb1bbd68842cca89ce1e8094 SHA512 35ba295d94ab5ce767f39c4cd5eb48d57a6e4993977013ee6ae0d640f74b5437a4dff6f1d14dc44dbcdc25d4e51e5084b0e3216353b2af383d8f544993228170 -AUX ldb-1.1.31-optional_packages.patch 2022 BLAKE2B df114c2248602d64bfb75c6910fde240840f7fea5ac2e7ba1507dc0615357753c3c11eacc005fe219b9f3e85638f7314104e37e321df3c5fcabdb7fce8a82812 SHA512 c9bc21fb306d4322874009e8eaded220f9ea1a3027781d2f6ae0f393f357349582cab8204e5a9343a88f61ab8d15f772bfb2e0d8bd42c0780b593ff9bdb9ad09 -AUX ldb-1.1.31-talloc-disable-python.patch 1706 BLAKE2B cc447f5077c82d7eb584692121b9b34c03afb5f7dda2b799ea518d08421d31ce54fe2422c5ca7efe74f66011951c97b171a326604bd67446a15ad2849bade919 SHA512 ac0bf82e8ed8b918a5efbdeb0a6cbaaef22bb72231abb09026637d62b8ce35b25212960d26c07abe63661328ab7ea8a82590cd93f04de583e23239211daf6efa -AUX ldb-1.2.3-disable_python.patch 2632 BLAKE2B c46ac5265168b37e94730b3a8a30b49199fdc722492248a69eb23306761df5764667e5c2e1f09e97c06a7c2a7932a8cdd047fb2d9d8e2ba9cff4d21bee148b06 SHA512 3b32d478318ef37fd221b06f427f0efce943c6da9a0a58b92ad935657fc29105b1ab79f2c9d1e1fa24cd6c4e8b701e6d631cbd04b3ebed8adeee47c4510f89a8 -AUX ldb-1.4.0-optional_packages.patch 1662 BLAKE2B 3d6c8c31ad53b62a999934d1994475e502e83498df86ca590b560dc2bf34e6cce7b0896f2d747fadaf69da277b116f1cedbe27443f75e85206d482bd1df3dd15 SHA512 7e26631f93dbca355eaf08e32bbc95eeabdf196e75ba8cd0618ef8c772f17661e68e307d8742dabcde34ebe02aaf50c5ad966b77e862394f0683279babbdfb01 AUX ldb-1.5.2-optional_packages.patch 1441 BLAKE2B 0b9413cd9690aae2b2eb26f097d2509c0bbe0fc59f81bab22add57ffe0c603a8fb0c9be038d06693dcbb1d3817d4ad97a5931120b18bd9783efaac599fe0ccbc SHA512 2f313c3377385279ca3da6db21d926df0559d971e1fd42f8cce57b4001078c3817f472b85088a1f3b0e5ddcdfbbfd943199485d6e4a00412f62c883c6ea04afd -DIST ldb-1.1.29.tar.gz 1277551 BLAKE2B 449333d40073fd63d6d013ba0ae43fc3a0b8201948eabd440d164d182492002c1d92047d652105c2fb6a3e8383d4b75f45e38cc52efc5d9a0e2811113676203a SHA512 d37bbe84358e05d17483e2e963b8477da5ea351b855b454142c94af35f7987bede0f19faeaff17779efe04e3bb37c510437fcc59be99a17c826620fc25fd659c -DIST ldb-1.1.31.tar.gz 1337586 BLAKE2B 9454f91a621368cfc7cfdb709781653e947d63b275bb3b288049acb43ee3c02ae4f0be820ccf9e3bb32938d12598a91b7a6292b08c638ccfd59bd1be182f09c0 SHA512 49ccd57000cbcc6d828160f4457236b28853d766d641841471f61226156b6103fe563c43c950577b038ea3c0a54506bca94c640d3d5f912a3b8af95eb9ef2824 -DIST ldb-1.2.4.tar.gz 1346413 BLAKE2B 441cdf679ab4852e1c8d90ca8d9544d7983436c864cb3ea76b63f45177061c2763f9700b4be4be9ba53a4bcc9cec49b509dd39efb8f5f2171bc432641d1329c2 SHA512 093815cfa9e950299c4f09c58362136d72c439692f7d8670ecbf9cac49ecef6fd365f8fab5d39f41a4dd39e07f6c8d1a2616e843653d2fa0d7bdff346a118aa9 -DIST ldb-1.3.6.tar.gz 1374574 BLAKE2B 654f35eb25aeb373540ead7cb10da66c92970ea6b100631cb14bacf937fec64e09b19ed3e09a976406e3f8d6347c4e17144c0a0bff8795316559be45353edbf7 SHA512 8fcd72598e948c55adaa832d6ebcbc03b979281032cb900af4304c1c68ce9cc94a1e1d4729d0c2a0b83a618cab716749d851160005a0093cf8a178e6dbea298d -DIST ldb-1.3.8.tar.gz 1375782 BLAKE2B dbca935e762af86b268308253615019b24af6727411e77947ceeadd3e0114c2ad2a14d4a4f1121bf58ccb080d44a8513d2094314b043604d885977a26e622c57 SHA512 06d1b4c2badbf0c27733a64f979c48af8b599747cef7cd7f5417cd55a76447e8f8987bd061694c5af63261fdb35433e3844122c14103d5cc8b4eaab1f4752541 -DIST ldb-1.4.8.tar.gz 1433045 BLAKE2B bd2441d97216976a149d43ab037c64053adae0e1ac931ceb6313491eea09813324dd97ab754d09fdc2789327932ee8a8268d94457dd48f557a125890a6c4e721 SHA512 cfb10c9ca45aed6d181020fc7b55a5fb5915d288035ef7245ccc63ac040aa64fb7591629c34db5ff49f15c4eb4e2037954beeadd1f5a695eb19e3807cad864e7 -DIST ldb-1.5.4.tar.gz 1629123 BLAKE2B 3c71af079f2e5cb81e493d16d453c53bd0ee4c63720b0261ea6116244b2652ca581499c0b8c64949dccc95460aba7b4ef3afe7850563a830f3fb4b8753bdea2f SHA512 fc323e4283671c14d6dd4feb7e9ca943a63a166688077dbf3591f9d957cf821f9e739869842e15ca1ec4fd3764123d5afc6f4954b1af437bd1ec54df58366a22 -DIST ldb-1.5.6.tar.gz 1637795 BLAKE2B ac70f6dcaa1cd34bfdae8bf7844f1084282ea947a3c85b3a6c504a5fd3028eca2e4c26a7ffd2d36b3fadd50affded8bcf90546c56d138b30091cdaae86a9f730 SHA512 038b85caff82a2566197bc6bae9fdef91675e42f0a3b269d9d5608363777a12b4ae3faa81854b9b33b9ee374fa5ba92686e945d60f6ad1f53a453fead59f6712 -DIST ldb-1.6.3.tar.gz 1628668 BLAKE2B e9b6535eddf49496151e544f6879641c58a614f6de95463f7d0bf1953744953a5d55dde935d39b690d4c87e66914d8de0f0f5d4816a61fdecc81f8797584013e SHA512 a41b1fd2afa9a02dec37519f28e0e720b649c2a0aa6caebeb6697dbefdc6a055ef26500c5ccb0439b495d8c03218920b389fb9601d1cf5ca4d5046f192a5fefd -DIST ldb-2.0.7.tar.gz 1674063 BLAKE2B e61f7bf4cfefcb5c1bf735c19a00027ce20ef393b613117e5637f7680ba7fcab1798744505b0db88e8bbdab41e0264e0fd1e643110ec47864de02ef315bd0dfd SHA512 0b1bd5970421c32bee1209179eac60682d7304aca597bca11dd477903f59b53a2fbc7d9e1717809e9a8e550564a9ca9139dd1127b9f4cefcc2437d7c8050985a DIST ldb-2.0.8.tar.gz 1676902 BLAKE2B b86b24a597bd81ae11382311f3b60aeb8aca78ddbe63413b9a8cdbbfa4f52b05a0d2e325d483e260b15aa396c2ad9f2828ac4b6214af86d891281d05b24125b5 SHA512 23a44968c9b4b57deb3f7b7b2466f140b4d8534a07a5e866545dd108c3d305ee4b0ea9bceec3177fcd09a4efcb4876a8283ca58b5c496fcf323b810666e1e79a -EBUILD ldb-1.1.29-r1.ebuild 2533 BLAKE2B 1b6396c2e02ccd953f66978f32eeaecda40af69d1d7a2422021ed507b86fa7c53a49a4564635b7335006709e6d033dd031b13b1cd354a87a26cb73d4decfcf7d SHA512 49ba82b65d7eadcc2c0c95b1a13e74ac3c2b40d7aad4e917ce04f7f52a65a6790d2abb15de06fbc2cabf90f9f07fb7a7b591d67d7d544e740a828da919a65e67 -EBUILD ldb-1.1.31.ebuild 2666 BLAKE2B 2e10b4c1db7b390f63613ec191c6656a66cf2f1c4ba254fbb7e0e06db06af77ac0ff21e7d852178458ea95ee6fce29a5eed8bee0a4cbc94b282cf01b9ad0c24b SHA512 0dd17abac0462375cee3ea267fedc97e0386cdb60f7efb28884a6055c6bac6948b7a364c809271489322c2fea6f2c3c4fe5c307f2fffa8254cfe59925b7fd3d2 -EBUILD ldb-1.2.4.ebuild 2594 BLAKE2B 52959030dbaf15a8fe9f8dd55cd355ed67880ad0f396e77a3aa44dea2dd5de5cbf6e7122af3f3112c6112685d972f528f7601b478b3fce9ef94615fcbc7c23e7 SHA512 8fe345ec1d9ed74803041e08e0699b50f6f5106bf0fea10d96c4144c1a0b2f4aee4d2952303c1b3900e15909f5a470147b10bfa75005dd21201e3703ef83e291 -EBUILD ldb-1.3.6.ebuild 2541 BLAKE2B ca21a5d1fac9b5c2aa87efb133a144391366867e88f53697c760ea29ca840fb16c3f90f573c261c2ec4e6c28bcdb1225a493a7b2031274264f4a42ab9ffb0e95 SHA512 73c15170d9b178bcc02a2ab22b85443005c59692930081a709d3a70fc9440bdd024d66695ce50f5d3e3096a381e6d2831b6200451fe9bdbdbc017362a621e4ab -EBUILD ldb-1.3.8.ebuild 2547 BLAKE2B cd8a8179d5e3a6d14f294b8cd1f3699d88bd3435e91ee7bd836dc33dfc4b63e1260f36bdf0768cc10ed50236ae15adb4ff0f4adc2e8b0538c805cbca5b42358b SHA512 578680ded950a2dd84dd01177343dff434505c41df0902f54d5444575cf3d65d55b7274e8412696c20cfd8bfda52e3c751c20079bd3f8800aa20fe6babf20ba2 -EBUILD ldb-1.4.8.ebuild 2641 BLAKE2B dd813cae8bd86dba7edeed0c18fd6d1aeb2975ba88485d4daf65509dd7025cfaf75aca563ecf603925959eaf184fde4aaeb82a6869aac1b0deb18b588fd60008 SHA512 c4b950ccfa1df521db6e82213fd8d84c29ed538b8368fb2c325d463f845b35a8259f50b094d294014e725e98df2d1b3a7f3fff6cddaa7c1894d2076f2080fbd3 -EBUILD ldb-1.5.4.ebuild 2647 BLAKE2B 06ef03eaed293d096a23eef2d16d07a527ea3902d87b9e1bdf95b3d174fb1b83412d2f0fd0b658d7547c50ec7d631e4ac5465c8a32d5992bd5400905922a934b SHA512 68c096a7209e57c37d1ed789f00a3949e7c90aa83801fee8e6941b4ff28e9627782ed6cbdb7fb5b7e5be1cc43aa196ae69d2acdb9e4dea1fc5c0955fa3611d92 -EBUILD ldb-1.5.6.ebuild 2648 BLAKE2B 2c655c275fc9f18fe2e51ff5b5d3ea5ce9715d06ea1b672616e0fe93cc5731b4932bff4a8951cb194476cc9a662938bfe1e889687e7a5b93b36fc2fc5c5cdd65 SHA512 5dec83758f2cc5cc26a39faf0d17a016964aa826f38468276289b342ad04c0514b934316d28a70a9b1329aae7c65f222f6483e6ea3d27de87f942d208fdb4364 -EBUILD ldb-1.6.3.ebuild 2648 BLAKE2B 2c655c275fc9f18fe2e51ff5b5d3ea5ce9715d06ea1b672616e0fe93cc5731b4932bff4a8951cb194476cc9a662938bfe1e889687e7a5b93b36fc2fc5c5cdd65 SHA512 5dec83758f2cc5cc26a39faf0d17a016964aa826f38468276289b342ad04c0514b934316d28a70a9b1329aae7c65f222f6483e6ea3d27de87f942d208fdb4364 -EBUILD ldb-2.0.7.ebuild 2646 BLAKE2B e86b9a1a66ab53c68ef5ce62f1d68b62d305dcc45e263f425746da41fc4946f13cea740cfd76f012c325df314312f8bbf571b6a3463cb1615a3e9301171cba7b SHA512 0847307c1b5b3bd88677e3cbd24c5870ba6f932ad41e41d5ed44c23ccd0376f1602c215893a5dd83ad7ffe63ce9fc79f06a97bed2fe9f2c0c938d158f6d017a8 -EBUILD ldb-2.0.8.ebuild 2707 BLAKE2B 1913bd94db6210b5860683367a76f8921b28d960f40b2d3de3abbb4ba03f6db394493d8a6d6ae512c9a570da60458d7f5dbc807ecee49644584e477d18394e3c SHA512 a3e7882dc30895ef0df88c7e3e343e570425b0555ca9e5b5ecc147be3727abbe5cee5789f4053cd86d9b1777bb47561fa4d7e5e2d4b878a138ef4c3ebf917143 +DIST ldb-2.0.9.tar.gz 1676176 BLAKE2B 0d18a570ca61fcdf159b6398ecef74bc983c24ffd4d8f85bc9cfcbb182f787d0deb50c5f446684b851993146e03bdaf10d80c083a9534446b829714fff025b8f SHA512 f4d2480491f16aac7837fa2ff071e81e429bd9b3a365264723245791aad1831a236ffeff0f01f85becb998b224c321b166f3edd3f9a828714b7c3b24aed11a5e +DIST ldb-2.1.1.tar.gz 1671390 BLAKE2B a715cb17a2d113560d37e3e5d29adfe7db43f89388bb5a474388e3f7a6ae277ddb0ee4d09d45eed18a87085c70d98308d195b3867cc57259767cb61a50c8cc6e SHA512 dd87da0746790895c617108c64b718ab6e6e630f1e3269154b40fc0e5623199a4b132d41623ae00d5c263ce79c4d6da34f072a140bee91a59dd6934969315fc8 +EBUILD ldb-2.0.8.ebuild 2688 BLAKE2B ecc1ec7275796e6de5af9be875671301aa38da49e2345408d5f9054657ed4775d21cd1456a474217def897ccbd02e44be18a14cad14dd58ccaa816d8be968a9f SHA512 9c3320b50fdbb0e7912b731d6c6905de97b065c2c049ec046e35f09e296f0b1f350120062c3d1e3b29ada3e4fbff90e5d8576bc96397dc89c9536882d2a770bb +EBUILD ldb-2.0.9.ebuild 2695 BLAKE2B 9ef1575d86dbe106a307851c63a8bbe84bc948a13c5837fb3a09caf996ed8e8f9b37ec76fcebc2faf423db3a0f7558464d150a1f64e142d94022a5607a1a1bf6 SHA512 fee1fd6ebdbd919332ae2b35506b9e69856761d340fd6ad117b27ce2f08c31a9eda4f4bb156a64e2f01ac35c95bec438a60d58fb696639376f32dde98ab02fc9 +EBUILD ldb-2.1.1.ebuild 2695 BLAKE2B c41b17921331a9677117f36bde021a244d548c3e2b3b5d9285e5ca104d96437a7723779b856276740d1e6a786fe2e3d2823fd2afce499bb3b5d1839cf034943e SHA512 21740fa246033d07d5ba0b16e72bdf26e787decd87095b7c32747bc48a7927b74fb25da9875afac670bf40b9b6c0c547574b7dd5b1bff7565e2b0cd229dc1579 MISC metadata.xml 525 BLAKE2B 161146886c9d4b7139238e5753f02bbbd3eb4aa6c59415f45710c11b25e80d6e4085036e00808b38d06b671dc976922dacbab9ef3f4f18ed9793d5b5621ff546 SHA512 87a8414b97c3f08fed9395574f7be7739c845c593c2fa324e6928758e455e2ee9d45c2607dba298da2c1e21863878c147e613f6fc3750111952b7e7a7b7ada95 diff --git a/sys-libs/ldb/files/ldb-1.1.27-optional_packages.patch b/sys-libs/ldb/files/ldb-1.1.27-optional_packages.patch deleted file mode 100644 index 92e14c651c86..000000000000 --- a/sys-libs/ldb/files/ldb-1.1.27-optional_packages.patch +++ /dev/null @@ -1,92 +0,0 @@ ---- ldb-1.1.27/lib/talloc/wscript -+++ ldb-1.1.27/lib/talloc/wscript -@@ -48,7 +48,7 @@ - if conf.CHECK_BUNDLED_SYSTEM_PKG('talloc', minversion=VERSION, - implied_deps='replace'): - conf.define('USING_SYSTEM_TALLOC', 1) -- if conf.CHECK_BUNDLED_SYSTEM_PKG('pytalloc-util', minversion=VERSION, -+ if not conf.env.disable_python and conf.CHECK_BUNDLED_SYSTEM_PKG('pytalloc-util', minversion=VERSION, - implied_deps='talloc replace'): - conf.define('USING_SYSTEM_PYTALLOC_UTIL', 1) - ---- ldb-1.1.27/wscript -+++ ldb-1.1.27/wscript -@@ -5,6 +5,7 @@ - - blddir = 'bin' - -+import Logs - import sys, os - - # find the buildtools directory -@@ -13,7 +14,7 @@ - srcdir = srcdir + '/..' - sys.path.insert(0, srcdir + '/buildtools/wafsamba') - --import wafsamba, samba_dist, Utils -+import wafsamba, samba_dist, Utils, Options - - samba_dist.DIST_DIRS('''lib/ldb:. lib/replace:lib/replace lib/talloc:lib/talloc - lib/tdb:lib/tdb lib/tdb:lib/tdb lib/tevent:lib/tevent -@@ -28,8 +29,21 @@ - opt.RECURSE('lib/tevent') - opt.RECURSE('lib/replace') - opt.tool_options('python') # options for disabling pyc or pyo compilation -+ if opt.IN_LAUNCH_DIR(): -+ opt.add_option('--disable-python', -+ help=("disable the pyldb modules"), -+ action="store_true", dest='disable_python', default=False) -+ if opt.IN_LAUNCH_DIR(): -+ opt.add_option('--disable-ldap', -+ help=("disable ldap support"), -+ action="store_true", dest='disable_ldap', default=False) - - def configure(conf): -+ conf.env.standalone_ldb = conf.IN_LAUNCH_DIR() -+ -+ conf.env.disable_python = getattr(Options.options, 'disable_python', False) -+ conf.env.disable_ldap = getattr(Options.options, 'disable_ldap', False) -+ - conf.RECURSE('lib/tdb') - conf.RECURSE('lib/tevent') - -@@ -44,16 +58,18 @@ - conf.RECURSE('lib/replace') - conf.find_program('python', var='PYTHON') - conf.find_program('xsltproc', var='XSLTPROC') -- conf.check_tool('python') -- conf.check_python_version((2,4,2)) -- conf.SAMBA_CHECK_PYTHON_HEADERS(mandatory=True) -+ -+ if not conf.env.disable_python: -+ conf.SAMBA_CHECK_PYTHON(mandatory=False, version=(2,4,2)) -+ conf.SAMBA_CHECK_PYTHON_HEADERS(mandatory=False) -+ if not conf.env.HAVE_PYTHON_H: -+ Logs.warn('Disabling pyldb-util as python devel libs not found') -+ conf.env.disable_python = True - - # where does the default LIBDIR end up? in conf.env somewhere? - # - conf.CONFIG_PATH('LDB_MODULESDIR', conf.SUBST_ENV_VAR('MODULESDIR') + '/ldb') - -- conf.env.standalone_ldb = conf.IN_LAUNCH_DIR() -- - if not conf.env.standalone_ldb: - if conf.CHECK_BUNDLED_SYSTEM_PKG('pyldb-util', minversion=VERSION, - onlyif='talloc tdb tevent', -@@ -67,9 +83,12 @@ - if conf.env.standalone_ldb: - conf.CHECK_XSLTPROC_MANPAGES() - -- # we need this for the ldap backend -- if conf.CHECK_FUNCS_IN('ber_flush ldap_open ldap_initialize', 'lber ldap', headers='lber.h ldap.h'): -- conf.env.ENABLE_LDAP_BACKEND = True -+ if not conf.env.disable_ldap: -+ # we need this for the ldap backend -+ if conf.CHECK_FUNCS_IN('ber_flush ldap_open ldap_initialize', 'lber ldap', headers='lber.h ldap.h'): -+ conf.env.ENABLE_LDAP_BACKEND = True -+ else: -+ conf.env.ENABLE_LDAP_BACKEND = False - - # we don't want any libraries or modules to rely on runtime - # resolution of symbols diff --git a/sys-libs/ldb/files/ldb-1.1.29-disable-python.patch b/sys-libs/ldb/files/ldb-1.1.29-disable-python.patch deleted file mode 100644 index bc4120e8acf6..000000000000 --- a/sys-libs/ldb/files/ldb-1.1.29-disable-python.patch +++ /dev/null @@ -1,48 +0,0 @@ ---- a/lib/tdb/wscript 2016-11-30 09:56:00.000000000 -0500 -+++ b/lib/tdb/wscript 2017-02-08 16:37:49.160987205 -0500 -@@ -77,16 +77,16 @@ - conf.env.standalone_tdb = conf.IN_LAUNCH_DIR() - conf.env.building_tdb = True - -+ conf.env.disable_python = getattr(Options.options, 'disable_python', False) -+ - if not conf.env.standalone_tdb: - if conf.CHECK_BUNDLED_SYSTEM_PKG('tdb', minversion=VERSION, - implied_deps='replace'): - conf.define('USING_SYSTEM_TDB', 1) - conf.env.building_tdb = False -- if conf.CHECK_BUNDLED_SYSTEM_PYTHON('pytdb', 'tdb', minversion=VERSION): -+ if not conf.env.disable_python and conf.CHECK_BUNDLED_SYSTEM_PYTHON('pytdb', 'tdb', minversion=VERSION): - conf.define('USING_SYSTEM_PYTDB', 1) - -- conf.env.disable_python = getattr(Options.options, 'disable_python', False) -- - if (conf.CONFIG_SET('HAVE_ROBUST_MUTEXES') and - conf.env.building_tdb and - not conf.env.disable_tdb_mutex_locking): ---- a/lib/tevent/wscript 2016-10-07 00:45:35.000000000 -0400 -+++ b/lib/tevent/wscript 2017-02-08 16:39:22.478733175 -0500 -@@ -34,11 +34,13 @@ - - conf.env.standalone_tevent = conf.IN_LAUNCH_DIR() - -+ conf.env.disable_python = getattr(Options.options, 'disable_python', False) -+ - if not conf.env.standalone_tevent: - if conf.CHECK_BUNDLED_SYSTEM_PKG('tevent', minversion=VERSION, - onlyif='talloc', implied_deps='replace talloc'): - conf.define('USING_SYSTEM_TEVENT', 1) -- if conf.CHECK_BUNDLED_SYSTEM_PYTHON('pytevent', 'tevent', minversion=VERSION): -+ if not conf.env.disable_python and conf.CHECK_BUNDLED_SYSTEM_PYTHON('pytevent', 'tevent', minversion=VERSION): - conf.define('USING_SYSTEM_PYTEVENT', 1) - - if conf.CHECK_FUNCS('epoll_create', headers='sys/epoll.h'): -@@ -61,8 +63,6 @@ - if not conf.CONFIG_SET('USING_SYSTEM_TEVENT'): - conf.DEFINE('TEVENT_NUM_SIGNALS', tevent_num_signals) - -- conf.env.disable_python = getattr(Options.options, 'disable_python', False) -- - if not conf.env.disable_python: - # also disable if we don't have the python libs installed - conf.find_program('python', var='PYTHON') diff --git a/sys-libs/ldb/files/ldb-1.1.31-optional_packages.patch b/sys-libs/ldb/files/ldb-1.1.31-optional_packages.patch deleted file mode 100644 index 1e9b51773570..000000000000 --- a/sys-libs/ldb/files/ldb-1.1.31-optional_packages.patch +++ /dev/null @@ -1,57 +0,0 @@ ---- ldb-1.1.27/wscript -+++ ldb-1.1.27/wscript -@@ -5,6 +5,7 @@ - - blddir = 'bin' - -+import Logs - import sys, os - - # find the buildtools directory -@@ -13,7 +14,7 @@ - srcdir = srcdir + '/..' - sys.path.insert(0, srcdir + '/buildtools/wafsamba') - --import wafsamba, samba_dist, Utils -+import wafsamba, samba_dist, Utils, Options - - samba_dist.DIST_DIRS('''lib/ldb:. lib/replace:lib/replace lib/talloc:lib/talloc - lib/tdb:lib/tdb lib/tdb:lib/tdb lib/tevent:lib/tevent -@@ -28,8 +29,21 @@ - opt.RECURSE('lib/tevent') - opt.RECURSE('lib/replace') - opt.tool_options('python') # options for disabling pyc or pyo compilation -+ if opt.IN_LAUNCH_DIR(): -+ opt.add_option('--disable-python', -+ help=("disable the pyldb modules"), -+ action="store_true", dest='disable_python', default=False) -+ if opt.IN_LAUNCH_DIR(): -+ opt.add_option('--disable-ldap', -+ help=("disable ldap support"), -+ action="store_true", dest='disable_ldap', default=False) - - def configure(conf): -+ conf.env.standalone_ldb = conf.IN_LAUNCH_DIR() -+ -+ conf.env.disable_python = getattr(Options.options, 'disable_python', False) -+ conf.env.disable_ldap = getattr(Options.options, 'disable_ldap', False) -+ - conf.RECURSE('lib/tdb') - conf.RECURSE('lib/tevent') - -@@ -67,9 +81,12 @@ - if conf.env.standalone_ldb: - conf.CHECK_XSLTPROC_MANPAGES() - -- # we need this for the ldap backend -- if conf.CHECK_FUNCS_IN('ber_flush ldap_open ldap_initialize', 'lber ldap', headers='lber.h ldap.h'): -- conf.env.ENABLE_LDAP_BACKEND = True -+ if not conf.env.disable_ldap: -+ # we need this for the ldap backend -+ if conf.CHECK_FUNCS_IN('ber_flush ldap_open ldap_initialize', 'lber ldap', headers='lber.h ldap.h'): -+ conf.env.ENABLE_LDAP_BACKEND = True -+ else: -+ conf.env.ENABLE_LDAP_BACKEND = False - - # we don't want any libraries or modules to rely on runtime - # resolution of symbols diff --git a/sys-libs/ldb/files/ldb-1.1.31-talloc-disable-python.patch b/sys-libs/ldb/files/ldb-1.1.31-talloc-disable-python.patch deleted file mode 100644 index 6ef45eb37fb8..000000000000 --- a/sys-libs/ldb/files/ldb-1.1.31-talloc-disable-python.patch +++ /dev/null @@ -1,34 +0,0 @@ ---- a/lib/talloc/wscript 2017-04-28 04:57:26.000000000 -0400 -+++ b/lib/talloc/wscript 2017-07-05 14:30:42.700580464 -0400 -@@ -74,19 +74,22 @@ - implied_deps='replace'): - conf.define('USING_SYSTEM_TALLOC', 1) - -- using_system_pytalloc_util = True -- if not conf.CHECK_BUNDLED_SYSTEM_PKG('pytalloc-util', minversion=VERSION, -- implied_deps='talloc replace'): -+ if conf.env.disable_python: - using_system_pytalloc_util = False -- -- # We need to get a pytalloc-util for all the python versions -- # we are building for -- if conf.env['EXTRA_PYTHON']: -- name = 'pytalloc-util' + conf.all_envs['extrapython']['PYTHON_SO_ABI_FLAG'] -- if not conf.CHECK_BUNDLED_SYSTEM_PKG(name, minversion=VERSION, -+ else: -+ using_system_pytalloc_util = True -+ if not conf.CHECK_BUNDLED_SYSTEM_PKG('pytalloc-util', minversion=VERSION, - implied_deps='talloc replace'): - using_system_pytalloc_util = False - -+ # We need to get a pytalloc-util for all the python versions -+ # we are building for -+ if conf.env['EXTRA_PYTHON']: -+ name = 'pytalloc-util' + conf.all_envs['extrapython']['PYTHON_SO_ABI_FLAG'] -+ if not conf.CHECK_BUNDLED_SYSTEM_PKG(name, minversion=VERSION, -+ implied_deps='talloc replace'): -+ using_system_pytalloc_util = False -+ - if using_system_pytalloc_util: - conf.define('USING_SYSTEM_PYTALLOC_UTIL', 1) - diff --git a/sys-libs/ldb/files/ldb-1.2.3-disable_python.patch b/sys-libs/ldb/files/ldb-1.2.3-disable_python.patch deleted file mode 100644 index 133e2acf3125..000000000000 --- a/sys-libs/ldb/files/ldb-1.2.3-disable_python.patch +++ /dev/null @@ -1,64 +0,0 @@ -Revert talloc/wscript to the one from ldb-1.2.2 - ---- ldb-1.2.3/lib/talloc/wscript -+++ ldb-1.2.3/lib/talloc/wscript -@@ -1,7 +1,7 @@ - #!/usr/bin/env python - - APPNAME = 'talloc' --VERSION = '2.1.9' -+VERSION = '2.1.10' - - - blddir = 'bin' -@@ -74,19 +74,22 @@ - implied_deps='replace'): - conf.define('USING_SYSTEM_TALLOC', 1) - -- using_system_pytalloc_util = True -- if not conf.CHECK_BUNDLED_SYSTEM_PKG('pytalloc-util', minversion=VERSION, -- implied_deps='talloc replace'): -+ if conf.env.disable_python: - using_system_pytalloc_util = False -- -- # We need to get a pytalloc-util for all the python versions -- # we are building for -- if conf.env['EXTRA_PYTHON']: -- name = 'pytalloc-util' + conf.all_envs['extrapython']['PYTHON_SO_ABI_FLAG'] -- if not conf.CHECK_BUNDLED_SYSTEM_PKG(name, minversion=VERSION, -+ else: -+ using_system_pytalloc_util = True -+ if not conf.CHECK_BUNDLED_SYSTEM_PKG('pytalloc-util', minversion=VERSION, - implied_deps='talloc replace'): - using_system_pytalloc_util = False - -+ # We need to get a pytalloc-util for all the python versions -+ # we are building for -+ if conf.env['EXTRA_PYTHON']: -+ name = 'pytalloc-util' + conf.all_envs['extrapython']['PYTHON_SO_ABI_FLAG'] -+ if not conf.CHECK_BUNDLED_SYSTEM_PKG(name, minversion=VERSION, -+ implied_deps='talloc replace'): -+ using_system_pytalloc_util = False -+ - if using_system_pytalloc_util: - conf.define('USING_SYSTEM_PYTALLOC_UTIL', 1) - -@@ -171,12 +174,18 @@ - def test(ctx): - '''run talloc testsuite''' - import Utils, samba_utils -+ -+ samba_utils.ADD_LD_LIBRARY_PATH('bin/shared') -+ samba_utils.ADD_LD_LIBRARY_PATH('bin/shared/private') -+ - cmd = os.path.join(Utils.g_module.blddir, 'talloc_testsuite') - ret = samba_utils.RUN_COMMAND(cmd) - print("testsuite returned %d" % ret) - magic_helper_cmd = os.path.join(Utils.g_module.blddir, 'talloc_test_magic_differs_helper') - magic_cmd = os.path.join(srcdir, 'lib', 'talloc', - 'test_magic_differs.sh') -+ if not os.path.exists(magic_cmd): -+ magic_cmd = os.path.join(srcdir, 'test_magic_differs.sh') - - magic_ret = samba_utils.RUN_COMMAND(magic_cmd + " " + magic_helper_cmd) - print("magic differs test returned %d" % magic_ret) diff --git a/sys-libs/ldb/files/ldb-1.4.0-optional_packages.patch b/sys-libs/ldb/files/ldb-1.4.0-optional_packages.patch deleted file mode 100644 index 37813890dcd9..000000000000 --- a/sys-libs/ldb/files/ldb-1.4.0-optional_packages.patch +++ /dev/null @@ -1,45 +0,0 @@ ---- ldb-1.4.0/wscript -+++ ldb-1.4.0/wscript -@@ -31,6 +31,14 @@ - opt.RECURSE('lib/tevent') - opt.RECURSE('lib/replace') - opt.tool_options('python') # options for disabling pyc or pyo compilation -+ if opt.IN_LAUNCH_DIR(): -+ opt.add_option('--disable-python', -+ help=("disable the pyldb modules"), -+ action="store_true", dest='disable_python', default=False) -+ if opt.IN_LAUNCH_DIR(): -+ opt.add_option('--disable-ldap', -+ help=("disable ldap support"), -+ action="store_true", dest='disable_ldap', default=False) - - opt.add_option('--without-ldb-lmdb', - help='disable new LMDB backend for LDB', -@@ -38,6 +46,11 @@ - - - def configure(conf): -+ conf.env.standalone_ldb = conf.IN_LAUNCH_DIR() -+ -+ conf.env.disable_python = getattr(Options.options, 'disable_python', False) -+ conf.env.disable_ldap = getattr(Options.options, 'disable_ldap', False) -+ - conf.RECURSE('lib/tdb') - conf.RECURSE('lib/tevent') - -@@ -142,9 +155,12 @@ - if conf.env.standalone_ldb: - conf.CHECK_XSLTPROC_MANPAGES() - -- # we need this for the ldap backend -- if conf.CHECK_FUNCS_IN('ber_flush ldap_open ldap_initialize', 'lber ldap', headers='lber.h ldap.h'): -- conf.env.ENABLE_LDAP_BACKEND = True -+ if not conf.env.disable_ldap: -+ # we need this for the ldap backend -+ if conf.CHECK_FUNCS_IN('ber_flush ldap_open ldap_initialize', 'lber ldap', headers='lber.h ldap.h'): -+ conf.env.ENABLE_LDAP_BACKEND = True -+ else: -+ conf.env.ENABLE_LDAP_BACKEND = False - - # we don't want any libraries or modules to rely on runtime - # resolution of symbols diff --git a/sys-libs/ldb/ldb-1.1.29-r1.ebuild b/sys-libs/ldb/ldb-1.1.29-r1.ebuild deleted file mode 100644 index a6c0906ceed5..000000000000 --- a/sys-libs/ldb/ldb-1.1.29-r1.ebuild +++ /dev/null @@ -1,102 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 -PYTHON_COMPAT=( python2_7 ) -PYTHON_REQ_USE="threads" - -inherit python-single-r1 waf-utils multilib-minimal eutils - -DESCRIPTION="An LDAP-like embedded database" -HOMEPAGE="https://ldb.samba.org/" -SRC_URI="https://www.samba.org/ftp/pub/${PN}/${P}.tar.gz" - -LICENSE="LGPL-3" -SLOT="0/${PV}" -KEYWORDS="~alpha amd64 arm ~arm64 ~hppa ia64 ~mips ppc ppc64 ~s390 ~sh sparc x86" -IUSE="doc +ldap python" - -RDEPEND="!elibc_FreeBSD? ( dev-libs/libbsd[${MULTILIB_USEDEP}] ) - dev-libs/popt[${MULTILIB_USEDEP}] - >=sys-libs/talloc-2.1.8[python?,${MULTILIB_USEDEP}] - >=sys-libs/tevent-0.9.31[python(+)?,${MULTILIB_USEDEP}] - >=sys-libs/tdb-1.3.12[python?,${MULTILIB_USEDEP}] - !!=net-fs/samba-4.0.0[ldb] - python? ( ${PYTHON_DEPS} ) - ldap? ( net-nds/openldap ) - " - -DEPEND="dev-libs/libxslt - doc? ( app-doc/doxygen ) - virtual/pkgconfig - ${PYTHON_DEPS} - ${RDEPEND}" - -REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" - -WAF_BINARY="${S}/buildtools/bin/waf" - -MULTILIB_WRAPPED_HEADERS=( /usr/include/pyldb.h ) - -PATCHES=( - "${FILESDIR}"/${PN}-1.1.27-optional_packages.patch - "${FILESDIR}"/${P}-disable-python.patch -) - -pkg_setup() { - python-single-r1_pkg_setup -} - -src_prepare() { - default - multilib_copy_sources -} - -multilib_src_configure() { - local myconf=( - $(usex ldap '' --disable-ldap) \ - --disable-rpath \ - --disable-rpath-install --bundled-libraries=NONE \ - --with-modulesdir="${EPREFIX}"/usr/$(get_libdir)/samba \ - --builtin-libraries=NONE - ) - if ! multilib_is_native_abi; then - myconf+=( --disable-python ) - else - myconf+=( $(usex python '' '--disable-python') ) - fi - waf-utils_src_configure "${myconf[@]}" -} - -multilib_src_compile() { - waf-utils_src_compile - multilib_is_native_abi && use doc && doxygen Doxyfile -} - -multilib_src_test() { - if multilib_is_native_abi; then - WAF_MAKE=1 \ - PATH=buildtools/bin:../../../buildtools/bin:$PATH:"${BUILD_DIR}"/bin/shared/private/ \ - LD_LIBRARY_PATH=$LD_LIBRARY_PATH:"${BUILD_DIR}"/bin/shared/private/:"${BUILD_DIR}"/bin/shared \ - waf test || die - fi -} - -multilib_src_install() { - waf-utils_src_install - - if multilib_is_native_abi && use doc; then - doman apidocs/man/man3/*.3 - docinto html - dodoc -r apidocs/html/* - fi -} - -pkg_postinst() { - if has_version sys-auth/sssd; then - ewarn "You have sssd installed. It is known to break after ldb upgrades," - ewarn "so please try to rebuild it before reporting bugs." - ewarn "See https://bugs.gentoo.org/404281" - fi -} diff --git a/sys-libs/ldb/ldb-1.1.31.ebuild b/sys-libs/ldb/ldb-1.1.31.ebuild deleted file mode 100644 index eefafd3a0468..000000000000 --- a/sys-libs/ldb/ldb-1.1.31.ebuild +++ /dev/null @@ -1,104 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 -PYTHON_COMPAT=( python2_7 ) -PYTHON_REQ_USE="threads" - -inherit python-single-r1 waf-utils multilib-minimal eutils - -DESCRIPTION="An LDAP-like embedded database" -HOMEPAGE="https://ldb.samba.org/" -SRC_URI="https://www.samba.org/ftp/pub/${PN}/${P}.tar.gz" - -LICENSE="LGPL-3" -SLOT="0/${PV}" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86" -IUSE="doc +ldap python" - -RDEPEND="!elibc_FreeBSD? ( dev-libs/libbsd[${MULTILIB_USEDEP}] ) - dev-libs/popt[${MULTILIB_USEDEP}] - >=dev-util/cmocka-1.1.1[${MULTILIB_USEDEP}] - >=sys-libs/talloc-2.1.9[python?,${MULTILIB_USEDEP}] - >=sys-libs/tevent-0.9.31[python(+)?,${MULTILIB_USEDEP}] - >=sys-libs/tdb-1.3.13[python?,${MULTILIB_USEDEP}] - !!=net-fs/samba-4.0.0[ldb] - python? ( ${PYTHON_DEPS} ) - ldap? ( net-nds/openldap ) - " - -DEPEND="dev-libs/libxslt - doc? ( app-doc/doxygen ) - virtual/pkgconfig - ${PYTHON_DEPS} - ${RDEPEND}" - -REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" - -WAF_BINARY="${S}/buildtools/bin/waf" - -MULTILIB_WRAPPED_HEADERS=( /usr/include/pyldb.h ) - -PATCHES=( - "${FILESDIR}"/${PN}-1.1.31-optional_packages.patch - "${FILESDIR}"/${PN}-1.1.31-talloc-disable-python.patch - "${FILESDIR}"/${PN}-1.1.31-fix_PKGCONFIGDIR-when-python-disabled.patch -) - -pkg_setup() { - python-single-r1_pkg_setup -} - -src_prepare() { - default - multilib_copy_sources -} - -multilib_src_configure() { - local myconf=( - $(usex ldap '' --disable-ldap) \ - --disable-rpath \ - --disable-rpath-install --bundled-libraries=NONE \ - --with-modulesdir="${EPREFIX}"/usr/$(get_libdir)/samba \ - --builtin-libraries=NONE - ) - if ! multilib_is_native_abi; then - myconf+=( --disable-python ) - else - use python || myconf+=( --disable-python ) - fi - waf-utils_src_configure "${myconf[@]}" -} - -multilib_src_compile() { - waf-utils_src_compile - multilib_is_native_abi && use doc && doxygen Doxyfile -} - -multilib_src_test() { - if multilib_is_native_abi; then - WAF_MAKE=1 \ - PATH=buildtools/bin:../../../buildtools/bin:$PATH:"${BUILD_DIR}"/bin/shared/private/ \ - LD_LIBRARY_PATH=$LD_LIBRARY_PATH:"${BUILD_DIR}"/bin/shared/private/:"${BUILD_DIR}"/bin/shared \ - waf test || die - fi -} - -multilib_src_install() { - waf-utils_src_install - - if multilib_is_native_abi && use doc; then - doman apidocs/man/man3/*.3 - docinto html - dodoc -r apidocs/html/* - fi -} - -pkg_postinst() { - if has_version sys-auth/sssd; then - ewarn "You have sssd installed. It is known to break after ldb upgrades," - ewarn "so please try to rebuild it before reporting bugs." - ewarn "See https://bugs.gentoo.org/404281" - fi -} diff --git a/sys-libs/ldb/ldb-1.2.4.ebuild b/sys-libs/ldb/ldb-1.2.4.ebuild deleted file mode 100644 index cf8a380ede1d..000000000000 --- a/sys-libs/ldb/ldb-1.2.4.ebuild +++ /dev/null @@ -1,103 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 -PYTHON_COMPAT=( python2_7 ) -PYTHON_REQ_USE="threads" - -inherit python-single-r1 waf-utils multilib-minimal eutils - -DESCRIPTION="An LDAP-like embedded database" -HOMEPAGE="https://ldb.samba.org/" -SRC_URI="https://www.samba.org/ftp/pub/${PN}/${P}.tar.gz" - -LICENSE="LGPL-3" -SLOT="0/${PV}" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86" -IUSE="doc +ldap python" - -RDEPEND="!elibc_FreeBSD? ( dev-libs/libbsd[${MULTILIB_USEDEP}] ) - dev-libs/popt[${MULTILIB_USEDEP}] - >=dev-util/cmocka-1.1.1[${MULTILIB_USEDEP}] - >=sys-libs/talloc-2.1.10[python?,${MULTILIB_USEDEP}] - >=sys-libs/tevent-0.9.36[python(+)?,${MULTILIB_USEDEP}] - >=sys-libs/tdb-1.3.15[python?,${MULTILIB_USEDEP}] - python? ( ${PYTHON_DEPS} ) - ldap? ( net-nds/openldap ) -" - -DEPEND="dev-libs/libxslt - doc? ( app-doc/doxygen ) - virtual/pkgconfig - ${PYTHON_DEPS} - ${RDEPEND} -" - -REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" - -WAF_BINARY="${S}/buildtools/bin/waf" - -MULTILIB_WRAPPED_HEADERS=( /usr/include/pyldb.h ) - -PATCHES=( - "${FILESDIR}"/${PN}-1.1.31-optional_packages.patch - "${FILESDIR}"/${PN}-1.1.31-fix_PKGCONFIGDIR-when-python-disabled.patch - "${FILESDIR}"/${PN}-1.2.3-disable_python.patch -) - -pkg_setup() { - python-single-r1_pkg_setup -} - -src_prepare() { - default - multilib_copy_sources -} - -multilib_src_configure() { - local myconf=( - $(usex ldap '' --disable-ldap) - --disable-rpath - --disable-rpath-install --bundled-libraries=NONE - --with-modulesdir="${EPREFIX}"/usr/$(get_libdir)/samba - --builtin-libraries=NONE - ) - if ! multilib_is_native_abi; then - myconf+=( --disable-python ) - else - use python || myconf+=( --disable-python ) - fi - waf-utils_src_configure "${myconf[@]}" -} - -multilib_src_compile() { - waf-utils_src_compile - multilib_is_native_abi && use doc && doxygen Doxyfile -} - -multilib_src_test() { - if multilib_is_native_abi; then - WAF_MAKE=1 \ - PATH=buildtools/bin:../../../buildtools/bin:$PATH:"${BUILD_DIR}"/bin/shared/private/ \ - LD_LIBRARY_PATH=$LD_LIBRARY_PATH:"${BUILD_DIR}"/bin/shared/private/:"${BUILD_DIR}"/bin/shared \ - waf test || die - fi -} - -multilib_src_install() { - waf-utils_src_install - - if multilib_is_native_abi && use doc; then - doman apidocs/man/man3/*.3 - docinto html - dodoc -r apidocs/html/* - fi -} - -pkg_postinst() { - if has_version sys-auth/sssd; then - ewarn "You have sssd installed. It is known to break after ldb upgrades," - ewarn "so please try to rebuild it before reporting bugs." - ewarn "See https://bugs.gentoo.org/404281" - fi -} diff --git a/sys-libs/ldb/ldb-1.3.6.ebuild b/sys-libs/ldb/ldb-1.3.6.ebuild deleted file mode 100644 index dd10d39ce1e3..000000000000 --- a/sys-libs/ldb/ldb-1.3.6.ebuild +++ /dev/null @@ -1,103 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 -PYTHON_COMPAT=( python2_7 ) -PYTHON_REQ_USE="threads" - -inherit python-single-r1 waf-utils multilib-minimal eutils - -DESCRIPTION="An LDAP-like embedded database" -HOMEPAGE="https://ldb.samba.org" -SRC_URI="https://www.samba.org/ftp/pub/${PN}/${P}.tar.gz" - -LICENSE="LGPL-3" -SLOT="0/${PV}" -KEYWORDS="~alpha amd64 ~arm ~arm64 hppa ia64 ~mips ppc ppc64 ~s390 ~sh ~sparc x86" -IUSE="doc +ldap python" - -RDEPEND=" - !elibc_FreeBSD? ( dev-libs/libbsd[${MULTILIB_USEDEP}] ) - dev-libs/popt[${MULTILIB_USEDEP}] - >=dev-util/cmocka-1.1.1[${MULTILIB_USEDEP}] - >=sys-libs/talloc-2.1.11[python?,${MULTILIB_USEDEP}] - >=sys-libs/tdb-1.3.15[python?,${MULTILIB_USEDEP}] - >=sys-libs/tevent-0.9.36[python(+)?,${MULTILIB_USEDEP}] - ldap? ( net-nds/openldap ) - python? ( ${PYTHON_DEPS} ) -" - -DEPEND="dev-libs/libxslt - doc? ( app-doc/doxygen ) - virtual/pkgconfig - ${PYTHON_DEPS} - ${RDEPEND} -" - -REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" - -WAF_BINARY="${S}/buildtools/bin/waf" - -MULTILIB_WRAPPED_HEADERS=( /usr/include/pyldb.h ) - -PATCHES=( - "${FILESDIR}"/${PN}-1.1.31-optional_packages.patch - "${FILESDIR}"/${PN}-1.1.31-fix_PKGCONFIGDIR-when-python-disabled.patch -) - -pkg_setup() { - python-single-r1_pkg_setup -} - -src_prepare() { - default - multilib_copy_sources -} - -multilib_src_configure() { - local myconf=( - $(usex ldap '' --disable-ldap) - --disable-rpath - --disable-rpath-install --bundled-libraries=NONE - --with-modulesdir="${EPREFIX}"/usr/$(get_libdir)/samba - --builtin-libraries=NONE - ) - if ! multilib_is_native_abi; then - myconf+=( --disable-python ) - else - use python || myconf+=( --disable-python ) - fi - waf-utils_src_configure "${myconf[@]}" -} - -multilib_src_compile() { - waf-utils_src_compile - multilib_is_native_abi && use doc && doxygen Doxyfile -} - -multilib_src_test() { - if multilib_is_native_abi; then - WAF_MAKE=1 \ - PATH=buildtools/bin:../../../buildtools/bin:$PATH:"${BUILD_DIR}"/bin/shared/private/ \ - LD_LIBRARY_PATH=$LD_LIBRARY_PATH:"${BUILD_DIR}"/bin/shared/private/:"${BUILD_DIR}"/bin/shared \ - waf test || die - fi -} - -multilib_src_install() { - waf-utils_src_install - - if multilib_is_native_abi && use doc; then - doman apidocs/man/man3/*.3 - docinto html - dodoc -r apidocs/html/* - fi -} - -pkg_postinst() { - if has_version sys-auth/sssd; then - ewarn "You have sssd installed. It is known to break after ldb upgrades," - ewarn "so please try to rebuild it before reporting bugs." - ewarn "See https://bugs.gentoo.org/404281" - fi -} diff --git a/sys-libs/ldb/ldb-1.3.8.ebuild b/sys-libs/ldb/ldb-1.3.8.ebuild deleted file mode 100644 index c67965ec43e4..000000000000 --- a/sys-libs/ldb/ldb-1.3.8.ebuild +++ /dev/null @@ -1,103 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 -PYTHON_COMPAT=( python2_7 ) -PYTHON_REQ_USE="threads" - -inherit python-single-r1 waf-utils multilib-minimal eutils - -DESCRIPTION="An LDAP-like embedded database" -HOMEPAGE="https://ldb.samba.org" -SRC_URI="https://www.samba.org/ftp/pub/${PN}/${P}.tar.gz" - -LICENSE="LGPL-3" -SLOT="0/${PV}" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86" -IUSE="doc +ldap python" - -RDEPEND=" - !elibc_FreeBSD? ( dev-libs/libbsd[${MULTILIB_USEDEP}] ) - dev-libs/popt[${MULTILIB_USEDEP}] - >=dev-util/cmocka-1.1.1[${MULTILIB_USEDEP}] - >=sys-libs/talloc-2.1.11[python?,${MULTILIB_USEDEP}] - >=sys-libs/tdb-1.3.15[python?,${MULTILIB_USEDEP}] - >=sys-libs/tevent-0.9.36[python(+)?,${MULTILIB_USEDEP}] - ldap? ( net-nds/openldap ) - python? ( ${PYTHON_DEPS} ) -" - -DEPEND="dev-libs/libxslt - doc? ( app-doc/doxygen ) - virtual/pkgconfig - ${PYTHON_DEPS} - ${RDEPEND} -" - -REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" - -WAF_BINARY="${S}/buildtools/bin/waf" - -MULTILIB_WRAPPED_HEADERS=( /usr/include/pyldb.h ) - -PATCHES=( - "${FILESDIR}"/${PN}-1.1.31-optional_packages.patch - "${FILESDIR}"/${PN}-1.1.31-fix_PKGCONFIGDIR-when-python-disabled.patch -) - -pkg_setup() { - python-single-r1_pkg_setup -} - -src_prepare() { - default - multilib_copy_sources -} - -multilib_src_configure() { - local myconf=( - $(usex ldap '' --disable-ldap) - --disable-rpath - --disable-rpath-install --bundled-libraries=NONE - --with-modulesdir="${EPREFIX}"/usr/$(get_libdir)/samba - --builtin-libraries=NONE - ) - if ! multilib_is_native_abi; then - myconf+=( --disable-python ) - else - use python || myconf+=( --disable-python ) - fi - waf-utils_src_configure "${myconf[@]}" -} - -multilib_src_compile() { - waf-utils_src_compile - multilib_is_native_abi && use doc && doxygen Doxyfile -} - -multilib_src_test() { - if multilib_is_native_abi; then - WAF_MAKE=1 \ - PATH=buildtools/bin:../../../buildtools/bin:$PATH:"${BUILD_DIR}"/bin/shared/private/ \ - LD_LIBRARY_PATH=$LD_LIBRARY_PATH:"${BUILD_DIR}"/bin/shared/private/:"${BUILD_DIR}"/bin/shared \ - waf test || die - fi -} - -multilib_src_install() { - waf-utils_src_install - - if multilib_is_native_abi && use doc; then - doman apidocs/man/man3/*.3 - docinto html - dodoc -r apidocs/html/* - fi -} - -pkg_postinst() { - if has_version sys-auth/sssd; then - ewarn "You have sssd installed. It is known to break after ldb upgrades," - ewarn "so please try to rebuild it before reporting bugs." - ewarn "See https://bugs.gentoo.org/404281" - fi -} diff --git a/sys-libs/ldb/ldb-1.4.8.ebuild b/sys-libs/ldb/ldb-1.4.8.ebuild deleted file mode 100644 index 79adbc97587d..000000000000 --- a/sys-libs/ldb/ldb-1.4.8.ebuild +++ /dev/null @@ -1,105 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 -PYTHON_COMPAT=( python2_7 ) -PYTHON_REQ_USE="threads" - -inherit python-single-r1 waf-utils multilib-minimal eutils - -DESCRIPTION="An LDAP-like embedded database" -HOMEPAGE="https://ldb.samba.org" -SRC_URI="https://www.samba.org/ftp/pub/${PN}/${P}.tar.gz" - -LICENSE="LGPL-3" -SLOT="0/${PV}" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86" -IUSE="doc +ldap +lmdb python" - -RDEPEND=" - !elibc_FreeBSD? ( dev-libs/libbsd[${MULTILIB_USEDEP}] ) - dev-libs/popt[${MULTILIB_USEDEP}] - >=dev-util/cmocka-1.1.1[${MULTILIB_USEDEP}] - >=sys-libs/talloc-2.1.14[python?,${MULTILIB_USEDEP}] - >=sys-libs/tdb-1.3.16[python?,${MULTILIB_USEDEP}] - >=sys-libs/tevent-0.9.37[python(+)?,${MULTILIB_USEDEP}] - ldap? ( net-nds/openldap ) - lmdb? ( >=dev-db/lmdb-0.9.16[${MULTILIB_USEDEP}] ) - python? ( ${PYTHON_DEPS} ) -" - -DEPEND="dev-libs/libxslt - doc? ( app-doc/doxygen ) - virtual/pkgconfig - ${PYTHON_DEPS} - ${RDEPEND} -" - -REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" - -WAF_BINARY="${S}/buildtools/bin/waf" - -MULTILIB_WRAPPED_HEADERS=( /usr/include/pyldb.h ) - -PATCHES=( - "${FILESDIR}"/${PN}-1.4.0-optional_packages.patch - "${FILESDIR}"/${PN}-1.1.31-fix_PKGCONFIGDIR-when-python-disabled.patch -) - -pkg_setup() { - python-single-r1_pkg_setup -} - -src_prepare() { - default - multilib_copy_sources -} - -multilib_src_configure() { - local myconf=( - $(usex ldap '' --disable-ldap) - $(usex lmdb '' --without-ldb-lmdb) - --disable-rpath - --disable-rpath-install --bundled-libraries=NONE - --with-modulesdir="${EPREFIX}"/usr/$(get_libdir)/samba - --builtin-libraries=NONE - ) - if ! multilib_is_native_abi; then - myconf+=( --disable-python ) - else - use python || myconf+=( --disable-python ) - fi - waf-utils_src_configure "${myconf[@]}" -} - -multilib_src_compile() { - waf-utils_src_compile - multilib_is_native_abi && use doc && doxygen Doxyfile -} - -multilib_src_test() { - if multilib_is_native_abi; then - WAF_MAKE=1 \ - PATH=buildtools/bin:../../../buildtools/bin:$PATH:"${BUILD_DIR}"/bin/shared/private/ \ - LD_LIBRARY_PATH=$LD_LIBRARY_PATH:"${BUILD_DIR}"/bin/shared/private/:"${BUILD_DIR}"/bin/shared \ - waf test || die - fi -} - -multilib_src_install() { - waf-utils_src_install - - if multilib_is_native_abi && use doc; then - doman apidocs/man/man3/*.3 - docinto html - dodoc -r apidocs/html/* - fi -} - -pkg_postinst() { - if has_version sys-auth/sssd; then - ewarn "You have sssd installed. It is known to break after ldb upgrades," - ewarn "so please try to rebuild it before reporting bugs." - ewarn "See https://bugs.gentoo.org/404281" - fi -} diff --git a/sys-libs/ldb/ldb-1.5.4.ebuild b/sys-libs/ldb/ldb-1.5.4.ebuild deleted file mode 100644 index 4d482e984348..000000000000 --- a/sys-libs/ldb/ldb-1.5.4.ebuild +++ /dev/null @@ -1,105 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 -PYTHON_COMPAT=( python3_{6,7} ) -PYTHON_REQ_USE="threads(+)" - -inherit python-single-r1 waf-utils multilib-minimal eutils - -DESCRIPTION="An LDAP-like embedded database" -HOMEPAGE="https://ldb.samba.org" -SRC_URI="https://www.samba.org/ftp/pub/${PN}/${P}.tar.gz" - -LICENSE="LGPL-3" -SLOT="0/${PV}" -KEYWORDS="~alpha ~amd64 ~arm arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86" -IUSE="doc +ldap +lmdb python" - -RDEPEND=" - !elibc_FreeBSD? ( dev-libs/libbsd[${MULTILIB_USEDEP}] ) - dev-libs/popt[${MULTILIB_USEDEP}] - >=dev-util/cmocka-1.1.3[${MULTILIB_USEDEP}] - >=sys-libs/talloc-2.1.16[python?,${MULTILIB_USEDEP}] - >=sys-libs/tdb-1.3.18[python?,${MULTILIB_USEDEP}] - >=sys-libs/tevent-0.9.39[python(+)?,${MULTILIB_USEDEP}] - ldap? ( net-nds/openldap ) - lmdb? ( >=dev-db/lmdb-0.9.16[${MULTILIB_USEDEP}] ) - python? ( ${PYTHON_DEPS} ) -" - -DEPEND="dev-libs/libxslt - doc? ( app-doc/doxygen ) - virtual/pkgconfig - ${PYTHON_DEPS} - ${RDEPEND} -" - -REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" - -WAF_BINARY="${S}/buildtools/bin/waf" - -MULTILIB_WRAPPED_HEADERS=( /usr/include/pyldb.h ) - -PATCHES=( - "${FILESDIR}"/${PN}-1.5.2-optional_packages.patch - "${FILESDIR}"/${PN}-1.1.31-fix_PKGCONFIGDIR-when-python-disabled.patch -) - -pkg_setup() { - python-single-r1_pkg_setup -} - -src_prepare() { - default - multilib_copy_sources -} - -multilib_src_configure() { - local myconf=( - $(usex ldap '' --disable-ldap) - $(usex lmdb '' --without-ldb-lmdb) - --disable-rpath - --disable-rpath-install --bundled-libraries=NONE - --with-modulesdir="${EPREFIX}"/usr/$(get_libdir)/samba - --builtin-libraries=NONE - ) - if ! multilib_is_native_abi; then - myconf+=( --disable-python ) - else - use python || myconf+=( --disable-python ) - fi - waf-utils_src_configure "${myconf[@]}" -} - -multilib_src_compile() { - waf-utils_src_compile - multilib_is_native_abi && use doc && doxygen Doxyfile -} - -multilib_src_test() { - if multilib_is_native_abi; then - WAF_MAKE=1 \ - PATH=buildtools/bin:../../../buildtools/bin:$PATH:"${BUILD_DIR}"/bin/shared/private/ \ - LD_LIBRARY_PATH=$LD_LIBRARY_PATH:"${BUILD_DIR}"/bin/shared/private/:"${BUILD_DIR}"/bin/shared \ - waf test || die - fi -} - -multilib_src_install() { - waf-utils_src_install - - if multilib_is_native_abi && use doc; then - doman apidocs/man/man3/*.3 - docinto html - dodoc -r apidocs/html/* - fi -} - -pkg_postinst() { - if has_version sys-auth/sssd; then - ewarn "You have sssd installed. It is known to break after ldb upgrades," - ewarn "so please try to rebuild it before reporting bugs." - ewarn "See https://bugs.gentoo.org/404281" - fi -} diff --git a/sys-libs/ldb/ldb-1.5.6.ebuild b/sys-libs/ldb/ldb-1.5.6.ebuild deleted file mode 100644 index e923eb6743da..000000000000 --- a/sys-libs/ldb/ldb-1.5.6.ebuild +++ /dev/null @@ -1,105 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 -PYTHON_COMPAT=( python3_{6,7} ) -PYTHON_REQ_USE="threads(+)" - -inherit python-single-r1 waf-utils multilib-minimal eutils - -DESCRIPTION="An LDAP-like embedded database" -HOMEPAGE="https://ldb.samba.org" -SRC_URI="https://www.samba.org/ftp/pub/${PN}/${P}.tar.gz" - -LICENSE="LGPL-3" -SLOT="0/${PV}" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86" -IUSE="doc +ldap +lmdb python" - -RDEPEND=" - !elibc_FreeBSD? ( dev-libs/libbsd[${MULTILIB_USEDEP}] ) - dev-libs/popt[${MULTILIB_USEDEP}] - >=dev-util/cmocka-1.1.3[${MULTILIB_USEDEP}] - >=sys-libs/talloc-2.1.16[python?,${MULTILIB_USEDEP}] - >=sys-libs/tdb-1.3.18[python?,${MULTILIB_USEDEP}] - >=sys-libs/tevent-0.9.39[python(+)?,${MULTILIB_USEDEP}] - ldap? ( net-nds/openldap ) - lmdb? ( >=dev-db/lmdb-0.9.16[${MULTILIB_USEDEP}] ) - python? ( ${PYTHON_DEPS} ) -" - -DEPEND="dev-libs/libxslt - doc? ( app-doc/doxygen ) - virtual/pkgconfig - ${PYTHON_DEPS} - ${RDEPEND} -" - -REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" - -WAF_BINARY="${S}/buildtools/bin/waf" - -MULTILIB_WRAPPED_HEADERS=( /usr/include/pyldb.h ) - -PATCHES=( - "${FILESDIR}"/${PN}-1.5.2-optional_packages.patch - "${FILESDIR}"/${PN}-1.1.31-fix_PKGCONFIGDIR-when-python-disabled.patch -) - -pkg_setup() { - python-single-r1_pkg_setup -} - -src_prepare() { - default - multilib_copy_sources -} - -multilib_src_configure() { - local myconf=( - $(usex ldap '' --disable-ldap) - $(usex lmdb '' --without-ldb-lmdb) - --disable-rpath - --disable-rpath-install --bundled-libraries=NONE - --with-modulesdir="${EPREFIX}"/usr/$(get_libdir)/samba - --builtin-libraries=NONE - ) - if ! multilib_is_native_abi; then - myconf+=( --disable-python ) - else - use python || myconf+=( --disable-python ) - fi - waf-utils_src_configure "${myconf[@]}" -} - -multilib_src_compile() { - waf-utils_src_compile - multilib_is_native_abi && use doc && doxygen Doxyfile -} - -multilib_src_test() { - if multilib_is_native_abi; then - WAF_MAKE=1 \ - PATH=buildtools/bin:../../../buildtools/bin:$PATH:"${BUILD_DIR}"/bin/shared/private/ \ - LD_LIBRARY_PATH=$LD_LIBRARY_PATH:"${BUILD_DIR}"/bin/shared/private/:"${BUILD_DIR}"/bin/shared \ - waf test || die - fi -} - -multilib_src_install() { - waf-utils_src_install - - if multilib_is_native_abi && use doc; then - doman apidocs/man/man3/*.3 - docinto html - dodoc -r apidocs/html/* - fi -} - -pkg_postinst() { - if has_version sys-auth/sssd; then - ewarn "You have sssd installed. It is known to break after ldb upgrades," - ewarn "so please try to rebuild it before reporting bugs." - ewarn "See https://bugs.gentoo.org/404281" - fi -} diff --git a/sys-libs/ldb/ldb-1.6.3.ebuild b/sys-libs/ldb/ldb-1.6.3.ebuild deleted file mode 100644 index e923eb6743da..000000000000 --- a/sys-libs/ldb/ldb-1.6.3.ebuild +++ /dev/null @@ -1,105 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 -PYTHON_COMPAT=( python3_{6,7} ) -PYTHON_REQ_USE="threads(+)" - -inherit python-single-r1 waf-utils multilib-minimal eutils - -DESCRIPTION="An LDAP-like embedded database" -HOMEPAGE="https://ldb.samba.org" -SRC_URI="https://www.samba.org/ftp/pub/${PN}/${P}.tar.gz" - -LICENSE="LGPL-3" -SLOT="0/${PV}" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86" -IUSE="doc +ldap +lmdb python" - -RDEPEND=" - !elibc_FreeBSD? ( dev-libs/libbsd[${MULTILIB_USEDEP}] ) - dev-libs/popt[${MULTILIB_USEDEP}] - >=dev-util/cmocka-1.1.3[${MULTILIB_USEDEP}] - >=sys-libs/talloc-2.1.16[python?,${MULTILIB_USEDEP}] - >=sys-libs/tdb-1.3.18[python?,${MULTILIB_USEDEP}] - >=sys-libs/tevent-0.9.39[python(+)?,${MULTILIB_USEDEP}] - ldap? ( net-nds/openldap ) - lmdb? ( >=dev-db/lmdb-0.9.16[${MULTILIB_USEDEP}] ) - python? ( ${PYTHON_DEPS} ) -" - -DEPEND="dev-libs/libxslt - doc? ( app-doc/doxygen ) - virtual/pkgconfig - ${PYTHON_DEPS} - ${RDEPEND} -" - -REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" - -WAF_BINARY="${S}/buildtools/bin/waf" - -MULTILIB_WRAPPED_HEADERS=( /usr/include/pyldb.h ) - -PATCHES=( - "${FILESDIR}"/${PN}-1.5.2-optional_packages.patch - "${FILESDIR}"/${PN}-1.1.31-fix_PKGCONFIGDIR-when-python-disabled.patch -) - -pkg_setup() { - python-single-r1_pkg_setup -} - -src_prepare() { - default - multilib_copy_sources -} - -multilib_src_configure() { - local myconf=( - $(usex ldap '' --disable-ldap) - $(usex lmdb '' --without-ldb-lmdb) - --disable-rpath - --disable-rpath-install --bundled-libraries=NONE - --with-modulesdir="${EPREFIX}"/usr/$(get_libdir)/samba - --builtin-libraries=NONE - ) - if ! multilib_is_native_abi; then - myconf+=( --disable-python ) - else - use python || myconf+=( --disable-python ) - fi - waf-utils_src_configure "${myconf[@]}" -} - -multilib_src_compile() { - waf-utils_src_compile - multilib_is_native_abi && use doc && doxygen Doxyfile -} - -multilib_src_test() { - if multilib_is_native_abi; then - WAF_MAKE=1 \ - PATH=buildtools/bin:../../../buildtools/bin:$PATH:"${BUILD_DIR}"/bin/shared/private/ \ - LD_LIBRARY_PATH=$LD_LIBRARY_PATH:"${BUILD_DIR}"/bin/shared/private/:"${BUILD_DIR}"/bin/shared \ - waf test || die - fi -} - -multilib_src_install() { - waf-utils_src_install - - if multilib_is_native_abi && use doc; then - doman apidocs/man/man3/*.3 - docinto html - dodoc -r apidocs/html/* - fi -} - -pkg_postinst() { - if has_version sys-auth/sssd; then - ewarn "You have sssd installed. It is known to break after ldb upgrades," - ewarn "so please try to rebuild it before reporting bugs." - ewarn "See https://bugs.gentoo.org/404281" - fi -} diff --git a/sys-libs/ldb/ldb-2.0.7.ebuild b/sys-libs/ldb/ldb-2.0.7.ebuild deleted file mode 100644 index 7ff1765745cd..000000000000 --- a/sys-libs/ldb/ldb-2.0.7.ebuild +++ /dev/null @@ -1,105 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 -PYTHON_COMPAT=( python3_{6,7} ) -PYTHON_REQ_USE="threads(+)" - -inherit python-single-r1 waf-utils multilib-minimal eutils - -DESCRIPTION="An LDAP-like embedded database" -HOMEPAGE="https://ldb.samba.org" -SRC_URI="https://www.samba.org/ftp/pub/${PN}/${P}.tar.gz" - -LICENSE="LGPL-3" -SLOT="0/${PV}" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86" -IUSE="doc +ldap +lmdb python" - -RDEPEND=" - !elibc_FreeBSD? ( dev-libs/libbsd[${MULTILIB_USEDEP}] ) - dev-libs/popt[${MULTILIB_USEDEP}] - >=dev-util/cmocka-1.1.3[${MULTILIB_USEDEP}] - >=sys-libs/talloc-2.2.0[python?,${MULTILIB_USEDEP}] - >=sys-libs/tdb-1.4.2[python?,${MULTILIB_USEDEP}] - >=sys-libs/tevent-0.10.0[python(+)?,${MULTILIB_USEDEP}] - ldap? ( net-nds/openldap ) - lmdb? ( >=dev-db/lmdb-0.9.16[${MULTILIB_USEDEP}] ) - python? ( ${PYTHON_DEPS} ) -" - -DEPEND="dev-libs/libxslt - doc? ( app-doc/doxygen ) - virtual/pkgconfig - ${PYTHON_DEPS} - ${RDEPEND} -" - -REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" - -WAF_BINARY="${S}/buildtools/bin/waf" - -MULTILIB_WRAPPED_HEADERS=( /usr/include/pyldb.h ) - -PATCHES=( - "${FILESDIR}"/${PN}-1.5.2-optional_packages.patch - "${FILESDIR}"/${PN}-1.1.31-fix_PKGCONFIGDIR-when-python-disabled.patch -) - -pkg_setup() { - python-single-r1_pkg_setup -} - -src_prepare() { - default - multilib_copy_sources -} - -multilib_src_configure() { - local myconf=( - $(usex ldap '' --disable-ldap) - $(usex lmdb '' --without-ldb-lmdb) - --disable-rpath - --disable-rpath-install --bundled-libraries=NONE - --with-modulesdir="${EPREFIX}"/usr/$(get_libdir)/samba - --builtin-libraries=NONE - ) - if ! multilib_is_native_abi; then - myconf+=( --disable-python ) - else - use python || myconf+=( --disable-python ) - fi - waf-utils_src_configure "${myconf[@]}" -} - -multilib_src_compile() { - waf-utils_src_compile - multilib_is_native_abi && use doc && doxygen Doxyfile -} - -multilib_src_test() { - if multilib_is_native_abi; then - WAF_MAKE=1 \ - PATH=buildtools/bin:../../../buildtools/bin:$PATH:"${BUILD_DIR}"/bin/shared/private/ \ - LD_LIBRARY_PATH=$LD_LIBRARY_PATH:"${BUILD_DIR}"/bin/shared/private/:"${BUILD_DIR}"/bin/shared \ - waf test || die - fi -} - -multilib_src_install() { - waf-utils_src_install - - if multilib_is_native_abi && use doc; then - doman apidocs/man/man3/*.3 - docinto html - dodoc -r apidocs/html/* - fi -} - -pkg_postinst() { - if has_version sys-auth/sssd; then - ewarn "You have sssd installed. It is known to break after ldb upgrades," - ewarn "so please try to rebuild it before reporting bugs." - ewarn "See https://bugs.gentoo.org/404281" - fi -} diff --git a/sys-libs/ldb/ldb-2.0.8.ebuild b/sys-libs/ldb/ldb-2.0.8.ebuild index 7907603045a3..ef525af0a11a 100644 --- a/sys-libs/ldb/ldb-2.0.8.ebuild +++ b/sys-libs/ldb/ldb-2.0.8.ebuild @@ -13,11 +13,10 @@ SRC_URI="https://www.samba.org/ftp/pub/${PN}/${P}.tar.gz" LICENSE="LGPL-3" SLOT="0/${PV}" -KEYWORDS="~alpha amd64 arm ~arm64 ~hppa ia64 ~mips ppc ppc64 ~s390 ~sh ~sparc x86" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~mips ppc ppc64 ~s390 sparc x86" IUSE="doc +ldap +lmdb python test" RESTRICT="!test? ( test )" -REQUIRED_USE="test? ( python )" RDEPEND=" !elibc_FreeBSD? ( dev-libs/libbsd[${MULTILIB_USEDEP}] ) @@ -38,7 +37,8 @@ DEPEND="dev-libs/libxslt ${RDEPEND} " -REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" +REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} ) + test? ( python )" WAF_BINARY="${S}/buildtools/bin/waf" diff --git a/sys-libs/ldb/ldb-2.0.9.ebuild b/sys-libs/ldb/ldb-2.0.9.ebuild new file mode 100644 index 000000000000..484c8a1afd84 --- /dev/null +++ b/sys-libs/ldb/ldb-2.0.9.ebuild @@ -0,0 +1,108 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 +PYTHON_COMPAT=( python3_{6,7,8} ) +PYTHON_REQ_USE="threads(+)" + +inherit python-single-r1 waf-utils multilib-minimal eutils + +DESCRIPTION="An LDAP-like embedded database" +HOMEPAGE="https://ldb.samba.org" +SRC_URI="https://www.samba.org/ftp/pub/${PN}/${P}.tar.gz" + +LICENSE="LGPL-3" +SLOT="0/${PV}" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86" +IUSE="doc +ldap +lmdb python test" + +RESTRICT="!test? ( test )" + +RDEPEND=" + !elibc_FreeBSD? ( dev-libs/libbsd[${MULTILIB_USEDEP}] ) + dev-libs/popt[${MULTILIB_USEDEP}] + >=dev-util/cmocka-1.1.3[${MULTILIB_USEDEP}] + >=sys-libs/talloc-2.2.0[python?,${MULTILIB_USEDEP}] + >=sys-libs/tdb-1.4.2[python?,${MULTILIB_USEDEP}] + >=sys-libs/tevent-0.10.0[python(+)?,${MULTILIB_USEDEP}] + ldap? ( net-nds/openldap ) + lmdb? ( >=dev-db/lmdb-0.9.16[${MULTILIB_USEDEP}] ) + python? ( ${PYTHON_DEPS} ) +" + +DEPEND="dev-libs/libxslt + doc? ( app-doc/doxygen ) + virtual/pkgconfig + ${PYTHON_DEPS} + ${RDEPEND} +" + +REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} ) + test? ( python )" + +WAF_BINARY="${S}/buildtools/bin/waf" + +MULTILIB_WRAPPED_HEADERS=( /usr/include/pyldb.h ) + +PATCHES=( + "${FILESDIR}"/${PN}-1.5.2-optional_packages.patch + "${FILESDIR}"/${PN}-1.1.31-fix_PKGCONFIGDIR-when-python-disabled.patch +) + +pkg_setup() { + python-single-r1_pkg_setup +} + +src_prepare() { + default + multilib_copy_sources +} + +multilib_src_configure() { + local myconf=( + $(usex ldap '' --disable-ldap) + $(usex lmdb '' --without-ldb-lmdb) + --disable-rpath + --disable-rpath-install --bundled-libraries=NONE + --with-modulesdir="${EPREFIX}"/usr/$(get_libdir)/samba + --builtin-libraries=NONE + ) + if ! multilib_is_native_abi; then + myconf+=( --disable-python ) + else + use python || myconf+=( --disable-python ) + fi + waf-utils_src_configure "${myconf[@]}" +} + +multilib_src_compile() { + waf-utils_src_compile + multilib_is_native_abi && use doc && doxygen Doxyfile +} + +multilib_src_test() { + if multilib_is_native_abi; then + WAF_MAKE=1 \ + PATH=buildtools/bin:../../../buildtools/bin:$PATH:"${BUILD_DIR}"/bin/shared/private/ \ + LD_LIBRARY_PATH=$LD_LIBRARY_PATH:"${BUILD_DIR}"/bin/shared/private/:"${BUILD_DIR}"/bin/shared \ + waf test || die + fi +} + +multilib_src_install() { + waf-utils_src_install + + if multilib_is_native_abi && use doc; then + doman apidocs/man/man3/*.3 + docinto html + dodoc -r apidocs/html/* + fi +} + +pkg_postinst() { + if has_version sys-auth/sssd; then + ewarn "You have sssd installed. It is known to break after ldb upgrades," + ewarn "so please try to rebuild it before reporting bugs." + ewarn "See https://bugs.gentoo.org/404281" + fi +} diff --git a/sys-libs/ldb/ldb-2.1.1.ebuild b/sys-libs/ldb/ldb-2.1.1.ebuild new file mode 100644 index 000000000000..e1deb520305b --- /dev/null +++ b/sys-libs/ldb/ldb-2.1.1.ebuild @@ -0,0 +1,108 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 +PYTHON_COMPAT=( python3_{6,7,8} ) +PYTHON_REQ_USE="threads(+)" + +inherit python-single-r1 waf-utils multilib-minimal eutils + +DESCRIPTION="An LDAP-like embedded database" +HOMEPAGE="https://ldb.samba.org" +SRC_URI="https://www.samba.org/ftp/pub/${PN}/${P}.tar.gz" + +LICENSE="LGPL-3" +SLOT="0/${PV}" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86" +IUSE="doc +ldap +lmdb python test" + +RESTRICT="!test? ( test )" + +RDEPEND=" + !elibc_FreeBSD? ( dev-libs/libbsd[${MULTILIB_USEDEP}] ) + dev-libs/popt[${MULTILIB_USEDEP}] + >=dev-util/cmocka-1.1.3[${MULTILIB_USEDEP}] + >=sys-libs/talloc-2.3.1[python?,${MULTILIB_USEDEP}] + >=sys-libs/tdb-1.4.3[python?,${MULTILIB_USEDEP}] + >=sys-libs/tevent-0.10.2[python(+)?,${MULTILIB_USEDEP}] + ldap? ( net-nds/openldap ) + lmdb? ( >=dev-db/lmdb-0.9.16[${MULTILIB_USEDEP}] ) + python? ( ${PYTHON_DEPS} ) +" + +DEPEND="dev-libs/libxslt + doc? ( app-doc/doxygen ) + virtual/pkgconfig + ${PYTHON_DEPS} + ${RDEPEND} +" + +REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} ) + test? ( python )" + +WAF_BINARY="${S}/buildtools/bin/waf" + +MULTILIB_WRAPPED_HEADERS=( /usr/include/pyldb.h ) + +PATCHES=( + "${FILESDIR}"/${PN}-1.5.2-optional_packages.patch + "${FILESDIR}"/${PN}-1.1.31-fix_PKGCONFIGDIR-when-python-disabled.patch +) + +pkg_setup() { + python-single-r1_pkg_setup +} + +src_prepare() { + default + multilib_copy_sources +} + +multilib_src_configure() { + local myconf=( + $(usex ldap '' --disable-ldap) + $(usex lmdb '' --without-ldb-lmdb) + --disable-rpath + --disable-rpath-install --bundled-libraries=NONE + --with-modulesdir="${EPREFIX}"/usr/$(get_libdir)/samba + --builtin-libraries=NONE + ) + if ! multilib_is_native_abi; then + myconf+=( --disable-python ) + else + use python || myconf+=( --disable-python ) + fi + waf-utils_src_configure "${myconf[@]}" +} + +multilib_src_compile() { + waf-utils_src_compile + multilib_is_native_abi && use doc && doxygen Doxyfile +} + +multilib_src_test() { + if multilib_is_native_abi; then + WAF_MAKE=1 \ + PATH=buildtools/bin:../../../buildtools/bin:$PATH:"${BUILD_DIR}"/bin/shared/private/ \ + LD_LIBRARY_PATH=$LD_LIBRARY_PATH:"${BUILD_DIR}"/bin/shared/private/:"${BUILD_DIR}"/bin/shared \ + waf test || die + fi +} + +multilib_src_install() { + waf-utils_src_install + + if multilib_is_native_abi && use doc; then + doman apidocs/man/man3/*.3 + docinto html + dodoc -r apidocs/html/* + fi +} + +pkg_postinst() { + if has_version sys-auth/sssd; then + ewarn "You have sssd installed. It is known to break after ldb upgrades," + ewarn "so please try to rebuild it before reporting bugs." + ewarn "See https://bugs.gentoo.org/404281" + fi +} diff --git a/sys-libs/libapparmor/Manifest b/sys-libs/libapparmor/Manifest index 9edcf27ceeef..97648bdab73a 100644 --- a/sys-libs/libapparmor/Manifest +++ b/sys-libs/libapparmor/Manifest @@ -1,5 +1,7 @@ AUX libapparmor-2.10-symbol_visibility.patch 219 BLAKE2B 37bb9ceabfedde6f21e313fcc6a85563fdeca86863e681fa40689b5ce8cb5bdf87947c19b176d7f96edac562b6420a0ae6aae717967782e1bd1bb6ffd4782671 SHA512 93c5e19a6cdfce232a71f9b33b1e96dff44b947c06fc6e348a31038ef78bec7b90e49698681a4010bffd4274ff17a304542b549a8840458b3ab17d4ef1b53d36 DIST apparmor-2.13.3.tar.gz 7384974 BLAKE2B fd519f7b845db3203c8f47ff5abc7d9f20a7947fe86799b6fffcfaabaf5130fe0aa6589314f201c1df59cfd0fb22b80a12d364e9ca1279b14ba89ec469e3b346 SHA512 137b2bf026ec655b662e9c264d7d48d878db474a3f1cc5a38bfd7df2f85b682bddb77b091ab5595178231a0a262c9ae9cdd61409461cd889bdee156906ef1141 +DIST apparmor-2.13.4.tar.gz 7390179 BLAKE2B 49818a010d5e5757dd43710f2af925fbb62a9f8f9be74556ff31a9a8834bebac010762fc6bef3da8d295e487b65d0e0135f4be25bcb01a834846c5e5d65d92a4 SHA512 d42748bf36ae66849f79653a62d499e9d17a97c4d680fb653eb1c379d0593aaa09f7ddfc6f2fa0d2fb468bce05fb25444976f60a5ec24778fdd7ec20d1c13651 EBUILD libapparmor-2.13.3-r1.ebuild 2123 BLAKE2B 0ebec49f43de365c69e6c05c1b00ad71862bd91ef37b81cefc7aed801ac65b2fcc9d9a262b50e683a6bfeb0f62a6b31147732b4d3520f0c042ecc4b94c6ccae5 SHA512 e88f2f55971401a050ab1a6a1ed91e998ca88cd467001d15068cb441daaafb4c1079ec0351bdb1c7094663ee502e5b9074b96d48cf2683e9c00d42adf4d31c7f EBUILD libapparmor-2.13.3.ebuild 2069 BLAKE2B 9246b49088c449716e4833abf3edada215c7611998ed127d9b06502a7035bc9ecf1521cc5ce04c4fa7c648dba14887b1a92fbd5f92255a1fdb0d6424cf85cbab SHA512 04b36bbce32bae4895731605b1201ac0a2246b1979b5bde0b69b7249f821a499b8a671d01fcf5e7f5e78783c899785d53708ebdebd45f62e5afd3d3a4119a5db +EBUILD libapparmor-2.13.4.ebuild 2123 BLAKE2B 0ebec49f43de365c69e6c05c1b00ad71862bd91ef37b81cefc7aed801ac65b2fcc9d9a262b50e683a6bfeb0f62a6b31147732b4d3520f0c042ecc4b94c6ccae5 SHA512 e88f2f55971401a050ab1a6a1ed91e998ca88cd467001d15068cb441daaafb4c1079ec0351bdb1c7094663ee502e5b9074b96d48cf2683e9c00d42adf4d31c7f MISC metadata.xml 409 BLAKE2B 63cb1726a015cf118e8ffcc8cf9d49795a75d367e36b0332fbf23faad8b3eed41e2ae090cc92757e12248d831e0ea1782b6f275ef02b7d2d2022bf2b79f69042 SHA512 a66647c5e40f2593017942c12786dc30995e7980fdb58c1de0b9ae34069434cb5a4c70b2bd268a239df82edfcc1e7288e8033bf57609f757a321639afd5e78b8 diff --git a/sys-libs/libapparmor/libapparmor-2.13.4.ebuild b/sys-libs/libapparmor/libapparmor-2.13.4.ebuild new file mode 100644 index 000000000000..0ccd35241d42 --- /dev/null +++ b/sys-libs/libapparmor/libapparmor-2.13.4.ebuild @@ -0,0 +1,98 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +DISTUTILS_OPTIONAL=1 +PYTHON_COMPAT=( python3_{5,6,7,8} ) +GENTOO_DEPEND_ON_PERL="no" + +inherit autotools distutils-r1 perl-functions + +MY_PV="$(ver_cut 1-2)" + +DESCRIPTION="Library to support AppArmor userspace utilities" +HOMEPAGE="https://gitlab.com/apparmor/apparmor/wikis/home" +SRC_URI="https://launchpad.net/apparmor/${MY_PV}/${PV}/+download/apparmor-${PV}.tar.gz" + +LICENSE="GPL-2 LGPL-2.1" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~x86" +IUSE="doc +perl +python static-libs" + +REQUIRED_USE="${PYTHON_REQUIRED_USE}" + +RDEPEND="perl? ( dev-lang/perl:= ) + python? ( ${PYTHON_DEPS} )" +DEPEND="${RDEPEND} + sys-devel/autoconf-archive + sys-devel/bison + sys-devel/flex + doc? ( dev-lang/perl ) + perl? ( dev-lang/swig ) + python? ( dev-lang/swig )" + +S=${WORKDIR}/apparmor-${PV}/libraries/${PN} + +PATCHES=( "${FILESDIR}/${PN}-2.10-symbol_visibility.patch" ) + +# depends on the package already being installed +RESTRICT="test" + +src_prepare() { + rm -r m4 || die "failed to remove bundled macros" + default + eautoreconf + use python && distutils-r1_src_prepare +} + +src_configure() { + econf \ + $(use_enable static-libs static) \ + $(use_with perl) \ + $(use_with python) +} + +src_compile() { + emake -C src + emake -C include + use doc && emake -C doc + use perl && emake -C swig/perl + + if use python ; then + pushd swig/python > /dev/null + emake libapparmor_wrap.c + distutils-r1_src_compile + popd > /dev/null + fi +} + +src_install() { + emake DESTDIR="${D}" -C src install + emake DESTDIR="${D}" -C include install + use doc && emake DESTDIR="${D}" -C doc install + + if use perl ; then + emake DESTDIR="${D}" -C swig/perl install + perl_set_version + insinto "${VENDOR_ARCH}" + doins swig/perl/LibAppArmor.pm + + # bug 620886 + perl_delete_localpod + perl_fix_packlist + fi + + if use python ; then + pushd swig/python > /dev/null + distutils-r1_src_install + + python_moduleinto LibAppArmor + python_foreach_impl python_domodule LibAppArmor.py + popd > /dev/null + fi + + dodoc AUTHORS ChangeLog NEWS README + + find "${D}" -name '*.la' -delete || die +} diff --git a/sys-libs/libavc1394/Manifest b/sys-libs/libavc1394/Manifest index 2fd7759a283d..096c0cc47bc5 100644 --- a/sys-libs/libavc1394/Manifest +++ b/sys-libs/libavc1394/Manifest @@ -1,4 +1,3 @@ DIST libavc1394-0.5.4.tar.gz 341679 BLAKE2B c27cf10b8769c1602488fa1a9a2536dee169e0e07185090e719946ca1da4b210aa61b37d816fb5b019d8b199b1c9285e2b212545f4332c8aad48af39c2dadf20 SHA512 ef07631cd2de9b79dec9d81247d705be318101e8f8a1fe007b946ffab3dfe7b97f392144614d867ef6b2315b6c0e82d53e915f07855d4e21401645293e18842a -EBUILD libavc1394-0.5.4-r1.ebuild 553 BLAKE2B 7f27050bc8b9771ef992821f821d9d8de268bf1e5455c0bd66995b6f5eee6f9979c055cda323f95b1f49b0ec5a77e28f25242e9f561a203ef2e71d82a13c4bc2 SHA512 59b31db72427cb2e43a71ecdbc046cbadc773947f1cceaf8fe7133c39288770b898d29d079c5179e0b46852ef661dc3f876397e0477f49d632423f04e58359b6 -EBUILD libavc1394-0.5.4-r2.ebuild 728 BLAKE2B 57e6f7cefd032b871654d87bbf181e052ce70cbeee3bcb15c413081744169607f3bfd0ede8e5ecd8757a281f88cc7e7856828b34fd3f375f5ae410c90d3df0e6 SHA512 7da5887ddd92ad634b8d7ad22f9f4a0c29635543afca9a84bc23c1c22010dd82e54f0cc12f3dafda76c0a5cf2b2e38d6bf682f1bc52ca524370dd58d887a1bf9 +EBUILD libavc1394-0.5.4-r2.ebuild 728 BLAKE2B ed102b066e03502fc81caf4bbba0cd65b5c8469949a116e7c76fdd21471416e2182c0cf79546c3740b96444ec2e1af8fe95d63c14101576e12c1f267a80c73bd SHA512 9421aeb4c34b34424f153150d7801bfd185bd306cd59ac2fcfdf8317819699cdff3c87a15ee54eaa6677ee7ea339ab839583f23f3466649fa7b169ac8118fe54 MISC metadata.xml 330 BLAKE2B a1bbe65ce97eb3a0c038333183e4fde5b7f0f0384d2fcacb78c569f6df4afd74cfe8ab34c9404daf7bd0870b983372bc35d3e3dd3ac50793fb47fe25b509a9b7 SHA512 3b2a188bb90d59ac6acb66b90e0231db783a6364f4e91a955df28346422061b99837ecf4038f6d42eb570630029623797c0e874737151065343b63352bd082f2 diff --git a/sys-libs/libavc1394/libavc1394-0.5.4-r1.ebuild b/sys-libs/libavc1394/libavc1394-0.5.4-r1.ebuild deleted file mode 100644 index 207551111043..000000000000 --- a/sys-libs/libavc1394/libavc1394-0.5.4-r1.ebuild +++ /dev/null @@ -1,19 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI="4" - -inherit autotools-multilib - -DESCRIPTION="library for the 1394 AV/C (Audio/Video Control) Digital Interface Command Set" -HOMEPAGE="https://sourceforge.net/projects/libavc1394/" -SRC_URI="mirror://sourceforge/libavc1394/${P}.tar.gz" - -LICENSE="LGPL-2.1" -SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 ia64 ppc ppc64 sparc x86" -IUSE="static-libs" - -RDEPEND=">=sys-libs/libraw1394-2.1.0-r1[${MULTILIB_USEDEP}]" -DEPEND="${RDEPEND} - virtual/pkgconfig" diff --git a/sys-libs/libavc1394/libavc1394-0.5.4-r2.ebuild b/sys-libs/libavc1394/libavc1394-0.5.4-r2.ebuild index 3e659dea5f26..33e512b651a3 100644 --- a/sys-libs/libavc1394/libavc1394-0.5.4-r2.ebuild +++ b/sys-libs/libavc1394/libavc1394-0.5.4-r2.ebuild @@ -11,7 +11,7 @@ SRC_URI="mirror://sourceforge/libavc1394/${P}.tar.gz" LICENSE="LGPL-2.1" SLOT="0" -KEYWORDS="~alpha amd64 arm ~arm64 ia64 ppc ppc64 sparc x86" +KEYWORDS="~alpha amd64 arm arm64 ~ia64 ppc ppc64 sparc x86" BDEPEND="virtual/pkgconfig[${MULTILIB_USEDEP}]" DEPEND=">=sys-libs/libraw1394-2.1.0-r1[${MULTILIB_USEDEP}]" diff --git a/sys-libs/libblockdev/Manifest b/sys-libs/libblockdev/Manifest index d5a8dd130ec9..c598473fbb9e 100644 --- a/sys-libs/libblockdev/Manifest +++ b/sys-libs/libblockdev/Manifest @@ -1,7 +1,7 @@ DIST libblockdev-2.20-1.tar.gz 338039 BLAKE2B 77923e52b10e7853ae9433bf811d3a08f1c18da81d4f148b220d7e4101535f245612f0c82c96c6c3bc3e4c0631ada153c59c4587a86efdc5669a0b9f69e764be SHA512 4cb6b18d5de63461f35e0b6f6896599aa41da2c995839c2e88661dacdf07522842b612820fb1d83edbde72092cc62295d5411e8607f52c611db7f02aa16c9ab3 DIST libblockdev-2.22.tar.gz 854888 BLAKE2B beb1ff0ac122eb12b2066d97c81a8c62a33369aa22a6ae5d141076d52fbd82d17504a97f1a0091773d9a65b25b976edecebe3a76ba91ee8e6032fd034298fa4a SHA512 69bbd5afbd8abb0e22ef72d80375e32db653f21cf3063cf69fff71ad069ee0e6119adf6918a63e7ba9ec4ca02ffe3337be3edeeafdd3e73e4e53d85e90bf2f45 DIST libblockdev-2.23.tar.gz 856829 BLAKE2B 131bf429e530fc9dd44fade4f5bc937ec220365b1ee2ae46818a6fa3ec7591775fdc3ed531350cc2546f4151e41551dfd3e331b0a6d5777769a7b54c5c15ed42 SHA512 ecc4d5a3cb977fbbe176bf6872b6754833d2869e927c32f8466685916ee4550cf806e0b0c8f5e8e76de3839ae591a4eec502ff974c2f0678af6cfd46dd3016f3 -EBUILD libblockdev-2.20-r2.ebuild 2013 BLAKE2B 04b827d9e874a1f81fd575069b997e371293f8a486f67c53cd7d1566af707f95fa2d8b79b610feef729d0c8abee79f61f39a209360240cf83cfe27552677e2f0 SHA512 850353d00568d4696528175f540f5b2f8ec78b9e89183edd3a1fe75430832bd955db30b5b4b60ffd7520fb99916c8db6e1fa29d7269c650179597a65ffcf71be +EBUILD libblockdev-2.20-r2.ebuild 2014 BLAKE2B 07fcb7f6852eb655275daa50d69607a05f91c51818cf7cdf14eedd78ee896a819ad98add227534847b2018e7903d4687d254be942234a5b27cda0ae84aa19909 SHA512 e82fa99136c0390ca347fde1939f39620ed9fc7a6ada8ed2197174631505b50e8da1df32096f7626e9a239fcc5b86dec0773e540654ad5c80bb4a713e38e8234 EBUILD libblockdev-2.22.ebuild 2516 BLAKE2B ad58734ac9bfee6cf0e8078eb36ee66b51744fd706dd14f248a576789c76b244ca0392772191f9d3af8d6fee164696cc76b7d93efee9d3b3d8625f2022e49adf SHA512 14b9ae846175817e5213018993f1d78c7ca0265394539b3e1baee5c8e9c1bf5c2609356d644a485964bfd1a59c04d0a22f569a87349e81be0430a9677279c85d EBUILD libblockdev-2.23.ebuild 2579 BLAKE2B 75623aaae988476aaa9e6d9a10bc0248b2e4b80684e89ec2da54213870f8ff90b0a08cf1cefb4eb4123f0b2db98878bca55a8b8171517a256680801b5b200d26 SHA512 39b5cae279c29e31532bc803a15afad11297b5d1862091687907524ec96c35ca2a59d4b7618e35b4db2637fda81fb67cfa01a16a4e70b04b97a125c9a38f4ab1 EBUILD libblockdev-9999.ebuild 2579 BLAKE2B 75623aaae988476aaa9e6d9a10bc0248b2e4b80684e89ec2da54213870f8ff90b0a08cf1cefb4eb4123f0b2db98878bca55a8b8171517a256680801b5b200d26 SHA512 39b5cae279c29e31532bc803a15afad11297b5d1862091687907524ec96c35ca2a59d4b7618e35b4db2637fda81fb67cfa01a16a4e70b04b97a125c9a38f4ab1 diff --git a/sys-libs/libblockdev/libblockdev-2.20-r2.ebuild b/sys-libs/libblockdev/libblockdev-2.20-r2.ebuild index e1315c6307e1..60af4b7c5066 100644 --- a/sys-libs/libblockdev/libblockdev-2.20-r2.ebuild +++ b/sys-libs/libblockdev/libblockdev-2.20-r2.ebuild @@ -14,7 +14,7 @@ HOMEPAGE="https://github.com/storaged-project/libblockdev" SRC_URI="https://github.com/storaged-project/${PN}/archive/${MY_PV}.tar.gz -> ${MY_P}.tar.gz" LICENSE="LGPL-2+" SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 ia64 ~mips ppc ppc64 sparc x86" +KEYWORDS="~alpha amd64 arm arm64 ~ia64 ~mips ppc ppc64 sparc x86" IUSE="bcache +cryptsetup device-mapper dmraid doc escrow lvm kbd test vdo" RESTRICT="!test? ( test )" diff --git a/sys-libs/libcap-ng/Manifest b/sys-libs/libcap-ng/Manifest index 786705883452..92631d2032d4 100644 --- a/sys-libs/libcap-ng/Manifest +++ b/sys-libs/libcap-ng/Manifest @@ -1,7 +1,3 @@ DIST libcap-ng-0.7.10.tar.gz 450243 BLAKE2B 8eb21b0309e46b05fa42752b9c814d90bc1eda4852ac7a4975868c279764431a8d5eafc53e50998470f622e2a59e2b4c6c2ac1ac20525c6fcd0633b09b113012 SHA512 1b93c7f5c20ae5cc705fe5244af3e299454e988388cda95f006e248d97c0713e77da2a81c67ecf15755f3958df373fc6d1ca14197d6357ab1f2d8c3a0fd12def -DIST libcap-ng-0.7.8.tar.gz 447946 BLAKE2B a26af2dcdd1af26cf03ca668dc95eed7bc1d0344729031497f46bba865bcb23ded2f1ea2ca5cb500b9419bbbd7ed75501921485257a3c8930d156a94e0a2c1c1 SHA512 c32a4c5780c183b13611615abe9061221fd8987188b08828d1617cdaee338ad8de67b3430aa83bde60128efc76449a688546bfbf697f0847b6a835cb1a868756 -DIST libcap-ng-0.7.9.tar.gz 449038 BLAKE2B 3f84e5078d5d443cb61358c49405e4f16ff82a56e1c96d5127b522613b1b5c56a566a01b14b40055eca85f13b37f3d795248a506c54ac4612ab184a94addc365 SHA512 095edabaf76a943aab0645b843b14e20b1733ba1d47a8e34d82f6586ca9a1512ba2677d232b13dd3900b913837401bb58bf74481970e967ba19041959dc43259 -EBUILD libcap-ng-0.7.10.ebuild 2203 BLAKE2B fe4c3f5d6cff5220f9a3ed4ca7e18098b1304df63926aa78a5c751fb587f8ee7606bcaf229d05f5a25f7514375bd2ab8416122a75b3036846b74e434143b7ebf SHA512 f6b3702ce37e0daad3bce5474aae9144011076d2c483379da2b958467e17f6bdfe86054979cca6ad0c64cb4d9e20e0478f0b1e5714e67d9c4ec7211f693e8202 -EBUILD libcap-ng-0.7.8.ebuild 2283 BLAKE2B 3a6869fb8689741a09d20e42bf9aaf749506e86e5e776686b2fe5048dd191944710737e7c1c83edfaaabeb06a9fba160d994f4535467ffb1b242fd53b3f80938 SHA512 aa30da1537c846dfab8827f98a02c4b9fc6f649e18744e92b6c29e759394e9bffc4edefc8678b56447fbaef9819283869c923e3bb3c1a10bd38390aab214213a -EBUILD libcap-ng-0.7.9.ebuild 2201 BLAKE2B 7cc73ef8effc32adf5450e6dbdb197ec93ba7c998efb14460aaa33ca8d64079649772ceb7e4f5ca2a5d30d324091b60e6a27f7772a0473b6ef01db6cfb1c3862 SHA512 7955ac7800ac3ffe6cf0382e93889d47058b6e53d88ea9479a2112a8446f3fb85b6ff77a9a67c9689fa413bac46d9e34398751f284467946e447f937eaaa781d +EBUILD libcap-ng-0.7.10.ebuild 2192 BLAKE2B 5f2a0a3cec61f7417b31fd4caeb0ea539cc6e6d22c48707b23e6382cb02b51343f0185dc1da6f8d3e83c6b93f00971ebcd574a4d753b06167ba8d56e33250b9e SHA512 e630b7bda11418125f58173835a2958ad582e49ce62baea9518911c87a204763b3a79f7ff241797da6454c942840d84c3856ec39518b273d58dc25122fe48e62 MISC metadata.xml 673 BLAKE2B f4890411426cd85bc65373e34f5e1c2b5b294ee6774b8af47cb8effcb4d5730772fee52bcf0fdd477f56b412b1918214467cc0afc3f13b56098d45a98009ce4d SHA512 8f15beccf0bed144b7cceb7699e9e90e05bca2b0fa2bc198dc6cdc5af95f57c9fb07c9049d5b7229b2ec71b945cee3b20210874ebb030566caee850d50980d95 diff --git a/sys-libs/libcap-ng/libcap-ng-0.7.10.ebuild b/sys-libs/libcap-ng/libcap-ng-0.7.10.ebuild index 03baf68eeb4e..7f8aa862b22d 100644 --- a/sys-libs/libcap-ng/libcap-ng-0.7.10.ebuild +++ b/sys-libs/libcap-ng/libcap-ng-0.7.10.ebuild @@ -13,7 +13,7 @@ SRC_URI="https://people.redhat.com/sgrubb/${PN}/${P}.tar.gz" LICENSE="LGPL-2.1" SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sh ~sparc ~x86 ~x86-linux" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~x86-linux" IUSE="python static-libs" REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" diff --git a/sys-libs/libcap-ng/libcap-ng-0.7.8.ebuild b/sys-libs/libcap-ng/libcap-ng-0.7.8.ebuild deleted file mode 100644 index a9bbeaa640b4..000000000000 --- a/sys-libs/libcap-ng/libcap-ng-0.7.8.ebuild +++ /dev/null @@ -1,100 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=5 - -AUTOTOOLS_AUTORECONF=1 -AUTOTOOLS_PRUNE_LIBTOOL_FILES=all -PYTHON_COMPAT=( python3_6 ) - -inherit autotools-utils flag-o-matic python-r1 - -DESCRIPTION="POSIX 1003.1e capabilities" -HOMEPAGE="https://people.redhat.com/sgrubb/libcap-ng/" -SRC_URI="https://people.redhat.com/sgrubb/${PN}/${P}.tar.gz" - -LICENSE="LGPL-2.1" -SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~x86-linux" -IUSE="python static-libs" -REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" - -RDEPEND="python? ( ${PYTHON_DEPS} )" -DEPEND="${RDEPEND} - sys-kernel/linux-headers - python? ( >=dev-lang/swig-2 )" - -RESTRICT="test" - -src_prepare() { - sed -i -e 's:AM_CONFIG_HEADER:AC_CONFIG_HEADERS:' configure.ac || die - - autotools-utils_src_prepare - - use sparc && replace-flags -O? -O0 -} - -src_configure() { - # set up the library build - local myeconfargs=( --without-python --without-python3 ) - autotools-utils_src_configure - - # set up python bindings build(s) - if use python ; then - setup_python_flags_configure() { - if [[ ${EPYTHON} == python2* ]] ; then - myeconfargs=( --with-python --without-python3 ) - else - myeconfargs=( --with-python --with-python3 ) - fi - autotools-utils_src_configure - } - - python_foreach_impl setup_python_flags_configure - fi -} - -src_compile() { - autotools-utils_src_compile - - if use python; then - python_compile() { - local CFLAGS=${CFLAGS} - - python_is_python3 || CFLAGS+=" -fno-strict-aliasing" - - emake "${@}" \ - -C "${BUILD_DIR}"/bindings/python - } - - # help build system find the right objects - python_foreach_impl python_compile \ - VPATH="${BUILD_DIR}"/bindings/python \ - LIBS="${BUILD_DIR}"/src/libcap-ng.la - fi -} - -src_test() { - if [[ "${EUID}" -eq 0 ]]; then - ewarn "Skipping tests due to root permissions." - return - fi - - autotools-utils_src_test - - if use python; then - python_foreach_impl \ - autotools-utils_src_compile -C bindings/python check \ - VPATH="${BUILD_DIR}"/bindings/python:"${S}"/bindings/python/test - fi -} - -src_install() { - autotools-utils_src_install - - if use python; then - python_foreach_impl \ - autotools-utils_src_install -C bindings/python \ - VPATH="${BUILD_DIR}"/bindings/python - fi -} diff --git a/sys-libs/libcap-ng/libcap-ng-0.7.9.ebuild b/sys-libs/libcap-ng/libcap-ng-0.7.9.ebuild deleted file mode 100644 index 202648aebe3f..000000000000 --- a/sys-libs/libcap-ng/libcap-ng-0.7.9.ebuild +++ /dev/null @@ -1,94 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 - -PYTHON_COMPAT=( python3_{6,7} ) - -inherit autotools flag-o-matic python-r1 - -DESCRIPTION="POSIX 1003.1e capabilities" -HOMEPAGE="https://people.redhat.com/sgrubb/libcap-ng/" -SRC_URI="https://people.redhat.com/sgrubb/${PN}/${P}.tar.gz" - -LICENSE="LGPL-2.1" -SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sh ~sparc ~x86 ~x86-linux" -IUSE="python static-libs" -REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" - -RDEPEND="python? ( ${PYTHON_DEPS} )" -DEPEND="${RDEPEND} - sys-kernel/linux-headers - python? ( >=dev-lang/swig-2 )" - -src_prepare() { - default - if use prefix ; then - sed -i "s@cat /usr@cat ${EPREFIX}/usr@" bindings/python*/Makefile.am || die - eautomake #668722 - fi -} - -src_configure() { - use sparc && replace-flags -O? -O0 - - local ECONF_SOURCE="${S}" - - local myconf=( - $(use_enable static-libs static) - ) - - local pythonconf=( --without-python --without-python3 ) - - # set up python bindings build(s) - if use python ; then - setup_python_flags_configure() { - if python_is_python3; then - pythonconf=( --without-python --with-python3 ) - else - pythonconf=( --with-python --without-python3 ) - local -x CFLAGS="${CFLAGS} -fno-strict-aliasing" - fi - run_in_build_dir econf "${pythonconf[@]}" "${myconf[@]}" - } - - python_foreach_impl setup_python_flags_configure - else - local BUILD_DIR=${WORKDIR}/build - run_in_build_dir econf "${pythonconf[@]}" "${myconf[@]}" - fi -} - -src_compile() { - if use python; then - python_foreach_impl run_in_build_dir emake - else - local BUILD_DIR=${WORKDIR}/build - emake -C "${BUILD_DIR}" - fi -} - -src_test() { - if [[ "${EUID}" -eq 0 ]]; then - ewarn "Skipping tests due to root permissions." - return - fi - - if use python; then - python_foreach_impl run_in_build_dir emake check - else - local BUILD_DIR=${WORKDIR}/build - emake -C "${BUILD_DIR}" check - fi -} - -src_install() { - if use python; then - python_foreach_impl run_in_build_dir emake DESTDIR="${D}" install - else - local BUILD_DIR=${WORKDIR}/build - emake -C "${BUILD_DIR}" DESTDIR="${D}" install - fi - find "${ED}" -name '*.la' -delete || die -} diff --git a/sys-libs/libcap/Manifest b/sys-libs/libcap/Manifest index dd8180b15874..dddcba69d6c0 100644 --- a/sys-libs/libcap/Manifest +++ b/sys-libs/libcap/Manifest @@ -4,12 +4,13 @@ AUX libcap-2.25-ignore-RAISE_SETFCAP-install-failures.patch 988 BLAKE2B 63417032 AUX libcap-2.26-no-perl.patch 2483 BLAKE2B 34d20ca017119a40e31e2da64786a93c1d5468558e8dfcfb15f3758b6648aaad38bf333c11b35a2c8c4cb66d823e4daefed93b7073a0a65225fe9ef3494ff9ef SHA512 750a64c7b45fd145a043f29b8262c9f972aa4dcfb76afed9e440365c0e55d67d0103491e67a34f0f24ee580656e2fffd589b46b0c5a04b4c9e05b5dac6bbe994 AUX libcap-2.28-no_perl.patch 2599 BLAKE2B 55a6ef3573517e7cd7f367b811a5b6edc2b91974a23e99a31e1704dd5bcda90dfa3b7fde69c37f48c8ad1d97d0c8d68441830f7cc94adacb50cb54246519cb89 SHA512 40d739250a3508538f7083da700efe47628acd6b213e806b5c9d321ce55ce870dd58073459991b235d3cd3190b53e62e1fcc11f79779bda9239f3e042fb9428b AUX libcap-2.29-build-system-fixes.patch 6642 BLAKE2B 747ca2279f1b44ed9d89a318fb06e5efda96388020cda126870dba0754e4651a3d4f2c171470da52cd51dfb6f7dfc57b635ac805160dd2bc995337f2bc12221a SHA512 e82497d111ac96b2fe20d245ba731d5e085a3039a4eacd9da5b598d84293bffcf40da50284139006c9d895d4274dd83811ef05d08e50e72fea44ff23873945fe +AUX libcap-2.33-build-system-fixes.patch 6821 BLAKE2B 35eafed271fc489d4daf36ecfae2a4b713a8ddfd0e3d609855bfd86b8b4c6fff0243f66b7e281610884092ecde589706fdc4903842c7803ae0b27734b5fad62f SHA512 7f0c5f2200d977954ce8d21348135366685707ad12979e256cfedc7a9eb231bd19b4c229ca7168819a8dd85c9a755d0aaf4923b6c960ca3d1a15eeef53a1df77 DIST libcap-2.26.tar.xz 67172 BLAKE2B 9d1952bd03e1bba5ffa225a5088b8d841c2007219bbb9524f979ac65e472bf932db496acf93984fa77fe42e71d45b85cd603ca461a071fb4742526dfbc5f66eb SHA512 1c2d59f007226405a924950b2c2090393527e06f0692a84e6463e33915a070df61a9070b8f30a624d5630ddd39290eac117e5d440577d1edd48510195b9d12f0 DIST libcap-2.27.tar.xz 67780 BLAKE2B 7b58d7afdd90281771a302cd9554f067b9e3636b0c052935973d8a0d890490c3933b3513874b788a8c10e37ab5ad9cfa766408c9629b7c8562cb17bfdef87747 SHA512 e32335fd3e0d1564574acc73df7030b5b0fd98875217bffabd76f2765f1a7a6f1369f03df2ee22a1782776838784e342378c10613ea1163d53ae5055ab6a62b6 -DIST libcap-2.31.tar.xz 99236 BLAKE2B c4cd5e2e105cc05b2aee2ee6435b9a28c06a91dee5cdd1baf6d94f625d89e134ad35a4493ffdfda7f3ffb0b41aa6e75a20cd705bfe9df570e82d0b6ea4e484e1 SHA512 9f0ef665a52e77356d6028abdead3c3cf75f97406ac09d60a33500222428c581d8aaa7d25d7eb9051d9c73ebfaefa7af5581430e1ecc1dfea73398a3ac7cbc3a DIST libcap-2.32.tar.xz 99708 BLAKE2B cbd4676ca9ada4c4dd6dee5137c0bb16f23af5d9a224c81b476c19326f87352fb06e2e123c9431558cd22f91032064ed6de8407d5861728dd141be16957363db SHA512 e2325cf0a1d0509c49336f7e5760e5b339c889cdde8d6c359197aed711423f951ad390a2a3dd4943b03afe152ad8502ea1db9d7ef247148b93e93a3c4895a019 -EBUILD libcap-2.26-r2.ebuild 2044 BLAKE2B 00ba6b0c0fa0ae18b35bdc61c414a7bf969971edd1620bb2c5e88af13cf58aefd820965c77788dbd380f9dd8feef969d56d428b619eb5f820e15692d6c4948df SHA512 ab0bea45d0e7c672bc4fc66827ade8f545db55bfcec941f3aff3ecbf2f3b444a65ec92ac03d81a763c5c69fbd9115da42442c9bf1dcbbe094931283381bcea02 -EBUILD libcap-2.27.ebuild 2056 BLAKE2B 243ed538747bd8d1588dd3ddbb654ebe9ae9f1e121b6fb37aa9888d3461c5d143ed93ce798f1f9b499cf13471751e129ac2f3d55b76124d9e253e3e4b6a530e1 SHA512 6bca40f0b987958c7d244bf64c915aac5b3d60fa4dc503b090b306039d8c23c99932071b1f44a22de25f4e38dc685a5c835eb85159ea2215d6d2df54e7314e21 -EBUILD libcap-2.31.ebuild 2128 BLAKE2B 622799b87c4007a2a1920a2880692e25a26e6316a4b88d4ad97b0e69d376969a7507e65c0bbcac69ea01d397d5a022c16fd7f241cc0973d7512d88c3f045473d SHA512 397c13d66e11b5aac1a0748961c2e5c9bfcae185fc56e3472f63b31fd0f7d8855947cd31e4b8dd2261e82617d1e63509c35f4c9b72f224a0d9790b2d93c352c3 -EBUILD libcap-2.32.ebuild 2128 BLAKE2B 622799b87c4007a2a1920a2880692e25a26e6316a4b88d4ad97b0e69d376969a7507e65c0bbcac69ea01d397d5a022c16fd7f241cc0973d7512d88c3f045473d SHA512 397c13d66e11b5aac1a0748961c2e5c9bfcae185fc56e3472f63b31fd0f7d8855947cd31e4b8dd2261e82617d1e63509c35f4c9b72f224a0d9790b2d93c352c3 +DIST libcap-2.33.tar.xz 111280 BLAKE2B 9a34b6e871c6175da5ef665ab7a5ed8b9889f598875f58a6e0b7aef9b6b2737f2a85bb0a6e259a730a3fcea3b8ebbec793b52ee5dec7d11fcf236dfb2148eb83 SHA512 bb5bdc1318b524ee607026038dff7c1c621f1710fa07f8c341b1f86761cb086d32b93d7a12dbe4256d4440ee984143db8659d2679330e221ce184d7048c142b4 +EBUILD libcap-2.26-r2.ebuild 2042 BLAKE2B b2878d1faa42790b6d7e8889376cfcce3247185948a064013d692fcfa3e46a19dc5d25c72a5e3c98944502a89d1df4935c6300df8d060083e30227df12b9eee6 SHA512 25b5e32a08968d1063e949fc8279843e274c0972620a4dd76212ef9692cdae0b6342dbfede3ac046f455d8cb1cc289988d4c20741dd4eb3b96ae2a01b0e741aa +EBUILD libcap-2.27.ebuild 2052 BLAKE2B 2e8a46c226457ee9108b3fcbca3c79eddc36cd5b6948bfee6e32f2b53937dfc255f66260e0d451a753bf2c7c983a88915b10f72c021d7a6f5729a8a8c5b970ee SHA512 dac16a76f827115256ecaa94e9fa8b8fa1621d87359108c156cb912608b6ad9401d0dd708bf8ac2963b9b88467048ad8c87857291aadabadccea250f3c3930fa +EBUILD libcap-2.32.ebuild 2124 BLAKE2B 4d3b4d37d4cd1f12852b0018c4c22d097b5993c629fedeb8f672accbe1279d4b09ba445b277f4ac23f552b8811254c5dc4f87ff3478dbbd61c44ba8e6942b352 SHA512 acebf6b1b85081125cfedee8b1f0ea4cefed5ef7abc52292758fcc7754fba05725ec3c7bc2167b39a1d88382a2ae13d0328f32c88914dfabb9ee15785d40b079 +EBUILD libcap-2.33.ebuild 2124 BLAKE2B d99bda3c682d53c0027d4429ad50520a0c1b5555879a7883245c156f781079d4b74cefed3611e1e2db5d5980fded463b6f77b29b6bfb16c36c9312141bace95b SHA512 e2cdd6c6e65be570cf2800ac79e817e8cb14c9899ea89ff731cb55c4767cf7b56d73760ab16baf0f30eaa09cc326d93992c046da2e412222152dcd6e2f6f1795 MISC metadata.xml 332 BLAKE2B 2177c836192a85a6d943221da405f7f11f355011767789d81009d5e4d822a203302a946fa1a0ffbc66be6a37a7069aa94a796125fa1dedbdf023762b47f8f614 SHA512 a9887500fd60b72156ac2589b1fefab8dd70b0c03477dd795f147fdc91bbe6fd027b8cf58c3e86cdb6e831368d34b4881cdf0e833af5aee9e7d1a01e90408ae1 diff --git a/sys-libs/libcap/files/libcap-2.33-build-system-fixes.patch b/sys-libs/libcap/files/libcap-2.33-build-system-fixes.patch new file mode 100644 index 000000000000..a5d967802317 --- /dev/null +++ b/sys-libs/libcap/files/libcap-2.33-build-system-fixes.patch @@ -0,0 +1,214 @@ +From 17e5e3e7f647343dafa701b95628b5160790e2a4 Mon Sep 17 00:00:00 2001 +From: Mike Frysinger +Date: Wed, 10 Feb 2016 09:47:27 +0100 +Subject: [PATCH] build system fixes + +This touches up the homebrewed build system to work much better "out of the +box" for people. Specifically: + - allow toolchain vars to be set via environment + - CC / BUILD_CC / AR / RANLIB + - CFLAGS / CPPFLAGS / LDFLAGS + - split CPPFLAGS out of CFLAGS + - break -fPIC out of global CFLAGS and only use where needed + - use LDLIBS for libraries, not LDFLAGS + +Signed-off-by: Mike Frysinger + +Forward ported from libcap-2.24 to libcap-2.25 +Forward ported from libcap-2.25 to libcap-2.28 +Forward ported from libcap-2.28 to libcap-2.29 +Forward ported from libcap-2.29 to libcap-2.33 + +Signed-off-by: Lars Wendler +--- + Make.Rules | 27 +++++++++++++++------------ + Makefile | 1 - + libcap/Makefile | 7 ++++--- + pam_cap/Makefile | 8 +++++--- + progs/Makefile | 2 +- + tests/Makefile | 8 +++++--- + 6 files changed, 30 insertions(+), 23 deletions(-) + +diff --git a/Make.Rules b/Make.Rules +index 948435f..5a5184d 100644 +--- a/Make.Rules ++++ b/Make.Rules +@@ -47,35 +47,38 @@ MINOR=33 + # Compilation specifics + + KERNEL_HEADERS := $(topdir)/libcap/include/uapi +-IPATH += -fPIC -I$(KERNEL_HEADERS) -I$(topdir)/libcap/include +- +-CC := gcc # -std=c99 +-CFLAGS := -O2 -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 +-BUILD_CC := $(CC) +-BUILD_CFLAGS := $(CFLAGS) $(IPATH) +-AR := ar +-RANLIB := ranlib ++ ++CC ?= gcc # -std=c99 ++CFLAGS ?= -O2 ++BUILD_CC ?= $(CC) ++BUILD_CFLAGS ?= $(CFLAGS) ++AR ?= ar ++RANLIB ?= ranlib + DEBUG = -g #-DDEBUG + WARNINGS=-Wall -Wwrite-strings \ + -Wpointer-arith -Wcast-qual -Wcast-align \ + -Wstrict-prototypes -Wmissing-prototypes \ + -Wnested-externs -Winline -Wshadow + LD=$(CC) -Wl,-x -shared +-LDFLAGS := #-g ++LDFLAGS ?= #-g + LIBCAPLIB := -L$(topdir)/libcap -lcap + LIBPSXLIB := -L$(topdir)/libcap -lpsx -lpthread + + BUILD_GPERF := $(shell which gperf >/dev/null 2>/dev/null && echo yes) + +-SYSTEM_HEADERS = /usr/include ++LIBCAP_CPPFLAGS = -I$(KERNEL_HEADERS) -I$(topdir)/libcap/include ++LIBCAP_CPPFLAGS += -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 ++CPPFLAGS += $(LIBCAP_CPPFLAGS) ++BUILD_CPPFLAGS += $(LIBCAP_CPPFLAGS) + INCS=$(topdir)/libcap/include/sys/capability.h + LDFLAGS += -L$(topdir)/libcap +-CFLAGS += -Dlinux $(WARNINGS) $(DEBUG) ++CPPFLAGS += -Dlinux ++CFLAGS += $(WARNINGS) $(DEBUG) + PAM_CAP := $(shell if [ -f /usr/include/security/pam_modules.h ]; then echo yes ; else echo no ; fi) + INDENT := $(shell if [ -n "$$(which indent 2>/dev/null)" ]; then echo "| indent -kr" ; fi) + DYNAMIC := $(shell if [ ! -d "$(topdir)/.git" ]; then echo yes; fi) + +-GOLANG := $(shell if [ -n "$(shell go version 2>/dev/null)" ]; then echo yes ; else echo no ; fi) ++GOLANG ?= $(shell if [ -n "$(shell go version 2>/dev/null)" ]; then echo yes ; else echo no ; fi) + ifeq ($(GOLANG),yes) + GOROOT := $(shell go env GOROOT) + GOCGO := $(shell if [ "$(shell go env CGO_ENABLED)" = 1 ]; then echo yes ; else echo no ; fi) +diff --git a/Makefile b/Makefile +index d8cf49c..c0b10a0 100644 +--- a/Makefile ++++ b/Makefile +@@ -16,7 +16,6 @@ endif + ifeq ($(GOLANG),yes) + $(MAKE) -C go $@ + endif +- $(MAKE) -C tests $@ + $(MAKE) -C progs $@ + $(MAKE) -C doc $@ + $(MAKE) -C kdebug $@ +diff --git a/libcap/Makefile b/libcap/Makefile +index c2cb0d1..406dfe5 100644 +--- a/libcap/Makefile ++++ b/libcap/Makefile +@@ -21,6 +21,7 @@ PSXOBJS=$(addsuffix .o, $(PSXFILES)) + MAJLIBNAME=$(LIBNAME).$(VERSION) + MINLIBNAME=$(MAJLIBNAME).$(MINOR) + GPERF_OUTPUT = _caps_output.gperf ++CFLAGS += -fPIC + + all: $(MINLIBNAME) $(STACAPLIBNAME) libcap.pc libpsx.pc $(STAPSXLIBNAME) + +@@ -48,7 +49,7 @@ libpsx.pc: libpsx.pc.in + $< >$@ + + _makenames: _makenames.c cap_names.list.h +- $(BUILD_CC) $(BUILD_CFLAGS) $< -o $@ ++ $(BUILD_CC) $(BUILD_CFLAGS) $(BUILD_CPPFLAGS) $< -o $@ + + cap_names.h: _makenames + ./_makenames > cap_names.h +@@ -75,10 +76,10 @@ $(MINLIBNAME): $(CAPOBJS) + ln -sf $(MAJLIBNAME) $(LIBNAME) + + %.o: %.c $(INCLS) +- $(CC) $(CFLAGS) $(IPATH) -c $< -o $@ ++ $(CC) $(CFLAGS) $(CPPFLAGS) -c $< -o $@ + + cap_text.o: cap_text.c $(USE_GPERF_OUTPUT) $(INCLS) +- $(CC) $(CFLAGS) $(IPATH) $(INCLUDE_GPERF_OUTPUT) -c $< -o $@ ++ $(CC) $(CFLAGS) $(CPPFLAGS) $(INCLUDE_GPERF_OUTPUT) -c $< -o $@ + + cap_test: cap_test.c libcap.h + $(CC) $(CFLAGS) $(IPATH) $< -o $@ +diff --git a/pam_cap/Makefile b/pam_cap/Makefile +index 56604fd..2da4674 100644 +--- a/pam_cap/Makefile ++++ b/pam_cap/Makefile +@@ -3,6 +3,8 @@ + topdir=$(shell pwd)/.. + include ../Make.Rules + ++CFLAGS += -fPIC ++ + all: pam_cap.so + $(MAKE) testlink + +@@ -16,16 +18,16 @@ install: all + # written (and you know why it fails), email me and explain why. Thanks! + + pam_cap.so: pam_cap.o +- $(LD) -o pam_cap.so $< $(LIBCAPLIB) $(LDFLAGS) ++ $(LD) $(CFLAGS) -o pam_cap.so $< $(LIBCAPLIB) $(LDFLAGS) + + pam_cap.o: pam_cap.c +- $(CC) $(CFLAGS) $(IPATH) -c $< -o $@ ++ $(CC) $(CFLAGS) $(CPPFLAGS) -c $< -o $@ + + test_pam_cap: test_pam_cap.c pam_cap.c + $(CC) $(CFLAGS) $(IPATH) -o $@ test_pam_cap.c $(LIBCAPLIB) $(LDFLAGS) --static + + testlink: test.c pam_cap.o +- $(CC) $(CFLAGS) -o $@ $+ -lpam -ldl $(LIBCAPLIB) $(LDFLAGS) ++ $(CC) $(CFLAGS) $(CPPFLAGS) -o $@ $+ -lpam -ldl $(LIBCAPLIB) $(LDFLAGS) + + test: pam_cap.so + make testlink +diff --git a/progs/Makefile b/progs/Makefile +index 4c24f16..a3bbbd4 100644 +--- a/progs/Makefile ++++ b/progs/Makefile +@@ -23,7 +23,7 @@ $(BUILD): %: %.o $(DEPS) + $(CC) $(CFLAGS) -o $@ $< $(LIBCAPLIB) $(LDFLAGS) + + %.o: %.c $(INCS) +- $(CC) $(IPATH) $(CFLAGS) -c $< -o $@ ++ $(CC) $(CFLAGS) $(CPPFLAGS) -c $< -o $@ + + install: all + mkdir -p -m 0755 $(FAKEROOT)$(SBINDIR) +diff --git a/tests/Makefile b/tests/Makefile +index 3fedeca..3645ddd 100644 +--- a/tests/Makefile ++++ b/tests/Makefile +@@ -16,6 +16,8 @@ test: run_psx_test run_libcap_psx_test + + sudotest: test run_libcap_launch_test run_libcap_launch_test + ++CFLAGS += -fPIC ++ + install: all + + run_psx_test: psx_test psx_test_wrap +@@ -23,16 +25,16 @@ run_psx_test: psx_test psx_test_wrap + ./psx_test_wrap + + psx_test: psx_test.c $(DEPS) +- $(CC) $(CFLAGS) $(IPATH) -DNOWRAP $< -o $@ $(LIBPSXLIB) ++ $(CC) $(CFLAGS) $(CPPFLAGS) -DNOWRAP $< -o $@ $(LIBPSXLIB) + + psx_test_wrap: psx_test.c $(DEPS) +- $(CC) $(CFLAGS) $(IPATH) $< -o $@ $(LIBPSXLIB) -Wl,-wrap,pthread_create ++ $(CC) $(CFLAGS) $(CPPFLAGS) $< -o $@ $(LIBPSXLIB) -Wl,-wrap,pthread_create + + run_libcap_psx_test: libcap_psx_test + ./libcap_psx_test + + libcap_psx_test: libcap_psx_test.c $(DEPS) +- $(CC) $(CFLAGS) $(IPATH) $< -o $@ $(LIBCAPLIB) $(LIBPSXLIB) -Wl,-wrap,pthread_create --static ++ $(CC) $(CFLAGS) $(CPPFLAGS) $< -o $@ $(LIBCAPLIB) $(LIBPSXLIB) -Wl,-wrap,pthread_create --static + + run_libcap_launch_test: libcap_launch_test libcap_psx_launch_test noop + sudo ./libcap_launch_test +-- +2.25.1 + diff --git a/sys-libs/libcap/libcap-2.26-r2.ebuild b/sys-libs/libcap/libcap-2.26-r2.ebuild index d6057a7e7600..8b6cf21405a0 100644 --- a/sys-libs/libcap/libcap-2.26-r2.ebuild +++ b/sys-libs/libcap/libcap-2.26-r2.ebuild @@ -12,7 +12,7 @@ SRC_URI="https://www.kernel.org/pub/linux/libs/security/linux-privs/libcap2/${P} # it's available under either of the licenses LICENSE="|| ( GPL-2 BSD )" SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 ~riscv s390 sh sparc x86 ~amd64-linux ~x86-linux" +KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 m68k ~mips ppc ppc64 ~riscv s390 sparc x86 ~amd64-linux ~x86-linux" IUSE="pam static-libs" # While the build system optionally uses gperf, we don't DEPEND on it because diff --git a/sys-libs/libcap/libcap-2.27.ebuild b/sys-libs/libcap/libcap-2.27.ebuild index f33205f74b28..534badc5a284 100644 --- a/sys-libs/libcap/libcap-2.27.ebuild +++ b/sys-libs/libcap/libcap-2.27.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2019 Gentoo Authors +# Copyright 1999-2020 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=6 @@ -12,7 +12,7 @@ SRC_URI="https://www.kernel.org/pub/linux/libs/security/linux-privs/libcap2/${P} # it's available under either of the licenses LICENSE="|| ( GPL-2 BSD )" SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sh ~sparc ~x86 ~amd64-linux ~x86-linux" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux" IUSE="pam static-libs" # While the build system optionally uses gperf, we don't DEPEND on it because diff --git a/sys-libs/libcap/libcap-2.31.ebuild b/sys-libs/libcap/libcap-2.31.ebuild deleted file mode 100644 index 019cf1be2c68..000000000000 --- a/sys-libs/libcap/libcap-2.31.ebuild +++ /dev/null @@ -1,84 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -inherit multilib multilib-minimal toolchain-funcs pam usr-ldscript - -DESCRIPTION="POSIX 1003.1e capabilities" -HOMEPAGE="https://sites.google.com/site/fullycapable/" -SRC_URI="https://www.kernel.org/pub/linux/libs/security/linux-privs/libcap2/${P}.tar.xz" - -# it's available under either of the licenses -LICENSE="|| ( GPL-2 BSD )" -SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sh ~sparc ~x86 ~amd64-linux ~x86-linux" -IUSE="pam static-libs" - -# While the build system optionally uses gperf, we don't DEPEND on it because -# the build automatically falls back when it's unavailable. #604802 -RDEPEND=">=sys-apps/attr-2.4.47-r1[${MULTILIB_USEDEP}] - pam? ( sys-libs/pam[${MULTILIB_USEDEP}] )" -DEPEND="${RDEPEND} - sys-kernel/linux-headers" - -# Requires test suite being run as root (via sudo) -RESTRICT="test" - -PATCHES=( - "${FILESDIR}"/${PN}-2.29-build-system-fixes.patch - "${FILESDIR}"/${PN}-2.28-no_perl.patch - "${FILESDIR}"/${PN}-2.25-ignore-RAISE_SETFCAP-install-failures.patch - "${FILESDIR}"/${PN}-2.21-include.patch -) - -src_prepare() { - default - multilib_copy_sources -} - -run_emake() { - local args=( - exec_prefix="${EPREFIX}" - lib_prefix="${EPREFIX}/usr" - lib="$(get_libdir)" - prefix="${EPREFIX}/usr" - PAM_CAP="$(usex pam yes no)" - DYNAMIC=yes - GOLANG=no - ) - emake "${args[@]}" "$@" -} - -multilib_src_compile() { - tc-export AR CC RANLIB - local BUILD_CC - tc-export_build_env BUILD_CC - - run_emake -} - -multilib_src_install() { - # no configure, needs explicit install line #444724#c3 - run_emake DESTDIR="${D}" install - - gen_usr_ldscript -a cap - if ! use static-libs ; then - # Don't remove libpsx.a! - # See https://bugs.gentoo.org/703912 - rm "${ED}"/usr/$(get_libdir)/libcap.a || die - fi - - if [[ -d "${ED}"/usr/$(get_libdir)/security ]] ; then - rm -r "${ED}"/usr/$(get_libdir)/security || die - fi - - if use pam; then - dopammod pam_cap/pam_cap.so - dopamsecurity '' pam_cap/capability.conf - fi -} - -multilib_src_install_all() { - dodoc CHANGELOG README doc/capability.notes -} diff --git a/sys-libs/libcap/libcap-2.32.ebuild b/sys-libs/libcap/libcap-2.32.ebuild index 019cf1be2c68..0f7d52538c14 100644 --- a/sys-libs/libcap/libcap-2.32.ebuild +++ b/sys-libs/libcap/libcap-2.32.ebuild @@ -12,7 +12,7 @@ SRC_URI="https://www.kernel.org/pub/linux/libs/security/linux-privs/libcap2/${P} # it's available under either of the licenses LICENSE="|| ( GPL-2 BSD )" SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sh ~sparc ~x86 ~amd64-linux ~x86-linux" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux" IUSE="pam static-libs" # While the build system optionally uses gperf, we don't DEPEND on it because diff --git a/sys-libs/libcap/libcap-2.33.ebuild b/sys-libs/libcap/libcap-2.33.ebuild new file mode 100644 index 000000000000..2e603412b5e9 --- /dev/null +++ b/sys-libs/libcap/libcap-2.33.ebuild @@ -0,0 +1,84 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit multilib multilib-minimal toolchain-funcs pam usr-ldscript + +DESCRIPTION="POSIX 1003.1e capabilities" +HOMEPAGE="https://sites.google.com/site/fullycapable/" +SRC_URI="https://www.kernel.org/pub/linux/libs/security/linux-privs/libcap2/${P}.tar.xz" + +# it's available under either of the licenses +LICENSE="|| ( GPL-2 BSD )" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux" +IUSE="pam static-libs" + +# While the build system optionally uses gperf, we don't DEPEND on it because +# the build automatically falls back when it's unavailable. #604802 +RDEPEND=">=sys-apps/attr-2.4.47-r1[${MULTILIB_USEDEP}] + pam? ( sys-libs/pam[${MULTILIB_USEDEP}] )" +DEPEND="${RDEPEND} + sys-kernel/linux-headers" + +# Requires test suite being run as root (via sudo) +RESTRICT="test" + +PATCHES=( + "${FILESDIR}"/${PN}-2.33-build-system-fixes.patch + "${FILESDIR}"/${PN}-2.28-no_perl.patch + "${FILESDIR}"/${PN}-2.25-ignore-RAISE_SETFCAP-install-failures.patch + "${FILESDIR}"/${PN}-2.21-include.patch +) + +src_prepare() { + default + multilib_copy_sources +} + +run_emake() { + local args=( + exec_prefix="${EPREFIX}" + lib_prefix="${EPREFIX}/usr" + lib="$(get_libdir)" + prefix="${EPREFIX}/usr" + PAM_CAP="$(usex pam yes no)" + DYNAMIC=yes + GOLANG=no + ) + emake "${args[@]}" "$@" +} + +multilib_src_compile() { + tc-export AR CC RANLIB + local BUILD_CC + tc-export_build_env BUILD_CC + + run_emake +} + +multilib_src_install() { + # no configure, needs explicit install line #444724#c3 + run_emake DESTDIR="${D}" install + + gen_usr_ldscript -a cap + if ! use static-libs ; then + # Don't remove libpsx.a! + # See https://bugs.gentoo.org/703912 + rm "${ED}"/usr/$(get_libdir)/libcap.a || die + fi + + if [[ -d "${ED}"/usr/$(get_libdir)/security ]] ; then + rm -r "${ED}"/usr/$(get_libdir)/security || die + fi + + if use pam; then + dopammod pam_cap/pam_cap.so + dopamsecurity '' pam_cap/capability.conf + fi +} + +multilib_src_install_all() { + dodoc CHANGELOG README doc/capability.notes +} diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest index 82a1f8b1fd04..4a67c3334430 100644 --- a/sys-libs/libcxx/Manifest +++ b/sys-libs/libcxx/Manifest @@ -1,14 +1,12 @@ AUX libcxx-3.9-cmake-link-flags.patch 1014 BLAKE2B 8e86059e00a5ebcd7a1528882876607c80ab14bcd0ebf2c8dbec87f71a48761e6433ff94db92b41192edb6e3cc74972cd9fb518f18a657229bd30afa3a65bdf8 SHA512 5df85c66bf865900197effe3905976bf165b4c4d79b8d14352753f6baca93ab5dc26bf735fd9478a0c13df489b860d8b629240134b7e26be6233138ea95dbab3 DIST libcxx-7.1.0.src.tar.xz 1638448 BLAKE2B eca192e03f839f4323e3c37beba2e6daaf935d4e784e0bc835a4d2c3ce0790f5539bdca0466feafd668d7c6675b11b7fe14d9adb680c46fd7b28b42a3b423219 SHA512 925ce5093445f84dc17d5b1610e4297ef3606b254b7350c50f88ba042fcca62125ffd97d21cb612707d5e9511267634ca1779619199f95ce819e5f5c0c2b55d5 DIST libcxx-8.0.1.src.tar.xz 1739524 BLAKE2B 6e641cb6bda0de12c8408d3ab33f627389ac014aa65b3391c870aa96ffd347784e6b70b953bd1ee8eba56554e0f78a723ab77b9dba5f85e6219e2b95ca50c160 SHA512 75749d08b2b343c6f5f9aefb04be63e42f6d12efc51101d3647ed6f70c7a6d050afb3ab2f3636eae78cb523f5844de67b960a7a3145ed89ab0c7015deb14921e -DIST llvmorg-10.0.0-rc1.tar.gz 120755822 BLAKE2B a729d37d96ba498cb865c6f708734dccb796b2caabb69167b9aa3b0e12c788f2a5980a048b99d5603da3d26af909fb31f406b4f4743cabae56c45f829a7bf695 SHA512 27137fc700971147c00ded6787eaae9f0bcf98c938fe227a5a559b38d983736f3d086f4ff6772d802c5f48a7d97a97c293261e4af88fcb5a720693b9cb5a4f02 -DIST llvmorg-10.0.0-rc2.tar.gz 120795019 BLAKE2B 6e701eddbd2313e777c7b37dff8455a08d3c599d01055b60afc0319373d4709deb429aac6bf9e80c4d2e2ab8ade03bf5b398b6ccd8882e4bde608d10cdbf2284 SHA512 ee571c9258a2d9fc411964f56b0b92b2e7134349ed21dbe7963eb61ef65da506e0c4f7c69259a3b6cecec23f55d24636608287ee4457ee667031e141f8f09aae +DIST llvmorg-10.0.0.tar.gz 120804856 BLAKE2B 6b0254f5b913398cdcf2b2ec1ff219888706d2b79d5296590934714e42ac79f6a6547941ac2b1d2c4e6313dd18b6c7068e748aa6ac033e49fccbf5d355aa8191 SHA512 baa182d62fef1851836013ae8a1a00861ea89769778d67fb97b407a9de664e6c85da2af9c5b3f75d2bf34ff6b00004e531ca7e4b3115a26c0e61c575cf2303a0 DIST llvmorg-9.0.1.tar.gz 113193320 BLAKE2B b86e405f2b8e00436045fd409fe19cdde75c797b1192c62a22b5ec75e6b4dc8e874a0f33008dc31562445e4cbe53a992b6f48c684255a6a1ef261e595b8b161f SHA512 fa88beeaae94b6d0cd9b5ba38658d0ffed8004035d7d8a4f95c3d31a709b88b581ae9bd7761333c8e5375c44b8f6be01768b5a3be901163159d7e6c43b71da59 EBUILD libcxx-10.0.0.9999.ebuild 6295 BLAKE2B 398e90c1dc0c840185bd838a1cdee45c6fcc61a8ab75e15dcb36a1c71d4c353975c4b066b05e1f2d72b27ce61f6dc049d9debf30620eac623c3376b30d0a21f7 SHA512 482bb88538675a661212d6e79489e702f199b8a66c3c48d1ce5487e7e1221fc55127028b7a589d051e7e59e7dd8930e33e5a466e206d28a9d0ddd3ac29e5f717 -EBUILD libcxx-10.0.0_rc1.ebuild 6613 BLAKE2B d47fa819c9054c259f952d54aa4fbfe2658bdd46f9e32e445afe4b7da154fadf3bd4146d95b54b2f130707054c818ddc0ee6705a8e7b1c51b47b7ba757b654a3 SHA512 7f21ddda8caa0bcdf8e81346434ded7506eaea4231b178cebb3ef601d65d95b61d24bed416937005eed5ebe9f30b289570e08beff6b93957519430046342cafd -EBUILD libcxx-10.0.0_rc2.ebuild 6295 BLAKE2B 398e90c1dc0c840185bd838a1cdee45c6fcc61a8ab75e15dcb36a1c71d4c353975c4b066b05e1f2d72b27ce61f6dc049d9debf30620eac623c3376b30d0a21f7 SHA512 482bb88538675a661212d6e79489e702f199b8a66c3c48d1ce5487e7e1221fc55127028b7a589d051e7e59e7dd8930e33e5a466e206d28a9d0ddd3ac29e5f717 +EBUILD libcxx-10.0.0.ebuild 6318 BLAKE2B 7a3d260b08343b2a27666974afc530388e426ded07bb54cfdb9623dc8b99084a6b50e1734f554341e32b48a06a400841feefdb4596b7f5603c48f99d57c86569 SHA512 7a5588cfd385bb9524235af89d490050b4495aac55cbe6caaefdba69caf80c7cbff5139b1dd44a5f109cca38cf4865a93669af523555486e4c87e67a68a1ab02 EBUILD libcxx-11.0.0.9999.ebuild 6295 BLAKE2B 398e90c1dc0c840185bd838a1cdee45c6fcc61a8ab75e15dcb36a1c71d4c353975c4b066b05e1f2d72b27ce61f6dc049d9debf30620eac623c3376b30d0a21f7 SHA512 482bb88538675a661212d6e79489e702f199b8a66c3c48d1ce5487e7e1221fc55127028b7a589d051e7e59e7dd8930e33e5a466e206d28a9d0ddd3ac29e5f717 EBUILD libcxx-7.1.0.ebuild 6734 BLAKE2B ccf745bc3f3ea12361f877637970090b3588febd096fff2118359afc1664a2c5eb7e55e90372a5f5dc711b7a12310fcbe9fd2fd7f047b9bce117b8c99c7da393 SHA512 cea3065bf397c3d1615ac3d6a92910bc84ae439597c4972fdcd4eb41ce0fb1dd34dbdbd1cdfb95c0f46fb8a217f31f5b23da4c358204b349d48e1d433a3d9735 EBUILD libcxx-8.0.1.ebuild 6773 BLAKE2B b1f95dfaa74faf6ec4299c7241330d5047c1eabc69351f2bbeea296c41a3671c87e99689cda85c65aa29c513eca148321806719f15229b283b0c82a5f9bd1c93 SHA512 0060d986d79514416681cab707ed8075a7f8c461146457724acfbd04e269836827b4adbf791b1afb3a4b8fec13d44678c459861b749ce4001fd5c4a65b97121c -EBUILD libcxx-9.0.1.ebuild 6633 BLAKE2B a1f23f15e0fe9de845527da07ed131c9ba60c923a51abfc7f384a3df70099f64d1888ef53ebb31e4256f14d6ba7e201b29a44b27be4d504656d343a59cf6bcfe SHA512 af6c3d18ee76c7a96f18b642b20c72ff5d7257eb5a7fb10fa97b62b16a01a4c46b7c3a3763286f5c556e1604b04a4d0daa20ef413c5a8174704ddbf9e3e54e10 +EBUILD libcxx-9.0.1.ebuild 6632 BLAKE2B 9ac8aeb7396ecc18006ec42336a3f451468c4ca379f3d2f9975ef7352fb1bfa3c93459d818b3cac356038c35d414ab84089155d789ea6ca5d0e911d2c490d98e SHA512 f51cb9cb2e1654b352df7c0c3b06ee5e7f4a0b8e14d9574435a9e75caea7db6d8afe28b6bfe541dd0757d18cf7e2128960b4a6d62cdc58c66a0939e5a7f61af4 MISC metadata.xml 731 BLAKE2B a6e96906bc2bff950c1b193b01feeb456b064fa585042566eae77dbe9a207bb08dfd083a3ab5fede2133a80b905a61c6dd541f9196e585c60b5629dd04a06213 SHA512 0a25560aa3eff5355137dadbb9cc48e384d2885b89075a97a8dafc7ac0ebe4ec5fde5b171a3416490264791a734c4405ec8a42dfc98e7e830c30ef0cfef58b6f diff --git a/sys-libs/libcxx/libcxx-10.0.0.ebuild b/sys-libs/libcxx/libcxx-10.0.0.ebuild new file mode 100644 index 000000000000..24c015cc1bc5 --- /dev/null +++ b/sys-libs/libcxx/libcxx-10.0.0.ebuild @@ -0,0 +1,206 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +PYTHON_COMPAT=( python3_{6,7} ) +inherit cmake-multilib llvm llvm.org multiprocessing python-any-r1 \ + toolchain-funcs + +DESCRIPTION="New implementation of the C++ standard library, targeting C++11" +HOMEPAGE="https://libcxx.llvm.org/" +LLVM_COMPONENTS=( libcxx ) +llvm.org_set_globals + +LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~x86" +IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind +static-libs test" +REQUIRED_USE="libunwind? ( libcxxabi )" +RESTRICT="!test? ( test )" + +RDEPEND=" + libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] ) + !libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )" +# llvm-6 for new lit options +# clang-3.9.0 installs necessary target symlinks unconditionally +# which removes the need for MULTILIB_USEDEP +DEPEND="${RDEPEND} + >=sys-devel/llvm-6" +BDEPEND=" + test? ( >=sys-devel/clang-3.9.0 + $(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )" + +DOCS=( CREDITS.TXT ) + +PATCHES=( + # Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a + # out-of-tree build. + "${FILESDIR}/${PN}-3.9-cmake-link-flags.patch" +) + +# least intrusive of all +CMAKE_BUILD_TYPE=RelWithDebInfo + +python_check_deps() { + has_version "dev-python/lit[${PYTHON_USEDEP}]" +} + +pkg_setup() { + llvm_pkg_setup + use test && python-any-r1_pkg_setup + + if ! use libcxxabi && ! tc-is-gcc ; then + eerror "To build ${PN} against libsupc++, you have to use gcc. Other" + eerror "compilers are not supported. Please set CC=gcc and CXX=g++" + eerror "and try again." + die + fi + if tc-is-gcc && [[ $(gcc-version) < 4.7 ]] ; then + eerror "${PN} needs to be built with gcc-4.7 or later (or other" + eerror "conformant compilers). Please use gcc-config to switch to" + eerror "gcc-4.7 or later version." + die + fi +} + +test_compiler() { + $(tc-getCXX) ${CXXFLAGS} ${LDFLAGS} "${@}" -o /dev/null -x c++ - \ + <<<'int main() { return 0; }' &>/dev/null +} + +src_configure() { + # note: we need to do this before multilib kicks in since it will + # alter the CHOST + local cxxabi cxxabi_incs + if use libcxxabi; then + cxxabi=libcxxabi + cxxabi_incs="${EPREFIX}/usr/include/libcxxabi" + else + local gcc_inc="${EPREFIX}/usr/lib/gcc/${CHOST}/$(gcc-fullversion)/include/g++-v$(gcc-major-version)" + cxxabi=libsupc++ + cxxabi_incs="${gcc_inc};${gcc_inc}/${CHOST}" + fi + + multilib-minimal_src_configure +} + +multilib_src_configure() { + # we want -lgcc_s for unwinder, and for compiler runtime when using + # gcc, clang with gcc runtime (or any unknown compiler) + local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF + if use libunwind; then + # work-around missing -lunwind upstream + extra_libs+=( -lunwind ) + # if we're using libunwind and clang with compiler-rt, we want + # to link to compiler-rt instead of -lgcc_s + if tc-is-clang; then + local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \ + ${LDFLAGS} -print-libgcc-file-name) + if [[ ${compiler_rt} == *libclang_rt* ]]; then + want_gcc_s=OFF + want_compiler_rt=ON + extra_libs+=( "${compiler_rt}" ) + fi + fi + fi + + # bootstrap: cmake is unhappy if compiler can't link to stdlib + local nolib_flags=( -nodefaultlibs -lc ) + if ! test_compiler; then + if test_compiler "${nolib_flags[@]}"; then + local -x LDFLAGS="${LDFLAGS} ${nolib_flags[*]}" + ewarn "${CXX} seems to lack runtime, trying with ${nolib_flags[*]}" + fi + fi + + local libdir=$(get_libdir) + local mycmakeargs=( + -DLIBCXX_LIBDIR_SUFFIX=${libdir#lib} + -DLIBCXX_ENABLE_SHARED=ON + -DLIBCXX_ENABLE_STATIC=$(usex static-libs) + -DLIBCXX_CXX_ABI=${cxxabi} + -DLIBCXX_CXX_ABI_INCLUDE_PATHS=${cxxabi_incs} + # we're using our own mechanism for generating linker scripts + -DLIBCXX_ENABLE_ABI_LINKER_SCRIPT=OFF + -DLIBCXX_HAS_MUSL_LIBC=$(usex elibc_musl) + -DLIBCXX_HAS_GCC_S_LIB=${want_gcc_s} + -DLIBCXX_INCLUDE_TESTS=$(usex test) + -DLIBCXX_USE_COMPILER_RT=${want_compiler_rt} + -DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}" + ) + + if use test; then + local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null) + local jobs=${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")} + + [[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests" + + mycmakeargs+=( + -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit" + -DLLVM_LIT_ARGS="-vv;-j;${jobs};--param=cxx_under_test=${clang_path}" + ) + fi + cmake-utils_src_configure +} + +multilib_src_test() { + local -x LIT_PRESERVES_TMP=1 + cmake-utils_src_make check-libcxx +} + +# Usage: deps +gen_ldscript() { + local output_format + output_format=$($(tc-getCC) ${CFLAGS} ${LDFLAGS} -Wl,--verbose 2>&1 | sed -n 's/^OUTPUT_FORMAT("\([^"]*\)",.*/\1/p') + [[ -n ${output_format} ]] && output_format="OUTPUT_FORMAT ( ${output_format} )" + + cat <<-END_LDSCRIPT +/* GNU ld script + Include missing dependencies +*/ +${output_format} +GROUP ( $@ ) +END_LDSCRIPT +} + +gen_static_ldscript() { + local libdir=$(get_libdir) + local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a") + + # Move it first. + mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${libdir}/libc++_static.a" || die + # Generate libc++.a ldscript for inclusion of its dependencies so that + # clang++ -stdlib=libc++ -static works out of the box. + local deps="libc++_static.a ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.a)" + # On Linux/glibc it does not link without libpthread or libdl. It is + # fine on FreeBSD. + use elibc_glibc && deps+=" libpthread.a libdl.a" + + gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.a" || die +} + +gen_shared_ldscript() { + local libdir=$(get_libdir) + # libsupc++ doesn't have a shared version + local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a") + + mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die + local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)" + + gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die +} + +multilib_src_install() { + cmake-utils_src_install + gen_shared_ldscript + use static-libs && gen_static_ldscript +} + +pkg_postinst() { + elog "This package (${PN}) is mainly intended as a replacement for the C++" + elog "standard library when using clang." + elog "To use it, instead of libstdc++, use:" + elog " clang++ -stdlib=libc++" + elog "to compile your C++ programs." +} diff --git a/sys-libs/libcxx/libcxx-10.0.0_rc1.ebuild b/sys-libs/libcxx/libcxx-10.0.0_rc1.ebuild deleted file mode 100644 index 53296785de79..000000000000 --- a/sys-libs/libcxx/libcxx-10.0.0_rc1.ebuild +++ /dev/null @@ -1,211 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -PYTHON_COMPAT=( python3_{6,7} ) -inherit cmake-multilib llvm llvm.org multiprocessing python-any-r1 \ - toolchain-funcs - -DESCRIPTION="New implementation of the C++ standard library, targeting C++11" -HOMEPAGE="https://libcxx.llvm.org/" -LLVM_COMPONENTS=( libcxx ) -llvm.org_set_globals - -LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" -SLOT="0" -KEYWORDS="" -IUSE="elibc_glibc elibc_musl +libcxxabi libcxxrt +libunwind +static-libs test" -REQUIRED_USE="libunwind? ( || ( libcxxabi libcxxrt ) ) - ?? ( libcxxabi libcxxrt )" -RESTRICT="!test? ( test )" - -RDEPEND=" - libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] ) - libcxxrt? ( sys-libs/libcxxrt[libunwind=,static-libs?,${MULTILIB_USEDEP}] ) - !libcxxabi? ( !libcxxrt? ( >=sys-devel/gcc-4.7:=[cxx] ) )" -# llvm-6 for new lit options -# clang-3.9.0 installs necessary target symlinks unconditionally -# which removes the need for MULTILIB_USEDEP -DEPEND="${RDEPEND} - >=sys-devel/llvm-6" -BDEPEND=" - test? ( >=sys-devel/clang-3.9.0 - $(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )" - -DOCS=( CREDITS.TXT ) - -PATCHES=( - # Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a - # out-of-tree build. - "${FILESDIR}/${PN}-3.9-cmake-link-flags.patch" -) - -# least intrusive of all -CMAKE_BUILD_TYPE=RelWithDebInfo - -python_check_deps() { - has_version "dev-python/lit[${PYTHON_USEDEP}]" -} - -pkg_setup() { - llvm_pkg_setup - use test && python-any-r1_pkg_setup - - if ! use libcxxabi && ! use libcxxrt && ! tc-is-gcc ; then - eerror "To build ${PN} against libsupc++, you have to use gcc. Other" - eerror "compilers are not supported. Please set CC=gcc and CXX=g++" - eerror "and try again." - die - fi - if tc-is-gcc && [[ $(gcc-version) < 4.7 ]] ; then - eerror "${PN} needs to be built with gcc-4.7 or later (or other" - eerror "conformant compilers). Please use gcc-config to switch to" - eerror "gcc-4.7 or later version." - die - fi -} - -test_compiler() { - $(tc-getCXX) ${CXXFLAGS} ${LDFLAGS} "${@}" -o /dev/null -x c++ - \ - <<<'int main() { return 0; }' &>/dev/null -} - -src_configure() { - # note: we need to do this before multilib kicks in since it will - # alter the CHOST - local cxxabi cxxabi_incs - if use libcxxabi; then - cxxabi=libcxxabi - cxxabi_incs="${EPREFIX}/usr/include/libcxxabi" - elif use libcxxrt; then - cxxabi=libcxxrt - cxxabi_incs="${EPREFIX}/usr/include/libcxxrt" - else - local gcc_inc="${EPREFIX}/usr/lib/gcc/${CHOST}/$(gcc-fullversion)/include/g++-v$(gcc-major-version)" - cxxabi=libsupc++ - cxxabi_incs="${gcc_inc};${gcc_inc}/${CHOST}" - fi - - multilib-minimal_src_configure -} - -multilib_src_configure() { - # we want -lgcc_s for unwinder, and for compiler runtime when using - # gcc, clang with gcc runtime (or any unknown compiler) - local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF - if use libunwind; then - # work-around missing -lunwind upstream - extra_libs+=( -lunwind ) - # if we're using libunwind and clang with compiler-rt, we want - # to link to compiler-rt instead of -lgcc_s - if tc-is-clang; then - local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \ - ${LDFLAGS} -print-libgcc-file-name) - if [[ ${compiler_rt} == *libclang_rt* ]]; then - want_gcc_s=OFF - want_compiler_rt=ON - extra_libs+=( "${compiler_rt}" ) - fi - fi - fi - - # bootstrap: cmake is unhappy if compiler can't link to stdlib - local nolib_flags=( -nodefaultlibs -lc ) - if ! test_compiler; then - if test_compiler "${nolib_flags[@]}"; then - local -x LDFLAGS="${LDFLAGS} ${nolib_flags[*]}" - ewarn "${CXX} seems to lack runtime, trying with ${nolib_flags[*]}" - fi - fi - - local libdir=$(get_libdir) - local mycmakeargs=( - -DLIBCXX_LIBDIR_SUFFIX=${libdir#lib} - -DLIBCXX_ENABLE_SHARED=ON - -DLIBCXX_ENABLE_STATIC=$(usex static-libs) - -DLIBCXX_CXX_ABI=${cxxabi} - -DLIBCXX_CXX_ABI_INCLUDE_PATHS=${cxxabi_incs} - # we're using our own mechanism for generating linker scripts - -DLIBCXX_ENABLE_ABI_LINKER_SCRIPT=OFF - -DLIBCXX_HAS_MUSL_LIBC=$(usex elibc_musl) - -DLIBCXX_HAS_GCC_S_LIB=${want_gcc_s} - -DLIBCXX_INCLUDE_TESTS=$(usex test) - -DLIBCXX_USE_COMPILER_RT=${want_compiler_rt} - -DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}" - ) - - if use test; then - local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null) - local jobs=${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")} - - [[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests" - - mycmakeargs+=( - -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit" - -DLLVM_LIT_ARGS="-vv;-j;${jobs};--param=cxx_under_test=${clang_path}" - ) - fi - cmake-utils_src_configure -} - -multilib_src_test() { - local -x LIT_PRESERVES_TMP=1 - cmake-utils_src_make check-libcxx -} - -# Usage: deps -gen_ldscript() { - local output_format - output_format=$($(tc-getCC) ${CFLAGS} ${LDFLAGS} -Wl,--verbose 2>&1 | sed -n 's/^OUTPUT_FORMAT("\([^"]*\)",.*/\1/p') - [[ -n ${output_format} ]] && output_format="OUTPUT_FORMAT ( ${output_format} )" - - cat <<-END_LDSCRIPT -/* GNU ld script - Include missing dependencies -*/ -${output_format} -GROUP ( $@ ) -END_LDSCRIPT -} - -gen_static_ldscript() { - local libdir=$(get_libdir) - local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "$(usex libcxxrt "libcxxrt.a" "libsupc++.a")") - - # Move it first. - mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${libdir}/libc++_static.a" || die - # Generate libc++.a ldscript for inclusion of its dependencies so that - # clang++ -stdlib=libc++ -static works out of the box. - local deps="libc++_static.a ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.a)" - # On Linux/glibc it does not link without libpthread or libdl. It is - # fine on FreeBSD. - use elibc_glibc && deps+=" libpthread.a libdl.a" - - gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.a" || die -} - -gen_shared_ldscript() { - local libdir=$(get_libdir) - # libsupc++ doesn't have a shared version - local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "$(usex libcxxrt "libcxxrt.so" "libsupc++.a")") - - mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die - local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)" - - gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die -} - -multilib_src_install() { - cmake-utils_src_install - gen_shared_ldscript - use static-libs && gen_static_ldscript -} - -pkg_postinst() { - elog "This package (${PN}) is mainly intended as a replacement for the C++" - elog "standard library when using clang." - elog "To use it, instead of libstdc++, use:" - elog " clang++ -stdlib=libc++" - elog "to compile your C++ programs." -} diff --git a/sys-libs/libcxx/libcxx-10.0.0_rc2.ebuild b/sys-libs/libcxx/libcxx-10.0.0_rc2.ebuild deleted file mode 100644 index 5a3729e82ad3..000000000000 --- a/sys-libs/libcxx/libcxx-10.0.0_rc2.ebuild +++ /dev/null @@ -1,206 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -PYTHON_COMPAT=( python3_{6,7} ) -inherit cmake-multilib llvm llvm.org multiprocessing python-any-r1 \ - toolchain-funcs - -DESCRIPTION="New implementation of the C++ standard library, targeting C++11" -HOMEPAGE="https://libcxx.llvm.org/" -LLVM_COMPONENTS=( libcxx ) -llvm.org_set_globals - -LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" -SLOT="0" -KEYWORDS="" -IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind +static-libs test" -REQUIRED_USE="libunwind? ( libcxxabi )" -RESTRICT="!test? ( test )" - -RDEPEND=" - libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] ) - !libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )" -# llvm-6 for new lit options -# clang-3.9.0 installs necessary target symlinks unconditionally -# which removes the need for MULTILIB_USEDEP -DEPEND="${RDEPEND} - >=sys-devel/llvm-6" -BDEPEND=" - test? ( >=sys-devel/clang-3.9.0 - $(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )" - -DOCS=( CREDITS.TXT ) - -PATCHES=( - # Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a - # out-of-tree build. - "${FILESDIR}/${PN}-3.9-cmake-link-flags.patch" -) - -# least intrusive of all -CMAKE_BUILD_TYPE=RelWithDebInfo - -python_check_deps() { - has_version "dev-python/lit[${PYTHON_USEDEP}]" -} - -pkg_setup() { - llvm_pkg_setup - use test && python-any-r1_pkg_setup - - if ! use libcxxabi && ! tc-is-gcc ; then - eerror "To build ${PN} against libsupc++, you have to use gcc. Other" - eerror "compilers are not supported. Please set CC=gcc and CXX=g++" - eerror "and try again." - die - fi - if tc-is-gcc && [[ $(gcc-version) < 4.7 ]] ; then - eerror "${PN} needs to be built with gcc-4.7 or later (or other" - eerror "conformant compilers). Please use gcc-config to switch to" - eerror "gcc-4.7 or later version." - die - fi -} - -test_compiler() { - $(tc-getCXX) ${CXXFLAGS} ${LDFLAGS} "${@}" -o /dev/null -x c++ - \ - <<<'int main() { return 0; }' &>/dev/null -} - -src_configure() { - # note: we need to do this before multilib kicks in since it will - # alter the CHOST - local cxxabi cxxabi_incs - if use libcxxabi; then - cxxabi=libcxxabi - cxxabi_incs="${EPREFIX}/usr/include/libcxxabi" - else - local gcc_inc="${EPREFIX}/usr/lib/gcc/${CHOST}/$(gcc-fullversion)/include/g++-v$(gcc-major-version)" - cxxabi=libsupc++ - cxxabi_incs="${gcc_inc};${gcc_inc}/${CHOST}" - fi - - multilib-minimal_src_configure -} - -multilib_src_configure() { - # we want -lgcc_s for unwinder, and for compiler runtime when using - # gcc, clang with gcc runtime (or any unknown compiler) - local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF - if use libunwind; then - # work-around missing -lunwind upstream - extra_libs+=( -lunwind ) - # if we're using libunwind and clang with compiler-rt, we want - # to link to compiler-rt instead of -lgcc_s - if tc-is-clang; then - local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \ - ${LDFLAGS} -print-libgcc-file-name) - if [[ ${compiler_rt} == *libclang_rt* ]]; then - want_gcc_s=OFF - want_compiler_rt=ON - extra_libs+=( "${compiler_rt}" ) - fi - fi - fi - - # bootstrap: cmake is unhappy if compiler can't link to stdlib - local nolib_flags=( -nodefaultlibs -lc ) - if ! test_compiler; then - if test_compiler "${nolib_flags[@]}"; then - local -x LDFLAGS="${LDFLAGS} ${nolib_flags[*]}" - ewarn "${CXX} seems to lack runtime, trying with ${nolib_flags[*]}" - fi - fi - - local libdir=$(get_libdir) - local mycmakeargs=( - -DLIBCXX_LIBDIR_SUFFIX=${libdir#lib} - -DLIBCXX_ENABLE_SHARED=ON - -DLIBCXX_ENABLE_STATIC=$(usex static-libs) - -DLIBCXX_CXX_ABI=${cxxabi} - -DLIBCXX_CXX_ABI_INCLUDE_PATHS=${cxxabi_incs} - # we're using our own mechanism for generating linker scripts - -DLIBCXX_ENABLE_ABI_LINKER_SCRIPT=OFF - -DLIBCXX_HAS_MUSL_LIBC=$(usex elibc_musl) - -DLIBCXX_HAS_GCC_S_LIB=${want_gcc_s} - -DLIBCXX_INCLUDE_TESTS=$(usex test) - -DLIBCXX_USE_COMPILER_RT=${want_compiler_rt} - -DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}" - ) - - if use test; then - local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null) - local jobs=${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")} - - [[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests" - - mycmakeargs+=( - -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit" - -DLLVM_LIT_ARGS="-vv;-j;${jobs};--param=cxx_under_test=${clang_path}" - ) - fi - cmake-utils_src_configure -} - -multilib_src_test() { - local -x LIT_PRESERVES_TMP=1 - cmake-utils_src_make check-libcxx -} - -# Usage: deps -gen_ldscript() { - local output_format - output_format=$($(tc-getCC) ${CFLAGS} ${LDFLAGS} -Wl,--verbose 2>&1 | sed -n 's/^OUTPUT_FORMAT("\([^"]*\)",.*/\1/p') - [[ -n ${output_format} ]] && output_format="OUTPUT_FORMAT ( ${output_format} )" - - cat <<-END_LDSCRIPT -/* GNU ld script - Include missing dependencies -*/ -${output_format} -GROUP ( $@ ) -END_LDSCRIPT -} - -gen_static_ldscript() { - local libdir=$(get_libdir) - local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a") - - # Move it first. - mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${libdir}/libc++_static.a" || die - # Generate libc++.a ldscript for inclusion of its dependencies so that - # clang++ -stdlib=libc++ -static works out of the box. - local deps="libc++_static.a ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.a)" - # On Linux/glibc it does not link without libpthread or libdl. It is - # fine on FreeBSD. - use elibc_glibc && deps+=" libpthread.a libdl.a" - - gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.a" || die -} - -gen_shared_ldscript() { - local libdir=$(get_libdir) - # libsupc++ doesn't have a shared version - local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a") - - mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die - local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)" - - gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die -} - -multilib_src_install() { - cmake-utils_src_install - gen_shared_ldscript - use static-libs && gen_static_ldscript -} - -pkg_postinst() { - elog "This package (${PN}) is mainly intended as a replacement for the C++" - elog "standard library when using clang." - elog "To use it, instead of libstdc++, use:" - elog " clang++ -stdlib=libc++" - elog "to compile your C++ programs." -} diff --git a/sys-libs/libcxx/libcxx-9.0.1.ebuild b/sys-libs/libcxx/libcxx-9.0.1.ebuild index 5e333d683796..e5a479380d9d 100644 --- a/sys-libs/libcxx/libcxx-9.0.1.ebuild +++ b/sys-libs/libcxx/libcxx-9.0.1.ebuild @@ -14,7 +14,7 @@ llvm.org_set_globals LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" SLOT="0" -KEYWORDS="amd64 arm ~arm64 x86" +KEYWORDS="amd64 arm arm64 x86" IUSE="elibc_glibc elibc_musl +libcxxabi libcxxrt +libunwind +static-libs test" REQUIRED_USE="libunwind? ( || ( libcxxabi libcxxrt ) ) ?? ( libcxxabi libcxxrt )" diff --git a/sys-libs/libcxxabi/Manifest b/sys-libs/libcxxabi/Manifest index 3c314f8e9eb3..ab41be13e335 100644 --- a/sys-libs/libcxxabi/Manifest +++ b/sys-libs/libcxxabi/Manifest @@ -2,14 +2,12 @@ DIST libcxx-7.1.0.src.tar.xz 1638448 BLAKE2B eca192e03f839f4323e3c37beba2e6daaf9 DIST libcxx-8.0.1.src.tar.xz 1739524 BLAKE2B 6e641cb6bda0de12c8408d3ab33f627389ac014aa65b3391c870aa96ffd347784e6b70b953bd1ee8eba56554e0f78a723ab77b9dba5f85e6219e2b95ca50c160 SHA512 75749d08b2b343c6f5f9aefb04be63e42f6d12efc51101d3647ed6f70c7a6d050afb3ab2f3636eae78cb523f5844de67b960a7a3145ed89ab0c7015deb14921e DIST libcxxabi-7.1.0.src.tar.xz 535180 BLAKE2B aa5952e3ca80f7ce2a0a79f3eaf3852234e23a8445a2539374bedb188aba7d973763a6c0d7cc7700070d942555250f87c3c9efb504bb731985be033d47b79b44 SHA512 629ef641ab5aba28ea7171efbad806f1f0464eee2d04f8903014a4f82c03f2c6513defbbe5489b2c6fd624270fe8efbad97a40e56958f8f38a4f5516a16dd102 DIST libcxxabi-8.0.1.src.tar.xz 538356 BLAKE2B 52328c5890c9b9271877b953be30cc39be4758101e6b91ee45f06c81e960089523e80b83eb5c354336e4e0a140f7554640acf7b2d4fa619113f705108a314418 SHA512 577cfcb04ebb29ee84d35ed31aa8fecb28fc74b07ef7ff298f0fe2d440f823def73e092359c41d8d8600e6df18f55224ed89674d403c5ae56a7d7973487b8734 -DIST llvmorg-10.0.0-rc1.tar.gz 120755822 BLAKE2B a729d37d96ba498cb865c6f708734dccb796b2caabb69167b9aa3b0e12c788f2a5980a048b99d5603da3d26af909fb31f406b4f4743cabae56c45f829a7bf695 SHA512 27137fc700971147c00ded6787eaae9f0bcf98c938fe227a5a559b38d983736f3d086f4ff6772d802c5f48a7d97a97c293261e4af88fcb5a720693b9cb5a4f02 -DIST llvmorg-10.0.0-rc2.tar.gz 120795019 BLAKE2B 6e701eddbd2313e777c7b37dff8455a08d3c599d01055b60afc0319373d4709deb429aac6bf9e80c4d2e2ab8ade03bf5b398b6ccd8882e4bde608d10cdbf2284 SHA512 ee571c9258a2d9fc411964f56b0b92b2e7134349ed21dbe7963eb61ef65da506e0c4f7c69259a3b6cecec23f55d24636608287ee4457ee667031e141f8f09aae +DIST llvmorg-10.0.0.tar.gz 120804856 BLAKE2B 6b0254f5b913398cdcf2b2ec1ff219888706d2b79d5296590934714e42ac79f6a6547941ac2b1d2c4e6313dd18b6c7068e748aa6ac033e49fccbf5d355aa8191 SHA512 baa182d62fef1851836013ae8a1a00861ea89769778d67fb97b407a9de664e6c85da2af9c5b3f75d2bf34ff6b00004e531ca7e4b3115a26c0e61c575cf2303a0 DIST llvmorg-9.0.1.tar.gz 113193320 BLAKE2B b86e405f2b8e00436045fd409fe19cdde75c797b1192c62a22b5ec75e6b4dc8e874a0f33008dc31562445e4cbe53a992b6f48c684255a6a1ef261e595b8b161f SHA512 fa88beeaae94b6d0cd9b5ba38658d0ffed8004035d7d8a4f95c3d31a709b88b581ae9bd7761333c8e5375c44b8f6be01768b5a3be901163159d7e6c43b71da59 EBUILD libcxxabi-10.0.0.9999.ebuild 3371 BLAKE2B f1496d81d45cdbadd84b81ca7dda93e479344df3e00b86a30d73fa1e30a7368a8014f3b09311b99f58200e9f5f0aeb57218099a9897bec7467ddc2a59b47e153 SHA512 4db549482600eb9a8f9318bc4e3e41778ff45d7f80f6b79b55667f057bd62751daa820dcdf51995df4c7beda507c1ac9c0f4608e1b88559fba661b8d382729cc -EBUILD libcxxabi-10.0.0_rc1.ebuild 3371 BLAKE2B f1496d81d45cdbadd84b81ca7dda93e479344df3e00b86a30d73fa1e30a7368a8014f3b09311b99f58200e9f5f0aeb57218099a9897bec7467ddc2a59b47e153 SHA512 4db549482600eb9a8f9318bc4e3e41778ff45d7f80f6b79b55667f057bd62751daa820dcdf51995df4c7beda507c1ac9c0f4608e1b88559fba661b8d382729cc -EBUILD libcxxabi-10.0.0_rc2.ebuild 3371 BLAKE2B f1496d81d45cdbadd84b81ca7dda93e479344df3e00b86a30d73fa1e30a7368a8014f3b09311b99f58200e9f5f0aeb57218099a9897bec7467ddc2a59b47e153 SHA512 4db549482600eb9a8f9318bc4e3e41778ff45d7f80f6b79b55667f057bd62751daa820dcdf51995df4c7beda507c1ac9c0f4608e1b88559fba661b8d382729cc +EBUILD libcxxabi-10.0.0.ebuild 3394 BLAKE2B 47672d6e34b5961fae613e289024b3fe7266efa6c97c9560e85138f320cabf565177f4ba9349f0add7d7b653ab92905a29afe2932c840fb1dd55b028158eee85 SHA512 b3a4515a23d98e3d3888f6df6620e6731dbb0c7ea19236d97703bbd116222532a39185ecc6cd56a852656a7c315fc4a136bef07af65be9481c265ff906698618 EBUILD libcxxabi-11.0.0.9999.ebuild 3371 BLAKE2B f1496d81d45cdbadd84b81ca7dda93e479344df3e00b86a30d73fa1e30a7368a8014f3b09311b99f58200e9f5f0aeb57218099a9897bec7467ddc2a59b47e153 SHA512 4db549482600eb9a8f9318bc4e3e41778ff45d7f80f6b79b55667f057bd62751daa820dcdf51995df4c7beda507c1ac9c0f4608e1b88559fba661b8d382729cc EBUILD libcxxabi-7.1.0.ebuild 3160 BLAKE2B 5b90f5ce5637b75316cc992dd50105c87e7e55c8bd608a5d0280556ca14e57b2be47d5a81bbef0be37c8ace675887bdd4e44029e8efb8cd4f7a69b7eb6eef488 SHA512 8a03888a55c60959802824e54c78bdc9b8e74501bdd8b5a47bbc619290e03e8815658e5f33f9fdc9befc66f9fc36ff5ac2d36008824e3800f76b299508e706e0 EBUILD libcxxabi-8.0.1.ebuild 3226 BLAKE2B 9804f1976cd7e605cf60a07e69c66f97795bebf66779fb69fe500cb6f4693e63d799fdb57991b2b65bde309e72e2e6055c3e88fd1ebf0be725982a253faf10b7 SHA512 42ccc6ccfc69c95dd465542d90a6a6bc0558703fcf2b5b1acb5c828728416cddbd5af925552b231c890af8c89533073a3f13d87da9c1401cf8904bb4dc5e72de -EBUILD libcxxabi-9.0.1.ebuild 3391 BLAKE2B cd19eb136361edd0ddd2cacef2efbb30232a1d9341860f6a023f447daa0b161537b228efe58b514c077ef79364542acaacee0e8ec7497cbb30420c608e001b83 SHA512 9276af7727e01b6e9f50273f5ce2e9ee6c1af2ea35cd8124b41ecf202af11222e31408acfcd7ce834e5157c2294f24061efc12dca29e88c0f0cd2f862b828972 +EBUILD libcxxabi-9.0.1.ebuild 3390 BLAKE2B 708b1327f629ad4445fde37d53dea7807c433a2e3154f56f3fed4ba9eb698f3bb3e67055820521c58d8a31dc26abf28c293d709f97b4496ab420d788ab532c12 SHA512 18ab388b271756a5eb6dd1650d6a9f05a392b4e2cb48df92359c0e9ac763ecc4672343b4b51184f13c0636fe130e4a5972d8937866d34f1efec4b1addce1f81a MISC metadata.xml 350 BLAKE2B 67b70b8d7292327882a845b76667ce24fee728cd84f27ed7e329bc7963631cba4c28bafce5e6a5fefb4ba1df5c7fd572b3b0d7a2b31ef649496f2f991b691bff SHA512 317dd7b59a711dd0461b5369f7e31ea196882b018e047e1dbae8077274d06cb68542c8762efb852cce0b8021bedea69c19aa0c124b9414a36cf1a9c00e0b9703 diff --git a/sys-libs/libcxxabi/libcxxabi-10.0.0.ebuild b/sys-libs/libcxxabi/libcxxabi-10.0.0.ebuild new file mode 100644 index 000000000000..b80a28332b6c --- /dev/null +++ b/sys-libs/libcxxabi/libcxxabi-10.0.0.ebuild @@ -0,0 +1,119 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +PYTHON_COMPAT=( python3_{6,7} ) +inherit cmake-multilib llvm llvm.org multiprocessing python-any-r1 toolchain-funcs + +DESCRIPTION="Low level support for a standard C++ library" +HOMEPAGE="https://libcxxabi.llvm.org/" +# libcxx is needed uncondtionally for the headers +LLVM_COMPONENTS=( libcxx{abi,} ) +llvm.org_set_globals + +LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~x86" +IUSE="+libunwind +static-libs test elibc_musl" +RESTRICT="!test? ( test )" + +RDEPEND=" + libunwind? ( + || ( + >=sys-libs/libunwind-1.0.1-r1[static-libs?,${MULTILIB_USEDEP}] + >=sys-libs/llvm-libunwind-3.9.0-r1[static-libs?,${MULTILIB_USEDEP}] + ) + )" +# llvm-6 for new lit options +DEPEND="${RDEPEND} + >=sys-devel/llvm-6" +BDEPEND=" + test? ( >=sys-devel/clang-3.9.0 + $(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )" + +# least intrusive of all +CMAKE_BUILD_TYPE=RelWithDebInfo + +python_check_deps() { + has_version "dev-python/lit[${PYTHON_USEDEP}]" +} + +pkg_setup() { + llvm_pkg_setup + use test && python-any-r1_pkg_setup +} + +multilib_src_configure() { + # link against compiler-rt instead of libgcc if we are using clang with libunwind + local want_compiler_rt=OFF + if use libunwind && tc-is-clang; then + local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \ + ${LDFLAGS} -print-libgcc-file-name) + if [[ ${compiler_rt} == *libclang_rt* ]]; then + want_compiler_rt=ON + fi + fi + + local libdir=$(get_libdir) + local mycmakeargs=( + -DLIBCXXABI_LIBDIR_SUFFIX=${libdir#lib} + -DLIBCXXABI_ENABLE_SHARED=ON + -DLIBCXXABI_ENABLE_STATIC=$(usex static-libs) + -DLIBCXXABI_USE_LLVM_UNWINDER=$(usex libunwind) + -DLIBCXXABI_INCLUDE_TESTS=$(usex test) + -DLIBCXXABI_USE_COMPILER_RT=${want_compiler_rt} + + -DLIBCXXABI_LIBCXX_INCLUDES="${WORKDIR}"/libcxx/include + # upstream is omitting standard search path for this + # probably because gcc & clang are bundling their own unwind.h + -DLIBCXXABI_LIBUNWIND_INCLUDES="${EPREFIX}"/usr/include + ) + if use test; then + local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null) + local jobs=${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")} + + [[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests" + + mycmakeargs+=( + -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit" + -DLLVM_LIT_ARGS="-vv;-j;${jobs};--param=cxx_under_test=${clang_path}" + ) + fi + cmake-utils_src_configure +} + +build_libcxx() { + local -x LDFLAGS="${LDFLAGS} -L${BUILD_DIR}/$(get_libdir)" + local CMAKE_USE_DIR=${WORKDIR}/libcxx + local BUILD_DIR=${BUILD_DIR}/libcxx + local mycmakeargs=( + -DLIBCXX_LIBDIR_SUFFIX= + -DLIBCXX_ENABLE_SHARED=OFF + -DLIBCXX_ENABLE_STATIC=ON + -DLIBCXX_ENABLE_EXPERIMENTAL_LIBRARY=OFF + -DLIBCXX_CXX_ABI=libcxxabi + -DLIBCXX_CXX_ABI_INCLUDE_PATHS="${S}"/include + -DLIBCXX_ENABLE_ABI_LINKER_SCRIPT=OFF + -DLIBCXX_HAS_MUSL_LIBC=$(usex elibc_musl) + -DLIBCXX_HAS_GCC_S_LIB=OFF + -DLIBCXX_INCLUDE_TESTS=OFF + ) + + cmake-utils_src_configure + cmake-utils_src_compile +} + +multilib_src_test() { + # build a local copy of libc++ for testing to avoid circular dep + build_libcxx + mv "${BUILD_DIR}"/libcxx/lib/libc++* "${BUILD_DIR}/$(get_libdir)/" || die + + local -x LIT_PRESERVES_TMP=1 + cmake-utils_src_make check-libcxxabi +} + +multilib_src_install_all() { + insinto /usr/include/libcxxabi + doins -r include/. +} diff --git a/sys-libs/libcxxabi/libcxxabi-10.0.0_rc1.ebuild b/sys-libs/libcxxabi/libcxxabi-10.0.0_rc1.ebuild deleted file mode 100644 index de7c2b4fb58b..000000000000 --- a/sys-libs/libcxxabi/libcxxabi-10.0.0_rc1.ebuild +++ /dev/null @@ -1,119 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -PYTHON_COMPAT=( python3_{6,7} ) -inherit cmake-multilib llvm llvm.org multiprocessing python-any-r1 toolchain-funcs - -DESCRIPTION="Low level support for a standard C++ library" -HOMEPAGE="https://libcxxabi.llvm.org/" -# libcxx is needed uncondtionally for the headers -LLVM_COMPONENTS=( libcxx{abi,} ) -llvm.org_set_globals - -LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" -SLOT="0" -KEYWORDS="" -IUSE="+libunwind +static-libs test elibc_musl" -RESTRICT="!test? ( test )" - -RDEPEND=" - libunwind? ( - || ( - >=sys-libs/libunwind-1.0.1-r1[static-libs?,${MULTILIB_USEDEP}] - >=sys-libs/llvm-libunwind-3.9.0-r1[static-libs?,${MULTILIB_USEDEP}] - ) - )" -# llvm-6 for new lit options -DEPEND="${RDEPEND} - >=sys-devel/llvm-6" -BDEPEND=" - test? ( >=sys-devel/clang-3.9.0 - $(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )" - -# least intrusive of all -CMAKE_BUILD_TYPE=RelWithDebInfo - -python_check_deps() { - has_version "dev-python/lit[${PYTHON_USEDEP}]" -} - -pkg_setup() { - llvm_pkg_setup - use test && python-any-r1_pkg_setup -} - -multilib_src_configure() { - # link against compiler-rt instead of libgcc if we are using clang with libunwind - local want_compiler_rt=OFF - if use libunwind && tc-is-clang; then - local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \ - ${LDFLAGS} -print-libgcc-file-name) - if [[ ${compiler_rt} == *libclang_rt* ]]; then - want_compiler_rt=ON - fi - fi - - local libdir=$(get_libdir) - local mycmakeargs=( - -DLIBCXXABI_LIBDIR_SUFFIX=${libdir#lib} - -DLIBCXXABI_ENABLE_SHARED=ON - -DLIBCXXABI_ENABLE_STATIC=$(usex static-libs) - -DLIBCXXABI_USE_LLVM_UNWINDER=$(usex libunwind) - -DLIBCXXABI_INCLUDE_TESTS=$(usex test) - -DLIBCXXABI_USE_COMPILER_RT=${want_compiler_rt} - - -DLIBCXXABI_LIBCXX_INCLUDES="${WORKDIR}"/libcxx/include - # upstream is omitting standard search path for this - # probably because gcc & clang are bundling their own unwind.h - -DLIBCXXABI_LIBUNWIND_INCLUDES="${EPREFIX}"/usr/include - ) - if use test; then - local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null) - local jobs=${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")} - - [[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests" - - mycmakeargs+=( - -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit" - -DLLVM_LIT_ARGS="-vv;-j;${jobs};--param=cxx_under_test=${clang_path}" - ) - fi - cmake-utils_src_configure -} - -build_libcxx() { - local -x LDFLAGS="${LDFLAGS} -L${BUILD_DIR}/$(get_libdir)" - local CMAKE_USE_DIR=${WORKDIR}/libcxx - local BUILD_DIR=${BUILD_DIR}/libcxx - local mycmakeargs=( - -DLIBCXX_LIBDIR_SUFFIX= - -DLIBCXX_ENABLE_SHARED=OFF - -DLIBCXX_ENABLE_STATIC=ON - -DLIBCXX_ENABLE_EXPERIMENTAL_LIBRARY=OFF - -DLIBCXX_CXX_ABI=libcxxabi - -DLIBCXX_CXX_ABI_INCLUDE_PATHS="${S}"/include - -DLIBCXX_ENABLE_ABI_LINKER_SCRIPT=OFF - -DLIBCXX_HAS_MUSL_LIBC=$(usex elibc_musl) - -DLIBCXX_HAS_GCC_S_LIB=OFF - -DLIBCXX_INCLUDE_TESTS=OFF - ) - - cmake-utils_src_configure - cmake-utils_src_compile -} - -multilib_src_test() { - # build a local copy of libc++ for testing to avoid circular dep - build_libcxx - mv "${BUILD_DIR}"/libcxx/lib/libc++* "${BUILD_DIR}/$(get_libdir)/" || die - - local -x LIT_PRESERVES_TMP=1 - cmake-utils_src_make check-libcxxabi -} - -multilib_src_install_all() { - insinto /usr/include/libcxxabi - doins -r include/. -} diff --git a/sys-libs/libcxxabi/libcxxabi-10.0.0_rc2.ebuild b/sys-libs/libcxxabi/libcxxabi-10.0.0_rc2.ebuild deleted file mode 100644 index de7c2b4fb58b..000000000000 --- a/sys-libs/libcxxabi/libcxxabi-10.0.0_rc2.ebuild +++ /dev/null @@ -1,119 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -PYTHON_COMPAT=( python3_{6,7} ) -inherit cmake-multilib llvm llvm.org multiprocessing python-any-r1 toolchain-funcs - -DESCRIPTION="Low level support for a standard C++ library" -HOMEPAGE="https://libcxxabi.llvm.org/" -# libcxx is needed uncondtionally for the headers -LLVM_COMPONENTS=( libcxx{abi,} ) -llvm.org_set_globals - -LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" -SLOT="0" -KEYWORDS="" -IUSE="+libunwind +static-libs test elibc_musl" -RESTRICT="!test? ( test )" - -RDEPEND=" - libunwind? ( - || ( - >=sys-libs/libunwind-1.0.1-r1[static-libs?,${MULTILIB_USEDEP}] - >=sys-libs/llvm-libunwind-3.9.0-r1[static-libs?,${MULTILIB_USEDEP}] - ) - )" -# llvm-6 for new lit options -DEPEND="${RDEPEND} - >=sys-devel/llvm-6" -BDEPEND=" - test? ( >=sys-devel/clang-3.9.0 - $(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )" - -# least intrusive of all -CMAKE_BUILD_TYPE=RelWithDebInfo - -python_check_deps() { - has_version "dev-python/lit[${PYTHON_USEDEP}]" -} - -pkg_setup() { - llvm_pkg_setup - use test && python-any-r1_pkg_setup -} - -multilib_src_configure() { - # link against compiler-rt instead of libgcc if we are using clang with libunwind - local want_compiler_rt=OFF - if use libunwind && tc-is-clang; then - local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \ - ${LDFLAGS} -print-libgcc-file-name) - if [[ ${compiler_rt} == *libclang_rt* ]]; then - want_compiler_rt=ON - fi - fi - - local libdir=$(get_libdir) - local mycmakeargs=( - -DLIBCXXABI_LIBDIR_SUFFIX=${libdir#lib} - -DLIBCXXABI_ENABLE_SHARED=ON - -DLIBCXXABI_ENABLE_STATIC=$(usex static-libs) - -DLIBCXXABI_USE_LLVM_UNWINDER=$(usex libunwind) - -DLIBCXXABI_INCLUDE_TESTS=$(usex test) - -DLIBCXXABI_USE_COMPILER_RT=${want_compiler_rt} - - -DLIBCXXABI_LIBCXX_INCLUDES="${WORKDIR}"/libcxx/include - # upstream is omitting standard search path for this - # probably because gcc & clang are bundling their own unwind.h - -DLIBCXXABI_LIBUNWIND_INCLUDES="${EPREFIX}"/usr/include - ) - if use test; then - local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null) - local jobs=${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")} - - [[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests" - - mycmakeargs+=( - -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit" - -DLLVM_LIT_ARGS="-vv;-j;${jobs};--param=cxx_under_test=${clang_path}" - ) - fi - cmake-utils_src_configure -} - -build_libcxx() { - local -x LDFLAGS="${LDFLAGS} -L${BUILD_DIR}/$(get_libdir)" - local CMAKE_USE_DIR=${WORKDIR}/libcxx - local BUILD_DIR=${BUILD_DIR}/libcxx - local mycmakeargs=( - -DLIBCXX_LIBDIR_SUFFIX= - -DLIBCXX_ENABLE_SHARED=OFF - -DLIBCXX_ENABLE_STATIC=ON - -DLIBCXX_ENABLE_EXPERIMENTAL_LIBRARY=OFF - -DLIBCXX_CXX_ABI=libcxxabi - -DLIBCXX_CXX_ABI_INCLUDE_PATHS="${S}"/include - -DLIBCXX_ENABLE_ABI_LINKER_SCRIPT=OFF - -DLIBCXX_HAS_MUSL_LIBC=$(usex elibc_musl) - -DLIBCXX_HAS_GCC_S_LIB=OFF - -DLIBCXX_INCLUDE_TESTS=OFF - ) - - cmake-utils_src_configure - cmake-utils_src_compile -} - -multilib_src_test() { - # build a local copy of libc++ for testing to avoid circular dep - build_libcxx - mv "${BUILD_DIR}"/libcxx/lib/libc++* "${BUILD_DIR}/$(get_libdir)/" || die - - local -x LIT_PRESERVES_TMP=1 - cmake-utils_src_make check-libcxxabi -} - -multilib_src_install_all() { - insinto /usr/include/libcxxabi - doins -r include/. -} diff --git a/sys-libs/libcxxabi/libcxxabi-9.0.1.ebuild b/sys-libs/libcxxabi/libcxxabi-9.0.1.ebuild index 3a1e2f678280..0812b96e62d8 100644 --- a/sys-libs/libcxxabi/libcxxabi-9.0.1.ebuild +++ b/sys-libs/libcxxabi/libcxxabi-9.0.1.ebuild @@ -14,7 +14,7 @@ llvm.org_set_globals LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" SLOT="0" -KEYWORDS="amd64 arm ~arm64 x86" +KEYWORDS="amd64 arm arm64 x86" IUSE="+libunwind +static-libs test elibc_musl" RESTRICT="!test? ( test )" diff --git a/sys-libs/libfaketime/Manifest b/sys-libs/libfaketime/Manifest index 7dabcb4b6f75..f7572c3709d7 100644 --- a/sys-libs/libfaketime/Manifest +++ b/sys-libs/libfaketime/Manifest @@ -1,6 +1,7 @@ DIST libfaketime-0.9.6.tar.gz 51333 BLAKE2B b9aab3da744e250f43eca4f837322932c3260d35550171d34da851740a415bf3d2c3bfe02cdf37782058d8524008743838757ed8326384ecb36d0d9839cadd1a SHA512 ab2e9c53f4ca2b9dcd2bbcd8de3ab9e27be57547ed9b52a17f07a6fe880fd3a283a6f10018736be2a6ba4e150f54e92161959ccb887be1f78ddfc96058729860 DIST libfaketime-0.9.7.tar.gz 56277 BLAKE2B 62e10c4b3c33c203cde023cbc4e114c2ee1ad87298b1840bb2f7ea3610fdfd81c12a60c1c00a44409ca322e96408427fcad32f202737b75d28c5d69b85b579d6 SHA512 593e14e96dc0a49f65e93d25b7aace6e78fd2b4251f692c14bd6c6a2ac6360d997573aeac9005388bc49276078075c23a39fdaee912c2469acb8014127625537 -EBUILD libfaketime-0.9.6-r1.ebuild 776 BLAKE2B a0cc1cd2cf56b38077a667e9fe04f523207906f3e8d878f6e6b7bdd02a1a78428cc3da28809dcb329ccda1af1a8d92276224b69b1532e54a8cea977878fb7f94 SHA512 d15ae0475d7da5e11fd8da5c43a5eee289bae97ed33f2278f8d44699c167df79b30336abc014f6c79af103b79d86ef736e7faa2bb86c70d1749ac56daf0d99aa -EBUILD libfaketime-0.9.6-r2.ebuild 1290 BLAKE2B 748bff57db9d51c1b618dcf9dae30a74e6095324fcdda90f40ec2ec9d1f75f9011672135847523a0198439e39b43e0334d8fd4c19139f4667fb2ea0cbc13a1e0 SHA512 4f37893874a197b01c2ee23ae6160eaccbe1446d0bed956e1147cf556e6fd6c8c9ca06c4514a7799681919a685deb83ff8ed1194bf92c399074cfc6f440b8584 -EBUILD libfaketime-0.9.7.ebuild 1310 BLAKE2B 14e846b26ce86d7ec95dc8c87376e1959dca136c139f064f147fbeeb01b9471ca3201ef8d7b2a7829b1563ef62f6542c7a6218a4be361e3156f227de0928e113 SHA512 76f4541b5e31d6f09cf45f518f4bb72bf85a344d2d9ad62a127e45be33fb6b442109d6d4899a11e046dc86194ffa78de61e9d18c5e0b2c7c046077d759fb56fe +DIST libfaketime-0.9.8.tar.gz 70614 BLAKE2B a10a8859c216ce4c2edae3324515507f4c2b8a284d80da5a83d1b8046262ae5e624e358c809c2d473fdc21caa0d89f675beb3adfdb401411356145fdb9a1bac3 SHA512 87081024cab10462d4ed4d4ad9c3c56ab40fee3300d3a9ff180a4d96d418b3f25d80d7d5ad0a1af2fb87204f01a506d9fa273def7a8f9cc3be4cc0e9fef42aed +EBUILD libfaketime-0.9.6-r2.ebuild 1356 BLAKE2B 3c5366d5812d8cc439972e58260db320fe3d690d309b6725e36e4f1197ee165ad7803dee4e49365b2ac0de8f72d2f70a02b6bd551250efbc0bbbf3a41fdaba2b SHA512 7b479da51c27fd659afc7d6c9c1b4c67b5f38537cad62e66d37107b0f1cf5c3c8a28668eea688fe1b9744beb4a84b71e0bf5f18c80b61338124b44e3a618f44e +EBUILD libfaketime-0.9.7.ebuild 1383 BLAKE2B 7a61df366d1d8c8f5df3798f87d47c524a8eb5e02b90454d9b15b583d1af72a790c3e99251200f9ff854d90310f5b2cbb95b082860f18269dbf5b38e5f8f8e74 SHA512 8db6ca7f9e66b49ce4ef116ff8be3e2debc8ec1f9b31503ddd8f1a5cf785029ed4b10a7bddc7e026d548a3c00d6b7baf28ffe93dcfaac16e8d15758c5e7f955f +EBUILD libfaketime-0.9.8.ebuild 1593 BLAKE2B d593905570cb43387ac2d5069d8fed299a89602ce193108ed313c75ecf78ce5c5e2bf0103d57113c1768e22b5f09311c4213eba9810bda46e047596cbf2320bc SHA512 146bc9957a5335980f263e54cf2cdf01fe88b13a35d81cb81f74477c5809ae97f2cf6332174a03b1a83d8e26deb355e94a4cb10eb48bc4657fa9610f9ea5ce2a MISC metadata.xml 844 BLAKE2B 55b522c415ccd092c6f940fafffe6d3ef871259265d125844b179f00c3fce55fd4b359c1b535a0ace47722938d2d2b744cf9062e1ff3e32bbea89b9b7a200691 SHA512 77924230fc18b29ee6c5891a73acde9158dabdec2d3f892ceeb84bc6e1b6f2b977dba05382a1da67fa8db6e57ca3be2161f6218e2f52feaefef690a0e1989893 diff --git a/sys-libs/libfaketime/libfaketime-0.9.6-r1.ebuild b/sys-libs/libfaketime/libfaketime-0.9.6-r1.ebuild deleted file mode 100644 index 33655f66e02d..000000000000 --- a/sys-libs/libfaketime/libfaketime-0.9.6-r1.ebuild +++ /dev/null @@ -1,32 +0,0 @@ -# Copyright 1999-2016 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -EAPI=5 - -inherit toolchain-funcs multilib - -DESCRIPTION="Report faked system time to programs" -HOMEPAGE="http://www.code-wizards.com/projects/libfaketime/ https://github.com/wolfcw/libfaketime/" -SRC_URI="http://www.code-wizards.com/projects/${PN}/${P}.tar.gz" - -LICENSE="GPL-2" -SLOT="0" -KEYWORDS="amd64 arm arm64 hppa x86" - -src_prepare() { - tc-export CC -} - -src_compile() { - emake CC="$(tc-getCC)" LIBDIRNAME="/$(get_libdir)" PREFIX=/usr -} - -src_install() { - dobin src/faketime - doman man/faketime.1 - exeinto /usr/$(get_libdir) - doexe src/${PN}*.so.* - dosym ${PN}.so.1 /usr/$(get_libdir)/${PN}.so - dosym ${PN}MT.so.1 /usr/$(get_libdir)/${PN}MT.so - dodoc NEWS README TODO -} diff --git a/sys-libs/libfaketime/libfaketime-0.9.6-r2.ebuild b/sys-libs/libfaketime/libfaketime-0.9.6-r2.ebuild index da55fc5ae41c..538aad5ced37 100644 --- a/sys-libs/libfaketime/libfaketime-0.9.6-r2.ebuild +++ b/sys-libs/libfaketime/libfaketime-0.9.6-r2.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2018 Gentoo Foundation +# Copyright 1999-2020 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI="6" @@ -16,6 +16,8 @@ KEYWORDS="amd64 arm arm64 hppa sparc x86" src_prepare() { sed -i 's/-Werror //' "${S}/src/Makefile" || die + sed -i 's/-Werror //' "${S}/test/Makefile" || die + # Bug #617624 (GCC-6 compatibility) sed -i 's/-Wno-nonnull-compare //' "${S}/src/Makefile" || die @@ -35,7 +37,7 @@ multilib_src_compile() { } multilib_src_test() { - multilib_is_native_abi && emake test + multilib_is_native_abi && emake CC="$(tc-getCC)" test } multilib_src_install() { diff --git a/sys-libs/libfaketime/libfaketime-0.9.7.ebuild b/sys-libs/libfaketime/libfaketime-0.9.7.ebuild index 16245df161cd..ce73633752da 100644 --- a/sys-libs/libfaketime/libfaketime-0.9.7.ebuild +++ b/sys-libs/libfaketime/libfaketime-0.9.7.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2017 Gentoo Foundation +# Copyright 1999-2020 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI="6" @@ -11,11 +11,13 @@ SRC_URI="https://github.com/wolfcw/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" LICENSE="GPL-2" SLOT="0" -KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~sparc ~x86" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~sparc ~x86" src_prepare() { sed -i 's/-Werror //' "${S}/src/Makefile" || die + sed -i 's/-Werror //' "${S}/test/Makefile" || die + # Bug #617624 (GCC-6 compatibility) sed -i 's/-Wno-nonnull-compare //' "${S}/src/Makefile" || die @@ -35,7 +37,7 @@ multilib_src_compile() { } multilib_src_test() { - multilib_is_native_abi && emake test + multilib_is_native_abi && emake CC="$(tc-getCC)" test } multilib_src_install() { diff --git a/sys-libs/libfaketime/libfaketime-0.9.8.ebuild b/sys-libs/libfaketime/libfaketime-0.9.8.ebuild new file mode 100644 index 000000000000..16e5456199a4 --- /dev/null +++ b/sys-libs/libfaketime/libfaketime-0.9.8.ebuild @@ -0,0 +1,59 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="7" + +inherit flag-o-matic toolchain-funcs multilib-minimal + +DESCRIPTION="Report faked system time to programs" +HOMEPAGE="http://www.code-wizards.com/projects/libfaketime/ https://github.com/wolfcw/libfaketime" +SRC_URI="https://github.com/wolfcw/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86" + +src_prepare() { + default + + sed -i 's/-Werror //' "${S}/src/Makefile" || die + + sed -i 's/-Werror //' "${S}/test/Makefile" || die + + # Bug #617624 (GCC-6 compatibility) + sed -i 's/-Wno-nonnull-compare //' "${S}/src/Makefile" || die + + # upstream doesn't want that we set this by default but + # I didn't find a single system where libfaketime passed + # CLOCK_MONOTONIC test without that + append-cflags -DFORCE_MONOTONIC_FIX + + multilib_copy_sources +} + +multilib_src_compile() { + local target=all + + pushd src > /dev/null || die + multilib_is_native_abi || target="${PN}.so.1 ${PN}MT.so.1" + # ${target} is intentionally not quoted + emake CC="$(tc-getCC)" LIBDIRNAME="/$(get_libdir)" PREFIX=/usr ${target} + popd > /dev/null || die +} + +multilib_src_test() { + multilib_is_native_abi && emake CC="$(tc-getCC)" test +} + +multilib_src_install() { + multilib_is_native_abi && dobin src/faketime + exeinto /usr/$(get_libdir) + doexe src/${PN}*.so.* + dosym ${PN}.so.1 /usr/$(get_libdir)/${PN}.so + dosym ${PN}MT.so.1 /usr/$(get_libdir)/${PN}MT.so +} + +multilib_src_install_all() { + doman man/faketime.1 + dodoc NEWS README TODO +} diff --git a/sys-libs/libkudzu/Manifest b/sys-libs/libkudzu/Manifest index 0c410a61294c..cd78196a9648 100644 --- a/sys-libs/libkudzu/Manifest +++ b/sys-libs/libkudzu/Manifest @@ -1,5 +1,5 @@ AUX kudzu-1.2.57.1-sbusfix.patch 2217 BLAKE2B 27506402bd81f1a1be3e5213945dd6c6ca814085da9b7becf9cd2845242e17acf8a7936ce843eddc49f6e46590f09c9077d852fb21d15d051d9beeb6d57b4c4b SHA512 5b94734f63e1bb62cbfc349646c6dc4663e6ed2309e554e701943c35649193b14ea779a0c08e531ee931a94afdcc3e15529a8f410c658ea26d26659fe4147c71 AUX kudzu-1.2.57.1-sparc-keyboard.patch 5389 BLAKE2B b49bd002dcadf6f79ee468fe222f150660908e983e8ffa44cbbc446c8162e3494ecb2b959e11f59e19d56437cc163199e2f4e773cdb8e5e6bc86aa7e6b39606b SHA512 6b89de1ede96e1a523880a33975488957e87cfc31cc0155014bb8152123cafb7ad793edcd9d228b9946bc6005b544e6fb908185f4ff901e623ce200435982708 DIST kudzu-1.2.57.1.tar.gz 165855 BLAKE2B cd7a71a45a234701dd3e94b7378b37017a03cc78bf5230cc267c273fee4baf5338a5509572f0ba1bb23c8f585ec452c4a7f2d02159326c4133ad6abd80d36c3f SHA512 799e7cea840b7495fc007f4e34adc50fecd2fa7ceda2e2779e39639d0b93b10419bd44a0eb910b2e47024a49a4376330653a6fd96e5560c4828d55e18ab5d641 -EBUILD libkudzu-1.2.57.1.ebuild 1296 BLAKE2B 772c6b5d265cf2170306f194d4e914766ba7bb91fb91376d8b5abc0a8341a35274dff30f7d56ec2bc08664a8844d01a8bd17026282ea6a446bcd0ba8862c9793 SHA512 8ddeb3f4667842094031f792ed1a0cd09737da1ca0e50066dcb9bee984b30d15a93df5c42e6588336147cd413df638d715df7790c42aa6a8180d605903b3f5cc +EBUILD libkudzu-1.2.57.1.ebuild 1297 BLAKE2B aec0ded22af437e769955d9f974a597a6e2133ded86024e41ee166e3825a92412e1c1252d1e5e4bab0d1a7588f1c3fbd3be520148d02e641a02bdaf3d41554fc SHA512 997eb0825c44048c1faacede1ee7c276ed8b2da9b969d48c9927eae7d77d3965aef9e3f6c5553d55c6b400b160a0720d6ba8a930f4f4bd8cee981b90174cb5f1 MISC metadata.xml 251 BLAKE2B 914f6ce3b97ef33310dd17c219739df48b081adb06e58d6a38a10cf4368eea50a9096c7b274077b6ca67d17ab9601b7c46995bbc89479d2842705dcc3ba75461 SHA512 2da7a6b2b1b7153b8803cc52201fa006313bf75a25f7d917f26eadd7a6426529e4b30a57c3c24cca20865d9dc4f3d56fdfa14b10254158bea2dfeb2c64fcc18c diff --git a/sys-libs/libkudzu/libkudzu-1.2.57.1.ebuild b/sys-libs/libkudzu/libkudzu-1.2.57.1.ebuild index d5cebd6be282..e37cf4c2de6a 100644 --- a/sys-libs/libkudzu/libkudzu-1.2.57.1.ebuild +++ b/sys-libs/libkudzu/libkudzu-1.2.57.1.ebuild @@ -10,7 +10,7 @@ SRC_URI="mirror://gentoo/kudzu-${PV}.tar.gz" LICENSE="GPL-2" SLOT="0" -KEYWORDS="~alpha amd64 hppa ia64 -mips ppc ppc64 sparc x86" +KEYWORDS="~alpha amd64 hppa ~ia64 -mips ppc ppc64 sparc x86" IUSE="zlib" DEPEND=" diff --git a/sys-libs/libnih/Manifest b/sys-libs/libnih/Manifest index 113b928cc6c8..26d861528c35 100644 --- a/sys-libs/libnih/Manifest +++ b/sys-libs/libnih/Manifest @@ -2,5 +2,5 @@ AUX libnih-1.0.3-optional-dbus.patch 1162 BLAKE2B 5c9178bdd193a7d3c2eb2e068712a6 AUX libnih-1.0.3-pkg-config.patch 2491 BLAKE2B 6308443ce8ee8c77564a0c9a64b6f0a31258db08faf926bda603faf372bd73b57b00a0b75111fc07bedce0ed40080cb66d9ababadb99f9d8c4d753bce48963a5 SHA512 b99d580f4487cf3d25fa37f3f7b62ce32d9df80c6c0b01ad04b6850215ec0cc24cfea48aaf8ff89afe28db239b5ed212f139e86353d9991152d488c6edce5017 AUX libnih-1.0.3-signal-race.patch 2081 BLAKE2B c11b900289e5fbb53b3d7e7f6a90d302bbb06a7d041b1b9b502ff585e440697f77b2ae5e2eb7ae40ff3817a052bd34da02766efd1ea021ce3ad78c4542307edd SHA512 5367cb0c6382004cc2a829b9b71f0c02a09e4983940afac90c4c5c0bfbda53fb36a6cc7e38ede7a895ce28f99a4f69e89392ebaadefdc536eb7efa90c2426ff8 DIST libnih-1.0.3.tar.gz 1187624 BLAKE2B f8f9fcdda86eabff39de0b0f92cd1f8c1c0eeb0c86ec4970e5bef1cc0dff0fda83db64975ece93d5d8ede5d0613d5f363dd7456c59fe966feb5e61e5b8913627 SHA512 fce40d2445b28c27b8838631681ca3206a4f053b2dd4fc488fc9ef98bbd3d933e3d62b82cf346be2ef1677f6457f692cf5544cd915a6bb1e5c618f98ffa101b4 -EBUILD libnih-1.0.3-r3.ebuild 1498 BLAKE2B 032de356c9157fc701b26a38863eeb6af321ce2186dbb6986380ef890a6e02e4f3d1b107100e68d4a4a78ec17882eee7a44eb20156a0a95dcc1238d1e3d78ca8 SHA512 164d7c9011cec360f40c975a4dc88555f3c12f8123797e798f84b6c4ff7505ec9ea1952a158956bd96d4d29f8f5139a1a4e4f9863b64c3d28f096624b0743f78 +EBUILD libnih-1.0.3-r3.ebuild 1499 BLAKE2B 81ebd631c031c5f18ca79c582cd582c21b5d605e65976c48f0a75623ed0469bee634387ef976f2c8910ac2365c9944cd9cbd960836704908a4af9c6e62fb113e SHA512 845a2a47d3e193f3c09e5c0486252da24c246dccd409b56d702725995ee1845e719c14fa3ecba6916d2f986aed9762e6f0776792d64206a68af1314a4885fc3d MISC metadata.xml 241 BLAKE2B 02f7c7b912751df8725055416a093647e79dfdbf7f06c9f56246c67f6a1176997454dd3aaaa493ecf7d00d8ae295066e2861ac10bee860a94eef6085437561af SHA512 31e21c0bed310c4a025385f24c5b76f2e588999912fa548ca343947d95ad448b3a1232211cd4427607550c0f5de2e562e2b4e492415b6d207c954a516b811a84 diff --git a/sys-libs/libnih/libnih-1.0.3-r3.ebuild b/sys-libs/libnih/libnih-1.0.3-r3.ebuild index 96af4413a722..018cbe1034a5 100644 --- a/sys-libs/libnih/libnih-1.0.3-r3.ebuild +++ b/sys-libs/libnih/libnih-1.0.3-r3.ebuild @@ -11,7 +11,7 @@ SRC_URI="https://launchpad.net/${PN}/$(get_version_component_range 1-2)/${PV}/+d LICENSE="GPL-2" SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 hppa ia64 ~mips ppc ppc64 s390 sparc x86" +KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~mips ppc ppc64 s390 sparc x86" IUSE="+dbus nls static-libs +threads" # The configure phase will check for valgrind headers, and the tests will use diff --git a/sys-libs/libomp/Manifest b/sys-libs/libomp/Manifest index c5c77c94af37..a0380195cbba 100644 --- a/sys-libs/libomp/Manifest +++ b/sys-libs/libomp/Manifest @@ -1,13 +1,11 @@ -DIST llvmorg-10.0.0-rc1.tar.gz 120755822 BLAKE2B a729d37d96ba498cb865c6f708734dccb796b2caabb69167b9aa3b0e12c788f2a5980a048b99d5603da3d26af909fb31f406b4f4743cabae56c45f829a7bf695 SHA512 27137fc700971147c00ded6787eaae9f0bcf98c938fe227a5a559b38d983736f3d086f4ff6772d802c5f48a7d97a97c293261e4af88fcb5a720693b9cb5a4f02 -DIST llvmorg-10.0.0-rc2.tar.gz 120795019 BLAKE2B 6e701eddbd2313e777c7b37dff8455a08d3c599d01055b60afc0319373d4709deb429aac6bf9e80c4d2e2ab8ade03bf5b398b6ccd8882e4bde608d10cdbf2284 SHA512 ee571c9258a2d9fc411964f56b0b92b2e7134349ed21dbe7963eb61ef65da506e0c4f7c69259a3b6cecec23f55d24636608287ee4457ee667031e141f8f09aae +DIST llvmorg-10.0.0.tar.gz 120804856 BLAKE2B 6b0254f5b913398cdcf2b2ec1ff219888706d2b79d5296590934714e42ac79f6a6547941ac2b1d2c4e6313dd18b6c7068e748aa6ac033e49fccbf5d355aa8191 SHA512 baa182d62fef1851836013ae8a1a00861ea89769778d67fb97b407a9de664e6c85da2af9c5b3f75d2bf34ff6b00004e531ca7e4b3115a26c0e61c575cf2303a0 DIST llvmorg-9.0.1.tar.gz 113193320 BLAKE2B b86e405f2b8e00436045fd409fe19cdde75c797b1192c62a22b5ec75e6b4dc8e874a0f33008dc31562445e4cbe53a992b6f48c684255a6a1ef261e595b8b161f SHA512 fa88beeaae94b6d0cd9b5ba38658d0ffed8004035d7d8a4f95c3d31a709b88b581ae9bd7761333c8e5375c44b8f6be01768b5a3be901163159d7e6c43b71da59 DIST openmp-7.1.0.src.tar.xz 909320 BLAKE2B 7a5fd4374992b7c440ff27917c0af6a2ec64aaeb2fda645f75b5affd4981e3ceef7f15cba61c37934c5b35be543af315cc4bff2937545fbf5eaa6593f1aa8b83 SHA512 57f18beede401c1c39766e13a03b52083a0f7b437758069f66b73d6d1388dc51e48c34b0a7ecd3552244fd35e2db57388642588febef413c161f5c5411ab1e5d DIST openmp-8.0.1.src.tar.xz 933320 BLAKE2B 02a7bf70cd3a217845ef1c5a35e0d7dbfbb39069a9029d462c797b5ddf2240fd627dee55856146ca4bb81622a41f31ecd11e0ed66baf3b7d99447087271991b0 SHA512 9ded785c8129e7b3a70b54f07c4dde529456edcc94904ad77fc578cf7f096cfa3ff2279959d7f7f1db51571e11c53375f33b597c7f36ce6dc6b512c44ced8026 -EBUILD libomp-10.0.0.9999.ebuild 2983 BLAKE2B c09964c58ea8044cca3efed3a42bb66f24e72390bc587362f9eaa79eb1d958858445795254af5fc49a7c7c642a5dc8093c58950ba106cd4b34a1e7718a24e63f SHA512 b16b6f91ae77eb9ef021ccb8d033dae7cc8b9d4f8d8ffc5e0957a13198943481e18bd8176ee276832aeab9e47b18c12e42ff1663912048d111c7cc5da79ce269 -EBUILD libomp-10.0.0_rc1.ebuild 2981 BLAKE2B 6d5990e398da0b63324761df30e9a6d339b517299f839063636fbef239de372184b11da68ba788337b521d194c084306971b8d63563ba81a8ba177a69147b0cb SHA512 213027dc19bf934b7ef6b5fa8377e8f4fb8e73164dec905d1945e3eea1c4707d89b9b8887c53e49626a655b1eb664eb1b02a0c56c47e40ab69e86acb0c21aca6 -EBUILD libomp-10.0.0_rc2.ebuild 2983 BLAKE2B c09964c58ea8044cca3efed3a42bb66f24e72390bc587362f9eaa79eb1d958858445795254af5fc49a7c7c642a5dc8093c58950ba106cd4b34a1e7718a24e63f SHA512 b16b6f91ae77eb9ef021ccb8d033dae7cc8b9d4f8d8ffc5e0957a13198943481e18bd8176ee276832aeab9e47b18c12e42ff1663912048d111c7cc5da79ce269 -EBUILD libomp-11.0.0.9999.ebuild 2983 BLAKE2B c09964c58ea8044cca3efed3a42bb66f24e72390bc587362f9eaa79eb1d958858445795254af5fc49a7c7c642a5dc8093c58950ba106cd4b34a1e7718a24e63f SHA512 b16b6f91ae77eb9ef021ccb8d033dae7cc8b9d4f8d8ffc5e0957a13198943481e18bd8176ee276832aeab9e47b18c12e42ff1663912048d111c7cc5da79ce269 -EBUILD libomp-7.1.0.ebuild 3250 BLAKE2B c01271dec02e6315408cf8751580a870f0a8a08f8a7d7801efd6780049676742acc10a284ab21eff5d178570f59995cc0c388adf7d4cbafe5a07324c63de7402 SHA512 463b486bdb6fbd4b85d0935905e7b80d7c28a3279159a15182ecc364aa56eff268ba6e1dd4c4e38d90c3229b057dcbc6037419442e9aae137afd71e69816bd45 -EBUILD libomp-8.0.1.ebuild 3280 BLAKE2B ad34cfd8d5043c0fa706e292f78c5458c659b26ce260c4a049a9e8ecc88f3c268d0b4849c269a41e95255c8ca72f8db0b1f57eb342a4af0980dd34bce77c3c69 SHA512 fbe46c483dcf27d5598058b6f6394811d1e2fd2ce73cb3c34bf6519d2de0ba274562cd4d1caaae3737b70a6188c36079547518ec3a47afadf69c4696d9ec5634 -EBUILD libomp-9.0.1.ebuild 3031 BLAKE2B 2dc8fca960ae12cb920291c02807c4ef2454d6303f44e5626f3f23b29b4f9ece23ac6205b45c4a144fb65f1f125c510a76ab904257a221d83ea43085e6100c9e SHA512 9a6928c253bb48733ce47c5273d34707650f8ff2b43f6061711a47c0ccf3dccad4a12547f1201d9693e10d45631ee1c551bee3bdeca1b84de6c071ed28e4c7c1 +EBUILD libomp-10.0.0.9999.ebuild 2984 BLAKE2B f55851942ce30e6cf6f133708d68665ed9a8960769debfbbedbdda533955228f403e642fde0cdf0aeefbb127d85aa756f0d5b29d947d99592e142d92d9acad3f SHA512 64d0e6b889038adc0cfaabb9a5e7c5af55b9fd88dfceb43e52f06e94d92d099b87545f0294c67dadd14e9aa821de46cc64868a56bb172674b254ad2f2d4a2451 +EBUILD libomp-10.0.0.ebuild 3038 BLAKE2B d3cad4df1dd79167157d125d41207225193aa83d5175c98124022be495a318eb00c9e46ba02e718155689944bbfef1604fef1b69eb6f9ebb80c088ab06e1deeb SHA512 81f2d41df17d0ca497428c1c5d11938d93457876b86c89bf3b35bdf8b099ae6fc52e4726742becedc1524494083e92d8fef1179277a4f9fbad78074ff1b0c330 +EBUILD libomp-11.0.0.9999.ebuild 2984 BLAKE2B f55851942ce30e6cf6f133708d68665ed9a8960769debfbbedbdda533955228f403e642fde0cdf0aeefbb127d85aa756f0d5b29d947d99592e142d92d9acad3f SHA512 64d0e6b889038adc0cfaabb9a5e7c5af55b9fd88dfceb43e52f06e94d92d099b87545f0294c67dadd14e9aa821de46cc64868a56bb172674b254ad2f2d4a2451 +EBUILD libomp-7.1.0.ebuild 3251 BLAKE2B 56770bc1f885a9dd33dab66a025e6e162e064af4526b8e8370a7191e3bc9abe5fae2168008e49a961edacd13a486c764a165a270b04e8f5d806d47658f32e536 SHA512 2e87980d48c2ee5af9e772dc4460cb5a13c2cbabe488b9892002a17a00cbdfe080eb30bf91771f7507bef3f8b43626510c15f1acbbce34cfb49796dd20619c2b +EBUILD libomp-8.0.1.ebuild 3281 BLAKE2B 83a61a0a2c069a17b3865a4e3f94c7d53a8601c90c40d15c6d3e0584ee0c11d4729d869025833eb73d751337fbbe0a09b5501dc210cfd58f63ea3788e26c2c6d SHA512 3ad3998d3aecb80efa7adecfb58ead560e33b14aae40212bdfff7550a5fcd0ae78cac4cafff94734e86df4ab23ae36d109a5dd4fc1a9e00a683d19b9427dab4c +EBUILD libomp-9.0.1.ebuild 3031 BLAKE2B 47e36f589268fe0c89a97ebd76d92bc552e01acbd8bf021ca033a30ca1c1cd6a264555e1a52f179728d012137fada1b872a5ec9e9702ff719c11f5da3e901cac SHA512 9d68ac71e168fa4a36831dfd320e7d20681bedd1c982b50b3a9a3f38bc2b29bcd336cfbf4e0d14f4220deecf597416cb57ed60579668e6af60ce56fb1ceea55f MISC metadata.xml 825 BLAKE2B 07802144018f2f74b0927b53a346f99cbc7e36dbf501bb8dfc786f8d549c10eb688afafb1759f13d4d56d10f1bcae67dfa86cc2047cc39a9655a09a22e9a4260 SHA512 de43d5be94a5ea1cdfd3ae747d55b50d5d6ee577743f55d006d585d2d5acd5b3100845486ac415685f07361cd9985bae9347fff9c65417d198c49a61b4f6ba5e diff --git a/sys-libs/libomp/libomp-10.0.0.9999.ebuild b/sys-libs/libomp/libomp-10.0.0.9999.ebuild index d2138cbecca8..aa0be13c4ba5 100644 --- a/sys-libs/libomp/libomp-10.0.0.9999.ebuild +++ b/sys-libs/libomp/libomp-10.0.0.9999.ebuild @@ -23,7 +23,7 @@ RDEPEND=" hwloc? ( sys-apps/hwloc:0=[${MULTILIB_USEDEP}] ) offload? ( virtual/libelf:=[${MULTILIB_USEDEP}] - virtual/libffi:=[${MULTILIB_USEDEP}] + dev-libs/libffi:=[${MULTILIB_USEDEP}] cuda? ( dev-util/nvidia-cuda-toolkit:= ) )" # tests: diff --git a/sys-libs/libomp/libomp-10.0.0.ebuild b/sys-libs/libomp/libomp-10.0.0.ebuild new file mode 100644 index 000000000000..74fc7dac605f --- /dev/null +++ b/sys-libs/libomp/libomp-10.0.0.ebuild @@ -0,0 +1,106 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +PYTHON_COMPAT=( python3_{6,7,8} ) +inherit cmake-multilib linux-info llvm.org multiprocessing python-any-r1 + +DESCRIPTION="OpenMP runtime library for LLVM/clang compiler" +HOMEPAGE="https://openmp.llvm.org" +LLVM_COMPONENTS=( openmp ) +llvm.org_set_globals + +LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86 ~amd64-linux ~x64-macos" +IUSE="cuda hwloc kernel_linux offload ompt test" +# CUDA works only with the x86_64 ABI +REQUIRED_USE="offload? ( cuda? ( abi_x86_64 ) )" +RESTRICT="!test? ( test )" + +RDEPEND=" + hwloc? ( sys-apps/hwloc:0=[${MULTILIB_USEDEP}] ) + offload? ( + virtual/libelf:=[${MULTILIB_USEDEP}] + dev-libs/libffi:=[${MULTILIB_USEDEP}] + cuda? ( dev-util/nvidia-cuda-toolkit:= ) + )" +# tests: +# - dev-python/lit provides the test runner +# - sys-devel/llvm provide test utils (e.g. FileCheck) +# - sys-devel/clang provides the compiler to run tests +DEPEND="${RDEPEND}" +BDEPEND="dev-lang/perl + offload? ( virtual/pkgconfig[${MULTILIB_USEDEP}] ) + test? ( + $(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') + >=sys-devel/clang-6 + )" + +# least intrusive of all +CMAKE_BUILD_TYPE=RelWithDebInfo + +python_check_deps() { + has_version "dev-python/lit[${PYTHON_USEDEP}]" +} + +kernel_pds_check() { + if use kernel_linux && kernel_is -lt 4 15 && kernel_is -ge 4 13; then + local CONFIG_CHECK="~!SCHED_PDS" + local ERROR_SCHED_PDS="\ +PDS scheduler versions >= 0.98c < 0.98i (e.g. used in kernels >= 4.13-pf11 +< 4.14-pf9) do not implement sched_yield() call which may result in horrible +performance problems with libomp. If you are using one of the specified +kernel versions, you may want to disable the PDS scheduler." + + check_extra_config + fi +} + +pkg_pretend() { + kernel_pds_check +} + +pkg_setup() { + use test && python-any-r1_pkg_setup +} + +multilib_src_configure() { + local libdir="$(get_libdir)" + local mycmakeargs=( + -DOPENMP_LIBDIR_SUFFIX="${libdir#lib}" + + -DLIBOMP_USE_HWLOC=$(usex hwloc) + -DLIBOMP_OMPT_SUPPORT=$(usex ompt) + + -DOPENMP_ENABLE_LIBOMPTARGET=$(usex offload) + + # do not install libgomp.so & libiomp5.so aliases + -DLIBOMP_INSTALL_ALIASES=OFF + # disable unnecessary hack copying stuff back to srcdir + -DLIBOMP_COPY_EXPORTS=OFF + ) + use offload && mycmakeargs+=( + # this is non-fatal and libomp checks for CUDA conditionally + # to ABI, so we can just ignore passing the wrong value + # on non-amd64 ABIs + -DCMAKE_DISABLE_FIND_PACKAGE_CUDA=$(usex !cuda) + ) + use test && mycmakeargs+=( + # this project does not use standard LLVM cmake macros + -DOPENMP_LLVM_LIT_EXECUTABLE="${EPREFIX}/usr/bin/lit" + -DOPENMP_LIT_ARGS="-vv;-j;${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")}" + + -DOPENMP_TEST_C_COMPILER="$(type -P "${CHOST}-clang")" + -DOPENMP_TEST_CXX_COMPILER="$(type -P "${CHOST}-clang++")" + ) + cmake-utils_src_configure +} + +multilib_src_test() { + # respect TMPDIR! + local -x LIT_PRESERVES_TMP=1 + + cmake-utils_src_make check-libomp +} diff --git a/sys-libs/libomp/libomp-10.0.0_rc1.ebuild b/sys-libs/libomp/libomp-10.0.0_rc1.ebuild deleted file mode 100644 index d766845101ee..000000000000 --- a/sys-libs/libomp/libomp-10.0.0_rc1.ebuild +++ /dev/null @@ -1,106 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -PYTHON_COMPAT=( python3_{6,7} ) -inherit cmake-multilib linux-info llvm.org multiprocessing python-any-r1 - -DESCRIPTION="OpenMP runtime library for LLVM/clang compiler" -HOMEPAGE="https://openmp.llvm.org" -LLVM_COMPONENTS=( openmp ) -llvm.org_set_globals - -LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" -SLOT="0" -KEYWORDS="" -IUSE="cuda hwloc kernel_linux offload ompt test" -# CUDA works only with the x86_64 ABI -REQUIRED_USE="offload? ( cuda? ( abi_x86_64 ) )" -RESTRICT="!test? ( test )" - -RDEPEND=" - hwloc? ( sys-apps/hwloc:0=[${MULTILIB_USEDEP}] ) - offload? ( - virtual/libelf:=[${MULTILIB_USEDEP}] - virtual/libffi:=[${MULTILIB_USEDEP}] - cuda? ( dev-util/nvidia-cuda-toolkit:= ) - )" -# tests: -# - dev-python/lit provides the test runner -# - sys-devel/llvm provide test utils (e.g. FileCheck) -# - sys-devel/clang provides the compiler to run tests -DEPEND="${RDEPEND}" -BDEPEND="dev-lang/perl - offload? ( virtual/pkgconfig[${MULTILIB_USEDEP}] ) - test? ( - $(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') - >=sys-devel/clang-6 - )" - -# least intrusive of all -CMAKE_BUILD_TYPE=RelWithDebInfo - -python_check_deps() { - has_version "dev-python/lit[${PYTHON_USEDEP}]" -} - -kernel_pds_check() { - if use kernel_linux && kernel_is -lt 4 15 && kernel_is -ge 4 13; then - local CONFIG_CHECK="~!SCHED_PDS" - local ERROR_SCHED_PDS="\ -PDS scheduler versions >= 0.98c < 0.98i (e.g. used in kernels >= 4.13-pf11 -< 4.14-pf9) do not implement sched_yield() call which may result in horrible -performance problems with libomp. If you are using one of the specified -kernel versions, you may want to disable the PDS scheduler." - - check_extra_config - fi -} - -pkg_pretend() { - kernel_pds_check -} - -pkg_setup() { - use test && python-any-r1_pkg_setup -} - -multilib_src_configure() { - local libdir="$(get_libdir)" - local mycmakeargs=( - -DOPENMP_LIBDIR_SUFFIX="${libdir#lib}" - - -DLIBOMP_USE_HWLOC=$(usex hwloc) - -DLIBOMP_OMPT_SUPPORT=$(usex ompt) - - -DOPENMP_ENABLE_LIBOMPTARGET=$(usex offload) - - # do not install libgomp.so & libiomp5.so aliases - -DLIBOMP_INSTALL_ALIASES=OFF - # disable unnecessary hack copying stuff back to srcdir - -DLIBOMP_COPY_EXPORTS=OFF - ) - use offload && mycmakeargs+=( - # this is non-fatal and libomp checks for CUDA conditionally - # to ABI, so we can just ignore passing the wrong value - # on non-amd64 ABIs - -DCMAKE_DISABLE_FIND_PACKAGE_CUDA=$(usex !cuda) - ) - use test && mycmakeargs+=( - # this project does not use standard LLVM cmake macros - -DOPENMP_LLVM_LIT_EXECUTABLE="${EPREFIX}/usr/bin/lit" - -DOPENMP_LIT_ARGS="-vv;-j;${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")}" - - -DOPENMP_TEST_C_COMPILER="$(type -P "${CHOST}-clang")" - -DOPENMP_TEST_CXX_COMPILER="$(type -P "${CHOST}-clang++")" - ) - cmake-utils_src_configure -} - -multilib_src_test() { - # respect TMPDIR! - local -x LIT_PRESERVES_TMP=1 - - cmake-utils_src_make check-libomp -} diff --git a/sys-libs/libomp/libomp-10.0.0_rc2.ebuild b/sys-libs/libomp/libomp-10.0.0_rc2.ebuild deleted file mode 100644 index d2138cbecca8..000000000000 --- a/sys-libs/libomp/libomp-10.0.0_rc2.ebuild +++ /dev/null @@ -1,106 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -PYTHON_COMPAT=( python3_{6,7,8} ) -inherit cmake-multilib linux-info llvm.org multiprocessing python-any-r1 - -DESCRIPTION="OpenMP runtime library for LLVM/clang compiler" -HOMEPAGE="https://openmp.llvm.org" -LLVM_COMPONENTS=( openmp ) -llvm.org_set_globals - -LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" -SLOT="0" -KEYWORDS="" -IUSE="cuda hwloc kernel_linux offload ompt test" -# CUDA works only with the x86_64 ABI -REQUIRED_USE="offload? ( cuda? ( abi_x86_64 ) )" -RESTRICT="!test? ( test )" - -RDEPEND=" - hwloc? ( sys-apps/hwloc:0=[${MULTILIB_USEDEP}] ) - offload? ( - virtual/libelf:=[${MULTILIB_USEDEP}] - virtual/libffi:=[${MULTILIB_USEDEP}] - cuda? ( dev-util/nvidia-cuda-toolkit:= ) - )" -# tests: -# - dev-python/lit provides the test runner -# - sys-devel/llvm provide test utils (e.g. FileCheck) -# - sys-devel/clang provides the compiler to run tests -DEPEND="${RDEPEND}" -BDEPEND="dev-lang/perl - offload? ( virtual/pkgconfig[${MULTILIB_USEDEP}] ) - test? ( - $(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') - >=sys-devel/clang-6 - )" - -# least intrusive of all -CMAKE_BUILD_TYPE=RelWithDebInfo - -python_check_deps() { - has_version "dev-python/lit[${PYTHON_USEDEP}]" -} - -kernel_pds_check() { - if use kernel_linux && kernel_is -lt 4 15 && kernel_is -ge 4 13; then - local CONFIG_CHECK="~!SCHED_PDS" - local ERROR_SCHED_PDS="\ -PDS scheduler versions >= 0.98c < 0.98i (e.g. used in kernels >= 4.13-pf11 -< 4.14-pf9) do not implement sched_yield() call which may result in horrible -performance problems with libomp. If you are using one of the specified -kernel versions, you may want to disable the PDS scheduler." - - check_extra_config - fi -} - -pkg_pretend() { - kernel_pds_check -} - -pkg_setup() { - use test && python-any-r1_pkg_setup -} - -multilib_src_configure() { - local libdir="$(get_libdir)" - local mycmakeargs=( - -DOPENMP_LIBDIR_SUFFIX="${libdir#lib}" - - -DLIBOMP_USE_HWLOC=$(usex hwloc) - -DLIBOMP_OMPT_SUPPORT=$(usex ompt) - - -DOPENMP_ENABLE_LIBOMPTARGET=$(usex offload) - - # do not install libgomp.so & libiomp5.so aliases - -DLIBOMP_INSTALL_ALIASES=OFF - # disable unnecessary hack copying stuff back to srcdir - -DLIBOMP_COPY_EXPORTS=OFF - ) - use offload && mycmakeargs+=( - # this is non-fatal and libomp checks for CUDA conditionally - # to ABI, so we can just ignore passing the wrong value - # on non-amd64 ABIs - -DCMAKE_DISABLE_FIND_PACKAGE_CUDA=$(usex !cuda) - ) - use test && mycmakeargs+=( - # this project does not use standard LLVM cmake macros - -DOPENMP_LLVM_LIT_EXECUTABLE="${EPREFIX}/usr/bin/lit" - -DOPENMP_LIT_ARGS="-vv;-j;${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")}" - - -DOPENMP_TEST_C_COMPILER="$(type -P "${CHOST}-clang")" - -DOPENMP_TEST_CXX_COMPILER="$(type -P "${CHOST}-clang++")" - ) - cmake-utils_src_configure -} - -multilib_src_test() { - # respect TMPDIR! - local -x LIT_PRESERVES_TMP=1 - - cmake-utils_src_make check-libomp -} diff --git a/sys-libs/libomp/libomp-11.0.0.9999.ebuild b/sys-libs/libomp/libomp-11.0.0.9999.ebuild index d2138cbecca8..aa0be13c4ba5 100644 --- a/sys-libs/libomp/libomp-11.0.0.9999.ebuild +++ b/sys-libs/libomp/libomp-11.0.0.9999.ebuild @@ -23,7 +23,7 @@ RDEPEND=" hwloc? ( sys-apps/hwloc:0=[${MULTILIB_USEDEP}] ) offload? ( virtual/libelf:=[${MULTILIB_USEDEP}] - virtual/libffi:=[${MULTILIB_USEDEP}] + dev-libs/libffi:=[${MULTILIB_USEDEP}] cuda? ( dev-util/nvidia-cuda-toolkit:= ) )" # tests: diff --git a/sys-libs/libomp/libomp-7.1.0.ebuild b/sys-libs/libomp/libomp-7.1.0.ebuild index 8946c652275f..169b98cab958 100644 --- a/sys-libs/libomp/libomp-7.1.0.ebuild +++ b/sys-libs/libomp/libomp-7.1.0.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2019 Gentoo Authors +# Copyright 1999-2020 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=6 @@ -30,7 +30,7 @@ RDEPEND=" hwloc? ( sys-apps/hwloc:0=[${MULTILIB_USEDEP}] ) offload? ( virtual/libelf:=[${MULTILIB_USEDEP}] - virtual/libffi:=[${MULTILIB_USEDEP}] + dev-libs/libffi:=[${MULTILIB_USEDEP}] cuda? ( dev-util/nvidia-cuda-toolkit:= ) )" # tests: diff --git a/sys-libs/libomp/libomp-8.0.1.ebuild b/sys-libs/libomp/libomp-8.0.1.ebuild index e80ec0c8aeaa..add0d7125ed6 100644 --- a/sys-libs/libomp/libomp-8.0.1.ebuild +++ b/sys-libs/libomp/libomp-8.0.1.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2019 Gentoo Authors +# Copyright 1999-2020 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=6 @@ -31,7 +31,7 @@ RDEPEND=" hwloc? ( sys-apps/hwloc:0=[${MULTILIB_USEDEP}] ) offload? ( virtual/libelf:=[${MULTILIB_USEDEP}] - virtual/libffi:=[${MULTILIB_USEDEP}] + dev-libs/libffi:=[${MULTILIB_USEDEP}] cuda? ( dev-util/nvidia-cuda-toolkit:= ) )" # tests: diff --git a/sys-libs/libomp/libomp-9.0.1.ebuild b/sys-libs/libomp/libomp-9.0.1.ebuild index 058994545e79..f8e49887b6aa 100644 --- a/sys-libs/libomp/libomp-9.0.1.ebuild +++ b/sys-libs/libomp/libomp-9.0.1.ebuild @@ -13,7 +13,7 @@ llvm.org_set_globals LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" SLOT="0" -KEYWORDS="amd64 arm ~arm64 ppc64 x86 ~amd64-linux ~x64-macos" +KEYWORDS="amd64 arm arm64 ppc64 x86 ~amd64-linux ~x64-macos" IUSE="cuda hwloc kernel_linux offload ompt test" # CUDA works only with the x86_64 ABI REQUIRED_USE="offload? ( cuda? ( abi_x86_64 ) )" @@ -23,7 +23,7 @@ RDEPEND=" hwloc? ( sys-apps/hwloc:0=[${MULTILIB_USEDEP}] ) offload? ( virtual/libelf:=[${MULTILIB_USEDEP}] - virtual/libffi:=[${MULTILIB_USEDEP}] + dev-libs/libffi:=[${MULTILIB_USEDEP}] cuda? ( dev-util/nvidia-cuda-toolkit:= ) )" # tests: diff --git a/sys-libs/libosinfo/Manifest b/sys-libs/libosinfo/Manifest index 4d42ebb4a693..8cb384fdfe8d 100644 --- a/sys-libs/libosinfo/Manifest +++ b/sys-libs/libosinfo/Manifest @@ -1,5 +1,3 @@ -DIST libosinfo-1.4.0.tar.gz 1075852 BLAKE2B 93129a29ea3a1a3aa69fdceabcf6f41393c8e1dd3f92872d97dcc23a3316b0e4d16ede104da9a3ea0c49d352ba88e05ba5a38806c8c039fe92217e4b6e3140ab SHA512 531b7acf811add53252e52917f8b13b409dbe7a4bc5837dcbe34e729b0f294e760d5a57c5c1c56f1f65217b7fc6e285a56a6fa49d36f02cf696b7cc181db1fe5 DIST libosinfo-1.6.0.tar.gz 1024787 BLAKE2B 4d0783b41f8c9ed7472c798acede0cd1f3808858ab954e838e8d7543dc50a9819d1f26b0cb02a97c8ed8ebee47db1b915aab5daadc0be2742e8f5c1ba8451a75 SHA512 53359095e40ef12e0cc142ddc92119b4a753bb47a728f13a8ff500a19108a44eb1f6ebe4ed67b04347a707dd0c0d55bcfe6815b57d187237dddd7376ebe9cf5e -EBUILD libosinfo-1.4.0.ebuild 1889 BLAKE2B e270a3fc8436b9766caa8c7d5dcc0812860422e66571964c23115c3e165ec5ca922fd728ea693bc09d10693eda6f99845b1d03f893dc3ef89aaccd28c2065702 SHA512 f2d7c045173732f79333e0c04341d50155afccc4ad4f33a7bc53e83977a0074a9aaaa770fc2decbbc10aed860b91a7dd232c88fbe6879157b63f22d1e0506545 -EBUILD libosinfo-1.6.0.ebuild 1458 BLAKE2B 2a3c766c681b721658ff53fd9129b1a82b86d9154944ba65bd8b2ed79c1c7074364f5b908ac80101d5237bc97b2ed9370dd795a5448b809b0d10032e3dba79e0 SHA512 ffd6fa7c08dd67eb4b46885aa8c72fe2223cf78cc8ee5184e16645a3881d92fff5d86cd6e5bf719a0c51391fcf46451134ae41c2a7951990cb0ebc0faca6c34f +EBUILD libosinfo-1.6.0.ebuild 1455 BLAKE2B 303988e1c94622f9819071aec92f0cb3659b9cf5ac025406a85839ed0ddb8f187fd77b7f9c11bb898802d36d49f508da06fd42a27eaa2b696e797a8fd5588ac3 SHA512 5b3da89d1da8fd76f72523262249e45b719d6e23f3f2983b9780a41fcadde2b8e6447645368c2c86527a4c3ebc40569e121a0af65ad402b810b3854d7f8b1714 MISC metadata.xml 249 BLAKE2B e71e1b95fee768c696704acbf7e3cf0e599ed2bc8de92bae0141d1194ef9e842bdc292798904487a9b90ddfda9b0e84abd3b76b1518576c1d288240e4e46f110 SHA512 c40662134899a5c9f0369a1017806f35adf3280a0b3c91726f7a8ca6012a073a8b471583f5bfb6fe95faac1dcf607e8e2e43f8c91d48ec46f4a8824e2f551506 diff --git a/sys-libs/libosinfo/libosinfo-1.4.0.ebuild b/sys-libs/libosinfo/libosinfo-1.4.0.ebuild deleted file mode 100644 index 93cbfec3fe17..000000000000 --- a/sys-libs/libosinfo/libosinfo-1.4.0.ebuild +++ /dev/null @@ -1,63 +0,0 @@ -# Copyright 1999-2019 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 -VALA_USE_DEPEND="vapigen" - -inherit gnome2 udev vala - -DESCRIPTION="GObject library for managing information about real and virtual OSes" -HOMEPAGE="https://libosinfo.org/" -SRC_URI="https://releases.pagure.org/libosinfo/${P}.tar.gz" - -LICENSE="GPL-2+ LGPL-2.1+" -SLOT="0" - -IUSE="+introspection +vala test" -RESTRICT="!test? ( test )" -REQUIRED_USE="vala? ( introspection )" - -KEYWORDS="~alpha amd64 ~arm arm64 ~ia64 ~ppc ~ppc64 ~sparc x86" - -# Unsure about osinfo-db-tools rdep, but at least fedora does it too -RDEPEND=" - >=dev-libs/glib-2.38.0:2 - >=dev-libs/libxml2-2.6.0 - >=dev-libs/libxslt-1.0.0 - sys-apps/hwids[pci,usb] - sys-apps/osinfo-db-tools - sys-apps/osinfo-db - introspection? ( >=dev-libs/gobject-introspection-0.9.7:= ) -" -# perl dep is for pod2man, and configure.ac checks for it too now -# Tests can use net-misc/curl, but they are automatically skipped if curl is not found, and -# if it is found, then those tests are skipped at runtime if LIBOSINFO_NETWORK_TESTS is unset. -# Due to potential network-sandbox we aren't enabling them (and one of them fails at 1.2.0). -DEPEND="${RDEPEND} - dev-lang/perl - dev-libs/gobject-introspection-common - dev-util/glib-utils - >=dev-util/gtk-doc-am-1.10 - >=sys-devel/gettext-0.19.8 - virtual/pkgconfig - test? ( - <=sys-apps/osinfo-db-20190304 - ) - vala? ( $(vala_depend) ) -" # osinfo-db-20190319 and newer make tests fail; next libosinfo will remove the failing tests (moved to a future osinfo-db itself) - -src_prepare() { - gnome2_src_prepare - use vala && vala_src_prepare -} - -src_configure() { - gnome2_src_configure \ - --with-usb-ids-path=/usr/share/misc/usb.ids \ - --with-pci-ids-path=/usr/share/misc/pci.ids \ - --disable-static \ - $(use_enable test tests) \ - $(use_enable introspection) \ - $(use_enable vala) \ - --disable-coverage -} diff --git a/sys-libs/libosinfo/libosinfo-1.6.0.ebuild b/sys-libs/libosinfo/libosinfo-1.6.0.ebuild index 1990a9c8b5ac..a90d7a61740e 100644 --- a/sys-libs/libosinfo/libosinfo-1.6.0.ebuild +++ b/sys-libs/libosinfo/libosinfo-1.6.0.ebuild @@ -17,7 +17,7 @@ IUSE="+introspection +vala test" RESTRICT="!test? ( test )" REQUIRED_USE="vala? ( introspection )" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ia64 ~ppc ~ppc64 ~sparc ~x86" +KEYWORDS="~alpha amd64 ~arm arm64 ~ia64 ~ppc ~ppc64 ~sparc x86" # Unsure about osinfo-db-tools rdep, but at least fedora does it too RDEPEND=" diff --git a/sys-libs/libraw1394/Manifest b/sys-libs/libraw1394/Manifest index 81f86a654700..a8a3e1cc480f 100644 --- a/sys-libs/libraw1394/Manifest +++ b/sys-libs/libraw1394/Manifest @@ -1,8 +1,3 @@ -DIST libraw1394-2.1.0.tar.xz 291456 BLAKE2B 8fa19d9f4348b7cb0b78e0789c1a7c112bad475064c1c2cc4a44a39fb859b9c056c97b88983940110b8f484e309f7bf3a27b18b50603f600b8f4fc585c7987e1 SHA512 04295c2b4391b1c61cc1c65dbe5921f5e208bbb311104366d5756a82a6c53f1339c368fe76077318b22e2402fd8f679236606d0be4898728a9dba2d7a8989b9e -DIST libraw1394-2.1.1.tar.xz 309396 BLAKE2B 2460e8b9f848d30c74fb93c78e38ef818a09d714faa66f872dbb822daef0e7e144a2e18a898235915ddfc462ee68385c2ef24ca5217cf314847808678fc1d21f SHA512 ed6acf10e50593e6070764e57cb6cc0eabb6f2bc4b4ed805a55cdfc37109c1975eb597dfbef9b6f8bc73a9e9270e7d643956489f54682f4c670fa510ef726fbe DIST libraw1394-2.1.2.tar.xz 313120 BLAKE2B 73addee88d2463ecebc4a0bca14d8f4c285c8e7060e3ded49bacbb818049e436bdaf98bde26469ec03e1baf196f67fec59e90201347f34a5810b8704108c8d7f SHA512 1ef38961b747c4ebb18d823a4c38d5bf019f8bd0ac55547838d153b1899b91ae0ff56f5b6732e309d6975b55725d1ce989917ffcf605cf64f7d33624f54f0567 -EBUILD libraw1394-2.1.0-r1.ebuild 510 BLAKE2B 9fb5d9b65b7fd1ecffeaaaa7aea96ed3cd28a4c76dcb6e3d216b7f167d3de1988edeb7b59f2ca73d55fa820743b4ef0dff4475f79158780878f50427c1e0feb7 SHA512 8bd14df2628ae30a76216f995df4c9796dac3847873f0716e7443c3b7de89486cad778f6ef2e9ea6faf4858de0eb2f092b88ff622da7b32f9ca21c3b75ef9fa3 -EBUILD libraw1394-2.1.1.ebuild 521 BLAKE2B 727c89d51ba6865502accbcb4bdfb519ba8b3681a80d555216a84ec64c4cd507066e80ae6f0a048906054cde86857b7054137725482c1770b73af30776fa07a1 SHA512 27debfd5049bfeb50899084311ab1035128a9ac0335de5b9c5f0ea76e84906b6745a7430f3bf527fbf46f190875cca9bcb94eaf6d614aef0d533bb373e231cf7 -EBUILD libraw1394-2.1.2-r1.ebuild 599 BLAKE2B a541cdde3c348ffb75f70500f723b072c28592571755b73641d44aeb854d21797c7b6c76a976aada06f3f5400d463e2474acbc9213afbe1712cb38b964ffed6f SHA512 cc15a25c0094ad0a8876397872b6640f2c9f1d19ec4417d29d088fe04edec3862b40affa91e171c276f7ff95274e450624857611600d0dbde4ada2283a8367d3 -EBUILD libraw1394-2.1.2.ebuild 524 BLAKE2B 135a53734dc88a23d1b5f86daaf2973cf5d9992a9a905c52d43a2baa1b53f2f3420f08346d7f9fd64263ecc2c0b1a1aca4c2eb7e0a4b64ab3bd131fa0edb4d87 SHA512 b61e305f55580d2832f172095521651544bc02f5378d0e6c4c33d0c85b47790d2e99eb17c36c147efdd669e1a8d722ce54b37c467b3f768a8087c3db9aeb937a +EBUILD libraw1394-2.1.2-r1.ebuild 595 BLAKE2B 5b980073d04f59544c970fbf942c1c4cf39fc7e216819991d61a9a98b245135873ea0c5fa4123e6df50ae4a6bdc1db0b1942e82a027a55c887306e54f4f7396d SHA512 f9c19db7ca699b1397285e4b314ed6bdce88e7b227997c86c646011843bf7b3dd479ff8693a94e4f0391bc549eb8842273f0f060b0dce82c8b5dc33cf8e883a1 MISC metadata.xml 253 BLAKE2B 295e9d6d93aaa12af413972e1590c67087801cc09c9aa6b59d4606c0f4106d1dacf2baa9858559083b4c6d91beeef218d0729e8593a33788958da6d2897e8ce2 SHA512 54a9069aeb4165d2dff3d473c8001bc51613aac9dff3f7f5e9971a9891a737a31511ffa11cbd523febe581ac1d9de2bdf2f40410f0c4239138f2ccca3ef15555 diff --git a/sys-libs/libraw1394/libraw1394-2.1.0-r1.ebuild b/sys-libs/libraw1394/libraw1394-2.1.0-r1.ebuild deleted file mode 100644 index 2b28725b79d5..000000000000 --- a/sys-libs/libraw1394/libraw1394-2.1.0-r1.ebuild +++ /dev/null @@ -1,20 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=4 - -AUTOTOOLS_PRUNE_LIBTOOL_FILES=all - -inherit autotools-multilib - -DESCRIPTION="library that provides direct access to the IEEE 1394 bus" -HOMEPAGE="https://ieee1394.wiki.kernel.org/" -SRC_URI="https://www.kernel.org/pub/linux/libs/ieee1394/${P}.tar.xz" - -LICENSE="LGPL-2.1" -SLOT="0" -KEYWORDS="~alpha amd64 arm hppa ia64 ppc ppc64 ~sh sparc x86" -IUSE="static-libs" - -DEPEND="app-arch/xz-utils" -RDEPEND="" diff --git a/sys-libs/libraw1394/libraw1394-2.1.1.ebuild b/sys-libs/libraw1394/libraw1394-2.1.1.ebuild deleted file mode 100644 index 816da911e438..000000000000 --- a/sys-libs/libraw1394/libraw1394-2.1.1.ebuild +++ /dev/null @@ -1,20 +0,0 @@ -# Copyright 1999-2015 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -EAPI=4 - -AUTOTOOLS_PRUNE_LIBTOOL_FILES=all - -inherit autotools-multilib - -DESCRIPTION="library that provides direct access to the IEEE 1394 bus" -HOMEPAGE="https://ieee1394.wiki.kernel.org/" -SRC_URI="https://www.kernel.org/pub/linux/libs/ieee1394/${P}.tar.xz" - -LICENSE="LGPL-2.1" -SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sh ~sparc ~x86" -IUSE="static-libs" - -DEPEND="app-arch/xz-utils" -RDEPEND="" diff --git a/sys-libs/libraw1394/libraw1394-2.1.2-r1.ebuild b/sys-libs/libraw1394/libraw1394-2.1.2-r1.ebuild index 07acc06ee439..a9b1d7c0fa3a 100644 --- a/sys-libs/libraw1394/libraw1394-2.1.2-r1.ebuild +++ b/sys-libs/libraw1394/libraw1394-2.1.2-r1.ebuild @@ -11,7 +11,7 @@ SRC_URI="https://www.kernel.org/pub/linux/libs/ieee1394/${P}.tar.xz" LICENSE="LGPL-2.1" SLOT="0" -KEYWORDS="~alpha amd64 arm ~arm64 hppa ia64 ppc ppc64 ~sh sparc x86" +KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ppc ppc64 sparc x86" IUSE="" multilib_src_configure() { diff --git a/sys-libs/libraw1394/libraw1394-2.1.2.ebuild b/sys-libs/libraw1394/libraw1394-2.1.2.ebuild deleted file mode 100644 index 49545cdd7aca..000000000000 --- a/sys-libs/libraw1394/libraw1394-2.1.2.ebuild +++ /dev/null @@ -1,20 +0,0 @@ -# Copyright 1999-2019 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=5 - -AUTOTOOLS_PRUNE_LIBTOOL_FILES=all - -inherit autotools-multilib - -DESCRIPTION="library that provides direct access to the IEEE 1394 bus" -HOMEPAGE="https://ieee1394.wiki.kernel.org/" -SRC_URI="https://www.kernel.org/pub/linux/libs/ieee1394/${P}.tar.xz" - -LICENSE="LGPL-2.1" -SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm arm64 ~hppa ~ia64 ~ppc ~ppc64 ~sh ~sparc ~x86" -IUSE="static-libs" - -DEPEND="app-arch/xz-utils" -RDEPEND="" diff --git a/sys-libs/libseccomp/Manifest b/sys-libs/libseccomp/Manifest index 0ef249467deb..6e59851a5fcc 100644 --- a/sys-libs/libseccomp/Manifest +++ b/sys-libs/libseccomp/Manifest @@ -1,8 +1,6 @@ AUX libseccomp-2.4.2-missing_SNR_ppoll_defs.patch 1228 BLAKE2B 4e1a60bec1ee6004367faa559ab15b5a14228df7abd95ec2a3a28ef08346233497573517f43e240f770893e482f4e45b75b107e6e2b5f4825e8ddfe4d14f1451 SHA512 e6d37ff50915ccc0101f1cb2aa7af5061c38d95fc8f51034f944161d5620b0bb8588c296b3be5695427ef5e0ec66b2c660ad0e408485269c0be2aa98991717aa -DIST libseccomp-2.4.0.tar.gz 604987 BLAKE2B 2dd84f2c08d40a61dfe4fdc47a9dcdad2701e2918cdcdeae2d15a66eb114221866121bab11a8292f3bd31493b6cd7b370d0728976cb1bbfd0dbb9e32127b9045 SHA512 daa4a32c6c2b2f39aa9db1a4606619f9faeffcd2fca00c25ac5cf95d0405639ec21203293be7c8341317a05b18fd9f603a201544457cac91bf034a0bbd4dfc88 -DIST libseccomp-2.4.1.tar.gz 606860 BLAKE2B f80f11ef4e03fc9f59fdd38466e32b081e9858473266942b22a1bd1afbd480d21e9c72f9c33e197349fcd2658361f84ee1ee371f73aa5dfe19561472fec8c1ed SHA512 1fe47ebb032635ba1b1cbefb505a0c103bae659844d1bf106d03e7f28b3c470726f7b0dbbe76d10ab89501630dc4f20b162c2eeefa22394eb632f803ae62ccc5 DIST libseccomp-2.4.2.tar.gz 601014 BLAKE2B cff2612498a6ff3097809e9e04542e0be12c2c5d80fd51c2abd35fb6ac59f3ef7fce1c5205216876c1f67eb762d31c7df8e0f237f3957b7710148a1298502ae5 SHA512 375a3c7c658be6a08b9bb30963e10bb49e8e066119e0be6d3d97faac3db18b8e2c6938d8b5d3874b2f5331ec8295170112fbae83b5a3b5a5bebc0d6705bdfdbb -EBUILD libseccomp-2.4.0.ebuild 1020 BLAKE2B ac1751d130f6879190709c32f1d485c94fa299686d3b34c87098440c8829c38575d4f4ecf232c42f60e71664b031cff07f7521936455359c8d41b72ea61ec7cd SHA512 ae9283a13fde88d058c46543c1663f1c4dd61d3f4c3c82685b2a7c752af2d3a16ef61b51057ddfd27ea7dfa4403bbef031462505bc1c0a65e0dc5d316fec2997 -EBUILD libseccomp-2.4.1.ebuild 1028 BLAKE2B e5bb28b41e63a74c7a51fbd9bddc65a6cd2ea558ac0d32381862c62ba3554150311718d5f9aa83c95d6aefc551e29c085b885007f49e25597f02411808818ea4 SHA512 0a59b16b9056a1d16be91ef066ba17958465d7cc5646e2bf5de54ccbee74bb5ffc88b9fddc1557c385ff1fe58947a0347b8b5e8eff643917d9bb9933478f344a +DIST libseccomp-2.4.3.tar.gz 598147 BLAKE2B 272c9f1ca7e4059790f633a79cae8612831aa483d28630fb85b31dc2be0192907a8897819d835b61324e0b3fb0d77b8781e2a85e9750ef8d7974d8680b8cdea3 SHA512 7b7af2e98493243ffe1934fefff5723b24ae9b9bdc4bf039343ee8456c15acb0ea34e81ec292a41143848272aeca794ef92ad38fc3f42c77465170cb540479ef EBUILD libseccomp-2.4.2-r1.ebuild 1097 BLAKE2B d72b57d2f44a2792847f2225b4bd012c54afc95f62c4d532493ce7ee827abf1bfbb04f3d52d450d3bcfc72790c562ae6c6169b16c6c5d96811b70a8e7070b913 SHA512 d3892fd1915b514dc345134b3c37b2aea3d906fd998ef5ddcc57e09513422c01710c03929ee1a2266716b7941bf70b0e4593dfd9366d1cdfebb25a5bcd807c31 +EBUILD libseccomp-2.4.3.ebuild 1040 BLAKE2B 3b47fe8281da898943b0c8886e38e35330df9f32a1253c5f5b8fc632ba999654bad4182a0ab4c2d4d30e004c95064cfbea729eebb5bc8a59a4cfffe920ac28f8 SHA512 88a050dcf1d36b223465e417f3764237ea8f6c7226e6661288ffb0d5c3c9e85307373d8ac13864553a1b7e736a20e0e3f0120b7ec5c23f83d435d4cb7a32c2f8 MISC metadata.xml 395 BLAKE2B a375d336aa4cdc973bc6edefa50745bdc67753e53988718a804b9dfab02d8c8324fd998c9c17dfac0f1c57a7068d2c036ad37194a46c3aec208314171c357367 SHA512 db1f67e65f149ce7122b9c845d1305cdca95428267590d7261af489493dd34518c178ce8ce402bea290c0ee441fdece5006c62803ed587281dc7d84a25a3c3e4 diff --git a/sys-libs/libseccomp/libseccomp-2.4.0.ebuild b/sys-libs/libseccomp/libseccomp-2.4.0.ebuild deleted file mode 100644 index 8914898af2db..000000000000 --- a/sys-libs/libseccomp/libseccomp-2.4.0.ebuild +++ /dev/null @@ -1,41 +0,0 @@ -# Copyright 1999-2019 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -# TODO: Add python support. - -EAPI=6 - -inherit multilib-minimal - -DESCRIPTION="high level interface to Linux seccomp filter" -HOMEPAGE="https://github.com/seccomp/libseccomp" -SRC_URI="https://github.com/seccomp/libseccomp/releases/download/v${PV}/${P}.tar.gz" - -LICENSE="LGPL-2.1" -SLOT="0" -KEYWORDS="-* amd64 arm arm64 hppa ~mips ppc ppc64 s390 x86 ~amd64-linux ~x86-linux" -IUSE="static-libs" - -# We need newer kernel headers; we don't keep strict control of the exact -# version here, just be safe and pull in the latest stable ones. #551248 -DEPEND=">=sys-kernel/linux-headers-4.3" - -src_prepare() { - default - sed -i \ - -e '/_LDFLAGS/s:-static::' \ - tools/Makefile.in || die -} - -multilib_src_configure() { - local myeconfargs=( - $(use_enable static-libs static) - --disable-python - ) - ECONF_SOURCE="${S}" econf "${myeconfargs[@]}" -} - -multilib_src_install_all() { - find "${ED}" -name libseccomp.la -delete - einstalldocs -} diff --git a/sys-libs/libseccomp/libseccomp-2.4.1.ebuild b/sys-libs/libseccomp/libseccomp-2.4.1.ebuild deleted file mode 100644 index 96b995d7b0db..000000000000 --- a/sys-libs/libseccomp/libseccomp-2.4.1.ebuild +++ /dev/null @@ -1,41 +0,0 @@ -# Copyright 1999-2019 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -# TODO: Add python support. - -EAPI=6 - -inherit multilib-minimal - -DESCRIPTION="high level interface to Linux seccomp filter" -HOMEPAGE="https://github.com/seccomp/libseccomp" -SRC_URI="https://github.com/seccomp/libseccomp/releases/download/v${PV}/${P}.tar.gz" - -LICENSE="LGPL-2.1" -SLOT="0" -KEYWORDS="-* ~amd64 ~arm ~arm64 ~hppa ~mips ~ppc ~ppc64 ~s390 ~x86 ~amd64-linux ~x86-linux" -IUSE="static-libs" - -# We need newer kernel headers; we don't keep strict control of the exact -# version here, just be safe and pull in the latest stable ones. #551248 -DEPEND=">=sys-kernel/linux-headers-4.3" - -src_prepare() { - default - sed -i \ - -e '/_LDFLAGS/s:-static::' \ - tools/Makefile.in || die -} - -multilib_src_configure() { - local myeconfargs=( - $(use_enable static-libs static) - --disable-python - ) - ECONF_SOURCE="${S}" econf "${myeconfargs[@]}" -} - -multilib_src_install_all() { - find "${ED}" -name libseccomp.la -delete - einstalldocs -} diff --git a/sys-libs/libseccomp/libseccomp-2.4.3.ebuild b/sys-libs/libseccomp/libseccomp-2.4.3.ebuild new file mode 100644 index 000000000000..5224cb3571a8 --- /dev/null +++ b/sys-libs/libseccomp/libseccomp-2.4.3.ebuild @@ -0,0 +1,41 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +# TODO: Add python support. + +EAPI=7 + +inherit multilib-minimal + +DESCRIPTION="high level interface to Linux seccomp filter" +HOMEPAGE="https://github.com/seccomp/libseccomp" +SRC_URI="https://github.com/seccomp/libseccomp/releases/download/v${PV}/${P}.tar.gz" + +LICENSE="LGPL-2.1" +SLOT="0" +KEYWORDS="-* ~amd64 ~arm ~arm64 ~hppa ~mips ~ppc ~ppc64 ~s390 ~x86 ~amd64-linux ~x86-linux" +IUSE="static-libs" + +# We need newer kernel headers; we don't keep strict control of the exact +# version here, just be safe and pull in the latest stable ones. #551248 +DEPEND=">=sys-kernel/linux-headers-4.3" + +src_prepare() { + default + sed -i \ + -e '/_LDFLAGS/s:-static::' \ + tools/Makefile.in || die +} + +multilib_src_configure() { + local myeconfargs=( + $(use_enable static-libs static) + --disable-python + ) + ECONF_SOURCE="${S}" econf "${myeconfargs[@]}" +} + +multilib_src_install_all() { + find "${ED}" -type f -name "${PN}.la" -delete || die + einstalldocs +} diff --git a/sys-libs/libsmbios/Manifest b/sys-libs/libsmbios/Manifest index 8dff661c0b61..c2eb63deba8a 100644 --- a/sys-libs/libsmbios/Manifest +++ b/sys-libs/libsmbios/Manifest @@ -2,6 +2,6 @@ AUX libsmbios-2.2.28-cppunit-tests.patch 350 BLAKE2B c735096c5fe0e33eec728e28009 DIST libsmbios-2.4.2.tar.gz 668042 BLAKE2B 2106206dce95e481ae36e033d2abe9f39402368a09686b92fd1de7d85e87ea494514e85bdf1267adb6b52060a4e6bb6001714c5d891a4c0342c814942c0458af SHA512 51d1b11447d50b768658473d01bcb6cc7f9dd5c96c26ec343f222115ffb5047ca1f035a0bfb67f94f53165eaea7a0d9b70cf01f03333a30885bbac153bf761bd DIST libsmbios-2.4.3.tar.gz 644140 BLAKE2B 684bff4f6cf755796f785e9a93d4ddbe2a1af52082cdebc27d203772a6a2a0259edb4b9d19921f90fc78b48d54700223fbc2628665b963ebcb601010ff4340ab SHA512 7f6fb36fa9653e123b416b275953fb5652025e76dac3b4ec5600168e193ea56f8ac3ea1a3b5db29d2770e73d88152d712a35bf77a9b3fc5596570fae885585ad EBUILD libsmbios-2.4.2-r1.ebuild 1726 BLAKE2B 47266f576042da3cf93038bce1d1307e55fa57432a1649b42d47ffaa3b68690c85facac580e5e6d6fb5967551d365acfa4fb90f52754ccc6be4a75fabaa73f00 SHA512 7f26d9f9b07df3b50065328ad3ade0e4ba844b7913fe4329dc9c4496a77aeb209347372db3cae896dffad6eb487ddbb838126527a0d30e094efa7b351d61131a -EBUILD libsmbios-2.4.2.ebuild 1717 BLAKE2B d31ca3857a949186686cd1e2f2f3068755d887519cfce74c55918cb5a01b0c880177429673e5ac29929db18663b8ba92a5a48a07c012c4aac196636df1f02f4e SHA512 55c0f0faba0ed26aefda4bb0a55c2775c98ded50fbb7497c75ce8052c1c78c9b85029e2f148cc81996f57324c9b1dcc0b264a700164dba26a7043a1176cbdc05 +EBUILD libsmbios-2.4.2.ebuild 1718 BLAKE2B d0410b87623df974bf7be75d627f267d2c7856de9fe6a07573cd54f366ec0ace316e9b16ebd681416ff7eebb44573df817bf8c7bb6257b3d2b3e95b538e31804 SHA512 cea44cbac9eb2b1f67c1189d0b8fdc962f003fd4b0d376c4c974038dbf327705358b524e40ffde74fa24a823af7248ecded5f1f5af63812141fc35021e4dd015 EBUILD libsmbios-2.4.3.ebuild 1727 BLAKE2B a80a4db684b11813f2e2d47114987374e106fb6ce4667c4aa8b95173982ec68eac6d83f953fab7cf713562e08a17da127158cb3ed6cf469a2b728078eb20df48 SHA512 9ca02718c4dccb86d6d2edceddf94bdfbdb9a0e0b4ca5eb8365dd1de06ab981806983dc86bb0092b478124f636e9f989c1ba9044ee729ebe41a44dfd20e8aea6 MISC metadata.xml 564 BLAKE2B bc9809af663bd6abb97b0fd1e91b520e3827f8d6656f774093944217907c2246bcaf55cb123dca43b2acdcee5aa24657dda9384d3f081c45e82d3c4f5e05e61e SHA512 d32499f8dc915da23ef8ce3b0f799d213d5cf700da8b80c83a94770d7fef72bc22ddbfbecf92e49c8ea0f56c4c2b718e53563a450870a77d7cdd3d3c5f610b1a diff --git a/sys-libs/libsmbios/libsmbios-2.4.2.ebuild b/sys-libs/libsmbios/libsmbios-2.4.2.ebuild index 5590649e2e76..93eb8476f8c3 100644 --- a/sys-libs/libsmbios/libsmbios-2.4.2.ebuild +++ b/sys-libs/libsmbios/libsmbios-2.4.2.ebuild @@ -12,7 +12,7 @@ SRC_URI="https://github.com/dell/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" LICENSE="GPL-2 OSL-2.0" SLOT="0" -KEYWORDS="amd64 ia64 x86" +KEYWORDS="amd64 ~ia64 x86" IUSE="doc graphviz nls python static-libs test" REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" diff --git a/sys-libs/libunwind/Manifest b/sys-libs/libunwind/Manifest index ac6017945274..da870ec41456 100644 --- a/sys-libs/libunwind/Manifest +++ b/sys-libs/libunwind/Manifest @@ -8,6 +8,8 @@ AUX libunwind-1.2.1-no-PROTECTED.patch 539 BLAKE2B 86a65116d9179b33ea4737583683d AUX libunwind-1.2.1-only-include-execinfo_h-if-avaliable.patch 1290 BLAKE2B eac40a5cb05fbda00e5dde5b4ecedfa21442cb5481281b8aac45b118d8b8d503bafe69aa9adb93cac9c7e89cb72f8b44bdb7018a09aa4c9d512e20a457c7d78f SHA512 36b76eefdff3ca832696c13b18d9153ca89d5b648c7df11d3c112a85e9ab92e9f124fdbd05d2d9017bd9c5cdc6bbb2de5038918c9f3a2695c8fa3a05835abdb0 DIST libunwind-1.2.1.tar.gz 780774 BLAKE2B a5be4142e1e4932231023bdec2ab3ecd6b707faf2d32d2b571239252a1d0fb6a273a6a46c4a107db63f74f7b54c0c54cf252b8b79ad53216333ba7bcf63147a1 SHA512 af7c280d2a963779a4a2711887618bc96383011e4e5d52e4085aa7fb351e55e357468f6ff85e66a216f1c6826538f498335a917a5970575c93be74c96316319b DIST libunwind-1.3.1.tar.gz 801262 BLAKE2B 4dfcd5e170ef0f7626aa966672f3302b4d8f231fcda37c72fbddb9ab913e82b45bb613b22c5ead8bbd5b09fa92bc0db1c32a744b11e40fd736c3a1412ad3d842 SHA512 3110d0aed4f5c781ef1ff72c9337e59793c02c42066209a4ac44f50eff1c0b0e02a5ff9f66891e62016de14af065a47975763970b839b700c0ff2e9f415c8def -EBUILD libunwind-1.2.1-r3.ebuild 3443 BLAKE2B 21b9378e4fc179e7b41099c94e723871bf722ae19dcdd5fd6ef35bec0096b38ff82b9be0536b014485bd0029104ba68e10b7ee190a21e9e93ef18e932a69d0bb SHA512 6725a1618580c24c085884b1e440fb53aaf523cd2ac391bec99524aa5aea59a15bf8af3b455de26af1c0fc1e08fffeb6d3b1beb830d4d92e77178eb7d004885b -EBUILD libunwind-1.3.1.ebuild 3301 BLAKE2B 43e7a1dd8768dc32192afe4b1d553cc434fd85b53cd492311120ec3b4b126dbc9a2c5b2a1cb19ffb66ab6b1e815378459443862b358cfc150e4fb14ae8aca1af SHA512 50276fabb85b6eb6d378c7ffa0664e734032bc6f4c23144bfeef24ecc5233a0476e24e3de2c30e658f042ce4d7fe0c1eb62bc602520196917a95479fcefcb910 +DIST libunwind-1.4.0.tar.gz 872941 BLAKE2B 39628dd46151d2748372c8f1dfa3cd39114770b85e890b048304f8395b2778a22da4cc468eb6fe1e2357a41bed5a6067e12992634859dabe30addd0fd39b4269 SHA512 60bce1e840f071d3a48cfa8e2acff988977956f659c5c04ce83f00751348fbbeddbfc54e8c9bd6ebc9073423ca5ee1816655dc5aa59fefd0a8edc9c3f7f3b913 +EBUILD libunwind-1.2.1-r3.ebuild 3457 BLAKE2B f4ff7968816cc26db47d9aae87c767ead7275e72c091990ccfadfc80ba93b3eb57fd2786e62597b62ec0f68e39343f157d4917ed4f92caf7e6bd3786faafc89a SHA512 c52f5bf35b19bbf76baea28d80047d799a5f611abb969f8ff15f24ecb3a73b7d0a94ff001d7e9bddae7085af0dbd3ee9e4d7ae61e4ab84b88bd5f7078435c606 +EBUILD libunwind-1.3.1.ebuild 3117 BLAKE2B 9571177adce1e01467d9db7ba56854e43bef1a8d30d2f29d976fc03f782eb26e719f78df8e7b8817e932c5d761b7e3db2681b784178f53a46b60e421126d565d SHA512 140878a2128b7dde0a0b26c0e93ae0d90b98b6b8a1fe798cab725529bfe188bb1de6180998b57ac484e47663a150bc8c3da1bfc3e849a82d6a621f2314f2d319 +EBUILD libunwind-1.4.0.ebuild 3091 BLAKE2B 82169bd4910b3d2ed41bf1efc7252c6a2b9f717126aefdd46acdf941ac1e41b74c888bc0208021f193938bb2976922413810acfe9a8530b638cfd91b4b8c9513 SHA512 21c41f94b570d4b3fc81c6b73dc9a82d07d740ba7f5889ac4018b60544d86ce36a233b4516b915979a917bf2ea8ef9249e60b32446d2e048f3049bc29aadffe0 MISC metadata.xml 489 BLAKE2B c0a884e7161b62e8548fdf3c8c1d34b24936c71a99fef37713b7c36e0ef3423563e5c98eae8e9748db059645ce85cf972448e0584b1ed92e51c228794e5ed10d SHA512 d7586420e24a7b841cb090ce8dc7bb1c1260a3e2afbc6606d0a974243ca20c0586b4aa3e770b5b98787f8d34b8255846d87550c16f68da6e9d3f55f8b57bde40 diff --git a/sys-libs/libunwind/libunwind-1.2.1-r3.ebuild b/sys-libs/libunwind/libunwind-1.2.1-r3.ebuild index 9482711db4de..873e84c38ad9 100644 --- a/sys-libs/libunwind/libunwind-1.2.1-r3.ebuild +++ b/sys-libs/libunwind/libunwind-1.2.1-r3.ebuild @@ -12,14 +12,14 @@ HOMEPAGE="https://savannah.nongnu.org/projects/libunwind" SRC_URI="mirror://nongnu/libunwind/${MY_P}.tar.gz" LICENSE="MIT" -SLOT="7" -KEYWORDS="amd64 arm arm64 hppa ia64 ~mips ppc ppc64 -sparc x86 ~amd64-linux ~x86-linux" +SLOT="0" +KEYWORDS="amd64 arm arm64 hppa ~ia64 ~mips ppc ppc64 -sparc x86 ~amd64-linux ~x86-linux" IUSE="debug debug-frame doc libatomic lzma +static-libs" RESTRICT="test" # half of tests are broken (toolchain version dependent) # We just use the header from libatomic. -RDEPEND="lzma? ( app-arch/xz-utils[${MULTILIB_USEDEP}] )" +RDEPEND="lzma? ( app-arch/xz-utils[static-libs?,${MULTILIB_USEDEP}] )" DEPEND="${RDEPEND} libatomic? ( dev-libs/libatomic_ops[${MULTILIB_USEDEP}] )" diff --git a/sys-libs/libunwind/libunwind-1.3.1.ebuild b/sys-libs/libunwind/libunwind-1.3.1.ebuild index 908da4b4c86d..527b3b9c8231 100644 --- a/sys-libs/libunwind/libunwind-1.3.1.ebuild +++ b/sys-libs/libunwind/libunwind-1.3.1.ebuild @@ -1,25 +1,25 @@ -# Copyright 1999-2020 Gentoo Authors +# Copyright 2005-2020 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 MY_PV=${PV/_/-} MY_P=${PN}-${MY_PV} -inherit autotools eutils flag-o-matic libtool multilib-minimal +inherit autotools flag-o-matic libtool multilib-minimal DESCRIPTION="Portable and efficient API to determine the call-chain of a program" HOMEPAGE="https://savannah.nongnu.org/projects/libunwind" SRC_URI="mirror://nongnu/libunwind/${MY_P}.tar.gz" LICENSE="MIT" -SLOT="7/8" # it should be a "0/8" where '8' is libunwind.so.8 +SLOT="0/8" # libunwind.so.8 KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 -sparc ~x86 ~amd64-linux ~x86-linux" IUSE="debug debug-frame doc libatomic lzma +static-libs" RESTRICT="test" # half of tests are broken (toolchain version dependent) # We just use the header from libatomic. -RDEPEND="lzma? ( app-arch/xz-utils[${MULTILIB_USEDEP}] )" +RDEPEND="lzma? ( app-arch/xz-utils[static-libs?,${MULTILIB_USEDEP}] )" DEPEND="${RDEPEND} libatomic? ( dev-libs/libatomic_ops[${MULTILIB_USEDEP}] )" @@ -53,13 +53,13 @@ src_prepare() { default chmod +x src/ia64/mk_cursor_i || die # Since we have tests disabled via RESTRICT, disable building in the subdir - # entirely. This worksaround some build errors too. #484846 + # entirely. This works around some build errors too. #484846 sed -i -e '/^SUBDIRS/s:tests::' Makefile.in || die elibtoolize eautoreconf - # Let's wait for proer fix upstream in https://github.com/libunwind/libunwind/issues/154 + # Let's wait for proper fix upstream in https://github.com/libunwind/libunwind/issues/154 # Meanwhile workaround for gcc-10 with -fcommon, bug #706560 append-cflags -fcommon } @@ -99,7 +99,5 @@ multilib_src_test() { multilib_src_install() { default - # libunwind-ptrace.a (and libunwind-ptrace.h) is separate API and without - # shared library, so we keep it in any case - use static-libs || find "${ED}"usr '(' -name 'libunwind-generic.a' -o -name 'libunwind*.la' ')' -delete + use static-libs || find "${ED}"/usr -name 'libunwind*.la' -delete } diff --git a/sys-libs/libunwind/libunwind-1.4.0.ebuild b/sys-libs/libunwind/libunwind-1.4.0.ebuild new file mode 100644 index 000000000000..dd6e60a6c2ae --- /dev/null +++ b/sys-libs/libunwind/libunwind-1.4.0.ebuild @@ -0,0 +1,102 @@ +# Copyright 2005-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +MY_PV=${PV/_/-} +MY_P=${PN}-${MY_PV} +inherit autotools flag-o-matic libtool multilib-minimal + +DESCRIPTION="Portable and efficient API to determine the call-chain of a program" +HOMEPAGE="https://savannah.nongnu.org/projects/libunwind" +SRC_URI="mirror://nongnu/libunwind/${MY_P}.tar.gz" + +LICENSE="MIT" +SLOT="0/8" # libunwind.so.8 +KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 -sparc ~x86 ~amd64-linux ~x86-linux" +IUSE="debug debug-frame doc libatomic lzma +static-libs" + +RESTRICT="test" # some tests are broken (toolchain version dependent) + +# We just use the header from libatomic. +RDEPEND="lzma? ( app-arch/xz-utils[static-libs?,${MULTILIB_USEDEP}] )" +DEPEND="${RDEPEND} + libatomic? ( dev-libs/libatomic_ops[${MULTILIB_USEDEP}] )" + +S="${WORKDIR}/${MY_P}" + +MULTILIB_WRAPPED_HEADERS=( + /usr/include/libunwind.h + + # see libunwind.h for the full list of arch-specific headers + /usr/include/libunwind-aarch64.h + /usr/include/libunwind-arm.h + /usr/include/libunwind-hppa.h + /usr/include/libunwind-ia64.h + /usr/include/libunwind-mips.h + /usr/include/libunwind-ppc32.h + /usr/include/libunwind-ppc64.h + /usr/include/libunwind-sh.h + /usr/include/libunwind-tilegx.h + /usr/include/libunwind-x86.h + /usr/include/libunwind-x86_64.h +) + +PATCHES=( + "${FILESDIR}"/${PN}-1.2-coredump-regs.patch #586092 + "${FILESDIR}"/${PN}-1.2-ia64-ptrace-coredump.patch + "${FILESDIR}"/${PN}-1.2-ia64-missing.patch + "${FILESDIR}"/${PN}-1.2.1-only-include-execinfo_h-if-avaliable.patch +) + +src_prepare() { + default + chmod +x src/ia64/mk_cursor_i || die + # Since we have tests disabled via RESTRICT, disable building in the subdir + # entirely. This works around some build errors too. #484846 + sed -i -e '/^SUBDIRS/s:tests::' Makefile.in || die + + elibtoolize + eautoreconf + + # Let's wait for proper fix upstream in https://github.com/libunwind/libunwind/issues/154 + # Meanwhile workaround for gcc-10 with -fcommon, bug #706560 + append-cflags -fcommon +} + +multilib_src_configure() { + # --enable-cxx-exceptions: always enable it, headers provide the interface + # and on some archs it is disabled by default causing a mismatch between the + # API and the ABI, bug #418253 + # conservative-checks: validate memory addresses before use; as of 1.0.1, + # only x86_64 supports this, yet may be useful for debugging, couple it with + # debug useflag. + ECONF_SOURCE="${S}" \ + ac_cv_header_atomic_ops_h=$(usex libatomic) \ + econf \ + --enable-cxx-exceptions \ + --enable-coredump \ + --enable-ptrace \ + --enable-setjmp \ + $(use_enable debug-frame) \ + $(use_enable doc documentation) \ + $(use_enable lzma minidebuginfo) \ + $(use_enable static-libs static) \ + $(use_enable debug conservative_checks) \ + $(use_enable debug) +} + +multilib_src_compile() { + # Bug 586208 + CCACHE_NODIRECT=1 default +} + +multilib_src_test() { + # Explicitly allow parallel build of tests. + # Sandbox causes some tests to freak out. + SANDBOX_ON=0 emake check +} + +multilib_src_install_all() { + find "${D}" -name "*.la" -type f -delete || die +} diff --git a/sys-libs/liburing/Manifest b/sys-libs/liburing/Manifest new file mode 100644 index 000000000000..5a0b7336df83 --- /dev/null +++ b/sys-libs/liburing/Manifest @@ -0,0 +1,3 @@ +DIST liburing-0.5.tar.bz2 75525 BLAKE2B 7b58a59212a6c3527c0adfc102add73dc875885bcdcd6ba9dcd64020d6c8f277b5cc0e1d33860aab0d9495f0409461278175aed7483aa9c44d3c7f78b1238920 SHA512 70202f25fad89787c5c0f0022dddebd3f5ff8eb572ec50c36cc3980f291b456de445c1cf411761be1438e22c69bdb446e1e5b3c10317ec00cb3412a63508faa4 +EBUILD liburing-0.5.ebuild 904 BLAKE2B 54c2a5af29599a0845e2bc9216991bd8a592029800f90c799d184555e9fbec4a3ce47bdcdf04b63866edbb8f51a79f677cb0c19cd85f3e33d9c0041b4fc098d9 SHA512 e3c81e34ce40b0b7c4b5cedadac8f6007bfbf892e0b2c7ccaaf3f6d07b659751c32e1031334159ec0b48fb816b82046b71bcbac453c0639898894e6a39ac9962 +MISC metadata.xml 330 BLAKE2B 9999abbe311550c99eac0de3e7942a37bab51413090b5ca192c0deeac61e3b0d3017a0c05650a433041e1589a6518539ea6686494cd9f57d787ab7519caa78fd SHA512 fe3f892ef7bea57e0c2889ef07f25a8f4230bd54484c73c8c00685a5a05d269271513b7235bf15dcb594b2e18e5e7d638d5d37c4b4563449dc6af1afbacec1c3 diff --git a/sys-libs/liburing/liburing-0.5.ebuild b/sys-libs/liburing/liburing-0.5.ebuild new file mode 100644 index 000000000000..df14f2d99ec8 --- /dev/null +++ b/sys-libs/liburing/liburing-0.5.ebuild @@ -0,0 +1,44 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit multilib-minimal toolchain-funcs + +DESCRIPTION="Efficient I/O with io_uring" +HOMEPAGE="https://github.com/axboe/liburing" +SRC_URI="https://git.kernel.dk/cgit/${PN}/snapshot/${P}.tar.bz2" +LICENSE="MIT" +SLOT="0" + +KEYWORDS="~amd64 ~x86" +IUSE="static-libs" + +src_prepare() { + default + multilib_copy_sources +} + +multilib_src_configure() { + local myconf=( + --prefix="${EPREFIX}/usr" + --libdir="${EPREFIX}/usr/$(get_libdir)" + --libdevdir="${EPREFIX}/usr/$(get_libdir)" + --mandir="${EPREFIX}/usr/share/man" + --cc="$(tc-getCC)" + ) + # No autotools configure! "econf" will fail. + TMPDIR="${T}" ./configure "${myconf[@]}" +} + +multilib_src_compile() { + emake V=1 +} + +multilib_src_install_all() { + einstalldocs + + if ! use static-libs ; then + find "${ED}" -type f -name "*.a" -delete || die + fi +} diff --git a/sys-libs/liburing/metadata.xml b/sys-libs/liburing/metadata.xml new file mode 100644 index 000000000000..e9a23bab52b3 --- /dev/null +++ b/sys-libs/liburing/metadata.xml @@ -0,0 +1,11 @@ + + + + + polynomial-c@gentoo.org + Lars Wendler + + + axboe/liburing + + diff --git a/sys-libs/libutempter/Manifest b/sys-libs/libutempter/Manifest index c5a4a55ce441..d107d1d1e64f 100644 --- a/sys-libs/libutempter/Manifest +++ b/sys-libs/libutempter/Manifest @@ -1,3 +1,3 @@ DIST libutempter-1.1.6.tar.bz2 15705 BLAKE2B 147bf96990913019c35565507eb635ba60ff5ed67134805e9f146f8f70882615ff96d7b2e52b40fb73110905afb87893a72bdec4327d879e5bdc2ec1d39ff9f0 SHA512 6ada410b981d157ae20b578de8ce20997ec0446ec6de6859549b080aa65976fc9900d211600dab09dc3d0d109daabad0994a648b093b8781b442ff26ca17fede -EBUILD libutempter-1.1.6-r2.ebuild 1707 BLAKE2B f82173d87ccd21d8eeb80de2820967f890cce7e3420a55905c7102e4c193337552036fc89c487535400cbc291bc678bdc0f882dc2e098f99574185c7bedb24de SHA512 0797850d78d55ce16f379cadbea5667a72e9bbcc4056a4cc8d35f5f57e53dcc8223d2af502e28955bcb696f88ee0ca47818aa7e006e57e9746a7dcbf73acb7dc +EBUILD libutempter-1.1.6-r3.ebuild 1694 BLAKE2B 2190ccd25ddbe4c74f8ff67892c83654e7e37a89ce2b86a855bdd59fa96efd4d76edf9aa7d28bc562469b9ef0b1136263ee848717f75090635a8aceb7ad522c9 SHA512 a251f3a15cbec7df5f07c84337ec9d9dfbcbbc0908dceff6e722aff2e7689c306f4806c4b3ca3559d121b54d7b09e722b432a826513d96dff5d18bce215ebade MISC metadata.xml 253 BLAKE2B 295e9d6d93aaa12af413972e1590c67087801cc09c9aa6b59d4606c0f4106d1dacf2baa9858559083b4c6d91beeef218d0729e8593a33788958da6d2897e8ce2 SHA512 54a9069aeb4165d2dff3d473c8001bc51613aac9dff3f7f5e9971a9891a737a31511ffa11cbd523febe581ac1d9de2bdf2f40410f0c4239138f2ccca3ef15555 diff --git a/sys-libs/libutempter/libutempter-1.1.6-r2.ebuild b/sys-libs/libutempter/libutempter-1.1.6-r2.ebuild deleted file mode 100644 index 4b54fc4cef3e..000000000000 --- a/sys-libs/libutempter/libutempter-1.1.6-r2.ebuild +++ /dev/null @@ -1,69 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI="4" - -inherit user multilib flag-o-matic toolchain-funcs - -DESCRIPTION="Library that allows non-privileged apps to write utmp (login) info" -HOMEPAGE="https://altlinux.org/index.php?module=sisyphus&package=libutempter" -SRC_URI="ftp://ftp.altlinux.org/pub/people/ldv/${PN}/${P}.tar.bz2" - -LICENSE="LGPL-2.1" -SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 hppa ia64 ~m68k ~mips ppc ppc64 s390 ~sh sparc x86 ~amd64-linux ~x86-linux" -IUSE="static-libs elibc_FreeBSD" - -RDEPEND="!sys-apps/utempter" - -pkg_setup() { - enewgroup utmp 406 -} - -src_prepare() { - local args=( - -e "/^libdir /s:/usr/lib:${EPREFIX}/usr/$(get_libdir):" - -e '/^libexecdir /s:=.*:= $(libdir)/misc:' - -e '/^CFLAGS = $(RPM_OPT_FLAGS)/d' - -e 's:,-stats::' - -e "/^includedir /s:/usr/include:${EPREFIX}/usr/include:" - -e "/^mandir /s:=.*:= ${EPREFIX}/usr/share/man:" - ) - use static-libs || args+=( - -e '/^STATICLIB/d' - -e '/INSTALL.*STATICLIB/d' - ) - sed -i "${args[@]}" Makefile || die -} - -src_configure() { - use elibc_FreeBSD && append-libs -lutil - tc-export AR CC -} - -src_compile() { - emake LDLIBS="${LIBS}" -} - -src_install() { - default - - if ! use prefix ; then - fowners root:utmp /usr/$(get_libdir)/misc/utempter/utempter - fperms 2755 /usr/$(get_libdir)/misc/utempter/utempter - fi - dodir /usr/sbin - dosym ../$(get_libdir)/misc/utempter/utempter /usr/sbin/utempter -} - -pkg_postinst() { - if [ -f "${EROOT}/var/log/wtmp" ] ; then - chown root:utmp "${EROOT}/var/log/wtmp" - chmod 664 "${EROOT}/var/log/wtmp" - fi - - if [ -f "${EROOT}/var/run/utmp" ] ; then - chown root:utmp "${EROOT}/var/run/utmp" - chmod 664 "${EROOT}/var/run/utmp" - fi -} diff --git a/sys-libs/libutempter/libutempter-1.1.6-r3.ebuild b/sys-libs/libutempter/libutempter-1.1.6-r3.ebuild new file mode 100644 index 000000000000..c47cc5ffb8d8 --- /dev/null +++ b/sys-libs/libutempter/libutempter-1.1.6-r3.ebuild @@ -0,0 +1,70 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit multilib flag-o-matic toolchain-funcs + +DESCRIPTION="Library that allows non-privileged apps to write utmp (login) info" +HOMEPAGE="https://altlinux.org/index.php?module=sisyphus&package=libutempter" +SRC_URI="ftp://ftp.altlinux.org/pub/people/ldv/${PN}/${P}.tar.bz2" + +LICENSE="LGPL-2.1" +SLOT="0" +KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 s390 sparc x86 ~amd64-linux ~x86-linux" +IUSE="static-libs elibc_FreeBSD" + +RDEPEND=" + !sys-apps/utempter + acct-group/utmp +" + +src_prepare() { + default + + local args=( + -e "/^libdir /s:/usr/lib:${EPREFIX}/usr/$(get_libdir):" + -e '/^libexecdir /s:=.*:= $(libdir)/misc:' + -e '/^CFLAGS = $(RPM_OPT_FLAGS)/d' + -e 's:,-stats::' + -e "/^includedir /s:/usr/include:${EPREFIX}/usr/include:" + -e "/^mandir /s:=.*:= ${EPREFIX}/usr/share/man:" + ) + use static-libs || args+=( + -e '/^STATICLIB/d' + -e '/INSTALL.*STATICLIB/d' + ) + sed -i "${args[@]}" Makefile || die +} + +src_configure() { + use elibc_FreeBSD && append-libs -lutil + tc-export AR CC +} + +src_compile() { + emake LDLIBS="${LIBS}" +} + +src_install() { + default + + if ! use prefix ; then + fowners root:utmp /usr/$(get_libdir)/misc/utempter/utempter + fperms 2755 /usr/$(get_libdir)/misc/utempter/utempter + fi + dodir /usr/sbin + dosym ../$(get_libdir)/misc/utempter/utempter /usr/sbin/utempter +} + +pkg_postinst() { + if [[ -f "${EROOT}/var/log/wtmp" ]] ; then + chown root:utmp "${EROOT}/var/log/wtmp" + chmod 664 "${EROOT}/var/log/wtmp" + fi + + if [[ -f "${EROOT}/var/run/utmp" ]] ; then + chown root:utmp "${EROOT}/var/run/utmp" + chmod 664 "${EROOT}/var/run/utmp" + fi +} diff --git a/sys-libs/libxcrypt/Manifest b/sys-libs/libxcrypt/Manifest index 4503187e44e5..cf670d907491 100644 --- a/sys-libs/libxcrypt/Manifest +++ b/sys-libs/libxcrypt/Manifest @@ -5,8 +5,10 @@ AUX libxcrypt-4.4.12-multibuild.patch 636 BLAKE2B 51fdf0b0f3ffe209c270cc2ff4bec7 AUX libxcrypt-4.4.12-pythonver.patch 616 BLAKE2B 73c7039127b23c075a7b8e5bc897299c3e083bece50638d025649e2146325f78fa82427b7690f0df3e5a0eeb0fc66ddb13992e0d14ccf8380fc11f641c2d90a1 SHA512 dffbbfe09c4c8a93e1f6cf63acb5f237ce143585fe22eeb7c44f6929131137011c1777184f802ad86bda2e2c64de60131f6dbe18c8c309d6848d330c1cb13364 DIST libxcrypt-4.4.10.tar.gz 499736 BLAKE2B 32da99488c21a21c3310a735a08a70002a3a56d7d9d4a9fd0c16436ef2b42ee8a9b877c5b5dcbf1bc9a38fbef3370d5ff4585167ff25025f854ccd020014dcd4 SHA512 fd714542dad40db721c03270b5a03e2c068b0750e887dcac4c651433d5905d08bd5c5db3762cc2e4ceee0103bd62810559ea197d164126169e0b253675415ca2 DIST libxcrypt-4.4.12.tar.gz 493620 BLAKE2B 185cc9a0b9f573801e75bf2ffb3eaa578016804d175443a53b2cef01334acb6f8fa5a0fe72e346ff368e3db355338b1f1dbd00e93828dde2594f0adee3753f69 SHA512 945dfd307ebd3d1b3dd9f22057b23b651c0ffaab55bf4151950565a3f0fea8b0e2bc2886318ceea707985d720e83e8663e4590bc72e91f470bae3a98f41ab30f +DIST libxcrypt-4.4.16.tar.gz 480694 BLAKE2B 0e93c2ff45a8148f82a80a67fb732a3ef42e87505d19258023f91d3352a382483204e77e2704e7a0de15f4f1e38a326d0867506a5580faf8c81857270588a4a3 SHA512 e1d3b1262c6be7c6c8847b8c4eb8191d9e5e482798be6f1186876c72f3d8c737124378ec45a38aa464f556e10a557b96f855bd371f03c3611eada27904bf6781 DIST libxcrypt_2.4.orig.tar.gz 361503 BLAKE2B 6347bea4b22ae7742cb516a0a8673bbd7c37f645b2dbb383f4c4a6bbcc95a12897068ab7354fa015bbb65f6dc331b95ce24b48aa4bdd7a57433d8f5bc245392d SHA512 7171ce1b5b7f949232c4db94cf98bdd6396c3e2a8f2f483c041cab92d752e3a2fa93d564ede7efece57c069df129e6cc03049cf3e3f07bd3556031a7c4197cbf EBUILD libxcrypt-2.4.ebuild 649 BLAKE2B 672890b0c7988494047e064cccd5a53323a25a1f40b953a516547fd302abac2c435e2185f31ed3e95884b3136c843f6e1fcc701b08bfc7c68a00e1bae717c124 SHA512 1aa50cd37c918682f043abc694696f6f0b1ac20d71ca2443d776d3eebfddccddab9e8e31f19ba8b473099124fb9f1d8eccb92d2efe5e7aa1b7b1bcd6393cbbcb EBUILD libxcrypt-4.4.10-r1.ebuild 3662 BLAKE2B 3ca592fb85f417b6d36613123ea86067dc1153b8e59acbb76ffbfad3aa1bb3b7024907225e8bd1f401e4bfbf766072c750cf39e3f0d270920520560b61dd3140 SHA512 3002fc88260a5b3a7695de457e9bcf4b0a085de239d4bcd06d627fea29d9567734ef73e4dd5eae73c29d36928e5fb9834a3335879ef7628c23b323aff484f6a6 EBUILD libxcrypt-4.4.12-r3.ebuild 4177 BLAKE2B e0094f7c1a9ea955a0570951c33ba4e8ed114500b2426295e106d090f4cfd73671327f7da22721714e6026375cc2cd0e8584c3460b198ef593767b82fb614e67 SHA512 d10ba7899927c3aaefeab8e7eb282cd1ca89744dfa36e715c668f4f7077b0e03027db5c1c70ebf2f82de41aa8b66ac8123c56e82cb62524fe0b70106cb55e808 +EBUILD libxcrypt-4.4.16.ebuild 4177 BLAKE2B e0094f7c1a9ea955a0570951c33ba4e8ed114500b2426295e106d090f4cfd73671327f7da22721714e6026375cc2cd0e8584c3460b198ef593767b82fb614e67 SHA512 d10ba7899927c3aaefeab8e7eb282cd1ca89744dfa36e715c668f4f7077b0e03027db5c1c70ebf2f82de41aa8b66ac8123c56e82cb62524fe0b70106cb55e808 MISC metadata.xml 856 BLAKE2B e9fea1aa08f5b3f0abdd4d490973da2f133ea90e3a366d4549361233f51e674cc646b2fb6b4b15bca72d5a4e3b36be9a06e55afd3a4cb8f439d3958f09f8af25 SHA512 862cf3201efbecfc23167ecd1f6798f6729ba4e76749c174d17baf8aa4887f21d36f40234f35bc1b896e4384d110033b3f2260f01930b926f759e0243039adf8 diff --git a/sys-libs/libxcrypt/libxcrypt-4.4.16.ebuild b/sys-libs/libxcrypt/libxcrypt-4.4.16.ebuild new file mode 100644 index 000000000000..166f638a5790 --- /dev/null +++ b/sys-libs/libxcrypt/libxcrypt-4.4.16.ebuild @@ -0,0 +1,163 @@ +# Copyright 2004-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 +PYTHON_COMPAT=( python3_{6,7,8} ) +inherit autotools multibuild python-any-r1 multilib-minimal + +DESCRIPTION="Extended crypt library for descrypt, md5crypt, bcrypt, and others " +SRC_URI="https://github.com/besser82/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" +HOMEPAGE="https://github.com/besser82/libxcrypt" + +LICENSE="LGPL-2.1+ public-domain BSD BSD-2" +SLOT="0/1" +KEYWORDS="~amd64 ~x86" +IUSE="+compat split-usr +static-libs system test" + +DEPEND="system? ( + elibc_glibc? ( sys-libs/glibc[-crypt(+)] ) + !sys-libs/musl + )" +RDEPEND="${DEPEND}" +BDEPEND="sys-apps/findutils + test? ( $(python_gen_any_dep 'dev-python/passlib[${PYTHON_USEDEP}]') )" + +RESTRICT="!test? ( test )" + +REQUIRED_USE="split-usr? ( system )" + +PATCHES=( + "${FILESDIR}/libxcrypt-4.4.12-pythonver.patch" + "${FILESDIR}/libxcrypt-4.4.12-multibuild.patch" +) + +python_check_deps() { + has_version -b "dev-python/passlib[${PYTHON_USEDEP}]" +} + +pkg_setup() { + MULTIBUILD_VARIANTS=( + $(usex compat 'xcrypt_compat' '') + xcrypt_nocompat + ) + + use test && python-any-r1_pkg_setup +} + +src_prepare() { + default + eautoreconf +} + +src_configure() { + multibuild_foreach_variant multilib-minimal_src_configure +} + +get_xclibdir() { + printf -- "%s/%s/%s\n" \ + "$(usex split-usr '' '/usr')" \ + "$(get_libdir)" \ + "$(usex system '' 'xcrypt')" +} + +multilib_src_configure() { + local -a myconf=( + --libdir=$(get_xclibdir) + --with-pkgconfigdir=/usr/$(get_libdir)/pkgconfig + --includedir="${EPREFIX}/usr/include/$(usex system '' 'xcrypt')" + ) + + case "${MULTIBUILD_ID}" in + xcrypt_compat-*) + myconf+=( + --disable-static + --disable-xcrypt-compat-files + --enable-obsolete-api=yes + ) + ;; + xcrypt_nocompat-*) + myconf+=( + --enable-obsolete-api=no + $(use_enable static-libs static) + ) + ;; + *) die "Unexpected MULTIBUILD_ID: ${MULTIBUILD_ID}";; + esac + + ECONF_SOURCE="${S}" econf "${myconf[@]}" +} + +src_compile() { + multibuild_foreach_variant multilib-minimal_src_compile +} + +multilib_src_test() { + emake check +} + +src_test() { + multibuild_foreach_variant multilib-minimal_src_test +} + +src_install() { + multibuild_foreach_variant multilib-minimal_src_install + + ( + shopt -s failglob || die "failglob failed" + + # Make sure our man pages do not collide with glibc or man-pages. + for manpage in "${ED}"/usr/share/man/man3/crypt{,_r}.?*; do + mv -n "${manpage}" "$(dirname "${manpage}")/xcrypt_$(basename "${manpage}")" \ + || die "mv failed" + done + ) || die "failglob error" + + # remove useless stuff from installation + find "${D}"/usr/share/doc/${PF} -type l -delete || die + find "${D}" -name '*.la' -delete || die +} + +multilib_src_install() { + emake DESTDIR="${D}" install + + # don't install the libcrypt.so symlink for the "compat" version + case "${MULTIBUILD_ID}" in + xcrypt_compat-*) + rm "${D}"$(get_xclibdir)/libcrypt$(get_libname) \ + || die "failed to remove extra compat libraries" + ;; + xcrypt_nocompat-*) + if use split-usr; then + ( + if use static-libs; then + # .a files are installed to /$(get_libdir) by default + # move static libraries to /usr prefix or portage will abort + shopt -s nullglob || die "failglob failed" + static_libs=( "${ED}"/$(get_xclibdir)/*.a ) + + if [[ -n ${static_libs[*]} ]]; then + dodir "/usr/$(get_xclibdir)" + mv "${static_libs[@]}" "${D}/usr/$(get_xclibdir)" \ + || die "moving static libs failed" + fi + fi + + if use system; then + # Move versionless .so symlinks from /$(get_libdir) to /usr/$(get_libdir) + # to allow linker to correctly find shared libraries. + shopt -s failglob || die "failglob failed" + + for lib_file in "${ED}"$(get_xclibdir)/*$(get_libname); do + lib_file_basename="$(basename "${lib_file}")" + lib_file_target="$(basename "$(readlink -f "${lib_file}")")" + dosym "../../$(get_libdir)/${lib_file_target}" "/usr/$(get_xclibdir)/${lib_file_basename}" + done + + rm "${ED}"$(get_xclibdir)/*$(get_libname) || die "removing symlinks in incorrect location failed" + fi + ) + fi + ;; + *) die "Unexpected MULTIBUILD_ID: ${MULTIBUILD_ID}";; + esac +} diff --git a/sys-libs/llvm-libunwind/Manifest b/sys-libs/llvm-libunwind/Manifest index 137345491aa1..40913f6fbe34 100644 --- a/sys-libs/llvm-libunwind/Manifest +++ b/sys-libs/llvm-libunwind/Manifest @@ -4,14 +4,12 @@ DIST libcxxabi-7.1.0.src.tar.xz 535180 BLAKE2B aa5952e3ca80f7ce2a0a79f3eaf385223 DIST libcxxabi-8.0.1.src.tar.xz 538356 BLAKE2B 52328c5890c9b9271877b953be30cc39be4758101e6b91ee45f06c81e960089523e80b83eb5c354336e4e0a140f7554640acf7b2d4fa619113f705108a314418 SHA512 577cfcb04ebb29ee84d35ed31aa8fecb28fc74b07ef7ff298f0fe2d440f823def73e092359c41d8d8600e6df18f55224ed89674d403c5ae56a7d7973487b8734 DIST libunwind-7.1.0.src.tar.xz 79780 BLAKE2B 8f15dcf4a9c8cb45f17c72bf058eed13a6cd52842ee8630781c3104be77d9a868e241eafd34a31b23aeff18dc49743dd5a566ce4cb866a170f1d09899584e2dd SHA512 8ebfeb821013167e866986a2f9cc6459e43d82f73560a15ee7e0d604a974e1c656f824c9f7ccb47da4b4830ad9a99c663961bdf7642cd105e666b8a8fdf7d03c DIST libunwind-8.0.1.src.tar.xz 87188 BLAKE2B 26f4d8ffbc8eb316e4e623280d6fe493e4c5c29489b90633c8215fe91349de7f7f0cfbfe8991ace11656d3782e13c7208b4a4adc04691746b4140187fba40043 SHA512 c115582ca879e215b97d24e4aa80696796383e79856cf26e40b4ddd6b255d598f9fa9867b30f0fd1691be770779835ac1d4b9a5e4a71424b18499b79ea37d060 -DIST llvmorg-10.0.0-rc1.tar.gz 120755822 BLAKE2B a729d37d96ba498cb865c6f708734dccb796b2caabb69167b9aa3b0e12c788f2a5980a048b99d5603da3d26af909fb31f406b4f4743cabae56c45f829a7bf695 SHA512 27137fc700971147c00ded6787eaae9f0bcf98c938fe227a5a559b38d983736f3d086f4ff6772d802c5f48a7d97a97c293261e4af88fcb5a720693b9cb5a4f02 -DIST llvmorg-10.0.0-rc2.tar.gz 120795019 BLAKE2B 6e701eddbd2313e777c7b37dff8455a08d3c599d01055b60afc0319373d4709deb429aac6bf9e80c4d2e2ab8ade03bf5b398b6ccd8882e4bde608d10cdbf2284 SHA512 ee571c9258a2d9fc411964f56b0b92b2e7134349ed21dbe7963eb61ef65da506e0c4f7c69259a3b6cecec23f55d24636608287ee4457ee667031e141f8f09aae +DIST llvmorg-10.0.0.tar.gz 120804856 BLAKE2B 6b0254f5b913398cdcf2b2ec1ff219888706d2b79d5296590934714e42ac79f6a6547941ac2b1d2c4e6313dd18b6c7068e748aa6ac033e49fccbf5d355aa8191 SHA512 baa182d62fef1851836013ae8a1a00861ea89769778d67fb97b407a9de664e6c85da2af9c5b3f75d2bf34ff6b00004e531ca7e4b3115a26c0e61c575cf2303a0 DIST llvmorg-9.0.1.tar.gz 113193320 BLAKE2B b86e405f2b8e00436045fd409fe19cdde75c797b1192c62a22b5ec75e6b4dc8e874a0f33008dc31562445e4cbe53a992b6f48c684255a6a1ef261e595b8b161f SHA512 fa88beeaae94b6d0cd9b5ba38658d0ffed8004035d7d8a4f95c3d31a709b88b581ae9bd7761333c8e5375c44b8f6be01768b5a3be901163159d7e6c43b71da59 EBUILD llvm-libunwind-10.0.0.9999.ebuild 3337 BLAKE2B 3ed18438eb02755762d4533396ea50a1e2df5ea428cd22b92f6dda90813a48fc1fafb3538e0cc10ada3b8b52fefa8dd18d61043c8f616ea88b32e26bc6e737ad SHA512 db1bfa10cbd3e0dc847262c7662c54c32d98b6467ef29ce7f50b506fb48a05bfa72b04dd3129291a7f66059ebc8b571acff895142bbd7e6bbf08cbcaf209b8c5 -EBUILD llvm-libunwind-10.0.0_rc1.ebuild 3337 BLAKE2B 3ed18438eb02755762d4533396ea50a1e2df5ea428cd22b92f6dda90813a48fc1fafb3538e0cc10ada3b8b52fefa8dd18d61043c8f616ea88b32e26bc6e737ad SHA512 db1bfa10cbd3e0dc847262c7662c54c32d98b6467ef29ce7f50b506fb48a05bfa72b04dd3129291a7f66059ebc8b571acff895142bbd7e6bbf08cbcaf209b8c5 -EBUILD llvm-libunwind-10.0.0_rc2.ebuild 3337 BLAKE2B 3ed18438eb02755762d4533396ea50a1e2df5ea428cd22b92f6dda90813a48fc1fafb3538e0cc10ada3b8b52fefa8dd18d61043c8f616ea88b32e26bc6e737ad SHA512 db1bfa10cbd3e0dc847262c7662c54c32d98b6467ef29ce7f50b506fb48a05bfa72b04dd3129291a7f66059ebc8b571acff895142bbd7e6bbf08cbcaf209b8c5 +EBUILD llvm-libunwind-10.0.0.ebuild 3360 BLAKE2B dd4b9b43af7ce1a8689940a89bf4a89ce13bcc59c005cf8117aaf9579c9a06dd38806f7cf78951e7e237a32f102c8354cc6de8a9744335997cb96f9a5f060186 SHA512 7bc34e1f314a45aec7154447a51d682d2cc37157bef41d35f7ca56b2362d2b1fb6ec12755e12cd7307562433d8875456ce0eff62794962a05e7e65449b59c225 EBUILD llvm-libunwind-11.0.0.9999.ebuild 3337 BLAKE2B 3ed18438eb02755762d4533396ea50a1e2df5ea428cd22b92f6dda90813a48fc1fafb3538e0cc10ada3b8b52fefa8dd18d61043c8f616ea88b32e26bc6e737ad SHA512 db1bfa10cbd3e0dc847262c7662c54c32d98b6467ef29ce7f50b506fb48a05bfa72b04dd3129291a7f66059ebc8b571acff895142bbd7e6bbf08cbcaf209b8c5 EBUILD llvm-libunwind-7.1.0.ebuild 3717 BLAKE2B affbe6d3249c5821f75e4523f4a293520ea49b7df49c019c4083dc4263cff66358abcb936e52850668b270d38e9a5d1bd07861c2fbd1489f9dbb5f41193546ae SHA512 275326858c22ac353c7452433ac57a80eda766932e1ae2ebcb21300b78cec02a9e0935e5b3d6277458089821ab0831a9f5dcf7ec051b70d8ba7e875930a6f8a4 EBUILD llvm-libunwind-8.0.1.ebuild 3815 BLAKE2B 52a00f299c179b3b826702e6b76468922745be47e97542ad2e620879c14434f7ab334089a529ed9c27584c17f8e805bad783710c288c2e5d4258487c2b502186 SHA512 b956f3a085591de5a1519c7b5830c625a085ab2f178ca5b5e7d55b6f4cb23e0b64eeb108d3d45fd18f8420da5898ec2099e6f6d68fc575e5f9bbc846b98865e2 -EBUILD llvm-libunwind-9.0.1.ebuild 3357 BLAKE2B 8a8d03c29cc4b5d8356152b5fcf3539c10112a490974f60399c85e9e5b19d36dd5646fb23d85e25b87c41da5fc70a5412669fb4114487010791d220e61460865 SHA512 f15c8791b7db2b12ef4fbcdd5fca88c3bdd99074038e726c01ad58ac4575268a208723082cfd62a59ac2af42b2cc97395ff62ec28d6afce905db1c5566e53acb +EBUILD llvm-libunwind-9.0.1.ebuild 3356 BLAKE2B 761c9fcfbd3dc5689521f7423e1bafe4f673d7c6dbd397f6b6e0f4bc168495f3eea513c0550d20a60cf1e4e38200df59583cede7bfaad4c574f249e532fe4bb2 SHA512 82f4e6967d73ae96199a507081cd9cc913a4e4b2b0c45caa0b27d428b68262df76242d318327616bb5112d97ee68fec1061485f94f0137fd73a0fdaad998707b MISC metadata.xml 302 BLAKE2B 1cdee7813ed9a3766b2eddccd14f9e0576ba5cc7f812d7af4f35c8c2e5991790f3800c6473c37da90d72804832fd9af969a2e3bf7aa625f0d3a32da1dbcefacf SHA512 3afaef82e6a495a81e221524ae7604dc170ef5c103333728674faf0417c45ba7996118c10466eaa24f8feef9ed8f0fc60d535a5195462317d61c61a531c8a285 diff --git a/sys-libs/llvm-libunwind/llvm-libunwind-10.0.0.ebuild b/sys-libs/llvm-libunwind/llvm-libunwind-10.0.0.ebuild new file mode 100644 index 000000000000..f72fa83f9168 --- /dev/null +++ b/sys-libs/llvm-libunwind/llvm-libunwind-10.0.0.ebuild @@ -0,0 +1,126 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +PYTHON_COMPAT=( python3_{6,7} ) +inherit cmake-multilib llvm llvm.org multiprocessing python-any-r1 + +DESCRIPTION="C++ runtime stack unwinder from LLVM" +HOMEPAGE="https://github.com/llvm-mirror/libunwind" +LLVM_COMPONENTS=( libunwind ) +LLVM_TEST_COMPONENTS=( libcxx{,abi} ) +llvm.org_set_globals + +LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~x86" +IUSE="debug +static-libs test" +RESTRICT="!test? ( test )" + +RDEPEND="!sys-libs/libunwind" +# llvm-6 for new lit options +DEPEND=" + >=sys-devel/llvm-6" +BDEPEND=" + test? ( >=sys-devel/clang-3.9.0 + $(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )" + +# least intrusive of all +CMAKE_BUILD_TYPE=RelWithDebInfo + +python_check_deps() { + has_version "dev-python/lit[${PYTHON_USEDEP}]" +} + +pkg_setup() { + use test && python-any-r1_pkg_setup +} + +multilib_src_configure() { + local libdir=$(get_libdir) + + local mycmakeargs=( + -DLLVM_LIBDIR_SUFFIX=${libdir#lib} + -DLIBUNWIND_ENABLE_ASSERTIONS=$(usex debug) + -DLIBUNWIND_ENABLE_STATIC=$(usex static-libs) + -DLLVM_INCLUDE_TESTS=$(usex test) + + # support non-native unwinding; given it's small enough, + # enable it unconditionally + -DLIBUNWIND_ENABLE_CROSS_UNWINDING=ON + ) + if use test; then + local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null) + local jobs=${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")} + + [[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests" + + mycmakeargs+=( + -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit" + -DLLVM_LIT_ARGS="-vv;-j;${jobs};--param=cxx_under_test=${clang_path}" + -DLIBUNWIND_LIBCXX_PATH="${WORKDIR}/libcxx" + ) + fi + + cmake-utils_src_configure +} + +build_libcxxabi() { + local -x LDFLAGS="${LDFLAGS} -L${BUILD_DIR}/$(get_libdir)" + local CMAKE_USE_DIR=${WORKDIR}/libcxxabi + local BUILD_DIR=${BUILD_DIR}/libcxxabi + local mycmakeargs=( + -DLIBCXXABI_LIBDIR_SUFFIX= + -DLIBCXXABI_ENABLE_SHARED=OFF + -DLIBCXXABI_ENABLE_STATIC=ONF + -DLIBCXXABI_USE_LLVM_UNWINDER=ON + -DLIBCXXABI_INCLUDE_TESTS=OFF + + -DLIBCXXABI_LIBCXX_INCLUDES="${WORKDIR}"/libcxx/include + -DLIBCXXABI_LIBUNWIND_INCLUDES="${S}"/include + ) + + cmake-utils_src_configure + cmake-utils_src_compile +} + +build_libcxx() { + local -x LDFLAGS="${LDFLAGS} -L${BUILD_DIR}/libcxxabi/lib -L${BUILD_DIR}/$(get_libdir)" + local CMAKE_USE_DIR=${WORKDIR}/libcxx + local BUILD_DIR=${BUILD_DIR}/libcxx + local mycmakeargs=( + -DLIBCXX_LIBDIR_SUFFIX= + -DLIBCXX_ENABLE_SHARED=OFF + -DLIBCXX_ENABLE_STATIC=ON + -DLIBCXX_ENABLE_EXPERIMENTAL_LIBRARY=OFF + -DLIBCXXABI_USE_LLVM_UNWINDER=ON + -DLIBCXX_CXX_ABI=libcxxabi + -DLIBCXX_CXX_ABI_INCLUDE_PATHS="${WORKDIR}"/libcxxabi/include + -DLIBCXX_ENABLE_ABI_LINKER_SCRIPT=OFF + -DLIBCXX_HAS_MUSL_LIBC=$(usex elibc_musl) + -DLIBCXX_HAS_GCC_S_LIB=OFF + -DLIBCXX_INCLUDE_TESTS=OFF + ) + + cmake-utils_src_configure + cmake-utils_src_compile +} + +multilib_src_test() { + # build local copies of libc++ & libc++abi for testing to avoid + # circular deps + build_libcxxabi + build_libcxx + mv "${BUILD_DIR}"/libcxx*/lib/libc++* "${BUILD_DIR}/$(get_libdir)/" || die + + local -x LIT_PRESERVES_TMP=1 + cmake-utils_src_make check-unwind +} + +multilib_src_install() { + cmake-utils_src_install + + # install headers like sys-libs/libunwind + doheader "${S}"/include/*.h +} diff --git a/sys-libs/llvm-libunwind/llvm-libunwind-10.0.0_rc1.ebuild b/sys-libs/llvm-libunwind/llvm-libunwind-10.0.0_rc1.ebuild deleted file mode 100644 index d622d1cdee5c..000000000000 --- a/sys-libs/llvm-libunwind/llvm-libunwind-10.0.0_rc1.ebuild +++ /dev/null @@ -1,126 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -PYTHON_COMPAT=( python3_{6,7} ) -inherit cmake-multilib llvm llvm.org multiprocessing python-any-r1 - -DESCRIPTION="C++ runtime stack unwinder from LLVM" -HOMEPAGE="https://github.com/llvm-mirror/libunwind" -LLVM_COMPONENTS=( libunwind ) -LLVM_TEST_COMPONENTS=( libcxx{,abi} ) -llvm.org_set_globals - -LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" -SLOT="0" -KEYWORDS="" -IUSE="debug +static-libs test" -RESTRICT="!test? ( test )" - -RDEPEND="!sys-libs/libunwind" -# llvm-6 for new lit options -DEPEND=" - >=sys-devel/llvm-6" -BDEPEND=" - test? ( >=sys-devel/clang-3.9.0 - $(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )" - -# least intrusive of all -CMAKE_BUILD_TYPE=RelWithDebInfo - -python_check_deps() { - has_version "dev-python/lit[${PYTHON_USEDEP}]" -} - -pkg_setup() { - use test && python-any-r1_pkg_setup -} - -multilib_src_configure() { - local libdir=$(get_libdir) - - local mycmakeargs=( - -DLLVM_LIBDIR_SUFFIX=${libdir#lib} - -DLIBUNWIND_ENABLE_ASSERTIONS=$(usex debug) - -DLIBUNWIND_ENABLE_STATIC=$(usex static-libs) - -DLLVM_INCLUDE_TESTS=$(usex test) - - # support non-native unwinding; given it's small enough, - # enable it unconditionally - -DLIBUNWIND_ENABLE_CROSS_UNWINDING=ON - ) - if use test; then - local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null) - local jobs=${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")} - - [[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests" - - mycmakeargs+=( - -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit" - -DLLVM_LIT_ARGS="-vv;-j;${jobs};--param=cxx_under_test=${clang_path}" - -DLIBUNWIND_LIBCXX_PATH="${WORKDIR}/libcxx" - ) - fi - - cmake-utils_src_configure -} - -build_libcxxabi() { - local -x LDFLAGS="${LDFLAGS} -L${BUILD_DIR}/$(get_libdir)" - local CMAKE_USE_DIR=${WORKDIR}/libcxxabi - local BUILD_DIR=${BUILD_DIR}/libcxxabi - local mycmakeargs=( - -DLIBCXXABI_LIBDIR_SUFFIX= - -DLIBCXXABI_ENABLE_SHARED=OFF - -DLIBCXXABI_ENABLE_STATIC=ONF - -DLIBCXXABI_USE_LLVM_UNWINDER=ON - -DLIBCXXABI_INCLUDE_TESTS=OFF - - -DLIBCXXABI_LIBCXX_INCLUDES="${WORKDIR}"/libcxx/include - -DLIBCXXABI_LIBUNWIND_INCLUDES="${S}"/include - ) - - cmake-utils_src_configure - cmake-utils_src_compile -} - -build_libcxx() { - local -x LDFLAGS="${LDFLAGS} -L${BUILD_DIR}/libcxxabi/lib -L${BUILD_DIR}/$(get_libdir)" - local CMAKE_USE_DIR=${WORKDIR}/libcxx - local BUILD_DIR=${BUILD_DIR}/libcxx - local mycmakeargs=( - -DLIBCXX_LIBDIR_SUFFIX= - -DLIBCXX_ENABLE_SHARED=OFF - -DLIBCXX_ENABLE_STATIC=ON - -DLIBCXX_ENABLE_EXPERIMENTAL_LIBRARY=OFF - -DLIBCXXABI_USE_LLVM_UNWINDER=ON - -DLIBCXX_CXX_ABI=libcxxabi - -DLIBCXX_CXX_ABI_INCLUDE_PATHS="${WORKDIR}"/libcxxabi/include - -DLIBCXX_ENABLE_ABI_LINKER_SCRIPT=OFF - -DLIBCXX_HAS_MUSL_LIBC=$(usex elibc_musl) - -DLIBCXX_HAS_GCC_S_LIB=OFF - -DLIBCXX_INCLUDE_TESTS=OFF - ) - - cmake-utils_src_configure - cmake-utils_src_compile -} - -multilib_src_test() { - # build local copies of libc++ & libc++abi for testing to avoid - # circular deps - build_libcxxabi - build_libcxx - mv "${BUILD_DIR}"/libcxx*/lib/libc++* "${BUILD_DIR}/$(get_libdir)/" || die - - local -x LIT_PRESERVES_TMP=1 - cmake-utils_src_make check-unwind -} - -multilib_src_install() { - cmake-utils_src_install - - # install headers like sys-libs/libunwind - doheader "${S}"/include/*.h -} diff --git a/sys-libs/llvm-libunwind/llvm-libunwind-10.0.0_rc2.ebuild b/sys-libs/llvm-libunwind/llvm-libunwind-10.0.0_rc2.ebuild deleted file mode 100644 index d622d1cdee5c..000000000000 --- a/sys-libs/llvm-libunwind/llvm-libunwind-10.0.0_rc2.ebuild +++ /dev/null @@ -1,126 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -PYTHON_COMPAT=( python3_{6,7} ) -inherit cmake-multilib llvm llvm.org multiprocessing python-any-r1 - -DESCRIPTION="C++ runtime stack unwinder from LLVM" -HOMEPAGE="https://github.com/llvm-mirror/libunwind" -LLVM_COMPONENTS=( libunwind ) -LLVM_TEST_COMPONENTS=( libcxx{,abi} ) -llvm.org_set_globals - -LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" -SLOT="0" -KEYWORDS="" -IUSE="debug +static-libs test" -RESTRICT="!test? ( test )" - -RDEPEND="!sys-libs/libunwind" -# llvm-6 for new lit options -DEPEND=" - >=sys-devel/llvm-6" -BDEPEND=" - test? ( >=sys-devel/clang-3.9.0 - $(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )" - -# least intrusive of all -CMAKE_BUILD_TYPE=RelWithDebInfo - -python_check_deps() { - has_version "dev-python/lit[${PYTHON_USEDEP}]" -} - -pkg_setup() { - use test && python-any-r1_pkg_setup -} - -multilib_src_configure() { - local libdir=$(get_libdir) - - local mycmakeargs=( - -DLLVM_LIBDIR_SUFFIX=${libdir#lib} - -DLIBUNWIND_ENABLE_ASSERTIONS=$(usex debug) - -DLIBUNWIND_ENABLE_STATIC=$(usex static-libs) - -DLLVM_INCLUDE_TESTS=$(usex test) - - # support non-native unwinding; given it's small enough, - # enable it unconditionally - -DLIBUNWIND_ENABLE_CROSS_UNWINDING=ON - ) - if use test; then - local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null) - local jobs=${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")} - - [[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests" - - mycmakeargs+=( - -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit" - -DLLVM_LIT_ARGS="-vv;-j;${jobs};--param=cxx_under_test=${clang_path}" - -DLIBUNWIND_LIBCXX_PATH="${WORKDIR}/libcxx" - ) - fi - - cmake-utils_src_configure -} - -build_libcxxabi() { - local -x LDFLAGS="${LDFLAGS} -L${BUILD_DIR}/$(get_libdir)" - local CMAKE_USE_DIR=${WORKDIR}/libcxxabi - local BUILD_DIR=${BUILD_DIR}/libcxxabi - local mycmakeargs=( - -DLIBCXXABI_LIBDIR_SUFFIX= - -DLIBCXXABI_ENABLE_SHARED=OFF - -DLIBCXXABI_ENABLE_STATIC=ONF - -DLIBCXXABI_USE_LLVM_UNWINDER=ON - -DLIBCXXABI_INCLUDE_TESTS=OFF - - -DLIBCXXABI_LIBCXX_INCLUDES="${WORKDIR}"/libcxx/include - -DLIBCXXABI_LIBUNWIND_INCLUDES="${S}"/include - ) - - cmake-utils_src_configure - cmake-utils_src_compile -} - -build_libcxx() { - local -x LDFLAGS="${LDFLAGS} -L${BUILD_DIR}/libcxxabi/lib -L${BUILD_DIR}/$(get_libdir)" - local CMAKE_USE_DIR=${WORKDIR}/libcxx - local BUILD_DIR=${BUILD_DIR}/libcxx - local mycmakeargs=( - -DLIBCXX_LIBDIR_SUFFIX= - -DLIBCXX_ENABLE_SHARED=OFF - -DLIBCXX_ENABLE_STATIC=ON - -DLIBCXX_ENABLE_EXPERIMENTAL_LIBRARY=OFF - -DLIBCXXABI_USE_LLVM_UNWINDER=ON - -DLIBCXX_CXX_ABI=libcxxabi - -DLIBCXX_CXX_ABI_INCLUDE_PATHS="${WORKDIR}"/libcxxabi/include - -DLIBCXX_ENABLE_ABI_LINKER_SCRIPT=OFF - -DLIBCXX_HAS_MUSL_LIBC=$(usex elibc_musl) - -DLIBCXX_HAS_GCC_S_LIB=OFF - -DLIBCXX_INCLUDE_TESTS=OFF - ) - - cmake-utils_src_configure - cmake-utils_src_compile -} - -multilib_src_test() { - # build local copies of libc++ & libc++abi for testing to avoid - # circular deps - build_libcxxabi - build_libcxx - mv "${BUILD_DIR}"/libcxx*/lib/libc++* "${BUILD_DIR}/$(get_libdir)/" || die - - local -x LIT_PRESERVES_TMP=1 - cmake-utils_src_make check-unwind -} - -multilib_src_install() { - cmake-utils_src_install - - # install headers like sys-libs/libunwind - doheader "${S}"/include/*.h -} diff --git a/sys-libs/llvm-libunwind/llvm-libunwind-9.0.1.ebuild b/sys-libs/llvm-libunwind/llvm-libunwind-9.0.1.ebuild index ea533a3c5ebb..782f15e8964f 100644 --- a/sys-libs/llvm-libunwind/llvm-libunwind-9.0.1.ebuild +++ b/sys-libs/llvm-libunwind/llvm-libunwind-9.0.1.ebuild @@ -14,7 +14,7 @@ llvm.org_set_globals LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" SLOT="0" -KEYWORDS="amd64 arm ~arm64 x86" +KEYWORDS="amd64 arm arm64 x86" IUSE="debug +static-libs test" RESTRICT="!test? ( test )" diff --git a/sys-libs/lwp/Manifest b/sys-libs/lwp/Manifest index ccaa7c453ddd..7a86b2ff1b23 100644 --- a/sys-libs/lwp/Manifest +++ b/sys-libs/lwp/Manifest @@ -1,4 +1,4 @@ AUX lwp-2.8-ia64.patch 523 BLAKE2B d5fd6257a690112cf1a4da4e83035244ca97ca9d306ba7ebdcbe701192ce3b49e93a237d823780abab1ab4bef8c41370d6aecf0d5a9828345121ce14b555dc91 SHA512 5289f26b363a480cf5d22c0c4217384e9d3338b573beaf1b2be5287a039732b1c53d6da024d0a83c4377561e86edf1676d01308971ad331ccaa006fc822443f2 DIST lwp-2.8.tar.xz 270008 BLAKE2B 67107f880d5052d42166fe429cda14b4d733bcc3e5905cf48b23898e0da590854ca935ea0350c77be75c3f27d2624134c17159e5f2981ac8806bd78906d7de41 SHA512 c56f3b350e888b5bcb2bffb41086f8926e975aafae236be7f1d2153bb178a37564b77d7598db1aa915714ce8e2ed1904663ce2113f5d0853173cf5e189958bf0 -EBUILD lwp-2.8.ebuild 523 BLAKE2B 9cb89c65712a05e9eae776e03dabc414c215f398a4846006dd991e0ddacfd93a0e9fc362850693bcddfe60417ab38c2bfe8b7543dcf1079ccf9bf5046fce0b85 SHA512 7c23a1a14682d384eb5358698d1ce7dac570b1fa8e1aa52e01e2805a1abd0cb643855e0ffd9a7e15b024b4327e1deabcf923d0d31448093948b9c617a8ee0f9c +EBUILD lwp-2.8.ebuild 524 BLAKE2B 7a9772190b72f1ed5f89f381174e2ea43823991271d11a8c00a1ab5da4524c8641776f385b8c0330e3a7b6bdda2254c22a774c447646912a155b565700ed517e SHA512 32a811d828ee86b4d19ed8cf86cea40eaa37e9d4a249b0b9b12f5e6a0cb0325796f87dbd211972a4d35a85baa667b41b32c752d738170fb587bbe697516f1b14 MISC metadata.xml 166 BLAKE2B c254f1fb642881aba57637be14fb0a89b10384f91a128feaec3a8c870d76efc2cbacb92caccc0dee2dd19a5ac5eaf8643080dafa05c4e2ac96a68568927e5afd SHA512 a56648c974a1d14dd4c18237532773c72057a13ab90c58b5da04f185e3c12a8bd8d5c21fb06053507f31766291a82dc7d87b34cd65fd94cfe2af7295c813ef84 diff --git a/sys-libs/lwp/lwp-2.8.ebuild b/sys-libs/lwp/lwp-2.8.ebuild index fef0c3f0d0ad..42499946341a 100644 --- a/sys-libs/lwp/lwp-2.8.ebuild +++ b/sys-libs/lwp/lwp-2.8.ebuild @@ -10,7 +10,7 @@ SRC_URI="http://www.coda.cs.cmu.edu/pub/lwp/src/${P}.tar.xz" LICENSE="LGPL-2.1" SLOT="1" -KEYWORDS="~alpha amd64 ~hppa ia64 ~mips ppc ppc64 sparc x86" +KEYWORDS="~alpha amd64 ~hppa ~ia64 ~mips ppc ppc64 sparc x86" IUSE="" PATCHES=( diff --git a/sys-libs/mtdev/Manifest b/sys-libs/mtdev/Manifest index 75d1b15008d9..0046acf72689 100644 --- a/sys-libs/mtdev/Manifest +++ b/sys-libs/mtdev/Manifest @@ -1,5 +1,3 @@ -DIST mtdev-1.1.5.tar.bz2 274162 BLAKE2B 4e73b3f25f9b3d42ffecb15018e57e7c50f1cb11c662cb5a5bbd2cf38272b98294362075e00277d4983e40f2779afef7d3fb1c6679e3f29117ce0f4c369fe27a SHA512 78477a4af784e3f846df867f1428ffdc458e3ff33d465d45a84247a7e52f0e215cace397d72be64f6e641f07e0b97a930eff0e07fe9507e0138fb028a4037d6d DIST mtdev-1.1.6.tar.bz2 295965 BLAKE2B 212cf0f0bea0fc295528c90c6685770e88cb135a714cbf21e53b75ab2eaedd210269d073520e44c5bffafe8a5ecca521221061193725cba916bc2cf703fd5166 SHA512 859fb0803f330ecaae69f80713ff5a5235c0cb00de6d5ac2717ad82cea856a92b866f0c272ecfe743186abcf925f95585149ba4828b4c91555cfeb2f2a1c98f1 -EBUILD mtdev-1.1.5.ebuild 561 BLAKE2B 970030a4f6e5c5e6b5a665097f03b69ae40aea4fcbad18210a42a299fca12b831cc35d40bba47a79d61fa3e2006b8af5a1d7fcf671993903802298229530078c SHA512 bb495016bf72e1193d5f28c2f3ad7b2b751428482725638523898b2a08650f044d9ede8d4e7c2419ef2ef2f9ffe59e56b5a66c30cf8ff45ac3791bb5cc2cde83 -EBUILD mtdev-1.1.6.ebuild 537 BLAKE2B 745473580ca6b167ce7acd2753803f460f75bd86c186a4a9933b345423d77fbc992fa89903fcc45935d04b4d7d83ca2289fdcb7f7dfd0cff8590826ee22458d4 SHA512 9a804a6528eb1a46ad959e20667266954951aa1fbc7c27938e5fbf541ba93d20309146062f6326c6a2133cff14ec9f363b547ac74d30dded192ac75c71487288 +EBUILD mtdev-1.1.6.ebuild 524 BLAKE2B 3d72f7eec4e18e28fb8f14bd7a87c5c5a66cd159e72c2cf3521fcd7386b587fb3577e64d0f9b0021e881cd66b28858e8c8ad5b98227a073a886618da5db419f6 SHA512 fd0e5f98ef1da50682de10b49dfada126a48e4c516a2e457e740d0b0170a96ac0f0fe433f55cfa69a285e222988ec22576c43ebeee3d6802cb112fef126083d8 MISC metadata.xml 307 BLAKE2B 111e26b23df5360c4b6326fe57a59b502da229e92c75a607db23174b31b5ecd9d5ddb2c14efc17aead6d1a17d4ba52f7fef09cbae87d9718c7c6ee6ccd630cee SHA512 5765f66767b8854edcb68efbed96d5ad33a6b9dee582020b742de2136c19050bde444ac16359cefbf7ee463c842eb2ab6c6a46564a034497683d158e2d841ad5 diff --git a/sys-libs/mtdev/mtdev-1.1.5.ebuild b/sys-libs/mtdev/mtdev-1.1.5.ebuild deleted file mode 100644 index e637ab713d14..000000000000 --- a/sys-libs/mtdev/mtdev-1.1.5.ebuild +++ /dev/null @@ -1,24 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=5 - -DESCRIPTION="Multitouch Protocol Translation Library" -HOMEPAGE="http://bitmath.org/code/mtdev/" -SRC_URI="http://bitmath.org/code/mtdev/${P}.tar.bz2" - -LICENSE="MIT" -SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 hppa ia64 ~mips ppc ppc64 s390 ~sh sparc x86" -IUSE="static-libs" - -DEPEND=">=sys-kernel/linux-headers-2.6.31" - -src_configure() { - econf $(use_enable static-libs static) -} - -src_install() { - default - find "${ED}" -name '*.la' -exec rm -f {} + -} diff --git a/sys-libs/mtdev/mtdev-1.1.6.ebuild b/sys-libs/mtdev/mtdev-1.1.6.ebuild index 74a573cbaeae..b815bf1d83d1 100644 --- a/sys-libs/mtdev/mtdev-1.1.6.ebuild +++ b/sys-libs/mtdev/mtdev-1.1.6.ebuild @@ -9,7 +9,7 @@ SRC_URI="https://bitmath.org/code/mtdev/${P}.tar.bz2" LICENSE="MIT" SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86" +KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~mips ppc ppc64 s390 sparc x86" IUSE="" DEPEND=">=sys-kernel/linux-headers-2.6.31" diff --git a/sys-libs/musl/Manifest b/sys-libs/musl/Manifest index 5d13e7853f7d..23091e82a248 100644 --- a/sys-libs/musl/Manifest +++ b/sys-libs/musl/Manifest @@ -2,10 +2,8 @@ AUX ldconfig.in 2552 BLAKE2B c94f9900e8582d707519171c4b61079c801b60c555677b1740b DIST getconf.c 11614 BLAKE2B ba49a573fc16d51780a0b0b81fbf7b64a1142f1dbad203c9609a59b6b07e7404f676c415383ae88c0aede95694821f6ee381bffd93cc3330501e17dc07d122bd SHA512 0d80f37b34a35e3d14b012257c50862dfeb9d2c81139ea2dfa101d981d093b009b9fa450ba27a708ac59377a48626971dfc58e20a3799084a65777a0c32cbc7d DIST getent.c 9438 BLAKE2B dc20353583c10a001bd8fe8474f32b70254dc56da186d1cdbaf4081570c3d7a10497024da5815a485fc4728adc9eebd270aec99ba93b7546b38c728978e3e00b SHA512 b35de9847353b273516162ed4828a810c6130fc5b7de44ee4433003b3f99647b25792d9b1c40dfc67069add11f3fb850e5c35d4f1912dccac108059bbbdfd5a2 DIST iconv.c 2577 BLAKE2B 070ca87b30c90ab98c27d5faf7a2fcb64ff7c67ca212ee6072165b2146979c551f714954dbd465462a171837c59b6ea027e0206458a2df0f977e45f01be3ce48 SHA512 9d42d66fb1facce2b85dad919be5be819ee290bd26ca2db00982b2f8e055a0196290a008711cbe2b18ec9eee8d2270e3b3a4692c5a1b807013baa5c2b70a2bbf -DIST musl-1.1.23.tar.gz 1013779 BLAKE2B 0251604697f6e243d173c6a72d0a24ddbbce298f8e3a53d9d3a18d7f5ebf19f4e85584a494639c2470530b61c3189150bfaed3376e31acf4e1b2daa1c30860dc SHA512 a2278de9903852b08352d3e734a39d4616caa602496997ba843e8fea0e1c481761776745faf04536a149d1c4af416b68df681b6fbc9ae2de8794e18c2e853b09 DIST musl-1.1.24.tar.gz 1024988 BLAKE2B 5fa26746eed0f2334b740adf94a8400568d56d9b2276bf1fbac828f9b707b4e215d3c16af9ea048b9d771f1d0a58ada3bc6e1bf0ba8f5fa693f5042fc6af30df SHA512 8987f1e194ea616f34f4f21fe9def28fb7f81d7060e38619206c6349f79db3bbb76bae8b711f5f9b8ed038799c9aea1a4cbec69e0bc4131e246203e133149e77 DIST musl-1.2.0.tar.gz 1035265 BLAKE2B 0a47e0f438cca0f3ce31ae024c19358160214842115b560efc48e66228055c9147d9550957a79425322d510ba773f197d0944bb844bf6addbbf698088a3358a9 SHA512 58bd88189a6002356728cea1c6f6605a893fe54f7687595879add4eab283c8692c3b031eb9457ad00d1edd082cfe62fcc0eb5eb1d3bf4f1d749c0efa2a95fec1 -EBUILD musl-1.1.23.ebuild 3185 BLAKE2B 1026074140839609490b2317505d73158b1cef832c85dcb0e4f6c50083bffeddf9c67b72b7e36b8bf3e7f0f2c647200b43bfe72e7306f17e0532af80638543ea SHA512 df14c860cd56e9cd24f43c125174f2aed00ac0660c3f74a808a8b8d6c5b0f49ed7ab6e8d8c7c5725bc296a1c3c680708b3e5f72f8605e12ac9caca7147f9d73c EBUILD musl-1.1.24.ebuild 3191 BLAKE2B a58e17b751cbf37abd114f4b19621723da613f4396ad51cb9db10f01132a6d3813137db77d3dc6bd62e4632b4f213e6cab1dd25a40e11b410136546336077aa3 SHA512 9a26e02bd394a3b8339632fb58ad8e9387325b376d4de14efdcf6e6b0d0223af77a9421afe8a8679cf3ec7e185cd10705f16324378699f13e64085c2e19a0ba6 EBUILD musl-1.2.0.ebuild 3197 BLAKE2B 90b835e7eb0b3a972859d1a944dbb2d772a6bffcb5180b4ebddcd874cf5a104d8f8923e50cded5a2f2ed666df9bb553ed4cadf78b8ccd11e797ec76e8c687f8e SHA512 1b5fbba888d3b7c4521fad7486ccf930b1baf52252554e4f0028fe69a4b814e208f697dceacc0e66c8c6236cc8a5fdd3a7c3f364468ebfb09d078d2ed10eb74c EBUILD musl-9999.ebuild 3190 BLAKE2B bf8b78f641cea6c7159fc66cbd7baaf54439aac9323c57092a3d688166fd4c5a209ed12e5ebfbd9ce50feffe794778bd1b3a90d7239d966bd25e21110fd153df SHA512 89fc2bc34ae68f7ac8d824271cc2c6a9e24794d2eed23dc536bb711b82c9b8ab1fdd738453f35eef1eb1bc3b58ac9086b06a1f2f4183812d43f9fe15b22ac2cb diff --git a/sys-libs/musl/musl-1.1.23.ebuild b/sys-libs/musl/musl-1.1.23.ebuild deleted file mode 100644 index ec3d2f49819c..000000000000 --- a/sys-libs/musl/musl-1.1.23.ebuild +++ /dev/null @@ -1,122 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 - -inherit eutils flag-o-matic multilib toolchain-funcs -if [[ ${PV} == "9999" ]] ; then - EGIT_REPO_URI="git://git.musl-libc.org/musl" - inherit git-r3 - SRC_URI=" - https://dev.gentoo.org/~blueness/musl-misc/getconf.c - https://dev.gentoo.org/~blueness/musl-misc/getent.c - https://dev.gentoo.org/~blueness/musl-misc/iconv.c" - KEYWORDS="" -else - SRC_URI="http://www.musl-libc.org/releases/${P}.tar.gz - https://dev.gentoo.org/~blueness/musl-misc/getconf.c - https://dev.gentoo.org/~blueness/musl-misc/getent.c - https://dev.gentoo.org/~blueness/musl-misc/iconv.c" - KEYWORDS="-* amd64 arm arm64 ~mips ppc x86" -fi - -export CBUILD=${CBUILD:-${CHOST}} -export CTARGET=${CTARGET:-${CHOST}} -if [[ ${CTARGET} == ${CHOST} ]] ; then - if [[ ${CATEGORY} == cross-* ]] ; then - export CTARGET=${CATEGORY#cross-} - fi -fi - -DESCRIPTION="Light, fast and simple C library focused on standards-conformance and safety" -HOMEPAGE="http://www.musl-libc.org/" -LICENSE="MIT LGPL-2 GPL-2" -SLOT="0" -IUSE="headers-only" - -QA_SONAME="/usr/lib/libc.so" -QA_DT_NEEDED="/usr/lib/libc.so" - -is_crosscompile() { - [[ ${CHOST} != ${CTARGET} ]] -} - -just_headers() { - use headers-only && is_crosscompile -} - -pkg_setup() { - if [ ${CTARGET} == ${CHOST} ] ; then - case ${CHOST} in - *-musl*) ;; - *) die "Use sys-devel/crossdev to build a musl toolchain" ;; - esac - fi - - # fix for #667126, copied from glibc ebuild - # make sure host make.conf doesn't pollute us - if is_crosscompile || tc-is-cross-compiler ; then - CHOST=${CTARGET} strip-unsupported-flags - fi -} - -src_configure() { - tc-getCC ${CTARGET} - just_headers && export CC=true - - local sysroot - is_crosscompile && sysroot=/usr/${CTARGET} - ./configure \ - --target=${CTARGET} \ - --prefix=${sysroot}/usr \ - --syslibdir=${sysroot}/lib \ - --disable-gcc-wrapper || die -} - -src_compile() { - emake obj/include/bits/alltypes.h - just_headers && return 0 - - emake - if [[ ${CATEGORY} != cross-* ]] ; then - $(tc-getCC) ${CFLAGS} "${DISTDIR}"/getconf.c -o "${T}"/getconf || die - $(tc-getCC) ${CFLAGS} "${DISTDIR}"/getent.c -o "${T}"/getent || die - $(tc-getCC) ${CFLAGS} "${DISTDIR}"/iconv.c -o "${T}"/iconv || die - fi -} - -src_install() { - local target="install" - just_headers && target="install-headers" - emake DESTDIR="${D}" ${target} - just_headers && return 0 - - # musl provides ldd via a sym link to its ld.so - local sysroot - is_crosscompile && sysroot=/usr/${CTARGET} - local ldso=$(basename "${D}"${sysroot}/lib/ld-musl-*) - dosym ${sysroot}/lib/${ldso} ${sysroot}/usr/bin/ldd - - if [[ ${CATEGORY} != cross-* ]] ; then - local arch=$("${D}"usr/lib/libc.so 2>&1 | sed -n '1s/^musl libc (\(.*\))$/\1/p') - [[ -e "${D}"/lib/ld-musl-${arch}.so.1 ]] || die - cp "${FILESDIR}"/ldconfig.in "${T}" || die - sed -e "s|@@ARCH@@|${arch}|" "${T}"/ldconfig.in > "${T}"/ldconfig || die - into / - dosbin "${T}"/ldconfig - into /usr - dobin "${T}"/getconf - dobin "${T}"/getent - dobin "${T}"/iconv - echo 'LDPATH="include ld.so.conf.d/*.conf"' > "${T}"/00musl || die - doenvd "${T}"/00musl - fi -} - -pkg_postinst() { - is_crosscompile && return 0 - - [ "${ROOT}" != "/" ] && return 0 - - ldconfig || die -} diff --git a/sys-libs/ncurses-compat/Manifest b/sys-libs/ncurses-compat/Manifest index 27cd0d2147e8..f1004777315f 100644 --- a/sys-libs/ncurses-compat/Manifest +++ b/sys-libs/ncurses-compat/Manifest @@ -12,6 +12,6 @@ AUX ncurses-6.0-ticlib.patch 492 BLAKE2B df9e747a773b532aab42def40fa048a08ae4d02 DIST ncurses-5.9.tar.gz 2826473 BLAKE2B 91101b049a5eb6a2674fb86b5eba56515207f490dc7a6348f3194bbc50649717a26aff7a0df64f67ca318b5f244455cd57e760c65b9e551f6ec65b8c035a6ae1 SHA512 d7c5e54b6d4d8b9211f0006ca8786f7609d180cc1aaebf4f25e7e35e12959779cf66447359a602daed625621ca32b0d910d67aef3eb8b6fdc3c373819a88faa1 DIST ncurses-6.1-20190609-patch.sh.bz2 602174 BLAKE2B 38b1cb1f376b8fdfddc7cf9ed8e10190dd50fc2315f11eaf3a14c0299167c0e6bbd82a3684fa83d6e8fa6d2f02ea14e88ea065f8bb886905d85788bde13731c0 SHA512 efd009f5087a7b16413b94ce37ad19da0df8974be579b742d57bc64e034792ccf03b9967593a0ac5c90522ccfde4b6d23ef763d6fbeb91a5f327f8d7a0970872 DIST ncurses-6.1.tar.gz 3365395 BLAKE2B 1248a5088bc982d0880cb9550b1192457f6f624937c4b66807668c22a608002ba6c38d876986f2c2b9ee46f91d087c88bc0b19920733e4c7ca0ed8e92d9d47de SHA512 e308af43f8b7e01e98a55f4f6c4ee4d1c39ce09d95399fa555b3f0cdf5fd0db0f4c4d820b4af78a63f6cf6d8627587114a40af48cfc066134b600520808a77ee -EBUILD ncurses-compat-5.9.ebuild 5313 BLAKE2B 25742e19eeb3bfe0551999b6a0a7fb90656022be4dcb31f707c9d1a5af7fdffd902e45a59c2527b92027e8bcdaa2e3a957cac5bbe16dba3a4a4c0ff61037b579 SHA512 5886d106ac91ee13a8ea88493afc2d028cb279510c380f1ae8b52bc3a14bf843c9685b7cf58ef7a53342961df2ee84306238544ff94a19800a671b1c8ee70e15 -EBUILD ncurses-compat-6.1_p20190609.ebuild 6351 BLAKE2B c9c47cd7d07fca186c627bb50a479882bbdb81697d1e6667b2725b139b9a212eaaff66c8c4114a38ff07cf24a113b333f10b6ac16a622669cde7627b45b1ed8c SHA512 b7bae0bcbe24fe6df80f83e385b94db94a4c4c1fb51c7562f83eeb399775f3db4e42665e0e1ad12100a7dc6f46b6135063306aed0403323e6cd7475c2e20f7d3 +EBUILD ncurses-compat-5.9.ebuild 5311 BLAKE2B d8d219edb8e56683d49ee7e1a924568a6087e156589c48794c7aa5da0a1f27345b1191d3ca0aa694328e345b385dfaf4468cfe1598d2a71b9d6441ac1cd813fd SHA512 1042abb1f0c3a78dab37d0e79d0c681581411f8b3a75caf1fc81ab46e0f7cbb1360b825f582b424dc5097dc93002cc49360f1a45a9c885e41dfeac205da9177d +EBUILD ncurses-compat-6.1_p20190609.ebuild 6347 BLAKE2B dc3d9d21d249e82238ad26d4008148d8eb196df7b870812e94c8b37c4b1fa92c0a42e9582364b1082497b9a1b7cbc508bb2e06d752dcbadfc5b0d13ff7821d94 SHA512 70222053eee9773ce7e002dad3b48b215a3bda54ee4fc860d46b4236588306dbf09101ff48d639b5b61f9d4fbaf356d7263edb2fa373523e5c2848bf6a0d564f MISC metadata.xml 553 BLAKE2B b4d08cf9605063f09966cab08e095e0ed0194e03d941aceab3c3990aac37e143a2d0b0f69488c621fe200195c639ff4f3fdbf7969869edc4e237d994b8802084 SHA512 96895eee198c9686f03715f854fceab32e726f2944c357fb9c59915756132d57a919e0e10bb8bd093315b0102831ddd6db32060723997bc9134bf6f3e34e84e9 diff --git a/sys-libs/ncurses-compat/ncurses-compat-5.9.ebuild b/sys-libs/ncurses-compat/ncurses-compat-5.9.ebuild index 62fc318dbef8..19a583f4ab01 100644 --- a/sys-libs/ncurses-compat/ncurses-compat-5.9.ebuild +++ b/sys-libs/ncurses-compat/ncurses-compat-5.9.ebuild @@ -16,7 +16,7 @@ SRC_URI="mirror://gnu/ncurses/${MY_P}.tar.gz" LICENSE="MIT" # The subslot reflects the SONAME. SLOT="5/5" -KEYWORDS="~alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86" +KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 m68k ~mips ppc ppc64 s390 sparc x86" IUSE="gpm tinfo unicode" DEPEND="gpm? ( sys-libs/gpm[${MULTILIB_USEDEP}] )" diff --git a/sys-libs/ncurses-compat/ncurses-compat-6.1_p20190609.ebuild b/sys-libs/ncurses-compat/ncurses-compat-6.1_p20190609.ebuild index 562dbc4e4dfe..13a0da5e700c 100644 --- a/sys-libs/ncurses-compat/ncurses-compat-6.1_p20190609.ebuild +++ b/sys-libs/ncurses-compat/ncurses-compat-6.1_p20190609.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2019 Gentoo Authors +# Copyright 1999-2020 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 # This version is just for the ABI .5 library @@ -23,7 +23,7 @@ fi LICENSE="MIT" # The subslot reflects the SONAME. SLOT="5/5" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sh ~sparc ~x86" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" IUSE="gpm tinfo unicode" DEPEND="gpm? ( sys-libs/gpm[${MULTILIB_USEDEP}] )" diff --git a/sys-libs/ncurses/Manifest b/sys-libs/ncurses/Manifest index e65ec80481c0..b8a7437737c9 100644 --- a/sys-libs/ncurses/Manifest +++ b/sys-libs/ncurses/Manifest @@ -9,7 +9,7 @@ DIST ncurses-6.1-20181020-patch.sh.bz2 361598 BLAKE2B e74f6b4e81c822ae500724ebe7 DIST ncurses-6.1-20190609-patch.sh.bz2 602174 BLAKE2B 38b1cb1f376b8fdfddc7cf9ed8e10190dd50fc2315f11eaf3a14c0299167c0e6bbd82a3684fa83d6e8fa6d2f02ea14e88ea065f8bb886905d85788bde13731c0 SHA512 efd009f5087a7b16413b94ce37ad19da0df8974be579b742d57bc64e034792ccf03b9967593a0ac5c90522ccfde4b6d23ef763d6fbeb91a5f327f8d7a0970872 DIST ncurses-6.1.tar.gz 3365395 BLAKE2B 1248a5088bc982d0880cb9550b1192457f6f624937c4b66807668c22a608002ba6c38d876986f2c2b9ee46f91d087c88bc0b19920733e4c7ca0ed8e92d9d47de SHA512 e308af43f8b7e01e98a55f4f6c4ee4d1c39ce09d95399fa555b3f0cdf5fd0db0f4c4d820b4af78a63f6cf6d8627587114a40af48cfc066134b600520808a77ee DIST ncurses-6.2.tar.gz 3425862 BLAKE2B 6680cd7a369a4cb8234442a70869c283f0db6db9d7da1da2a7a5c519eb862a2c9b9411957d99f9ebb5089cad00b42e1ca6bc0784327461113df2eeaec695913c SHA512 4c1333dcc30e858e8a9525d4b9aefb60000cfc727bc4a1062bace06ffc4639ad9f6e54f6bdda0e3a0e5ea14de995f96b52b3327d9ec633608792c99a1e8d840d -EBUILD ncurses-6.1_p20181020.ebuild 9294 BLAKE2B 5155f2ff7013ab12740987fb3d29754e515f3b7b41cc49c7b22aae53f0ab5195ed0663da2aaae49ec4cd421cdb21f8be10c51a4a079d280783bb54ec1f96b0c3 SHA512 d05691bb88418ca46526a374072a13a6b4f15ed0e0116ad67ceeb9118475dfd84b94b0f170646415557f65791f716ad5d712ec84d0d3156498c4c42792fa5546 -EBUILD ncurses-6.1_p20190609.ebuild 9492 BLAKE2B 5bfdcef1c0b341153135d3867aef6b034bf5bdd9ec06e2f2e54789af401f9a9095508f3282c6b39be22890922a3a2f91094b8bcd2509476e5911d1c0fc772cb5 SHA512 3cf6ecef92c1311c2574ebd2672e66aaeeba7dafb3a1745e80ee880da425116334b0cf7971b1f43c1a2a11aede4ddbf99bd34d737a294f41f464445b93b3b5b3 -EBUILD ncurses-6.2-r1.ebuild 9557 BLAKE2B 71c87a9fd7c47717e7b6ff1dfd6519aec610ebc5cf4d82f44b2029761c1de188f454f6152ba077a1745e147638be843ae06e8ff0e558a3d83f3eb4ef85aa2118 SHA512 934565a04dc268f234312d7965eaf607649ac79dbca634c9c897321d1db2bdb011183eec2ca4ae3df0ae3be9ea3eb1691edf0c7fd841afc1c312cec7e3d0b9d7 +EBUILD ncurses-6.1_p20181020.ebuild 9293 BLAKE2B 8ce72eed16d81cd82a9e588782b1a2d09840f7a95a7a0358dec0fe9b77a4f46d3d50fe9ba55867b45270999f269b29ec985e1c79e6ed983a9d55a7bf1194ec20 SHA512 281e363326b0f92b0d9dc0c8e753bfec38ac6bfabca490871fda8ca7fa8f6850f7c08e647263ed8e9389370f3fde2c3c0ea5ffeee93acb629e6593d0831aa595 +EBUILD ncurses-6.1_p20190609.ebuild 9489 BLAKE2B bb0bca320c2d4d651b8176049694e2db185f28d5d150b994be8da1b571e20396cf77b95abb9c70fe09c1b2c1a298484f09358ac5fdf364de03e7f1053dc06ad7 SHA512 45aeccee896cf01e9efcc605b849a2c96b90f538d29fe4ffe8d5430b718c7bf73cf17ae4efcf74173fa1425957b8bf0a668ad107f88b9d8293ae5d81303e1d7e +EBUILD ncurses-6.2-r1.ebuild 9553 BLAKE2B 4f80c6bd7380f5b2d6641caa037d09fe539d7d67d8e1b05466750ff964755d5fe4240f2b3af0f2ee5c0eb2b10b31e75915676c527fd046d16cf338af60b4b528 SHA512 19d063b0f96a780ec6802152416aaab1476b2309ab31910afeb04bf64d5084bf2f755044125f914ac3eafa8a034aedd9c2317201a097650a7e4803cce1029403 MISC metadata.xml 696 BLAKE2B 00deabf0f9a310870a8080425ee4df0e581c6871565f5f3c42c823f51bb4fabac4a8980e371f2bd142a982b6369527bee184ecb941e5d5f31697a871cd0a8237 SHA512 ff73226dc25e761ad9106768fc7ad0d2c40b6fefd3beced9ba5dfcc31a499220408fb2f2a6fd8aa53bb360398154a3653bf0e0ddb16c4ef4e5e89fe60752b7b5 diff --git a/sys-libs/ncurses/ncurses-6.1_p20181020.ebuild b/sys-libs/ncurses/ncurses-6.1_p20181020.ebuild index 2b25945830ab..f9e2b3a1a1e6 100644 --- a/sys-libs/ncurses/ncurses-6.1_p20181020.ebuild +++ b/sys-libs/ncurses/ncurses-6.1_p20181020.ebuild @@ -19,7 +19,7 @@ fi LICENSE="MIT" # The subslot reflects the SONAME. SLOT="0/6" -KEYWORDS="~alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 ~riscv s390 sh sparc x86" +KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv s390 sparc x86" IUSE="ada +cxx debug doc gpm minimal profile static-libs test threads tinfo trace unicode" RESTRICT="!test? ( test )" diff --git a/sys-libs/ncurses/ncurses-6.1_p20190609.ebuild b/sys-libs/ncurses/ncurses-6.1_p20190609.ebuild index f7e2f98a6679..cb824856ffa7 100644 --- a/sys-libs/ncurses/ncurses-6.1_p20190609.ebuild +++ b/sys-libs/ncurses/ncurses-6.1_p20190609.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2019 Gentoo Authors +# Copyright 1999-2020 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 @@ -19,7 +19,7 @@ fi LICENSE="MIT" # The subslot reflects the SONAME. SLOT="0/6" -KEYWORDS="~alpha amd64 arm arm64 hppa ia64 ~m68k ~mips ppc ppc64 ~riscv s390 ~sh sparc x86" +KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv s390 sparc x86" IUSE="ada +cxx debug doc gpm minimal profile static-libs test threads tinfo trace unicode" RESTRICT="!test? ( test )" diff --git a/sys-libs/ncurses/ncurses-6.2-r1.ebuild b/sys-libs/ncurses/ncurses-6.2-r1.ebuild index 6c96fc33f99a..89fccf97ba4a 100644 --- a/sys-libs/ncurses/ncurses-6.2-r1.ebuild +++ b/sys-libs/ncurses/ncurses-6.2-r1.ebuild @@ -19,7 +19,7 @@ fi LICENSE="MIT" # The subslot reflects the SONAME. SLOT="0/6" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sh ~sparc ~x86" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" IUSE="ada +cxx debug doc gpm minimal profile static-libs test threads tinfo trace unicode" RESTRICT="!test? ( test )" diff --git a/sys-libs/newlib/Manifest b/sys-libs/newlib/Manifest index 11709efc306c..c0629ed0abed 100644 --- a/sys-libs/newlib/Manifest +++ b/sys-libs/newlib/Manifest @@ -1,8 +1,4 @@ -DIST newlib-2.2.0.tar.gz 16521910 BLAKE2B 530290c8f219774885e3c408889b7f58bbeefe5c092f004c9ad61de8642b725df1f8fd2a00760ebde814e5bf379ae0320a589d2318113f371a733c5abaca2ba7 SHA512 ab9161f16845367c823b6709e3c5708969f29f05c77edb1cf969ff4202f358648f1e55080974599dcefed2fbced4694dc73748596e76c1aa37c50cddff6e4be3 -DIST newlib-2.5.0.tar.gz 17912392 BLAKE2B bc89491758d59f3529c72308e963c5b3e39044d6d586ef3814cc19cf55aee33948656c544df7dfcbe3915105e7373f53d7b2baf96b9b8147e3af780c1d08e670 SHA512 4c99e8dfcb4a7ad0769b9e173ff06628d82e4993ef87d3adf9d6b5578626b14de81b4b3c5f0673ddbb49dc9f3d3628f9f8d4432dcded91f5cd3d27b7d44343cd -DIST newlib-3.1.0.tar.gz 17958952 BLAKE2B 3a84ae81fc07e442a4ed3da7a78e7ede34cc7e24b5d1c66a12624ed808e5f85f134751fcea0e4ce9eb39df287a582821f751a8610a088c149895b5e38eb06989 SHA512 efc4c3ab7153387780d141386bca5d3e20c9d25ae3e6b87cf94c8df9d301ce5926dacdff9bd33aeb9781559d933c3d0ae77f4e5b46120d90792f75dbfde702c7 -EBUILD newlib-2.2.0.ebuild 1778 BLAKE2B 1b2808f9adf45af3f55ea1d7d52d1e129424d01d2511020ddb9908163a439c96b400c0d4ff01dd5fa695fd560a0375c1fec16773db4523091f5e5ba21ac3ad89 SHA512 f2d7f9d926db20b2b3c36a244d4ebe95818d7b0accb87b1b0f073aa53ff866d58d5fd92ee82999f130fe590ee42918c3693636d809f68c5ddc389973d42a9de6 -EBUILD newlib-2.5.0.ebuild 4040 BLAKE2B 89d2eea47609958ae3a6fe32f527ed7cdff94b430f40fe4bdd12714e72dfcdce4dcc59d8e2a8971d54d0a880d227ac557741f374c30d53e84e59b73ee8fe72fd SHA512 e9c40057893176881fe811d84eb6e1ff5bb82c02cbf3bc1d4cfbb346a1960dacdce183d9e5c10df1cf23daa2bfd01d72712b811f4a1719436a4109a9e904df51 -EBUILD newlib-3.1.0.ebuild 4226 BLAKE2B b383fac3485a409a2e58e8db2c48f47aaea4cbdb740de00da7388ccb4dc3228b82ddde3c451a7f61c838672d8ea36fe215f2edfd5ac6ba4a78dd991f486b18f9 SHA512 ffc6b9a7388b055e8bfa6b820cc5dc547ccbd4b7d63bd7271d27111307926ada784d0634aa517acd2f132c8fcbb666eeedc6166fa9aff734a5c88e508ef3142e -EBUILD newlib-9999.ebuild 4226 BLAKE2B b383fac3485a409a2e58e8db2c48f47aaea4cbdb740de00da7388ccb4dc3228b82ddde3c451a7f61c838672d8ea36fe215f2edfd5ac6ba4a78dd991f486b18f9 SHA512 ffc6b9a7388b055e8bfa6b820cc5dc547ccbd4b7d63bd7271d27111307926ada784d0634aa517acd2f132c8fcbb666eeedc6166fa9aff734a5c88e508ef3142e +DIST newlib-3.3.0.tar.gz 18361083 BLAKE2B bdc81427955d0a2f550bf2973ca82c0b8b55aa170565cdf1cfe8ac926257fad6d3e860ce7b2e286949ab21be2677378b5b6d3c743c05fe8aa6df8a8c34a16945 SHA512 2f0c6666487520e1a0af0b6935431f85d2359e27ded0d01d02567d0d1c6479f2f0e6bbc60405e88e46b92c2a18780a01a60fc9281f7e311cfd40b8d5881d629c +EBUILD newlib-3.3.0.ebuild 4224 BLAKE2B 4e3f5b528c084fb06dc62ba2ec578292651f453482d332536b3c3a6c45088199728c184b6ac9bcad414e85efdb6011c0ff77d1b7578eb61fb8ad947d8a7c3951 SHA512 757b96af5e3131dce540ffc4f428997fac806e87a3b5abedc057e84915c8f5ba436548f4900070941e125f8cfe2d5503412112e13e2d66ce38fd274d436f93eb +EBUILD newlib-9999.ebuild 4224 BLAKE2B 4e3f5b528c084fb06dc62ba2ec578292651f453482d332536b3c3a6c45088199728c184b6ac9bcad414e85efdb6011c0ff77d1b7578eb61fb8ad947d8a7c3951 SHA512 757b96af5e3131dce540ffc4f428997fac806e87a3b5abedc057e84915c8f5ba436548f4900070941e125f8cfe2d5503412112e13e2d66ce38fd274d436f93eb MISC metadata.xml 413 BLAKE2B 03320244c40182ff9d503fd1d9c7c3847209eeb91081e7d4a3285ed43eba6a42e0f361f6b7601966df420dde2d4e93ca458816198c2f9ebaec82790359ce868b SHA512 37e46d117243b93e189177ada64acedc0d798dfe4859f29a7ef70b22fe44e6364a3445e345def7e48264cb2bf3047ac78637759bc04d9ed3d7ea339432adf7e4 diff --git a/sys-libs/newlib/newlib-2.2.0.ebuild b/sys-libs/newlib/newlib-2.2.0.ebuild deleted file mode 100644 index 06ec36dcc2cb..000000000000 --- a/sys-libs/newlib/newlib-2.2.0.ebuild +++ /dev/null @@ -1,81 +0,0 @@ -# Copyright 1999-2018 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI="4" - -inherit flag-o-matic toolchain-funcs eutils - -if [[ ${PV} == "9999" ]] ; then - EGIT_REPO_URI="git://sourceware.org/git/newlib-cygwin.git" - inherit git-r3 -else - SRC_URI="ftp://sourceware.org/pub/newlib/${P}.tar.gz" - KEYWORDS="-* arm hppa m68k ~mips ppc ppc64 sh sparc x86" -fi - -export CBUILD=${CBUILD:-${CHOST}} -export CTARGET=${CTARGET:-${CHOST}} -if [[ ${CTARGET} == ${CHOST} ]] ; then - if [[ ${CATEGORY} == cross-* ]] ; then - export CTARGET=${CATEGORY#cross-} - fi -fi - -DESCRIPTION="Newlib is a C library intended for use on embedded systems" -HOMEPAGE="https://sourceware.org/newlib/" - -LICENSE="NEWLIB LIBGLOSS GPL-2" -SLOT="0" -IUSE="nls threads unicode headers-only" -RESTRICT="strip" - -# Handle the SLOT changes. #497344 -RDEPEND="!<${CATEGORY}/${PN}-2.1.0" - -NEWLIBBUILD="${WORKDIR}/build" - -pkg_setup() { - # Reject newlib-on-glibc type installs - if [[ ${CTARGET} == ${CHOST} ]] ; then - case ${CHOST} in - *-newlib|*-elf) ;; - *) die "Use sys-devel/crossdev to build a newlib toolchain" ;; - esac - fi -} - -src_prepare() { - epatch_user -} - -src_configure() { - # we should fix this ... - unset LDFLAGS - CHOST=${CTARGET} strip-unsupported-flags - - local myconf="" - [[ ${CTARGET} == "spu" ]] \ - && myconf="${myconf} --disable-newlib-multithread" \ - || myconf="${myconf} $(use_enable threads newlib-multithread)" - - mkdir -p "${NEWLIBBUILD}" - cd "${NEWLIBBUILD}" - - ECONF_SOURCE=${S} \ - econf \ - $(use_enable unicode newlib-mb) \ - $(use_enable nls) \ - ${myconf} -} - -src_compile() { - emake -C "${NEWLIBBUILD}" -} - -src_install() { - cd "${NEWLIBBUILD}" - emake -j1 DESTDIR="${D}" install - # minor hack to keep things clean - rm -fR "${D}"/usr/share/info - rm -fR "${D}"/usr/info -} diff --git a/sys-libs/newlib/newlib-2.5.0.ebuild b/sys-libs/newlib/newlib-2.5.0.ebuild deleted file mode 100644 index 6575c24051a7..000000000000 --- a/sys-libs/newlib/newlib-2.5.0.ebuild +++ /dev/null @@ -1,139 +0,0 @@ -# Copyright 1999-2018 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI="6" - -inherit flag-o-matic toolchain-funcs - -if [[ ${PV} == "9999" ]] ; then - EGIT_REPO_URI="git://sourceware.org/git/newlib-cygwin.git" - inherit git-r3 -else - SRC_URI="ftp://sourceware.org/pub/newlib/${P}.tar.gz" - if [[ ${PV} != *.201[5-9]???? ]] ; then - KEYWORDS="-* ~arm ~hppa ~m68k ~mips ~ppc ~ppc64 ~sh ~sparc ~x86" - fi -fi - -export CBUILD=${CBUILD:-${CHOST}} -export CTARGET=${CTARGET:-${CHOST}} -if [[ ${CTARGET} == ${CHOST} ]] ; then - if [[ ${CATEGORY} == cross-* ]] ; then - export CTARGET=${CATEGORY#cross-} - fi -fi - -DESCRIPTION="Newlib is a C library intended for use on embedded systems" -HOMEPAGE="https://sourceware.org/newlib/" - -LICENSE="NEWLIB LIBGLOSS GPL-2" -SLOT="0" -IUSE="nls threads unicode headers-only nano" -RESTRICT="strip" - -NEWLIBBUILD="${WORKDIR}/build" -NEWLIBNANOBUILD="${WORKDIR}/build.nano" -NEWLIBNANOTMPINSTALL="${WORKDIR}/nano_tmp_install" - -CFLAGS_FULL="-ffunction-sections -fdata-sections" -CFLAGS_NANO="-Os -ffunction-sections -fdata-sections" - -pkg_setup() { - # Reject newlib-on-glibc type installs - if [[ ${CTARGET} == ${CHOST} ]] ; then - case ${CHOST} in - *-newlib|*-elf) ;; - *) die "Use sys-devel/crossdev to build a newlib toolchain" ;; - esac - fi -} - -src_configure() { - # we should fix this ... - unset LDFLAGS - CHOST=${CTARGET} strip-unsupported-flags - CCASFLAGS_ORIG="${CCASFLAGS}" - CFLAGS_ORIG="${CFLAGS}" - - local myconf=( - # Disable legacy syscall stub code in newlib. These have been - # moved to libgloss for a long time now, so the code in newlib - # itself just gets in the way. - --disable-newlib-supplied-syscalls - ) - [[ ${CTARGET} == "spu" ]] \ - && myconf+=( --disable-newlib-multithread ) \ - || myconf+=( $(use_enable threads newlib-multithread) ) - - mkdir -p "${NEWLIBBUILD}" - cd "${NEWLIBBUILD}" - - export "CFLAGS_FOR_TARGET=${CFLAGS_ORIG} ${CFLAGS_FULL}" - export "CCASFLAGS=${CCASFLAGS_ORIG} ${CFLAGS_FULL}" - ECONF_SOURCE=${S} \ - econf \ - $(use_enable unicode newlib-mb) \ - $(use_enable nls) \ - "${myconf[@]}" - - # Build newlib-nano beside newlib (original) - # Based on https://tracker.debian.org/media/packages/n/newlib/rules-2.1.0%2Bgit20140818.1a8323b-2 - if use nano ; then - mkdir -p "${NEWLIBNANOBUILD}" || die - cd "${NEWLIBNANOBUILD}" || die - export "CFLAGS_FOR_TARGET=${CFLAGS_ORIG} ${CFLAGS_NANO}" - export "CCASFLAGS=${CCASFLAGS_ORIG} ${CFLAGS_NANO}" - ECONF_SOURCE=${S} \ - econf \ - $(use_enable unicode newlib-mb) \ - $(use_enable nls) \ - --enable-newlib-reent-small \ - --disable-newlib-fvwrite-in-streamio \ - --disable-newlib-fseek-optimization \ - --disable-newlib-wide-orient \ - --enable-newlib-nano-malloc \ - --disable-newlib-unbuf-stream-opt \ - --enable-lite-exit \ - --enable-newlib-global-atexit \ - --enable-newlib-nano-formatted-io \ - ${myconf} - fi -} - -src_compile() { - export "CFLAGS_FOR_TARGET=${CFLAGS_ORIG} ${CFLAGS_FULL}" - export "CCASFLAGS=${CCASFLAGS_ORIG} ${CFLAGS_FULL}" - emake -C "${NEWLIBBUILD}" - - if use nano ; then - export "CFLAGS_FOR_TARGET=${CFLAGS_ORIG} ${CFLAGS_NANO}" - export "CCASFLAGS=${CCASFLAGS_ORIG} ${CFLAGS_NANO}" - emake -C "${NEWLIBNANOBUILD}" - fi -} - -src_install() { - cd "${NEWLIBBUILD}" || die - emake -j1 DESTDIR="${D}" install - - if use nano ; then - cd "${NEWLIBNANOBUILD}" || die - emake -j1 DESTDIR="${NEWLIBNANOTMPINSTALL}" install - # Rename nano lib* files to lib*_nano and move to the real ${D} - local nanolibfiles="" - nanolibfiles=$(find "${NEWLIBNANOTMPINSTALL}" -regex ".*/lib\(c\|g\|rdimon\)\.a" -print) - for f in ${nanolibfiles}; do - local l="${f##${NEWLIBNANOTMPINSTALL}}" - mv -v "${f}" "${D}/${l%%\.a}_nano.a" || die - done - - # Move newlib-nano's version of newlib.h to newlib-nano/newlib.h - mkdir -p "${D}/usr/${CTARGET}/include/newlib-nano" || die - mv "${NEWLIBNANOTMPINSTALL}/usr/${CTARGET}/include/newlib.h" \ - "${D}/usr/${CTARGET}/include/newlib-nano/newlib.h" || die - fi - - # minor hack to keep things clean - rm -rf "${D}"/usr/share/info || die - rm -rf "${D}"/usr/info || die -} diff --git a/sys-libs/newlib/newlib-3.1.0.ebuild b/sys-libs/newlib/newlib-3.1.0.ebuild deleted file mode 100644 index 3ff7308671d7..000000000000 --- a/sys-libs/newlib/newlib-3.1.0.ebuild +++ /dev/null @@ -1,141 +0,0 @@ -# Copyright 1999-2019 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI="7" - -inherit flag-o-matic toolchain-funcs - -if [[ ${PV} == "9999" ]] ; then - EGIT_REPO_URI="git://sourceware.org/git/newlib-cygwin.git" - inherit git-r3 -else - SRC_URI="ftp://sourceware.org/pub/newlib/${P}.tar.gz" - KEYWORDS="-* ~arm ~hppa ~m68k ~mips ~ppc ~ppc64 ~sh ~sparc ~x86" -fi - -export CBUILD=${CBUILD:-${CHOST}} -export CTARGET=${CTARGET:-${CHOST}} -if [[ ${CTARGET} == ${CHOST} ]] ; then - if [[ ${CATEGORY} == cross-* ]] ; then - export CTARGET=${CATEGORY#cross-} - fi -fi - -DESCRIPTION="Newlib is a C library intended for use on embedded systems" -HOMEPAGE="https://sourceware.org/newlib/" - -LICENSE="NEWLIB LIBGLOSS GPL-2" -SLOT="0" -IUSE="nls threads unicode headers-only nano" -RESTRICT="strip" - -NEWLIBBUILD="${WORKDIR}/build" -NEWLIBNANOBUILD="${WORKDIR}/build.nano" -NEWLIBNANOTMPINSTALL="${WORKDIR}/nano_tmp_install" - -# Adding -U_FORTIFY_SOURCE to counter the effect of Gentoo's -# auto-addition of _FORTIFY_SOURCE at gcc site: bug #656018#c4 -# Currently newlib can't be built itself when _FORTIFY_SOURCE -# is set. -CFLAGS_FULL="-ffunction-sections -fdata-sections -U_FORTIFY_SOURCE" -CFLAGS_NANO="-Os -ffunction-sections -fdata-sections -U_FORTIFY_SOURCE" - -pkg_setup() { - # Reject newlib-on-glibc type installs - if [[ ${CTARGET} == ${CHOST} ]] ; then - case ${CHOST} in - *-newlib|*-elf) ;; - *) die "Use sys-devel/crossdev to build a newlib toolchain" ;; - esac - fi -} - -src_configure() { - # we should fix this ... - unset LDFLAGS - CHOST=${CTARGET} strip-unsupported-flags - CCASFLAGS_ORIG="${CCASFLAGS}" - CFLAGS_ORIG="${CFLAGS}" - - local myconf=( - # Disable legacy syscall stub code in newlib. These have been - # moved to libgloss for a long time now, so the code in newlib - # itself just gets in the way. - --disable-newlib-supplied-syscalls - ) - [[ ${CTARGET} == "spu" ]] \ - && myconf+=( --disable-newlib-multithread ) \ - || myconf+=( $(use_enable threads newlib-multithread) ) - - mkdir -p "${NEWLIBBUILD}" - cd "${NEWLIBBUILD}" - - export "CFLAGS_FOR_TARGET=${CFLAGS_ORIG} ${CFLAGS_FULL}" - export "CCASFLAGS=${CCASFLAGS_ORIG} ${CFLAGS_FULL}" - ECONF_SOURCE=${S} \ - econf \ - $(use_enable unicode newlib-mb) \ - $(use_enable nls) \ - "${myconf[@]}" - - # Build newlib-nano beside newlib (original) - # Based on https://tracker.debian.org/media/packages/n/newlib/rules-2.1.0%2Bgit20140818.1a8323b-2 - if use nano ; then - mkdir -p "${NEWLIBNANOBUILD}" || die - cd "${NEWLIBNANOBUILD}" || die - export "CFLAGS_FOR_TARGET=${CFLAGS_ORIG} ${CFLAGS_NANO}" - export "CCASFLAGS=${CCASFLAGS_ORIG} ${CFLAGS_NANO}" - ECONF_SOURCE=${S} \ - econf \ - $(use_enable unicode newlib-mb) \ - $(use_enable nls) \ - --enable-newlib-reent-small \ - --disable-newlib-fvwrite-in-streamio \ - --disable-newlib-fseek-optimization \ - --disable-newlib-wide-orient \ - --enable-newlib-nano-malloc \ - --disable-newlib-unbuf-stream-opt \ - --enable-lite-exit \ - --enable-newlib-global-atexit \ - --enable-newlib-nano-formatted-io \ - ${myconf} - fi -} - -src_compile() { - export "CFLAGS_FOR_TARGET=${CFLAGS_ORIG} ${CFLAGS_FULL}" - export "CCASFLAGS=${CCASFLAGS_ORIG} ${CFLAGS_FULL}" - emake -C "${NEWLIBBUILD}" - - if use nano ; then - export "CFLAGS_FOR_TARGET=${CFLAGS_ORIG} ${CFLAGS_NANO}" - export "CCASFLAGS=${CCASFLAGS_ORIG} ${CFLAGS_NANO}" - emake -C "${NEWLIBNANOBUILD}" - fi -} - -src_install() { - cd "${NEWLIBBUILD}" || die - emake -j1 DESTDIR="${D}" install - - if use nano ; then - cd "${NEWLIBNANOBUILD}" || die - emake -j1 DESTDIR="${NEWLIBNANOTMPINSTALL}" install - # Rename nano lib* files to lib*_nano and move to the real ${D} - local nanolibfiles="" - nanolibfiles=$(find "${NEWLIBNANOTMPINSTALL}" -regex ".*/lib\(c\|g\|rdimon\)\.a" -print) - for f in ${nanolibfiles}; do - local l="${f##${NEWLIBNANOTMPINSTALL}}" - mv -v "${f}" "${D}/${l%%\.a}_nano.a" || die - done - - # Move newlib-nano's version of newlib.h to newlib-nano/newlib.h - mkdir -p "${D}/usr/${CTARGET}/include/newlib-nano" || die - mv "${NEWLIBNANOTMPINSTALL}/usr/${CTARGET}/include/newlib.h" \ - "${D}/usr/${CTARGET}/include/newlib-nano/newlib.h" || die - fi - - # minor hack to keep things clean - rm -rf "${D}"/usr/share/info || die - rm -rf "${D}"/usr/info || die -} diff --git a/sys-libs/newlib/newlib-3.3.0.ebuild b/sys-libs/newlib/newlib-3.3.0.ebuild new file mode 100644 index 000000000000..db1a3fad9cfb --- /dev/null +++ b/sys-libs/newlib/newlib-3.3.0.ebuild @@ -0,0 +1,141 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="7" + +inherit flag-o-matic toolchain-funcs + +if [[ ${PV} == "9999" ]] ; then + EGIT_REPO_URI="https://sourceware.org/git/newlib-cygwin.git" + inherit git-r3 +else + SRC_URI="ftp://sourceware.org/pub/newlib/${P}.tar.gz" + KEYWORDS="-* ~arm ~hppa ~m68k ~mips ~ppc ~ppc64 ~sparc ~x86" +fi + +export CBUILD=${CBUILD:-${CHOST}} +export CTARGET=${CTARGET:-${CHOST}} +if [[ ${CTARGET} == ${CHOST} ]] ; then + if [[ ${CATEGORY} == cross-* ]] ; then + export CTARGET=${CATEGORY#cross-} + fi +fi + +DESCRIPTION="Newlib is a C library intended for use on embedded systems" +HOMEPAGE="https://sourceware.org/newlib/" + +LICENSE="NEWLIB LIBGLOSS GPL-2" +SLOT="0" +IUSE="nls threads unicode headers-only nano" +RESTRICT="strip" + +NEWLIBBUILD="${WORKDIR}/build" +NEWLIBNANOBUILD="${WORKDIR}/build.nano" +NEWLIBNANOTMPINSTALL="${WORKDIR}/nano_tmp_install" + +# Adding -U_FORTIFY_SOURCE to counter the effect of Gentoo's +# auto-addition of _FORTIFY_SOURCE at gcc site: bug #656018#c4 +# Currently newlib can't be built itself when _FORTIFY_SOURCE +# is set. +CFLAGS_FULL="-ffunction-sections -fdata-sections -U_FORTIFY_SOURCE" +CFLAGS_NANO="-Os -ffunction-sections -fdata-sections -U_FORTIFY_SOURCE" + +pkg_setup() { + # Reject newlib-on-glibc type installs + if [[ ${CTARGET} == ${CHOST} ]] ; then + case ${CHOST} in + *-newlib|*-elf) ;; + *) die "Use sys-devel/crossdev to build a newlib toolchain" ;; + esac + fi +} + +src_configure() { + # we should fix this ... + unset LDFLAGS + CHOST=${CTARGET} strip-unsupported-flags + CCASFLAGS_ORIG="${CCASFLAGS}" + CFLAGS_ORIG="${CFLAGS}" + + local myconf=( + # Disable legacy syscall stub code in newlib. These have been + # moved to libgloss for a long time now, so the code in newlib + # itself just gets in the way. + --disable-newlib-supplied-syscalls + ) + [[ ${CTARGET} == "spu" ]] \ + && myconf+=( --disable-newlib-multithread ) \ + || myconf+=( $(use_enable threads newlib-multithread) ) + + mkdir -p "${NEWLIBBUILD}" + cd "${NEWLIBBUILD}" + + export "CFLAGS_FOR_TARGET=${CFLAGS_ORIG} ${CFLAGS_FULL}" + export "CCASFLAGS=${CCASFLAGS_ORIG} ${CFLAGS_FULL}" + ECONF_SOURCE=${S} \ + econf \ + $(use_enable unicode newlib-mb) \ + $(use_enable nls) \ + "${myconf[@]}" + + # Build newlib-nano beside newlib (original) + # Based on https://tracker.debian.org/media/packages/n/newlib/rules-2.1.0%2Bgit20140818.1a8323b-2 + if use nano ; then + mkdir -p "${NEWLIBNANOBUILD}" || die + cd "${NEWLIBNANOBUILD}" || die + export "CFLAGS_FOR_TARGET=${CFLAGS_ORIG} ${CFLAGS_NANO}" + export "CCASFLAGS=${CCASFLAGS_ORIG} ${CFLAGS_NANO}" + ECONF_SOURCE=${S} \ + econf \ + $(use_enable unicode newlib-mb) \ + $(use_enable nls) \ + --enable-newlib-reent-small \ + --disable-newlib-fvwrite-in-streamio \ + --disable-newlib-fseek-optimization \ + --disable-newlib-wide-orient \ + --enable-newlib-nano-malloc \ + --disable-newlib-unbuf-stream-opt \ + --enable-lite-exit \ + --enable-newlib-global-atexit \ + --enable-newlib-nano-formatted-io \ + ${myconf} + fi +} + +src_compile() { + export "CFLAGS_FOR_TARGET=${CFLAGS_ORIG} ${CFLAGS_FULL}" + export "CCASFLAGS=${CCASFLAGS_ORIG} ${CFLAGS_FULL}" + emake -C "${NEWLIBBUILD}" + + if use nano ; then + export "CFLAGS_FOR_TARGET=${CFLAGS_ORIG} ${CFLAGS_NANO}" + export "CCASFLAGS=${CCASFLAGS_ORIG} ${CFLAGS_NANO}" + emake -C "${NEWLIBNANOBUILD}" + fi +} + +src_install() { + cd "${NEWLIBBUILD}" || die + emake -j1 DESTDIR="${D}" install + + if use nano ; then + cd "${NEWLIBNANOBUILD}" || die + emake -j1 DESTDIR="${NEWLIBNANOTMPINSTALL}" install + # Rename nano lib* files to lib*_nano and move to the real ${D} + local nanolibfiles="" + nanolibfiles=$(find "${NEWLIBNANOTMPINSTALL}" -regex ".*/lib\(c\|g\|rdimon\)\.a" -print) + for f in ${nanolibfiles}; do + local l="${f##${NEWLIBNANOTMPINSTALL}}" + mv -v "${f}" "${D}/${l%%\.a}_nano.a" || die + done + + # Move newlib-nano's version of newlib.h to newlib-nano/newlib.h + mkdir -p "${D}/usr/${CTARGET}/include/newlib-nano" || die + mv "${NEWLIBNANOTMPINSTALL}/usr/${CTARGET}/include/newlib.h" \ + "${D}/usr/${CTARGET}/include/newlib-nano/newlib.h" || die + fi + + # minor hack to keep things clean + rm -rf "${D}"/usr/share/info || die + rm -rf "${D}"/usr/info || die +} diff --git a/sys-libs/newlib/newlib-9999.ebuild b/sys-libs/newlib/newlib-9999.ebuild index 3ff7308671d7..db1a3fad9cfb 100644 --- a/sys-libs/newlib/newlib-9999.ebuild +++ b/sys-libs/newlib/newlib-9999.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2019 Gentoo Authors +# Copyright 1999-2020 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI="7" @@ -6,11 +6,11 @@ EAPI="7" inherit flag-o-matic toolchain-funcs if [[ ${PV} == "9999" ]] ; then - EGIT_REPO_URI="git://sourceware.org/git/newlib-cygwin.git" + EGIT_REPO_URI="https://sourceware.org/git/newlib-cygwin.git" inherit git-r3 else SRC_URI="ftp://sourceware.org/pub/newlib/${P}.tar.gz" - KEYWORDS="-* ~arm ~hppa ~m68k ~mips ~ppc ~ppc64 ~sh ~sparc ~x86" + KEYWORDS="-* ~arm ~hppa ~m68k ~mips ~ppc ~ppc64 ~sparc ~x86" fi export CBUILD=${CBUILD:-${CHOST}} diff --git a/sys-libs/nss_wrapper/Manifest b/sys-libs/nss_wrapper/Manifest index 0df14874e40e..9fbff115612f 100644 --- a/sys-libs/nss_wrapper/Manifest +++ b/sys-libs/nss_wrapper/Manifest @@ -1,7 +1,5 @@ -DIST nss_wrapper-1.1.3.tar.gz 53543 BLAKE2B be7b30fab18c2e4749eefc0d3580879e33f88bad7f91b23734609fd9162b2c7119bb6867c9851c526a3dbcc296b07b6cb97234e5a892f329888b78aa843708f3 SHA512 c48b176dcd55d4de01ba2fc04e4c2ab9cb77f67d26d3a3464ca4292e607e21a621a582c21d00504c9cadb50a495f4b11b086e9decba28625cff4ff44e5d33c8d -DIST nss_wrapper-1.1.5.tar.gz 55467 BLAKE2B 0959fd5c4dfe39d988d8e73d963d63a09408f4e1f4e3baa4f719b0c0d1bb11d715b3410352c4d795ffa949ff648e6f6b7b8e587804fc48b1c92abd721d838eb2 SHA512 fd5610c9c6a1159bed42e7b5f0490293575522a845ddf7455b74959360904f33dc9dad2361221366fcbce13b27148a0b7f3de295065f13540947fcfe768816ab +DIST nss_wrapper-1.1.10.tar.gz 89593 BLAKE2B 9f478f87acbe9a842edf443ddfc45642621cee22dd03342cfb7dcc03fd4b188950a43527d3b332b03714729f7f57cf072b77ffb38574b98124dfdbb4b03f227d SHA512 7c2f0eccdb3535643015aea8b4bdb87b421c3575c3124b62c8f17c9d3db54d92ba012524674c41c16f02a1b6ebe4177724f04eefdc04760ca49b32d3f77910c5 DIST nss_wrapper-1.1.6.tar.gz 57893 BLAKE2B 4952b1af2b2b0487104b650b98694e5d39aed9edb44992d22e10ea38a2c4009f076aafa36f43775a021eca5b1f2708c9f42fa711d6715c43b077a9a3341570e8 SHA512 213d611abc072cb8d098b0782f661b4cdf1dcfd04fb564fb05034f023197aeed15a684478c660c00fb72f9438a192914e7b6878e505e4380435534bef52e0328 -EBUILD nss_wrapper-1.1.3.ebuild 712 BLAKE2B 6d1a69a5f1490ee9ce0cf4fbc894bc394380d00203238b6883b5e22767830074fc5795db18f3e593ca227ebcb8bb50129b8afc10981dbf3aa2bd7539e52ccb52 SHA512 9d54b7432f5660a38d43bda5ff1c369693d5ed78f9c012e952ed42395998b24f9a84b74988b5105ee647ff8d810926ef8b49cf5fdac5911465db83fd41715c54 -EBUILD nss_wrapper-1.1.5.ebuild 465 BLAKE2B 61459b960bd935992c7dfbe35f6cd03083e523632e30f243fbb0c264700288a380fa8e741edd6856093303f4b89aef42621bbe4416f6f732ffd75f2a20ed10c3 SHA512 f4ac1d05739d3ec69653b803b01316ff1c1f4ced9c06c3ed194602400b8bcf1af3557a1098dfabb6c7f2a09ee2e23d15058232a4bb6c11d9f42349126b425297 -EBUILD nss_wrapper-1.1.6.ebuild 465 BLAKE2B 61459b960bd935992c7dfbe35f6cd03083e523632e30f243fbb0c264700288a380fa8e741edd6856093303f4b89aef42621bbe4416f6f732ffd75f2a20ed10c3 SHA512 f4ac1d05739d3ec69653b803b01316ff1c1f4ced9c06c3ed194602400b8bcf1af3557a1098dfabb6c7f2a09ee2e23d15058232a4bb6c11d9f42349126b425297 -MISC metadata.xml 360 BLAKE2B 3c45284477381a60df338afbc4293cc20c47223eca1b4669b3f310ccb80cb0b81d534d9fbfdac8357b43507340e5f61e959c03e39e5a3deba0430e4f15aa740c SHA512 6cfeb9ed18b5c3b6c6e6875311bad627e9baffdf7b0846d70c8e0e36ce053ce849f867e963f7504292bbeb4b133c828e75a2d877c34fe7858ab3b9403ce533d2 +EBUILD nss_wrapper-1.1.10.ebuild 413 BLAKE2B 77d98a2dc0b6eda08829de64f4171126dd518ecaa548e6bd645651d285b37c47b3d7ac0dd80623fbafca09a83f28ef9ad63d8a74c15ad0fb70a31c04386ba698 SHA512 015d70d09478f31e8ef787aef44f05e1d12e03a6ac4febf94004bc86cabfd7e412b5184eb96995f69982eba871d6cd8eae6fd24aace72dff97abbaef39aa8323 +EBUILD nss_wrapper-1.1.6.ebuild 407 BLAKE2B 09a6233a1408bf474f5156532df366755014cf974f4c1b3f6a8a87d25d0562107b8ae2fc1cf940fe0429cf461a38a55d2bdaab68869eb6b64b1da0325111ec51 SHA512 dc43e43dd95d94a45d6638b8ea76623b3ec790b9ba37a4db55911a9a4796acd826d21c9aa80307b71403939fb9a02d746392c3a0c8084bb109a8ae3f7a1a06c5 +MISC metadata.xml 249 BLAKE2B 274f77317bba157c3ad4c3e9827ce5ce934c855b8bd41e603df69f1343c296abf7faec755a56f5f8d0e76f43058156e95480a386494265385604401e70484acf SHA512 940515e5f54189b5ba3c1118ea45f679182c9075091ade1959b197a6dc5fba894cd52cd0289e00a4a139b1cd3c6563771a1e21d2baa460a25892b0fa20e819a8 diff --git a/sys-libs/nss_wrapper/metadata.xml b/sys-libs/nss_wrapper/metadata.xml index f05d1f266834..48f6ca46f45a 100644 --- a/sys-libs/nss_wrapper/metadata.xml +++ b/sys-libs/nss_wrapper/metadata.xml @@ -1,12 +1,8 @@ - - polynomial-c@gentoo.org - Lars Wendler - - + samba@gentoo.org - Samba + Samba Team diff --git a/sys-libs/nss_wrapper/nss_wrapper-1.1.10.ebuild b/sys-libs/nss_wrapper/nss_wrapper-1.1.10.ebuild new file mode 100644 index 000000000000..c7252f28e7a2 --- /dev/null +++ b/sys-libs/nss_wrapper/nss_wrapper-1.1.10.ebuild @@ -0,0 +1,15 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +CMAKE_ECLASS=cmake +inherit cmake-multilib + +DESCRIPTION="Wrapper for the user, group and hosts NSS API" +HOMEPAGE="https://cwrap.org/nss_wrapper.html" +SRC_URI="https://ftp.samba.org/pub/cwrap/${P}.tar.gz" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86" diff --git a/sys-libs/nss_wrapper/nss_wrapper-1.1.3.ebuild b/sys-libs/nss_wrapper/nss_wrapper-1.1.3.ebuild deleted file mode 100644 index 88d47c28e905..000000000000 --- a/sys-libs/nss_wrapper/nss_wrapper-1.1.3.ebuild +++ /dev/null @@ -1,25 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 - -inherit cmake-multilib - -DESCRIPTION="A wrapper for the user, group and hosts NSS API" -HOMEPAGE="https://cwrap.org/nss_wrapper.html" -SRC_URI="https://ftp.samba.org/pub/cwrap/${P}.tar.gz" -LICENSE="BSD" -SLOT="0" -KEYWORDS="~alpha amd64 arm ~arm64 hppa ia64 ppc ppc64 sparc x86" -IUSE="test" -RESTRICT="!test? ( test )" - -DEPEND="" -RDEPEND="${DEPEND}" - -# Work around a problem with >=dev-util/cmake-3.3.0 (bug #558340) -# Because of this we cannot use cmake-multilib_src_configure() here. -multilib_src_configure() { - local mycmakeargs=( -DCMAKE_LIBRARY_PATH=/usr/$(get_libdir) ) - cmake-utils_src_configure -} diff --git a/sys-libs/nss_wrapper/nss_wrapper-1.1.5.ebuild b/sys-libs/nss_wrapper/nss_wrapper-1.1.5.ebuild deleted file mode 100644 index f1c972d5283a..000000000000 --- a/sys-libs/nss_wrapper/nss_wrapper-1.1.5.ebuild +++ /dev/null @@ -1,18 +0,0 @@ -# Copyright 1999-2019 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 - -inherit cmake-multilib - -DESCRIPTION="A wrapper for the user, group and hosts NSS API" -HOMEPAGE="https://cwrap.org/nss_wrapper.html" -SRC_URI="https://ftp.samba.org/pub/cwrap/${P}.tar.gz" -LICENSE="BSD" -SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86" -IUSE="test" -RESTRICT="!test? ( test )" - -DEPEND="" -RDEPEND="${DEPEND}" diff --git a/sys-libs/nss_wrapper/nss_wrapper-1.1.6.ebuild b/sys-libs/nss_wrapper/nss_wrapper-1.1.6.ebuild index f1c972d5283a..053b08d1f4a7 100644 --- a/sys-libs/nss_wrapper/nss_wrapper-1.1.6.ebuild +++ b/sys-libs/nss_wrapper/nss_wrapper-1.1.6.ebuild @@ -1,18 +1,15 @@ -# Copyright 1999-2019 Gentoo Authors +# Copyright 1999-2020 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=6 +EAPI=7 +CMAKE_ECLASS=cmake inherit cmake-multilib -DESCRIPTION="A wrapper for the user, group and hosts NSS API" +DESCRIPTION="Wrapper for the user, group and hosts NSS API" HOMEPAGE="https://cwrap.org/nss_wrapper.html" SRC_URI="https://ftp.samba.org/pub/cwrap/${P}.tar.gz" + LICENSE="BSD" SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86" -IUSE="test" -RESTRICT="!test? ( test )" - -DEPEND="" -RDEPEND="${DEPEND}" +KEYWORDS="~alpha amd64 arm ~arm64 ~hppa ~ia64 ppc ppc64 sparc x86" diff --git a/sys-libs/pam/Manifest b/sys-libs/pam/Manifest index aab2a63fc666..4214ac13f2c1 100644 --- a/sys-libs/pam/Manifest +++ b/sys-libs/pam/Manifest @@ -1,6 +1,6 @@ AUX pam-remove-browsers.patch 985 BLAKE2B 3e258e00f7287436b1b6a97323764612a3098dc4effb12e62cd8d55151ace2b97b6ea7b67ae33613aa6b3cca318bfbfc310b48a99b0c81e1beaa9d16188e69eb SHA512 42d89d35fc754e51112040a5468067ee9f6a3a411e538cb634187e28975040c0b7ef48fab166ec6a20a849f6ed9d74a069355269cf708d9985ded6b87fe13ed1 DIST pam-1.3.1.tar.gz 749997 BLAKE2B 3b44c41daaa5810c53e3e2baeac1ab58463768fde433f874b9bd09c7c28cfd55e0f227c9a0c318e66444a3adb23c112a2db32d5c7211b07c84c2d4600a47ca5c SHA512 0c5019493b2ac42180ee9c4974a51329a2395a44f5f892c1ca567ec9b43cc3a9bce0212861d4dfb82eb236c5eaa682b27189ce672ed6cafa37d8801d059a944d DIST pam-4dd9b97b762cc73816cb867d49c9d0d0b91d642c.tar.gz 765455 BLAKE2B 8a8543b51c9fa877cd48d483d9af489df00376f92f26fea648d38a0ce3168702888a662e5d3c7423cce8a5d56896e84e4c1829e56d08fca8c3ab878b20945a7d SHA512 bdb236a47a5810449fb96546ff89d70dec185a215b0d047178a12e40945fde4ffdb801dbbd87ff95eead1bb7acb4748333a2d3383881d5de0dbd89ec5ceddd3f -EBUILD pam-1.3.1-r1.ebuild 3385 BLAKE2B 15959f852ed78b8303381ec455064607a35fdcaf89d28768c85ad97b4808fc610b4d18bbb76c878cfd9c5d4d58018d0d43d8ef55e764cc9c0281979910441343 SHA512 fb9bac3612f0fe87a3287c54ddf518ac494e8f1f2ce345181ded5da94aba5c0139a25df297b8292b6614e95892581d275ac26371be45d3a8df68b5254727c943 -EBUILD pam-1.3.1_p20200128.ebuild 3506 BLAKE2B e357a629a1a2e1722e30e63a7cbc23a9e1c4009654572a1319d531225811dc48dbaaa5a0c5c140dcc72935439712c4866a6cd88741547e779438528211b69c9d SHA512 8c36854d4ac01af1bb8544fdb9a32dbea8e44c0ce672e1e1a930f0834b34dde470a31ce582a8f55756f6c11fa007147915afa308271a5a1ef3afc4eae455ea4c +EBUILD pam-1.3.1-r2.ebuild 3341 BLAKE2B e277625f69b0f4c6df5e715ecf25115103df1d80abaf9e4dac7a0102dff28a453e5eae0ec0073731c630ade867ac4b56411c800a0661167398c43249dd883361 SHA512 995b0d13c0262ed74a556ac228f1657f1c08b32892256eacb088fe801f6a871b74a9c06bb63a840626a48b1a8412a0100626ffda24397f9fbcb7824d22de8929 +EBUILD pam-1.3.1_p20200128-r1.ebuild 3551 BLAKE2B aa6581a5d90745c4a195e2516c73cc9ef25b768bbb7cc3ff4dcb2e7a86276916a44276aa002fdc7f96524a63484d3feb5370bcaeb5823c399e5e26dffff94200 SHA512 5ee4e9449e15fd5d113299cee9bd19210e837f4a72e6c4b01c7bcf97d85ac3415813d2ded97711b11df1b437e7740dabc91d3cb5a0df74b586de95eb3716a89b MISC metadata.xml 1086 BLAKE2B 39d2291ff9553394ce684a87a49a2c41b18689102d8cf352c905ce2ede28508501aa41a4a473d287c461b77e5732aa4ed0eaac94db94c851ed9491bffdac8acf SHA512 6743a2021ef7d7ab9fc547b270c17b205747a498e0e2bafc07ad171d52657a4aa3f84803c2b4e5c088b73b1732d600b5b2189c958d4b15fba8e081714790fc72 diff --git a/sys-libs/pam/pam-1.3.1-r1.ebuild b/sys-libs/pam/pam-1.3.1-r1.ebuild deleted file mode 100644 index f79b0b171ba5..000000000000 --- a/sys-libs/pam/pam-1.3.1-r1.ebuild +++ /dev/null @@ -1,114 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -inherit autotools db-use fcaps multilib-minimal toolchain-funcs usr-ldscript - -DESCRIPTION="Linux-PAM (Pluggable Authentication Modules)" -HOMEPAGE="https://github.com/linux-pam/linux-pam" -SRC_URI="https://github.com/linux-pam/linux-pam/archive/v${PV}.tar.gz -> ${P}.tar.gz" - -LICENSE="|| ( BSD GPL-2 )" -SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 ~riscv s390 sh sparc x86 ~amd64-linux ~x86-linux" -IUSE="audit berkdb +cracklib debug nis nls +pie selinux static-libs" - -BDEPEND="app-text/docbook-xml-dtd:4.1.2 - app-text/docbook-xml-dtd:4.3 - app-text/docbook-xml-dtd:4.4 - app-text/docbook-xml-dtd:4.5 - dev-libs/libxslt - sys-devel/flex - virtual/pkgconfig[${MULTILIB_USEDEP}] - nls? ( sys-devel/gettext )" - -DEPEND=" - virtual/libcrypt:=[${MULTILIB_USEDEP}] - audit? ( >=sys-process/audit-2.2.2[${MULTILIB_USEDEP}] ) - berkdb? ( >=sys-libs/db-4.8.30-r1:=[${MULTILIB_USEDEP}] ) - cracklib? ( >=sys-libs/cracklib-2.9.1-r1[${MULTILIB_USEDEP}] ) - selinux? ( >=sys-libs/libselinux-2.2.2-r4[${MULTILIB_USEDEP}] ) - nis? ( >=net-libs/libtirpc-0.2.4-r2[${MULTILIB_USEDEP}] ) - nls? ( >=virtual/libintl-0-r1[${MULTILIB_USEDEP}] )" - -RDEPEND="${DEPEND}" - -PDEPEND="sys-auth/pambase" - -S="${WORKDIR}/linux-${P}" - -src_prepare() { - default - eapply "${FILESDIR}/${PN}-remove-browsers.patch" - touch ChangeLog || die - eautoreconf -} - -multilib_src_configure() { - # Do not let user's BROWSER setting mess us up. #549684 - unset BROWSER - - # Disable automatic detection of libxcrypt; we _don't_ want the - # user to link libxcrypt in by default, since we won't track the - # dependency and allow to break PAM this way. - - export ac_cv_header_xcrypt_h=no - - local myconf=( - --with-db-uniquename=-$(db_findver sys-libs/db) - --enable-securedir="${EPREFIX}"/$(get_libdir)/security - --libdir=/usr/$(get_libdir) - --disable-prelude - $(use_enable audit) - $(use_enable berkdb db) - $(use_enable cracklib) - $(use_enable debug) - $(use_enable nis) - $(use_enable nls) - $(use_enable pie) - $(use_enable selinux) - $(use_enable static-libs static) - --enable-isadir='.' #464016 - ) - ECONF_SOURCE="${S}" econf ${myconf[@]} -} - -multilib_src_compile() { - emake sepermitlockdir="${EPREFIX}/run/sepermit" -} - -multilib_src_install() { - emake DESTDIR="${D}" install \ - sepermitlockdir="${EPREFIX}/run/sepermit" - - gen_usr_ldscript -a pam pam_misc pamc -} - -multilib_src_install_all() { - find "${ED}" -type f -name '*.la' -delete || die - - if use selinux; then - dodir /usr/lib/tmpfiles.d - cat - > "${D}"/usr/lib/tmpfiles.d/${CATEGORY}:${PN}:${SLOT}.conf < "${D}"/usr/lib/tmpfiles.d/${CATEGORY}:${PN}:${SLOT}.conf < "${D}"/usr/lib/tmpfiles.d/${CATEGORY}:${PN}:${SLOT}.conf < "${D}"/usr/lib/tmpfiles.d/${CATEGORY}:${PN}:${SLOT}.conf < "${c}.c" - if $(tc-getCC) ${CPPFLAGS} ${CFLAGS} ${LDFLAGS} "${c}.c" -o "${c}" -lintl 2>/dev/null ; then - LDLIBS+=" -lintl" - fi - fi -} - -_emake() { - emake \ - REDO=$(usex leaps-timezone posix_right posix_only) \ - TZDATA_TEXT= \ - TOPDIR="${EPREFIX}" \ - ZICDIR='$(TOPDIR)/usr/bin' \ - "$@" -} - -src_compile() { - _emake \ - AR="$(tc-getAR)" \ - cc="$(tc-getCC)" \ - RANLIB="$(tc-getRANLIB)" \ - CFLAGS="${CFLAGS} -std=gnu99 ${CPPFLAGS}" \ - LDFLAGS="${LDFLAGS}" \ - LDLIBS="${LDLIBS}" - if tc-is-cross-compiler ; then - _emake -C "${S}"-native \ - AR="$(tc-getBUILD_AR)" \ - cc="$(tc-getBUILD_CC)" \ - RANLIB="$(tc-getBUILD_RANLIB)" \ - CFLAGS="${BUILD_CFLAGS} ${BUILD_CPPFLAGS}" \ - LDFLAGS="${BUILD_LDFLAGS}" \ - LDLIBS="${LDLIBS}" \ - zic - fi -} - -src_test() { - # VALIDATE_ENV is used for extended/web based tests. Punt on them. - emake check VALIDATE_ENV=true -} - -src_install() { - local zic="" - tc-is-cross-compiler && zic="zic=${S}-native/zic" - _emake install ${zic} DESTDIR="${D}" LIBDIR="/nukeit" - rm -rf "${D}/nukeit" "${ED}/etc" || die - - insinto /usr/share/zoneinfo - doins "${S}"/leap-seconds.list - - # Delete man pages installed by man-pages package. - rm "${ED}"/usr/share/man/man5/tzfile.5* "${ED}"/usr/share/man/man8/{tzselect,zdump,zic}.8 || die - dodoc CONTRIBUTING README NEWS *.html -} - -get_TIMEZONE() { - local tz src="${EROOT}/etc/timezone" - if [[ -e ${src} ]] ; then - tz=$(sed -e 's:#.*::' -e 's:[[:space:]]*::g' -e '/^$/d' "${src}") - else - tz="FOOKABLOIE" - fi - [[ -z ${tz} ]] && return 1 || echo "${tz}" -} - -pkg_preinst() { - local tz=$(get_TIMEZONE) - if [[ ${tz} == right/* || ${tz} == posix/* ]] ; then - eerror "The right & posix subdirs are no longer installed as subdirs -- they have been" - eerror "relocated to match upstream paths as sibling paths. Further, posix/xxx is the" - eerror "same as xxx, so you should simply drop the posix/ prefix. You also should not" - eerror "be using right/xxx for the system timezone as it breaks programs." - die "Please fix your timezone setting" - fi - - # Trim the symlink by hand to avoid portage's automatic protection checks. - rm -f "${EROOT}"/usr/share/zoneinfo/posix - - if has_version "<=${CATEGORY}/${PN}-2015c" ; then - elog "Support for accessing posix/ and right/ directly has been dropped to match" - elog "upstream. There is no need to set TZ=posix/xxx as it is the same as TZ=xxx." - elog "For TZ=right/, you can use TZ=../zoneinfo-leaps/xxx instead. See this post" - elog "for details: https://mm.icann.org/pipermail/tz/2015-February/022024.html" - fi -} - -configure_tz_data() { - # make sure the /etc/localtime file does not get stale #127899 - local tz src="${EROOT}/etc/timezone" etc_lt="${EROOT}/etc/localtime" - - # If it's a symlink, assume the user knows what they're doing and - # they're managing it themselves. #511474 - if [[ -L "${etc_lt}" ]] ; then - einfo "Assuming your ${etc_lt} symlink is what you want; skipping update." - return 0 - fi - - if ! tz=$(get_TIMEZONE) ; then - einfo "Assuming your empty ${etc_lt} file is what you want; skipping update." - return 0 - fi - if [[ "${tz}" == "FOOKABLOIE" ]] ; then - elog "You do not have TIMEZONE set in ${src}." - - if [[ ! -e "${etc_lt}" ]] ; then - cp -f "${EROOT}"/usr/share/zoneinfo/Factory "${etc_lt}" - elog "Setting ${etc_lt} to Factory." - else - elog "Skipping auto-update of ${etc_lt}." - fi - return 0 - fi - - if [[ ! -e "${EROOT}/usr/share/zoneinfo/${tz}" ]] ; then - elog "You have an invalid TIMEZONE setting in ${src}" - elog "Your ${etc_lt} has been reset to Factory; enjoy!" - tz="Factory" - fi - einfo "Updating ${etc_lt} with ${EROOT}/usr/share/zoneinfo/${tz}" - cp -f "${EROOT}/usr/share/zoneinfo/${tz}" "${etc_lt}" -} - -pkg_config() { - configure_tz_data -} - -pkg_postinst() { - configure_tz_data -} diff --git a/sys-libs/timezone-data/timezone-data-2019c.ebuild b/sys-libs/timezone-data/timezone-data-2019c.ebuild index d8bcf87b0018..f4d210567795 100644 --- a/sys-libs/timezone-data/timezone-data-2019c.ebuild +++ b/sys-libs/timezone-data/timezone-data-2019c.ebuild @@ -14,7 +14,7 @@ SRC_URI="https://www.iana.org/time-zones/repository/releases/tzdata${data_ver}.t LICENSE="BSD public-domain" SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 ~riscv s390 sh sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~x64-solaris" +KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 m68k ~mips ppc ppc64 ~riscv s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~x64-solaris" IUSE="nls leaps-timezone elibc_FreeBSD" DEPEND="nls? ( virtual/libintl )" diff --git a/sys-libs/uid_wrapper/Manifest b/sys-libs/uid_wrapper/Manifest index 6f00d2e1f7af..dafc3bcbfc50 100644 --- a/sys-libs/uid_wrapper/Manifest +++ b/sys-libs/uid_wrapper/Manifest @@ -1,8 +1,5 @@ -DIST uid_wrapper-1.2.1-alpha_fix.patch 932 BLAKE2B 14cb3215472037b528a20da8d72cba68e2913c113fa827b0e66631838daf68524588430499e01214f72847c8ab0350833cf02a33bd03ae42f5f95d398b793780 SHA512 0daaadf84a48f5e450fac833e5b0e76860b82706a343224d10a8ff24d0607d9d81f628f09619aaae8ea918ac48a8c621e457863f9d52b46a1950493869468854 -DIST uid_wrapper-1.2.1.tar.gz 311002 BLAKE2B 30430c21df36095d8c71a7fcdef3cd71585d7c152acbab2c58c6876de5d4b6c0a7053c4d404c4d949c565b18218097023d87631573355e2e6b555dbc0322acd3 SHA512 563577bf3f4ca2989040635301faccc198da34a30b6998370d376f8df8c689953d2f10474efc926cb06d23e565cee32b4f59fce87546c3620d55cd9f7e0cf543 -DIST uid_wrapper-1.2.4.tar.gz 311811 BLAKE2B d7c309e020cfb2a1024fa74fc71cb598827ed55547613d7e0a7e60b13ca1c1cf9c2b44e6fc5f6f5c62d0df2f8b0090c62a94f5724cc997d324abd8d32c74fdaf SHA512 212b35f7d0655611c5bb7927e4e29049ce79a4e677805fa7154142dff559ddc6dd7117a4c94314b69e27c954ff03ef49470ed69e2405cf46b5958643c6021d3b DIST uid_wrapper-1.2.7.tar.gz 47580 BLAKE2B f33a2a29a3e61315ae48317b759898cabcfcc50f72a7fac9388b2b5791a76f66e88a6339ca45c319df102354d592d6a26c8046193b7c4d07c4e4ce3f4031672e SHA512 ed906638ded4fbd981212f38de66112e65514b618bda6b1bda85a915c00691d471859df7c8dc7915b546e5c8e107e2e07e6b3a841fcebeedc8cf4b18e5c16f1a -EBUILD uid_wrapper-1.2.1.ebuild 1132 BLAKE2B 9b46ebfa67335ac97cb631fab3c8adba64af1f1c7ae082c6bbee19f086a56dae807311b69b3f5a151e9a05a76e98c68b37ba68ece9b6d0a8a609c402034139a9 SHA512 73fa532162e4a9bedd64aaaf1ba12772d915d35d066a8170759504087e536f3c4e97bcc18cde49f6fdb4ea45f96aed2a515494c61334db0d14937ae486307238 -EBUILD uid_wrapper-1.2.4.ebuild 507 BLAKE2B 5177ac0edd8a4095f36a68045fc4ed54e84a508051efc18bfe9b0ba03702e2a3d0e70b5b005cd3a406cbfdaeda91146e7c5ea26e883dee9c0412eae3a33dc2c7 SHA512 818cc73b380bb0bcec3ab982e67fbfa669c36e16724e0a37c885dcc6df32fb35179bfc249dcda729d5d5d6736825a6481057460e348bd091097ac7df4851a277 -EBUILD uid_wrapper-1.2.7.ebuild 507 BLAKE2B c7985fa908ddb0b0aae3740b8a6ae26070814e29913a21620c7c82ed29eea6368c490796a5610b0d8b4aee598f1bc8754b9a208ba998ef0428ae02f75834c3b5 SHA512 71286c0dda30951876b0fb3fbb0400c0d6006a3c7535b8a3b1e9e413ff1854971182bb8345b7e5ac29978efd85a8eb18a0309e74ebcf50708277d4a7fedfd9b6 -MISC metadata.xml 360 BLAKE2B 3c45284477381a60df338afbc4293cc20c47223eca1b4669b3f310ccb80cb0b81d534d9fbfdac8357b43507340e5f61e959c03e39e5a3deba0430e4f15aa740c SHA512 6cfeb9ed18b5c3b6c6e6875311bad627e9baffdf7b0846d70c8e0e36ce053ce849f867e963f7504292bbeb4b133c828e75a2d877c34fe7858ab3b9403ce533d2 +DIST uid_wrapper-1.2.8.tar.gz 47864 BLAKE2B d165954b4418ee23c7564d809a3c2189fc43c91822c8e4a73bdf6ea8e1621156bf0a29097b07a4d8b31ea1d10af35c3be367c4ca8f1e13db1b430f297b47b6ea SHA512 536f353f35e84ffd350a3cd5a96ff30e7b1fd4ba455dbe34fd232ed1a14b061351110c7e0cb4376a27cbde1eda789ef93e635ffa2e9948cadc41c2f1fdcfc3b5 +EBUILD uid_wrapper-1.2.7.ebuild 449 BLAKE2B 41406db439ab20647babc70fe1b6ab505e6515c3a216526fc60f089f2553cae41f2c72fe9d5ab121cbb07a06c3f9ff1398d47e9eeed9eadb50e3abef6223c62f SHA512 e6c4251c25382b837d7c5cd2c6a0e4bbbbbe436cfa1dde593507b4f64644aec581a517a6c7e5dc82e3db3c4d517c25a2f6c4472933883bbca650537b2b1b4429 +EBUILD uid_wrapper-1.2.8.ebuild 455 BLAKE2B 63f95c7fab8ef50d23a9de01778bf03f1b1f3b4692e7656333cebf65f8d81ffc18e4e6450ff96e5a10a6da9ded1dfa88647e65bde54a333ca420b92b90c51d91 SHA512 362aa0ee1442b09bdc4c81403acb19d50c4f8053d63bed1d7a00e7ff4396c950330271f1d11c9807cb6a4b4448930d89e1ddc97ce9bc038d37fb3fa0c96bb595 +MISC metadata.xml 249 BLAKE2B 274f77317bba157c3ad4c3e9827ce5ce934c855b8bd41e603df69f1343c296abf7faec755a56f5f8d0e76f43058156e95480a386494265385604401e70484acf SHA512 940515e5f54189b5ba3c1118ea45f679182c9075091ade1959b197a6dc5fba894cd52cd0289e00a4a139b1cd3c6563771a1e21d2baa460a25892b0fa20e819a8 diff --git a/sys-libs/uid_wrapper/metadata.xml b/sys-libs/uid_wrapper/metadata.xml index f05d1f266834..48f6ca46f45a 100644 --- a/sys-libs/uid_wrapper/metadata.xml +++ b/sys-libs/uid_wrapper/metadata.xml @@ -1,12 +1,8 @@ - - polynomial-c@gentoo.org - Lars Wendler - - + samba@gentoo.org - Samba + Samba Team diff --git a/sys-libs/uid_wrapper/uid_wrapper-1.2.1.ebuild b/sys-libs/uid_wrapper/uid_wrapper-1.2.1.ebuild deleted file mode 100644 index fa04f8ba2f29..000000000000 --- a/sys-libs/uid_wrapper/uid_wrapper-1.2.1.ebuild +++ /dev/null @@ -1,32 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 - -inherit cmake-multilib - -DESCRIPTION="A wrapper to fake privilege separation" -HOMEPAGE="https://cwrap.org/uid_wrapper.html" -SRC_URI="https://www.samba.org/ftp/pub/cwrap/${P}.tar.gz - https://ftp.samba.org/pub/cwrap/${P}.tar.gz" -LICENSE="GPL-3" -SLOT="0" -KEYWORDS="~alpha amd64 arm ~arm64 hppa ia64 ppc ppc64 sparc x86" -IUSE="test" -RESTRICT="!test? ( test )" - -DEPEND="" -RDEPEND="${DEPEND}" - -# https://bugs.gentoo.org/578668 -SRC_URI+=" https://git.samba.org/?p=uid_wrapper.git;a=blobdiff_plain;f=src/uid_wrapper.c;h=ded857a1b18f4744bac324b0ccaee3b2d2d146fa;hp=34889e0c3f955ad04bda3859b734a86763dee529;hb=cf2b35344d4de927f158a1e6d5b6bbc1be2ffd96;hpb=a00a6b8b300b7baa867191e2bc016b835cf8d1b3 -> ${PN}-1.2.1-alpha_fix.patch" -PATCHES=( - "${DISTDIR}/${P}-alpha_fix.patch" -) - -# Work around a problem with >=dev-util/cmake-3.3.0 (bug #558340) -# Because of this we cannot use cmake-multilib_src_configure() here. -multilib_src_configure() { - local mycmakeargs=( -DCMAKE_LIBRARY_PATH=/usr/$(get_libdir) ) - cmake-utils_src_configure -} diff --git a/sys-libs/uid_wrapper/uid_wrapper-1.2.4.ebuild b/sys-libs/uid_wrapper/uid_wrapper-1.2.4.ebuild deleted file mode 100644 index 1fe72649c615..000000000000 --- a/sys-libs/uid_wrapper/uid_wrapper-1.2.4.ebuild +++ /dev/null @@ -1,19 +0,0 @@ -# Copyright 1999-2019 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 - -inherit cmake-multilib - -DESCRIPTION="A wrapper to fake privilege separation" -HOMEPAGE="https://cwrap.org/uid_wrapper.html" -SRC_URI="https://www.samba.org/ftp/pub/cwrap/${P}.tar.gz - https://ftp.samba.org/pub/cwrap/${P}.tar.gz" -LICENSE="GPL-3" -SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86" -IUSE="test" -RESTRICT="!test? ( test )" - -DEPEND="" -RDEPEND="${DEPEND}" diff --git a/sys-libs/uid_wrapper/uid_wrapper-1.2.7.ebuild b/sys-libs/uid_wrapper/uid_wrapper-1.2.7.ebuild index cfc62eddb7f6..885c1589ba76 100644 --- a/sys-libs/uid_wrapper/uid_wrapper-1.2.7.ebuild +++ b/sys-libs/uid_wrapper/uid_wrapper-1.2.7.ebuild @@ -1,19 +1,16 @@ -# Copyright 1999-2019 Gentoo Authors +# Copyright 1999-2020 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 +CMAKE_ECLASS=cmake inherit cmake-multilib -DESCRIPTION="A wrapper to fake privilege separation" +DESCRIPTION="Wrapper to fake privilege separation" HOMEPAGE="https://cwrap.org/uid_wrapper.html" SRC_URI="https://www.samba.org/ftp/pub/cwrap/${P}.tar.gz https://ftp.samba.org/pub/cwrap/${P}.tar.gz" + LICENSE="GPL-3" SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86" -IUSE="test" -RESTRICT="!test? ( test )" - -DEPEND="" -RDEPEND="${DEPEND}" +KEYWORDS="~alpha amd64 arm ~arm64 ~hppa ~ia64 ppc ppc64 sparc x86" diff --git a/sys-libs/uid_wrapper/uid_wrapper-1.2.8.ebuild b/sys-libs/uid_wrapper/uid_wrapper-1.2.8.ebuild new file mode 100644 index 000000000000..ad2fbf4c53aa --- /dev/null +++ b/sys-libs/uid_wrapper/uid_wrapper-1.2.8.ebuild @@ -0,0 +1,16 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +CMAKE_ECLASS=cmake +inherit cmake-multilib + +DESCRIPTION="Wrapper to fake privilege separation" +HOMEPAGE="https://cwrap.org/uid_wrapper.html" +SRC_URI="https://www.samba.org/ftp/pub/cwrap/${P}.tar.gz + https://ftp.samba.org/pub/cwrap/${P}.tar.gz" + +LICENSE="GPL-3" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86" diff --git a/sys-libs/zlib/Manifest b/sys-libs/zlib/Manifest index 0fd3bdbf5470..9b0ddb2859ef 100644 --- a/sys-libs/zlib/Manifest +++ b/sys-libs/zlib/Manifest @@ -1,5 +1,5 @@ AUX zlib-1.2.11-fix-deflateParams-usage.patch 2937 BLAKE2B 42fcb91b99b004921dce12b4e71c12c62e80d50243a1cec97522dbaa1cf5fb09cf701e9f988bddd0470c3dafe743d42e60b9ac6903afb2185859d62b1fdf78bc SHA512 9b949d894be2bbb60d687820e79d7a02e733e8426e6602482f3a3902fca3571bbfba38ddd84a88f5a093fdb25ac90e4076905d19b86ab70ebce6e250fd118286 AUX zlib-1.2.11-minizip-drop-crypt-header.patch 997 BLAKE2B a964dfb26d05045507cb2ebf1154b890782d9952288627dd5093eeeaed9265a6041922e9fef378333ad3b9ac2333d692b06db1d6425df25d6062b9fc42ec8c50 SHA512 158c4b711e8afc248cbd55f2057dede18540ad35ec1a47d0cfb0fe9bf10b1507bb1b4525badcc0a8b6505062d838ee4fb2d4ebfbf9c9d1694336a704bc0b690e DIST zlib-1.2.11.tar.gz 607698 BLAKE2B 6bfc4bca5dcadba8a0d4121a2b3ed0bfe440c261003521862c8e6381f1a6f0a72d3fc037351d30afd7ef321e8e8d2ec817c046ac749f2ca0c97fbdc2f7e840b7 SHA512 73fd3fff4adeccd4894084c15ddac89890cd10ef105dd5e1835e1e9bbb6a49ff229713bd197d203edfa17c2727700fce65a2a235f07568212d820dca88b528ae -EBUILD zlib-1.2.11-r2.ebuild 3102 BLAKE2B 1cd802509c51474e667dfb45f8b85339075dbb24f83bbf9185e081c72aa1eff6e58d818c41862cad8fd6c8a007c363f4655dfaa5b51f84275d9d6333f017ee41 SHA512 4c06e465ec714b647c5887af5233eff6aa94af7e9a60090b39edc5a80b5bb8eee44dccd96c010fcc91cfba0810ed468bdb8ecfc71708ad39ea49f4e66076faf1 +EBUILD zlib-1.2.11-r2.ebuild 3100 BLAKE2B 140c847a7d29f548c1e3a9dddf996b1f38abacbfe2fc2164bef6eafb330e24a513ac811113502682166f0a74068b948071d564a669675932535894bc54f9ce78 SHA512 9c15e71fcbf91deeef10f81bca6666cca82551190de1e496f541eb97639d2befdc863a39d84cb2ca78f5a0b883c02e5de4b7d7b4f9ec16c6c460b40589458821 MISC metadata.xml 432 BLAKE2B 80b2aa4dbc687fa23b3e64f12af789d2b1f308ccba611de152efde3008a5b6f66ee56121c2c4846a482e426c78e5f921ee7cf9b196c28504ee0de420725a6239 SHA512 947d4b2035ab49c42f6141f14553f1e8f4796b4ddc24c6a4f071ac2300eb120648dd03eef49773295d3e3f30cd9d3cbb391bde798dacf1187b46ff75abd59420 diff --git a/sys-libs/zlib/zlib-1.2.11-r2.ebuild b/sys-libs/zlib/zlib-1.2.11-r2.ebuild index d5577f4739bb..8d4c0f48f9d1 100644 --- a/sys-libs/zlib/zlib-1.2.11-r2.ebuild +++ b/sys-libs/zlib/zlib-1.2.11-r2.ebuild @@ -14,7 +14,7 @@ SRC_URI="https://zlib.net/${P}.tar.gz LICENSE="ZLIB" SLOT="0/1" # subslot = SONAME -KEYWORDS="~alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 ~riscv s390 sh sparc x86" +KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 m68k ~mips ppc ppc64 ~riscv s390 sparc x86" IUSE="minizip static-libs" DEPEND="minizip? ( ${AUTOTOOLS_DEPEND} )" -- cgit v1.2.3