From 5d9e6b07bbb7de9fbb706cea05dbdaeff148dd45 Mon Sep 17 00:00:00 2001 From: Martin Whitaker Date: Sun, 4 Mar 2018 22:41:28 +0000 Subject: Rationalise and better document the configuration. --- config/build.cfg | 212 +++++++++++++++++++-------------------- files/blacklist-ide.conf | 2 + files/blacklist_ide.conf | 2 - files/dracut-live.conf | 16 +++ files/empty.conf | 0 files/live-dracut.conf | 16 --- files/live.51-mageia-resume.conf | 0 files/live.modprobe.conf | 0 8 files changed, 123 insertions(+), 125 deletions(-) create mode 100644 files/blacklist-ide.conf delete mode 100644 files/blacklist_ide.conf create mode 100644 files/dracut-live.conf create mode 100644 files/empty.conf delete mode 100644 files/live-dracut.conf delete mode 100644 files/live.51-mageia-resume.conf delete mode 100644 files/live.modprobe.conf diff --git a/config/build.cfg b/config/build.cfg index 8163948..a00ab83 100644 --- a/config/build.cfg +++ b/config/build.cfg @@ -15,7 +15,7 @@ my $has_plasma = member('Plasma', @desktops); my $has_xfce = member('Xfce', @desktops); my $use_modules = to_bool($build->{settings}{pack}); -my @user_config_dirs = ('/etc/skel', if_($default_user, '/home/' . $default_user)); +my @user_config_dirs = ('/etc/skel', '/home/' . $default_user); sub build_label { my ($build) = @_; @@ -58,6 +58,7 @@ my $_l = { qw(EDITORS TERMINALS TEXT_TOOLS SHELLS FILE_TOOLS), # system qw(SYSTEM MINIMAL_DOCS X ACCESSIBILITY THEMES), + # desktop if_($has_gnome, qw(GNOME)), if_($has_lxde, qw(LXDE)), if_($has_plasma, qw(PLASMA5)), @@ -67,72 +68,74 @@ my $_l = { compssListLevel => 5, include_packages => [ - if_($has_lxde, "mageia-lxde-config-Default"), + # Satisfy the basesystem bootloader requirement. + 'drakiso-null-bootloader', - # utils wanted - 'mc', 'btrfs-progs', 'hdparm', 'patch', - 'bind-utils', 'mdadm', 'dmraid', - 'vim-enhanced', # full ediitor - 'dnf', 'dnf-plugins-core', # some users want dnf - 'manatools', # just the ncurses version - 'simple-scan', # s-c-p wants this if it detects a combined printer/scanner - 'Xdialog', # provides nicer UI for lxcontrol + # Some extra admin tools. + 'bind-utils', 'btrfs-progs', 'dmraid', 'gparted', 'hdparm', + 'manatools', 'mc', 'mdadm', 'vim-enhanced', - # mageia specific - 'mageia-doc-mcc-en', # some nice docs + # Mageia docs. + 'mageia-doc-mcc-en', + + # Allow patching during customisation. + 'patch', + + # s-c-p wants this if it detects a combined printer/scanner. + 'simple-scan', + + # Provide a nicer UI for lxcontrol. + 'Xdialog', - # Gnome specific stuff if_($has_gnome, 'task-gnome', - 'gparted', # provides some options not currently supported in diskdrake - 'hexchat', # alternative IRC client - 'adwaita-gtk2-theme', + 'adwaita-gtk2-theme', # Temporary fix for mga#20868. + 'hexchat', # Alternative IRC client. + ), + + if_($has_lxde, + 'mageia-lxde-config-Default' ), - # Plasma specific stuff if_($has_plasma, 'task-plasma5', ), - # Xfce specific stuff if_($has_xfce, 'task-xfce4', - 'gparted', # provides some options not currently supported in diskdrake ), ], exclude_packages => [ - # i586 arch specific if_($arch eq 'i586', + # We want the desktop586 kernel for maximum hardware compatibility. '/^kernel-desktop-/', '/^vboxadditions-kernel-.*-desktop-/', ), - # no server kernels + # No server kernels. '/^kernel-server-/', '/^vboxadditions-kernel-.*-server-/', - # No bootloaders, but we need to keep one to satisfy basesystem requirements. - # We will zap it later. The grub2 bootloaders are needed for install, so we - # add them to the local repo, which means they are automatically excluded. - 'grub', + # No bootloaders. The GRUB2 bootloaders are needed for install, so we add + # them to the local repo, which means they are automatically excluded. + 'grub', 'lilo', + + # No distribution license. + 'flash-player-plugin', - # old stuff + # Unwanted stuff. 'efax', - # not wanted + # Not yet ready. 'manatools-gui', - #- no distribution license - 'flash-player-plugin', - - # Gnome specific stuff if_($has_gnome, 'gnome-builder', - 'inkscape', # ??? + 'inkscape', 'polkit-kde-agent-1', ), ], preferred_packages => [ + if_($has_gnome, 'gdm'), if_($has_plasma, 'sddm'), - 'gdm', ], local_repo_packages => [ # core @@ -143,6 +146,7 @@ my $_l = { 'grub2', 'grub2-efi', 'grub2-mageia-theme', 'os-prober', if_($arch eq 'i586', 'kernel-desktop586-devel-latest'), if_($arch eq 'x86_64', 'kernel-desktop-devel-latest'), + # nonfree 'dkms-broadcom-wl', 'dkms-nvidia304', 'x11-driver-video-nvidia304', @@ -151,89 +155,85 @@ my $_l = { ], post_install => join(";", - # systemd boots by default to multiuser.target (old init 3), so change to graphical (old init 5) + # systemd boots by default to multiuser.target (old init 3), so change to graphical (old init 5). "ln -sf /lib/systemd/system/graphical.target /etc/systemd/system/default.target", - # have inittab match systemd defaulting to init 5 + # Have inittab match systemd defaulting to init 5. "perl -pi -e 's/^id:3:initdefault:/id:5:initdefault:/' /etc/inittab", ), langs_always => [ 'en_US' ], -# additional_media => [ -# { -# name => '', -# path => '', -# packages => [ -# ], -# }, -# ), -# ], -# rpms => [ -# ], -# erase_rpms => [ -# ], disable_services => [ - # uncommon hardware + # Uncommon hardware. qw(bpalogin capi4linux cpqarrayd mdadm oki4daemon pcscd), - # unneeded software + # Unneeded software. qw(chronyd snmpd), if_($has_gnome, qw(ntpd)), - # slows down basic usage and install, reenabled after install + # Slows down basic usage and install, reenabled after install. qw(crond msec), ], disable_timers => [ ], files => [ - if_($has_gnome, - # add draklive-install icon to favourites in live mode and disable screen locking - # (override files are processed in alphabetical order - make sure this one comes last) - [ 'files/live.gschema.override', '/usr/share/glib-2.0/schemas/live.gschema.override', { mode => 0644, no_install => 1 } ], + # Clean configuration files. + [ 'files/empty.conf', '/etc/dracut.conf.d/51-mageia-resume.conf', { mode => 0644 } ], + [ 'files/empty.conf', '/etc/modprobe.conf', { mode => 0644 } ], - # disable Wayland when we know it won't work (workaround for mga#20079) - [ 'files/50gdm-disable-wayland.xsetup', '/etc/X11/xsetup.d/50gdm-disable-wayland.xsetup', { mode => 0755 } ], - ), - # provide a noxorgconf boot command option to try to fix issues with nouveau driver on some hardware + # Provide a noxorgconf boot command option to try to fix issues with nouveau driver on some hardware. [ 'files/10no-xorg-conf.xsetup', '/etc/X11/xsetup.d/10no-xorg-conf.xsetup', { mode => 0755 } ], - # blacklist pata_acpi - [ 'files/blacklist_ide.conf', '/etc/modprobe.d/blacklist_ide.conf', { mode => 0644 } ], + # Blacklist pata_acpi (mga#3395). + [ 'files/blacklist-ide.conf', '/etc/modprobe.d/blacklist-ide.conf', { mode => 0644 } ], - # clean live files - [ 'files/live.51-mageia-resume.conf', '/etc/dracut.conf.d/51-mageia-resume.conf', { mode => 0644 } ], - [ 'files/live.modprobe.conf', '/etc/modprobe.conf', { mode => 0644 } ], + # Live media specific initrd. + [ 'files/dracut-live.conf', '/etc/dracut.conf.d/60-live.conf', { mode => 0644, no_install => 1 } ], - # disable suspend and hibernate in live mode + # Disable first boot wizard at live boot. + [ 'files/firstboot', '/etc/sysconfig/firstboot', { mode => 0644 } ], + + # Enable drakx-finish-install at live boot. + [ "files/finish-install", '/etc/sysconfig/finish-install', { mode => 0644 } ], + + # Disable mgaonline in live mode. + (map { [ 'files/mgaonlinerc', $_ . '/.MgaOnline/mgaonline', { mode => 0644, no_install => 1 } ] } @user_config_dirs), + + # Disable suspend and hibernate in live mode. [ 'files/50-disable-suspend.pkla', '/etc/polkit-1/localauthority/50-local.d/50-disable-suspend.pkla', { mode => 0644, no_install => 1 } ], - #- eject eject medium before halt/reboot + # Eject medium before live system halt/reboot. [ 'files/halt-local.service', '/etc/systemd/system/halt-local.service', { mode => 0644, no_install => 1 } ], [ 'files/halt.local', '/sbin/halt.local', { mode => 0755, no_install => 1 } ], - # live media specific initrd - [ 'files/live-dracut.conf', '/etc/dracut.conf.d/60-live.conf', { mode => 0644, no_install => 1 } ], - - #- disable first boot wizard at live boot - [ 'files/firstboot', '/etc/sysconfig/firstboot', { mode => 0644 } ], + # sysconfig files for first boot after install. + [ 'files/draklive-install.d/finish-install', '/etc/draklive-install.d/sysconfig/finish-install', { mode => 0644 } ], + [ 'files/draklive-install.d/firstboot', '/etc/draklive-install.d/sysconfig/firstboot', { mode => 0644 } ], - #- enable drakx-finish-install at live boot - [ "files/finish-install", '/etc/sysconfig/finish-install', { mode => 0644 } ], + # Reenable services in installed system. + [ 'files/draklive-install.d/services', '/etc/draklive-install.d/services', { mode => 0644 } ], - # fix for sometimes wrong permissions + # Fix for sometimes wrong permissions after install. [ 'files/draklive-install.d/run.d/home-live-permissions.sh', '/etc/draklive-install.d/run.d/home-live-permissions.sh', { mode => 755 } ], + if_($has_gnome, + # Add draklive-install icon to favourites in live mode and disable screen locking + # (override files are processed in alphabetical order - make sure this one comes last). + [ 'files/live.gschema.override', '/usr/share/glib-2.0/schemas/live.gschema.override', { mode => 0644, no_install => 1 } ], + + # Disable Wayland when we know it won't work (workaround for mga#20079). + [ 'files/50gdm-disable-wayland.xsetup', '/etc/X11/xsetup.d/50gdm-disable-wayland.xsetup', { mode => 0755 } ], + ), + if_($has_plasma, [ 'files/draklive-install.d/run.d/generate-gtk-icon-cache.sh', '/etc/draklive-install.d/run.d/generate-gtk-icon-cache.sh', { mode => 755 } ], + + # Remove live user from SDDM greeter. [ 'files/draklive-install.d/remove.d/clear-sddm-state', '/etc/draklive-install.d/remove.d/clear-sddm-state', { mode => 0644 } ], - ), - #- sysconfig files for first boot - [ 'files/draklive-install.d/finish-install', '/etc/draklive-install.d/sysconfig/finish-install', { mode => 0644 } ], - [ 'files/draklive-install.d/firstboot', '/etc/draklive-install.d/sysconfig/firstboot', { mode => 0644 } ], - [ 'files/draklive-install.d/services', '/etc/draklive-install.d/services', { mode => 0644 } ], + # Disable Korganiser autostart. + [ 'files/korgacrc', '/etc/kde/korgacrc', { mode => 0644 } ], + ), - [ 'files/korgacrc', '/etc/kde/korgacrc', { mode => 0644 } ], - (map { [ 'files/mgaonlinerc', $_ . '/.MgaOnline/mgaonline', { mode => 0644, no_install => 1 } ] } @user_config_dirs), ], remove_files => [ (map { "/etc/modprobe.preload.d/$_" } qw(cpufreq pcmcia rfswitch)), @@ -244,30 +244,15 @@ my $_l = { patches => [ ], final_fixes => join(';', - if_($default_user, - "echo $default_user > /etc/draklive-install.d/user", - "perl -pi -e 's,,$default_user,' /etc/draklive-install.d/sysconfig/finish-install", - ), - if_($has_xfce && $default_user, - # add a desktop icon to run draklive-install - "mkdir -p /home/$default_user/Desktop", - "cp /usr/share/applications/mageia-draklive-install.desktop /home/$default_user/Desktop/draklive-install.desktop", - ), - - #- fix user perms for copied files - if_($default_user, - "chown -R $default_user.$default_user /home/$default_user" - ), - if_($has_gnome, - # modify and compile schema to get draklive-install and Firefox in menu + # Modify and compile schema to get draklive-install and Firefox in menu. "sed -i 's/epiphany.desktop/firefox.desktop/' /usr/share/glib-2.0/schemas/glib2-branding.gschema.override", "glib-compile-schemas /usr/share/glib-2.0/schemas/", - # fix permissions to enable GDM to rerun if the user logs out + # Fix permissions to enable GDM to rerun if the user logs out. "chown -R gdm:gdm /var/lib/gdm", - # switch to NetworkManager + # Switch to NetworkManager. "systemctl -q disable network", "systemctl -q disable network-up", "systemctl -q enable NetworkManager.service", @@ -275,6 +260,7 @@ my $_l = { "sed -i 's/NETWORK=yes/NETWORK=no/' /etc/draklive-install.d/sysconfig/finish-install", "echo 'AUTOSTART=FALSE' > /home/live/.net_applet", ), + if_($has_plasma, "rm -f /usr/share/icons/*/icon-theme.cache", "cp -a /etc/akonadi/mysql-global.conf /etc/akonadi/mysql-global-standard.conf", @@ -282,22 +268,35 @@ my $_l = { "ak=/etc/draklive-install.d/run.d/restore-akonadi-config.sh; echo -e '#!/bin/sh\ncp /etc/akonadi/mysql-global-standard.conf /etc/akonadi/mysql-global.conf' > \$ak; chmod +x \$ak", ), - # disable HPLIP systray startup - "echo 'Hidden=true' >> /etc/xdg/autostart/hplip-systray.desktop", + if_($has_xfce, + # Add a desktop icon to run draklive-install. + "mkdir -p /home/$default_user/Desktop", + "cp /usr/share/applications/mageia-draklive-install.desktop /home/$default_user/Desktop/draklive-install.desktop", + ), + + # Fix permissions for copied files. + "chown -R $default_user.$default_user /home/$default_user", - # allow draklive-install to spawn subtasks that access the display + # Set default user name for draklive-install. + "echo $default_user > /etc/draklive-install.d/user", + "perl -pi -e 's,,$default_user,' /etc/draklive-install.d/sysconfig/finish-install", + + # Allow draklive-install to spawn subtasks that access the display. "echo 'session optional pam_xauth.so # for draklive-install' >> /etc/pam.d/polkit-1", - # set the timestamp on the font directories to be a whole second + # Disable HPLIP systray startup. + "echo 'Hidden=true' >> /etc/xdg/autostart/hplip-systray.desktop", + + # Set the timestamp on the font directories to be a whole second # fc-cache looks at the nano second portion which may be non-zero # as we are on ext4, but then it will compare against the stamps # on the squashfs live image which have whole second resolution - # (adapted from fix descrived in OpenMandriva bug 1764) + # (adapted from fix descrived in OpenMandriva bug 1764). "find /usr/share/fonts -type d -exec touch -t \$(date +%Y%m%d%H%M.%S) '{}' ';'", - # now update the cache for the new timestamps + # Now update the cache for the new timestamps. "fc-cache -rf", - # set the initial wireless regulatory domain to "world", enabling + # Set the initial wireless regulatory domain to "world", enabling # all possible wireless channels to be used. "sed -i -r 's/CRDA_DOMAIN=.*/CRDA_DOMAIN=00/' /etc/sysconfig/network", ), @@ -316,7 +315,6 @@ my $_l = { ]), }, regions => { - #- the "all" region has a magical behavior and selects all langs int => [qw(en)], }, packs => { diff --git a/files/blacklist-ide.conf b/files/blacklist-ide.conf new file mode 100644 index 0000000..146e357 --- /dev/null +++ b/files/blacklist-ide.conf @@ -0,0 +1,2 @@ +# temp fix for 3395 +blacklist pata_acpi diff --git a/files/blacklist_ide.conf b/files/blacklist_ide.conf deleted file mode 100644 index 146e357..0000000 --- a/files/blacklist_ide.conf +++ /dev/null @@ -1,2 +0,0 @@ -# temp fix for 3395 -blacklist pata_acpi diff --git a/files/dracut-live.conf b/files/dracut-live.conf new file mode 100644 index 0000000..42b3e24 --- /dev/null +++ b/files/dracut-live.conf @@ -0,0 +1,16 @@ +# it is a live, build initrd to boot any hardware +hostonly="no" +# load mga livecd support +add_dracutmodules+=" mgalive " +# block some dracut modules we dont want / use +omit_dracutmodules+=" caps crypt dm dmraid mdraid lvm nfs i18n resume modsign " +# compress initrd with xz +compress_l="xz" +# whitelist only the filesystems needed by live CDs and live USB +filesystems="iso9660 vfat =fs/nls squashfs overlay" +# ensure drm drivers are available early in the boot sequence +add_drivers+=" amdgpu radeon nouveau i915 vboxvideo " +# fibre channel & iSCSI modules are unneeded on live CD/USB and pull 1MB+ of firmware files +omit_drivers+=" qla1280 qla2xxx qla4xxx " +# pata_acpi is not wanted on boot +omit_drivers+=" pata_acpi " diff --git a/files/empty.conf b/files/empty.conf new file mode 100644 index 0000000..e69de29 diff --git a/files/live-dracut.conf b/files/live-dracut.conf deleted file mode 100644 index 42b3e24..0000000 --- a/files/live-dracut.conf +++ /dev/null @@ -1,16 +0,0 @@ -# it is a live, build initrd to boot any hardware -hostonly="no" -# load mga livecd support -add_dracutmodules+=" mgalive " -# block some dracut modules we dont want / use -omit_dracutmodules+=" caps crypt dm dmraid mdraid lvm nfs i18n resume modsign " -# compress initrd with xz -compress_l="xz" -# whitelist only the filesystems needed by live CDs and live USB -filesystems="iso9660 vfat =fs/nls squashfs overlay" -# ensure drm drivers are available early in the boot sequence -add_drivers+=" amdgpu radeon nouveau i915 vboxvideo " -# fibre channel & iSCSI modules are unneeded on live CD/USB and pull 1MB+ of firmware files -omit_drivers+=" qla1280 qla2xxx qla4xxx " -# pata_acpi is not wanted on boot -omit_drivers+=" pata_acpi " diff --git a/files/live.51-mageia-resume.conf b/files/live.51-mageia-resume.conf deleted file mode 100644 index e69de29..0000000 diff --git a/files/live.modprobe.conf b/files/live.modprobe.conf deleted file mode 100644 index e69de29..0000000 -- cgit v1.2.1