#!/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 $mandriva_theme = $ENV{DRAKLIVE_PRODUCT} =~ /flash/i ? 'Flash' : 'One'; my $mandriva_config = $ENV{DRAKLIVE_PRODUCT} =~ /flash/i ? 'powerpack' : 'one'; my @desktops = split(/\|/, $ENV{DRAKLIVE_DESKTOP}); my $has_kde = any { /^KDE/ } @desktops; $o = { 'media' => [ { type => 'media_cfg', url => 'drakx://media', selected_names => join(',', 'Main', 'Main Updates', 'Contrib', 'Contrib Updates', 'Non-free', 'Non-free Updates', 'Restricted', if_(member('xfce4', @desktops), 'Main Backports', 'Contrib Backports'), ), }, if_($ENV{DRAKLIVE_ARCH} eq 'x86_64' && $ENV{DRAKLIVE_ADDITIONAL_REPOSITORY}, { type => 'media', url => $ENV{DRAKLIVE_ADDITIONAL_REPOSITORY} . '/i586/media/main/release' }, { type => 'media', url => $ENV{DRAKLIVE_ADDITIONAL_REPOSITORY} . '/i586/media/main/updates' }, ), ], 'rpmsrate_flags_chosen' => { LIVE => 1, (map { ("CAT_$_" => 1) } ( # office if_(!member('KDE4', @desktops), 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), # config qw(CONFIG), # console qw(EDITORS TERMINALS TEXT_TOOLS SHELLS FILE_TOOLS), # system qw(SYSTEM MINIMAL_DOCS X ACCESSIBILITY THEMES), if_(member('KDE', @desktops), qw(KDE)), if_(member('GNOME', @desktops), qw(GNOME)), if_(member('XFCE', @desktops), qw(XFCE)), if_($ENV{DRAKLIVE_PRODUCT} =~ /gaming/i, qw(GAMES)), )), }, # so that rpmsrate flags are really used 'compssListLevel' => 5, # default from install_steps_interactive 'skipped_packages' => [ #- do not allow source dkms to be installed 'dkms', 'gcc', "/^mandriva-theme(?!-common|-$mandriva_theme(?:|-screensaver)-)/", "/^mandriva-release(?!-common|-$mandriva_theme)-/", if_($ENV{DRAKLIVE_ARCH} ne 'x86_64', #- TYPE"64bit" packages are selected by default for live #- skip x86_64 ones if not relevant 'nspluginwrapper', ), if_($ENV{DRAKLIVE_ARCH} eq 'x86_64', #- !TYPE"64bit" packages are selected by default for live #- skip i586 ones if not relevant 'libqca1-tls', ), if_($ENV{DRAKLIVE_PRODUCT} !~ /gaming/i, #- non-DVD products #- from task-kde Suggests #- skipping them prevents task-kde from being installed, #- but its dependencies seems to be pulled correctly 'kdeaddons', 'kdenlive', 'kdepim-kpilot', 'kerry', 'kde-i18n-en_GB', if_($ENV{DRAKLIVE_LANGS} !~ /\bpt\b/ && $ENV{DRAKLIVE_REGION} ne 'all', #- do not install pt translations if only pt_BR is explicitely selected 'kde-i18n-pt', 'mozilla-firefox-pt', ), if_($ENV{DRAKLIVE_PRODUCT} ne 'Flash', 'task-printing-scanning'), 'qtradio', 'kradio', if_($has_kde, 'gnome-media'), 'poppler-data', 'fglrx-control-center', 'fglrx-hd2000-control-center', ), if_($ENV{DRAKLIVE_PRODUCT} !~ /gaming/i, #- from task-kde Suggests 'kdegames', 'kdetoys', ), if_(!$ENV{DRAKLIVE_COMMERCIAL}, 'skype', ), if_(!$has_kde, 'kdebluetooth'), #- provides bluez-pin 'inkscape', '/gimp-help/', 'kdebase-kate', 'kdeaddons-kate', #- development tool '/noatun/', #- prefer amarok ], 'default_packages' => [ if_($has_kde, "$mandriva_config-kde-config"), #- live resize/install/copy tools $ENV{DRAKLIVE_MEDIA} eq 'usb' ? 'draklive-resize' : 'draklive-install', 'chrpath', if_($ENV{DRAKLIVE_PRODUCT} =~ /gaming/i, 'task-games'), if_(member('KDE4', @desktops), 'kdebase4', 'kdebase-kdm', #- use kdm3 'kdebase-common', #- should be required by kdm3 'binutils', #- for strip 'xset', 'xprop', #- used by startkde, should be required by kdebase4-workspace ), if_(member('xfce4', @desktops), 'task-xfce', 'task-xfce-plugins', 'gdm', 'openoffice.org', 'openoffice.org-gnome', (map { "openoffice.org-l10n-$_" } split(':', $ENV{DRAKLIVE_LANGS})), # 'bzflag', 'frozen-bubble', 'geany', 'wormux', 'gimp', ), #- should be in rpmsrate 'compiz-decorator-gtk', 'ntfs-3g', 'nfs-utils-clients', if_($ENV{DRAKLIVE_REGION} =~ 'asia', 'scim-bridge', 'scim-bridge-qt3'), if_($ENV{DRAKLIVE_REGION} eq 'asia-bluedj', 'scim-bridge-qt4', 'bluedj'), if_($ENV{DRAKLIVE_PRODUCT} =~ /flash/i, 'samba-client', 'RealPlayer', 'RealPlayer-rpnp', 'FlashPlayer', 'java-1.6.0-sun', ), if_($ENV{DRAKLIVE_PRODUCT} eq 'Flash', 'klamav', 'nut-server', 'mozilla-thunderbird', if_($ENV{DRAKLIVE_REGION} eq 'all', map { "mozilla-thunderbird-$_" } qw(ca cs de el es es_AR eu fi fr gu_IN he hu it ja ko nb nl pa_IN pl pt_BR ru sk sl sv tr zh_CN)), ), ], 'meta_class' => 'desktop', 'desktop' => first(@desktops), if_($ENV{DRAKLIVE_MEDIA} ne 'usb', 'autologin' => $ENV{DRAKLIVE_DEFAULT_USER}), # explicitely specify the security level, so that environment of the build machine doesn't take precedence 'security' => 3, 'useSupermount' => 'magicdev', 'users' => [ if_($ENV{DRAKLIVE_MEDIA} ne 'usb', { '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, 'md5' => 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, 'postInstall' => join(";", #- remove useless ISDN network configuration file, #- it should be present if configured only "rm -f /etc/sysconfig/network-scripts/ifcfg-ippp0", "perl -pi -e 's/^id:3:initdefault:/id:5:initdefault:/' '/etc/inittab'", if_(member('xfce4', @desktops), "rm -f /etc/sysconfig/autologin"), if_(member('KDE4', @desktops), "rm -f /etc/fonts/conf.d/02-mdk-disable-antialias.conf", 'find /opt/kde4/lib/ -type f -exec strip {} \;', #- prevent kde4 lnusertemp failures "mkdir -p /home/$ENV{DRAKLIVE_DEFAULT_USER}/tmp/$ENV{DRAKLIVE_DEFAULT_USER}-kde4", "chown $ENV{DRAKLIVE_DEFAULT_USER}:$ENV{DRAKLIVE_DEFAULT_USER} /home/$ENV{DRAKLIVE_DEFAULT_USER}/tmp/$ENV{DRAKLIVE_DEFAULT_USER}-kde4/", ), if_($mandriva_theme eq 'Flash', #- set blue gtk theme for Flash in Gnome "/usr/bin/gconftool-2 --config-source=xml::/etc/gconf/gconf.xml.local-defaults/ --direct --type=string --set /apps/metacity/general/theme 'Ia Ora Blue'", "/usr/bin/gconftool-2 --config-source=xml::/etc/gconf/gconf.xml.local-defaults/ --direct --type=string --set /desktop/gnome/interface/gtk_theme 'Ia Ora Blue'", #- set blue gtk theme for Flash in GTK "perl -pi -e 's/META_CLASS=.*/META_CLASS=powerpack/' /etc/sysconfig/system", "echo MDV_MENU_STYLE=discovery > /etc/sysconfig/menustyle", if_(!$ENV{DRAKLIVE_COMMERCIAL}, "mkdir -p /usr/share/mdk/desktop/flash", "cp -a /usr/share/mdk/desktop/one/subscribe.desktop /usr/share/mdk/desktop/flash", ), ), ), '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; };