#!/usr/bin/perl -cw # # You should check the syntax of this file before using it in an auto-install. # You can do this with 'perl -cw auto_inst.cfg.pl' or by executing this file # (note the '#!/usr/bin/perl -cw' on the first line). my $distro_theme = 'Default'; my $distro_release = 'Default'; my $distro_config = lc($distro_release); my @desktops = split(/\|/, $ENV{DRAKLIVE_DESKTOP}); my $has_plasma = member('Plasma', @desktops); my $has_gnome = member('GNOME', @desktops); my $has_xfce = member('Xfce', @desktops); my $has_lxde = member('LXDE', @desktops); my $has_enlightenment = member('Enlightenment', @desktops); $o = { 'media' => [ { type => 'media_cfg', url => 'drakx://media', selected_names => join(',', 'Core Release', 'Core Updates', 'Nonfree Release', 'Nonfree Updates', ), }, if_($ENV{DRAKLIVE_ADDITIONAL_REPOSITORY}, { type => 'media', url => $ENV{DRAKLIVE_ADDITIONAL_REPOSITORY} }, ), ], # temporary (?) fix for mga#12299 'enabled_media' => [ 'Core Release', 'Core Updates', 'Nonfree Release', 'Nonfree Updates', ], 'rpmsrate_flags_chosen' => { LIVE => 1, (map { ("CAT_$_" => 1) } ( # 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_plasma, qw(PLASMA5)), if_($has_gnome, qw(GNOME)), if_($has_xfce, qw(XFCE)), if_($has_lxde, qw(LXDE)), if_($has_enlightenment, qw(E17)), )), }, # so that rpmsrate flags are really used 'compssListLevel' => 5, # default from install_steps_interactive 'skipped_packages' => [ # i586 arch specific if_($ENV{DRAKLIVE_ARCH} eq 'i586', '/^kernel-desktop-/', '/^vboxadditions-kernel-.*-desktop-/', '/^libatlas3-/', ), # x86_64 arch specific if_($ENV{DRAKLIVE_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) #'mate-polkit', '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', ), # Plasma specific stuff if_($has_plasma, ), ], 'default_packages' => [ if_($has_lxde, "mageia-lxde-config-$distro_release"), # i586 arch specific if_($ENV{DRAKLIVE_ARCH} eq 'i586', 'vboxadditions-kernel-desktop586-latest', ), # x86_64 arch specific if_($ENV{DRAKLIVE_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', '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 # 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', ), # 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 ), ], 'preferred_packages' => join(',', $has_plasma ? 'sddm' : 'gdm'), 'meta_class' => 'desktop', 'desktop' => first(@desktops), if_($ENV{DRAKLIVE_DEFAULT_USER}, 'autologin' => $ENV{DRAKLIVE_DEFAULT_USER}), # explicitely specify the security level, so that environment of the build machine doesn't take precedence 'security' => 1, 'useSupermount' => 'magicdev', 'users' => [ if_($ENV{DRAKLIVE_DEFAULT_USER}, { 'icon' => 'default', 'realname' => '', 'uid' => '', 'groups' => [], 'name' => $ENV{DRAKLIVE_DEFAULT_USER}, 'shell' => '/bin/bash', 'gid' => '' }), ], 'locale' => { 'country' => 'US', 'IM' => undef, 'lang' => 'en_US', 'langs' => +{ $ENV{DRAKLIVE_REGION} eq 'all' ? (all => 1) : (map { $_ => 1 } split(':', $ENV{DRAKLIVE_LANGS})) }, 'utf8' => 1 }, 'authentication' => { 'shadow' => 1, 'local' => 1, 'blowfish' => 1 }, 'superuser' => { 'pw' => '', 'realname' => 'root', 'uid' => '0', 'shell' => '/bin/bash', 'home' => '/root', 'gid' => '0' }, 'keyboard' => { 'GRP_TOGGLE' => '', 'KBCHARSET' => 'C', 'KEYBOARD' => 'us', 'KEYTABLE' => 'us' }, 'timezone' => { 'ntp' => undef, 'timezone' => 'America/New_York', 'UTC' => 1 }, 'X' => { disabled => 1 }, #- disable auto-configuration that may install unwanted packages 'match_all_hardware' => 1, 'excludedocs' => 0, 'postInstallNonRooted' => join(";", # drakx-in-chroot roots the mount point one level higher when # the build system arch matches DRAKLIVE_ARCH. "if [ -d /tmp/media/$ENV{DRAKLIVE_ARCH} ]", "then cp /tmp/media/$ENV{DRAKLIVE_ARCH}/release-notes.* /mnt", "else cp /tmp/media/release-notes.* /mnt", "fi", "chmod 0644 /mnt/release-notes.*", ), 'postInstall' => 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"), ), 'autoExitInstall' => 1, 'keep_unrequested_dependencies' => 0, }; my $old = \&install::pkgs::empty_packages; undef *install::pkgs::empty_packages; *install::pkgs::empty_packages = sub { my $packages = &$old; $packages->{debug_URPM} = sub { log::l("XXX: $_[0]") }; $packages; };