summaryrefslogtreecommitdiffstats
path: root/config/build.cfg
diff options
context:
space:
mode:
Diffstat (limited to 'config/build.cfg')
-rw-r--r--config/build.cfg314
1 files changed, 243 insertions, 71 deletions
diff --git a/config/build.cfg b/config/build.cfg
index f5ddd06..a6d5ca4 100644
--- a/config/build.cfg
+++ b/config/build.cfg
@@ -2,32 +2,236 @@
use MDK::Common;
-my $use_modules = to_bool($build->{settings}{pack});
-my @user_config_dirs = ('/etc/skel', if_($build->{settings}{default_user}, '/home/' . $build->{settings}{default_user}));
+my $distro = $build->{settings}{distro};
+my $version = $build->{settings}{version};
+my $product = $build->{settings}{product};
+my $arch = $build->{settings}{arch};
+my $default_user = $build->{settings}{default_user};
+
+my @desktops = split(/\|/, $build->{settings}{desktop});
+my $has_gnome = member('GNOME', @desktops);
+my $has_lxde = member('LXDE', @desktops);
+my $has_plasma = member('Plasma', @desktops);
+my $has_xfce = member('Xfce', @desktops);
+
+my $distro_theme = 'Default';
+my $distro_release = 'Default';
+my $distro_config = lc($distro_release);
+
+my $use_modules = to_bool($build->{settings}{pack});
+my @user_config_dirs = ('/etc/skel', if_($default_user, '/home/' . $default_user));
sub build_label {
my ($build) = @_;
- join('-', 'Mageia', $build->{settings}{version}, $build->{settings}{product}, $build->{settings}{desktop}, $build->{settings}{arch});
+ join('-', $distro, $version, $product, $desktops[0], $arch);
}
sub build_title {
my ($build) = @_;
- join(' ', 'Mageia', $build->{settings}{version}, $build->{settings}{product}, $build->{settings}{desktop});
+ join(' ', $distro, $version, $product, $desktops[0]);
}
my $default_append = 'root=mgalive:LABEL=' . build_label($build) . ' splash quiet noiswmd audit=0 rd.luks=0 rd.lvm=0 rd.md=0 rd.dm=0';
my $_l = {
system => {
- auto_install => 'config/auto_inst.cfg.pl',
- install_env => {
- },
- if_($build->{settings}{default_user}, preselect_kdm_user => $build->{settings}{default_user}),
+ enabled_media => [
+ 'Core Release',
+ 'Core Updates',
+ 'Nonfree Release',
+ 'Nonfree Updates',
+ ],
+
+ rpmsrate_flags => [
+ 'LIVE',
+ (map { "CAT_$_" } (
+ # office
+ qw(OFFICE SPELLCHECK PIM ARCHIVING PRINTER),
+ # multimedia
+ qw(AUDIO VIDEO GRAPHICS),
+ # internet
+ qw(NETWORKING_WWW NETWORKING_MAIL NETWORKING_NEWS COMMUNICATIONS NETWORKING_CHAT),
+ qw(NETWORKING_FILE_TRANSFER NETWORKING_IRC NETWORKING_INSTANT_MESSAGING NETWORKING_DNS),
+ # network
+ qw(NETWORKING_REMOTE_ACCESS NETWORKING_FILE),
+ qw(NETWORKING_REMOTE_ACCESS_SERVER),
+ # config
+ qw(CONFIG),
+ # console
+ qw(EDITORS TERMINALS TEXT_TOOLS SHELLS FILE_TOOLS),
+ # system
+ qw(SYSTEM MINIMAL_DOCS X ACCESSIBILITY THEMES),
+ if_($has_gnome, qw(GNOME)),
+ if_($has_lxde, qw(LXDE)),
+ if_($has_plasma, qw(PLASMA5)),
+ if_($has_xfce, qw(XFCE)),
+ ))
+ ],
+ compssListLevel => 5,
+
+ include_packages => [
+ if_($has_lxde, "mageia-lxde-config-$distro_release"),
+
+ # i586 arch specific
+ if_($arch eq 'i586',
+ 'vboxadditions-kernel-desktop586-latest',
+ ),
+
+ # x86_64 arch specific
+ if_($arch eq 'x86_64',
+ 'vboxadditions-kernel-desktop-latest',
+ ),
+
+ # try to protect base packages from rpmlib/urpmi cascade bug
+ 'basesystem', 'x11-server-common','x11-driver-video', 'x11-driver-input',
+ 'x11-driver-video-vboxvideo',
+
+ # utils wanted
+ 'mc', 'btrfs-progs', 'shorewall-ipv6', 'hdparm', 'parted', 'glxinfo', 'patch',
+ 'bind-utils', 'mdadm', 'dmraid', 'usbutils', # we want lsusb
+ 'shared-mime-info', # needed for .desktop files to work atleast in gnome
+ '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
+
+ 'bluez-firmware', # missed firmware
+
+ # mageia specific
+ 'mageiawelcome', # nice helper app
+ 'mageia-doc-mcc-en', # some nice docs
+ 'grub2-mageia-theme',
+
+ # Gnome specific stuff
+ if_($has_gnome,
+ 'task-gnome', 'gdm', # sometimes gets nuked during build
+ 'gnome-shell', 'caribou', 'caribou-gtk3', 'brasero', 'gparted', 'gnome-classic-session', 'hexchat',
+ 'adwaita-gtk2-theme',
+ ),
+
+ # Plasma specific stuff
+ if_($has_plasma,
+ 'task-plasma5', 'sddm', # sometimes gets nuked during build
+ ),
+
+ # 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',
+ '/^kernel-desktop-/', '/^vboxadditions-kernel-.*-desktop-/',
+ '/^libatlas3-/',
+ ),
+
+ # x86_64 arch specific
+ if_($arch eq 'x86_64',
+ '/^lib64atlas3-/',
+ ),
+
+ # no server kernels
+ '/^kernel-server-/', '/^vboxadditions-kernel-.*-server-/',
+
+ # no legacy bootloaders, we default to grub2
+ 'grub', 'lilo',
+
+ # no efi stuff - only needed for install, and shipped in live core repo
+ 'grub2-efi', 'efibootmgr', 'efivar',
+
+ # no devel packages on live media
+ 'glibc-devel', 'gdb', 'gcc', 'gcc3.3', 'dkms',
+ 'empathy', 'gnome-builder', # pulls devel stuff
+
+ # shipped in live nonfree repo
+ 'dkms-broadcom-wl', 'broadcom-wl-common',
+ 'broadcom-bcma-config', 'broadcom-ssb-config',
+ '/^x11-driver-video-fglrx/',
+ '/^x11-driver-video-nvidia/',
+
+ # huge deps
+ 'denemo', # pulls in lilypond and texlive
+ 'virtuoso-opensource', # not needed on live media
+ 'mono', # bloat
+
+ # old stuff
+ 'aspell', 'aspell-en',
+ 'asihpi-firmware', 'hdsploader', 'mixartloader', 'pcxhrloader', 'usx2yloader', 'vxloader',
+ 'drakfax', 'efax', 'rxvt',
+ 'nspluginwrapper','nspluginwrapper-i386', # not needed anymore (mga #2001)
+
+ # broken stuff
+ 'audacity', 'xguest', 'apper',
+
+ # not wanted
+ 'al-anvar', # (mga #9752)
+ 'openssh-server',
+ 'manatools-gui',
+
+ #- no distribution license
+ 'flash-player-plugin',
+
+ # Gnome specific stuff
+ if_($has_gnome,
+ 'beagle', 'inkscape',
+ 'bluedevil', #- bluez-pin provide
+ 'pinentry-qt4', #- qt4 app
+ '/noatun/', #- prefer amarok
+ 'polkit-kde-agent-1',
+ ),
+ ],
+ preferred_packages => [
+ if_($has_plasma, 'sddm'),
+ 'gdm',
+ ],
+
+ post_install_nr => join(";",
+ "cp /tmp/media/$arch/release-notes.* /mnt",
+ "chmod 0644 /mnt/release-notes.*",
+ ),
+ post_install => join(";",
+ # 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
+ "perl -pi -e 's/^id:3:initdefault:/id:5:initdefault:/' /etc/inittab",
+
+ #- FIXME: in any::set_autologin, unlink if gdm/sddm conf file and binary exist
+ if_($has_xfce || $has_lxde, "rm -f /etc/sysconfig/autologin"),
+ ),
+
langs_always => [ 'en_US' ],
+
+# additional_media => [
+# {
+# name => '',
+# path => '',
+# packages => [
+# ],
+# },
+# ),
+# ],
+# rpms => [
+# ],
+# erase_rpms => [
+# ],
+ disable_services => [
+ # uncommon hardware
+ qw(bpalogin capi4linux cpqarrayd mdadm oki4daemon pcscd),
+ # unneeded software
+ qw(chronyd ntpd snmpd),
+ # slows down basic usage and install, reenabled after install
+ qw(crond msec),
+ ],
+ disable_timers => [
+ ],
files => [
- if_($build->{settings}{desktop} eq 'GNOME',
+ 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 } ],
@@ -46,10 +250,10 @@ my $_l = {
[ 'files/live.modprobe.conf', '/etc/modprobe.conf', { mode => 0644 } ],
# add local repos
- if_($build->{settings}{arch} eq 'i586',
+ if_($arch eq 'i586',
[ 'files/mga_rpms/i586/mga_rpms', '/var/local' ],
),
- if_($build->{settings}{arch} eq 'x86_64',
+ if_($arch eq 'x86_64',
[ 'files/mga_rpms/x86_64/mga_rpms', '/var/local' ],
),
@@ -82,11 +286,11 @@ my $_l = {
[ 'files/draklive-install.d/run.d/home-live-permissions.sh', '/etc/draklive-install.d/run.d/home-live-permissions.sh', { mode => 755 } ],
# fix for /var/lib/gdm sometimes ending up as root:root
- if_($build->{settings}{desktop} eq 'GNOME',
+ if_($has_gnome,
[ 'files/draklive-install.d/run.d/gdm-permissions.sh', '/etc/draklive-install.d/run.d/gdm-permissions.sh', { mode => 755 } ]
),
- if_($build->{settings}{desktop} eq 'Plasma',
+ 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 } ],
[ 'files/draklive-install.d/remove.d/clear-sddm-state', '/etc/draklive-install.d/remove.d/clear-sddm-state', { mode => 0644 } ],
),
@@ -111,46 +315,22 @@ my $_l = {
"/var/lib/dbus/machine-id",
"/etc/ssh/ssh_host_*",
],
- module_options => {
- loop => "max_loop=64",
- },
- exclude_modules => [
- ],
- additional_modules => [
- ],
- stage2_updates => [
- ],
patches => [
],
- erase_rpms => [
- ],
- rpms => [
- ],
- disable_services => [
- # uncommon hardware
- qw(bpalogin capi4linux cpqarrayd mdadm oki4daemon pcscd),
- # unneeded software
- qw(chronyd ntpd snmpd),
- # slows down basic usage and install, reenabled after install
- qw(crond msec),
- ],
- disable_timers => [
- ],
- vga_mode => 788,
final_fixes => join(';',
- if_($build->{settings}{default_user}, "echo $build->{settings}{default_user} > /etc/draklive-install.d/user"),
- "perl -pi -e 's,<DEFAULT_USER>,$build->{settings}{default_user},' /etc/draklive-install.d/sysconfig/finish-install",
-
- if_($build->{settings}{desktop} eq 'Xfce' && $build->{settings}{default_user},
+ if_($default_user,
+ "echo $default_user > /etc/draklive-install.d/user",
+ "perl -pi -e 's,<DEFAULT_USER>,$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/$build->{settings}{default_user}/Desktop",
- "cp /usr/share/applications/mageia-draklive-install.desktop /home/$build->{settings}{default_user}/Desktop/draklive-install.desktop",
+ "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_($build->{settings}{default_user}, "chown -R " .
- "$build->{settings}{default_user}.$build->{settings}{default_user}" .
- " /home/$build->{settings}{default_user}"
+ if_($default_user,
+ "chown -R $default_user.$default_user /home/$default_user"
),
# remove readahead
@@ -160,13 +340,7 @@ my $_l = {
#- which can be huge
'> /var/log/lastlog',
- if_($build->{settings}{desktop} eq 'Plasma',
- "rm -f /usr/share/icons/*/icon-theme.cache",
- "cp -a /etc/akonadi/mysql-global.conf /etc/akonadi/mysql-global-standard.conf",
- "cp /etc/akonadi/mysql-global-mobile.conf /etc/akonadi/mysql-global.conf",
- "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",
- ),
- if_($build->{settings}{desktop} eq 'GNOME',
+ if_($has_gnome,
# 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/",
@@ -175,17 +349,23 @@ my $_l = {
"chown -R gdm:gdm /var/lib/gdm",
# switch to NetworkManager
- "systemctl disable network",
- "systemctl disable network-up",
- "systemctl enable NetworkManager.service",
- "systemctl enable NetworkManager-wait-online.service",
+ "systemctl -q disable network",
+ "systemctl -q disable network-up",
+ "systemctl -q enable NetworkManager.service",
+ "systemctl -q enable NetworkManager-wait-online.service",
"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",
+ "cp /etc/akonadi/mysql-global-mobile.conf /etc/akonadi/mysql-global.conf",
+ "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",
+ ),
# add local medias
- "urpmi.addmedia 'Live Core' /var/local/mga_rpms/core with media_info/hdlist.cz",
- "urpmi.addmedia 'Live Nonfree' /var/local/mga_rpms/nonfree with media_info/hdlist.cz",
+ "urpmi.addmedia -q 'Live Core' /var/local/mga_rpms/core with media_info/hdlist.cz",
+ "urpmi.addmedia -q 'Live Nonfree' /var/local/mga_rpms/nonfree with media_info/hdlist.cz",
# disable HPLIP systray startup
"echo 'Hidden=true' >> /etc/xdg/autostart/hplip-systray.desktop",
@@ -212,16 +392,8 @@ my $_l = {
# try to avoid plymouth falling back to text mode (mga#19984)
"sed -i -r 's/DeviceTimeout=[0-9]+/DeviceTimeout=10/' /usr/share/plymouth/plymouthd.defaults",
),
- additional_media => [
- if_($build->{settings}{updates_repository},
- {
- name => 'core_updates_testing',
- path => $build->{settings}{updates_repository} . '/' . $build->{settings}{arch} . '/media/core/updates_testing',
- packages => [
- ],
- },
- ),
- ],
+
+ vga_mode => 788,
},
loopbacks => {
exclude => {
@@ -263,8 +435,8 @@ my $_l = {
bootloader_entries => [
'Boot Mageia Live' => { append => $default_append . ' xdriver=free' },
' + use non-free video drivers (slower to boot)' => { append => $default_append . ' nokmsboot' },
- 'Install Mageia Live' => { append => $default_append . ' xdriver=free' },
- ' + use non-free video drivers (slower to boot)' => { append => $default_append . ' nokmsboot' },
+ 'Install Mageia Live' => { append => $default_append . ' xdriver=free install' },
+ ' + use non-free video drivers (slower to boot)' => { append => $default_append . ' nokmsboot install' },
'Memory Test' => { command => 'linux16', image => '/boot/memtest', initrd => '' },
],
mbr_boot_img => 'bootloader/images/boot_hybrid.img',