commit 2ffec5929d2c25bdad1e92bbab9037406a027e03
parent efd17cfeb3c7828425f8ffbb07b365dc357d0be5
Author: parazyd <parazyd@dyne.org>
Date: Mon, 10 Jul 2017 14:07:44 +0200
update with fsr's latest blend
Diffstat:
2 files changed, 208 insertions(+), 124 deletions(-)
diff --git a/blends/devuan-live/config b/blends/devuan-live/config
@@ -1,29 +1,29 @@
#!/usr/bin/env zsh
## configuration file for devuan-live blend
-vars+=(username userpass default_shell mkefi grubversion)
+vars+=(username userpass default_shell mkefi grubversion hookscripts)
arrs+=(custom_deb_packages)
-blend_name="devuan-live"
+blend_name="devuan-live_"
username="devuan"
userpass="devuan"
default_shell="/bin/bash"
-grubversion="grub-pc"
-image_name="${os}_${release}_${version}_${arch}"
+# comment to disable:
+hookscripts="yes"
-case "$4" in
- uefi)
- notice "UEFI build enabled"
- grubversion="grub-efi-${arch}"
- image_name="${os}_${release}_${version}_${arch}_uefi"
- mkefi="yes"
- efi_work="$BLENDPATH/efi-files"
- ;;
-esac
+# uncomment to create uefi-bootable iso
+mkefi="yes"
+efi_work="$BLENDPATH/efi-files"
-extra_packages+=(
+#grubversion="grub-pc"
+grubversion="grub-efi-amd64"
+
+section="main contrib non-free"
+image_name="${os}_${release}_${version}_${arch}_uefi_desktop"
+
+base_packages+=(
lsof
bash-completion
texinfo
@@ -40,6 +40,7 @@ extra_packages+=(
gnupg2
gparted
$grubversion
+ iw
laptop-detect
mlocate
mutt
@@ -51,16 +52,40 @@ extra_packages+=(
usbutils
w3m
whois
+)
+
+extra_packages+=(
+
task-desktop
task-english
task-xfce-desktop
task-print-server
- #refractasnapshot-base
- refractasnapshot-gui
- #refractainstaller-base
- refractainstaller-gui
+ popularity-contest
)
+
+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
debian-keyring
@@ -80,6 +105,15 @@ purge_packages=(
zsh-common
)
+
+# 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
+ refractainstaller-base_9.2.1_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-live/devuan-live.blend b/blends/devuan-live/devuan-live.blend
@@ -1,10 +1,9 @@
#!/usr/bin/env zsh
# Copyright (c) 2017 Dyne.org Foundation
# live-sdk is written and maintained by Ivan J. <parazyd@dyne.org>
-# devuan-live blend patches maintained by fsmithred
#
# This file is part of live-sdk
-#
+# devuan-live.blend is maintained by fsmithred
#
# 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
@@ -23,29 +22,6 @@ BLENDPATH="${BLENDPATH:-$(dirname $0)}"
source $BLENDPATH/config
-conf_print_sourceslist() {
- fn conf_print_sourceslist "(override)"
- req=(mirror release section)
- ckreq || return 1
-
- cat << EOF
-## package repositories
-deb ${mirror} ${release} ${section}
-deb ${mirror} ${release}-updates ${section}
-deb ${mirror} ${release}-security ${section}
-#deb ${mirror} ${release}-backports ${section}
-deb http://packages.devuan.org/devuan experimental ${section}
-
-## source repositories
-#deb-src ${mirror} ${release} ${section}
-#deb-src ${mirror} ${release}-updates ${section}
-#deb-src ${mirror} ${release}-security ${section}
-#deb-src ${mirror} ${release}-backports ${section}
-#deb-src http://packages.devuan.org/devuan experimental ${section}
-
-EOF
-}
-
blend_preinst() {
fn blend_preinst
req=(blend_name username userpass)
@@ -66,12 +42,15 @@ blend_postinst() {
notice "executing $blend_name postinst"
- [[ -n "$mkefi" ]] && iso_make_efi
+ [[ $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
+ pushd "$strapdir"
+ sudo rsync -avx --no-o --no-g "$BLENDPATH"/rootfs-overlay/* . || zerr
+ popd
blend_finalize || zerr
}
@@ -95,24 +74,34 @@ 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-${arch}
- menu label devuan-live (${arch})
+label live
+ menu label ${os}-live (${arch})
menu default
linux /live/vmlinuz
- append initrd=/live/initrd boot=live username=${username}
+ 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 devuan-live (${arch}) (load to RAM)
+ menu label ${os}-live (${arch}) (load to RAM)
linux /live/vmlinuz
- append initrd=/live/initrd boot=live username=${username} toram
+ append initrd=/live/initrd.img boot=live username=${username} toram
label failsafe
- menu label devuan-live (${arch}) (failsafe)
- kernel /live/vmlinuz noapic noapm nodma nomce nolapic nosmp vga=normal
- append initrd=/live/initrd boot=live
+ 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
@@ -120,24 +109,27 @@ 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/
+ }
}
-## uefi code borrowed and adapted from David Hare, who borrowed and adapted it
-## from similar scripts by Colin Watson and Patrick J. Volkerding.
+# 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=(strapdir workdir efi_work)
+ req=(workdir efi_work)
ckreq || return 1
- set -x
- notice "creating efi boot files"
- _tempdir="$(mktemp -d /tmp/work_temp.XXXX)"
+ notice "creating efi boot files"
- ## for initial grub.cfg
- mkdir -p "$_tempdir"/boot/grub
+ tempdir="$(mktemp -d /tmp/work_temp.XXXX)"
+ # for initial grub.cfg
+ mkdir -p "$tempdir"/boot/grub
- cat >"$_tempdir"/boot/grub/grub.cfg <<EOF
+ cat >"$tempdir"/boot/grub/grub.cfg <<EOF
search --file --set=root /isolinux/isolinux.cfg
set prefix=(\$root)/boot/grub
source \$prefix/x86_64-efi/grub.cfg
@@ -146,92 +138,110 @@ EOF
mkdir -p "$efi_work"
pushd "$efi_work"
- rm -rf boot efi
- rm -rf efi
- mkdir -p boot/grub/x86_64-efi
- mkdir -p efi/boot
-
- ## efi partition mods
- find $strapdir/usr/lib/grub/x86_64-efi -type f -name "part_*\.mod" \
- -exec sh -c 'for f do echo insmod $(basename -- "$f" .mod); done' sh {} + \
- >> boot/grub/x86_64-efi/grub.cfg
+ # start with empty directories.
+ rm -rf boot; mkdir -p boot/grub/x86_64-efi
+ rm -rf efi ; mkdir -p efi/boot
- ## 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)
+ # second grub.cfg file
+ for i in $(find $strapdir/usr/lib/grub/x86_64-efi -name 'part_*.mod'); do
+ print "insmod $(basename $i)" >> boot/grub/x86_64-efi/grub.cfg
+ done
- for i in $_efimods; do
+ # 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
+ pushd "$tempdir"
+ # make a tarred "memdisk" to embed in the grub image
tar -cvf memdisk boot
- ## make the grub image
- _grubmods=(search iso9660 configfile normal memdisk tar cat part_msdos
- part_gpt fat ext2 ntfs ntfscomp hfsplus chain boot linux)
- grub-mkimage \
- -O "x86_64-efi" \
- -m "memdisk" \
- -o "bootx64.efi" \
- -p '(memdisk)/boot/grub' \
- $_grubmods
+ # make the grub image
+ cat <<EOF | sudo tee ${strapdir}/grubmkimage
+#!/bin/sh
+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
+EOF
+ chroot-script -d grubmkimage
popd
- ## copy the grub image to efi/boot (to go later in the device's root)
- cp "$_tempdir"/bootx64.efi efi/boot
+ # 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"
+ # Do the boot image "boot/grub/efiboot.img"
dd if=/dev/zero of=boot/grub/efiboot.img bs=1K count=1440
/sbin/mkdosfs -F 12 boot/grub/efiboot.img
- sudo mkdir -p img-mnt
+ 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/
+ 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
+ # 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
- ## doesn't need to be root-owned
- #sudo chown -R 1000:1000 $(pwd) 2>/dev/null
+ # copy splash
+ sudo cp -rav "$BLENDPATH"/isolinux-overlay/splash.png boot/grub/splash.png
- ## Cleanup efi temps
+ # Cleanup efi temps
sudo umount img-mnt
sudo rmdir img-mnt
- rm -rf "$_tempdir"
+ rm -rf "$tempdir"
- popd # $efi_work
+ popd
- ## Copy efi files to iso
+ # Copy efi files to iso
pushd $workdir
sudo rsync -avx "$efi_work"/boot binary/
sudo rsync -avx "$efi_work"/efi binary/
popd
- ## Do the main grub.cfg (which gets loaded last):
+}
+
+
+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 <<EOF | sudo tee ${workdir}/binary/boot/grub/grub.cfg
if loadfont $prefix/font.pf2 ; then
- set gfxmode=640x480
- insmod efi_gop
- insmod efi_uga
- insmod video_bochs
- insmod video_cirrus
- insmod gfxterm
- insmod jpeg
- insmod png
- terminal_output gfxterm
+ set gfxmode=640x480
+ insmod efi_gop
+ insmod efi_uga
+ insmod video_bochs
+ insmod video_cirrus
+ insmod gfxterm
+ insmod jpeg
+ insmod png
+ terminal_output gfxterm
fi
background_image /boot/grub/splash.png
@@ -239,11 +249,34 @@ set menu_color_normal=white/black
set menu_color_highlight=dark-gray/white
set timeout=6
-menuentry "${os} (defaults)" {
+menuentry "${os}-live (${arch})" {
+ set gfxpayload=keep
+ linux /live/vmlinuz boot=live username=$username
+ initrd /live/initrd.img
+}
+
+menuentry "Other language" {
set gfxpayload=keep
- linux /live/vmlinuz boot=live username=${username}
- initrd /live/initrd
+ linux /live/vmlinuz boot=live username=$username hooks=file:///lib/live/mount/medium/live/hooks/fix-lang.sh locales=it_IT.UTF-8
+ initrd /live/initrd.img
}
+
+menuentry "${os}-live (load to RAM)" {
+ set gfxpayload=keep
+ linux /live/vmlinuz boot=live username=$username toram
+ initrd /live/initrd.img
+}
+
+menuentry "${os}-live (failsafe)" {
+ set gfxpayload=keep
+ linux /live/vmlinuz boot=live username=$username noapic noapm nodma nomce nolapic nosmp vga=normal
+ initrd /live/initrd.img
+}
+
+menuentry "Memory test" {
+ linux /live/memtest
+}
+
EOF
}
@@ -261,17 +294,34 @@ for i in cdrom floppy audio dip video plugdev netdev lpadmin scanner; do
done
chsh -s "${default_shell}" ${username}
-cp /usr/share/applications/refractainstaller.desktop /home/${username}/Desktop/
-chmod +x /home/${username}/Desktop/refractainstaller.desktop
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
+ 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