commit: b5cb6c719a24b118865777640682e269b33a6e62 Author: Aric Belsito <lluixhi <AT> gmail <DOT> com> AuthorDate: Mon Jul 3 20:35:03 2017 +0000 Commit: Aric Belsito <lluixhi <AT> gmail <DOT> com> CommitDate: Mon Jul 3 20:35:50 2017 +0000 URL: https://gitweb.gentoo.org/proj/musl.git/commit/?id=b5cb6c71
sys-kernel/dracut: add 045 (most recent) Now depends on libfts on musl, so we need a patch in order to detect its presence. sys-kernel/dracut/Manifest | 4 + sys-kernel/dracut/dracut-045.ebuild | 168 ++++++++++++++++++++++++ sys-kernel/dracut/files/dracut-045-libfts.patch | 87 ++++++++++++ sys-kernel/dracut/metadata.xml | 28 ++++ 4 files changed, 287 insertions(+) diff --git a/sys-kernel/dracut/Manifest b/sys-kernel/dracut/Manifest new file mode 100644 index 0000000..481a285 --- /dev/null +++ b/sys-kernel/dracut/Manifest @@ -0,0 +1,4 @@ +AUX dracut-045-libfts.patch 2744 SHA256 49151e4f1f1042f9cdc7caa2388f0785526f27820323ca02dc65f6ed61d7d611 SHA512 cb94e734471118c414c8f78b1e528fb19712e1eb4ccec6999bb1e9e57c239647a5205b63dff69b4f921c6ac6eddfc3c3c6ffef973bff6acd690365a3fe245d56 WHIRLPOOL 1170ee991d4dc6f1066737a2fe46e2bf200b537151c4e5ba8c0ec7f0b92cda834e7779004918df21845a2441bc454874a00d7f5532490aaed4ee758278e75039 +DIST dracut-045.tar.xz 292652 SHA256 ca9c7ea54d3efc8b57ac1427cc5fa4d66688f6cf9d3088f4c5e7ae7c7e84ebf8 SHA512 b57aab1f6fbdd5ad52a13a0eb99937b1abcd11507a2a3e6ec9bcb94e578cc32edc01a814ea2cef93158c27c17e3e40bcdd32a66457a20363f8136b8b546bbb4a WHIRLPOOL d9cdf32e4fb745b2598aa2f0504c943f5a069dddc17d5261d594b2fc33921306196386bc35156d5bf71983cc15be3b0cddd504d1b6a2042b45b5c5ae622b23b9 +EBUILD dracut-045.ebuild 4822 SHA256 f843b16a682e4d9fca90398c9509e48c26e6d1f3b54b54d7416ef24bffb9c40b SHA512 f2dd17ecbe36fa64f6c5ab84a7c5777636bb0832a22deb274ea01b5e2bc18fdc66c3e526486fc9e4bf59f53d28d60f6935a0b85ad0db17be333688a89a630ed7 WHIRLPOOL 09410575b79ab230cfc3593b78914cb8bc6e7e7549334879b4ab9e14bb22dd0bf5bb04aca97d7c92abc4f3907a909c6ddbcae14beab90e3c4a6af9c29b64809a +MISC metadata.xml 840 SHA256 8ef5aab36d95735b3b0b1cdba609ef3cd8e883ac38fb619c957fe5ae1e35bd6d SHA512 d347acc0a7c8b821804280f198aa28cbd4198a8f2d570c2725584b18b04125a684bed6adb48f5cb71fe1ef0e1c19320ad3dbff612dbf972f741b50b91fc388ba WHIRLPOOL 9edf380512d517d1eb6303a81379e8df8c342c3ab4501b150f2c23078185d09251903b4ea182a65c49caeda51ce21845ba34783875b7c8111883ff3855f0dbac diff --git a/sys-kernel/dracut/dracut-045.ebuild b/sys-kernel/dracut/dracut-045.ebuild new file mode 100644 index 0000000..20908ce --- /dev/null +++ b/sys-kernel/dracut/dracut-045.ebuild @@ -0,0 +1,168 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +inherit bash-completion-r1 linux-info toolchain-funcs systemd + +DESCRIPTION="Generic initramfs generation tool" +HOMEPAGE="https://dracut.wiki.kernel.org" +SRC_URI="mirror://kernel/linux/utils/boot/${PN}/${P}.tar.xz" +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~ppc ~ppc64 ~sparc ~x86" +IUSE="debug selinux" + +RESTRICT="test" + +CDEPEND="virtual/udev + virtual/pkgconfig + >=sys-apps/kmod-15[tools] + " +RDEPEND="${CDEPEND} + app-arch/cpio + >=app-shells/bash-4.0:0 + || ( + >=sys-apps/sysvinit-2.87-r3 + sys-apps/systemd[sysv-utils] + sys-apps/systemd-sysv-utils + ) + sys-apps/coreutils[xattr(-)] + >=sys-apps/util-linux-2.21 + + debug? ( dev-util/strace ) + elibc_musl? ( sys-libs/fts-standalone ) + selinux? ( + sys-libs/libselinux + sys-libs/libsepol + sec-policy/selinux-dracut + ) + !net-analyzer/arping + " +DEPEND="${CDEPEND} + app-text/asciidoc + >=dev-libs/libxslt-1.1.26 + app-text/docbook-xml-dtd:4.5 + >=app-text/docbook-xsl-stylesheets-1.75.2 + " + +DOCS=( AUTHORS HACKING NEWS README README.generic README.kernel README.modules + README.testsuite TODO ) + +QA_MULTILIB_PATHS="usr/lib/dracut" + +PATCHES=( + "${FILESDIR}"/${P}-libfts.patch +) + +src_configure() { + local myconf=( + --prefix="${EPREFIX}/usr" + --sysconfdir="${EPREFIX}/etc" + --bashcompletiondir="$(get_bashcompdir)" + --systemdsystemunitdir="$(systemd_get_systemunitdir)" + ) + + tc-export CC PKG_CONFIG + + echo ./configure "${myconf[@]}" + ./configure "${myconf[@]}" || die +} + +src_install() { + default + + local dracutlibdir="usr/lib/dracut" + + local libdirs="/$(get_libdir) /usr/$(get_libdir)" + if [[ ${SYMLINK_LIB} = yes ]]; then + # Preserve lib -> lib64 symlinks in initramfs + [[ $libdirs =~ /lib\ ]] || libdirs+=" /lib /usr/lib" + fi + + einfo "Setting libdirs to \"${libdirs}\" ..." + echo "libdirs=\"${libdirs}\"" > "${T}/gentoo.conf" + insinto "${dracutlibdir}/dracut.conf.d" + doins "${T}/gentoo.conf" + + insinto /etc/logrotate.d + newins dracut.logrotate dracut + + dodir /var/lib/dracut/overlay + + dodoc dracut.html +} + +pkg_postinst() { + if linux-info_get_any_version && linux_config_exists; then + ewarn "" + ewarn "If the following test report contains a missing kernel" + ewarn "configuration option, you should reconfigure and rebuild your" + ewarn "kernel before booting image generated with this Dracut version." + ewarn "" + + local CONFIG_CHECK="~BLK_DEV_INITRD ~DEVTMPFS" + + # Kernel configuration options descriptions: + local desc_DEVTMPFS="Maintain a devtmpfs filesystem to mount at /dev" + local desc_BLK_DEV_INITRD="Initial RAM filesystem and RAM disk "\ +"(initramfs/initrd) support" + + local opt desc + + # Generate ERROR_* variables for check_extra_config. + for opt in ${CONFIG_CHECK}; do + opt=${opt#\~} + desc=desc_${opt} + eval "local ERROR_${opt}='CONFIG_${opt}: \"${!desc}\"" \ + "is missing and REQUIRED'" + done + + check_extra_config + echo + else + ewarn "" + ewarn "Your kernel configuration couldn't be checked. Do you have" + ewarn "/usr/src/linux/.config file there? Please check manually if" + ewarn "following options are enabled:" + ewarn "" + ewarn " CONFIG_BLK_DEV_INITRD" + ewarn " CONFIG_DEVTMPFS" + ewarn "" + fi + + elog "To get additional features, a number of optional runtime" + elog "dependencies may be installed:" + elog "" + optfeature "Networking support" net-misc/curl "net-misc/dhcp[client]" \ + sys-apps/iproute2 "net-misc/iputils[arping]" + optfeature \ + "Measure performance of the boot process for later visualisation" \ + app-benchmarks/bootchart2 app-admin/killproc sys-process/acct + optfeature "Scan for Btrfs on block devices" sys-fs/btrfs-progs + optfeature "Load kernel modules and drop this privilege for real init" \ + sys-libs/libcap + optfeature "Support CIFS" net-fs/cifs-utils + optfeature "Decrypt devices encrypted with cryptsetup/LUKS" \ + "sys-fs/cryptsetup[-static-libs]" + optfeature "Support for GPG-encrypted keys for crypt module" \ + app-crypt/gnupg + optfeature \ + "Allows use of dash instead of default bash (on your own risk)" \ + app-shells/dash + optfeature "Framebuffer splash (media-gfx/splashutils)" \ + media-gfx/splashutils + optfeature "Support iSCSI" sys-block/open-iscsi + optfeature "Support Logical Volume Manager" sys-fs/lvm2 + optfeature "Support MD devices, also known as software RAID devices" \ + sys-fs/mdadm + optfeature "Support Device Mapper multipathing" sys-fs/multipath-tools + optfeature "Plymouth boot splash" '>=sys-boot/plymouth-0.8.5-r5' + optfeature "Support network block devices" sys-block/nbd + optfeature "Support NFS" net-fs/nfs-utils net-nds/rpcbind + optfeature \ + "Install ssh and scp along with config files and specified keys" \ + net-misc/openssh + optfeature "Enable logging with syslog-ng or rsyslog" app-admin/syslog-ng \ + app-admin/rsyslog +} diff --git a/sys-kernel/dracut/files/dracut-045-libfts.patch b/sys-kernel/dracut/files/dracut-045-libfts.patch new file mode 100644 index 0000000..cb35fe5 --- /dev/null +++ b/sys-kernel/dracut/files/dracut-045-libfts.patch @@ -0,0 +1,87 @@ +diff -Naur dracut-045.orig/Makefile dracut-045/Makefile +--- dracut-045.orig/Makefile 2017-07-03 12:44:30.407689932 -0700 ++++ dracut-045/Makefile 2017-07-03 13:17:10.262396884 -0700 +@@ -12,7 +12,7 @@ + sysconfdir ?= ${prefix}/etc + bindir ?= ${prefix}/bin + mandir ?= ${prefix}/share/man +-CFLAGS ?= -O2 -g -Wall $(KMOD_CFLAGS) ++CFLAGS ?= -O2 -g -Wall $(KMOD_CFLAGS) $(FTS_CFLAGS) + CFLAGS += -std=gnu99 -D_FILE_OFFSET_BITS=64 -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 + bashcompletiondir ?= ${datadir}/bash-completion/completions + pkgconfigdatadir ?= $(datadir)/pkgconfig +@@ -61,7 +61,7 @@ + install/strv.o: install/strv.c install/strv.h install/util.h install/macro.h install/log.h + + install/dracut-install: $(DRACUT_INSTALL_OBJECTS) +- $(CC) $(LDFLAGS) -o $@ $(DRACUT_INSTALL_OBJECTS) $(LDLIBS) $(KMOD_LIBS) ++ $(CC) $(LDFLAGS) -o $@ $(DRACUT_INSTALL_OBJECTS) $(LDLIBS) $(KMOD_LIBS) $(FTS_LIBS) + + dracut-install: install/dracut-install + ln -fs $< $@ +diff -Naur dracut-045.orig/configure dracut-045/configure +--- dracut-045.orig/configure 2017-07-03 12:44:30.409689958 -0700 ++++ dracut-045/configure 2017-07-03 13:29:29.159797981 -0700 +@@ -7,6 +7,7 @@ + + enable_documentation=yes + ++CC="${CC:-gcc}" + PKG_CONFIG="${PKG_CONFIG:-pkg-config}" + + # Little helper function for reading args from the commandline. +@@ -52,10 +53,40 @@ + shift + done + ++printf "checking for libkmod... " + if ! ${PKG_CONFIG} --exists --print-errors " libkmod >= 15 "; then ++ printf "no\n" + echo "dracut needs pkg-config and libkmod >= 15." >&2 + exit 1 + fi ++printf "yes\n" ++ ++tmpc="./conftest.c" ++ ++printf "checking whether we have fts available from libc... " ++echo '#if !defined(__x86_64__)' > "$tmpc" ++echo '#undef _FILE_OFFSET_BITS' >> "$tmpc" ++echo '#define _FILE_OFFSET_BITS 32' >> "$tmpc" ++echo '#endif' >> "$tmpc" ++echo '#include <fts.h>' >> "$tmpc" ++echo 'int main() { FTS* fts = 0; return fts_close(fts); return 0; }' >> "$tmpc" ++if $CC -o /dev/null "$tmpc" >/dev/null 2>&1 ; then ++printf "yes\n" ++fts_library=false ++else ++printf "no\n" ++printf "checking whether we have fts available from libfts... " ++if $CC -lfts -o /dev/null "$tmpc" >/dev/null 2>&1 ; then ++printf "yes\n" ++fts_library=true ++else ++printf "no\n" ++echo "fts not in libc and libfts not found." ++exit 1 ++fi ++fi ++ ++rm $tmpc + + cat > Makefile.inc.$$ <<EOF + prefix ?= ${prefix} +@@ -70,6 +101,13 @@ + KMOD_LIBS ?= $(${PKG_CONFIG} --libs " libkmod >= 15 ") + EOF + ++if $fts_library ; then ++cat >> Makefile.inc.$$ <<EOF ++FTS_CFLAGS ?= $(${PKG_CONFIG} --cflags " fts-standalone ") ++FTS_LIBS ?= $(${PKG_CONFIG} --libs " fts-standalone ") ++EOF ++fi ++ + { + [[ $programprefix ]] && echo "programprefix ?= ${programprefix}" + [[ $execprefix ]] && echo "execprefix ?= ${execprefix}" diff --git a/sys-kernel/dracut/metadata.xml b/sys-kernel/dracut/metadata.xml new file mode 100644 index 0000000..f5d5063 --- /dev/null +++ b/sys-kernel/dracut/metadata.xml @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>[email protected]</email> + <name>Patrick McLean</name> + </maintainer> + <maintainer type="person"> + <email>[email protected]</email> + <name>Alexander Tsoy</name> + </maintainer> + <maintainer type="person"> + <email>[email protected]</email> + <name>Amadeusz Żołnowski</name> + </maintainer> + <maintainer type="person"> + <email>[email protected]</email> + <name>Mike Gilbert</name> + </maintainer> + <use> + <flag name="debug">Module installing additional tools like strace, file + editor, ssh and more</flag> + </use> + <longdescription lang="en"> + Generic, modular initramfs generation tool that can be used across various + distributions. + </longdescription> +</pkgmetadata>
