# $Id$ PNAME="util-linux" PVER="2.31.1" PBUILD="r2" SPLIT_PACKAGES="libuuid libuuid-dev libblkid libblkid-dev libmount libmount-dev libsmartcols libsmartcols-dev libfdisk libfdisk-dev util-linux util-linux-dev uuidd" PCAT="sys-apps" HOMEPAGE="http://www.kernel.org/pub/linux/utils/util-linux/" COMMON_DEPEND=">= virtual/glibc" UTIL_DEPEND=">= sys-libs/ncurses-6.9 >= sys-fs/libudev-230 >= sys-libs/libcap-2.25" SDEPEND="${COMMON_DEPEND} ${UTIL_DEPEND} >= virtual/kernel-headers >= virtual/sed >= sys-dev/gettext-0.18 >= sys-libs/ncurses-dev-6.0 >= sys-fs/libudev-dev-230" SRCFILE="${PNAME}-${PVER/_/-}.tar.xz" SRCDIR="${BUILDDIR}/${PNAME}-${PVER/_/-}" sminclude mtools multilib systemd cleanutils SRC_URI=( http://www.kernel.org/pub/linux/utils/${PNAME}/v${PVER%.?}/${SRCFILE} http://www.kernel.org/pub/linux/utils/${PNAME}/v${PVER/%_*/}/${SRCFILE} mirror://${PNAME}/${SRCFILE} mirror://${PNAME}/uuidd.tmpfilesd ) UP2DATE="updatecmd \"${HOMEPAGE}/v\$(updatecmd ${HOMEPAGE} | grep v.*/ | sed -n 's/.*v\(.*\)\/.*/\1/;$ p')/?C=M;O=A\" | grep -v 'rc' | highesttarball xz" split_info_libuuid() { DESCRIPTION="Universally unique ID library." DEPEND="${COMMON_DEPEND}" PCAT="sys-libs" } split_info_libuuid-dev() { DESCRIPTION="Development files for libuuid." DEPEND="== sys-libs/libuuid-${PVER}" PCAT="sys-libs" } split_info_libblkid() { DESCRIPTION="Block device ID library." DEPEND="${COMMON_DEPEND}" PCAT="sys-libs" } split_info_libblkid-dev() { DESCRIPTION="Development files for libblkid." DEPEND="== sys-libs/libblkid-${PVER}" PCAT="sys-libs" } split_info_libmount() { DESCRIPTION="Device mounting library." DEPEND="${COMMON_DEPEND}" PCAT="sys-libs" } split_info_libmount-dev() { DESCRIPTION="Development files for libmount." DEPEND="== sys-libs/libmount-${PVER}" PCAT="sys-libs" } split_info_libsmartcols() { DESCRIPTION="Formatting library for ls-like programs." DEPEND="${COMMON_DEPEND}" PCAT="sys-libs" } split_info_libsmartcols-dev() { DESCRIPTION="Development files for libsmartcols." DEPEND="== sys-libs/libsmartcols-${PVER}" PCAT="sys-libs" } split_info_libfdisk() { DESCRIPTION="Partitioning library for fdisk-like programs.." DEPEND="${COMMON_DEPEND}" PCAT="sys-libs" } split_info_libfdisk-dev() { DESCRIPTION="Development files for libfdisk." DEPEND="== sys-libs/libfdisk-${PVER}" PCAT="sys-libs" } split_info_util-linux() { DESCRIPTION="Various useful Linux utilities." DEPEND="== sys-libs/libuuid-${PVER} == sys-libs/libblkid-${PVER} == sys-libs/libmount-${PVER} == sys-libs/libsmartcols-${PVER} == sys-libs/libfdisk-${PVER} ${UTIL_DEPEND}" PROVIDE="virtual/eject" } split_info_util-linux-dev() { DESCRIPTION="Development files for util-linux." DEPEND="== sys-apps/util-linux-${PVER} == sys-libs/libuuid-dev-${PVER} == sys-libs/libblkid-dev-${PVER} == sys-libs/libmount-dev-${PVER} == sys-libs/libsmartcols-dev-${PVER} == sys-libs/libfdisk-dev-${PVER}" } split_info_uuidd() { DESCRIPTION="Helper daemon to guarantee uniqueness of time-based UUIDs." DEPEND="== sys-libs/libuuid-${PVER} ${COMMON_DEPEND}" } pkg_setup() { preinstall_uuidd } src_prepare() { munpack ${SRCFILE} || die # fhs compatibility all-abis sed -i 's:etc/adjtime:var/lib/hwclock/adjtime:' \ include/pathnames.h \ sys-utils/hwclock.c sys-utils/hwclock.8 \ sys-utils/rtcwake.c sys-utils/rtcwake.8 || die # satisfy usr-move all-abis sed -i \ -e "s:sbindir=/sbin:sbindir=/usr/sbin:" \ -e "s:bindir=/bin:bindir=/usr/bin:" \ -e "s:libdir=/lib:libdir=/usr/lib:" \ -e 's:localstatedir=\${prefix}/\${localstatedir}:localstatedir=\${localstatedir}:' \ configure.ac || die # regen configure mautoreconf || die } src_compile() { # enabled libmount-mount to utilize mount with a mtab symlink # which is needed by systemd # we are using blkid from util linux now (--with-fsprobe=built --enable-fsck) # which merges the old blkid from e2fsprogs and udevs libvolume # see: http://lists.freedesktop.org/archives/hal-commit/2009-May/004936.html mconfigure \ --localstatedir=/run \ --exec-prefix=/usr \ --with-systemdsystemunitdir=$(mget-systemd-unit-dir) \ --disable-nls \ --enable-agetty \ --enable-cramfs \ --enable-partx \ --enable-raw \ --enable-rename \ --enable-schedutils \ --enable-write \ --disable-reset \ --disable-login \ --disable-su \ --disable-sulogin \ --disable-kill \ --disable-last \ --disable-mesg \ --disable-wall \ --enable-fsck \ --enable-libmount \ --disable-silent-rules \ --enable-socket-activation \ --enable-libmount-force-mountinfo \ || die mmake || die } src_install_libuuid() { mmake -j1 DESTDIR=${BINDIR} install || die zapmost ${BINDIR} \ usr/$(mlibdir)/libuuid.so.\* \ $([[ $(mlibdir) != lib ]] && echo "usr/lib/libuuid.so.*") \ || die } src_install_libuuid-dev() { mmake -j1 DESTDIR=${BINDIR} install || die zapmost ${BINDIR} \ usr/include/uuid \ usr/$(mlibdir)/libuuid.so \ usr/$(mlibdir)/libuuid.la \ usr/$(mlibdir)/libuuid.a \ usr/$(mlibdir)/pkgconfig/uuid.pc \ $([[ $(mlibdir) != lib ]] && echo "usr/lib/libuuid.so usr/lib/libuuid.a usr/lib/libuuid.la usr/lib/pkgconfig/uuid.pc") \ || die } src_install_libblkid() { mmake -j1 DESTDIR=${BINDIR} install || die zapmost ${BINDIR} \ usr/$(mlibdir)/libblkid.so.\* \ $([[ $(mlibdir) != lib ]] && echo "usr/lib/libblkid.so.*") \ || die } src_install_libblkid-dev() { mmake -j1 DESTDIR=${BINDIR} install || die zapmost ${BINDIR} \ usr/include/blkid \ usr/$(mlibdir)/libblkid.so \ usr/$(mlibdir)/libblkid.la \ usr/$(mlibdir)/libblkid.a \ usr/$(mlibdir)/pkgconfig/blkid.pc \ $([[ $(mlibdir) != lib ]] && echo "usr/lib/libblkid.so usr/lib/libblkid.la usr/lib/libblkid.a usr/lib/pkgconfig/blkid.pc") \ || die } src_install_libmount() { mmake -j1 DESTDIR=${BINDIR} install || die zapmost ${BINDIR} \ usr/$(mlibdir)/libmount.so.\* \ $([[ $(mlibdir) != lib ]] && echo "usr/lib/libmount.so.*") \ || die } src_install_libmount-dev() { mmake -j1 DESTDIR=${BINDIR} install || die zapmost ${BINDIR} \ usr/include/libmount \ usr/$(mlibdir)/libmount.so \ usr/$(mlibdir)/libmount.la \ usr/$(mlibdir)/libmount.a \ usr/$(mlibdir)/pkgconfig/mount.pc \ $([[ $(mlibdir) != lib ]] && echo "usr/lib/libmount.so usr/lib/libmount.la usr/lib/libmount.a usr/lib/pkgconfig/mount.pc") \ || die } src_install_libsmartcols() { mmake -j1 DESTDIR=${BINDIR} install || die zapmost ${BINDIR} \ usr/$(mlibdir)/libsmartcols.so.\* \ $([[ $(mlibdir) != lib ]] && echo "usr/lib/libsmartcols.so.*") \ || die } src_install_libsmartcols-dev() { mmake -j1 DESTDIR=${BINDIR} install || die zapmost ${BINDIR} \ usr/include/libsmartcols \ usr/$(mlibdir)/libsmartcols.so \ usr/$(mlibdir)/libsmartcols.la \ usr/$(mlibdir)/libsmartcols.a \ usr/$(mlibdir)/pkgconfig/smartcols.pc \ $([[ $(mlibdir) != lib ]] && echo "usr/lib/libsmartcols.so usr/lib/libsmartcols.la usr/lib/libsmartcols.a usr/lib/pkgconfig/smartcols.pc") \ || die } src_install_libfdisk() { mmake -j1 DESTDIR=${BINDIR} install || die zapmost ${BINDIR} \ usr/$(mlibdir)/libfdisk.so.\* \ $([[ $(mlibdir) != lib ]] && echo "usr/lib/libfdisk.so.*") \ || die } src_install_libfdisk-dev() { mmake -j1 DESTDIR=${BINDIR} install || die zapmost ${BINDIR} \ usr/include/libfdisk \ usr/$(mlibdir)/libfdisk.so \ usr/$(mlibdir)/libfdisk.la \ usr/$(mlibdir)/libfdisk.a \ usr/$(mlibdir)/pkgconfig/fdisk.pc \ $([[ $(mlibdir) != lib ]] && echo "usr/lib/libfdisk.so usr/lib/libfdisk.la usr/lib/libfdisk.a usr/lib/pkgconfig/fdisk.pc") \ || die } src_install_util-linux() { mmake -j1 DESTDIR=${BINDIR} install || die # keep fullfeatured /sbin/blkid for better fstype guessing and uuid handling # mcookie is needed by xorg's startx # keep fullfeatured mount/umount for systemd # mountpoint is required by mage update-tarball / maybe using busbox version? # keep fullfeatured swapon/off for systemd # keep fullfeatured losetup for dracut (losetup -f --show) zapmost ${BINDIR} \ usr/bin/mount \ usr/bin/umount \ usr/bin/findmnt \ usr/sbin/fsck \ usr/sbin/cfdisk \ usr/sbin/sfdisk \ usr/sbin/blkid \ usr/bin/mcookie \ usr/bin/uuidgen \ usr/sbin/swapon \ usr/sbin/swapoff \ usr/sbin/losetup \ || die } src_install_util-linux-dev() { # needed directories mkeepdir /var/lib/hwclock || die mmake -j1 DESTDIR=${BINDIR} install || die # remove files owned by other packages mdelete -r /usr/include/uuid || die mdelete -r /usr/include/blkid || die mdelete -r /usr/include/libmount || die mdelete -r /usr/include/libsmartcols || die mdelete -r /usr/include/libfdisk || die mdelete /usr/$(mlibdir)/libuuid.\* || die mdelete /usr/$(mlibdir)/libblkid.\* || die mdelete /usr/$(mlibdir)/libmount.\* || die mdelete /usr/$(mlibdir)/libsmartcols.\* || die mdelete /usr/$(mlibdir)/libfdisk.\* || die mdelete /usr/$(mlibdir)/pkgconfig/uuid.pc || die mdelete /usr/$(mlibdir)/pkgconfig/blkid.pc || die mdelete /usr/$(mlibdir)/pkgconfig/mount.pc || die mdelete /usr/$(mlibdir)/pkgconfig/smartcols.pc || die mdelete /usr/$(mlibdir)/pkgconfig/fdisk.pc || die if [[ $(mlibdir) != lib ]] then mdelete /usr/lib/libuuid.\* || die mdelete /usr/lib/libblkid.\* || die mdelete /usr/lib/libmount.\* || die mdelete /usr/lib/libsmartcols.\* || die mdelete /usr/lib/libfdisk.\* || die mdelete /usr/lib/pkgconfig/uuid.pc || die mdelete /usr/lib/pkgconfig/blkid.pc || die mdelete /usr/lib/pkgconfig/mount.pc || die mdelete /usr/lib/pkgconfig/smartcols.pc || die mdelete /usr/lib/pkgconfig/fdisk.pc || die fi mdelete /usr/sbin/uuidd || die mdelete /usr/share/man/man8/uuidd.8 || die mdelete -r /usr/lib/systemd/system || die # alx mdelete /usr/bin/mount || die mdelete /usr/bin/umount || die mdelete /usr/sbin/fsck || die mdelete /usr/sbin/cfdisk || die mdelete /usr/sbin/sfdisk || die mdelete /usr/sbin/blkid || die mdelete /usr/bin/mcookie || die mdelete /usr/bin/uuidgen || die mdelete /usr/sbin/swapon || die mdelete /usr/sbin/swapoff || die # provided by busybox mdelete /usr/bin/mountpoint || die mdelete /usr/sbin/agetty || die minstalldocs AUTHORS COPYING ChangeLog DECRECATED NEWS README* TODO || die } src_install_uuidd() { mmake -j1 DESTDIR=${BINDIR} install || die zapmost ${BINDIR} \ usr/share/man/man8/uuidd.8 \ usr/sbin/uuidd \ /usr/lib/systemd/system \ || die mkeepdir /var/lib/libuuid || die mchown uuidd:uuidd /var/lib/libuuid || die mchmod 2755 /var/lib/libuuid || die mkeepdir /run/uuidd || die mchown uuidd:uuidd /run/uuidd || die mchmod 2755 /run/uuidd || die # add systemd files minstalltmp uuidd.tmpfilesd uuidd.conf || die } preinstall_util-linux() { if [[ ! -z $(magequery -n linux32) ]] then echo -e ${COLRED} echo -e "Error: dev-util/linux32 is installed!!" echo -e "linux32 is now provided by util-linux and doesn't need an extra package anymore." echo -e "Please uninstall dev-util/linux32 first!" echo -e ${COLDEFAULT} die "dev-util/linux32 found!" fi if [[ ! -z $(magequery -n eject) ]] then echo -e ${COLRED} echo -e "Error: sys-apps/eject is installed!!" echo -e "eject is now provided by util-linux and doesn't need an extra package anymore." echo -e "Please uninstall sys-apps/eject first!" echo -e ${COLDEFAULT} die "sys-apps/eject found!" fi } preinstall_uuidd() { mgroupadd uuidd museradd -o "-g uuidd -d /var/lib/libuuid -s /sbin/nologin" uuidd } postinstall_uuidd() { mstartunit uuidd.service } postremove_uuidd() { mstopunit uuidd.service }