summaryrefslogtreecommitdiff
path: root/libre/dpkg/PKGBUILD
diff options
context:
space:
mode:
authorLuke Shumaker <LukeShu@sbcglobal.net>2013-01-08 14:22:36 -0500
committerLuke Shumaker <LukeShu@sbcglobal.net>2013-01-08 14:22:36 -0500
commite00a747bc60604c09fed0d28dc12e49378c8f2a2 (patch)
tree5f127d59ba00dcc2799a8b8883a1dc37503a53d4 /libre/dpkg/PKGBUILD
parent2d862ac364c034af400863e02f791b9e99be445e (diff)
downloadabslibre-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/PKGBUILD142
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')