+ifdef imagesize
+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
+
ifdef packages
-PACKAGES := ${PACKAGES} $(subst ${comma_},${space},${packages})
+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
+
+.PHONY: _debconf_selections
+_install: _debconf_selections
+_debconf_selections: ${SYSROOT}
+ printf '%s\n' "$${DEBCONF}" |chroot "$${SYSROOT}" debconf-set-selections
+
+.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
+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
+endif
+
+_timezone: ${CFGROOT}
+ rm "$${CFGROOT}/etc/timezone"
+ chroot "$${CFGROOT}" dpkg-reconfigure --default-priority -u tzdata
+
+_locales: ${CFGROOT}
+ rm "$${CFGROOT}/etc/default/locale" "$${CFGROOT}/etc/locale.gen"
+ chroot "$${CFGROOT}" dpkg-reconfigure --default-priority -u locales
+
+.PHONY: _rootpass _users
+
ifdef rootpass
export rootpass
-.PHONY: _rootpass
_config: _rootpass
-_rootpass: ${CFGROOT}
- chroot "$${CFGROOT}" usermod -p "$$(openssl passwd -salt "$$(($${RANDOM-0} + 10))" "$${rootpass}")" root
endif
-ifdef wifi
-export wifi
-_config: ${CFGROOT}/etc/network/interfaces.d/wifi
+ifdef users
+_config: _users
+endif
+_rootpass: ${CFGROOT}
+ chroot "$${CFGROOT}" usermod -p "$$(openssl passwd "$${rootpass}")" root
+
+_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
+
+ifdef wifi
ifdef wifipass
-export 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}
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