From 4b4ab8af25e20fb0263a67dedbe60c41e547f28d Mon Sep 17 00:00:00 2001 From: KatolaZ Date: Mon, 11 Dec 2017 11:13:19 +0000 Subject: [PATCH 01/18] First working minimal live with the new live-sdk --- blends/devuan-minimal-live/config | 318 +++++++++++++++++ .../devuan-minimal-live.blend | 325 ++++++++++++++++++ sdk | 3 +- 3 files changed, 645 insertions(+), 1 deletion(-) create mode 100644 blends/devuan-minimal-live/config create mode 100644 blends/devuan-minimal-live/devuan-minimal-live.blend diff --git a/blends/devuan-minimal-live/config b/blends/devuan-minimal-live/config new file mode 100644 index 0000000..453546a --- /dev/null +++ b/blends/devuan-minimal-live/config @@ -0,0 +1,318 @@ +#!/usr/bin/env zsh +## configuration file for devuan-live blend + +vars+=(username userpass default_shell mkefi grubversion hookscripts) +arrs+=(custom_deb_packages) + +blend_name="devuan-minimal-live_" + +username="devuan" +userpass="devuan" +default_shell="/bin/bash" + +# comment to disable: +#hookscripts="yes" + +# uncomment to create uefi-bootable iso +#mkefi="yes" +#efi_work="$BLENDPATH/efi-files" + +#grubversion="grub-pc" +#grubversion="grub-efi-amd64" + +release="ascii" +version="2.0.0_beta" +mirror="http://devuan.mine.nu/merged" +section="main" +image_name="${os}_${release}_${version}_${arch}_minimal" + + +base_packages_option=(--no-install-recommends) +extra_packages_option=(--no-install-recommends) + + +### base package set +minimal_base_packages+=( + acpi + acpi-support-base + acpid + at + bash + bash-completion + bc + busybox + console-common + console-data + console-setup + console-setup-linux + coreutils + dash + dc + dialog + discover + dselect + file + groff-base + info + kbd + laptop-detect + locales + lsof + syslinux + util-linux-locales + zsh +) + +## admin package set +minimal_admin_packages+=( + debootstrap + entr + gddrescue + gdisk + htop + iftop + iotop + iw + mtr-tiny + multitail + ncdu + parted + pciutils + psmisc + sudo + time + wavemon + wireless-tools + wpasupplicant + +) + +## editors package set +minimal_editors_packages+=( + ed + nano + vim-tiny + zile +) + + +## networking package set +minimal_net_packages+=( + bind9-host + bittornado + curl + dnsutils + edbrowse + fetchmail + ftp + geoip-bin + irssi + lftp + links2 + lrzsz + mcabber + minicom + mosh + msmtp + mutt + netcat + net-tools + nfacct + nrss + openssh-client + openssh-server + procmail + rsync + telnet + tin + traceroute + w3m + wget + whois +) + + +## productivity package set +minimal_prod_packages+=( + abook + apcalc + aspell + aspell-en + calcurse + clex + dvtm + fbi + fbterm + ghostscript + gnupg + gnupg2 + gnupg-agent + mc + parallel + poppler-utils + rpl + rename + sc + screen + taskwarrior + tmux +) + +## programming package set +minimal_devel_packages+=( + tcc + libc6-dev + m4 + patch + perl + perl-base + perl-modules-5.24 + python2.7-minimal + python3.5-minimal + gawk + guile-2.0 + guile-2.0-libs +) + +## games package set +minimal_games_packages+=( + bastet + bombardier + bsdgames + cavezofphear + crawl + curseofwar + empire + freesweep + gnuchess + greed + matanza + moria + nethack-console + ninvaders + omega-rpg + pacman4console + pente + sudoku +) + +## accessibility package set +minimal_a11y_packages+=( + beep + brltty + espeak + espeakup + yasr +) + + +## multimedia package set +minimal_media_packages+=( + alsa-utils + caca-utils + hasciicam + imagemagick + jhead + moc + radio + sox +) + +## misc package set +minimal_misc_packages+=( + cmatrix + cowsay + eject + figlet + fortunes-min + fortune-mod + gpm + man-db + manpages + manpages-dev + mlocate + termsaver + toilet + toilet-fonts + ttyrec + unzip +) + +### now we include all the package sets +base_packages+=( + $minimal_base_packages + $minimal_admin_packages + $minimal_editors_packages + $minimal_net_packages + $minimal_prod_packages + $minimal_devel_packages + $minimal_games_packages + $minimal_a11y_packages + $minimal_media_packages + $minimal_misc_packages +) + +##echo "extra_packages: ${extra_packages}" + + +#### TODO: ADD setnet +#### TODO: REPLACE twidge (twitter client) +#### TODO: ADD refractasnapshot +#### TODO: ADD refractainstaller +#### TODO: ADD setnet +#### ADDED: geoip-bin + +#extra_packages+=( +# b43-fwcutter +# firmware-atheros +# firmware-b43-installer +# firmware-b43legacy-installer +# firmware-bnx2 +# firmware-bnx2x +# firmware-brcm80211 +# firmware-intelwimax +# firmware-iwlwifi +# firmware-libertas +# firmware-linux-nonfree +# firmware-myricom +# firmware-netxen +# firmware-qlogic +# firmware-ralink +# firmware-realtek +# firmware-ti-connectivity +# firmware-zd1211 +#) + + +purge_packages=( + btrfs-tools + cryptsetup + cryptsetup-bin + debian-keyring + elinks + elinks-data + git + git-core + git-man + liberror-perl + libfsplib0 + libtre5 + openntpd + tasksel + tasksel-data + vim + vim-runtime +) + + +# yad needs to be first +#custom_deb_packages+=(yad_0.27.0-1_${arch}.deb) +# +# +#custom_deb_packages+=( +# refractainstaller-base_9.3.0_all.deb +# refractainstaller-gui_9.2.2_all.deb +# refractasnapshot-base_10.0.2_all.deb +# refractasnapshot-gui_10.0.2_all.deb +# setnet_0.3.2-1_all.deb +#) diff --git a/blends/devuan-minimal-live/devuan-minimal-live.blend b/blends/devuan-minimal-live/devuan-minimal-live.blend new file mode 100644 index 0000000..2e7165f --- /dev/null +++ b/blends/devuan-minimal-live/devuan-minimal-live.blend @@ -0,0 +1,325 @@ +#!/usr/bin/env zsh +# Copyright (c) 2017 Dyne.org Foundation +# live-sdk is written and maintained by Ivan J. +# +# This file is part of live-sdk +# devuan-minimal-live.blend is maintained by KatolaZ +# +# This source code is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This software is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this source code. If not, see . + +BLENDPATH="${BLENDPATH:-$(dirname $0)}" + +source $BLENDPATH/config + +blend_preinst() { + fn blend_preinst + req=(blend_name username userpass) + ckreq || return 1 + + notice "executing $blend_name preinst" + + add-user $username $userpass + + #notice "copying blend-specific debs" + #cp -fv "$BLENDPATH"/*.deb "$R/extra/custom-packages" +} + +blend_postinst() { + fn blend_postinst + req=(strapdir blend_name) + ckreq || return 1 + + notice "executing $blend_name postinst" + + [[ "$mkefi" = "yes" ]] && { + iso_make_efi + iso_write_grub_cfg + } + + #install-custdebs || zerr + #pushd "$strapdir" + # sudo rsync -avx --no-o --no-g "$BLENDPATH"/rootfs-overlay/* . || zerr + #popd + + blend_finalize || zerr +} + +iso_write_isolinux_cfg() { + fn iso_write_isolinux_cfg "(override)" + req=(workdir arch username) + ckreq || return 1 + + notice "writing isolinux configuration" + + cat </dev/null +ui vesamenu.c32 +prompt 0 +menu title devuan-live boot menu +timeout 70 +menu background /isolinux/splash.png +menu color title * #FFFFFFFF * +menu color border * #00000000 #00000000 none +menu color sel * #ffffffff #A1B067 * +menu color hotsel 1;7;37;40 #ffffffff #A1B067 * +menu color tabmsg * #E5FD91 #00000000 * +menu color cmdline 0 #E5FD91 #00000000 +menu tabmsg Press ENTER to boot or TAB to edit a menu entry +menu vshift 12 +menu rows 12 + +label live + menu label ${os}-live (${arch}) + menu default + linux /live/vmlinuz + append initrd=/live/initrd.img boot=live username=${username} + +label lang + menu label Other language (TAB to edit) + linux /live/vmlinuz + append initrd=/live/initrd.img boot=live username=${username} hooks=file:///lib/live/mount/medium/live/hooks/fix-lang.sh locales=it_IT.UTF-8 + +label toram + menu label ${os}-live (${arch}) (load to RAM) + linux /live/vmlinuz + append initrd=/live/initrd.img boot=live username=${username} toram + +label failsafe + menu label ${os}-live (${arch}) (failsafe) + kernel /live/vmlinuz noapic noapm nodma nomce nolapic nosmp nomodeset vga=normal + append initrd=/live/initrd.img boot=live + +label memtest + menu label Memory test + kernel /live/memtest + +endtext +EOF + + notice "copying isolinux overlay" + sudo mkdir -p "$workdir"/binary/{live,isolinux} + #sudo cp -rav "$BLENDPATH"/isolinux-overlay/* "$workdir"/binary/isolinux/ + #[[ -n "$hookscripts" ]] && { + # sudo cp -av "$BLENDPATH"/hooks "$workdir"/binary/live/ + #} +} + +# create /boot and /efi for uefi. +# uefi code borrowed and adapted from David Hare, who borrowed and adapted it +# from similar scripts by Colin Watson and Patrick J. Volkerding. +iso_make_efi() { + fn iso_make_efi + req=(workdir efi_work) + ckreq || return 1 + + notice "creating efi boot files" + + tempdir="$(mktemp -d /tmp/work_temp.XXXX)" + # for initial grub.cfg + mkdir -p "$tempdir"/boot/grub + + + cat >"$tempdir"/boot/grub/grub.cfg <> boot/grub/x86_64-efi/grub.cfg + done + + # Additional modules so we don't boot in blind mode. + # I don't know which ones are really needed. + efimods=( + efi_gop + efi_uga + ieee1275_fb + vbe + vga + video_bochs + video_cirrus + jpeg + png + gfxterm + ) + for i in $efimods; do + print "insmod $i" >> boot/grub/x86_64-efi/grub.cfg + done + + print "source /boot/grub/grub.cfg" >> boot/grub/x86_64-efi/grub.cfg + + pushd "$tempdir" + # make a tarred "memdisk" to embed in the grub image + tar -cvf memdisk boot + + # make the grub image + grub-mkimage -O "x86_64-efi" -m "memdisk" -o "bootx64.efi" \ + -p '(memdisk)/boot/grub' \ + search iso9660 configfile normal memdisk tar cat \ + part_msdos part_gpt fat ext2 ntfs ntfscomp hfsplus \ + chain boot linux + popd + + # copy the grub image to efi/boot (to go later in the device's root) + cp "$tempdir"/bootx64.efi efi/boot + + # Do the boot image "boot/grub/efiboot.img" + dd if=/dev/zero of=boot/grub/efiboot.img bs=1K count=1440 + mkfs.vfat -F 12 boot/grub/efiboot.img + + sudo mkdir img-mnt + sudo mount -o loop boot/grub/efiboot.img img-mnt + sudo mkdir -p img-mnt/efi/boot + sudo cp "$tempdir"/bootx64.efi img-mnt/efi/boot/ + + # copy modules and font + cp $strapdir/usr/lib/grub/x86_64-efi/* boot/grub/x86_64-efi/ + + # if this doesn't work try another font from the same place (grub's default, unicode.pf2, is much larger) + # Either of these will work, and they look the same to me. Unicode seems to work with qemu. -fsr + # cp /usr/share/grub/ascii.pf2 boot/grub/font.pf2 + cp $strapdir/usr/share/grub/unicode.pf2 boot/grub/font.pf2 + + # copy splash + sudo cp -rav "$BLENDPATH"/isolinux-overlay/splash.png boot/grub/splash.png + + # Cleanup efi temps + sudo umount img-mnt + sudo rmdir img-mnt + rm -rf "$tempdir" + + popd + + + # Copy efi files to iso + pushd $workdir + sudo rsync -avx "$efi_work"/boot binary/ + sudo rsync -avx "$efi_work"/efi binary/ + popd + +} + + +iso_write_grub_cfg() { + fn iso_write_grub_cfg "(override)" + req=(workdir arch username) + ckreq || return 1 + + notice "writing grub configuration" + + # Do the main grub.cfg (which gets loaded last): + cat </dev/null +#!/bin/sh + +## permissions +for i in cdrom floppy audio dip video plugdev netdev lpadmin scanner; do + gpasswd -a ${username} \$i +done + +chsh -s "${default_shell}" ${username} +chown -R 1000:1000 /home/${username} +cp /home/${username}/Desktop/refractainstaller.desktop /usr/share/applications/ +chmod +x /home/${username}/Desktop/refractainstaller.desktop + +# This can go away when desktop-base is fixed to do the grub theme. +grep -q GRUB_THEME /etc/default/grub || { + printf "\nGRUB_THEME=/usr/share/desktop-base/grub-themes/desktop-grub-theme/theme.txt\n" >> /etc/default/grub +} + +# Not sure if this has been fixed (in devuan-baseconf?) +mv /data/etc/apt/apt.conf.d/05disable-suggests /etc/apt/apt.conf.d/ +rm -rf /data + +rm -f /etc/fstab +rm -f /etc/popularity-contest.conf + +# For ascii if no display manager is used. Maybe this should have a +# contitional that's turned on/off in the config? +# echo "needs_root_rights=yes" >> /etc/X11/Xwrapper.config + +# Disable contrib and non-free after installing firmware. +sed -i 's/contrib//g' /etc/apt/sources.list +sed -i 's/non-free//g' /etc/apt/sources.list + +## package list +dpkg -l | awk '/^ii/ { print $2 " " $3 }' > /home/${username}/package_list + +apt-get update +apt-get clean +updatedb +EOF + chroot-script -d finalize || zerr +} diff --git a/sdk b/sdk index ef7efeb..cd8839f 100755 --- a/sdk +++ b/sdk @@ -64,6 +64,7 @@ load() { blend_map=( "devuan-live" "$R/blends/devuan-live/devuan-live.blend" + "devuan-minimal-live" "$R/blends/devuan-minimal-live/devuan-minimal-live.blend" "heads" "$R/../heads.blend" "decode" "$R/../decode.blend" ) @@ -86,7 +87,7 @@ load() { source $oslib [[ -f $blendlib ]] && { source $blendlib || zerr - act "$os blend leaded" + act "$os blend loaded" export BLEND=1 } From 3ccaa02cf97eabd9d279e1a941b426e256c7ed24 Mon Sep 17 00:00:00 2001 From: KatolaZ Date: Tue, 12 Dec 2017 00:08:19 +0000 Subject: [PATCH 02/18] First full-fledged minimal-live blend --- blends/devuan-minimal-live/ascii/config | 292 +++++++++++++++++ .../ascii/isolinux_overlay/isolinux.cfg | 58 ++++ .../ascii/isolinux_overlay/splash.png | Bin 0 -> 25634 bytes .../ascii/rootfs_overlay/etc/boot_beep | 74 +++++ .../ascii/rootfs_overlay/etc/init.d/boot_beep | 132 ++++++++ .../ascii/rootfs_overlay/etc/inittab | 84 +++++ .../ascii/rootfs_overlay/etc/motd | 7 + .../etc/wpa_supplicant/wpa_supplicant.conf | 2 + blends/devuan-minimal-live/config | 298 +----------------- .../devuan-minimal-live.blend | 75 ++--- sdk | 8 +- 11 files changed, 691 insertions(+), 339 deletions(-) create mode 100644 blends/devuan-minimal-live/ascii/config create mode 100644 blends/devuan-minimal-live/ascii/isolinux_overlay/isolinux.cfg create mode 100644 blends/devuan-minimal-live/ascii/isolinux_overlay/splash.png create mode 100755 blends/devuan-minimal-live/ascii/rootfs_overlay/etc/boot_beep create mode 100755 blends/devuan-minimal-live/ascii/rootfs_overlay/etc/init.d/boot_beep create mode 100644 blends/devuan-minimal-live/ascii/rootfs_overlay/etc/inittab create mode 100644 blends/devuan-minimal-live/ascii/rootfs_overlay/etc/motd create mode 100644 blends/devuan-minimal-live/ascii/rootfs_overlay/etc/wpa_supplicant/wpa_supplicant.conf diff --git a/blends/devuan-minimal-live/ascii/config b/blends/devuan-minimal-live/ascii/config new file mode 100644 index 0000000..cee0bed --- /dev/null +++ b/blends/devuan-minimal-live/ascii/config @@ -0,0 +1,292 @@ +#!/usr/bin/env zsh +## configuration file for devuan-live blend -- ASCII release + + +version="2.0.0_beta" + + +## +## definition of package sets +## + +### base package set +minimal_base_packages+=( + acpi + acpi-support-base + acpid + at + bash + bash-completion + bc + busybox + console-common + console-data + console-setup + console-setup-linux + coreutils + dash + dc + dialog + discover + dselect + file + groff-base + info + kbd + laptop-detect + locales + lsof + syslinux + util-linux-locales + zsh +) + +## admin package set +minimal_admin_packages+=( + debootstrap + entr + gddrescue + gdisk + htop + iftop + iotop + iw + mtr-tiny + multitail + ncdu + parted + pciutils + psmisc + sudo + time + wavemon + wireless-tools + wpasupplicant + +) + +## editors package set +minimal_editors_packages+=( + ed + nano + vim-tiny + zile +) + + +## networking package set +minimal_net_packages+=( + bind9-host + bittornado + curl + dnsutils + edbrowse + fetchmail + ftp + geoip-bin + irssi + lftp + links2 + lrzsz + mcabber + minicom + mosh + msmtp + mutt + netcat + net-tools + nfacct + nrss + openssh-client + openssh-server + procmail + rsync + telnet + tin + traceroute + w3m + wget + whois +) + + +## productivity package set +minimal_prod_packages+=( + abook + apcalc + aspell + aspell-en + calcurse + clex + dvtm + fbi + fbterm + ghostscript + gnupg + gnupg2 + gnupg-agent + mc + parallel + poppler-utils + rpl + rename + sc + screen + taskwarrior + tmux +) + +## programming package set +minimal_devel_packages+=( + tcc + libc6-dev + m4 + patch + perl + perl-base + perl-modules-5.24 + python2.7-minimal + python3.5-minimal + gawk + guile-2.0 + guile-2.0-libs +) + +## games package set +minimal_games_packages+=( + bastet + bombardier + bsdgames + cavezofphear + crawl + curseofwar + empire + freesweep + gnuchess + greed + matanza + moria + nethack-console + ninvaders + omega-rpg + pacman4console + pente + sudoku +) + +## accessibility package set +minimal_a11y_packages+=( + beep + brltty + espeak + espeakup + yasr +) + + +## multimedia package set +minimal_media_packages+=( + alsa-utils + caca-utils + hasciicam + imagemagick + jhead + moc + radio + sox +) + +## misc package set +minimal_misc_packages+=( + cmatrix + cowsay + eject + figlet + fortunes-min + fortune-mod + gpm + man-db + manpages + manpages-dev + mlocate + termsaver + toilet + toilet-fonts + ttyrec + unzip +) + +### now we include all the package sets +base_packages+=( + $minimal_base_packages + $minimal_admin_packages + $minimal_editors_packages + $minimal_net_packages + $minimal_prod_packages + $minimal_devel_packages + $minimal_games_packages + $minimal_a11y_packages + $minimal_media_packages + $minimal_misc_packages +) + +#### TODO: ADD setnet +#### TODO: REPLACE twidge (twitter client) +#### TODO: ADD refractasnapshot +#### TODO: ADD refractainstaller +#### ADDED: geoip-bin + +#extra_packages+=( +# b43-fwcutter +# firmware-atheros +# firmware-b43-installer +# firmware-b43legacy-installer +# firmware-bnx2 +# firmware-bnx2x +# firmware-brcm80211 +# firmware-intelwimax +# firmware-iwlwifi +# firmware-libertas +# firmware-linux-nonfree +# firmware-myricom +# firmware-netxen +# firmware-qlogic +# firmware-ralink +# firmware-realtek +# firmware-ti-connectivity +# firmware-zd1211 +#) + + +purge_packages=( + btrfs-tools + cryptsetup + cryptsetup-bin + debian-keyring + elinks + elinks-data + git + git-core + git-man + liberror-perl + libfsplib0 + libtre5 + openntpd + tasksel + tasksel-data + vim + vim-runtime +) + + +# yad needs to be first +#custom_deb_packages+=(yad_0.27.0-1_${arch}.deb) +# +# +#custom_deb_packages+=( +# refractainstaller-base_9.3.0_all.deb +# refractainstaller-gui_9.2.2_all.deb +# refractasnapshot-base_10.0.2_all.deb +# refractasnapshot-gui_9.0.2_all.deb +# setnet_0.3.2-1_all.deb +#) diff --git a/blends/devuan-minimal-live/ascii/isolinux_overlay/isolinux.cfg b/blends/devuan-minimal-live/ascii/isolinux_overlay/isolinux.cfg new file mode 100644 index 0000000..b881481 --- /dev/null +++ b/blends/devuan-minimal-live/ascii/isolinux_overlay/isolinux.cfg @@ -0,0 +1,58 @@ +ui vesamenu.c32 +prompt 0 +#menu title devuan-live boot menu +#timeout 70 +menu background /isolinux/splash.png +menu color title * #ff000000 #00ffffff none +menu color border * #00000000 #00000000 none +menu color sel 1;7;37;30 #ffffffff #ff000000 none +menu color unsel 1;30;37 #ff000000 #ffffffff none +menu color hotsel 1;7;37;40 #ffffffff #76a1d0ff * +menu color tabmsg 1;30;37 #ff000000 #ffffffff none +menu color cmdline 1;30;37 #ff000000 #ffffffff none +menu color help 37;40 #ffdddd00 #00000000 none +menu vshift 8 +menu rows 12 +#menu helpmsgrow 15 +#menu cmdlinerow 25 +#menu timeoutrow 26 +#menu tabmsgrow 14 +menu tabmsg Press ENTER to boot or TAB to edit a menu entry + +label std + menu label Devuan Live Minimal (std) + kernel /live/vmlinuz + append initrd=/live/initrd.img boot=live noautologin vga=auto + +label accessible + menu label Devuan Live Minimal (access)  + kernel /live/vmlinuz + append initrd=/live/initrd.img boot=live noautologin 4 vga=normal + +label std-toram + menu label Devuan Live Minimal (std-toram) + kernel /live/vmlinuz + append initrd=/live/initrd.img boot=live noautologin vga=auto toram + +label accessible-toram + menu label Devuan Live Minimal (access-toram)  + kernel /live/vmlinuz + append initrd=/live/initrd.img boot=live noautologin 4 vga=normal toram + +label noprobe + menu label Devuan Live Minimal (no probe) + kernel /live/vmlinuz noapic noapm nodma nomce nolapic nosmp vga=normal + append initrd=/live/initrd.img boot=live + +label memtest + menu label Memory test + kernel /live/memtest86+.bin + +label chain.c32 hd0,0 + menu label Boot hard disk + chain.c32 hd0,0 + +label harddisk + menu label Boot hard disk (old way) + localboot 0x80 + diff --git a/blends/devuan-minimal-live/ascii/isolinux_overlay/splash.png b/blends/devuan-minimal-live/ascii/isolinux_overlay/splash.png new file mode 100644 index 0000000000000000000000000000000000000000..c768b17fc7694915ff51edaed38e1a9639e91fca GIT binary patch literal 25634 zcmd43cRZK<`#!EzT4-k!-O(acNOn@0k&!(TviIIfrD0@;jFONQ*|QQt$lhdcvNzx3 zy5H~5_w)PX_xu0XJ3CebQzI*FEpuH~GfTbjDLxt!l2asNH-+Tw-%fNnsL2l(F3(Vof2K^F zc(tAN)M+Z2o7$b6FT5qfnm-sAhrP*Eb~H0<@96HS>h3naqwRlIK{)yH?S2}WBipte zycKxsme3AmorAAkLLX66y_s7p35h#&_i{RQ)Y5oq)y%KZIp^AodPP=|!+e^gV*ZRf zgbv`pCuGlh&B;#feoXwgpT&=4@4x@zyMJ^0`F~&h>wa)g^uNFVPI{Zs{omj2rlk7+ z*&9dgwzvNNeci}t{C?T#|6a@^*K_XlZtIslDNfS-Qu^=Z{_}f!$M2dN3SM5`m93pS zcRDXLDK<7Xz77oJIR9Fl?VOT-@8&kG4BN@}%#ymls|({Y=Z_pYdbD?N@C@6R z?Cf*w?1u#f1s%FxzT6uqK6o;_t!H6ZIHTByk01Smf}SQOG7k+6k$i}Yvl?r>aN^|2 zLGGhpzI@?!UB4zCdx(~nmV{M3@20Hmp<~C6%?@N6ydUM|4b9EZ^7DDk3%xXrjW2q8d(T?AEKVqgg@u{h*i5zvxM1aXZDKcWY(vLqq?b>7_(}|3mn5>C&aI6%~8j z6BSbr(bG%o>BX(DBqt>N!^-N@+^oRI$48=XY|MD|YH)kIinFsb$=w9`AEl)h3uE{2 z6Fz)Brf%MG(uSw&x!Yv#>ZV$uV~~#zMN(1{en&O+8ejJQ-8-!xKN?zFMTLb)o12>% zPSa@(P-U^ZlTn2$?gFoZJBS(G&v#6eDW78XNPUhg^I(+ERce@^! z^3qqw+w$$$Vq;?^L$5sj@PSb(g6Ec++6iuM?k7*4m``b;VlI`BR_kCKLpGilSjD|)Hz5p-Wh-)}VO}*#qTW+i8zP{5-0-T(j zT3T9<7{v;fx}9=zaxOW}>kF)o#Lzc|rq$F)2`v91U0+`}H#h$i<14WJeq+20mS@4o zcWb^u`Z5=n-uEYa*8AzVqEk|Qe*P5A%ge);^o^$$f6U0Re!bK;rJt#S!!eZkoO~sl zpwpFSV{K>kLao5w@68*kD_5?FN=oX~e-M*bP)Ijw zVP(}U`W4CVL|ksN!WZ4DW1l{KYRxb>eE6KyO@GF##;w;SB=$wQu3kVE`1>mZ3leV1cyX7AcfbXXGqE}m1QSoAE=%EAe;^HDM+;Vn6%%M;$;Ou3W)%o6578Mnh z<*EGX_~hil?@#xw_foq3=_`GO+<8ju5H?r=(wWY~hwl{<(>{NWj*fPZl?ai&d)NJT z%r_jjpn&hjjT`#<`qvYit{@_6B6!b5jW+0WAOl$T{n)dA|9*r7_RS@`DYXaM+PSuq zH2vkiB5@6AIu(Z&C)$LywEjU{6|B!zkr1o6KI7|F&@XWB-aU(fp9d9EHL4NYgTrgc zA;hUΠ9&M<)Vik+ypzC2^xQxqW) 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. +# +# ---------------------------------------------------------------------- +# +# (c) KatolaZ (2016) +# +# ---------------------------------------------------------------------- + + +## +## A small daemon that just beeps every second, until the process +## BB_PROCESS is ready... +## + +. /etc/default/boot_beep + + +## +## First, daemonize the script +## + +if [ "x$1" != "x--" ]; then + $0 -- 1> /dev/null 2> /dev/null & + exit 0 +fi + + +check_process(){ + + while [ 1 -gt 0 ]; do + login_ready=`ps ax | grep -E "${BB_PROCESS}" | grep -v "grep" | wc -l` + if [ $((${login_ready})) -ge 1 ]; then + ### + ### These lines should be put in a separate script, whose name is + ### specified in bb_defaults, to allow custom chimes.... + ### + ### + beep -D 50 -l 150 -f 523.25 + beep -D 50 -l 150 -f 629.25 + beep -D 50 -l 150 -f 784.00 + beep -D 50 -l 150 -f 629.25 + beep -D 50 -l 150 -f 523.25 + exit 0; + else + if [[ ${BB_BOOT_BEEP} = "TRUE" ]]; then + beep -D 100 -l 250 -f 523.25 + fi + sleep ${BB_INTERVAL}; + fi + done +} + +echo $$ >> ${BB_TMPFILE} + +check_process diff --git a/blends/devuan-minimal-live/ascii/rootfs_overlay/etc/init.d/boot_beep b/blends/devuan-minimal-live/ascii/rootfs_overlay/etc/init.d/boot_beep new file mode 100755 index 0000000..eb7ada1 --- /dev/null +++ b/blends/devuan-minimal-live/ascii/rootfs_overlay/etc/init.d/boot_beep @@ -0,0 +1,132 @@ +#!/bin/sh +# ---------------------------------------------------------------------- +# +# This file is part of microdevuan, a set of scripts to create minimal +# devuan live images +# +# ---------------------------------------------------------------------- +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or (at +# your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# +# ---------------------------------------------------------------------- +# +# (c) KatolaZ (2016) +# +# ---------------------------------------------------------------------- + +### BEGIN INIT INFO +# Provides: boot_beep +# Required-Start: mountall +# Required-Stop: +# Default-Start: S +# Default-Stop: +# Short-Description: Boot Beep Daemon +### END INIT INFO + + +. /etc/default/boot_beep + +rm_hanging_instances(){ + + if [ -f ${BB_TMPFILE} ]; then + for i in `cat ${BB_TMPFILE}`; do + is_alive=`ps ax | grep "^${i} " | wc -l` + if [ $((${is_alive})) -gt 0 ]; then + kill -9 ${i} + fi + done + rm ${BB_TMPFILE}; touch ${BB_TMPFILE} + fi + +} + +check_active(){ + + ALIVE=0 + if [ -f ${BB_TMPFILE} ]; then + for i in `cat ${BB_TMPFILE}`; do + is_alive=`ps ax | grep "^${i} " | wc -l` + if [ $((${is_alive})) -gt 0 ]; then + ALIVE=1 + fi + done + if [ ${ALIVE} -ge 1 ]; then + return 1; + else + return 0; + fi + else + return 0 + fi + + +} + + + +start_bb(){ + + check_active + if [ $? != 0 ]; then + echo "beep_boot is already running" + exit 1; + fi + + + rm_hanging_instances + nohup ${BB_SCRIPTFILE} 2>&1 >/dev/null & + exit 0; +} + +stop_bb(){ + check_active + if [ $? == 0 ]; then + echo "beep_boot is not running" + rm ${BB_TMPFILE} + exit 1; + fi + + rm_hanging_instances + exit 0; +} + + + + +case $1 in + + start) + start_bb + exit 0; + ;; + + stop) + stop_bb; + exit 0; + ;; + + status) + check_active + if [ $? == 0 ]; then + echo "boot_beep is not up" + else + echo "boot_beep is up and running" + fi + exit 0 + ;; + + *) + echo "Usage: $0 {start|stop|status}" + exit 1; +esac diff --git a/blends/devuan-minimal-live/ascii/rootfs_overlay/etc/inittab b/blends/devuan-minimal-live/ascii/rootfs_overlay/etc/inittab new file mode 100644 index 0000000..9b66bcb --- /dev/null +++ b/blends/devuan-minimal-live/ascii/rootfs_overlay/etc/inittab @@ -0,0 +1,84 @@ +# /etc/inittab: init(8) configuration. +# $Id: inittab,v 1.91 2002/01/25 13:35:21 miquels Exp $ + +# The default runlevel. +id:2:initdefault: + +# Boot-time system configuration/initialization script. +# This is run first except when booting in emergency (-b) mode. +si::sysinit:/etc/init.d/rcS + +# What to do in single-user mode. +~~:S:wait:/sbin/sulogin + +# /etc/init.d executes the S and K scripts upon change +# of runlevel. +# +# Runlevel 0 is halt. +# Runlevel 1 is single-user. +# Runlevels 2-5 are multi-user. +# Runlevel 6 is reboot. + +l0:0:wait:/etc/init.d/rc 0 +l1:1:wait:/etc/init.d/rc 1 +l2:2:wait:/etc/init.d/rc 2 +l3:3:wait:/etc/init.d/rc 3 +l4:4:wait:/etc/init.d/rc 4 +l5:5:wait:/etc/init.d/rc 5 +l6:6:wait:/etc/init.d/rc 6 +# Normally not reached, but fallthrough in case of emergency. +z6:6:respawn:/sbin/sulogin + +# What to do when CTRL-ALT-DEL is pressed. +ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now + +# Action on special keypress (ALT-UpArrow). +#kb::kbrequest:/bin/echo "Keyboard Request--edit /etc/inittab to let this work." + +# What to do when the power fails/returns. +pf::powerwait:/etc/init.d/powerfail start +pn::powerfailnow:/etc/init.d/powerfail now +po::powerokwait:/etc/init.d/powerfail stop + +# /sbin/getty invocations for the runlevels. +# +# The "id" field MUST be the same as the last +# characters of the device (after "tty"). +# +# Format: +# ::: +# +# Note that on most Debian systems tty7 is used by the X Window System, +# so if you want to add more getty's go ahead but skip tty7 if you run X. +# + +1:235:respawn:/sbin/getty 38400 tty1 +2:23:respawn:/sbin/getty 38400 tty2 +3:23:respawn:/sbin/getty 38400 tty3 +4:23:respawn:/sbin/getty 38400 tty4 +5:23:respawn:/sbin/getty 38400 tty5 +6:23:respawn:/sbin/getty 38400 tty6 + +## +## KatolaZ -- 20160604 -- Accessible runlevel +## +## Runlevel 4 is the "accessible" runlevel. Autologin configured on +## all the ttys. tty1 is root shell +## + +a1:4:respawn:/sbin/getty -a root 38400 tty1 +a2:4:respawn:/sbin/getty -a devuan 38400 tty2 +a3:4:respawn:/sbin/getty -a devuan 38400 tty3 +a4:4:respawn:/sbin/getty -a devuan 38400 tty4 +a5:4:respawn:/sbin/getty -a devuan 38400 tty5 +a6:4:respawn:/sbin/getty -a devuan 38400 tty6 + +# Example how to put a getty on a serial line (for a terminal) +# +#T0:23:respawn:/sbin/getty -L ttyS0 9600 vt100 +#T1:23:respawn:/sbin/getty -L ttyS1 9600 vt100 + +# Example how to put a getty on a modem line. +# +#T3:23:respawn:/sbin/mgetty -x0 -s 57600 ttyS3 + diff --git a/blends/devuan-minimal-live/ascii/rootfs_overlay/etc/motd b/blends/devuan-minimal-live/ascii/rootfs_overlay/etc/motd new file mode 100644 index 0000000..20280cf --- /dev/null +++ b/blends/devuan-minimal-live/ascii/rootfs_overlay/etc/motd @@ -0,0 +1,7 @@ + +Devuan ASCII 2.0.0-beta -- Minimal Live + +Devuan GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent +permitted by applicable law.  + + \ No newline at end of file diff --git a/blends/devuan-minimal-live/ascii/rootfs_overlay/etc/wpa_supplicant/wpa_supplicant.conf b/blends/devuan-minimal-live/ascii/rootfs_overlay/etc/wpa_supplicant/wpa_supplicant.conf new file mode 100644 index 0000000..778a12c --- /dev/null +++ b/blends/devuan-minimal-live/ascii/rootfs_overlay/etc/wpa_supplicant/wpa_supplicant.conf @@ -0,0 +1,2 @@ +ctrl_interface=/run/wpa_supplicant +update_config=1 diff --git a/blends/devuan-minimal-live/config b/blends/devuan-minimal-live/config index 453546a..708f5e0 100644 --- a/blends/devuan-minimal-live/config +++ b/blends/devuan-minimal-live/config @@ -1,11 +1,14 @@ #!/usr/bin/env zsh -## configuration file for devuan-live blend +## configuration file for devuan-minimal-live blend vars+=(username userpass default_shell mkefi grubversion hookscripts) arrs+=(custom_deb_packages) blend_name="devuan-minimal-live_" +release="ascii" + + username="devuan" userpass="devuan" default_shell="/bin/bash" @@ -20,299 +23,24 @@ default_shell="/bin/bash" #grubversion="grub-pc" #grubversion="grub-efi-amd64" -release="ascii" -version="2.0.0_beta" +##release="ascii" mirror="http://devuan.mine.nu/merged" section="main" -image_name="${os}_${release}_${version}_${arch}_minimal" base_packages_option=(--no-install-recommends) extra_packages_option=(--no-install-recommends) -### base package set -minimal_base_packages+=( - acpi - acpi-support-base - acpid - at - bash - bash-completion - bc - busybox - console-common - console-data - console-setup - console-setup-linux - coreutils - dash - dc - dialog - discover - dselect - file - groff-base - info - kbd - laptop-detect - locales - lsof - syslinux - util-linux-locales - zsh -) - -## admin package set -minimal_admin_packages+=( - debootstrap - entr - gddrescue - gdisk - htop - iftop - iotop - iw - mtr-tiny - multitail - ncdu - parted - pciutils - psmisc - sudo - time - wavemon - wireless-tools - wpasupplicant - -) - -## editors package set -minimal_editors_packages+=( - ed - nano - vim-tiny - zile -) +release_conf="$BLENDPATH/$release/config" -## networking package set -minimal_net_packages+=( - bind9-host - bittornado - curl - dnsutils - edbrowse - fetchmail - ftp - geoip-bin - irssi - lftp - links2 - lrzsz - mcabber - minicom - mosh - msmtp - mutt - netcat - net-tools - nfacct - nrss - openssh-client - openssh-server - procmail - rsync - telnet - tin - traceroute - w3m - wget - whois -) +### package sets are defined in the corresponding $release/config file + +source $release_conf + +## image_name depends on release and version + +image_name="${os}_${release}_${version}_${arch}_minimal" -## productivity package set -minimal_prod_packages+=( - abook - apcalc - aspell - aspell-en - calcurse - clex - dvtm - fbi - fbterm - ghostscript - gnupg - gnupg2 - gnupg-agent - mc - parallel - poppler-utils - rpl - rename - sc - screen - taskwarrior - tmux -) - -## programming package set -minimal_devel_packages+=( - tcc - libc6-dev - m4 - patch - perl - perl-base - perl-modules-5.24 - python2.7-minimal - python3.5-minimal - gawk - guile-2.0 - guile-2.0-libs -) - -## games package set -minimal_games_packages+=( - bastet - bombardier - bsdgames - cavezofphear - crawl - curseofwar - empire - freesweep - gnuchess - greed - matanza - moria - nethack-console - ninvaders - omega-rpg - pacman4console - pente - sudoku -) - -## accessibility package set -minimal_a11y_packages+=( - beep - brltty - espeak - espeakup - yasr -) - - -## multimedia package set -minimal_media_packages+=( - alsa-utils - caca-utils - hasciicam - imagemagick - jhead - moc - radio - sox -) - -## misc package set -minimal_misc_packages+=( - cmatrix - cowsay - eject - figlet - fortunes-min - fortune-mod - gpm - man-db - manpages - manpages-dev - mlocate - termsaver - toilet - toilet-fonts - ttyrec - unzip -) - -### now we include all the package sets -base_packages+=( - $minimal_base_packages - $minimal_admin_packages - $minimal_editors_packages - $minimal_net_packages - $minimal_prod_packages - $minimal_devel_packages - $minimal_games_packages - $minimal_a11y_packages - $minimal_media_packages - $minimal_misc_packages -) - -##echo "extra_packages: ${extra_packages}" - - -#### TODO: ADD setnet -#### TODO: REPLACE twidge (twitter client) -#### TODO: ADD refractasnapshot -#### TODO: ADD refractainstaller -#### TODO: ADD setnet -#### ADDED: geoip-bin - -#extra_packages+=( -# b43-fwcutter -# firmware-atheros -# firmware-b43-installer -# firmware-b43legacy-installer -# firmware-bnx2 -# firmware-bnx2x -# firmware-brcm80211 -# firmware-intelwimax -# firmware-iwlwifi -# firmware-libertas -# firmware-linux-nonfree -# firmware-myricom -# firmware-netxen -# firmware-qlogic -# firmware-ralink -# firmware-realtek -# firmware-ti-connectivity -# firmware-zd1211 -#) - - -purge_packages=( - btrfs-tools - cryptsetup - cryptsetup-bin - debian-keyring - elinks - elinks-data - git - git-core - git-man - liberror-perl - libfsplib0 - libtre5 - openntpd - tasksel - tasksel-data - vim - vim-runtime -) - - -# yad needs to be first -#custom_deb_packages+=(yad_0.27.0-1_${arch}.deb) -# -# -#custom_deb_packages+=( -# refractainstaller-base_9.3.0_all.deb -# refractainstaller-gui_9.2.2_all.deb -# refractasnapshot-base_10.0.2_all.deb -# refractasnapshot-gui_10.0.2_all.deb -# setnet_0.3.2-1_all.deb -#) diff --git a/blends/devuan-minimal-live/devuan-minimal-live.blend b/blends/devuan-minimal-live/devuan-minimal-live.blend index 2e7165f..34bf813 100644 --- a/blends/devuan-minimal-live/devuan-minimal-live.blend +++ b/blends/devuan-minimal-live/devuan-minimal-live.blend @@ -22,6 +22,10 @@ BLENDPATH="${BLENDPATH:-$(dirname $0)}" source $BLENDPATH/config +blend_release_path=$BLENDPATH/$release/ + +###source $BLENDPATH/$release/devuan-minimal-live.release + blend_preinst() { fn blend_preinst req=(blend_name username userpass) @@ -31,8 +35,8 @@ blend_preinst() { add-user $username $userpass - #notice "copying blend-specific debs" - #cp -fv "$BLENDPATH"/*.deb "$R/extra/custom-packages" + notice "copying blend-specific debs" + ##cp -fv "$blend_release_path"/custom_debs/*.deb "$R/extra/custom-packages" } blend_postinst() { @@ -47,10 +51,14 @@ blend_postinst() { iso_write_grub_cfg } + ## TODO: #install-custdebs || zerr - #pushd "$strapdir" - # sudo rsync -avx --no-o --no-g "$BLENDPATH"/rootfs-overlay/* . || zerr - #popd + pushd "$strapdir" + sudo rsync -avx --no-o --no-g "$blend_release_path"/rootfs_overlay/* . || zerr + chmod 755 etc/init.d/boot_beep + ## TODO: + ## insserv boot_beep + popd blend_finalize || zerr } @@ -60,55 +68,9 @@ iso_write_isolinux_cfg() { req=(workdir arch username) ckreq || return 1 - notice "writing isolinux configuration" - - cat </dev/null -ui vesamenu.c32 -prompt 0 -menu title devuan-live boot menu -timeout 70 -menu background /isolinux/splash.png -menu color title * #FFFFFFFF * -menu color border * #00000000 #00000000 none -menu color sel * #ffffffff #A1B067 * -menu color hotsel 1;7;37;40 #ffffffff #A1B067 * -menu color tabmsg * #E5FD91 #00000000 * -menu color cmdline 0 #E5FD91 #00000000 -menu tabmsg Press ENTER to boot or TAB to edit a menu entry -menu vshift 12 -menu rows 12 - -label live - menu label ${os}-live (${arch}) - menu default - linux /live/vmlinuz - append initrd=/live/initrd.img boot=live username=${username} - -label lang - menu label Other language (TAB to edit) - linux /live/vmlinuz - append initrd=/live/initrd.img boot=live username=${username} hooks=file:///lib/live/mount/medium/live/hooks/fix-lang.sh locales=it_IT.UTF-8 - -label toram - menu label ${os}-live (${arch}) (load to RAM) - linux /live/vmlinuz - append initrd=/live/initrd.img boot=live username=${username} toram - -label failsafe - menu label ${os}-live (${arch}) (failsafe) - kernel /live/vmlinuz noapic noapm nodma nomce nolapic nosmp nomodeset vga=normal - append initrd=/live/initrd.img boot=live - -label memtest - menu label Memory test - kernel /live/memtest - -endtext -EOF - notice "copying isolinux overlay" sudo mkdir -p "$workdir"/binary/{live,isolinux} - #sudo cp -rav "$BLENDPATH"/isolinux-overlay/* "$workdir"/binary/isolinux/ + sudo cp -rav "$blend_release_path"/isolinux_overlay/* "$workdir"/binary/isolinux/ #[[ -n "$hookscripts" ]] && { # sudo cp -av "$BLENDPATH"/hooks "$workdir"/binary/live/ #} @@ -200,7 +162,7 @@ EOF cp $strapdir/usr/share/grub/unicode.pf2 boot/grub/font.pf2 # copy splash - sudo cp -rav "$BLENDPATH"/isolinux-overlay/splash.png boot/grub/splash.png + sudo cp -rav "$blend_release_path"/isolinux_overlay/splash.png boot/grub/splash.png # Cleanup efi temps sudo umount img-mnt @@ -321,5 +283,12 @@ apt-get update apt-get clean updatedb EOF + + ## TODO: + ## + ## - configure framebuffer + ## - updatedb + ## - insserv boot_beep + ## chroot-script -d finalize || zerr } diff --git a/sdk b/sdk index cd8839f..b65de9c 100755 --- a/sdk +++ b/sdk @@ -30,6 +30,7 @@ source $R/lib/zuper/zuper vars+=(livesdk_version) vars+=(R workdir strapdir) vars+=(os oslib blendlib) +vars+=(release) vars+=(MAKEOPTS) ## global arrs @@ -49,6 +50,9 @@ load() { os="$1" arch="$2" blend="$3" + + [[ $# -gt 3 ]] && release="$4" + req=(os arch) ckreq || return 1 @@ -87,7 +91,7 @@ load() { source $oslib [[ -f $blendlib ]] && { source $blendlib || zerr - act "$os blend loaded" + act "$os blend loaded -- ($blend -- release: $release)" export BLEND=1 } @@ -105,3 +109,5 @@ TRAPZERR() { zerr; return $? } notice "live-sdk loaded" export PROMPT="%F{yellow}%(?..%? )%{$reset_color%}livesdk@%{$fg[red]%}%m %{$reset_color%} %{$fg[blue]%}%#%{$fg_bold[blue]%}%{$reset_color%} " + +echo "release is: $release" From 9a912fe8334d723c5d731998b6a611f720e5132c Mon Sep 17 00:00:00 2001 From: KatolaZ Date: Mon, 11 Dec 2017 11:13:19 +0000 Subject: [PATCH 03/18] First working minimal live with the new live-sdk --- blends/devuan-minimal-live/config | 318 +++++++++++++++++ .../devuan-minimal-live.blend | 325 ++++++++++++++++++ sdk | 3 +- 3 files changed, 645 insertions(+), 1 deletion(-) create mode 100644 blends/devuan-minimal-live/config create mode 100644 blends/devuan-minimal-live/devuan-minimal-live.blend diff --git a/blends/devuan-minimal-live/config b/blends/devuan-minimal-live/config new file mode 100644 index 0000000..453546a --- /dev/null +++ b/blends/devuan-minimal-live/config @@ -0,0 +1,318 @@ +#!/usr/bin/env zsh +## configuration file for devuan-live blend + +vars+=(username userpass default_shell mkefi grubversion hookscripts) +arrs+=(custom_deb_packages) + +blend_name="devuan-minimal-live_" + +username="devuan" +userpass="devuan" +default_shell="/bin/bash" + +# comment to disable: +#hookscripts="yes" + +# uncomment to create uefi-bootable iso +#mkefi="yes" +#efi_work="$BLENDPATH/efi-files" + +#grubversion="grub-pc" +#grubversion="grub-efi-amd64" + +release="ascii" +version="2.0.0_beta" +mirror="http://devuan.mine.nu/merged" +section="main" +image_name="${os}_${release}_${version}_${arch}_minimal" + + +base_packages_option=(--no-install-recommends) +extra_packages_option=(--no-install-recommends) + + +### base package set +minimal_base_packages+=( + acpi + acpi-support-base + acpid + at + bash + bash-completion + bc + busybox + console-common + console-data + console-setup + console-setup-linux + coreutils + dash + dc + dialog + discover + dselect + file + groff-base + info + kbd + laptop-detect + locales + lsof + syslinux + util-linux-locales + zsh +) + +## admin package set +minimal_admin_packages+=( + debootstrap + entr + gddrescue + gdisk + htop + iftop + iotop + iw + mtr-tiny + multitail + ncdu + parted + pciutils + psmisc + sudo + time + wavemon + wireless-tools + wpasupplicant + +) + +## editors package set +minimal_editors_packages+=( + ed + nano + vim-tiny + zile +) + + +## networking package set +minimal_net_packages+=( + bind9-host + bittornado + curl + dnsutils + edbrowse + fetchmail + ftp + geoip-bin + irssi + lftp + links2 + lrzsz + mcabber + minicom + mosh + msmtp + mutt + netcat + net-tools + nfacct + nrss + openssh-client + openssh-server + procmail + rsync + telnet + tin + traceroute + w3m + wget + whois +) + + +## productivity package set +minimal_prod_packages+=( + abook + apcalc + aspell + aspell-en + calcurse + clex + dvtm + fbi + fbterm + ghostscript + gnupg + gnupg2 + gnupg-agent + mc + parallel + poppler-utils + rpl + rename + sc + screen + taskwarrior + tmux +) + +## programming package set +minimal_devel_packages+=( + tcc + libc6-dev + m4 + patch + perl + perl-base + perl-modules-5.24 + python2.7-minimal + python3.5-minimal + gawk + guile-2.0 + guile-2.0-libs +) + +## games package set +minimal_games_packages+=( + bastet + bombardier + bsdgames + cavezofphear + crawl + curseofwar + empire + freesweep + gnuchess + greed + matanza + moria + nethack-console + ninvaders + omega-rpg + pacman4console + pente + sudoku +) + +## accessibility package set +minimal_a11y_packages+=( + beep + brltty + espeak + espeakup + yasr +) + + +## multimedia package set +minimal_media_packages+=( + alsa-utils + caca-utils + hasciicam + imagemagick + jhead + moc + radio + sox +) + +## misc package set +minimal_misc_packages+=( + cmatrix + cowsay + eject + figlet + fortunes-min + fortune-mod + gpm + man-db + manpages + manpages-dev + mlocate + termsaver + toilet + toilet-fonts + ttyrec + unzip +) + +### now we include all the package sets +base_packages+=( + $minimal_base_packages + $minimal_admin_packages + $minimal_editors_packages + $minimal_net_packages + $minimal_prod_packages + $minimal_devel_packages + $minimal_games_packages + $minimal_a11y_packages + $minimal_media_packages + $minimal_misc_packages +) + +##echo "extra_packages: ${extra_packages}" + + +#### TODO: ADD setnet +#### TODO: REPLACE twidge (twitter client) +#### TODO: ADD refractasnapshot +#### TODO: ADD refractainstaller +#### TODO: ADD setnet +#### ADDED: geoip-bin + +#extra_packages+=( +# b43-fwcutter +# firmware-atheros +# firmware-b43-installer +# firmware-b43legacy-installer +# firmware-bnx2 +# firmware-bnx2x +# firmware-brcm80211 +# firmware-intelwimax +# firmware-iwlwifi +# firmware-libertas +# firmware-linux-nonfree +# firmware-myricom +# firmware-netxen +# firmware-qlogic +# firmware-ralink +# firmware-realtek +# firmware-ti-connectivity +# firmware-zd1211 +#) + + +purge_packages=( + btrfs-tools + cryptsetup + cryptsetup-bin + debian-keyring + elinks + elinks-data + git + git-core + git-man + liberror-perl + libfsplib0 + libtre5 + openntpd + tasksel + tasksel-data + vim + vim-runtime +) + + +# yad needs to be first +#custom_deb_packages+=(yad_0.27.0-1_${arch}.deb) +# +# +#custom_deb_packages+=( +# refractainstaller-base_9.3.0_all.deb +# refractainstaller-gui_9.2.2_all.deb +# refractasnapshot-base_10.0.2_all.deb +# refractasnapshot-gui_10.0.2_all.deb +# setnet_0.3.2-1_all.deb +#) diff --git a/blends/devuan-minimal-live/devuan-minimal-live.blend b/blends/devuan-minimal-live/devuan-minimal-live.blend new file mode 100644 index 0000000..2e7165f --- /dev/null +++ b/blends/devuan-minimal-live/devuan-minimal-live.blend @@ -0,0 +1,325 @@ +#!/usr/bin/env zsh +# Copyright (c) 2017 Dyne.org Foundation +# live-sdk is written and maintained by Ivan J. +# +# This file is part of live-sdk +# devuan-minimal-live.blend is maintained by KatolaZ +# +# This source code is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This software is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this source code. If not, see . + +BLENDPATH="${BLENDPATH:-$(dirname $0)}" + +source $BLENDPATH/config + +blend_preinst() { + fn blend_preinst + req=(blend_name username userpass) + ckreq || return 1 + + notice "executing $blend_name preinst" + + add-user $username $userpass + + #notice "copying blend-specific debs" + #cp -fv "$BLENDPATH"/*.deb "$R/extra/custom-packages" +} + +blend_postinst() { + fn blend_postinst + req=(strapdir blend_name) + ckreq || return 1 + + notice "executing $blend_name postinst" + + [[ "$mkefi" = "yes" ]] && { + iso_make_efi + iso_write_grub_cfg + } + + #install-custdebs || zerr + #pushd "$strapdir" + # sudo rsync -avx --no-o --no-g "$BLENDPATH"/rootfs-overlay/* . || zerr + #popd + + blend_finalize || zerr +} + +iso_write_isolinux_cfg() { + fn iso_write_isolinux_cfg "(override)" + req=(workdir arch username) + ckreq || return 1 + + notice "writing isolinux configuration" + + cat </dev/null +ui vesamenu.c32 +prompt 0 +menu title devuan-live boot menu +timeout 70 +menu background /isolinux/splash.png +menu color title * #FFFFFFFF * +menu color border * #00000000 #00000000 none +menu color sel * #ffffffff #A1B067 * +menu color hotsel 1;7;37;40 #ffffffff #A1B067 * +menu color tabmsg * #E5FD91 #00000000 * +menu color cmdline 0 #E5FD91 #00000000 +menu tabmsg Press ENTER to boot or TAB to edit a menu entry +menu vshift 12 +menu rows 12 + +label live + menu label ${os}-live (${arch}) + menu default + linux /live/vmlinuz + append initrd=/live/initrd.img boot=live username=${username} + +label lang + menu label Other language (TAB to edit) + linux /live/vmlinuz + append initrd=/live/initrd.img boot=live username=${username} hooks=file:///lib/live/mount/medium/live/hooks/fix-lang.sh locales=it_IT.UTF-8 + +label toram + menu label ${os}-live (${arch}) (load to RAM) + linux /live/vmlinuz + append initrd=/live/initrd.img boot=live username=${username} toram + +label failsafe + menu label ${os}-live (${arch}) (failsafe) + kernel /live/vmlinuz noapic noapm nodma nomce nolapic nosmp nomodeset vga=normal + append initrd=/live/initrd.img boot=live + +label memtest + menu label Memory test + kernel /live/memtest + +endtext +EOF + + notice "copying isolinux overlay" + sudo mkdir -p "$workdir"/binary/{live,isolinux} + #sudo cp -rav "$BLENDPATH"/isolinux-overlay/* "$workdir"/binary/isolinux/ + #[[ -n "$hookscripts" ]] && { + # sudo cp -av "$BLENDPATH"/hooks "$workdir"/binary/live/ + #} +} + +# create /boot and /efi for uefi. +# uefi code borrowed and adapted from David Hare, who borrowed and adapted it +# from similar scripts by Colin Watson and Patrick J. Volkerding. +iso_make_efi() { + fn iso_make_efi + req=(workdir efi_work) + ckreq || return 1 + + notice "creating efi boot files" + + tempdir="$(mktemp -d /tmp/work_temp.XXXX)" + # for initial grub.cfg + mkdir -p "$tempdir"/boot/grub + + + cat >"$tempdir"/boot/grub/grub.cfg <> boot/grub/x86_64-efi/grub.cfg + done + + # Additional modules so we don't boot in blind mode. + # I don't know which ones are really needed. + efimods=( + efi_gop + efi_uga + ieee1275_fb + vbe + vga + video_bochs + video_cirrus + jpeg + png + gfxterm + ) + for i in $efimods; do + print "insmod $i" >> boot/grub/x86_64-efi/grub.cfg + done + + print "source /boot/grub/grub.cfg" >> boot/grub/x86_64-efi/grub.cfg + + pushd "$tempdir" + # make a tarred "memdisk" to embed in the grub image + tar -cvf memdisk boot + + # make the grub image + grub-mkimage -O "x86_64-efi" -m "memdisk" -o "bootx64.efi" \ + -p '(memdisk)/boot/grub' \ + search iso9660 configfile normal memdisk tar cat \ + part_msdos part_gpt fat ext2 ntfs ntfscomp hfsplus \ + chain boot linux + popd + + # copy the grub image to efi/boot (to go later in the device's root) + cp "$tempdir"/bootx64.efi efi/boot + + # Do the boot image "boot/grub/efiboot.img" + dd if=/dev/zero of=boot/grub/efiboot.img bs=1K count=1440 + mkfs.vfat -F 12 boot/grub/efiboot.img + + sudo mkdir img-mnt + sudo mount -o loop boot/grub/efiboot.img img-mnt + sudo mkdir -p img-mnt/efi/boot + sudo cp "$tempdir"/bootx64.efi img-mnt/efi/boot/ + + # copy modules and font + cp $strapdir/usr/lib/grub/x86_64-efi/* boot/grub/x86_64-efi/ + + # if this doesn't work try another font from the same place (grub's default, unicode.pf2, is much larger) + # Either of these will work, and they look the same to me. Unicode seems to work with qemu. -fsr + # cp /usr/share/grub/ascii.pf2 boot/grub/font.pf2 + cp $strapdir/usr/share/grub/unicode.pf2 boot/grub/font.pf2 + + # copy splash + sudo cp -rav "$BLENDPATH"/isolinux-overlay/splash.png boot/grub/splash.png + + # Cleanup efi temps + sudo umount img-mnt + sudo rmdir img-mnt + rm -rf "$tempdir" + + popd + + + # Copy efi files to iso + pushd $workdir + sudo rsync -avx "$efi_work"/boot binary/ + sudo rsync -avx "$efi_work"/efi binary/ + popd + +} + + +iso_write_grub_cfg() { + fn iso_write_grub_cfg "(override)" + req=(workdir arch username) + ckreq || return 1 + + notice "writing grub configuration" + + # Do the main grub.cfg (which gets loaded last): + cat </dev/null +#!/bin/sh + +## permissions +for i in cdrom floppy audio dip video plugdev netdev lpadmin scanner; do + gpasswd -a ${username} \$i +done + +chsh -s "${default_shell}" ${username} +chown -R 1000:1000 /home/${username} +cp /home/${username}/Desktop/refractainstaller.desktop /usr/share/applications/ +chmod +x /home/${username}/Desktop/refractainstaller.desktop + +# This can go away when desktop-base is fixed to do the grub theme. +grep -q GRUB_THEME /etc/default/grub || { + printf "\nGRUB_THEME=/usr/share/desktop-base/grub-themes/desktop-grub-theme/theme.txt\n" >> /etc/default/grub +} + +# Not sure if this has been fixed (in devuan-baseconf?) +mv /data/etc/apt/apt.conf.d/05disable-suggests /etc/apt/apt.conf.d/ +rm -rf /data + +rm -f /etc/fstab +rm -f /etc/popularity-contest.conf + +# For ascii if no display manager is used. Maybe this should have a +# contitional that's turned on/off in the config? +# echo "needs_root_rights=yes" >> /etc/X11/Xwrapper.config + +# Disable contrib and non-free after installing firmware. +sed -i 's/contrib//g' /etc/apt/sources.list +sed -i 's/non-free//g' /etc/apt/sources.list + +## package list +dpkg -l | awk '/^ii/ { print $2 " " $3 }' > /home/${username}/package_list + +apt-get update +apt-get clean +updatedb +EOF + chroot-script -d finalize || zerr +} diff --git a/sdk b/sdk index ef7efeb..cd8839f 100755 --- a/sdk +++ b/sdk @@ -64,6 +64,7 @@ load() { blend_map=( "devuan-live" "$R/blends/devuan-live/devuan-live.blend" + "devuan-minimal-live" "$R/blends/devuan-minimal-live/devuan-minimal-live.blend" "heads" "$R/../heads.blend" "decode" "$R/../decode.blend" ) @@ -86,7 +87,7 @@ load() { source $oslib [[ -f $blendlib ]] && { source $blendlib || zerr - act "$os blend leaded" + act "$os blend loaded" export BLEND=1 } From d02b803b8eae86cc0441a8370adbaddcf20b9bde Mon Sep 17 00:00:00 2001 From: KatolaZ Date: Tue, 12 Dec 2017 00:08:19 +0000 Subject: [PATCH 04/18] First full-fledged minimal-live blend --- blends/devuan-minimal-live/ascii/config | 292 +++++++++++++++++ .../ascii/isolinux_overlay/isolinux.cfg | 58 ++++ .../ascii/isolinux_overlay/splash.png | Bin 0 -> 25634 bytes .../ascii/rootfs_overlay/etc/boot_beep | 74 +++++ .../ascii/rootfs_overlay/etc/init.d/boot_beep | 132 ++++++++ .../ascii/rootfs_overlay/etc/inittab | 84 +++++ .../ascii/rootfs_overlay/etc/motd | 7 + .../etc/wpa_supplicant/wpa_supplicant.conf | 2 + blends/devuan-minimal-live/config | 298 +----------------- .../devuan-minimal-live.blend | 75 ++--- sdk | 8 +- 11 files changed, 691 insertions(+), 339 deletions(-) create mode 100644 blends/devuan-minimal-live/ascii/config create mode 100644 blends/devuan-minimal-live/ascii/isolinux_overlay/isolinux.cfg create mode 100644 blends/devuan-minimal-live/ascii/isolinux_overlay/splash.png create mode 100755 blends/devuan-minimal-live/ascii/rootfs_overlay/etc/boot_beep create mode 100755 blends/devuan-minimal-live/ascii/rootfs_overlay/etc/init.d/boot_beep create mode 100644 blends/devuan-minimal-live/ascii/rootfs_overlay/etc/inittab create mode 100644 blends/devuan-minimal-live/ascii/rootfs_overlay/etc/motd create mode 100644 blends/devuan-minimal-live/ascii/rootfs_overlay/etc/wpa_supplicant/wpa_supplicant.conf diff --git a/blends/devuan-minimal-live/ascii/config b/blends/devuan-minimal-live/ascii/config new file mode 100644 index 0000000..cee0bed --- /dev/null +++ b/blends/devuan-minimal-live/ascii/config @@ -0,0 +1,292 @@ +#!/usr/bin/env zsh +## configuration file for devuan-live blend -- ASCII release + + +version="2.0.0_beta" + + +## +## definition of package sets +## + +### base package set +minimal_base_packages+=( + acpi + acpi-support-base + acpid + at + bash + bash-completion + bc + busybox + console-common + console-data + console-setup + console-setup-linux + coreutils + dash + dc + dialog + discover + dselect + file + groff-base + info + kbd + laptop-detect + locales + lsof + syslinux + util-linux-locales + zsh +) + +## admin package set +minimal_admin_packages+=( + debootstrap + entr + gddrescue + gdisk + htop + iftop + iotop + iw + mtr-tiny + multitail + ncdu + parted + pciutils + psmisc + sudo + time + wavemon + wireless-tools + wpasupplicant + +) + +## editors package set +minimal_editors_packages+=( + ed + nano + vim-tiny + zile +) + + +## networking package set +minimal_net_packages+=( + bind9-host + bittornado + curl + dnsutils + edbrowse + fetchmail + ftp + geoip-bin + irssi + lftp + links2 + lrzsz + mcabber + minicom + mosh + msmtp + mutt + netcat + net-tools + nfacct + nrss + openssh-client + openssh-server + procmail + rsync + telnet + tin + traceroute + w3m + wget + whois +) + + +## productivity package set +minimal_prod_packages+=( + abook + apcalc + aspell + aspell-en + calcurse + clex + dvtm + fbi + fbterm + ghostscript + gnupg + gnupg2 + gnupg-agent + mc + parallel + poppler-utils + rpl + rename + sc + screen + taskwarrior + tmux +) + +## programming package set +minimal_devel_packages+=( + tcc + libc6-dev + m4 + patch + perl + perl-base + perl-modules-5.24 + python2.7-minimal + python3.5-minimal + gawk + guile-2.0 + guile-2.0-libs +) + +## games package set +minimal_games_packages+=( + bastet + bombardier + bsdgames + cavezofphear + crawl + curseofwar + empire + freesweep + gnuchess + greed + matanza + moria + nethack-console + ninvaders + omega-rpg + pacman4console + pente + sudoku +) + +## accessibility package set +minimal_a11y_packages+=( + beep + brltty + espeak + espeakup + yasr +) + + +## multimedia package set +minimal_media_packages+=( + alsa-utils + caca-utils + hasciicam + imagemagick + jhead + moc + radio + sox +) + +## misc package set +minimal_misc_packages+=( + cmatrix + cowsay + eject + figlet + fortunes-min + fortune-mod + gpm + man-db + manpages + manpages-dev + mlocate + termsaver + toilet + toilet-fonts + ttyrec + unzip +) + +### now we include all the package sets +base_packages+=( + $minimal_base_packages + $minimal_admin_packages + $minimal_editors_packages + $minimal_net_packages + $minimal_prod_packages + $minimal_devel_packages + $minimal_games_packages + $minimal_a11y_packages + $minimal_media_packages + $minimal_misc_packages +) + +#### TODO: ADD setnet +#### TODO: REPLACE twidge (twitter client) +#### TODO: ADD refractasnapshot +#### TODO: ADD refractainstaller +#### ADDED: geoip-bin + +#extra_packages+=( +# b43-fwcutter +# firmware-atheros +# firmware-b43-installer +# firmware-b43legacy-installer +# firmware-bnx2 +# firmware-bnx2x +# firmware-brcm80211 +# firmware-intelwimax +# firmware-iwlwifi +# firmware-libertas +# firmware-linux-nonfree +# firmware-myricom +# firmware-netxen +# firmware-qlogic +# firmware-ralink +# firmware-realtek +# firmware-ti-connectivity +# firmware-zd1211 +#) + + +purge_packages=( + btrfs-tools + cryptsetup + cryptsetup-bin + debian-keyring + elinks + elinks-data + git + git-core + git-man + liberror-perl + libfsplib0 + libtre5 + openntpd + tasksel + tasksel-data + vim + vim-runtime +) + + +# yad needs to be first +#custom_deb_packages+=(yad_0.27.0-1_${arch}.deb) +# +# +#custom_deb_packages+=( +# refractainstaller-base_9.3.0_all.deb +# refractainstaller-gui_9.2.2_all.deb +# refractasnapshot-base_10.0.2_all.deb +# refractasnapshot-gui_9.0.2_all.deb +# setnet_0.3.2-1_all.deb +#) diff --git a/blends/devuan-minimal-live/ascii/isolinux_overlay/isolinux.cfg b/blends/devuan-minimal-live/ascii/isolinux_overlay/isolinux.cfg new file mode 100644 index 0000000..b881481 --- /dev/null +++ b/blends/devuan-minimal-live/ascii/isolinux_overlay/isolinux.cfg @@ -0,0 +1,58 @@ +ui vesamenu.c32 +prompt 0 +#menu title devuan-live boot menu +#timeout 70 +menu background /isolinux/splash.png +menu color title * #ff000000 #00ffffff none +menu color border * #00000000 #00000000 none +menu color sel 1;7;37;30 #ffffffff #ff000000 none +menu color unsel 1;30;37 #ff000000 #ffffffff none +menu color hotsel 1;7;37;40 #ffffffff #76a1d0ff * +menu color tabmsg 1;30;37 #ff000000 #ffffffff none +menu color cmdline 1;30;37 #ff000000 #ffffffff none +menu color help 37;40 #ffdddd00 #00000000 none +menu vshift 8 +menu rows 12 +#menu helpmsgrow 15 +#menu cmdlinerow 25 +#menu timeoutrow 26 +#menu tabmsgrow 14 +menu tabmsg Press ENTER to boot or TAB to edit a menu entry + +label std + menu label Devuan Live Minimal (std) + kernel /live/vmlinuz + append initrd=/live/initrd.img boot=live noautologin vga=auto + +label accessible + menu label Devuan Live Minimal (access)  + kernel /live/vmlinuz + append initrd=/live/initrd.img boot=live noautologin 4 vga=normal + +label std-toram + menu label Devuan Live Minimal (std-toram) + kernel /live/vmlinuz + append initrd=/live/initrd.img boot=live noautologin vga=auto toram + +label accessible-toram + menu label Devuan Live Minimal (access-toram)  + kernel /live/vmlinuz + append initrd=/live/initrd.img boot=live noautologin 4 vga=normal toram + +label noprobe + menu label Devuan Live Minimal (no probe) + kernel /live/vmlinuz noapic noapm nodma nomce nolapic nosmp vga=normal + append initrd=/live/initrd.img boot=live + +label memtest + menu label Memory test + kernel /live/memtest86+.bin + +label chain.c32 hd0,0 + menu label Boot hard disk + chain.c32 hd0,0 + +label harddisk + menu label Boot hard disk (old way) + localboot 0x80 + diff --git a/blends/devuan-minimal-live/ascii/isolinux_overlay/splash.png b/blends/devuan-minimal-live/ascii/isolinux_overlay/splash.png new file mode 100644 index 0000000000000000000000000000000000000000..c768b17fc7694915ff51edaed38e1a9639e91fca GIT binary patch literal 25634 zcmd43cRZK<`#!EzT4-k!-O(acNOn@0k&!(TviIIfrD0@;jFONQ*|QQt$lhdcvNzx3 zy5H~5_w)PX_xu0XJ3CebQzI*FEpuH~GfTbjDLxt!l2asNH-+Tw-%fNnsL2l(F3(Vof2K^F zc(tAN)M+Z2o7$b6FT5qfnm-sAhrP*Eb~H0<@96HS>h3naqwRlIK{)yH?S2}WBipte zycKxsme3AmorAAkLLX66y_s7p35h#&_i{RQ)Y5oq)y%KZIp^AodPP=|!+e^gV*ZRf zgbv`pCuGlh&B;#feoXwgpT&=4@4x@zyMJ^0`F~&h>wa)g^uNFVPI{Zs{omj2rlk7+ z*&9dgwzvNNeci}t{C?T#|6a@^*K_XlZtIslDNfS-Qu^=Z{_}f!$M2dN3SM5`m93pS zcRDXLDK<7Xz77oJIR9Fl?VOT-@8&kG4BN@}%#ymls|({Y=Z_pYdbD?N@C@6R z?Cf*w?1u#f1s%FxzT6uqK6o;_t!H6ZIHTByk01Smf}SQOG7k+6k$i}Yvl?r>aN^|2 zLGGhpzI@?!UB4zCdx(~nmV{M3@20Hmp<~C6%?@N6ydUM|4b9EZ^7DDk3%xXrjW2q8d(T?AEKVqgg@u{h*i5zvxM1aXZDKcWY(vLqq?b>7_(}|3mn5>C&aI6%~8j z6BSbr(bG%o>BX(DBqt>N!^-N@+^oRI$48=XY|MD|YH)kIinFsb$=w9`AEl)h3uE{2 z6Fz)Brf%MG(uSw&x!Yv#>ZV$uV~~#zMN(1{en&O+8ejJQ-8-!xKN?zFMTLb)o12>% zPSa@(P-U^ZlTn2$?gFoZJBS(G&v#6eDW78XNPUhg^I(+ERce@^! z^3qqw+w$$$Vq;?^L$5sj@PSb(g6Ec++6iuM?k7*4m``b;VlI`BR_kCKLpGilSjD|)Hz5p-Wh-)}VO}*#qTW+i8zP{5-0-T(j zT3T9<7{v;fx}9=zaxOW}>kF)o#Lzc|rq$F)2`v91U0+`}H#h$i<14WJeq+20mS@4o zcWb^u`Z5=n-uEYa*8AzVqEk|Qe*P5A%ge);^o^$$f6U0Re!bK;rJt#S!!eZkoO~sl zpwpFSV{K>kLao5w@68*kD_5?FN=oX~e-M*bP)Ijw zVP(}U`W4CVL|ksN!WZ4DW1l{KYRxb>eE6KyO@GF##;w;SB=$wQu3kVE`1>mZ3leV1cyX7AcfbXXGqE}m1QSoAE=%EAe;^HDM+;Vn6%%M;$;Ou3W)%o6578Mnh z<*EGX_~hil?@#xw_foq3=_`GO+<8ju5H?r=(wWY~hwl{<(>{NWj*fPZl?ai&d)NJT z%r_jjpn&hjjT`#<`qvYit{@_6B6!b5jW+0WAOl$T{n)dA|9*r7_RS@`DYXaM+PSuq zH2vkiB5@6AIu(Z&C)$LywEjU{6|B!zkr1o6KI7|F&@XWB-aU(fp9d9EHL4NYgTrgc zA;hUΠ9&M<)Vik+ypzC2^xQxqW) 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. +# +# ---------------------------------------------------------------------- +# +# (c) KatolaZ (2016) +# +# ---------------------------------------------------------------------- + + +## +## A small daemon that just beeps every second, until the process +## BB_PROCESS is ready... +## + +. /etc/default/boot_beep + + +## +## First, daemonize the script +## + +if [ "x$1" != "x--" ]; then + $0 -- 1> /dev/null 2> /dev/null & + exit 0 +fi + + +check_process(){ + + while [ 1 -gt 0 ]; do + login_ready=`ps ax | grep -E "${BB_PROCESS}" | grep -v "grep" | wc -l` + if [ $((${login_ready})) -ge 1 ]; then + ### + ### These lines should be put in a separate script, whose name is + ### specified in bb_defaults, to allow custom chimes.... + ### + ### + beep -D 50 -l 150 -f 523.25 + beep -D 50 -l 150 -f 629.25 + beep -D 50 -l 150 -f 784.00 + beep -D 50 -l 150 -f 629.25 + beep -D 50 -l 150 -f 523.25 + exit 0; + else + if [[ ${BB_BOOT_BEEP} = "TRUE" ]]; then + beep -D 100 -l 250 -f 523.25 + fi + sleep ${BB_INTERVAL}; + fi + done +} + +echo $$ >> ${BB_TMPFILE} + +check_process diff --git a/blends/devuan-minimal-live/ascii/rootfs_overlay/etc/init.d/boot_beep b/blends/devuan-minimal-live/ascii/rootfs_overlay/etc/init.d/boot_beep new file mode 100755 index 0000000..eb7ada1 --- /dev/null +++ b/blends/devuan-minimal-live/ascii/rootfs_overlay/etc/init.d/boot_beep @@ -0,0 +1,132 @@ +#!/bin/sh +# ---------------------------------------------------------------------- +# +# This file is part of microdevuan, a set of scripts to create minimal +# devuan live images +# +# ---------------------------------------------------------------------- +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or (at +# your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# +# ---------------------------------------------------------------------- +# +# (c) KatolaZ (2016) +# +# ---------------------------------------------------------------------- + +### BEGIN INIT INFO +# Provides: boot_beep +# Required-Start: mountall +# Required-Stop: +# Default-Start: S +# Default-Stop: +# Short-Description: Boot Beep Daemon +### END INIT INFO + + +. /etc/default/boot_beep + +rm_hanging_instances(){ + + if [ -f ${BB_TMPFILE} ]; then + for i in `cat ${BB_TMPFILE}`; do + is_alive=`ps ax | grep "^${i} " | wc -l` + if [ $((${is_alive})) -gt 0 ]; then + kill -9 ${i} + fi + done + rm ${BB_TMPFILE}; touch ${BB_TMPFILE} + fi + +} + +check_active(){ + + ALIVE=0 + if [ -f ${BB_TMPFILE} ]; then + for i in `cat ${BB_TMPFILE}`; do + is_alive=`ps ax | grep "^${i} " | wc -l` + if [ $((${is_alive})) -gt 0 ]; then + ALIVE=1 + fi + done + if [ ${ALIVE} -ge 1 ]; then + return 1; + else + return 0; + fi + else + return 0 + fi + + +} + + + +start_bb(){ + + check_active + if [ $? != 0 ]; then + echo "beep_boot is already running" + exit 1; + fi + + + rm_hanging_instances + nohup ${BB_SCRIPTFILE} 2>&1 >/dev/null & + exit 0; +} + +stop_bb(){ + check_active + if [ $? == 0 ]; then + echo "beep_boot is not running" + rm ${BB_TMPFILE} + exit 1; + fi + + rm_hanging_instances + exit 0; +} + + + + +case $1 in + + start) + start_bb + exit 0; + ;; + + stop) + stop_bb; + exit 0; + ;; + + status) + check_active + if [ $? == 0 ]; then + echo "boot_beep is not up" + else + echo "boot_beep is up and running" + fi + exit 0 + ;; + + *) + echo "Usage: $0 {start|stop|status}" + exit 1; +esac diff --git a/blends/devuan-minimal-live/ascii/rootfs_overlay/etc/inittab b/blends/devuan-minimal-live/ascii/rootfs_overlay/etc/inittab new file mode 100644 index 0000000..9b66bcb --- /dev/null +++ b/blends/devuan-minimal-live/ascii/rootfs_overlay/etc/inittab @@ -0,0 +1,84 @@ +# /etc/inittab: init(8) configuration. +# $Id: inittab,v 1.91 2002/01/25 13:35:21 miquels Exp $ + +# The default runlevel. +id:2:initdefault: + +# Boot-time system configuration/initialization script. +# This is run first except when booting in emergency (-b) mode. +si::sysinit:/etc/init.d/rcS + +# What to do in single-user mode. +~~:S:wait:/sbin/sulogin + +# /etc/init.d executes the S and K scripts upon change +# of runlevel. +# +# Runlevel 0 is halt. +# Runlevel 1 is single-user. +# Runlevels 2-5 are multi-user. +# Runlevel 6 is reboot. + +l0:0:wait:/etc/init.d/rc 0 +l1:1:wait:/etc/init.d/rc 1 +l2:2:wait:/etc/init.d/rc 2 +l3:3:wait:/etc/init.d/rc 3 +l4:4:wait:/etc/init.d/rc 4 +l5:5:wait:/etc/init.d/rc 5 +l6:6:wait:/etc/init.d/rc 6 +# Normally not reached, but fallthrough in case of emergency. +z6:6:respawn:/sbin/sulogin + +# What to do when CTRL-ALT-DEL is pressed. +ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now + +# Action on special keypress (ALT-UpArrow). +#kb::kbrequest:/bin/echo "Keyboard Request--edit /etc/inittab to let this work." + +# What to do when the power fails/returns. +pf::powerwait:/etc/init.d/powerfail start +pn::powerfailnow:/etc/init.d/powerfail now +po::powerokwait:/etc/init.d/powerfail stop + +# /sbin/getty invocations for the runlevels. +# +# The "id" field MUST be the same as the last +# characters of the device (after "tty"). +# +# Format: +# ::: +# +# Note that on most Debian systems tty7 is used by the X Window System, +# so if you want to add more getty's go ahead but skip tty7 if you run X. +# + +1:235:respawn:/sbin/getty 38400 tty1 +2:23:respawn:/sbin/getty 38400 tty2 +3:23:respawn:/sbin/getty 38400 tty3 +4:23:respawn:/sbin/getty 38400 tty4 +5:23:respawn:/sbin/getty 38400 tty5 +6:23:respawn:/sbin/getty 38400 tty6 + +## +## KatolaZ -- 20160604 -- Accessible runlevel +## +## Runlevel 4 is the "accessible" runlevel. Autologin configured on +## all the ttys. tty1 is root shell +## + +a1:4:respawn:/sbin/getty -a root 38400 tty1 +a2:4:respawn:/sbin/getty -a devuan 38400 tty2 +a3:4:respawn:/sbin/getty -a devuan 38400 tty3 +a4:4:respawn:/sbin/getty -a devuan 38400 tty4 +a5:4:respawn:/sbin/getty -a devuan 38400 tty5 +a6:4:respawn:/sbin/getty -a devuan 38400 tty6 + +# Example how to put a getty on a serial line (for a terminal) +# +#T0:23:respawn:/sbin/getty -L ttyS0 9600 vt100 +#T1:23:respawn:/sbin/getty -L ttyS1 9600 vt100 + +# Example how to put a getty on a modem line. +# +#T3:23:respawn:/sbin/mgetty -x0 -s 57600 ttyS3 + diff --git a/blends/devuan-minimal-live/ascii/rootfs_overlay/etc/motd b/blends/devuan-minimal-live/ascii/rootfs_overlay/etc/motd new file mode 100644 index 0000000..20280cf --- /dev/null +++ b/blends/devuan-minimal-live/ascii/rootfs_overlay/etc/motd @@ -0,0 +1,7 @@ + +Devuan ASCII 2.0.0-beta -- Minimal Live + +Devuan GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent +permitted by applicable law.  + + \ No newline at end of file diff --git a/blends/devuan-minimal-live/ascii/rootfs_overlay/etc/wpa_supplicant/wpa_supplicant.conf b/blends/devuan-minimal-live/ascii/rootfs_overlay/etc/wpa_supplicant/wpa_supplicant.conf new file mode 100644 index 0000000..778a12c --- /dev/null +++ b/blends/devuan-minimal-live/ascii/rootfs_overlay/etc/wpa_supplicant/wpa_supplicant.conf @@ -0,0 +1,2 @@ +ctrl_interface=/run/wpa_supplicant +update_config=1 diff --git a/blends/devuan-minimal-live/config b/blends/devuan-minimal-live/config index 453546a..708f5e0 100644 --- a/blends/devuan-minimal-live/config +++ b/blends/devuan-minimal-live/config @@ -1,11 +1,14 @@ #!/usr/bin/env zsh -## configuration file for devuan-live blend +## configuration file for devuan-minimal-live blend vars+=(username userpass default_shell mkefi grubversion hookscripts) arrs+=(custom_deb_packages) blend_name="devuan-minimal-live_" +release="ascii" + + username="devuan" userpass="devuan" default_shell="/bin/bash" @@ -20,299 +23,24 @@ default_shell="/bin/bash" #grubversion="grub-pc" #grubversion="grub-efi-amd64" -release="ascii" -version="2.0.0_beta" +##release="ascii" mirror="http://devuan.mine.nu/merged" section="main" -image_name="${os}_${release}_${version}_${arch}_minimal" base_packages_option=(--no-install-recommends) extra_packages_option=(--no-install-recommends) -### base package set -minimal_base_packages+=( - acpi - acpi-support-base - acpid - at - bash - bash-completion - bc - busybox - console-common - console-data - console-setup - console-setup-linux - coreutils - dash - dc - dialog - discover - dselect - file - groff-base - info - kbd - laptop-detect - locales - lsof - syslinux - util-linux-locales - zsh -) - -## admin package set -minimal_admin_packages+=( - debootstrap - entr - gddrescue - gdisk - htop - iftop - iotop - iw - mtr-tiny - multitail - ncdu - parted - pciutils - psmisc - sudo - time - wavemon - wireless-tools - wpasupplicant - -) - -## editors package set -minimal_editors_packages+=( - ed - nano - vim-tiny - zile -) +release_conf="$BLENDPATH/$release/config" -## networking package set -minimal_net_packages+=( - bind9-host - bittornado - curl - dnsutils - edbrowse - fetchmail - ftp - geoip-bin - irssi - lftp - links2 - lrzsz - mcabber - minicom - mosh - msmtp - mutt - netcat - net-tools - nfacct - nrss - openssh-client - openssh-server - procmail - rsync - telnet - tin - traceroute - w3m - wget - whois -) +### package sets are defined in the corresponding $release/config file + +source $release_conf + +## image_name depends on release and version + +image_name="${os}_${release}_${version}_${arch}_minimal" -## productivity package set -minimal_prod_packages+=( - abook - apcalc - aspell - aspell-en - calcurse - clex - dvtm - fbi - fbterm - ghostscript - gnupg - gnupg2 - gnupg-agent - mc - parallel - poppler-utils - rpl - rename - sc - screen - taskwarrior - tmux -) - -## programming package set -minimal_devel_packages+=( - tcc - libc6-dev - m4 - patch - perl - perl-base - perl-modules-5.24 - python2.7-minimal - python3.5-minimal - gawk - guile-2.0 - guile-2.0-libs -) - -## games package set -minimal_games_packages+=( - bastet - bombardier - bsdgames - cavezofphear - crawl - curseofwar - empire - freesweep - gnuchess - greed - matanza - moria - nethack-console - ninvaders - omega-rpg - pacman4console - pente - sudoku -) - -## accessibility package set -minimal_a11y_packages+=( - beep - brltty - espeak - espeakup - yasr -) - - -## multimedia package set -minimal_media_packages+=( - alsa-utils - caca-utils - hasciicam - imagemagick - jhead - moc - radio - sox -) - -## misc package set -minimal_misc_packages+=( - cmatrix - cowsay - eject - figlet - fortunes-min - fortune-mod - gpm - man-db - manpages - manpages-dev - mlocate - termsaver - toilet - toilet-fonts - ttyrec - unzip -) - -### now we include all the package sets -base_packages+=( - $minimal_base_packages - $minimal_admin_packages - $minimal_editors_packages - $minimal_net_packages - $minimal_prod_packages - $minimal_devel_packages - $minimal_games_packages - $minimal_a11y_packages - $minimal_media_packages - $minimal_misc_packages -) - -##echo "extra_packages: ${extra_packages}" - - -#### TODO: ADD setnet -#### TODO: REPLACE twidge (twitter client) -#### TODO: ADD refractasnapshot -#### TODO: ADD refractainstaller -#### TODO: ADD setnet -#### ADDED: geoip-bin - -#extra_packages+=( -# b43-fwcutter -# firmware-atheros -# firmware-b43-installer -# firmware-b43legacy-installer -# firmware-bnx2 -# firmware-bnx2x -# firmware-brcm80211 -# firmware-intelwimax -# firmware-iwlwifi -# firmware-libertas -# firmware-linux-nonfree -# firmware-myricom -# firmware-netxen -# firmware-qlogic -# firmware-ralink -# firmware-realtek -# firmware-ti-connectivity -# firmware-zd1211 -#) - - -purge_packages=( - btrfs-tools - cryptsetup - cryptsetup-bin - debian-keyring - elinks - elinks-data - git - git-core - git-man - liberror-perl - libfsplib0 - libtre5 - openntpd - tasksel - tasksel-data - vim - vim-runtime -) - - -# yad needs to be first -#custom_deb_packages+=(yad_0.27.0-1_${arch}.deb) -# -# -#custom_deb_packages+=( -# refractainstaller-base_9.3.0_all.deb -# refractainstaller-gui_9.2.2_all.deb -# refractasnapshot-base_10.0.2_all.deb -# refractasnapshot-gui_10.0.2_all.deb -# setnet_0.3.2-1_all.deb -#) diff --git a/blends/devuan-minimal-live/devuan-minimal-live.blend b/blends/devuan-minimal-live/devuan-minimal-live.blend index 2e7165f..34bf813 100644 --- a/blends/devuan-minimal-live/devuan-minimal-live.blend +++ b/blends/devuan-minimal-live/devuan-minimal-live.blend @@ -22,6 +22,10 @@ BLENDPATH="${BLENDPATH:-$(dirname $0)}" source $BLENDPATH/config +blend_release_path=$BLENDPATH/$release/ + +###source $BLENDPATH/$release/devuan-minimal-live.release + blend_preinst() { fn blend_preinst req=(blend_name username userpass) @@ -31,8 +35,8 @@ blend_preinst() { add-user $username $userpass - #notice "copying blend-specific debs" - #cp -fv "$BLENDPATH"/*.deb "$R/extra/custom-packages" + notice "copying blend-specific debs" + ##cp -fv "$blend_release_path"/custom_debs/*.deb "$R/extra/custom-packages" } blend_postinst() { @@ -47,10 +51,14 @@ blend_postinst() { iso_write_grub_cfg } + ## TODO: #install-custdebs || zerr - #pushd "$strapdir" - # sudo rsync -avx --no-o --no-g "$BLENDPATH"/rootfs-overlay/* . || zerr - #popd + pushd "$strapdir" + sudo rsync -avx --no-o --no-g "$blend_release_path"/rootfs_overlay/* . || zerr + chmod 755 etc/init.d/boot_beep + ## TODO: + ## insserv boot_beep + popd blend_finalize || zerr } @@ -60,55 +68,9 @@ iso_write_isolinux_cfg() { req=(workdir arch username) ckreq || return 1 - notice "writing isolinux configuration" - - cat </dev/null -ui vesamenu.c32 -prompt 0 -menu title devuan-live boot menu -timeout 70 -menu background /isolinux/splash.png -menu color title * #FFFFFFFF * -menu color border * #00000000 #00000000 none -menu color sel * #ffffffff #A1B067 * -menu color hotsel 1;7;37;40 #ffffffff #A1B067 * -menu color tabmsg * #E5FD91 #00000000 * -menu color cmdline 0 #E5FD91 #00000000 -menu tabmsg Press ENTER to boot or TAB to edit a menu entry -menu vshift 12 -menu rows 12 - -label live - menu label ${os}-live (${arch}) - menu default - linux /live/vmlinuz - append initrd=/live/initrd.img boot=live username=${username} - -label lang - menu label Other language (TAB to edit) - linux /live/vmlinuz - append initrd=/live/initrd.img boot=live username=${username} hooks=file:///lib/live/mount/medium/live/hooks/fix-lang.sh locales=it_IT.UTF-8 - -label toram - menu label ${os}-live (${arch}) (load to RAM) - linux /live/vmlinuz - append initrd=/live/initrd.img boot=live username=${username} toram - -label failsafe - menu label ${os}-live (${arch}) (failsafe) - kernel /live/vmlinuz noapic noapm nodma nomce nolapic nosmp nomodeset vga=normal - append initrd=/live/initrd.img boot=live - -label memtest - menu label Memory test - kernel /live/memtest - -endtext -EOF - notice "copying isolinux overlay" sudo mkdir -p "$workdir"/binary/{live,isolinux} - #sudo cp -rav "$BLENDPATH"/isolinux-overlay/* "$workdir"/binary/isolinux/ + sudo cp -rav "$blend_release_path"/isolinux_overlay/* "$workdir"/binary/isolinux/ #[[ -n "$hookscripts" ]] && { # sudo cp -av "$BLENDPATH"/hooks "$workdir"/binary/live/ #} @@ -200,7 +162,7 @@ EOF cp $strapdir/usr/share/grub/unicode.pf2 boot/grub/font.pf2 # copy splash - sudo cp -rav "$BLENDPATH"/isolinux-overlay/splash.png boot/grub/splash.png + sudo cp -rav "$blend_release_path"/isolinux_overlay/splash.png boot/grub/splash.png # Cleanup efi temps sudo umount img-mnt @@ -321,5 +283,12 @@ apt-get update apt-get clean updatedb EOF + + ## TODO: + ## + ## - configure framebuffer + ## - updatedb + ## - insserv boot_beep + ## chroot-script -d finalize || zerr } diff --git a/sdk b/sdk index cd8839f..b65de9c 100755 --- a/sdk +++ b/sdk @@ -30,6 +30,7 @@ source $R/lib/zuper/zuper vars+=(livesdk_version) vars+=(R workdir strapdir) vars+=(os oslib blendlib) +vars+=(release) vars+=(MAKEOPTS) ## global arrs @@ -49,6 +50,9 @@ load() { os="$1" arch="$2" blend="$3" + + [[ $# -gt 3 ]] && release="$4" + req=(os arch) ckreq || return 1 @@ -87,7 +91,7 @@ load() { source $oslib [[ -f $blendlib ]] && { source $blendlib || zerr - act "$os blend loaded" + act "$os blend loaded -- ($blend -- release: $release)" export BLEND=1 } @@ -105,3 +109,5 @@ TRAPZERR() { zerr; return $? } notice "live-sdk loaded" export PROMPT="%F{yellow}%(?..%? )%{$reset_color%}livesdk@%{$fg[red]%}%m %{$reset_color%} %{$fg[blue]%}%#%{$fg_bold[blue]%}%{$reset_color%} " + +echo "release is: $release" From 3bf1e62d442a22089bcb491b732839f49c903441 Mon Sep 17 00:00:00 2001 From: KatolaZ Date: Sat, 16 Dec 2017 19:42:32 +0000 Subject: [PATCH 05/18] latest TODO.org --- blends/devuan-minimal-live/TODO.org | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 blends/devuan-minimal-live/TODO.org diff --git a/blends/devuan-minimal-live/TODO.org b/blends/devuan-minimal-live/TODO.org new file mode 100644 index 0000000..852e8ec --- /dev/null +++ b/blends/devuan-minimal-live/TODO.org @@ -0,0 +1,19 @@ +#+TODO: TODO IN-PROGRESS | DONE + + + +* DONE Amend motd + +* IN-PROGRESS amend isolinux_overlay/isolinux.cfg +** DONE change initrd name + +* TODO put correct initrd.img in binary/live/ + +* TODO Put debs in custom_debs + +* TODO Include memtest86+.bin in binary/live/ + + + + + From ad9480413429e9c5df2335bcfb8a37cdd7ca78e2 Mon Sep 17 00:00:00 2001 From: KatolaZ Date: Sat, 16 Dec 2017 19:54:16 +0000 Subject: [PATCH 06/18] added .gitignore --- .gitignore | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c10d99f --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +dist/ +tmp/ +log/ From 48c403521bca8bff878443f1673616de3b10232c Mon Sep 17 00:00:00 2001 From: KatolaZ Date: Sat, 16 Dec 2017 23:52:17 +0000 Subject: [PATCH 07/18] added post-inst confs. --- .../devuan-minimal-live.blend | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/blends/devuan-minimal-live/devuan-minimal-live.blend b/blends/devuan-minimal-live/devuan-minimal-live.blend index 34bf813..d0ed6a2 100644 --- a/blends/devuan-minimal-live/devuan-minimal-live.blend +++ b/blends/devuan-minimal-live/devuan-minimal-live.blend @@ -36,6 +36,7 @@ blend_preinst() { add-user $username $userpass notice "copying blend-specific debs" + ## TODO: copy the custom debs ##cp -fv "$blend_release_path"/custom_debs/*.deb "$R/extra/custom-packages" } @@ -51,7 +52,7 @@ blend_postinst() { iso_write_grub_cfg } - ## TODO: + ## TODO: ENABLE THIS #install-custdebs || zerr pushd "$strapdir" sudo rsync -avx --no-o --no-g "$blend_release_path"/rootfs_overlay/* . || zerr @@ -276,6 +277,14 @@ rm -f /etc/popularity-contest.conf sed -i 's/contrib//g' /etc/apt/sources.list sed -i 's/non-free//g' /etc/apt/sources.list +## insert service boot_beep +insserv boot_beep + +## Configure framebuffer +setcap 'cap_sys_tty_config+ep' /usr/bin/fbterm +chmod u+s /usr/bin/fbterm + + ## package list dpkg -l | awk '/^ii/ { print $2 " " $3 }' > /home/${username}/package_list @@ -284,11 +293,6 @@ apt-get clean updatedb EOF - ## TODO: - ## - ## - configure framebuffer - ## - updatedb - ## - insserv boot_beep - ## + chroot-script -d finalize || zerr } From e442fb034ba79f69135bc5b8f83e8aed0b416ff8 Mon Sep 17 00:00:00 2001 From: KatolaZ Date: Thu, 8 Feb 2018 23:48:18 +0000 Subject: [PATCH 08/18] minor changed -- tweaking the initramfs --- .../ascii/scripts/create_initrd.sh | 232 ++++++++++++++++++ .../devuan-minimal-live.blend | 56 ++++- 2 files changed, 276 insertions(+), 12 deletions(-) create mode 100755 blends/devuan-minimal-live/ascii/scripts/create_initrd.sh diff --git a/blends/devuan-minimal-live/ascii/scripts/create_initrd.sh b/blends/devuan-minimal-live/ascii/scripts/create_initrd.sh new file mode 100755 index 0000000..133bfa4 --- /dev/null +++ b/blends/devuan-minimal-live/ascii/scripts/create_initrd.sh @@ -0,0 +1,232 @@ +#!/bin/bash + +# ---------------------------------------------------------------------- +# +# This file is part of microdevuan, a set of scripts to create minimal +# devuan live images +# +# ---------------------------------------------------------------------- +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or (at +# your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# +# ---------------------------------------------------------------------- +# +# (c) KatolaZ (2016) +# +# ---------------------------------------------------------------------- + +#### +## +## This will create a minimal initrd without too much garbage +## +## KatolaZ -- 2016-05-14 +## +## + +if [ $# -le 3 ]; then + echo "Usage: $0 " + exit 1 +fi + + +#### +## +## Config options -- +## + +OLDPWD=`pwd` +INITRD_ORIG=$1 +INITRD_NEW=$2 +INITRD_COMPR=$3 +INITRD_MICRO=$4 + +echo "$0: got $1 $2 $3 $4" + +WORK_DIR=/tmp/initrd_new + +MODULE_DIR=lib/modules/`uname -r`/kernel + +#### +## +## unpack the current initrd image +## + +if [ ! -d ${WORK_DIR} ]; then + mkdir ${WORK_DIR} +else + rm -rf ${WORKDIR}/* +fi + + + +#### +## +## Determine how the original initrd was compressed... +## + +INITRD_FILE=`file ${INITRD_ORIG}` + +if [ `echo ${INITRD_FILE} | grep gzip | wc -l` = 1 ]; then + INITRD_UNCOMPRESS=zcat; +elif [ `echo ${INITRD_FILE} | grep bzip2 | wc -l` = 1 ]; then + INITRD_UNCOMPRESS=bzcat; +elif [ `echo ${INITRD_FILE} | grep " xz " | wc -l` = 1 ]; then + INITRD_UNCOMPRESS=xzcat; +else + echo "Unable to determine the format of ${INITRD_ORIG} -- Aborting!!!" + exit 1; +fi + +echo -n "===> Uncompressing the original init using ${INITRD_UNCOMPRESS}..." + +cd ${WORK_DIR}; `${INITRD_UNCOMPRESS} ${INITRD_ORIG} | cpio -id` + +echo "done!" + +#### +## +## Remove unnecessary ethernet modules -- we already know +## that the root partition is not over nfs... +## + +echo -n "===> Removing network drivers..." + + +##rm -rf ${MODULE_DIR}/drivers/net/ethernet/* +rm -rf ${MODULE_DIR}/drivers/net/* + +echo "done!" + +#### +## +## Remove unnecessary filesystem support +## +## + +echo -n "===> Removing unnecessary filesystems drivers..." + + +##rm -rf ${MODULE_DIR}/fs/nfs +rm -rf ${MODULE_DIR}/fs/xfs +rm -rf ${MODULE_DIR}/fs/btrfs +##rm -rf ${MODULE_DIR}/fs/ext4 +rm -rf ${MODULE_DIR}/fs/fat +rm -rf ${MODULE_DIR}/fs/fuse +rm -rf ${MODULE_DIR}/fs/hfs +rm -rf ${MODULE_DIR}/fs/hfsplus +rm -rf ${MODULE_DIR}/fs/reiserfs +rm -rf ${MODULE_DIR}/fs/ntfs +rm -rf ${MODULE_DIR}/fs/jfs +rm -rf ${MODULE_DIR}/fs/jffs2 +rm -rf ${MODULE_DIR}/fs/udf +rm -rf ${MODULE_DIR}/fs/nls +rm -rf ${MODULE_DIR}/fs/nfs_common + +echo "done!" + +#### +## +## Remove the lftp and qla2xxx drivers (FibreChannel) +## + +echo -n "===> Removing unnecessary SCSI drivers..." + + +rm -rf ${MODULE_DIR}/drivers/scsi/lpfc +rm -rf ${MODULE_DIR}/drivers/scsi/qla2xxx + +echo "done!" + +#### +## +## Maybe we might remove everything in usr/lib +## + +echo -n "===> Removing unnecessary libraries in /usr/lib..." + +##rm -rf usr/lib/* + +echo "done!" + +#### +## +## Remove unnecessary stuff in /bin and /sbin +## + +echo -n "===> Removing unnecessary stuff in /bin and /sbin..." + +#rm -rf bin/rsync bin/wget +#rm -rf sbin/acpid +#rm -rf lib/systemd + +echo "done!" + +#### +## +## Now we create the new slim initrd +## + +# echo -n "===> Creating new initrd '${INITRD_NEW}' using ${INITRD_COMPR}..." + + +# find . | cpio -H newc -o | `echo ${INITRD_COMPR}` > ${INITRD_NEW} + +# echo "done!" + +#### +## +## Now we go for the extremely stripped down initrd +## + +rm -rf ${MODULE_DIR}/drivers/scsi/fnic +rm -rf ${MODULE_DIR}/drivers/scsi/csiostor +rm -rf ${MODULE_DIR}/drivers/scsi/isci +rm -rf ${MODULE_DIR}/drivers/scsi/cxgbi +rm -rf ${MODULE_DIR}/drivers/scsi/megaraid +rm -rf ${MODULE_DIR}/drivers/scsi/mpt2sas +rm -rf ${MODULE_DIR}/drivers/scsi/mpt3sas +rm -rf ${MODULE_DIR}/drivers/scsi/pm8001 +rm -rf ${MODULE_DIR}/drivers/scsi/qla4xxx +rm -rf ${MODULE_DIR}/drivers/scsi/aic7xxx +rm -rf ${MODULE_DIR}/drivers/scsi/bfa + + +#### +## +## Now we create the micro initrd +## + +cat < Creating new initrd '${INITRD_MICRO}' using ${INITRD_COMPR}..." + +find . | cpio -H newc -o | `echo ${INITRD_COMPR}` > ${INITRD_MICRO} + +echo -n "done!" + +#### +## +## Remove the directory +## + +cd ${OLDPWD} && rm -rf ${WORK_DIR} + +exit 0 diff --git a/blends/devuan-minimal-live/devuan-minimal-live.blend b/blends/devuan-minimal-live/devuan-minimal-live.blend index d0ed6a2..f65f9a7 100644 --- a/blends/devuan-minimal-live/devuan-minimal-live.blend +++ b/blends/devuan-minimal-live/devuan-minimal-live.blend @@ -23,6 +23,7 @@ BLENDPATH="${BLENDPATH:-$(dirname $0)}" source $BLENDPATH/config blend_release_path=$BLENDPATH/$release/ +blend_scripts=${blend_release_path}/scripts ###source $BLENDPATH/$release/devuan-minimal-live.release @@ -56,7 +57,7 @@ blend_postinst() { #install-custdebs || zerr pushd "$strapdir" sudo rsync -avx --no-o --no-g "$blend_release_path"/rootfs_overlay/* . || zerr - chmod 755 etc/init.d/boot_beep + sudo chmod 755 etc/init.d/boot_beep ## TODO: ## insserv boot_beep popd @@ -182,6 +183,7 @@ EOF } +## UNUSED iso_write_grub_cfg() { fn iso_write_grub_cfg "(override)" req=(workdir arch username) @@ -239,10 +241,21 @@ menuentry "Memory test" { EOF } -blend_finalize() { - fn blend_finalize - req=(strapdir username default_shell) - ckreq || return 1 +## put the "create_initrd.sh" script + +##func +put_create_initrd(){ + + sudo cp ${blend_scripts}/create_initrd.sh ${strapdir}/ >/dev/null + + ## Now we make it executable + sudo chmod 755 ${strapdir}/create_initrd.sh +} + +## put the "finalize" script, that does the final work + +## func +put_finalize(){ cat </dev/null #!/bin/sh @@ -254,13 +267,6 @@ done chsh -s "${default_shell}" ${username} chown -R 1000:1000 /home/${username} -cp /home/${username}/Desktop/refractainstaller.desktop /usr/share/applications/ -chmod +x /home/${username}/Desktop/refractainstaller.desktop - -# This can go away when desktop-base is fixed to do the grub theme. -grep -q GRUB_THEME /etc/default/grub || { - printf "\nGRUB_THEME=/usr/share/desktop-base/grub-themes/desktop-grub-theme/theme.txt\n" >> /etc/default/grub -} # Not sure if this has been fixed (in devuan-baseconf?) mv /data/etc/apt/apt.conf.d/05disable-suggests /etc/apt/apt.conf.d/ @@ -284,6 +290,21 @@ insserv boot_beep setcap 'cap_sys_tty_config+ep' /usr/bin/fbterm chmod u+s /usr/bin/fbterm +## Make initramfs + +SLIM_INITRD=initrd_devuan.img +MICRO_INITRD=initramfs-\$(uname -r).img +INITRD_COMPR="xz --check=crc32 --x86 -6 -" + + +/create_initrd.sh /boot/initrd.img-`uname -r` /boot/\${SLIM_INITRD} \ + "\${INITRD_COMPR}" /boot/\${MICRO_INITRD} + +unlink /initrd.img +ln -s /boot/\${MICRO_INITRD} /initrd.img + +## rm create_initrd.sh +##sudo rm /create_initrd.sh ## package list dpkg -l | awk '/^ii/ { print $2 " " $3 }' > /home/${username}/package_list @@ -292,7 +313,18 @@ apt-get update apt-get clean updatedb EOF +} + +blend_finalize() { + fn blend_finalize + req=(strapdir username default_shell) + ckreq || return 1 + + put_create_initrd + + put_finalize + chroot-script -d finalize || zerr } From 0ee193599ce498ba708c9e6b424d85d4b97727b7 Mon Sep 17 00:00:00 2001 From: KatolaZ Date: Thu, 8 Feb 2018 23:49:24 +0000 Subject: [PATCH 09/18] Updated TODO --- blends/devuan-minimal-live/TODO.org | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/blends/devuan-minimal-live/TODO.org b/blends/devuan-minimal-live/TODO.org index 852e8ec..1933f30 100644 --- a/blends/devuan-minimal-live/TODO.org +++ b/blends/devuan-minimal-live/TODO.org @@ -8,9 +8,7 @@ ** DONE change initrd name * TODO put correct initrd.img in binary/live/ - -* TODO Put debs in custom_debs - +* IN-PROGRESS Put debs in custom_debs * TODO Include memtest86+.bin in binary/live/ From e4489c93ac6404a2017e0ff6c862477cff19cd95 Mon Sep 17 00:00:00 2001 From: KatolaZ Date: Fri, 9 Feb 2018 00:08:07 +0000 Subject: [PATCH 10/18] amended create_initrd script --- blends/devuan-minimal-live/ascii/scripts/create_initrd.sh | 2 +- blends/devuan-minimal-live/devuan-minimal-live.blend | 2 +- lib/libdevuansdk | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/blends/devuan-minimal-live/ascii/scripts/create_initrd.sh b/blends/devuan-minimal-live/ascii/scripts/create_initrd.sh index 133bfa4..55ec76e 100755 --- a/blends/devuan-minimal-live/ascii/scripts/create_initrd.sh +++ b/blends/devuan-minimal-live/ascii/scripts/create_initrd.sh @@ -75,7 +75,7 @@ fi ## Determine how the original initrd was compressed... ## -INITRD_FILE=`file ${INITRD_ORIG}` +INITRD_FILE=`file -L ${INITRD_ORIG}` if [ `echo ${INITRD_FILE} | grep gzip | wc -l` = 1 ]; then INITRD_UNCOMPRESS=zcat; diff --git a/blends/devuan-minimal-live/devuan-minimal-live.blend b/blends/devuan-minimal-live/devuan-minimal-live.blend index f65f9a7..db823ab 100644 --- a/blends/devuan-minimal-live/devuan-minimal-live.blend +++ b/blends/devuan-minimal-live/devuan-minimal-live.blend @@ -293,7 +293,7 @@ chmod u+s /usr/bin/fbterm ## Make initramfs SLIM_INITRD=initrd_devuan.img -MICRO_INITRD=initramfs-\$(uname -r).img +MICRO_INITRD=initramfs.img INITRD_COMPR="xz --check=crc32 --x86 -6 -" diff --git a/lib/libdevuansdk b/lib/libdevuansdk index 9514687..ceb7259 160000 --- a/lib/libdevuansdk +++ b/lib/libdevuansdk @@ -1 +1 @@ -Subproject commit 95146870fe653c86d8c015bad227a497b25efceb +Subproject commit ceb7259fd94b15dfc55c329d4f9f093940d51ad0 From cfb1947abd18cf21034858b6a68bdc2abb8eacd3 Mon Sep 17 00:00:00 2001 From: KatolaZ Date: Fri, 9 Feb 2018 09:32:10 +0000 Subject: [PATCH 11/18] small change in initrd preparation --- blends/devuan-minimal-live/devuan-minimal-live.blend | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/blends/devuan-minimal-live/devuan-minimal-live.blend b/blends/devuan-minimal-live/devuan-minimal-live.blend index db823ab..442d933 100644 --- a/blends/devuan-minimal-live/devuan-minimal-live.blend +++ b/blends/devuan-minimal-live/devuan-minimal-live.blend @@ -293,14 +293,14 @@ chmod u+s /usr/bin/fbterm ## Make initramfs SLIM_INITRD=initrd_devuan.img -MICRO_INITRD=initramfs.img +MICRO_INITRD=/boot/initrd.img INITRD_COMPR="xz --check=crc32 --x86 -6 -" -/create_initrd.sh /boot/initrd.img-`uname -r` /boot/\${SLIM_INITRD} \ - "\${INITRD_COMPR}" /boot/\${MICRO_INITRD} +/create_initrd.sh /initrd.img /boot/\${SLIM_INITRD} \ + "\${INITRD_COMPR}" \${MICRO_INITRD} -unlink /initrd.img +rm /initrd.img ln -s /boot/\${MICRO_INITRD} /initrd.img ## rm create_initrd.sh From c87ff8b45932bd43d6426ccb3ddc5dddfcaf877a Mon Sep 17 00:00:00 2001 From: KatolaZ Date: Sun, 11 Feb 2018 00:17:34 +0000 Subject: [PATCH 12/18] fixed problem in initrd removal -- added firmware --- blends/devuan-minimal-live/TODO.org | 9 +- blends/devuan-minimal-live/ascii/config | 41 ++-- .../setnet_0.3.2+devuan1.2_all.deb | Bin 0 -> 22130 bytes .../ascii/scripts/create_initrd.sh | 179 +++++++++--------- blends/devuan-minimal-live/config | 4 +- .../devuan-minimal-live.blend | 45 ++++- 6 files changed, 155 insertions(+), 123 deletions(-) create mode 100644 blends/devuan-minimal-live/ascii/custom_debs/setnet_0.3.2+devuan1.2_all.deb diff --git a/blends/devuan-minimal-live/TODO.org b/blends/devuan-minimal-live/TODO.org index 1933f30..67c74d0 100644 --- a/blends/devuan-minimal-live/TODO.org +++ b/blends/devuan-minimal-live/TODO.org @@ -4,14 +4,15 @@ * DONE Amend motd -* IN-PROGRESS amend isolinux_overlay/isolinux.cfg +* DONE amend isolinux_overlay/isolinux.cfg ** DONE change initrd name -* TODO put correct initrd.img in binary/live/ +* DONE put correct initrd.img in binary/live/ * IN-PROGRESS Put debs in custom_debs * TODO Include memtest86+.bin in binary/live/ - - +* TODO put README +* TODO put script to remove firmware packages +* TODO Rebuild all diff --git a/blends/devuan-minimal-live/ascii/config b/blends/devuan-minimal-live/ascii/config index cee0bed..d7eb036 100644 --- a/blends/devuan-minimal-live/ascii/config +++ b/blends/devuan-minimal-live/ascii/config @@ -236,26 +236,27 @@ base_packages+=( #### TODO: ADD refractainstaller #### ADDED: geoip-bin -#extra_packages+=( -# b43-fwcutter -# firmware-atheros -# firmware-b43-installer -# firmware-b43legacy-installer -# firmware-bnx2 -# firmware-bnx2x -# firmware-brcm80211 -# firmware-intelwimax -# firmware-iwlwifi -# firmware-libertas -# firmware-linux-nonfree -# firmware-myricom -# firmware-netxen -# firmware-qlogic -# firmware-ralink -# firmware-realtek -# firmware-ti-connectivity -# firmware-zd1211 -#) +extra_packages+=( + b43-fwcutter + firmware-atheros + firmware-b43-installer + firmware-b43legacy-installer + firmware-bnx2 + firmware-bnx2x + firmware-brcm80211 + firmware-intelwimax + firmware-iwlwifi + firmware-libertas + firmware-linux-nonfree + firmware-myricom + firmware-netxen + firmware-qlogic + firmware-realtek + firmware-ti-connectivity + firmware-zd1211 + refractainstaller-base + refractasnapshot-base +) purge_packages=( diff --git a/blends/devuan-minimal-live/ascii/custom_debs/setnet_0.3.2+devuan1.2_all.deb b/blends/devuan-minimal-live/ascii/custom_debs/setnet_0.3.2+devuan1.2_all.deb new file mode 100644 index 0000000000000000000000000000000000000000..4b976d4a91e043f166e21b529c8115dd29255dd8 GIT binary patch literal 22130 zcmagEQ*bT}%r#ouwr$(owQbwBc5U0X?WeYFyWO?h|NXyn&dj;{)?|{&MRJvu$xIe8 zpOLePr2vennX#3TJ-xA&y^*sQ5fKqH8#gN(CpSAQ7ZDNDfBFCCnVFb4*w~1O{1yhjj0nArb^{mvlO$)Q%ctjnwr)Vj2}T{XI*5*M{$k>Iq&vHe~X8Gj9j;> zfVZ13=N`VSzLg#&KUB1t+K8p*e>XNlFnu8PL)uBSwLM6Ghvbg9s0LdNvZwxf{#1%( z5B%Qz_}GM5%>L$g{<4)`FMZ}8IClIp4!~nd?hXdkXz+O>u2L5xl0`OieM;iX#UrkRdeyf8`EeXq=XY>|{(jp$M5ByS%lGj!@Sol3z$pioyP@a}LTPt_T6J7a7?fmg``Zjk=KKqJtD|hB}m#%Gn^7FZUOLobUcp2+3WLp zv3KlLuw?<9wC=o*9Fy902aLJ9Mk?r-vq3#gQX41t2qUo1^aaEOvruDX5`6B)hWrD> z=5&1l^CR9}rUrbysOquRfsZxx zc2C3Exd>=MEz%)g%77J^7y@)(*+BrtA zs@NqtD7ZF28#;I$7Ry>-xi z6ZO8Y&$WuPqIg#=4N2ER5L1s1Cb2;M;0RiD9th#g<-v65B`P4Qfv$FZPc!w_s8xlI zWBJ3ttYHHUwP=qb@=VcJiV_OmG~dXqy7}_S(;dw|-gwZAFL+MK5v0? z14WNwmx!`aC}pP=yj?+3ZK)I&6JCbq_aCLj+mh8Uc%dg>FdeES^YRY#E~)Jcy!33E z26CtJ$PABfkl`tt_eTH9pu)iQTva|O%K(vl<*j`*N;HI?U3tjGeOQ}3Zd?v@sT0G- z(%cYLLG`87Qo|-?6asuTC+<4UD>USDc?_kA;Ii;eK&0(f9$G!BIuQrQKwloV3I=>^ zWv#AKhY$8~;_2-}L>ZD&JL|$mtfFVb2$}tF?w_DIvb@oRlugC*6MKuqZmX15ZM=MQ z7|E)`?QV_xV8U13C=;t~y_bPjnOod*!Abnp0UDbF!J#&iisiC=@!B1-^9e6%{u9DzEVpJssV$J?9xWFRH5+( zi#p=Tr`5?Za5A8exK(=`Hp)EYK-_hoXXinM6E_MIaB@p+4zqND(~vK)n!jyC-X4Tj zd~b$2@kwIQk6VZG)={m0RmQ*4`vz?l24|K?T!C8$ql@9n7GQ;#U8Bx&Nq*ZGa(99# zxen?Sh|ID1Ez2@5C$71!Q0+vpXL%Jh(2zCelXl{;fKF^%9eNEk`;H%H>H_3NAwg&-*=6f zNe^{f?+D>JPl>4zTH5ffyAwx}rk77JRL!%(%Om)m3~`S}E=55UC}z;{?+R=<_-vB? z%mOiAS&&>Y4_Q#6$TnNq&D6+ItmCmYE+<7E=spS{DV zl|9?X{>uI#6Hf1UC6r^3P8_{1BVFO(D|YqgoubB!-Pmv8M-6h~m*r_wLaPWYk{)}N ze~UcP(20ye{8cRBd}EFUt z8IiIs^~mabpbzH#5J;DN^aBHXd_%4ruOiIz3;>~Zc56+H3QOkt*ti-h$!n^VDR^#K z2O_d8U4IjkoGWt;P!eBIDhh_cAi<1wv>?NnF1|o^+##;zYXYaM7C-edNb+k4no-_ zHkTZJ|L~tn+=ISUPs%B~xa@Jr5=zIJ5--%+XKAPS7Yk2s4A!4ndwiNNMMElN3zu^y z22NCAoLNS0gZcMXq*P*`x0bSGkTP=Y>qpPQ%xIjrPI@O%3-w*Uek+nG= z>Z9D3eY!GP<5KVJx8AqeVsCX=RcFmEAmG3wYa4qd<2Hyu;jX=3EY>L5G|wnbh4n{G zL>3YPQxI`2bhq748emZ@uJ5gJRnv+6z_#6K`3-;v{~4 zatI^tVqvHFn>vt85`fb8oDT#Gn|ukT9`Jd9|5ljjNGD-J2ubw^*U)!onI8Da<)}Zx{hlU2{+iT@-Khj|&xEqP#Yt5Z$$+=QjyLPYFk-j}FVZKMGR2 z!O3O(57j*_h?FCw*6k0$bqZ8Z+&~`Yvd6-wbsksc*D6 zNp?wy`SLjFmD?vAD)&aw-F!N}b!Z6ftgYAG!bqruB>ti=+uq}bDB{hj@~)2RN)tw8 zha%~sWrm786kF|UU}Tsw8^5|_v6eDX09_?}_0j`cCTwDxQZ}(%@P31R+3xMd0xLb5zR^7`v3v{M?RY_3;kz|G`$s+)l zOfQ$Goy6#~NxjTzhnaccK^(I|%-%%qsSNE-W8X)3zTJR+#w>#k`sMIBt%)u?W)o2d z)vz7E-uM~0@pIE--&YxlK;14zvf1fxmtBNLlIGy3mds9W2B^{+Kw|w)HWHi^^1*J; zPJ_0s+5iX{02%>WLyzo+`c$@@M{uU+ipM+5@Nz}UuY0VLT63`x9(aph(9})GjsA|V z1RPSxprplnix4}S$B4jN?0d%09})7>ee8>x<2rl>$>hv@m)YpMYOpClMP-ImJKA>34=-=@j=E78rlwD^6cUQnLJpZxhR>wNB+%7~HGreI0)6r2U7 z#8E~Rri8K7ou8f0aVhhi&+ZdxLJ^9?p6{x(t6fGhv?!W9MK%3gR7A(nLQg~UJ0Ep$ zfx*bh;N?iN;TYZp3P$7h5s{YJUNkqi`vd#Mjd+9l9A_iObl%8vliT5l&j${`hjXJH;rj_}ZcklP;=H3gx9N~vmQ?V><>qKkeSWJ6pl;F#Usn6K5aw=sdD53B3!$0%Z=DsTth2DZ=i zqkm>(Xtdr7c^?(4tEYxZF;w7$n!ZOXlaQ*n{56iRjz@?|2h&>sHCb`t7*4{z5ar0b znNqQDu$8Rk?amkG!v(tH9;NeWSIm+F0jJdnMBX1`H{kpz$>DLu5xh#3 zBQc6o##-+)HEUFk=;^c7EY4S#Zo0qR;ofg&{a;DcU-$0bTxN?0hSp*y*!973kA&WR z&v7%}%l)q|RGo<-hp(*QCOfiRz= zQ{7gRT{RKKTS_ov1ElLaTsktp^nF2r86b34}qwind>vGK)}RQF<@Vf^FN+WpbB1H8Tht54($y%W_LY&UCOW ziDi`O4t2Pks_PkC|Y_6$A6* z`HH>j&O=q4lxn-?ja_7oQif#%khBT^3;@T-lk_w0-HZtTvu9vE;65*?v+2!|zTqeN zrzk`T>>cpl_m@8)p)fe>1aN79P9UJ95>GKG*tyKVdmJ$OMmkE4xv&HxHH!50DbQ4g zo)yrWiHa;#$o|II9Xt$0a(*{TilrF}^lwU=U_6p(_`>$Q#fecCD0);<3y!#eW&{e`W4{G zI-frYH=@s}l8=&mwbeVV#i7NJF za(*;e*|v7SbdGLzvv4OCp&Czdn-VUTzU3}7^Mu!s%@Sr6PawSEIlt`NYM!j8piFw9yb%mhPd1-h zqs#aFF3RMYu8);2M~S||t^X5?u{FO2r{XTbnr(_NLg;T$an)DDhs+TF8_*_13BZAj zyw((~kK|ehnw_%!2l!ib($??mrrl(0znUigUis0wM6a5-m%ihhO<=gmFeu_O>d^!4 zlZ#OPN#UPIJ!m%9|9I_l>p*5)Q^;#5uBE3?>!O6MRJ5|bM;$1y>w~iyeru=TXZ|nk zW?&fl0508X)9DNo1bGs3>Mz8+t3C+)K=@vKDI6(h&#imKAfwFu4KooAQ+sZxl*&`R z{l6PNSz&tgt6SZ$j6jH)*}$mV#cKh%qfl;+ZK$pf7a5$VK-Q2W;scw%6WiBpr?Z;I z0IXdumZ1vq3H*EY9vg}h=f-CpSD5_@thmP5?7Ni$+1i||Y8iavgH0-Y_{l}+R`x!KO z-4OmQhZ|OqWfdBsiVMOoS#%;k$7O-?fA_6#%Q4-R;U(#Fx8jn9ifdW53<7-#1kNn?S9Yq=WIHuS zb~1MOC^PAw{oaEqN$61Dj2Gj+1D~08^n&Fbd6WC5;B)!e@+Pmk_zo75vKYrVFJ zIB27QLDID$FKFUJt0zx3g~G{l#z{(Lm{$h9@gl#6TH?npJQdkv(CnpBg-VW-Y$zTq z)|UT5ZxY$cW{%fi*l1>l_j$JlDej!;BGM&)Hif*jYnGg-IxG3IPIUm3(N$h z!8^mRqk{8Tg{fHGTd-ja6~pkic|eYLH+mkYTC6xK&3Y~>ki8_4(`X39cwV{2QtBB7 zcI+l#ssfVgU2y@*w{~;!wqt3YwQhY7Nzm6kWQ-W(zw8+!NdyPU6!OK^n4u=jD1xBl zK~Z;adBxdOnvcsFu)a7>Kb9wSe$>gvnfB+F*$}n{|sQZnk`GfEY&ociV+z7eX9DU-m!1Q_N+ujTFf|w zjmLr3{Z-p~qVv}!B=8TnM{G!C$iX%Y1>I_opQ^;AAFuJM^cb?*NKX%cds=_rxQSEo z8v~{wu^dDK3Hg1)ho$s)g#oI(`sS{+^8%l;n z!N$C7z4J6EG|vb;M0h%yC$&(VUcoaqDafB#8D6P66@hJYP5(YF`rMBgWsYIiiNXu0O|CzyZ>X^X~$2}cr%)YjA z!N}+4p^HC>KP<=;-^W-O&oW|%j23Htee(K)l_b7`A6E(x!1QZORXR&o4^ zj6&kwr396PF($4@qhU=}%I-laB3jIUI8LL&#aS5}UfKi{||vSmZ<^e@JeyyE$hVIVX$SClI7&NHxlSpCD4V4w8|PYEp+v& z*f^op4@_OT;5sYiVyu`R4`kc|&no@daVrhwFZ`m!CrUFC-Y2!+rW&d44wvrURv;V0 zba5mnwz`J~PaA~ksN8V1A)f964cKvdq6}awjQ1TVsF70CW@H#wTRz~LA6%!;?;g5z zKX<=5x2%;OJj%V5l$n{Ju38AnjY*q>`{~$N~COaK&HMjzu|Pgr{xVZ@oQaAlx!Bp1BbFAN~{ zI;@#}3#}lai?Qsb4mCZT8$h|5Xm>nG^JnGf{K>m=emyleM69Gf5ps2Y^LDg7t4f8o z)sDcIzwr1N^iR7ZU>x85OKL-A#eSI)xY=ns&TUwB%wA%b3v;O=H;sc}6Is4H<1gtO z_D-f!xguF5j9;7W<)BG!J%czZ>0O=)DrFpz^x7(sW>6E!h;lL)Hig&lDuTtQ%vMjTzMucE z<$(AGe5HHmch~KYXI|m#v9#$-SIV5x@D;;OK#CijIW;KJK^is(zG`cW-I>RHanoBe zm2dA_naLb^-Pk@G*XGqA;SGQ(1swq$MMDwsTmZpqmi1oOqj@un?W6Cu|(&cWzey!m05eK)^b>v95lv#Vb#8g}4wjH&tAu-~cd<7G)i&s$l( z(x2=49)O_q+zBvnQPq078S}qc$qLG6V3q*U`hL>lW@}R9gR(aE81b+TyIBRC zCREa?RwC*3jN&@Dc{Eua7FN_hppUIp>?TP=#%ITxOH=h)fcQfN5HnY1HoQJTFtiY5 zp?%&1Yb@Z+q%=uj6Qh=o7#N}NcUNM-OH&aN3NrWOMW>J5mYA?@TyA}^=spy&JqJQ|*5917_ zgQDBQr>=mH;o2Z*uEopnkVNvwn6=a(pB5B}t(H@nXQdWjpd>)0Jr^t#643@1(-pQg z<7^sO^7qw~fF^=y)HAyTKUkp=cUH!pV_ah9mwKM51sS~bnYk#eM?i;3li1tbsEMQe zxSbcWwT0<{?eX&jq`dXT3D%O63hW6X4|Jf9rJAra!)9mk_C}cgY9>^T{StP=m*R!Y zebaz_@WW0Jnu=hKaR7j8`0~11J1GSwxL9wz#0kWqaKHwuI?&3(p^NBb%{nb|^0!oU zznxo_nDtdqDt=}D-u^(h(bTMQ8oimHiLH=S$;kw&%o>8r^F{s@>^5(yX)jJ9J$4G= z^4>)u9vg=~6)Ws{k=v)AA8$mLCX&0iVra=|h|lNvJ)B7P9CMxZW{lHW6sY_p9L*H$ z_=6D*iC9Swm%o$CCnp%zwXlF0YeE-L3YxqL<5_ZVLK^!NSUe93Y4dxXX8exp|km9f+94VbKi15qX;4v@0(nJ9xUU`3*M&M*@pw9n0G@Or=uM_5#24m%HsS7b?0}3g+U1HkL)J=2 z`27HMri+WU_O%%>QpsuDpepOq?3&3=+Xh9;3@7)9pKxk@+9AJcw)&DQxN2OR+bm?o zh8CzcJPJd?8tQzx=!x7;7&RdeTJuKB`Ka~rRjUta+IF;lk4`Jxo!^{8g^P#0E!pM@Bu&>dJ9>7Esp|kSRbPR! z&|Xh<38a>0-|vGL(Ke6;15(W@pus5$Jg4CC!Ta#;Nry=J6DIma5N8=nV8wR1-18mu zxM4YhRb$ih6pz>uS+NMXB<0o>(>dLx#buuu@#)%tg#_~LAi6dG%M~|XiDtX4fE;+d z@o;v-b`yNsdf1ZT6V+q1hD6eir@0F|78`V4^T83E37S2{NEe`0#JaQB;4GiLO^c8m z9AWsEseMZP?W9D%YtY?UVJEQEV%rq=E1`r&4A(M4xwC5~4&G=U^=?>k)TN>> zSz|_&b-BV#wTxX*ZFDmtb2pta;Y)nNRf8?#MthHAODwETbCWhR)>1dJgTH35wMws2 zUq@T5jde(RpyoOoo4@_So)oASV`!MbjHIzxs}sd4w{~7QHf2gq-~BU!S+{A^gYYxx zI29|J&wEDVg-G0iQ6Kcm0w~5UMkYQ24n$NU8Fh{eT>=AN6LOS5s7MK zf;t369^s65KZ~o&WKLHIZZGAot!?oTkX;)@cR%0g!6-&wsUAz?*fLob2%|9jOOI>X zNo!J$1R&i|>FDxFHrFGICn7UGHMac@8PiZE&T)r%`Azm>1$O#ubu40~@OP>iMmKVN zBZjSkiv<%{yJs{{n}kk1_eg!1G&9alvm$*q6Q%-6BYSQk|@yh8)r+z=c zTGNeVQB}#)X*x<3Pq7o*EkeN|`F;h#Oh@S4E5>CHTJ32UAkaE9aj zN_epW51HV=;iZ|P>+S3yjk0117H5bL;2;=ZuNco7t=clE(+pDgmtd-E1D#O4L9u)% z{N4bBoy7j%948{n?tt#xrwG~I4v32_JN8^$~@hY52de%H-cD)X3Bg>-ya3I;<{9V}`2!(hV z1hy=}610S3;wzY)S4Szf4gS6a#=Wt|(O(u#`8{~0Otrygv|bWXRPFJ|z>=j8S?`Cs zCmo&))4Ci4zkM>EaJ__mbg2zCv)q0f%_b)X-ru?oM}8j#N8tRCKnp-pxY&&s5{5zd;n#*I5}-f9XjD5Sm|#o;$uw zK*iN5&p{Ni{IKHoHjj%7nz8P;>xuS^G{=}Gk97#%+WB6+5pd}yPeNBZ39`=Vj7i_d zj@V{PSjn1vnRF~AeEb<5pZOmHS_M3c!l0jek7<}fdg}MJCKODgbE%#SjDB3GrH1Vb z+W_B#Okxn;aF23=YPs}Wl#9wwCQLNtL?$D^3SJN>`PF5%rGFzWROG(`>Y=4N5$(y# zuo6?C7xFO_ID%cBr8sqyO!JL6q?V?b#IB`_lGkt1qLnv%A~@Pj&)-?Yx(MLmYMra7 z)^##_NJE=??K^sq>{WBn5I=+TqL=&?K+h|iRLr9|SmKD<<_=5n~W zi3^rz+mmaOye1pCA{p|Uf@1CFwmR5nN*_+vqTmEcFXy|>D%+;nHz9|pY_|Um{TvDH z1Pn+U$Y{IH5QKtjxpZ*iJfC27{)SEv^$>@WkGQeBr&lQ?x@@sAl}hTz#Jd&jMjDCjcZp^gvCEvXGkTPI5o%RAufU66 z3gLVNS}gV8r+jqFS6~ZFd7`7)gG5ZRD`g#|#!aZofe+7}Bt9yYuJ|4n6nn>Uo#wOn zT>0#2%Fuh^8e#O=wuDGtdD0xM9z+A95Z>NViM6Y{LN;ZIW)0c*x|rlcZo?kLxRSb7 zvn;)dVar6C=_u}iBWnq;wCamqq1Mch-LP7hstP&_^6q5#!^}lD^o%;j+Vs-IrVii~ z!aiDsN?5Vo{(iE8XHQX@i>0=}k#=zhgvkCw`ho{@-0;Ek z>DD@dI1nzqnKWEQAIqn8YV4FLlDO_L%v^;%Ffv89_hG|EFGP3ugx(%y2F={bq8YQm zBeBGJ=;aZDcVKub+_x4K1v8GQAkoOlN~PIPVt8UU9`~)Oy?DSEEg6u)DmXaPXlxQD z&{d=;ri9sUHClx}x~m+O3{!fVvSEYQOyY8*_on);JFc{**@orVps$7b|*9s)!U3O6oBBIVS;i+Lh&~US;@N8lw{0SmOKO?jG79mhs zVS=mHo9(zYC^kpL_w(MmZ-rC?@q9MS{WUdIy6AGM?h*}EIs}A0zNXFN;9nhl=4f-= zdSJ(k7phYBZgLe@W}$yEbWAtfH4r9S?zeu{=Ih5x*dWXwA9Uq;DKR;f921}VVq`iu zD))9HLybqCkvZL1KWc`j)s^0$^X}`Xfw9H-pht)76)%2^{@1c$XIGe?&s8$1w5Fen?=XQbbk@; zZ+B4pmwcR_ppxwd8E|8{NF^VCb-FF>WgUz0y_J zZo|BEl)x44Xkb?aH~UB9$?ut{qmNzM!=@Hx*q)4ibXq4-HU^z)$kmF}!|jyt6Dp0r zERyWh-r(Nb#C|31PFpE34N4L>R{Ah?7A#2m%8s!ZgX_=t<{K9!WJwR>@e6D(>|t{r zm31Aszf44&Q1N}nC)Vv(=_pw=`v&^VE-=oE`AZG0q|12zV=&&$Iaf5ibfq(8o6%#Z zuW`g5Q;3AFeqh(n9(H03X)-EV_hzCcHe^;w5s)0}cYS_0W<0Bj6Mij2C`*$a~R;`%I+7UUW zlo^tA2(VQjEMvPn9C;WZq=C+b?SqJv)J^}I6Ds=&`@-s@B^%()26nDg>X*YaSO`S! zHnhZ*dDF*x3S>bp=vp5*B6>9pOFq;6p->k&NSaoD_`jp35FmYEZR^%Hgtk=1)2X+* z6!B-J@+oEx3p$cjh-~Y;bjG%`YLvQwlz35cVLfC+Ec^R2%+KDI!bC(+0r3A}M93QE1 zzw2X1azU}SevV4M_$=zEcjE56@HcMn{j@5!0dT3*0D{6oy5OSjo@%Q@aEH@2clc)o zB?|F@LKvG{Vm)K@8qM?%jT(M6UYsGVX~;%|+3UJR7}pKln_C?ugjp;W(>axTn%%|= zqn6UdH&*t39Nyb~_aJ0_J8r&`Q2MW`n15Vci2ZR+r{4f|s76qAMYQBtfe2veEx^wn z)Lm)FK&iRZnD{TPJdT&$`oO4NJ~?qOT(<5x>sAUjf+0EY{)_L|N2VR1jj!_vkzv77CV zjJaQ$2j{mMN_<_(X`?tfPXGx}REpYmWWpIpy zbUrnPA}Zd|z3`^L!rNGvhf0-5_zI}&F*lG`Eq%ZPgy083Y23=#^=RfJ5%p<}>-vu8 zdo+zc6KoQE7Wi_`HF_}w7GPqP7HI9mxzCaUnLMG+vCMj}sC)dO;>!4W@X-3>Oqc5k ziHM%R@~E=ft9BU2UCcFFD6VYWCC~EfG$-X3f?b;`6=PB0i6~RHM>~J)L^tRLm8F*8 zqMv)3m|xQHX*-oHnO*HF#Ph>U_%QC z)$a3KDouzk`%h3E^IJN`7c+559$`U08P4PIY5UY2pmU~5ORJ^{1|&(!O=<#EF)>5* zxM$XU*k{VQZj1sc&N6Bx#?o+{1>t{Cim@H=fCF)$rx;KF#S;7cgpXKSvSBO zItn~;vl~cvcTh+LW$1E(7nL#=15PXR=Nc=3ZM&>3X(Ohk zd{O~1jMUR1(0gx5pGVYQ9%AbLmVatTT4OhWKgOkOs4!BM14J+E-Jh-UIMRPM%UH~O zp1MC{+Ewcp6(Yi>l)F}sfqkD6_^-(eP;44NU=-p5m!lSKFPM&M`I3Fix39$yHnoo0 zxTv_%Q|7q0d<)nJBuLfeEOT$Oy_7?7<=&E+HsdSf9CW+RdIkd_aQoYHFHj$SW*V{+@tGHho*Q-ZqdFy~ zD(vH$CE0Q054?Z@6m~6oh8IbH^8|cbSzPi}yL!KyL|PlVJJ_48&*+2TAv%Ax1VS!F z(MalJa{|up)hs}#UlX?mFFL9pm(eddq~#PXlk$83 zMJ@p@)s%~^HjwQG7;i%SMkX$o<%?{d0GQ<)B`@V}BUvsMD9E-euyW1@mk(ARyo|4W z?^OI}g^}h?(h^VQ$#~mKJO6i4hh|9hyEPxQ+sRBOr9tC-HdW^B#&Zv1QHWm#jYX{6 z;vjqA=`~rU4r{;fsz;qThg_Y>_dgyRS z9c-kp(h__twlB@&3*lRMtppOEXUA*qzMs9QaXi z$Y3unCKwM*uNT!6IyL7Z%cjlfr9fg$3++ufS^kB?kH~Iv8jJK6Y=`DomG?}8kTSO{ z{bTiYBBh!KtGvm2Xx7&r_7V%F;saPN-*&ta!*E>d5#NPiocj9fm0wY$4NpSnyP5xR z{T|L5-TB1`w^AnXJ_9gj4lqwHJS0veHZy>9rqvnO->jJnl3OUQ0IX}#cWVd7Xs|Po zM&lXDJjy&@4<$BbdjVNwJoE#1 z(3i)tA2WNTvCDz;5?uK`_Rg9uEyxf`=7c~AAqXJ8Q{OCw7!zbRfvXKh7*kAD*4qa$ zxzHzgLTmEm|p3{TdKIy?0P61c6Y%dlp3ZyChy=2n=i@nri4l zhHE2DtQ`UcGf=0sYvN1JF?dWImT5FlLG*pz`~_!bjDT4*Rz3C~zUecS7#)EhYwv8Q zXFu$BwRv#|#g*uJXf*!%=3ZF5PC2QPIa=O^DD%+x{D|Q5YZ}2k%fa=wu^&l!bTbi2 zH`EKI9IfCy^7qT??WMT(F#uzMYBm^wnMN^yTDPN|<+mgb{rv{k#7$u$8u?Ki>jK{Y z6Y;BT=+Q$naBi#-;R5pyhi`i!k1&-Bj4^OV??1IjpqL0OP@t!>rB|#DnC~K)SXH;G_&dXcLm_=P}>e^ZtW+@1BvNxakp-p!o* zOY>}iyxTBnQ9$9Z)|AD!1^>h&)FYIZs$Y`JY-!0#>yfwa;c zCq|^#RfR1OUzY7nFuT5jQdQ~kk-Q+_T3JNX4-5+%kVRv#EQ;GPWEz2OD13w)-TN_i z#z*mZ&>O__`zM=6CMDc!^^t?s{iu$owN)2y#1Prz1eMd~Cy*IwxT(Y+xzd2YoQ+6t z&!Owc1ao-TJlKa&#Of1PcL&Z5dxjLp$3={_naPm;W1~^8>nEx~hfRK1#1lyf#1H0wdMjF zjpT5_$o#3cP2#4x2W@_@-X88wlP^KN~V<5(S~D!gl*YGnZTcBS1FO;SwITQ z#}4^kLX@h8L*!LYNX6dHEa8lqZrw%s+fPU#w79JGB=N=m>XU4KV56_xsRZ+wYlm9y z58TfOlOU;IG@pO~^qreUM;@dLrBOR@`l4oryq3Uc7Cn1{0hgw#9e(PdvwRsuu1UIk z#$M)_IxOXPu`;$7Jr8nalOpEnJ2bT)!~Gm<+zFE;fNoQb$d|TYAK5&($WI_RUQX{~ zk1R*Y&8Lh@27mO4oCIh20~u@QgP`CY=`s3XS37YnUiAz$?EXBLoW zwF;0N2P`DNQ_y-woI`f<#O;!`lLb^Qts>TN$GH%MKY^Koy(1rgkxD6xqRv=K?9U+d zLCDOVaWzuWL+lWcIJvZ|5fL2yT+Bbge?Uhy)-RuEV1#smDte1;!d0GNbNO2HxJRYj z>lpl;TExL_a=U5KH&HJAUvmE%?W4W@`J+>aFZS%{R%?V$_(uR!xu?yoLg#mQ)lQv{ zL$~xFdjGQ58oc?tlA;1GMP2zQrt#dG>*|?ma#gt19eAWzskX^>_|Z>u0Na}UMA3iG z&~b>gJBQO)kO*wU#PrzH(K}v`n2x;DHxIHU8x-y=>&t2Ev+X1y7?5^-KJh}=9{7Ws zvV+G=X&{kcMSeVe&gG?PpZx6XkycZJoD`&65geoo_oVW;_eem`?~k)&;4;}V>S9u% zuq9tv+CRu(Ww4l&ikhrlt7tRQQrdDRYe0tpxA5xHRR4*(QO3Kz(|5EN9C=45Pqg3B zL3@NGHJ@X z@{H|ptB2<5?zl4+L^WY}0thw)WI@bh&)8RJU;eUMYglZv2=#33Q^6X)4Lmoix|weO8%pqv4Ipe6pZObTY$^!0wm-l+OOSsE>QXoB`|es_z0*SNliPS?heTxLf>Zo3JQ; zYHX#fg{50vd9uy+er6lS4?mzgS29Jf(FM^n)&*e73k_A6GR+3DI+4V|mnfgqr74J$ znLI$^YzX4eFP6bY6$-Oy?Am1fngUFj>mQ0H75#O^Dlu__{7DX$tW4iWtNu()w0l?r zaSKS96=)EU8pW^LajIU^-⁣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 literal 0 HcmV?d00001 diff --git a/blends/devuan-minimal-live/ascii/scripts/create_initrd.sh b/blends/devuan-minimal-live/ascii/scripts/create_initrd.sh index 55ec76e..080c94f 100755 --- a/blends/devuan-minimal-live/ascii/scripts/create_initrd.sh +++ b/blends/devuan-minimal-live/ascii/scripts/create_initrd.sh @@ -51,11 +51,10 @@ INITRD_NEW=$2 INITRD_COMPR=$3 INITRD_MICRO=$4 -echo "$0: got $1 $2 $3 $4" WORK_DIR=/tmp/initrd_new -MODULE_DIR=lib/modules/`uname -r`/kernel +MODULE_DIRS=$(ls lib/modules/) #### ## @@ -77,11 +76,11 @@ fi INITRD_FILE=`file -L ${INITRD_ORIG}` -if [ `echo ${INITRD_FILE} | grep gzip | wc -l` = 1 ]; then +if [ `echo ${INITRD_FILE} | grep gzip | wc -l` == 1 ]; then INITRD_UNCOMPRESS=zcat; -elif [ `echo ${INITRD_FILE} | grep bzip2 | wc -l` = 1 ]; then +elif [ `echo ${INITRD_FILE} | grep bzip2 | wc -l` == 1 ]; then INITRD_UNCOMPRESS=bzcat; -elif [ `echo ${INITRD_FILE} | grep " xz " | wc -l` = 1 ]; then +elif [ `echo ${INITRD_FILE} | grep " xz " | wc -l` == 1 ]; then INITRD_UNCOMPRESS=xzcat; else echo "Unable to determine the format of ${INITRD_ORIG} -- Aborting!!!" @@ -100,53 +99,99 @@ echo "done!" ## that the root partition is not over nfs... ## -echo -n "===> Removing network drivers..." +for M in ${MODULE_DIRS}; do + echo "===> Removing drivers for kernel version ${M} <===" -##rm -rf ${MODULE_DIR}/drivers/net/ethernet/* -rm -rf ${MODULE_DIR}/drivers/net/* + MODULE_DIR="lib/modules/${M}/kernel" + + echo -n "===> Removing unnecessary network drivers..." + + ##rm -rf ${MODULE_DIR}/drivers/net/ethernet/* + rm -rf ${MODULE_DIR}/drivers/net/* + + echo "done!" + + #### + ## + ## Remove unnecessary filesystem support + ## + ## + + echo -n "===> Removing unnecessary filesystems drivers..." + + ##rm -rf ${MODULE_DIR}/fs/nfs + rm -rf ${MODULE_DIR}/fs/xfs + rm -rf ${MODULE_DIR}/fs/btrfs + ##rm -rf ${MODULE_DIR}/fs/ext4 + rm -rf ${MODULE_DIR}/fs/fat + rm -rf ${MODULE_DIR}/fs/fuse + rm -rf ${MODULE_DIR}/fs/hfs + rm -rf ${MODULE_DIR}/fs/hfsplus + rm -rf ${MODULE_DIR}/fs/reiserfs + rm -rf ${MODULE_DIR}/fs/ntfs + rm -rf ${MODULE_DIR}/fs/jfs + rm -rf ${MODULE_DIR}/fs/jffs2 + rm -rf ${MODULE_DIR}/fs/udf + rm -rf ${MODULE_DIR}/fs/nls + rm -rf ${MODULE_DIR}/fs/nfs_common + + echo "done!" + + #### + ## + ## Remove the lftp and qla2xxx drivers (FibreChannel) + ## + + echo -n "===> Removing unnecessary SCSI drivers..." + + + rm -rf ${MODULE_DIR}/drivers/scsi/lpfc + rm -rf ${MODULE_DIR}/drivers/scsi/qla2xxx + rm -rf ${MODULE_DIR}/drivers/scsi/fnic + rm -rf ${MODULE_DIR}/drivers/scsi/csiostor + rm -rf ${MODULE_DIR}/drivers/scsi/isci + rm -rf ${MODULE_DIR}/drivers/scsi/cxgbi + rm -rf ${MODULE_DIR}/drivers/scsi/megaraid + rm -rf ${MODULE_DIR}/drivers/scsi/mpt2sas + rm -rf ${MODULE_DIR}/drivers/scsi/mpt3sas + rm -rf ${MODULE_DIR}/drivers/scsi/pm8001 + rm -rf ${MODULE_DIR}/drivers/scsi/qla4xxx + rm -rf ${MODULE_DIR}/drivers/scsi/aic7xxx + rm -rf ${MODULE_DIR}/drivers/scsi/bfa + + echo "done!" + + ## remove the gpu driver folder altogether + + echo -n "===> Removing unnecessary GPU drivers..." + + rm -rf ${MODULE_DIR}/drivers/gpu/ + + echo "done" + + echo -n "===> Removing unnecessary firmware..." + + rm -rf ${MODULE_DIR}/firmware/radeon/ + rm -rf ${MODULE_DIR}/firmware/cxgb4 + + echo "done" + + +done + +## +## Remove unnecessary stuff in /bin and /sbin +## + +echo -n "===> Removing unnecessary stuff in /bin and /sbin..." + +#rm -rf bin/rsync bin/wget +#rm -rf sbin/acpid +#rm -rf lib/systemd echo "done!" -#### -## -## Remove unnecessary filesystem support -## -## - -echo -n "===> Removing unnecessary filesystems drivers..." - - -##rm -rf ${MODULE_DIR}/fs/nfs -rm -rf ${MODULE_DIR}/fs/xfs -rm -rf ${MODULE_DIR}/fs/btrfs -##rm -rf ${MODULE_DIR}/fs/ext4 -rm -rf ${MODULE_DIR}/fs/fat -rm -rf ${MODULE_DIR}/fs/fuse -rm -rf ${MODULE_DIR}/fs/hfs -rm -rf ${MODULE_DIR}/fs/hfsplus -rm -rf ${MODULE_DIR}/fs/reiserfs -rm -rf ${MODULE_DIR}/fs/ntfs -rm -rf ${MODULE_DIR}/fs/jfs -rm -rf ${MODULE_DIR}/fs/jffs2 -rm -rf ${MODULE_DIR}/fs/udf -rm -rf ${MODULE_DIR}/fs/nls -rm -rf ${MODULE_DIR}/fs/nfs_common - -echo "done!" - -#### -## -## Remove the lftp and qla2xxx drivers (FibreChannel) -## - -echo -n "===> Removing unnecessary SCSI drivers..." - - -rm -rf ${MODULE_DIR}/drivers/scsi/lpfc -rm -rf ${MODULE_DIR}/drivers/scsi/qla2xxx - -echo "done!" #### ## @@ -160,46 +205,6 @@ echo -n "===> Removing unnecessary libraries in /usr/lib..." echo "done!" #### -## -## Remove unnecessary stuff in /bin and /sbin -## - -echo -n "===> Removing unnecessary stuff in /bin and /sbin..." - -#rm -rf bin/rsync bin/wget -#rm -rf sbin/acpid -#rm -rf lib/systemd - -echo "done!" - -#### -## -## Now we create the new slim initrd -## - -# echo -n "===> Creating new initrd '${INITRD_NEW}' using ${INITRD_COMPR}..." - - -# find . | cpio -H newc -o | `echo ${INITRD_COMPR}` > ${INITRD_NEW} - -# echo "done!" - -#### -## -## Now we go for the extremely stripped down initrd -## - -rm -rf ${MODULE_DIR}/drivers/scsi/fnic -rm -rf ${MODULE_DIR}/drivers/scsi/csiostor -rm -rf ${MODULE_DIR}/drivers/scsi/isci -rm -rf ${MODULE_DIR}/drivers/scsi/cxgbi -rm -rf ${MODULE_DIR}/drivers/scsi/megaraid -rm -rf ${MODULE_DIR}/drivers/scsi/mpt2sas -rm -rf ${MODULE_DIR}/drivers/scsi/mpt3sas -rm -rf ${MODULE_DIR}/drivers/scsi/pm8001 -rm -rf ${MODULE_DIR}/drivers/scsi/qla4xxx -rm -rf ${MODULE_DIR}/drivers/scsi/aic7xxx -rm -rf ${MODULE_DIR}/drivers/scsi/bfa #### diff --git a/blends/devuan-minimal-live/config b/blends/devuan-minimal-live/config index 708f5e0..3d6cb47 100644 --- a/blends/devuan-minimal-live/config +++ b/blends/devuan-minimal-live/config @@ -24,8 +24,8 @@ default_shell="/bin/bash" #grubversion="grub-efi-amd64" ##release="ascii" -mirror="http://devuan.mine.nu/merged" -section="main" +mirror="http://pkgmaster.devuan.org/merged" +section="main contrib non-free" base_packages_option=(--no-install-recommends) diff --git a/blends/devuan-minimal-live/devuan-minimal-live.blend b/blends/devuan-minimal-live/devuan-minimal-live.blend index 442d933..929b8c9 100644 --- a/blends/devuan-minimal-live/devuan-minimal-live.blend +++ b/blends/devuan-minimal-live/devuan-minimal-live.blend @@ -3,7 +3,7 @@ # live-sdk is written and maintained by Ivan J. # # This file is part of live-sdk -# devuan-minimal-live.blend is maintained by KatolaZ +# devuan-minimal-live.blend is maintained by KatolaZ # # This source code is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -38,7 +38,7 @@ blend_preinst() { notice "copying blend-specific debs" ## TODO: copy the custom debs - ##cp -fv "$blend_release_path"/custom_debs/*.deb "$R/extra/custom-packages" + cp -fv "$blend_release_path"/custom_debs/*.deb "$R/extra/custom-packages" } blend_postinst() { @@ -54,12 +54,10 @@ blend_postinst() { } ## TODO: ENABLE THIS - #install-custdebs || zerr + install-custdebs || zerr pushd "$strapdir" sudo rsync -avx --no-o --no-g "$blend_release_path"/rootfs_overlay/* . || zerr sudo chmod 755 etc/init.d/boot_beep - ## TODO: - ## insserv boot_beep popd blend_finalize || zerr @@ -300,19 +298,41 @@ INITRD_COMPR="xz --check=crc32 --x86 -6 -" /create_initrd.sh /initrd.img /boot/\${SLIM_INITRD} \ "\${INITRD_COMPR}" \${MICRO_INITRD} -rm /initrd.img -ln -s /boot/\${MICRO_INITRD} /initrd.img +rm -f $(realpath /initrd.img) +rm -f $(realpath /initrd.img.old) + +echo "====> Content of /boot before rm:" + +ls /boot + +rm -f /initrd.img +rm -f /initrd.img.old +rm -f /boot/initrd.img-* + + +echo "====> Content of /boot AFTER rm:" + +ls /boot + +ln -s \${MICRO_INITRD} /initrd.img + + ## rm create_initrd.sh -##sudo rm /create_initrd.sh +##rm /create_initrd.sh ## package list dpkg -l | awk '/^ii/ { print $2 " " $3 }' > /home/${username}/package_list -apt-get update +##apt-get update apt-get clean +rm /var/cache/apt/*.bin updatedb + EOF + + cp ${strapdir}/finalize ${strapdir}/finalize.bak + } @@ -326,5 +346,10 @@ blend_finalize() { put_finalize - chroot-script -d finalize || zerr + #chroot-script -d finalize || zerr + chroot-script finalize || zerr + + printf "copying ${strapdir}/boot/initrd.img to ${workdir}/binary/live/..." + sudo cp -L ${strapdir}/boot/initrd.img ${workdir}/binary/live/ + echo "done" } From b7a58a4bb232c318ccb7a7c8b32e2f546af4fc12 Mon Sep 17 00:00:00 2001 From: KatolaZ Date: Mon, 12 Feb 2018 23:23:40 +0000 Subject: [PATCH 13/18] minor fix --- blends/devuan-minimal-live/devuan-minimal-live.blend | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/blends/devuan-minimal-live/devuan-minimal-live.blend b/blends/devuan-minimal-live/devuan-minimal-live.blend index 929b8c9..6938647 100644 --- a/blends/devuan-minimal-live/devuan-minimal-live.blend +++ b/blends/devuan-minimal-live/devuan-minimal-live.blend @@ -36,7 +36,7 @@ blend_preinst() { add-user $username $userpass - notice "copying blend-specific debs" + notice "copying blend-specific debs into $R/extra/custom-packages" ## TODO: copy the custom debs cp -fv "$blend_release_path"/custom_debs/*.deb "$R/extra/custom-packages" } From 3118fb95f3a7cf4a3bc938a89eb6c588e7d27fc7 Mon Sep 17 00:00:00 2001 From: KatolaZ Date: Mon, 7 May 2018 18:27:06 +0100 Subject: [PATCH 14/18] setnet is now in the repos -- removed from custom_deb_packages --- blends/devuan-minimal-live/ascii/config | 16 +++++----------- .../devuan-minimal-live.blend | 14 +++++++++++++- 2 files changed, 18 insertions(+), 12 deletions(-) diff --git a/blends/devuan-minimal-live/ascii/config b/blends/devuan-minimal-live/ascii/config index d7eb036..a9af903 100644 --- a/blends/devuan-minimal-live/ascii/config +++ b/blends/devuan-minimal-live/ascii/config @@ -101,6 +101,7 @@ minimal_net_packages+=( openssh-server procmail rsync + setnet telnet tin traceroute @@ -230,10 +231,7 @@ base_packages+=( $minimal_misc_packages ) -#### TODO: ADD setnet #### TODO: REPLACE twidge (twitter client) -#### TODO: ADD refractasnapshot -#### TODO: ADD refractainstaller #### ADDED: geoip-bin extra_packages+=( @@ -281,13 +279,9 @@ purge_packages=( # yad needs to be first -#custom_deb_packages+=(yad_0.27.0-1_${arch}.deb) +#$custom_deb_packages+=(yad_0.27.0-1_${arch}.deb) # # -#custom_deb_packages+=( -# refractainstaller-base_9.3.0_all.deb -# refractainstaller-gui_9.2.2_all.deb -# refractasnapshot-base_10.0.2_all.deb -# refractasnapshot-gui_9.0.2_all.deb -# setnet_0.3.2-1_all.deb -#) +##custom_deb_packages+=( +## setnet_0.3.2+devuan1.2_all.deb +##) diff --git a/blends/devuan-minimal-live/devuan-minimal-live.blend b/blends/devuan-minimal-live/devuan-minimal-live.blend index 6938647..964a1ab 100644 --- a/blends/devuan-minimal-live/devuan-minimal-live.blend +++ b/blends/devuan-minimal-live/devuan-minimal-live.blend @@ -321,6 +321,12 @@ ln -s \${MICRO_INITRD} /initrd.img ## rm create_initrd.sh ##rm /create_initrd.sh +## install additional packages + +cd /custom-packages +dpkg -i \$(find ./ -type f -name '*.deb') + + ## package list dpkg -l | awk '/^ii/ { print $2 " " $3 }' > /home/${username}/package_list @@ -335,6 +341,11 @@ EOF } +## func +# put_packages(){ + +# sudo cp -a "$R/extra/custom-packages/" ${strapdir} +# } blend_finalize() { @@ -343,7 +354,8 @@ blend_finalize() { ckreq || return 1 put_create_initrd - + #put_packages + put_finalize #chroot-script -d finalize || zerr From 4741b53b05fcf0dc3034c89bb85dd70fdda2be45 Mon Sep 17 00:00:00 2001 From: KatolaZ Date: Wed, 9 May 2018 00:58:12 +0100 Subject: [PATCH 15/18] ascii RC --- blends/devuan-minimal-live/TODO.org | 8 +- blends/devuan-minimal-live/ascii/config | 12 +- .../rootfs_overlay/root/README_ASCII.txt | 172 ++++++++++++++++++ .../rootfs_overlay/root/README_firmware.txt | 20 ++ .../rootfs_overlay/root/remove_firmware.sh | 39 ++++ .../devuan-minimal-live.blend | 10 +- 6 files changed, 254 insertions(+), 7 deletions(-) create mode 100644 blends/devuan-minimal-live/ascii/rootfs_overlay/root/README_ASCII.txt create mode 100644 blends/devuan-minimal-live/ascii/rootfs_overlay/root/README_firmware.txt create mode 100755 blends/devuan-minimal-live/ascii/rootfs_overlay/root/remove_firmware.sh diff --git a/blends/devuan-minimal-live/TODO.org b/blends/devuan-minimal-live/TODO.org index 67c74d0..2915e2a 100644 --- a/blends/devuan-minimal-live/TODO.org +++ b/blends/devuan-minimal-live/TODO.org @@ -8,11 +8,11 @@ ** DONE change initrd name * DONE put correct initrd.img in binary/live/ -* IN-PROGRESS Put debs in custom_debs +* DONE Put debs in custom_debs * TODO Include memtest86+.bin in binary/live/ -* TODO put README -* TODO put script to remove firmware packages -* TODO Rebuild all +* DONE put README +* DONE put script to remove firmware packages +* IN-PROGRESS Rebuild all diff --git a/blends/devuan-minimal-live/ascii/config b/blends/devuan-minimal-live/ascii/config index a9af903..a3d4289 100644 --- a/blends/devuan-minimal-live/ascii/config +++ b/blends/devuan-minimal-live/ascii/config @@ -2,7 +2,7 @@ ## configuration file for devuan-live blend -- ASCII release -version="2.0.0_beta" +version="2.0.0-rc" ## @@ -235,16 +235,26 @@ base_packages+=( #### ADDED: geoip-bin extra_packages+=( + atmel-firmware b43-fwcutter + bluez-firmware + dahdi-firmware-nonfree + firmware-amd-graphics firmware-atheros firmware-b43-installer firmware-b43legacy-installer firmware-bnx2 firmware-bnx2x firmware-brcm80211 + firmware-cavium + firmware-crystalhd + firmware-intel-sound firmware-intelwimax + firmware-ipw2x00 + firmware-ivtv firmware-iwlwifi firmware-libertas + firmware-linux-free firmware-linux-nonfree firmware-myricom firmware-netxen diff --git a/blends/devuan-minimal-live/ascii/rootfs_overlay/root/README_ASCII.txt b/blends/devuan-minimal-live/ascii/rootfs_overlay/root/README_ASCII.txt new file mode 100644 index 0000000..2a11d5b --- /dev/null +++ b/blends/devuan-minimal-live/ascii/rootfs_overlay/root/README_ASCII.txt @@ -0,0 +1,172 @@ +=== Devuan ASCII minimal live ==== + +This image is a full-featured console-only live Devuan ASCII system, +with tons of command-line and curses utilities and a special focus on +accessibility. The system is a good starting point for a minimalist +environment, a powerful solution for rescue tasks, and a useful tool to +have in your pocket every day. + +The image can be burnt on a CDROM or dd-ed on a USB stick. + +The regular user is devuan/devuan. Become admin with root/toor. + +Designed and maintained by Vincenzo 'Katolaz' Nicosia +Key used to sign: http://pgp.mit.edu/pks/lookup?op=get&search=0x5F20B3AE0B5F062F +Homepage: http://kalos.mine.nu + +======================================= + +0) Boot options +1) Packages +2) Connecting to the Internet +3) About non-free firmware packages +4) Installing on a hard drive +5) Acknowledgements + +======================================= + +0) == Boot options == + +There are several boot options available: + +- std: default, with selection of framebuffer resolution +- access: accessible boot, with audible boot feedback and autologin +- std-toram: as "std", but load squashfs into RAM +- access-toram: as "access", but load squashfs into RAM +- no probe: disable apic/apm/dma/mce/smp +- memtest: perform a memory test (does not boot Linux) + +The two accessible boot options ("access" and "access-toram", +respectively the second and the fourth on the boot menu) emit a "beep" +(CTRL+G) when they are selected, to be easily recognisable, and enter +into a dedicated runlevel (runlevel 4) which autologins root on tty1 +and the user devuan on tty2-tty6. There is audible feedback on boot, +and a simple chime (C-E-G-E-C) signals the end of the boot. + +======================================= + +1) == Packages === + +This image contains around 590 packages in total, and includes: + + - _Base system_: bash, busybox, consoledata, GNU coreutils, dash, + dialog, locales, syslinux, sysvinit, util-linux-locales, zsh + + - _Admin/Recovery_: debootstrap, entr, gddrescue, gdisk, htop, + iftop, iotop, mtr-tiny, multitail, ncdu, parted, wavemon, + wireless-tools, wpa_supplicant + + - _Editors_: vim-tiny, zile (Emacs clone), nano + + - _Networking_: bittornado, curl, edbrowse, fetchmail, ftp, irssi, + lftp, links2, mcabber, minicom, mosh, msmtp, mutt, netcat, nrss, + openssh-client, openssh-server, procmail, rsync, setnet, telnet, + tin, twidge, w3m, wget + + - _Personal_productivity_: abook, aspell, calcurse, clex, dvtm, + fbi/fbgs, fbterm, ghostscript, gpg, mc, parallel, sc, screen, + taskwarrior, tmux + + - _Programming_ languages_: ANSI C (tcc + libc6-dev), Perl + (minimal), python (minimal), awk (gawk), guile + + - _Games_: bastet, bombardier, bsdgames, cavezofphear, crawl, + curseofwar, empire, freesweep, gnuchess, greed, matanza, moria, + nethack, ninvaders, omega-rpg, pacman4console, pente, sudoku + + - _Accessibility_: beep, brltty, espeak, espeakup, yasr + + - _Multimedia_: caca-utils, hasciicam, imagemagick, jhead, moc, + radio, sox + + - _Miscellanea_: cmatrix, cowsay, figlet, fortune-mod, gpm, + termsaver, toilet, ttyrec + +======================================= + +2) == Connecting to the Internet == + +This image ships with "setnet.sh", a simple dialog tool to setup +networking. setnet allows to configure both wired and wireless +connections, with static or DHCP-based IP assignment, and can help you +setting up wi-fi authentication to open, WPA Personal (WPA/PSK and +WPA2/PSK), and WPA Enterprise (WPA/EAP or WPA/TLS) networks. + +Just run: + + # setnet.sh + +from a root console, and then select "Setup interfaces" for a list of +recognised devices. For more information please just: + + $ man setnet + +======================================= + +3) == About non-free firmware packages == + +Devuan minimal live comes with all the available firmware packages +pre-installed. This means that also *non-free* software is present in +this image. Actually, those non-free firmware packages are *the only* +non-free software packages installed in this image. + +We highly value the freedom of Devuan users, and we would rather +prefer none of them to be ever forced to use non-free software, at +all. However, the choice of including non-free firmware was dictated +by the necessity to facilitate new users in getting their hardware, +and especially wifi cards, working out of the box. + +We provide a simple script, that you can find in +"/root/remove_firmware.sh", which allows to remove all non-free +firmware from your installation. Just run the script, and all non-free +firmware will be removed. + +======================================= + +4) == Installing on a hard drive == + +The recommended way of installing Devuan is by using one of the +installation media or the desktop-live image available at +http://files.devuan.org under the folders "installer-iso" and +"desktop-live", respectively. + +However, it is also possible to install this minimal live image on a +hard disk by using the refractainstaller script shipped with it. I +tested the installation on qemu and on bare-metal, and it worked quite +well, but I cannot guarantee that it will work for you as well, so +please use refractainstaller AT YOUR OWN RISK but feel free to drop me +a line if it works. + +Again, INSTALLING AN OPERATING SYSTEM ON AN EXISTING HARD DRIVE MIGHT +POTENTIALLY DESTROY EXISTING DATA, ESPECIALLY IF YOU DON'T KNOW +EXACTLY WHAT YOU ARE DOING. SO PLEASE BE CAREFUL, BACKUP YOUR DATA, +AND DO NOT COMPLAIN IF ANYTHING GOES WRONG. IT WILL BE JUST *YOUR* +FAULT. + +======================================= + +5) == Acknowledgements == + +I thank the refracta team for providing refractasnapshot and +refractainstaller. + +A very special thank goes to Gregory Nowak, Parham Doustdar, Jude +DaShiell, John G Heim, Rob, and all the people in the Linux-speakup +mailing list (http://www.linux-speakup.org/) for their encouragement +and support, and for providing invaluable feedback about +accessibility. Without their help, I couldn't have seen what was +needed in order to make the minimal live images easier to use for +visually-impaired users. + +I feel indebted with all the people in the DNG Mailing List who have +provided feedback, suggestions, comments, and encouragement, and in +particular: aitor_czr, Boruch Baum, fsmithred, golinux, David Hare, +Irrwahn, Steve Litt, Daniel Reurich, Joel Roth, Ozi Traveller. + +Comments, suggestions, criticisms, and bug reports are welcome, and +should be reported on the official Devuan Bug Tracking System: + + http://bugs.devuan.org + +======================================= + diff --git a/blends/devuan-minimal-live/ascii/rootfs_overlay/root/README_firmware.txt b/blends/devuan-minimal-live/ascii/rootfs_overlay/root/README_firmware.txt new file mode 100644 index 0000000..5725d16 --- /dev/null +++ b/blends/devuan-minimal-live/ascii/rootfs_overlay/root/README_firmware.txt @@ -0,0 +1,20 @@ +== About non-free firmware in Devuan minimal-live + +Devuan minimal live comes with all the available firmware +packages pre-installed. This means that also *non-free* +software is present in this image. Actually, those non-free +firmware packages are *the only* non-free software packages +installed in this image. + +This choice was dictated by the necessity to facilitate +new users in getting their hardware, and expecially wifi +cards, working out of the box. + +However, we highly value the freedom of Devuan users, and +we would rather prefer to not be ever forced to use non-free +software, at all. + +For this reason, we provide a simple script, called +"remove_firmware.sh", which allows to remove all non-free +firmware from your installation right after boot. Just run +the script, and all non-free firmware will be removed. diff --git a/blends/devuan-minimal-live/ascii/rootfs_overlay/root/remove_firmware.sh b/blends/devuan-minimal-live/ascii/rootfs_overlay/root/remove_firmware.sh new file mode 100755 index 0000000..07ea0ed --- /dev/null +++ b/blends/devuan-minimal-live/ascii/rootfs_overlay/root/remove_firmware.sh @@ -0,0 +1,39 @@ +#!/bin/sh + +## +## Remove all the non-free firmware packages +## + +FIRMWARE_PKGS="\ + +atmel-firmware \ +b43-fwcutter \ +bluez-firmware \ +dahdi-firmware-nonfree \ +firmware-amd-graphics \ +firmware-atheros \ +firmware-b43-installer \ +firmware-b43legacy-installer \ +firmware-bnx2 \ +firmware-bnx2x \ +firmware-brcm80211 \ +firmware-cavium \ +firmware-crystalhd \ +firmware-intel-sound \ +firmware-intelwimax \ +firmware-ipw2x00 \ +firmware-ivtv \ +firmware-iwlwifi \ +firmware-libertas \ +firmware-linux-nonfree \ +firmware-myricom \ +firmware-netxen \ +firmware-qlogic \ +firmware-realtek \ +firmware-ti-connectivity \ +firmware-zd1211 +" + +echo "=== removing unwanted firmware packages..." +apt-get autoremove --purge ${FIRMWARE_PKGS} + diff --git a/blends/devuan-minimal-live/devuan-minimal-live.blend b/blends/devuan-minimal-live/devuan-minimal-live.blend index 964a1ab..701f4bf 100644 --- a/blends/devuan-minimal-live/devuan-minimal-live.blend +++ b/blends/devuan-minimal-live/devuan-minimal-live.blend @@ -319,7 +319,7 @@ ln -s \${MICRO_INITRD} /initrd.img ## rm create_initrd.sh -##rm /create_initrd.sh +rm /create_initrd.sh ## install additional packages @@ -335,9 +335,15 @@ apt-get clean rm /var/cache/apt/*.bin updatedb +rm -f /initrd.img +rm -f /initrd.img.old +rm -f /boot/initrd.img-* +ln -s \${MICRO_INITRD} /initrd.img + + EOF - cp ${strapdir}/finalize ${strapdir}/finalize.bak +## cp ${strapdir}/finalize ${strapdir}/finalize.bak } From 257354b8cbf946bc4c850fa5048950065b043bfd Mon Sep 17 00:00:00 2001 From: KatolaZ Date: Fri, 1 Jun 2018 07:13:49 +0100 Subject: [PATCH 16/18] several minor fixes before stable --- blends/devuan-minimal-live/TODO.org | 4 +-- blends/devuan-minimal-live/ascii/config | 2 +- .../setnet_0.3.2+devuan1.2_all.deb | Bin 22130 -> 0 bytes .../rootfs_overlay/etc/defaults/boot_beep | 32 ++++++++++++++++++ .../devuan-minimal-live.blend | 9 +++-- 5 files changed, 41 insertions(+), 6 deletions(-) delete mode 100644 blends/devuan-minimal-live/ascii/custom_debs/setnet_0.3.2+devuan1.2_all.deb create mode 100644 blends/devuan-minimal-live/ascii/rootfs_overlay/etc/defaults/boot_beep diff --git a/blends/devuan-minimal-live/TODO.org b/blends/devuan-minimal-live/TODO.org index 2915e2a..c36485d 100644 --- a/blends/devuan-minimal-live/TODO.org +++ b/blends/devuan-minimal-live/TODO.org @@ -1,7 +1,7 @@ #+TODO: TODO IN-PROGRESS | DONE - - +* TODO Chec boot_beep (check config files and all!!!) +* DONE remove packages_list from /home/devuan * DONE Amend motd * DONE amend isolinux_overlay/isolinux.cfg diff --git a/blends/devuan-minimal-live/ascii/config b/blends/devuan-minimal-live/ascii/config index a3d4289..847b004 100644 --- a/blends/devuan-minimal-live/ascii/config +++ b/blends/devuan-minimal-live/ascii/config @@ -2,7 +2,7 @@ ## configuration file for devuan-live blend -- ASCII release -version="2.0.0-rc" +version="2.0.0" ## diff --git a/blends/devuan-minimal-live/ascii/custom_debs/setnet_0.3.2+devuan1.2_all.deb b/blends/devuan-minimal-live/ascii/custom_debs/setnet_0.3.2+devuan1.2_all.deb deleted file mode 100644 index 4b976d4a91e043f166e21b529c8115dd29255dd8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22130 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⁣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 diff --git a/blends/devuan-minimal-live/ascii/rootfs_overlay/etc/defaults/boot_beep b/blends/devuan-minimal-live/ascii/rootfs_overlay/etc/defaults/boot_beep new file mode 100644 index 0000000..ae15509 --- /dev/null +++ b/blends/devuan-minimal-live/ascii/rootfs_overlay/etc/defaults/boot_beep @@ -0,0 +1,32 @@ +## +## The name of the file which will contain the PID of boot_beep.sh +## + +BB_TMPFILE=/tmp/boot_beep.pid + +## +## the path to boot_beep.sh +## + +BB_SCRIPTFILE=/etc/boot_beep + +## +## the process(es) to look for. This pattern will be given to +## "grep -E"... +## + +BB_PROCESS="(getty|login)" + +## +## Set whether beeps are emitted during boot +## +## + +BB_BEEP_BOOT=FALSE + +## +## Set check interval +## +## + +BB_INTERVAL=1 diff --git a/blends/devuan-minimal-live/devuan-minimal-live.blend b/blends/devuan-minimal-live/devuan-minimal-live.blend index 701f4bf..40c69ec 100644 --- a/blends/devuan-minimal-live/devuan-minimal-live.blend +++ b/blends/devuan-minimal-live/devuan-minimal-live.blend @@ -278,8 +278,11 @@ rm -f /etc/popularity-contest.conf # echo "needs_root_rights=yes" >> /etc/X11/Xwrapper.config # Disable contrib and non-free after installing firmware. -sed -i 's/contrib//g' /etc/apt/sources.list -sed -i 's/non-free//g' /etc/apt/sources.list +sed -i 's/ contrib//g' /etc/apt/sources.list +sed -i 's/ non-free//g' /etc/apt/sources.list + +## Disable updates +sed -i '/-updates/s/^/## /g' /etc/apt/sources.list ## insert service boot_beep insserv boot_beep @@ -328,7 +331,7 @@ dpkg -i \$(find ./ -type f -name '*.deb') ## package list -dpkg -l | awk '/^ii/ { print $2 " " $3 }' > /home/${username}/package_list +#dpkg -l | awk '/^ii/ { print $2 " " $3 }' > /home/${username}/package_list ##apt-get update apt-get clean From 6d2212fd578eb41d0f2b101b1bee1c5146bebcb8 Mon Sep 17 00:00:00 2001 From: KatolaZ Date: Fri, 1 Jun 2018 22:46:37 +0100 Subject: [PATCH 17/18] added /etc/default/ to rootfs_overlay --- .../ascii/rootfs_overlay/etc/{defaults => default}/boot_beep | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename blends/devuan-minimal-live/ascii/rootfs_overlay/etc/{defaults => default}/boot_beep (100%) diff --git a/blends/devuan-minimal-live/ascii/rootfs_overlay/etc/defaults/boot_beep b/blends/devuan-minimal-live/ascii/rootfs_overlay/etc/default/boot_beep similarity index 100% rename from blends/devuan-minimal-live/ascii/rootfs_overlay/etc/defaults/boot_beep rename to blends/devuan-minimal-live/ascii/rootfs_overlay/etc/default/boot_beep From 7e6436a13c32e81dbf6bf159d3ecaa34945b441e Mon Sep 17 00:00:00 2001 From: KatolaZ Date: Wed, 6 Jun 2018 14:44:53 +0100 Subject: [PATCH 18/18] ASCII 2.0 stable --- blends/devuan-minimal-live/ascii/config | 4 +--- blends/devuan-minimal-live/ascii/rootfs_overlay/etc/motd | 2 +- .../ascii/rootfs_overlay/root/remove_firmware.sh | 5 ----- blends/devuan-minimal-live/devuan-minimal-live.blend | 9 +++++++-- 4 files changed, 9 insertions(+), 11 deletions(-) diff --git a/blends/devuan-minimal-live/ascii/config b/blends/devuan-minimal-live/ascii/config index 847b004..945238d 100644 --- a/blends/devuan-minimal-live/ascii/config +++ b/blends/devuan-minimal-live/ascii/config @@ -31,6 +31,7 @@ minimal_base_packages+=( dselect file groff-base + grub-pc info kbd laptop-detect @@ -236,13 +237,10 @@ base_packages+=( extra_packages+=( atmel-firmware - b43-fwcutter bluez-firmware dahdi-firmware-nonfree firmware-amd-graphics firmware-atheros - firmware-b43-installer - firmware-b43legacy-installer firmware-bnx2 firmware-bnx2x firmware-brcm80211 diff --git a/blends/devuan-minimal-live/ascii/rootfs_overlay/etc/motd b/blends/devuan-minimal-live/ascii/rootfs_overlay/etc/motd index 20280cf..77fb67c 100644 --- a/blends/devuan-minimal-live/ascii/rootfs_overlay/etc/motd +++ b/blends/devuan-minimal-live/ascii/rootfs_overlay/etc/motd @@ -1,5 +1,5 @@ -Devuan ASCII 2.0.0-beta -- Minimal Live +Devuan ASCII 2.0.0 -- Minimal Live Devuan GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law.  diff --git a/blends/devuan-minimal-live/ascii/rootfs_overlay/root/remove_firmware.sh b/blends/devuan-minimal-live/ascii/rootfs_overlay/root/remove_firmware.sh index 07ea0ed..cfab258 100755 --- a/blends/devuan-minimal-live/ascii/rootfs_overlay/root/remove_firmware.sh +++ b/blends/devuan-minimal-live/ascii/rootfs_overlay/root/remove_firmware.sh @@ -7,13 +7,10 @@ FIRMWARE_PKGS="\ atmel-firmware \ -b43-fwcutter \ bluez-firmware \ dahdi-firmware-nonfree \ firmware-amd-graphics \ firmware-atheros \ -firmware-b43-installer \ -firmware-b43legacy-installer \ firmware-bnx2 \ firmware-bnx2x \ firmware-brcm80211 \ @@ -21,8 +18,6 @@ firmware-cavium \ firmware-crystalhd \ firmware-intel-sound \ firmware-intelwimax \ -firmware-ipw2x00 \ -firmware-ivtv \ firmware-iwlwifi \ firmware-libertas \ firmware-linux-nonfree \ diff --git a/blends/devuan-minimal-live/devuan-minimal-live.blend b/blends/devuan-minimal-live/devuan-minimal-live.blend index 40c69ec..6879abd 100644 --- a/blends/devuan-minimal-live/devuan-minimal-live.blend +++ b/blends/devuan-minimal-live/devuan-minimal-live.blend @@ -37,8 +37,8 @@ blend_preinst() { add-user $username $userpass notice "copying blend-specific debs into $R/extra/custom-packages" - ## TODO: copy the custom debs - cp -fv "$blend_release_path"/custom_debs/*.deb "$R/extra/custom-packages" + ## No more custom-packages + ##cp -fv "$blend_release_path"/custom_debs/*.deb "$R/extra/custom-packages" } blend_postinst() { @@ -310,6 +310,9 @@ ls /boot rm -f /initrd.img rm -f /initrd.img.old + +KERN_ORIG=\$(ls /boot/initrd.img-* | head -1 | cut -d "-" -f 2-) + rm -f /boot/initrd.img-* @@ -343,6 +346,8 @@ rm -f /initrd.img.old rm -f /boot/initrd.img-* ln -s \${MICRO_INITRD} /initrd.img +ln -s \${MICRO_INITRD} /boot/initrd.img-\${KERN_ORIG} + EOF