All pastes #924459 Raw Edit

Someone

public text v1 · immutable
·published 2008-03-01 10:54 UTC
rendered paste body
#!/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;
};