# $Id$ PNAME="util-linux" PVER="2.31.1" PBUILD="r1" SPLIT_PACKAGES="libuuid libblkid libmount libsmartcols libfdisk python2-libmount python3-libmount libmount-python util-linux uuidd" PCAT="sys-apps" HOMEPAGE="http://www.kernel.org/pub/linux/utils/util-linux/" COMMON_DEPEND=">= virtual/glibc" UTIL_DEPEND=">= sys-libs/ncurses-6.0 >= sys-libs/readline-7.0 >= sys-fs/libudev-230 >= sys-libs/libcap-2.24" PYTHON2_DEPEND=">= dev-lang/python-2.7" PYTHON3_DEPEND=">= dev-lang/python3-3.6" SDEPEND="${COMMON_DEPEND} ${UTIL_DEPEND} >= virtual/kernel-headers >= virtual/sed >= sys-dev/gettext-0.18" SRCFILE="${PNAME}-${PVER/_/-}.tar.xz" SRCDIR="${BUILDDIR}/${PNAME}-${PVER/_/-}" sminclude multilib mtools python2 python3 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_libblkid() { DESCRIPTION="Block device ID library." DEPEND="${COMMON_DEPEND}" PCAT="sys-libs" } split_info_libmount() { DESCRIPTION="Device mounting library." DEPEND="${COMMON_DEPEND}" PCAT="sys-libs" } split_info_libsmartcols() { DESCRIPTION="Formatting library for ls-like programs." DEPEND="${COMMON_DEPEND}" PCAT="sys-libs" } split_info_libfdisk() { DESCRIPTION="Partitioning library for fdisk-like programs.." DEPEND="${COMMON_DEPEND}" PCAT="sys-libs" } split_info_python2-libmount() { DESCRIPTION="Python2 bindings for libmount." DEPEND="== sys-libs/libmount-${PVER} ${PYTHON2_DEPEND}" PCAT="dev-python" } split_info_python3-libmount() { DESCRIPTION="Python3 bindings for libmount." DEPEND="== sys-libs/libmount-${PVER} ${PYTHON3_DEPEND}" PCAT="dev-python" } split_info_libmount-python() { PVER="9999" PCAT="dev-python" PKGTYPE="virtual" DESCRIPTION="Transitional package for python2-libmount." HOMEPAGE="http://www.magellan-linux.de/" DEPEND=">= dev-python/python2-libmount-2" } 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_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) \ --enable-nls \ --enable-agetty \ --enable-cramfs \ --enable-partx \ --enable-raw \ --enable-rename \ --enable-schedutils \ --enable-write \ --disable-reset \ --disable-login \ --disable-su \ --enable-sulogin \ --disable-kill \ --enable-last \ --enable-mesg \ --enable-wall \ --enable-fsck \ --enable-libmount \ --disable-silent-rules \ --enable-socket-activation \ --with-python=2 \ --with-python=3 \ || die mmake || die } src_install_libuuid() { mmake -j1 DESTDIR=${BINDIR} install || die zapmost ${BINDIR} \ usr/include/uuid \ usr/$(mlibdir)/libuuid.\* usr/$(mlibdir)/pkgconfig/uuid.pc \ $([[ $(mlibdir) != lib ]] && echo "usr/lib/libuuid.* usr/lib/pkgconfig/uuid.pc") \ || die } src_install_libblkid() { mmake -j1 DESTDIR=${BINDIR} install || die zapmost ${BINDIR} \ usr/include/blkid \ usr/$(mlibdir)/libblkid.\* usr/$(mlibdir)/pkgconfig/blkid.pc \ $([[ $(mlibdir) != lib ]] && echo "usr/lib/libblkid.* usr/lib/pkgconfig/blkid.pc") \ || die } src_install_libmount() { mmake -j1 DESTDIR=${BINDIR} install || die zapmost ${BINDIR} \ usr/include/libmount \ usr/$(mlibdir)/libmount.\* usr/$(mlibdir)/pkgconfig/mount.pc \ $([[ $(mlibdir) != lib ]] && echo "usr/lib/libmount.* usr/lib/pkgconfig/mount.pc") \ || die } src_install_libsmartcols() { mmake -j1 DESTDIR=${BINDIR} install || die zapmost ${BINDIR} \ usr/include/libsmartcols \ usr/$(mlibdir)/libsmartcols.\* usr/$(mlibdir)/pkgconfig/smartcols.pc \ $([[ $(mlibdir) != lib ]] && echo "usr/lib/libsmartcols.* usr/lib/pkgconfig/smartcols.pc") \ || die } src_install_libfdisk() { mmake -j1 DESTDIR=${BINDIR} install || die zapmost ${BINDIR} \ usr/include/libfdisk \ usr/$(mlibdir)/libfdisk.\* usr/$(mlibdir)/pkgconfig/fdisk.pc \ $([[ $(mlibdir) != lib ]] && echo "usr/lib/libfdisk.* usr/lib/pkgconfig/fdisk.pc") \ || die } src_install_python2-libmount() { mmake -j1 DESTDIR=${BINDIR} install || die zapmost ${BINDIR} \ $(mget-python2-libdir | sed 's:/::') \ $([[ $(mlibdir) != lib ]] && echo $(MULTILIB_VERBOSE=false abi-m32 mget-python2-libdir | sed 's:/::')) \ || die } src_install_python3-libmount() { mmake -j1 DESTDIR=${BINDIR} install || die zapmost ${BINDIR} \ $(mget-python3-libdir | sed 's:/::') \ $([[ $(mlibdir) != lib ]] && echo $(MULTILIB_VERBOSE=false abi-m32 mget-python3-libdir | sed 's:/::')) \ || die } src_install_util-linux() { # 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 mdelete -r $(mget-python2-libdir) || die mdelete -r $(mget-python3-libdir) || 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 mdelete -r $(MULTILIB_VERBOSE=false abi-m32 mget-python2-libdir) || die mdelete -r $(MULTILIB_VERBOSE=false abi-m32 mget-python3-libdir) || die fi mdelete /usr/sbin/uuidd || die mdelete /usr/share/man/man8/uuidd.8 || die mdelete -r /usr/lib/systemd/system || 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 if [[ ! -z $(magequery -n sysvinit-tools) ]] then echo -e ${COLRED} echo -e "Error: sys-apps/sysvinit-tools is installed!!" echo -e "sysvinit-tools are now provided by procps and util-linux and doesn't need an extra package anymore." echo -e "Please uninstall sys-apps/sysvinit-tools first!" echo -e ${COLDEFAULT} die "sys-apps/sysvinit-tools 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 }