X-Git-Url: http://git.plutz.net/?a=blobdiff_plain;f=modules%2Fdefault.mk;h=7719ce4d484bc33423df543240e745650491a820;hb=9b41121078e861ebef38cd8d3659b88d73cb206a;hp=71ec8640e5374537fe331a3e18dc762a4aa28b35;hpb=036c84e85aff0768e1606d22076492b934d161f4;p=blast diff --git a/modules/default.mk b/modules/default.mk index 71ec864..7719ce4 100644 --- a/modules/default.mk +++ b/modules/default.mk @@ -1,27 +1,120 @@ +ifdef imagesize + ROOT_MB := $(shell printf '%i\n' "$$(( ${imagesize} - ${BOOT_MB} - 3 ))") +endif + +PACKAGES += btrfs-progs bzip2 ca-certificates cron deborphan firmware-linux-free gzip htop ifupdown iputils-ping irqbalance isc-dhcp-client less make net-tools nmap ntpdate openssh-client psmisc rsync sshfs sudo traceroute unzip vim wget wireless-tools wpasupplicant xz-utils zip + ifdef packages -PACKAGES := ${PACKAGES} $(subst ${comma_},${space},${packages}) + PACKAGES += $(subst ${comma_},${space_},${packages}) +endif + +export DEBCONF RPICONFIG + +define DEBCONF := +${DEBCONF} + +keyboard-configuration keyboard-configuration/model select Generic 105-key (Intl) PC +keyboard-configuration keyboard-configuration/variant select English (US) - English (Macintosh) +endef + +define RPICONFIG := +${RPICONFIG} + +dtoverlay=vc4-fkms-v3d,cma-256 +endef + +.PHONY: _debconf_selections _raspberry_config _keyboard +_install: _debconf_selections +_debconf_selections: ${SYSROOT} + printf '%s\n' "$${DEBCONF}" |chroot "$${SYSROOT}" debconf-set-selections + +ifdef keyboard + _config: _keyboard +endif +_keyboard: ${CFGROOT} + -sed -Ei 's;^XKBLAYOUT=.*$$;XKBLAYOUT="${keyboard}";;' "$${CFGROOT}/etc/default/keyboard" + +ifdef raspi + _config: _raspberry_config +endif +_raspberry_config: ${CFGROOT} + printf '%s\n' "$${RPICONFIG}" >>"$${CFGROOT}/boot/config.txt" + +.PHONY: _timezone _locales + +ifdef timezone + export timezone + PACKAGES += tzdata + _config: _timezone +endif + +ifdef locales + PACKAGES += locales + _config: _locales endif +_timezone: ${CFGROOT} + printf '%s\n' "$${timezone}" >"$${CFGROOT}/etc/timezone" + ln -sf /usr/share/zoneinfo/"$${timezone}" "$${CFGROOT}/etc/localtime" + +_locales: ${CFGROOT} + for l in $(subst ${comma_},${space_},${locales}); do \ + printf '%s %s\n' "$${l}" "$${l#*.}"; \ + done >"$${CFGROOT}/etc/locale.gen" + printf 'LANG=%s\n' "$(firstword $(subst ${comma_},${space_},${locales}))" >"$${CFGROOT}/etc/default/locale" + chroot "$${CFGROOT}" locale-gen + +.PHONY: _rootpass _users _hostname + ifdef rootpass -export rootpass -.PHONY: _rootpass -_config: _rootpass -_rootpass: ${CFGROOT} - chroot "$${CFGROOT}" usermod -p "$$(openssl passwd -salt "$$(($${RANDOM-0} + 10))" "$${rootpass}")" root + export rootpass + _config: _rootpass endif -ifdef wifi -export wifi -_config: ${CFGROOT}/etc/network/interfaces.d/wifi +ifdef rootkey + export rootkey + _config: _rootkey +endif + +ifdef users + _config: _users +endif + +ifdef hostname + export hostname + _config: _hostname +endif + +_rootpass: ${CFGROOT} + chroot "$${CFGROOT}" usermod -p "$$(openssl passwd "$${rootpass}")" root + +${rootkey}.pub: + [ -f "$@" ] || ssh-keygen -N '' -f "$${rootkey}" + +_rootkey: ${CFGROOT} ${rootkey}.pub + mkdir -m 700 "$${CFGROOT}/root/.ssh/" + cp "$${rootkey}.pub" "$${CFGROOT}/root/.ssh/authorized_keys" -ifdef wifipass -export wifipass -${CFGROOT}/etc/network/interfaces.d/wifi: ${CFGROOT} +_users: ${CFGROOT} + for u in $(subst ${comma_},${space_},${users}); do \ + chroot "$${CFGROOT}" useradd -s /bin/bash -p "$$(openssl passwd "")" "$$u"; \ + done + +_hostname: ${CFGROOT} + printf '%s\n' "$${hostname}" >"$${CFGROOT}/etc/hostname" + sed -Ei "s;^127\.0\.0\.1.*$$;\1 $${hostname};" "$${CFGROOT}/etc/hosts" + +ifdef wifi + _config: ${CFGROOT}/etc/network/interfaces.d/wifi + ifdef wifipass + export wifi wifipass + ${CFGROOT}/etc/network/interfaces.d/wifi: ${CFGROOT} printf 'auto wlan0\nallow-hotplug wlan0\n\niface wlan0 inet dhcp\n' >$@ printf ' wpa-ssid "%s"\n wpa-psk "%s"\n' "$$wifi" "$$wifipass" >>$@ -else -${CFGROOT}/etc/network/interfaces.d/wifi: ${CFGROOT} + else + export wifi + ${CFGROOT}/etc/network/interfaces.d/wifi: ${CFGROOT} printf 'auto wlan0\nallow-hotplug wlan0\n\niface wlan0 inet dhcp\n' >$@ printf ' wireless-ssid "%s"\n' "$$wifi" >>$@ -endif + endif endif