From 989a44a555cd9d052c5fffdce7eace449a8f5ac5 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Sun, 9 Sep 2018 11:26:06 +0100 Subject: sys-kernel/dkms : new exheres --- packages/sys-kernel/dkms/dkms-2.3.exheres-0 | 51 ++++++ .../dkms/files/dkms-2.3-dont-touch-configs.patch | 26 ++++ .../dkms/files/dkms-2.3-gentoo-functions.patch | 82 ++++++++++ .../dkms/files/dkms-2.3-redcore-makefile.patch | 173 +++++++++++++++++++++ .../dkms/files/dkms-2.3-systemd-service-fix.patch | 23 +++ packages/sys-kernel/dkms/files/openrc/initd/dkms | 22 +++ 6 files changed, 377 insertions(+) create mode 100644 packages/sys-kernel/dkms/dkms-2.3.exheres-0 create mode 100644 packages/sys-kernel/dkms/files/dkms-2.3-dont-touch-configs.patch create mode 100644 packages/sys-kernel/dkms/files/dkms-2.3-gentoo-functions.patch create mode 100644 packages/sys-kernel/dkms/files/dkms-2.3-redcore-makefile.patch create mode 100644 packages/sys-kernel/dkms/files/dkms-2.3-systemd-service-fix.patch create mode 100644 packages/sys-kernel/dkms/files/openrc/initd/dkms diff --git a/packages/sys-kernel/dkms/dkms-2.3.exheres-0 b/packages/sys-kernel/dkms/dkms-2.3.exheres-0 new file mode 100644 index 0000000..ce29354 --- /dev/null +++ b/packages/sys-kernel/dkms/dkms-2.3.exheres-0 @@ -0,0 +1,51 @@ +# Copyright 2018 Redcore Linux Project +# Distributed under the terms of the GNU General Public License v2 + +require github [ user=dell tag="v${PV}" ] +require openrc-service + +SUMMARY="Dynamically rebuild kernel modules" +DESCRIPTION=" +DKMS includes utilities to dynamically rebuild kernel modules when the kernel is updated. It also +allows developers to build DKMS-enabled tarballs, rpms and debs that will be rebuilt on kernel +update. +" +HOMEPAGE="http://linux.dell.com/dkms/" + +LICENCES="GPL-2" +SLOT="0" +PLATFORMS="~amd64" +MYOPTIONS="" + +DEPENDENCIES=" + run: + app-shells/bash + suggestion: + app-arch/dpkg [[ + description = [ Build DKMS-enabled debs ] + ]] + app-arch/rpm [[ + description = [ Build DKMS-enabled rpms ] + ]] +" + +DEFAULT_SRC_PREPARE_PATCHES=( + "${FILES}"/"${PNV}"-dont-touch-configs.patch + "${FILES}"/"${PNV}"-gentoo-functions.patch + "${FILES}"/"${PNV}"-systemd-service-fix.patch + "${FILES}"/"${PNV}"-redcore-makefile.patch +) + +DEFAULT_SRC_INSTALL_PARAMS=( + SBIN="${IMAGE}/usr/$(exhost --target)/bin" + LIBDIR="${IMAGE}/usr/$(exhost --target)/lib/dkms" +) + +src_compile() { + : +} + +src_install() { + default + install_openrc_files +} diff --git a/packages/sys-kernel/dkms/files/dkms-2.3-dont-touch-configs.patch b/packages/sys-kernel/dkms/files/dkms-2.3-dont-touch-configs.patch new file mode 100644 index 0000000..e103470 --- /dev/null +++ b/packages/sys-kernel/dkms/files/dkms-2.3-dont-touch-configs.patch @@ -0,0 +1,26 @@ +diff -Nur a/dkms b/dkms +--- a/dkms 2016-08-31 18:23:47.000000000 +0100 ++++ b/dkms 2017-05-21 11:42:03.571445932 +0100 +@@ -824,22 +824,6 @@ + sa_sck_o[${#sa_sck_o[*]}]="s/\(INITRD_MODULES.*\)$obsolete_module\b\(.*\)/\1${dest_module_name[$index]}\2/" + done + done +- +- # Do all the changes at once, record the diffs for posterity +- for file in "$@"; do +- [[ $file && -w $file ]] || continue +- if [[ $file = /etc/sysconfig/kernel ]]; then +- sed "${sa_sck_o[*]}" "$file" > "$temp_dir_name/${file##*/}.new" +- else +- sed "${sa_mc_o[*]}" "$file" > "$temp_dir_name/${file##*/}.new" +- fi +- if ! mod_diff=$(diff -u "$temp_dir_name/${file##*/}.new" "$file"); then +- echo $"$file updated to replace obsoleted module references:" +- echo "$mod_diff" +- cp -fp "$temp_dir_name/${file##*/}.new" "$file" +- rm -f "$temp_dir_name/${file##*/}.new" +- fi +- done + } + + moduleconfig_add() diff --git a/packages/sys-kernel/dkms/files/dkms-2.3-gentoo-functions.patch b/packages/sys-kernel/dkms/files/dkms-2.3-gentoo-functions.patch new file mode 100644 index 0000000..42b7464 --- /dev/null +++ b/packages/sys-kernel/dkms/files/dkms-2.3-gentoo-functions.patch @@ -0,0 +1,82 @@ +diff -Nur a/dkms_autoinstaller b/dkms_autoinstaller +--- a/dkms_autoinstaller 2016-08-31 18:23:47.000000000 +0100 ++++ b/dkms_autoinstaller 2017-05-21 11:49:24.833475555 +0100 +@@ -1,60 +1,29 @@ + #!/bin/sh +-# +-# dkms_autoinstaller - A service to automatically install DKMS modules for new kernels. +-# +-# chkconfig: 345 04 04 +-# description: Compiles and install kernel modules automatically for new \ +-# kernels at boot. +- +-### BEGIN INIT INFO +-# Provides: dkms_autoinstaller dkms +-# Default-Start: 3 4 5 +-# Default-Stop: 0 1 2 6 +-# Required-Start: $local_fs +-# Short-Description: DKMS kernel modules installer service ++# Short-Description: Automatically install DKMS modules for new kernels + # Description: A service to automatically install DKMS modules for new kernels. +-### END INIT INFO + ++test -f /usr/sbin/dkms || exit 0 + +-if [ -f /lib/lsb/init-functions ]; then +- . /lib/lsb/init-functions +-elif [ -f /etc/rc.d/init.d/functions ]; then +- . /etc/rc.d/init.d/functions ++if [ -f /lib/gentoo/functions.sh ]; then ++ . /lib/gentoo/functions.sh + fi + +-#We only have these functions on debian/ubuntu +-# so on other distros just stub them out +-if [ ! -f /etc/debian_version ]; then +- alias log_daemon_msg=/bin/echo +- log_end_msg() { if [ "$1" = "0" ]; then echo " Done. "; else echo " Failed. "; fi } +- alias log_action_begin_msg=log_daemon_msg +- alias log_action_end_msg=log_end_msg ++if [ -n "$2" ]; then ++ kernel="$2" ++else ++ kernel=`uname -r` + fi + +-exec="/usr/sbin/dkms" +-prog=${exec##*/} +- +-test -f $exec || exit 0 +- +-[ -e /etc/sysconfig/$prog ] && . /etc/sysconfig/$prog +- ++# See how we were called. + case "$1" in +- start) +- if [ -n "$2" ]; then +- kernel="$2" +- else +- kernel=`uname -r` +- fi +- log_daemon_msg "$prog: running auto installation service for kernel $kernel" +- dkms autoinstall --kernelver $kernel +- log_end_msg $? ++ start) ++ dkms autoinstall --force --kernelver $kernel ++ ;; ++ status) ++ dkms status + ;; +- stop|restart|force-reload|status|reload) +- # There is no stop action, this and the 04 priority during stop is +- # added to make RHEL chkconfig happy. +- # Ignore others on debian/ubuntu too +- ;; +- *) +- echo $"Usage: $0 {start}" +- exit 2 ++ *) ++ echo "Usage: $0 {start}" + esac ++ ++exit 0 diff --git a/packages/sys-kernel/dkms/files/dkms-2.3-redcore-makefile.patch b/packages/sys-kernel/dkms/files/dkms-2.3-redcore-makefile.patch new file mode 100644 index 0000000..ad4ab2d --- /dev/null +++ b/packages/sys-kernel/dkms/files/dkms-2.3-redcore-makefile.patch @@ -0,0 +1,173 @@ +diff -Nur a/Makefile b/Makefile +--- a/Makefile 2016-08-31 18:23:47.000000000 +0100 ++++ b/Makefile 2017-05-21 12:06:18.990543640 +0100 +@@ -9,140 +9,45 @@ + DIST := unstable + SHELL=bash + +-SBIN = $(DESTDIR)/usr/sbin +-ETC = $(DESTDIR)/etc/dkms +-VAR = $(DESTDIR)/var/lib/dkms +-MAN = $(DESTDIR)/usr/share/man/man8 +-INITD = $(DESTDIR)/etc/rc.d/init.d +-LIBDIR = $(DESTDIR)/usr/lib/dkms +-BASHDIR = $(DESTDIR)/etc/bash_completion.d +-KCONF = $(DESTDIR)/etc/kernel +-SHAREDIR = $(DESTDIR)/usr/share +-DOCDIR = $(SHAREDIR)/doc/dkms +-SYSTEMD = $(DESTDIR)/usr/lib/systemd/system ++SUBDIRS = ++DESTDIR= ++SBIN ?= /usr/sbin ++ETC ?= /etc/dkms ++VAR ?= /var/lib/dkms ++MAN ?= /usr/share/man/man8 ++LIBDIR ?= /usr/lib/dkms ++BASHDIR ?= /etc/bash_completion.d ++KCONF ?= /etc/kernel ++SYSTEMD_UNITDIR ?= /usr/lib/systemd/system + + #Define the top-level build directory + BUILDDIR := $(shell pwd) + TOPDIR := $(shell pwd) + +-.PHONY = tarball + +-all: clean tarball rpm debs ++all: ++ for d in $(SUBDIRS); do $(MAKE) -C $$d; done + + clean: +- -rm -rf *~ dist/ dkms-freshmeat.txt ++ for d in $(SUBDIRS); do $(MAKE) -C $$d clean; done + + install: +- mkdir -m 0755 -p $(VAR) $(SBIN) $(MAN) $(ETC) $(BASHDIR) $(SHAREDIR) $(LIBDIR) ++ for d in $(SUBDIRS); do $(MAKE) -C $$d install; done ++ ++ mkdir -m 0755 -p $(DESTDIR)/$(VAR) $(DESTDIR)/$(SBIN) $(DESTDIR)/$(MAN) $(DESTDIR)/$(ETC) $(DESTDIR)/$(BASHDIR) $(DESTDIR)/$(LIBDIR) $(DESTDIR)/$(SYSTEMD_UNITDIR) + sed -e "s/\[INSERT_VERSION_HERE\]/$(RELEASE_VERSION)/" dkms > dkms.versioned + mv -f dkms.versioned dkms +- install -p -m 0755 dkms_common.postinst $(LIBDIR)/common.postinst +- install -p -m 0755 dkms $(SBIN) +- install -p -m 0755 dkms_autoinstaller $(LIBDIR) +- install -p -m 0644 dkms_framework.conf $(ETC)/framework.conf +- install -p -m 0644 dkms_dbversion $(VAR) +- install -p -m 0644 dkms.bash-completion $(BASHDIR)/dkms +- # install compressed manpage with proper timestamp and permissions +- gzip -c -9 dkms.8 > $(MAN)/dkms.8.gz +- chmod 0644 $(MAN)/dkms.8.gz +- touch --reference=dkms.8 $(MAN)/dkms.8.gz +- mkdir -p -m 0755 $(KCONF)/prerm.d $(KCONF)/postinst.d +- install -p -m 0755 kernel_prerm.d_dkms $(KCONF)/prerm.d/dkms +- install -p -m 0755 kernel_postinst.d_dkms $(KCONF)/postinst.d/dkms +- +-DOCFILES=sample.spec sample.conf AUTHORS COPYING README.dkms sample-suse-9-mkkmp.spec sample-suse-10-mkkmp.spec +- +-doc-perms: +- # ensure doc file permissions ok +- chmod 0644 $(DOCFILES) +- +-install-redhat-sysv: install doc-perms +- mkdir -m 0755 -p $(INITD) +- install -p -m 0755 dkms_mkkerneldoth $(LIBDIR)/mkkerneldoth +- install -p -m 0755 dkms_find-provides $(LIBDIR)/find-provides +- install -p -m 0755 lsb_release $(LIBDIR)/lsb_release +- install -p -m 0644 template-dkms-mkrpm.spec $(ETC) +- install -p -m 0644 template-dkms-redhat-kmod.spec $(ETC) +- install -p -m 0755 dkms_autoinstaller $(INITD) +- +-install-redhat-systemd: install doc-perms +- mkdir -m 0755 -p $(SYSTEMD) +- install -p -m 0755 dkms_mkkerneldoth $(LIBDIR)/mkkerneldoth +- install -p -m 0755 dkms_find-provides $(LIBDIR)/find-provides +- install -p -m 0755 lsb_release $(LIBDIR)/lsb_release +- install -p -m 0644 template-dkms-mkrpm.spec $(ETC) +- install -p -m 0644 template-dkms-redhat-kmod.spec $(ETC) +- install -p -m 0644 dkms.service $(SYSTEMD) +- +-install-doc: +- mkdir -m 0755 -p $(DOCDIR) +- install -p -m 0644 $(DOCFILES) $(DOCDIR) +- +-install-debian: install install-doc +- mkdir -p -m 0755 $(SHAREDIR)/apport/package-hooks +- install -p -m 0755 dkms_apport.py $(SHAREDIR)/apport/package-hooks/dkms_packages.py +- mkdir -p -m 0755 $(KCONF)/header_postinst.d +- install -p -m 0755 kernel_postinst.d_dkms $(KCONF)/header_postinst.d/dkms +- mkdir -p -m 0755 $(ETC)/template-dkms-mkdeb/debian +- ln -s template-dkms-mkdeb $(ETC)/template-dkms-mkdsc +- install -p -m 0664 template-dkms-mkdeb/Makefile $(ETC)/template-dkms-mkdeb/ +- install -p -m 0664 template-dkms-mkdeb/debian/* $(ETC)/template-dkms-mkdeb/debian/ +- chmod +x $(ETC)/template-dkms-mkdeb/debian/postinst +- chmod +x $(ETC)/template-dkms-mkdeb/debian/prerm +- chmod +x $(ETC)/template-dkms-mkdeb/debian/rules +- rm $(DOCDIR)/COPYING* +- rm $(DOCDIR)/sample* +- +-deb_destdir=$(BUILDDIR)/dist +-TARBALL=$(deb_destdir)/$(RELEASE_STRING).tar.gz +-tarball: $(TARBALL) +- +-$(TARBALL): +- mkdir -p $(deb_destdir) +- tmp_dir=`mktemp -d --tmpdir dkms.XXXXXXXX` ; \ +- cp -a ../$(RELEASE_NAME) $${tmp_dir}/$(RELEASE_STRING) ; \ +- sed -e "s/\[INSERT_VERSION_HERE\]/$(RELEASE_VERSION)/" dkms > $${tmp_dir}/$(RELEASE_STRING)/dkms ; \ +- sed -e "s/\[INSERT_VERSION_HERE\]/$(RELEASE_VERSION)/" dkms.spec > $${tmp_dir}/$(RELEASE_STRING)/dkms.spec ; \ +- find $${tmp_dir}/$(RELEASE_STRING) -depth -name .git -type d -exec rm -rf \{\} \; ; \ +- find $${tmp_dir}/$(RELEASE_STRING) -depth -name dist -type d -exec rm -rf \{\} \; ; \ +- find $${tmp_dir}/$(RELEASE_STRING) -depth -name \*~ -type f -exec rm -f \{\} \; ; \ +- find $${tmp_dir}/$(RELEASE_STRING) -depth -name dkms\*.rpm -type f -exec rm -f \{\} \; ; \ +- find $${tmp_dir}/$(RELEASE_STRING) -depth -name dkms\*.tar.gz -type f -exec rm -f \{\} \; ; \ +- find $${tmp_dir}/$(RELEASE_STRING) -depth -name dkms-freshmeat.txt -type f -exec rm -f \{\} \; ; \ +- rm -rf $${tmp_dir}/$(RELEASE_STRING)/debian ; \ +- sync ; sync ; sync ; \ +- tar cvzf $(TARBALL) -C $${tmp_dir} $(RELEASE_STRING); \ +- rm -rf $${tmp_dir} ; +- +- +-rpm: $(TARBALL) dkms.spec +- tmp_dir=`mktemp -d --tmpdir dkms.XXXXXXXX` ; \ +- mkdir -p $${tmp_dir}/{BUILD,RPMS,SRPMS,SPECS,SOURCES} ; \ +- cp $(TARBALL) $${tmp_dir}/SOURCES ; \ +- sed "s/\[INSERT_VERSION_HERE\]/$(RELEASE_VERSION)/" dkms.spec > $${tmp_dir}/SPECS/dkms.spec ; \ +- pushd $${tmp_dir} > /dev/null 2>&1; \ +- rpmbuild -ba --define "_topdir $${tmp_dir}" SPECS/dkms.spec ; \ +- popd > /dev/null 2>&1; \ +- cp $${tmp_dir}/RPMS/noarch/* $${tmp_dir}/SRPMS/* dist ; \ +- rm -rf $${tmp_dir} +- +-debmagic: $(TARBALL) +- mkdir -p dist/ +- ln -s $(TARBALL) $(DEB_TMP_BUILDDIR)/$(RELEASE_NAME)_$(RELEASE_VERSION).orig.tar.gz +- tar -C $(DEB_TMP_BUILDDIR) -xzf $(TARBALL) +- cp -ar debian $(DEB_TMP_BUILDDIR)/$(RELEASE_STRING)/debian +- chmod +x $(DEB_TMP_BUILDDIR)/$(RELEASE_STRING)/debian/rules +- cd $(DEB_TMP_BUILDDIR)/$(RELEASE_STRING) ; \ +- dch -v $(RELEASE_VERSION)-0 "New upstream version, $(RELEASE_VERSION)"; \ +- dpkg-buildpackage -D -b -rfakeroot ; \ +- dpkg-buildpackage -D -S -sa -rfakeroot ; \ +- mv ../$(RELEASE_NAME)_* $(TOPDIR)/dist/ ; \ +- cd - +- +-debs: +- tmp_dir=`mktemp -d --tmpdir dkms.XXXXXXXX` ; \ +- make debmagic DEB_TMP_BUILDDIR=$${tmp_dir} DIST=$(DIST); \ +- rm -rf $${tmp_dir} ++ install -p -m 0755 dkms_common.postinst $(DESTDIR)/$(LIBDIR)/common.postinst ++ install -p -m 0755 dkms $(DESTDIR)/$(SBIN) ++ install -p -m 0755 dkms_autoinstaller $(DESTDIR)/$(LIBDIR) ++ install -p -m 0644 dkms_framework.conf $(DESTDIR)/$(ETC)/framework.conf ++ install -p -m 0644 dkms_dbversion $(DESTDIR)/$(VAR) ++ install -p -m 0644 dkms.bash-completion $(DESTDIR)/$(BASHDIR)/dkms ++ install -p -m 0644 dkms.service $(DESTDIR)/$(SYSTEMD_UNITDIR) ++ gzip -c -9 dkms.8 > $(DESTDIR)/$(MAN)/dkms.8.gz ++ chmod 0644 $(DESTDIR)/$(MAN)/dkms.8.gz ++ touch --reference=dkms.8 $(DESTDIR)/$(MAN)/dkms.8.gz ++ mkdir -p -m 0755 $(DESTDIR)/$(KCONF)/prerm.d $(DESTDIR)/$(KCONF)/postinst.d ++ install -p -m 0755 kernel_prerm.d_dkms $(DESTDIR)/$(KCONF)/prerm.d/dkms ++ install -p -m 0755 kernel_postinst.d_dkms $(DESTDIR)/$(KCONF)/postinst.d/dkms + +-fm: +- sed -e "s/\[INSERT_VERSION_HERE\]/$(RELEASE_VERSION)/" dkms-freshmeat.txt.in > dkms-freshmeat.txt diff --git a/packages/sys-kernel/dkms/files/dkms-2.3-systemd-service-fix.patch b/packages/sys-kernel/dkms/files/dkms-2.3-systemd-service-fix.patch new file mode 100644 index 0000000..fe99ed2 --- /dev/null +++ b/packages/sys-kernel/dkms/files/dkms-2.3-systemd-service-fix.patch @@ -0,0 +1,23 @@ +diff -Nur a/dkms.service b/dkms.service +--- a/dkms.service 2016-08-31 18:23:47.000000000 +0100 ++++ b/dkms.service 2017-05-21 11:52:28.087487858 +0100 +@@ -1,11 +1,15 @@ + [Unit] +-Description=Builds and install new kernel modules through DKMS +-Documentation=man:dkms(8) ++Description=DKMS Autoinstall service ++DefaultDependencies=no ++After=local-fs.target ++Conflicts=shutdown.target ++Before=basic.target shutdown.target + + [Service] ++ExecStart=/usr/lib/dkms/dkms_autoinstaller start + Type=oneshot +-RemainAfterExit=true +-ExecStart=/bin/sh -c 'dkms autoinstall --verbose --kernelver $(uname -r)' ++TimeoutSec=0 ++StandardInput=tty + + [Install] + WantedBy=multi-user.target diff --git a/packages/sys-kernel/dkms/files/openrc/initd/dkms b/packages/sys-kernel/dkms/files/openrc/initd/dkms new file mode 100644 index 0000000..d55e04f --- /dev/null +++ b/packages/sys-kernel/dkms/files/openrc/initd/dkms @@ -0,0 +1,22 @@ +#!/sbin/openrc-run +# Copyright 2017 Redcore Linux Project +# Distributed under the terms of the GNU General Public License v2 + +depend() { + after localmount +} + +start() { + ebegin "Starting DKMS (dynamic kernel module support) " + /usr/lib/dkms/dkms_autoinstaller start + eend $? +} + +stop() { + ebegin "Stopping DKMS (dynamic kernel module support)" + eend $? +} + +status() { + /usr/lib/dkms/dkms_autoinstaller status +} -- cgit v1.2.3