#!/usr/bin/perl -cw my $distro = $build->{settings}{distro}; my $version = $build->{settings}{version}; my $product = $build->{settings}{product}; my $desktop = $build->{settings}{desktop}; my $arch = $build->{settings}{arch}; my $default_user = $build->{settings}{default_user}; my @user_config_dirs = ('/etc/skel', '/home/' . $default_user); sub build_label { my ($build) = @_; join('-', $distro, $version, $product, $desktop, $arch); } sub build_title { my ($build) = @_; join(' ', $distro, $version, $product, $desktop); } my $default_append = 'root=mgalive:LABEL=' . build_label($build) . ' noiswmd audit=0 rd.luks=0 rd.lvm=0 rd.md=0 rd.dm=0'; my $_l = { system => { enabled_media => [ 'Core Release', # 'Core Updates', 'Nonfree Release', # 'Nonfree Updates', ], rpmsrate_flags => [ 'LIVE', (map { "CAT_$_" } ( # internet qw(NETWORKING_FILE_TRANSFER 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), )) ], compssListLevel => 5, include_packages => [ # Satisfy the basesystem bootloader requirement. 'drakiso-null-bootloader', # Some extra admin tools. 'bind-utils', 'btrfs-progs', 'dmraid', 'hdparm', 'mdadm', # Allow patching during customisation. 'patch', ], exclude_packages => [ if_($arch eq 'i586', # We want the desktop586 kernel for maximum hardware compatibility. '/^kernel-desktop-/', '/^vboxadditions-kernel-.*-desktop-/', ), # No server kernels. '/^kernel-server-/', '/^vboxadditions-kernel-.*-server-/', # No proprietary drivers 'dkms-broadcom-wl', 'dkms-nvidia304', 'x11-driver-video-nvidia304', 'dkms-nvidia340', 'x11-driver-video-nvidia340', 'dkms-nvidia-current', 'x11-driver-video-nvidia-current', # 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', # Needs X 'apmd', 'draklive-install', 'drakx-finish-install', 'xterm', # Not wanted 'hunspell-dictionary', ], preferred_packages => [ ], local_repo_packages => [ # core 'broadcom-bcma-config', 'broadcom-ssb-config', ], langs_always => [ 'en_US' ], disable_services => [ # Uncommon hardware. qw(bpalogin capi4linux cpqarrayd mdadm oki4daemon pcscd), # Unneeded software. qw(chronyd snmpd), # Slows down basic usage and install, reenabled after install. qw(crond msec), ], disable_timers => [ ], files => [ # Clean configuration files. [ 'files/empty.conf', '/etc/dracut.conf.d/51-mageia-resume.conf', { mode => 0644 } ], [ 'files/empty.conf', '/etc/modprobe.conf', { mode => 0644 } ], # Blacklist pata_acpi (mga#3395). [ 'files/blacklist-ide.conf', '/etc/modprobe.d/blacklist-ide.conf', { mode => 0644 } ], # Live media specific initrd. [ 'files/dracut-live.conf', '/etc/dracut.conf.d/60-live.conf', { mode => 0644, no_install => 1 } ], # Set language and keyboard [ 'files/set-lang-kbd.service', '/etc/systemd/system/set-lang-kbd.service', { mode => 0644, no_install => 1 } ], [ 'files/set-lang-kbd', '/sbin/set-lang-kbd', { mode => 0755, no_install => 1 } ], # 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 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 } ], ], remove_files => [ (map { "/etc/modprobe.preload.d/$_" } qw(cpufreq pcmcia rfswitch)), "/etc/udev/rules.d/70-persistent-*.rules", "/var/lib/dbus/machine-id", "/etc/ssh/ssh_host_*", ], patches => [ ], final_fixes => join(';', # Enable the set-lang-kbd service. "systemctl enable set-lang-kbd.service", # 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", ), vga_mode => 788, }, loopbacks => { exclude => { type => 'squashfs', files => [ { path => '/root/drakx' }, ], }, }, regions => { # the "all" region has a magical behavior and selects all langs }, copy_from_repo => [ 'isolinux/memtest' => "boot/memtest", ], media => { storage => 'iso', label => build_label($build), bootloader_title => build_title($build), bootloader_theme => '/usr/share/drakiso-bootloader/maggy', bootloader_font => '/usr/share/drakiso-bootloader/unicode.pf2', bootloader_langs => '/usr/share/drakiso-bootloader/lang-names.txt', bootloader_kbds => '/usr/share/drakiso-bootloader/kbd-names.txt', bootloader_messages => '/usr/share/drakiso-bootloader/messages', bootloader_default => 0, bootloader_timeout => 10, 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 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 => '/usr/share/drakiso-bootloader/images/boot_hybrid.img', eltorito_img => '/usr/share/drakiso-bootloader/images/eltorito.img', if_($arch eq 'i586', efi_type => '32bit', boot32_efi => '/usr/share/drakiso-bootloader/images/bootia32.efi' ), if_($arch eq 'x86_64', efi_type => '64bit', boot64_efi => '/usr/share/drakiso-bootloader/images/bootx64.efi' ), }, mount => MGA::DrakISO::Mounts::volatile_squash_union(), };