From 8418050bff2e2b69606516bc3e082965cc073c9a Mon Sep 17 00:00:00 2001 From: Eric Hameleers Date: Thu, 15 Dec 2016 23:10:57 +0100 Subject: DLACK: add Dlackware as a DE choice when generating the ISO. Dlackware is Slackware with systemd and Gnome3. An interesting experiment. Thanks to bartgymnast of the Dlackware team who provided the patches. Note: at this moment, this is pre-alpha quality. - The default root and live passwords do not work so you'll have to add boot parameter 'livepw=XXXXXXXX' and think of a strong password that passes the PAM strength test. - The Gnome3 environment does not show an application menu. - The Dlackware package quality is sub-standard. Notably it will mess with the buildhost machine's password database and install 64bit stuff into /usr/lib --- make_slackware_live.sh | 28 ++++++- pkglists/dlackware.conf | 15 ++++ pkglists/dlackware.lst | 216 ++++++++++++++++++++++++++++++++++++++++++++++++ pkglists/systemd.conf | 15 ++++ pkglists/systemd.lst | 19 +++++ 5 files changed, 290 insertions(+), 3 deletions(-) create mode 100644 pkglists/dlackware.conf create mode 100644 pkglists/dlackware.lst create mode 100644 pkglists/systemd.conf create mode 100644 pkglists/systemd.lst diff --git a/make_slackware_live.sh b/make_slackware_live.sh index 7cee8e3..a2817e9 100755 --- a/make_slackware_live.sh +++ b/make_slackware_live.sh @@ -94,7 +94,7 @@ DISTRO=${DISTRO:-"slackware"} LIVE_HOSTNAME=${LIVE_HOSTNAME:-"darkstar"} # What type of Live image? -# Choices are: SLACKWARE, XFCE, KDE4, PLASMA5, MATE, CINNAMON +# Choices are: SLACKWARE, XFCE, KDE4, PLASMA5, MATE, CINNAMON, DLACK LIVEDE=${LIVEDE:-"SLACKWARE"} # What runlevel to use if adding a DE like: XFCE, KDE4, PLASMA5 etc... @@ -182,6 +182,10 @@ SEQ_MSB="tagfile:a,ap,d,e,f,k,l,n,t,tcl,x,xap,xfce,y pkglist:slackextra,mate loc # - each will become a squashfs module: SEQ_CIN="tagfile:a,ap,d,e,f,k,l,n,t,tcl,x,xap,xfce,y pkglist:slackextra,cinnamon local:slackpkg+" +# Slackware package series with Gnome3/systemd instead of KDE4 (full install): +# - each will become a squashfs module: +SEQ_DLACK="tagfile:a,ap,d,e,f,k,l,n,t,tcl,x,xap pkglist:slackextra,systemd,dlackware" + # List of kernel modules required for a live medium to boot properly; # Lots of HID modules added to support keyboard input for LUKS password entry: KMODS=${KMODS:-"squashfs:overlay:loop:xhci-pci:ohci-pci:ehci-pci:xhci-hcd:uhci-hcd:ehci-hcd:usb-storage:hid:usbhid:i2c-hid:hid-generic:hid-cherry:hid-logitech:hid-logitech-dj:hid-logitech-hidpp:hid-lenovo:hid-microsoft:hid_multitouch:jbd:mbcache:ext3:ext4:isofs:fat:nls_cp437:nls_iso8859-1:msdos:vfat"} @@ -758,8 +762,8 @@ do echo " -h This help." echo " -a arch Machine architecture (default: ${SL_ARCH})." echo " Use i586 for a 32bit ISO, x86_64 for 64bit." - echo " -d desktoptype SLACKWARE (full Slack), KDE4 (basic KDE4)," - echo " XFCE (basic XFCE), PLASMA5, MATE, CINNAMON." + echo " -d desktoptype SLACKWARE (full Slack), KDE4 basic," + echo " XFCE basic, PLASMA5, MATE, CINNAMON, DLACK." echo " -e Use ISO boot-load-size of 32 for computers." echo " where the ISO won't boot otherwise." echo " -f Forced re-generation of all squashfs modules," @@ -960,6 +964,7 @@ case "$LIVEDE" in PLASMA5) MSEQ="${SEQ_PLASMA5}" ;; MATE) MSEQ="${SEQ_MSB}" ;; CINNAMON) MSEQ="${SEQ_CIN}" ;; + DLACK) MSEQ="${SEQ_DLACK}" ;; *) if [ -n "${SEQ_CUSTOM}" ]; then # Custom distribution with a predefined package list: MSEQ="${SEQ_CUSTOM}" @@ -1602,6 +1607,21 @@ EOGL fi # End LIVEDE = PLASMA5 +if [ "$LIVEDE" = "DLACK" ]; then + + # -------------------------------------------------------------------------- # + echo "-- Configuring DLACK." + # -------------------------------------------------------------------------- # + + # Make sure we start in graphical mode with gdm enabled. + ln -sf /lib/systemd/system/graphical.target ${LIVE_ROOTDIR}/etc/systemd/system/default.target + ln -sf /lib/systemd/system/gdm.service ${LIVE_ROOTDIR}/etc/systemd/system/display-manager.service + + # Do not show the blueman applet, Gnome3 has its own BlueTooth widget: + echo "NotShowIn=GNOME;" >> ${LIVE_ROOTDIR}/etc/xdg/autostart/blueman.desktop + +fi # End LIVEDE = DLACK + # You can define the function 'custom_config()' by uncommenting it in # the configuration file 'make_slackware_live.conf'. if type custom_config 1>/dev/null 2>/dev/null ; then @@ -1644,6 +1664,8 @@ elif [ "$LIVEDE" = "MATE" ]; then ln -sf xinitrc.mate-session ${LIVE_ROOTDIR}/etc/X11/xinit/xinitrc elif [ "$LIVEDE" = "CINNAMON" ]; then ln -sf xinitrc.cinnamon-session ${LIVE_ROOTDIR}/etc/X11/xinit/xinitrc +elif [ "$LIVEDE" = "DLACK" ]; then + ln -sf xinitrc.gnome ${LIVE_ROOTDIR}/etc/X11/xinit/xinitrc elif [ -f ${LIVE_ROOTDIR}/etc/X11/xinit/xinitrc.xfce ]; then ln -sf xinitrc.xfce ${LIVE_ROOTDIR}/etc/X11/xinit/xinitrc fi diff --git a/pkglists/dlackware.conf b/pkglists/dlackware.conf new file mode 100644 index 0000000..06ac17c --- /dev/null +++ b/pkglists/dlackware.conf @@ -0,0 +1,15 @@ +# If 'SL_REPO_URL' is a rsync:// URL and 'SL_REPO' points to a non-existent +# or empty directory, then the content of 'SL_REPO_URL' will be rsync-ed +# to the local directory 'SL_REPO'. + +VARIANT=3.22 + +SL_REPO_URL="rsync://pkgs.dlackware.com/mirrors/slackware/dlack/${SL_VERSION}/${VARIANT}/${SL_ARCH}" +SL_REPO="/var/cache/dlackware" + +# Package root directory: +SL_PKGROOT=${SL_REPO} + +# Patches root directory: +SL_PATCHROOT="" + diff --git a/pkglists/dlackware.lst b/pkglists/dlackware.lst new file mode 100644 index 0000000..7b881de --- /dev/null +++ b/pkglists/dlackware.lst @@ -0,0 +1,216 @@ +# +# Packages to be rebuilt/added as base for the gnome build: +# +NetworkManager +#appdata-tools +appstream-glib +avahi +gcab +glib-networking +glib2 +gnome-keyring +gst-libav +gst-plugins-bad +gst-plugins-base +gst-plugins-good +gst-plugins-ugly +gstreamer +gtk+3 +gucharmap +gvfs +json-glib +libbluray +libcap +libdaemon +libinput +libwacom +libwebp +mesa +polkit +shared-mime-info +systemd-service-files +udisks2 +upower +wayland +wayland-protocols +xorg-server +xorg-server-xwayland + +### [gnome-suites-core-deps] begin +GeoIP +PackageKit +accountsservice +aisleriot +atk +atkmm +autoconf-archive +baobab +brasero +cantarell-fonts +caribou +check +cheese +clutter +clutter-gst +clutter-gtk +cogl +colord +colord-gtk +dbus-python3 +dconf +dconf-editor +devhelp +eog +epiphany +evince +evolution +evolution-data-server +exempi +farstream +file-roller +folks +gdk-pixbuf2 +gdm +gedit +gegl3 +geoclue +geocode-glib +gexiv2 +gfbgraph +gitg +gjs +glade +glibmm +gnome-applets +gnome-autoar +gnome-backgrounds +gnome-bluetooth +gnome-builder +gnome-calculator +gnome-clocks +gnome-color-manager +gnome-common +gnome-contacts +gnome-control-center +gnome-desktop +gnome-devel-docs +gnome-dictionary +gnome-disk-utility +gnome-documents +gnome-font-viewer +gnome-getting-started-docs +gnome-initial-setup +gnome-js-common +gnome-logs +gnome-mahjongg +gnome-menus +gnome-music +gnome-nettool +gnome-online-accounts +gnome-online-miners +gnome-packagekit +gnome-panel +gnome-photos +gnome-power-manager +gnome-screenshot +gnome-session +gnome-settings-daemon +gnome-shell +gnome-shell-extensions +gnome-system-log +gnome-system-monitor +gnome-terminal +gnome-tweak-tool +gnome-user-docs +gnome-user-share +gnome-video-effects +gnome-weather +gobject-introspection +grilo +grilo-plugins +gsettings-desktop-schemas +gsound +gspell +gssdp +gtk-engines +gtk-vnc +gtkhtml +gtksourceview +gtksourceviewmm +gtkspell3 +gupnp +gupnp-av +gupnp-dlna +gupnp-igd +hyphen +ibus +libchamplain +libcryptui +libdmapsharing +libdvdcss +libgdata +libgee +libgepub +libgit2 +libgit2-glib +libgnomekbd +libgsystem +libgtop +libgusb +libgweather +libgxps +libmediaart +libmusicbrainz5 +libnice +liboauth +libosinfo +libpeas +libquvi +libquvi-scripts +libsigc++ +libwnck3 +libxml++ +libzapojit +lua +mm-common +mousetweaks +mozjs24 +mutter +nautilus +nautilus-sendto +nemiver +orca +pcre2 +plymouth +py3atspi +py3cairo +py3gobject3 +pyatspi +pylint +python-requests +quvi +rdflib +rest +rygel +seahorse +seed +sushi +telepathy-glib +telepathy-logger +telepathy-mission-control +totem +totem-pl-parser +tracker +uhttpmock +vala +vinagre +vino +vte2_91 +webkitgtk +webkitgtk1 +yelp +yelp-tools +yelp-xsl +zeitgeist +zenity + diff --git a/pkglists/systemd.conf b/pkglists/systemd.conf new file mode 100644 index 0000000..06ac17c --- /dev/null +++ b/pkglists/systemd.conf @@ -0,0 +1,15 @@ +# If 'SL_REPO_URL' is a rsync:// URL and 'SL_REPO' points to a non-existent +# or empty directory, then the content of 'SL_REPO_URL' will be rsync-ed +# to the local directory 'SL_REPO'. + +VARIANT=3.22 + +SL_REPO_URL="rsync://pkgs.dlackware.com/mirrors/slackware/dlack/${SL_VERSION}/${VARIANT}/${SL_ARCH}" +SL_REPO="/var/cache/dlackware" + +# Package root directory: +SL_PKGROOT=${SL_REPO} + +# Patches root directory: +SL_PATCHROOT="" + diff --git a/pkglists/systemd.lst b/pkglists/systemd.lst new file mode 100644 index 0000000..ca8855b --- /dev/null +++ b/pkglists/systemd.lst @@ -0,0 +1,19 @@ +# The installation order in this list is important. Do not try to change it. +# +# pam: +krb5 +cracklib +pam +libpwquality +shadow +pam_krb5 + +# systemd: +python3 +lxml +libxkbcommon +eudev%systemd +dbus +util-linux +openssh +procps-ng -- cgit v1.2.3 From 7b8b1e3dfebefe6afe5ddaf28e7b4a36afb0d4ea Mon Sep 17 00:00:00 2001 From: Eric Hameleers Date: Fri, 16 Dec 2016 08:45:16 +0100 Subject: (e)liloconfig: only try to patch these scripts if they are contained in the ISO. --- make_slackware_live.sh | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/make_slackware_live.sh b/make_slackware_live.sh index a2817e9..260359d 100755 --- a/make_slackware_live.sh +++ b/make_slackware_live.sh @@ -1353,8 +1353,12 @@ if ls ${LIVE_ROOTDIR}/boot/vmlinuz-huge-* 1>/dev/null 2>/dev/null; then cd - 1>/dev/null # Fix some occurrences of '/mnt' that should not be used in the Live ISO: sed -i -e 's, /mnt, ${T_PX},g' -e 's,=/mnt/,=${T_PX}/,g' -e 's,T_PX=/mnt,T_PX=/setup2hd,g' ${LIVE_ROOTDIR}/usr/share/${LIVEMAIN}/* - patch ${LIVE_ROOTDIR}/sbin/liloconfig ${LIVE_TOOLDIR}/patches/liloconfig.patch - patch ${LIVE_ROOTDIR}/usr/sbin/eliloconfig ${LIVE_TOOLDIR}/patches/eliloconfig.patch + if [ -f ${LIVE_ROOTDIR}/sbin/liloconfig ]; then + patch ${LIVE_ROOTDIR}/sbin/liloconfig ${LIVE_TOOLDIR}/patches/liloconfig.patch + fi + if [ -f ${LIVE_ROOTDIR}/usr/sbin/eliloconfig ]; then + patch ${LIVE_ROOTDIR}/usr/sbin/eliloconfig ${LIVE_TOOLDIR}/patches/eliloconfig.patch + fi # Fix some occurrences of '/usr/lib/setup/' are covered by $PATH: sed -i -e 's,/usr/lib/setup/,,g' -e 's,:/usr/lib/setup,:/usr/share/${LIVEMAIN},g' ${LIVE_ROOTDIR}/usr/share/${LIVEMAIN}/* # Add the Slackware Live HD installer: -- cgit v1.2.3 From 122eb70367465b112fdb694f58840a6f4dd3d82f Mon Sep 17 00:00:00 2001 From: Eric Hameleers Date: Sat, 31 Dec 2016 21:29:32 +0100 Subject: pkglist for dlackware: use '/var/cache/liveslak' to store repository mirrors. --- pkglists/dlackware.conf | 2 +- pkglists/systemd.conf | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pkglists/dlackware.conf b/pkglists/dlackware.conf index 06ac17c..647aac3 100644 --- a/pkglists/dlackware.conf +++ b/pkglists/dlackware.conf @@ -5,7 +5,7 @@ VARIANT=3.22 SL_REPO_URL="rsync://pkgs.dlackware.com/mirrors/slackware/dlack/${SL_VERSION}/${VARIANT}/${SL_ARCH}" -SL_REPO="/var/cache/dlackware" +SL_REPO="/var/cache/liveslak/dlackware/${SL_VERSION}/${VARIANT}/${SL_ARCH}" # Package root directory: SL_PKGROOT=${SL_REPO} diff --git a/pkglists/systemd.conf b/pkglists/systemd.conf index 06ac17c..647aac3 100644 --- a/pkglists/systemd.conf +++ b/pkglists/systemd.conf @@ -5,7 +5,7 @@ VARIANT=3.22 SL_REPO_URL="rsync://pkgs.dlackware.com/mirrors/slackware/dlack/${SL_VERSION}/${VARIANT}/${SL_ARCH}" -SL_REPO="/var/cache/dlackware" +SL_REPO="/var/cache/liveslak/dlackware/${SL_VERSION}/${VARIANT}/${SL_ARCH}" # Package root directory: SL_PKGROOT=${SL_REPO} -- cgit v1.2.3 From 0adddb85cc34f44a80c5948d37fbef2d874a257e Mon Sep 17 00:00:00 2001 From: Eric Hameleers Date: Sun, 1 Jan 2017 02:10:19 +0100 Subject: DLACK: updated the package list. --- pkglists/dlackware.lst | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pkglists/dlackware.lst b/pkglists/dlackware.lst index 7b881de..e56506e 100644 --- a/pkglists/dlackware.lst +++ b/pkglists/dlackware.lst @@ -33,6 +33,7 @@ udisks2 upower wayland wayland-protocols +wpa_supplicant xorg-server xorg-server-xwayland @@ -60,6 +61,8 @@ dbus-python3 dconf dconf-editor devhelp +dlack-settings +dlackware eog epiphany evince @@ -120,6 +123,7 @@ gnome-shell-extensions gnome-system-log gnome-system-monitor gnome-terminal +gnome-todo gnome-tweak-tool gnome-user-docs gnome-user-share -- cgit v1.2.3 From 037d42a37e01ee3fc18327462daa8971d9996a96 Mon Sep 17 00:00:00 2001 From: Eric Hameleers Date: Sun, 1 Jan 2017 17:39:11 +0100 Subject: DLACK: ibus needs to be installed before gdm to prevent an error. --- pkglists/dlackware.lst | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pkglists/dlackware.lst b/pkglists/dlackware.lst index e56506e..8591361 100644 --- a/pkglists/dlackware.lst +++ b/pkglists/dlackware.lst @@ -73,6 +73,8 @@ farstream file-roller folks gdk-pixbuf2 +# ibus needs to be installed before gdm: +ibus gdm gedit gegl3 @@ -147,7 +149,6 @@ gupnp-av gupnp-dlna gupnp-igd hyphen -ibus libchamplain libcryptui libdmapsharing -- cgit v1.2.3 From d68ea8a85d0ef3f7aaaf9ce2bf7bc7da5480e449 Mon Sep 17 00:00:00 2001 From: Eric Hameleers Date: Sun, 1 Jan 2017 23:03:24 +0100 Subject: DLACK: create a default config for localectl. --- liveinit | 2 ++ make_slackware_live.sh | 1 + 2 files changed, 3 insertions(+) diff --git a/liveinit b/liveinit index 38a13b1..bb2e070 100755 --- a/liveinit +++ b/liveinit @@ -814,6 +814,7 @@ if [ -x /usr/bin/loadkeys ]; then fi EOT chmod 755 /mnt/overlay/etc/rc.d/rc.keymap + echo "KEYMAP=${KEYMAP}" > /mnt/overlay/etc/vconsole.conf fi if [ ! -z "$KEYMAP" -o ! -z "$XKB" ]; then # Set a keyboard mapping in X.Org, derived from the console map if needed: @@ -890,6 +891,7 @@ EOT # Configure custom locale: echo "${MARKER}: Switching to '$LOCALE' locale" sed -i -e "s/^ *export LANG=.*/export LANG=${LOCALE}/" /mnt/overlay/etc/profile.d/lang.sh + echo "LANG=${LOCALE}" > /mnt/overlay/etc/locale.conf fi if [ ! -z "$TZ" -a -f /mnt/overlay/usr/share/zoneinfo/${TZ} ]; then diff --git a/make_slackware_live.sh b/make_slackware_live.sh index 998cd4d..62e8cf5 100755 --- a/make_slackware_live.sh +++ b/make_slackware_live.sh @@ -1129,6 +1129,7 @@ if grep -q "^ *export LANG=" ${LIVE_ROOTDIR}/etc/profile.d/lang.sh ; then else echo "export LANG=en_US.UTF-8" >> ${LIVE_ROOTDIR}/etc/profile.d/lang.sh fi +echo "LANG=en_US.UTF-8" > ${LIVE_ROOTDIR}/etc/locale.conf # Set timezone to UTC: cp -a ${LIVE_ROOTDIR}/usr/share/zoneinfo/UTC ${LIVE_ROOTDIR}/etc/localtime -- cgit v1.2.3 From 87f770523e1397209b93c5ac6f311f4ddeecc33f Mon Sep 17 00:00:00 2001 From: Eric Hameleers Date: Sun, 1 Jan 2017 23:38:30 +0100 Subject: DLACK: Add console keymap default setting for localectl. In the hope that this makes gnome-terminal start finally. --- make_slackware_live.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/make_slackware_live.sh b/make_slackware_live.sh index 62e8cf5..b58b795 100755 --- a/make_slackware_live.sh +++ b/make_slackware_live.sh @@ -1129,7 +1129,9 @@ if grep -q "^ *export LANG=" ${LIVE_ROOTDIR}/etc/profile.d/lang.sh ; then else echo "export LANG=en_US.UTF-8" >> ${LIVE_ROOTDIR}/etc/profile.d/lang.sh fi +# Does not hurt to also add systemd compatible configuration: echo "LANG=en_US.UTF-8" > ${LIVE_ROOTDIR}/etc/locale.conf +echo "KEYMAP=us" > ${LIVE_ROOTDIR}/etc/vconsole.conf # Set timezone to UTC: cp -a ${LIVE_ROOTDIR}/usr/share/zoneinfo/UTC ${LIVE_ROOTDIR}/etc/localtime -- cgit v1.2.3 From c81ada6132a864362044641705efb4a8986bf26e Mon Sep 17 00:00:00 2001 From: Eric Hameleers Date: Mon, 2 Jan 2017 16:02:21 +0100 Subject: DLACK: improve first-boot experience. Disable two processes that consume time or are just annoying on first boot: - do not start gnome-initial-setup; - do not let systemd re-generate dynamic linker cache on boot. --- make_slackware_live.sh | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/make_slackware_live.sh b/make_slackware_live.sh index b58b795..7a073ee 100755 --- a/make_slackware_live.sh +++ b/make_slackware_live.sh @@ -1627,6 +1627,14 @@ if [ "$LIVEDE" = "DLACK" ]; then # Do not show the blueman applet, Gnome3 has its own BlueTooth widget: echo "NotShowIn=GNOME;" >> ${LIVE_ROOTDIR}/etc/xdg/autostart/blueman.desktop + # Do not start gnome-initial-setup: + mkdir -p ${LIVE_ROOTDIR}/home/${LIVEUID}/.config + touch ${LIVE_ROOTDIR}/home/${LIVEUID}/.config/gnome-initial-setup-done + + # Do not let systemd re-generate dynamic linker cache on boot: + echo "File created by ${MARKER}. See systemd-update-done.service(8)." \ + |tee ${LIVE_ROOTDIR}/etc/.updated >${LIVE_ROOTDIR}/var/.updated + fi # End LIVEDE = DLACK # You can define the function 'custom_config()' by uncommenting it in -- cgit v1.2.3