diff options
author | Luke Shumaker <LukeShu@sbcglobal.net> | 2013-01-08 14:22:36 -0500 |
---|---|---|
committer | Luke Shumaker <LukeShu@sbcglobal.net> | 2013-01-08 14:22:36 -0500 |
commit | e00a747bc60604c09fed0d28dc12e49378c8f2a2 (patch) | |
tree | 5f127d59ba00dcc2799a8b8883a1dc37503a53d4 /libre/dpkg/PKGBUILD | |
parent | 2d862ac364c034af400863e02f791b9e99be445e (diff) | |
download | abslibre-e00a747bc60604c09fed0d28dc12e49378c8f2a2.tar.gz abslibre-e00a747bc60604c09fed0d28dc12e49378c8f2a2.tar.bz2 abslibre-e00a747bc60604c09fed0d28dc12e49378c8f2a2.zip |
update, improve libre/dpkg
I finally split the package, as had always been TODO.
Slightly more interestingly, I choose to NOT package some of the resulting
packages, but only the ones that are appropriate to have on a pacman-based
system.
Diffstat (limited to 'libre/dpkg/PKGBUILD')
-rw-r--r-- | libre/dpkg/PKGBUILD | 142 |
1 files changed, 109 insertions, 33 deletions
diff --git a/libre/dpkg/PKGBUILD b/libre/dpkg/PKGBUILD index 175b80610..aa82d36e6 100644 --- a/libre/dpkg/PKGBUILD +++ b/libre/dpkg/PKGBUILD @@ -1,49 +1,125 @@ +# Maintainer: Luke Shumaker <lukeshu@sbcglobal.net> # Maintainer (AUR): Jochen Schalanda <jochen+aur@schalanda.name> +# Contributor (AUR): Pierre Carrier <pierre@spotify.com> # Contributor (AUR): Thomas Dziedzic <gostrc@gmail> # Contributor (AUR): Chris Giles <Chris.G.27@gmail.com> # Contributor (AUR): seblu <seblu+arch@seblu.net> # Contributor (AUR): squiddo <squiddo@intheocean.net> -# Contributor (Parabola): Luke Shumaker <lukeshu@sbcglobal.net> - -_debrepo=http://ftp.debian.org/debian/pool/main/ # Debian Sid -debfile() { echo -n "$_debrepo"; echo -n "$@"|sed -r 's@(.).*@\1/&@'; } - -# TODO: split into (dpkg dpkg-devtools dselect dpkg-perl) -pkgname=dpkg -pkgver=1.16.2 -pkgrel=1 -pkgdesc="The Debian Package Manager and utilities. Don't use it instead of 'pacman'." -arch=('i686' 'x86_64') -url="http://packages.debian.org/${pkgname}" + +pkgbase=dpkg +#pkgname=(dpkg dpkg-devtools dselect libdpkg perl-dpkg) +pkgname=(dpkg-devtools perl-dpkg) +pkgdesc="Debian Package manager and utilities" license=('GPL2') -depends=('bzip2' 'perl-timedate') -makedepends=('gcc' 'make' 'patch') -optdepends=('fakeroot') -replaces=(dpkg-ubuntu) -conflits=(dpkg-ubuntu) -source=(`debfile ${pkgname}`/${pkgname}_${pkgver}.tar.bz2 - dpkg-rsyncable.patch dpkg-arch.patch) + +pkgver=1.16.9 +url="http://packages.debian.org/source/sid/dpkg" +_debrepo=http://ftp.debian.org/debian/pool/main # Debian Sid + +pkgrel=1.1 +debfile() { echo "${_debrepo}/${1:0:1}/${1}/${1}_${2}"; } +arch=('i686' 'x86_64' 'mips64el') +depends=('bzip2' 'xz' 'zlib' 'ncurses') +checkdepends=('perl-test-pod') +makedepends=('perl-io-string' 'perl-timedate') +source=("$(debfile ${pkgbase} ${pkgver}).tar.xz" + dpkg-gzip-rsyncable.patch) + +###################################################################### + +# This is really gross. +# It uses the debian control files to help us split the package. +# Shame on the dpkg developers for not putting that logic into the build system. +_destdir="$srcdir/$pkgbase-$pkgver/debian/pkg-makepkg" +_debhelper_install() { + local debname=$1 + cd "$_destdir" + + # main files + sed -e '/^\s*$/d' -e 's|usr/share/perl5/|&vendor_perl/|g' ../$debname.install \ + | while read pattern dest; do + if [[ -z $dest ]]; then + for file in $pattern; do + install -d "$pkgdir/${file%/*}" + cp -a "$file" "$pkgdir/$file" || true + done + else + install -d "$pkgdir/$dest/" + cp -a "$pattern" "$pkgdir/$dest/" || true + fi + done + + # manpages + sed -e 's|^debian/tmp/||' -e '/^\s*$/d' ../$debname.manpages 2>/dev/null \ + | while read pattern; do + for file in $pattern; do + install -d "$pkgdir/${file%/*}" + cp -a "$file" "$pkgdir/$file" || true + done + done + + # other documentation + install -d "$pkgdir/usr/share/doc/$pkgname/" + sed '/^\s*$/d' ../$debname.docs 2>/dev/null \ + | while read file; do + gzip \ + < "$srcdir/$pkgbase-$pkgver/$file" \ + > "$pkgdir/usr/share/doc/$pkgname/${file##*/}.gz" + done + + # symlinks + sed '/^\s*$/d' ../$debname.links 2>/dev/null \ + | while read file link; do + ln -s "/$file" "$pkgdir/$link" + done +} + +###################################################################### build() { - cd "${srcdir}/${pkgname}-${pkgver}" + cd "${srcdir}/${pkgbase}-${pkgver}" - patch -p1 -i "${srcdir}/dpkg-rsyncable.patch" - patch -p1 -i "${srcdir}/dpkg-arch.patch" # Architecture detection + patch -p0 -i "${srcdir}/dpkg-gzip-rsyncable.patch" - ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \ - --without-start-stop-daemon + ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --with-zlib --with-bz2 --with-liblzma make + make DESTDIR="$_destdir" install +} + +check() { + cd "${srcdir}/${pkgbase}-${pkgver}" + make check +} + +package_dpkg() { + pkgdesc="Debian Package manager" + provides+=(start-stop-daemon) + conflicts+=(start-stop-daemon) + _debhelper_install dpkg } -package() { - cd "${srcdir}/${pkgname}-${pkgver}" - make DESTDIR="${pkgdir}" install +package_dpkg-devtools() { + pkgdesc="Debian Package development tools" + arch=(any) + depends+=(perl-dpkg) + _debhelper_install dpkg-dev +} + +package_dselect() { + pkgdesc="Debian Package manager high-level interface" + _debhelper_install dselect +} + +package_libdpkg() { + pkgdesc="Debian Package manager library (static)" + _debhelper_install libdpkg-dev +} - # Variables - install -d "${pkgdir}/var/${pkgname}/updates/" - touch "${pkgdir}/var/lib/${pkgname}/{status,available}" +package_perl-dpkg() { + pkgdesc="Debian Package perl modules" + arch=(any) + _debhelper_install libdpkg-perl } -md5sums=('629ba7ee2024e6a5c0ff807aa2db02f8' - 'bc36609f6191c5b509fae58c21966c95' - '24ab12e79989a2e7f31653fb1dd3cdf9') +md5sums=('4df9319b2d17e19cdb6fe94dacee44da' + '5ab63758999e9bb10f84bce79a0307b2') |