Git-Url: 
http://git.frugalware.org/gitweb/gitweb.cgi?p=ryuotesting.git;a=commitdiff;h=f667d79036537b8f4645e6142c6d4ffff0c35747

commit f667d79036537b8f4645e6142c6d4ffff0c35747
Author: James Buren <[email protected]>
Date:   Wed Feb 15 15:17:17 2012 -0600

kernel-initrd.sh: initial draft of new schema

diff --git a/source/include/kernel-initrd.sh b/source/include/kernel-initrd.sh
new file mode 100644
index 0000000..bd87dec
--- /dev/null
+++ b/source/include/kernel-initrd.sh
@@ -0,0 +1,111 @@
+#!/bin/sh
+
+###
+# = kernel-initrd.sh(3)
+# James Buren <[email protected]>
+#
+# == NAME
+# kernel-initrd.sh - for Frugalware
+#
+# == SYNOPSIS
+# Common schema for kernel initrd packages.
+#
+# == EXAMPLE
+# --------------------------------------------------
+# pkgname=kernel-initrd-modules
+# pkgrel=1
+# pkgdesc="Initrd for kernel modules."
+# _F_kernel_initrd_options="--kernel-only"
+# _F_kernel_initrd_name="initrd-modules"
+# _F_kernel_initrd_modules_check=y
+#
+# Finclude kernel-initrd
+#
+# rodepends=("kernel=$_F_kernelver_ver-$_F_kernelver_rel")
+# --------------------------------------------------
+#
+# == OPTIONS
+# * _F_kernel_initrd_modules_check: specify if you want the generated initrd
+# to be checked for kernel modules
+# * _F_kernel_initrd_options: options to pass to dracut
+# * _F_kernel_initrd_name: name of initrd to place under /boot
+###
+Finclude kernel-version
+
+if [ -z "$_F_kernel_initrd_name" ]; then
+       error "_F_kernel_initrd_name is not defined."
+       Fdie
+fi
+
+if [ -z "$_F_kernel_initrd_options" ]; then
+       error "_F_kernel_initrd_options is not defined."
+       Fdie
+fi
+
+###
+# == OVERWRITTEN VARIABLES
+# * pkgver
+# * url
+# * makedepends()
+# * archs()
+# * up2date
+# * groups()
+# * source()
+# * options()
+###
+pkgver=$_F_kernelver_ver
+url="http://www.frugalware.org";
+makedepends=(
+'udev>=175-2'
+'systemd>=38-2'
+'kmod>=4-2'
+'xz'
+'linux-firmware>=20120203-1'
+'eject'
+'sysvinit-tools'
+'less'
+'xfsprogs'
+'jfsutils'
+'reiserfsprogs'
+'mdadm'
+'lvm2'
+'dracut-plymouth'
+'dracut-raid'
+"kernel=$_F_kernelver_ver-$_F_kernelver_rel"
+)
+archs=('i686' 'x86_64')
+up2date="$pkgver"
+groups=('base')
+source=()
+options=('scriptlet')
+
+###
+# == PROVIDED FUNCTIONS
+# * Fbuild_kernel_initrd()
+###
+Fbuild_kernel_initrd()
+{
+       local _UNAME _INITRD
+       _UNAME="$_F_kernelver_ver-fw$_F_kernelver_rel"
+       _INITRD="$_F_kernel_initrd_name-$_UNAME"
+       Fmkdir /boot
+       Fexec /usr/sbin/dracut --no-compress --force -a dmsquash-live \
+               $_F_kernel_initrd_options $_INITRD $_UNAME || Fdie
+       if [ -n "$_F_kernel_initrd_modules_check" ]; then
+               Fmessage "Checking initrd for kernel modules."
+               if ! cpio -t < $_INITRD | grep -q '\.ko\.xz$'; then
+                       error "No kernel modules in initrd."
+                       Fdie
+               fi
+       fi
+       xz < $_INITRD > $Fdestdir/boot/$_INITRD || Fdie
+       Fln $_INITRD /boot/${_INITRD/-$_UNAME/}
+}
+
+###
+# * build() just calls Fbuild_kernel_initrd()
+###
+build()
+{
+       Fbuild_kernel_initrd
+}
_______________________________________________
Frugalware-git mailing list
[email protected]
http://frugalware.org/mailman/listinfo/frugalware-git

Reply via email to