]> git.plutz.net Git - blast/blobdiff - modules/default.mk
keep line breaks in DEBCONF variable
[blast] / modules / default.mk
index 4cbc7eaa1d0a8f36bf6f14d28694089452e6f5c6..326344006abffc2bdd6497bdd9b3ed7f5cef2c42 100644 (file)
@@ -1,16 +1,17 @@
 ifdef imagesize
-ROOT_MB := $(shell printf '%i\n' "$$(( ${imagesize} - ${BOOT_MB} - 3 ))")
+  ROOT_MB := $(shell printf '%i\n' "$$(( ${imagesize} - ${BOOT_MB} - 3 ))")
 endif
 
-PACKAGES := ${PACKAGES} btrfs-tools 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
+PACKAGES += btrfs-tools 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
 
 define DEBCONF :=
+
 keyboard-configuration keyboard-configuration/model    select  Generic 105-key (Intl) PC
 keyboard-configuration keyboard-configuration/variant  select  English (US) - English (Macintosh)
 endef
@@ -23,65 +24,77 @@ _debconf_selections: ${SYSROOT}
 .PHONY: _timezone _locales
 
 ifdef timezone
-define DEBCONF :=
-${DEBCONF}
-tzdata tzdata/Areas    select  $(firstword $(subst /,${space_},${timezone}))
-tzdata tzdata/Zones/Europe     select  $(lastword $(subst /,${space_},${timezone}))
-endef
-PACKAGES := ${PACKAGES} tzdata
-_config: _timezone
+  export timezone
+  PACKAGES += tzdata
+  _config: _timezone
 endif
 
 ifdef locales
-define DEBCONF :=
-${DEBCONF}
-locales        locales/locales_to_be_generated multiselect     ${locales}
-locales        locales/default_environment_locale      select  $(firstword $(subst ${comma_},${space_},${locales}))
-endef
-#$(addsuffix ${space_}UTF-8,$(subst ${comma_},${space_}${comma},${locales}))
-PACKAGES := ${PACKAGES} locales
-_config: _locales
+  PACKAGES += locales
+  _config: _locales
 endif
 
 _timezone: ${CFGROOT}
-       rm "$${CFGROOT}/etc/timezone"
-       chroot "$${CFGROOT}" dpkg-reconfigure --default-priority -u tzdata
+       printf '%s\n' "$${timezone}" >"$${CFGROOT}/etc/timezone"
+       ln -sf /usr/share/zoneinfo/"$${timezone}" "$${CFGROOT}/etc/localtime"
 
 _locales: ${CFGROOT}
-       rm "$${CFGROOT}/etc/default/locale" "$${CFGROOT}/etc/locale.gen"
-       chroot "$${CFGROOT}" dpkg-reconfigure --default-priority -u locales
+       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
+.PHONY: _rootpass _users _hostname
 
 ifdef rootpass
-export rootpass
-_config: _rootpass
+  export rootpass
+  _config: _rootpass
+endif
+
+ifdef rootkey
+  export rootkey
+  _config: _rootkey
 endif
 
 ifdef users
-_config: _users
+  _config: _users
+endif
+
+ifdef hostname
+  export hostname
+  _config: _hostname
 endif
 
 _rootpass: ${CFGROOT}
        chroot "$${CFGROOT}" usermod -p "$$(openssl passwd "$${rootpass}")" root
 
+${rootkey}.pub:
+       ssh-keygen -N '' -f "$${rootkey}"
+
+_rootkey: ${CFGROOT} ${rootkey}.pub
+       mkdir -m 700 "$${CFGROOT}/root/.ssh/"
+       cp "$${rootkey}.pub" "$${CFGROOT}/root/.ssh/authorized_keys"
+
 _users: ${CFGROOT}
-       #sed -Ei 's;^SHELL=/bin/sh$$;SHELL=/bin/bash;;' "${CFGROOT}/etc/default/useradd"
        for u in $(subst ${comma_},${space_},${users}); do \
                chroot "$${CFGROOT}" useradd -m -s /bin/bash -p "$$(openssl passwd "")" "$$u"; \
        done
 
+_hostname: ${CFGROOT}
+       printf '%s\n' "$${hostname}" "$${CFGROOT}/etc/hostname"
+
 ifdef wifi
-ifdef wifipass
-export wifi wifipass
-${CFGROOT}/etc/network/interfaces.d/wifi: ${CFGROOT}
+  _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
-export wifi
-${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
-_config: ${CFGROOT}/etc/network/interfaces.d/wifi
+  endif
 endif