# Contributor: Sören Tempel <soeren+alpine@soeren-tempel.net>
# Contributor: Leonardo Arena <rnalrd@alpinelinux.org>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=util-linux
pkgver=2.28.2

case $pkgver in
	*.*.*) _v=${pkgver%.*};;
	*.*) _v=$pkgver;;
esac

pkgrel=1
pkgdesc="Random collection of Linux utilities"
url="http://git.kernel.org/cgit/utils/util-linux/util-linux.git"
arch="all"
license="GPL2 GPL2+ LGPL2+ BSD Public Domain"
depends="findmnt"
# use GNU sed til bb sed is fixed. Also GNU tar is needed
makedepends_build="sed tar autoconf automake libtool"
makedepends_host="zlib-dev ncurses-dev linux-headers"
install=
options="suid"
source="http://www.kernel.org/pub/linux/utils/$pkgname/v${_v}/$pkgname-$pkgver.tar.xz
	libblkid-reduce-probing-area-for-crazy-CDROMs.patch
	ttydefaults.h
	"
subpackages="$pkgname-doc $pkgname-dev $pkgname-bash-completion:bashcomp:noarch
	libuuid libblkid libmount libsmartcols libfdisk sfdisk cfdisk
	findmnt:_findmnt mcookie blkid"
if [ -z "$BOOTSTRAP" ]; then
	makedepends_host="$makedepends_host ncurses-dev python2-dev"
	subpackages="$subpackages py-libmount:_py"
else
	_bootstrap_config="--without-python"
fi
makedepends="$makedepends_build $makedepends_host"
replaces="e2fsprogs util-linux-ng"

builddir="$srcdir/$pkgname-$pkgver"
prepare() {
	default_prepare || return 1

	cd "$builddir"
	cp "$srcdir"/ttydefaults.h include/
	libtoolize --force && aclocal -I m4 && autoconf \
		&& automake --add-missing
}

build() {
	cd "$builddir"

	# login utils are provided by shadow (with PAM) or busybox (no PAM) --nenolod
	./configure \
		--build=$CBUILD \
		--host=$CHOST \
		--with-sysroot=$CBUILDROOT \
		--prefix=/usr \
		--enable-raw \
		--with-ncurses \
		--disable-uuidd \
		--disable-nls \
		--disable-tls \
		--disable-kill \
		--disable-login \
		--disable-last \
		--disable-sulogin \
		--disable-su \
		$_bootstrap_config \
		|| return 1
	make || return 1
}

package() {
	make -j1 DESTDIR="$pkgdir" \
		-C "$builddir" install || return 1
	# use pkg-config
}

dev() {
	default_dev
	replaces="e2fsprogs-dev util-linux-ng-dev"
}

bashcomp() {
	depends=""
	pkgdesc="Bash completions for $pkgname"
	install_if="$pkgname=$pkgver-r$pkgrel bash-completion"

	mkdir -p "$subpkgdir"/usr/share/
	mv "$pkgdir"/usr/share/bash-completion \
		"$subpkgdir"/usr/share/ || return 1
}

blkid() {
	pkgdesc="block device identification tool"
	replaces="util-linux-ng"
	depends=
	mkdir -p "$subpkgdir"/sbin
	mv "$pkgdir"/sbin/blkid "$subpkgdir"/sbin/
}

libuuid() {
	pkgdesc="DCE compatible Universally Unique Identifier library"
	depends=
	mkdir -p "$subpkgdir"/lib
	mv "$pkgdir"/lib/libuuid* "$subpkgdir"/lib/
}

libblkid() {
	pkgdesc="Block device identification library from util-linux"
	depends=
	mkdir -p "$subpkgdir"/lib
	mv "$pkgdir"/lib/libblkid* "$subpkgdir"/lib/
}

libmount() {
	pkgdesc="Block device identification library from util-linux"
	depends=
	mkdir -p "$subpkgdir"/lib
	mv "$pkgdir"/lib/libmount.so.* "$subpkgdir"/lib/
}

libsmartcols() {
	pkgdesc="Formatting library for ls-like programs."
	depends=
	mkdir -p "$subpkgdir"/lib
	mv "$pkgdir"/lib/libsmartcols.so.* "$subpkgdir"/lib/
}

libfdisk() {
	pkgdesc="Partitioning library for fdisk-like programs"
	depends=
	mkdir -p "$subpkgdir"/lib
	mv "$pkgdir"/lib/libfdisk.so.* "$subpkgdir"/lib/
}

sfdisk() {
	pkgdesc="Partition table manipulator from util-linux"
	depends=
	mkdir -p "$subpkgdir"/sbin
	mv "$pkgdir"/sbin/sfdisk "$subpkgdir"/sbin/
}

cfdisk() {
	pkgdesc="Curses based partition table manipulator from util-linux"
	depends=
	mkdir -p "$subpkgdir"/sbin
	mv "$pkgdir"/sbin/cfdisk "$subpkgdir"/sbin/
}

mcookie() {
	pkgdesc="mcookie from util-linux"
	replaces="util-linux-ng"
	mkdir -p "$subpkgdir"/usr/bin
	mv "$pkgdir"/usr/bin/mcookie "$subpkgdir"/usr/bin/
}

_findmnt() {
	pkgdesc="findmnt from util-linux"
	replaces=""
	depends=""
	mkdir -p "$subpkgdir"/bin
	mv "$pkgdir"/bin/findmnt "$subpkgdir"/bin
}

_py() {
	pkgdesc="python bindings to libmount"
	mkdir -p "$subpkgdir"/usr/lib
	mv "$pkgdir"/usr/lib/python* "$subpkgdir"/usr/lib/
}

md5sums="46a232a37bce45371a86d19300edc47a  util-linux-2.28.2.tar.xz
ee12cce6423e6f7ea4c9c438989e77d7  libblkid-reduce-probing-area-for-crazy-CDROMs.patch
6196f1ce853dfaf717569c1e35555d6d  ttydefaults.h"
sha256sums="b89d37146f20bede93a42c847bce881a17e6dbd8066ff2db2bee733fa409f0cd  util-linux-2.28.2.tar.xz
12b6434a229d08c81f45735cac50e9003908f3ad974c59cec93ddf57700077f3  libblkid-reduce-probing-area-for-crazy-CDROMs.patch
46faf1198bd884d12c5d45019a5fec8dfdefeae6721d8c9f3da89921acdb2a6d  ttydefaults.h"
sha512sums="ac1c2d4c92bbc4eabed464cb0334c1d9b21e58df0f07f0b26e7adcfa188879de8632d195b65a4358c5e11e14ac6e09a1c6206265bbf1fab4ce122414bee7e940  util-linux-2.28.2.tar.xz
ec27d4227f7e0f08198ecf00f4c7da379ed588eb05835c318322bec26841868e51337c5710706237a7a3358aa0db6d4514c8f2444d02b2bd800f1c7f9e9570c2  libblkid-reduce-probing-area-for-crazy-CDROMs.patch
876bb9041eca1b2cca1e9aac898f282db576f7860aba690a95c0ac629d7c5b2cdeccba504dda87ff55c2a10b67165985ce16ca41a0694a267507e1e0cafd46d9  ttydefaults.h"
