aboutsummaryrefslogtreecommitdiff
path: root/glibc-source/PKGBUILD
diff options
context:
space:
mode:
Diffstat (limited to 'glibc-source/PKGBUILD')
-rw-r--r--glibc-source/PKGBUILD95
1 files changed, 95 insertions, 0 deletions
diff --git a/glibc-source/PKGBUILD b/glibc-source/PKGBUILD
new file mode 100644
index 0000000..db7bb78
--- /dev/null
+++ b/glibc-source/PKGBUILD
@@ -0,0 +1,95 @@
+# Contributor: Wojtek Kosior <kwojtus@protonmail.com>
+
+# Loosely based on Hyperbola's glibc package
+
+pkgname=glibc-source
+pkgver=2.25
+_debrel=3
+pkgrel=1
+pkgdesc="Source of the GNU C Library"
+arch=('any')
+url="https://www.gnu.org/software/libc"
+license=('GPL-2' 'LGPL-2.1')
+depends=('quilt')
+source=(https://ftp.gnu.org/gnu/glibc/glibc-$pkgver.tar.bz2{,.sig}
+ #https://deb.debian.org/debian/pool/main/g/glibc/glibc_$pkgver-$_debrel.debian.tar.xz # got removed from there
+ https://launchpad.net/debian/+archive/primary/+sourcefiles/glibc/${pkgver}-${_debrel}/glibc_${pkgver}-${_debrel}.debian.tar.xz)
+validpgpkeys=('BC7C7372637EC10C57D7AA6579C43DFBF1CF2187') # Siddhesh Poyarekar <siddhesh@gotplt.org>
+sha512sums=('bb6c1b2deaf9c117ef5c19efdef587c5c9d4da9380066eaa85917b20cf1cb4df1406f612bb7f9482410275676916613d05a52a573eb14758eeea152e64fcdbe2'
+ 'SKIP'
+ '7815c2adfa3751d8c95f09158ee486021f24d7c943d0c4388009cc3519c997b4a9ec1600b6c525372ae7a1e01787fb4c8faf90e1e525aa4aa2c099796c577ff9')
+
+noextract=(glibc-$pkgver.tar.bz2)
+
+# Many patches fail to apply and there're also unneeded files (e.g. README)
+_undesired_patch_files=(debian/patches/all/local-remove-manual.diff
+ debian/patches/any/local-bindresvport_blacklist.diff
+ debian/patches/any/local-bits-sigstack.diff
+ debian/patches/any/local-bootstrap-headers.diff
+ debian/patches/any/local-disable-libnss-db.diff
+ debian/patches/any/local-dynamic-resolvconf.diff
+ debian/patches/any/local-ld-multiarch.diff
+ debian/patches/any/local-ldconfig-fsync.diff
+ debian/patches/any/local-ldconfig-ignore-ld.so.diff
+ debian/patches/any/local-ldconfig-multiarch.diff
+ debian/patches/any/local-ldconfig.diff
+ debian/patches/any/local-ldso-disable-hwcap.diff
+ debian/patches/any/local-libgcc-compat-abilists.diff
+ debian/patches/any/local-libgcc-compat-main.diff
+ debian/patches/any/local-libgcc-compat-ports.diff
+ debian/patches/any/local-libpic.diff
+ debian/patches/any/local-nss-upgrade.diff
+ debian/patches/any/local-rtlddir-cross.diff
+ debian/patches/any/local-tcsetaddr.diff
+ debian/patches/any/submitted-bits-fcntl_h-at.diff
+ debian/patches/any/submitted-intl-tstgettext.diff
+ debian/patches/any/submitted-ldconfig-c-collation.diff
+ debian/patches/any/unsubmitted-ldso-machine-mismatch.diff
+ debian/patches/README
+ debian/patches/series.hurd-i386
+ debian/patches/series.kfreebsd-i386
+ debian/patches/series.kfreebsd-amd64)
+
+prepare() {
+ cd "${srcdir}"
+
+ rm -v ${_undesired_patch_files[@]}
+ # some hurd and kfreebsd changes cause problems, remove whole directories
+ rm -rv debian/patches/{hurd-i386,kfreebsd}/
+
+ # Patches and 'series' file will go to /usr/src/glibc/debian_patches.
+ # We're not interested in rest of the stuff in debian/.
+
+ # here we create script to be used for unpacking glibc sources we'll install
+
+ echo "\
+#!/bin/sh
+
+mkdir -p \"\$1\" && cd \"\$1\"
+
+bsdtar -xf /usr/src/glibc/glibc-${pkgver}.tar.bz2
+
+export QUILT_PATCHES=/usr/src/glibc/debian_patches
+export QUILT_REFRESH_ARGS='-p ab --no-timestamps --no-index'
+export QUILT_DIFF_ARGS='--no-timestamps'
+
+cd glibc-${pkgver}
+
+quilt push -av
+rm -r .pc/" > prepare-glibc-source
+}
+
+package() {
+ install -m755 -d "${pkgdir}/usr/src/glibc/debian_patches"
+
+ # install patches
+ # I should have probably used install instead of cp, but don't know how to do that concisely. Don't want to bother reading find manual, either.
+ cp -R "${srcdir}/debian/patches/"* "${pkgdir}/usr/src/glibc/debian_patches/"
+
+ # install tarballs
+ install -m644 "${srcdir}/glibc-$pkgver.tar.bz2" "${pkgdir}/usr/src/glibc"
+
+ # install our script
+ install -m755 -d "${pkgdir}/usr/bin"
+ install -m755 "${srcdir}/prepare-glibc-source" "${pkgdir}/usr/bin"
+}