Subversion Repositories ALCASAR

Compare Revisions

No changes between revisions

Ignore whitespace Rev 2670 → Rev 2672

/iso/build_alcasar_iso.sh
File deleted
Property changes:
Deleted: svn:eol-style
-native
\ No newline at end of property
Deleted: svn:executable
-*
\ No newline at end of property
/iso/minimal-rpm-list
File deleted
/iso/procedure-iso_v2.3.odt
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Deleted: svn:mime-type
-application/octet-stream
\ No newline at end of property
/iso/README.md
0,0 → 1,39
Mageiar ISO builder
===================
 
Goal
----
 
The goal here is to create a minimalist ISO image of Mageia-Linux with the ALCASAR archive and all its RPM dependencies.
 
How it works
------------
 
The script uses an official Mageia docker image to retrieve a recursive list of dependecies that are downloaded and packaged in the installation ISO. ALCASAR dependencies list, as well as its kernel version, are retrieved from the ALCASAR tarball archive.
 
Once the ISO is done, one can boot on it and install the OS normally. The dependencies are installed along the basesystem packages, which means that the Alcasar installer will only download updates.
 
What it needs
-------------
 
The script can be provided with both the Alcasar tarball archive as well as the Mageia ISO image.
The Alcasar archive can be given in argument using the `-a` option. Otherwise it will be downloaded automatically in its latest version.
 
The Mageia ISO image is to be placed in the `ressources` directory.
If Mageia image has been provided, it will be downloaded in the docker.
This is because the version has to match the one in the docker
 
The script's only dependency is the docker service and iptables ("urpmi iptables,docker"). All other dependencies, such as the RPM and ISO tools, will be installed within the docker.
 
How to use
----------
 
Usage : buildMageiar [-a alcasar.tar.gz]
 
What can be done
----------------
 
The ISO image seems to be already as light as it can be. With all the necessary packages, it weighs around 800Mo.
 
Here is a list of interesting functionnalities:
- Use DrakX to install and configure Alcasar graphically
/iso/buildMageiar.sh
0,0 → 1,109
#!/bin/bash
 
#######################
###### Variables ######
################################################################################
 
# Script variables
CURRENT_DIR="$(readlink -f "$(dirname $0)")"
RESSOURCES="$CURRENT_DIR/ressources"
SCRIPTS_DIR="$CURRENT_DIR/scripts"
SCRIPTS_TMP_DIR="$CURRENT_DIR/scripts_tmp"
BUILDER_SCRIPT="build-image.sh"
LOG_FILE="${CURRENT_DIR}/mageiarBuilder.log"
 
 
#######################
###### Functions ######
################################################################################
# Print the given error message and exit 1
function errorExit()
{
tput bold
echo -e "ERROR : $1 \nAborting\n" >&2
echo "$1" > "$LOG_FILE"
tput sgr0
exit 1
}
#-------------------------------------------------------------------------------
function printBold()
{
tput bold 2>/dev/null
echo $1
tput sgr0 2>/dev/null
}
#######################
###### Main ######
################################################################################
 
# Check root
[[ $(whoami) != 'root' ]] && errorExit 'Please run as root'
 
# Check options
while getopts "a:h" option; do
case $option in
a) # Alcasar image
alcasarTar="$(echo $OPTARG | rev | cut -d '/' -f 1 | rev)"
[[ ! -f "$OPTARG" ]] && errorExit "could not find $OPTARG"
# Copy the image in the ressource directory to be accessible from the docker
printBold "Copying $OPTARG" in $RESSOURCES
rsync -usP "$OPTARG" "$RESSOURCES/$alcasarTar" || \
errorExit "could not copy $OPTARG to $RESSOURCES"
 
;;
*)
echo "Usage : buildMageiar [-a alcasar.tar.gz]"
exit 1
;;
esac
done
 
# Check if auto_inst.cfg.pl is present
[[ ! -f "$RESSOURCES/auto_inst.cfg.pl_template" ]] && errorExit "No auto_inst.cfg.pl_template file in $RESSOURCES"
 
#-------------------------------------------------------------------------------
# If needed, download Alcasar image
#-------------------------------------------------------------------------------
 
if [[ -z $alcasarTar ]]; then
latestAlcasarVersion="-$(dig version.alcasar.net txt | \
grep "ANSWER SECTION" -A 1 | \
grep version | cut -d '"' -f2 || \
errorExit "could not retrieve Alcasar latest version")"
alcasarTar="alcasar$latestAlcasarVersion.tar.gz"
 
printBold "Downloading Alcasar image"
wget -O "$RESSOURCES/$alcasarTar" "ftp.alcasar.net:/pub/stable/$alcasarTar" || errorExit 'could not download Alcasar'
fi
 
#
# If Mageia image isn't provided here, it will be downloaded in the docker.
# This is because the version has to match the one in the docker
#
 
#-------------------------------------------------------------------------------
# Run docker image
#-------------------------------------------------------------------------------
systemctl start docker || errorExit 'could not start docker service'
 
# Copy script folder to temporary one
cp -r "$SCRIPTS_DIR" "$SCRIPTS_TMP_DIR"
 
 
printBold "Running mageia docker"
docker run --privileged --rm --volume "$RESSOURCES":/var/iso --volume "$SCRIPTS_TMP_DIR":/root/ -it mageia "/root/$BUILDER_SCRIPT" "$alcasarTar"
 
[[ -d "$SCRIPTS_TMP_DIR" ]] && rm -Rf "$SCRIPTS_TMP_DIR" 2>/dev/null
 
# Retrieve created iso image
mv "$RESSOURCES"/Mageia*Alcasar* "$CURRENT_DIR" 2>/dev/null
 
# Give it to SUDO_USER if exists
[[ ! -z $SUDO_USER ]] && chown -R $SUDO_USER "$CURRENT_DIR"/* 2>/dev/null
 
#-------------------------------------------------------------------------------
# Stopping
#-------------------------------------------------------------------------------
read -p 'Stop docker service ? [Y/n] : ' ynAnswer
[[ ! $ynAnswer = [nN] ]] && systemctl stop docker
#-------------------------------------------------------------------------------
Property changes:
Added: svn:eol-style
+native
\ No newline at end of property
Added: svn:executable
+*
\ No newline at end of property
/iso/old/build_alcasar_iso.sh
0,0 → 1,326
#!/bin/bash
#
# Authors: Mageia Team
# Update for ALCASAR : Hamza ESSAYEGH (Querdos) - Rexy - Laurent Roux
##
# Usage: $0 ARGS
# --iso-file, -i Mageia-xxx-xxxxxx-xxx.iso (mandatory)
# --lang, -l Language for installation (optional)
# Supported languages: fr;en
#
 
function print_percentage() {
local percent=$1
if [ ${percent} -lt 5 ]; then
echo -ne "Downloading... [ ] ${percent}%\r"
elif [ ${percent} -lt 10 ]; then
echo -ne "Downloading... [ # ] ${percent}%\r"
elif [ ${percent} -lt 15 ]; then
echo -ne "Downloading... [ ## ] ${percent}%\r"
elif [ ${percent} -lt 20 ]; then
echo -ne "Downloading... [ ### ] ${percent}%\r"
elif [ ${percent} -lt 25 ]; then
echo -ne "Downloading... [ #### ] ${percent}%\r"
elif [ ${percent} -lt 30 ]; then
echo -ne "Downloading... [ ##### ] ${percent}%\r"
elif [ ${percent} -lt 35 ]; then
echo -ne "Downloading... [ ###### ] ${percent}%\r"
elif [ ${percent} -lt 40 ]; then
echo -ne "Downloading... [ ####### ] ${percent}%\r"
elif [ ${percent} -lt 45 ]; then
echo -ne "Downloading... [ ######## ] ${percent}%\r"
elif [ ${percent} -lt 50 ]; then
echo -ne "Downloading... [ ######### ] ${percent}%\r"
elif [ ${percent} -lt 55 ]; then
echo -ne "Downloading... [ ########## ] ${percent}%\r"
elif [ ${percent} -lt 60 ]; then
echo -ne "Downloading... [ ########### ] ${percent}%\r"
elif [ ${percent} -lt 65 ]; then
echo -ne "Downloading... [ ############ ] ${percent}%\r"
elif [ ${percent} -lt 70 ]; then
echo -ne "Downloading... [ ############# ] ${percent}%\r"
elif [ ${percent} -lt 75 ]; then
echo -ne "Downloading... [ ############## ] ${percent}%\r"
elif [ ${percent} -lt 80 ]; then
echo -ne "Downloading... [ ############### ] ${percent}%\r"
elif [ ${percent} -lt 85 ]; then
echo -ne "Downloading... [ ################ ] ${percent}%\r"
elif [ ${percent} -lt 90 ]; then
echo -ne "Downloading... [ ################# ] ${percent}%\r"
elif [ ${percent} -lt 95 ]; then
echo -ne "Downloading... [ ################## ] ${percent}%\r"
elif [ ${percent} -lt 100 ]; then
echo -ne "Downloading... [ ################### ] ${percent}%\r"
elif [ ${percent} == 100 ]; then
echo -ne "Downloading... [ #################### ] ${percent}%\r"
fi
}
 
# Check if a given option is valid an set a global var with the option value
function optionIsValid() {
# Retrieving option and its value
local option=$1
local value=$2
 
# Available options (short and long)
local isoFileOption="--iso-file -i"
local langOption="--lang -l"
 
# Iso file option ?
for opt in ${isoFileOption}; do
if [[ ${opt} = ${option} ]]; then
isoFile=${value}
return 0
fi
done
 
# Language option ?
for opt in ${langOption}; do
if [[ ${opt} = ${option} ]]; then
lang="-${value}"
return 0
fi
done
 
# Unknown option
echo "Unknown option '${option}'. Aborting." && exit 1
}
 
# Check if needed packages are installed
function requiredPackagesInstalled() {
# Checking mkisofs
command -v genisoimage > /dev/null 2>&1 || \
{ echo "The package genisoimage is not installed." && \
genisoimageNotInstalled=1; }
 
# Checking genhdlist2
command -v genhdlist2 > /dev/null 2>&1 || \
{ echo "The package genhdlist2 is not installed." && \
genhdlist2NotInstalled=1; }
 
# Checking gendistrib
command -v gendistrib > /dev/null 2>&1 || \
{ echo "The package gendistrib is not installed (rpmtools)." && \
gendistribNotInstalled=1; }
 
# If one of the following, aborting
[[ ${genisoimageNotInstalled} -eq 1 ]] || \
[[ ${genhdlist2NotInstalled} -eq 1 ]] || \
[[ ${gendistribNotInstalled} -eq 1 ]] && exit 1
}
 
# Check if a given language is supported by this script or not
function languageIsSupported() {
local lang=$1
local supportedLang="fr en"
 
# Comparing with available langs
for supLang in ${supportedLang}; do
if [[ ${supLang} = ${lang} ]]; then
return 0
fi
done
 
# Language is not supported
echo "Language '${lang}' is not supported. Aborting." && exit 1
}
 
# "Purify" the rpm name -> for the plop.idx file ("Mageia-5.1-x86_64 rpmname" for example)
function purifyRpmName() {
local str=$1
local arch=$2
local len=${#str}
 
p=`echo ${str} | grep -oP ".*\.mga6"`
echo "Mageia-6-${arch} ${p}"
}
 
#################################
# BEGIN HERE #
#################################
# Checking arguments (rpm_list and iso file and eventually lang)
[[ ($# -lt 1) || ($# -gt 2) ]] && echo \
"Usage: $0 ARGS
--iso-file, -i Mageia-xxx-xxxxxx-xxx.iso (mandatory)
--lang, -l Language for installation (optional)
Supported languages: fr;en
" && exit 1
 
# Checking options
optionIsValid $1 $2
 
# Checking that mandatory option have been specified
[[ -z ${isoFile} ]] && { echo "Iso file option is mandatory. Aborting." && exit 1; }
 
# Checking validity of options
[[ -f ${isoFile} ]] || { echo "Invalid iso file. Aborting." && exit 1; }
 
# Checking that executed as root
[[ $(whoami) != "root" ]] && \
{ echo "This script must be executed with root privileges. Aborting." && exit 1; }
 
# Checking required packages
requiredPackagesInstalled
 
# Directories
actualDir=$(pwd)
RPMS_DIR=$(pwd)"/rpms"
[[ -d ${RPMS_DIR} ]] && rm -rf ${RPMS_DIR}
mkdir ${RPMS_DIR}
# Retreiving rpm_lists
rpm_need_by_alcasar=`rpm -qa`
rpm_need_by_mageia=`cat minimal-rpm-list`
 
# official and new dirs
mageiaNewDir=/tmp/mageia_new
mageiaOfficialDir=/tmp/mageia_official
 
# Mounting the image
echo "Mounting the image..."
[[ ! -d ${mageiaOfficialDir} ]] && mkdir ${mageiaOfficialDir}
mount -o ro,loop ${isoFile} ${mageiaOfficialDir} || { echo "Failed mounting '${isoFile}'. Aborting." && exit 1; }
 
# Checking architecture
[[ -d ${mageiaOfficialDir}/x86_64 ]] && arch=x86_64 || arch=i586
 
# Creating new directory that will contains the "cleared" iso image
[[ -d ${mageiaNewDir} ]] && rm -rf ${mageiaNewDir}
mkdir ${mageiaNewDir}
 
# Copying main files except core and nonfree directories
echo "Extracting base image..."
cd $mageiaOfficialDir && \
tar cf - --exclude=${arch}/media . | (cd $mageiaNewDir && tar xf - ) && cd "${actualDir}"
 
# Creating new directories core and nonfree and dir for alcasar stufs
mkdir -p ${mageiaNewDir}/${arch}/{media/{core,nonfree},install/alcasar}
# Retrieving core and nonfree dirs (official)
coreDir=${mageiaOfficialDir}/${arch}/media/core
nonFreeDir=${mageiaOfficialDir}/${arch}/media/nonfree
 
# Retrieving core and nonfree dirs (new)
coreDirNew=${mageiaNewDir}/${arch}/media/core/
nonFreeDirNew=${mageiaNewDir}/${arch}/media/nonfree
plopFilePath=${mageiaNewDir}/${arch}/media/plop.idx
 
# Initializing counts
count=0
countCore=0
countNonFree=0
 
# Copying the RPM in core and nonfree and clearing the plop.idx file
echo "Copying RPMS in ISO ..."
> ${plopFilePath}
total=`echo $rpm_need_by_mageia | wc -w`
# Selecting & copying of rpm need by Mageia
for rpm in ${rpm_need_by_mageia}; do
let percent="${count} * 100 / ${total}"
print_percentage ${percent}
# Retreiving output of ls in directories
fileInCore=$(ls ${coreDir} | grep "^${rpm}")
fileInNonFree=$(ls ${nonFreeDir} | grep "^${rpm}")
# If present in core, copying in core_new
if [[ ! -z ${fileInCore} ]]; then
# Copying RPM
cp "${coreDir}/${fileInCore}" ${coreDirNew}
countCore=$(expr ${countCore} + 1)
# Updating the plop.idx
purifyRpmName ${rpm} ${arch} >> ${plopFilePath}
# if present in nonfree, copying in nonfree_new
elif [[ ! -z ${fileInNonFree} ]]; then
# Copying RPM
cp "${nonFreeDir}/${fileInNonFree}" ${nonFreeDirNew}
countNonFree=$(expr ${countNonFree} + 1)
# Updating the plop.idx
purifyRpmName ${rpm} ${arch} >> ${plopFilePath}
else
echo "$rpm not found"
fi
count=$(expr ${count} + 1)
done
# Sorting the plop file alphabetically
cat ${plopFilePath} | sort > /tmp/tmpFileMageia && mv /tmp/tmpFileMageia ${plopFilePath}
# Informations
echo "$count RPMs copied (${countCore} from core and ${countNonFree} from nonfree)"
echo "Hit a Key to download complemmentary RPMs"
read a
 
# Dowloading additionnal RPM
count=0
total=`echo $rpm_need_by_alcasar | wc -w`
# Selecting & copying of rpm need by alcasar
for rpm in ${rpm_need_by_alcasar}; do
let percent="${count} * 100 / ${total}"
print_percentage ${percent}
# Retreiving output of ls in directories
fileInCore=$(ls ${coreDir} | grep "^${rpm}")
fileInNonFree=$(ls ${nonFreeDir} | grep "^${rpm}")
# Download complementary RPMS (that aren't in core nor in nonfree)
if [ -z ${fileInCore} ] && [ -z ${fileInNonFree} ]; then
url=$(urpmq --ignorearch --sources ${rpm} | grep 'updates\|release' | uniq)
wget -P "${RPMS_DIR}" "${url}" --quiet
short_name=`rpm -q $rpm --qf "%{NAME}\n"`
fi
count=$(expr ${count} + 1)
done
$lcd=`pwd`
cd ${RPMS_DIR}
tar -cvf ${mageiaNewDir}/${arch}/install/alcasar/alcasar.tar ${RPMS_DIR}/
cd $lcd
 
# Informations
echo "$count complementary RPMs copied"
echo "Hit a Key to create the ISO file"
read a
 
# Copying customized files
echo "Copying customized files..."
### only if we want to change the normal install procedure ###
#cp ${actualDir}/config/first_login ${mageiaNewDir}/${arch}/install/alcasar
#cp ${actualDir}/config/auto_inst-${arch}${lang}.cfg.pl ${mageiaNewDir}/${arch}/install/alcasar/auto_inst-${arch}.cfg.pl
#cp -f ${actualDir}"/config/isolinux-x86_64.cfg" ${mageiaNewDir}/isolinux/isolinux.cfg
 
# Generating media info for core
echo "Generating media_info for core..."
genhdlist2 ${coreDirNew} --allow-empty-media --quiet
 
echo "Generating media_info for nonfree..."
genhdlist2 ${nonFreeDirNew} --allow-empty-media --quiet
 
# Puting pubkeys in media_info
cp ${coreDir}/media_info/pubkey ${coreDirNew}/media_info/
cp ${nonFreeDir}/media_info/pubkey ${nonFreeDirNew}/media_info/
 
# Retrieving media.cfg & compssUsers.pl depending on the arch
mkdir ${mageiaNewDir}/${arch}/media/media_info
cp ${mageiaOfficialDir}/${arch}/media/media_info/compssUsers.pl ${mageiaNewDir}/${arch}/media/media_info/compssUsers.pl
cp ${mageiaOfficialDir}/${arch}/media/media_info/media.cfg ${mageiaNewDir}/${arch}/media/media_info/media.cfg
 
# Generating distr
echo "Generating mirror tree..."
gendistrib -s ${mageiaNewDir}/${arch}
 
# Creating the new iso file
echo "Creating the isofile..."
newIsoName=Mageia-6-${arch}${lang}-Alcasar.iso
cd ${mageiaNewDir} && genisoimage -quiet -o ${actualDir}/${newIsoName} \
-b isolinux/isolinux.bin \
-c boot.catalog \
-no-emul-boot -boot-load-size 4 \
-boot-info-table -J -R -V "Mageia-6 Alcasar (${arch})" .
 
# Unmounting
echo "Umounting..."
umount ${mageiaOfficialDir} && rmdir ${mageiaOfficialDir}
 
# Removing temporary dir
rm -rf ${mageiaNewDir}
 
# Setting same permissions as the initial image
cd ${actualDir}
chmod --reference=${isoFile} ${newIsoName}
chown --reference=${isoFile} ${newIsoName}
 
# Finished
echo "Done."
Property changes:
Added: svn:eol-style
+native
\ No newline at end of property
Added: svn:executable
+*
\ No newline at end of property
/iso/old/minimal-rpm-list
0,0 → 1,498
pkgconfig-0.29.1-3.mga6
run-parts-4.4-7.mga6
lib64xcursor1-1.1.14-6.mga6
glibc-2.22-25.mga6
grub2-common-2.02-0.git10463.8.mga6
lib64x11-xcb1-1.6.5-1.mga6
lib64xrandr2-1.5.1-1.mga6
lib64glapi0-17.1.4-1.mga6
lib64xi6-1.7.9-1.mga6
lib64drm_nouveau2-2.4.81-1.mga6
pango-1.40.6-1.mga6
lib64drm_intel1-2.4.81-1.mga6
lib64jbig1-2.1-4.mga6
lib64xcb1-1.12-2.mga6
atk1.0-common-2.24.0-1.mga6
lib64xcb-dri3_0-1.12-2.mga6
thai-data-0.1.26-1.mga6
lib64gmp10-6.1.2-1.mga6
gtk+3.0-3.22.16-1.mga6
libgcc1-5.4.0-5.mga6
lib64appindicator3_1-12.10.0-19.mga6
lib64xext6-1.3.3-4.mga6
perl-URI-1.710.0-2.mga6
lib64llvm3.9-3.9.1-6.mga6
lib64cairo-gir1.0-1.52.1-1.mga6
perl-base-5.22.3-3.mga6
perl-WWW-RobotRules-6.20.0-8.mga6
lib64ncursesw6-6.0-8.mga6
perl-HTTP-Cookies-6.10.0-10.mga6
lib64bzip2_1-1.0.6-10.mga6
rpm-4.13.0.1-3.mga6
info-install-6.1-1.mga6
perl-Math-Int64-0.540.0-2.mga6
perl-File-Sync-0.110.0-17.mga6
lib64fontconfig-gir2.0-1.52.1-1.mga6
lib64blkid1-2.28.2-2.mga6
perl-URPM-5.12-1.mga6
lib64sqlite3_0-3.17.0-2.mga6
perl-HTML-Parser-3.720.0-2.mga6
python3-pkg-resources-19.6.2-1.mga6
perl-Net-DBus-1.1.0-5.mga6
lib64python3.5-3.5.3-1.mga6
genhdlist2-7.00-6.mga6
lib64gpg-error0-1.24-1.mga6
perl-Filesys-Df-0.920.0-18.mga6
lib64audit1-2.7.7-1.mga6
perl-Locale-gettext-1.50.0-20.mga6
lib64systemd0-230-12.mga6
lib64secret1_0-0.18.5-2.mga6
lib64udev1-230-12.mga6
crda-3.18-5.mga6
lib64intl8-0.19.8.1-1.mga6
mageia-repos-pkgprefs-6-1.mga6
popt-data-1.16-13.mga6
libdrakx-net-2.32-1.mga6
lib64daemon0-0.14-10.mga6
lib64npth0-1.5-1.mga6
iputils-20161105-2.mga6
gnupg2-2.1.21-2.mga6
lib64ext2fs2-1.43.4-1.mga6
monitor-edid-3.1-8.mga6
lib64microhttpd12-0.9.55-1.mga6
mageia-repos-6-1.mga6
ifplugd-0.28-20.mga6
aria2-1.25.0-1.mga6
lib64cryptsetup4-1.7.5-1.mga6
libdrakx-kbd-mouse-x11-1.23-1.mga6
psmisc-22.21-7.mga6
coreutils-doc-8.25-3.mga6
kmod-24-2.mga6
python3-six-1.10.0-2.mga6
ethtool-4.8-1.mga6
lib64solv0-0.6.28-1.mga6
nss-myhostname-230-12.mga6
ipset-6.30-1.mga6
lib64talloc2-2.1.9-1.mga6
lib64usb-compat0.1_4-0.1.5-8.mga6
lib64tcb0-1.1-7.mga6
lib64ip4tc0-1.6.1-2.mga6
lib64gio2.0_0-2.52.2-2.mga6
lib64iptables12-1.6.1-2.mga6
lib64pytalloc-util2-2.1.9-1.mga6
btrfs-progs-4.9-2.mga6
lib64xml2_2-2.9.4-8.mga6
gnupg-1.4.21-1.mga6
lib64dbus1_3-1.10.16-1.mga6
cronie-1.5.1-1.mga6
systemd-units-230-12.mga6
logrotate-3.12.2-1.mga6
rpm-helper-0.24.17-4.mga6
bc-1.06.95-8.mga6
systemd-230-12.mga6
lib64gpm2-1.20.7-7.mga6
lib64cups2-2.2.3-2.mga6
ncurses-6.0-8.mga6
samba-common-4.6.5-1.mga6
vim-minimal-8.0.388-1.mga6
dmraid-1.0.0-0.rc16.22.mga6
python3-rpm-4.13.0.1-3.mga6
libnl3-config-3.3.0-1.mga6
python3-iniparse-0.4-14.mga6
lib64nl3_200-3.3.0-1.mga6
lib64lftp0-4.7.7-1.mga6
lib64gbm1-17.1.4-1.mga6
dnf-plugins-core-2.1.1-2.mga6
lib64usb1.0_0-1.0.21-1.mga6
dhcp-client-4.3.5-1.mga6
lib64magic1-5.25-5.mga6
ldetect-0.12.8-3.mga6
ldetect-lst-0.3.7-1.mga6
sudo-1.8.20p2-1.mga6
bzip2-1.0.6-10.mga6
cronie-anacron-1.5.1-1.mga6
lib64fontconfig1-2.12.1-2.mga6
acpid-2.0.28-1.mga6
lib64polkit1_0-0.113-6.mga6
dosfstools-4.1-1.mga6
drakxtools-backend-17.88-1.mga6
tmpwatch-2.11-6.mga6
sysfsutils-2.1.0-22.mga6
lib64colord2-1.3.4-1.mga6
lib64mesaegl1-17.1.4-1.mga6
lib64jpeg8-1.5.1-1.mga6
lib64jasper1-1.900.23-5.mga6
gpg-pubkey-80420f66-4d4fe123
lib64nss3-3.28.5-1.mga6
dash-static-0.5.9-1.mga6
lib64xtst6-1.2.3-1.mga6
setup-2.7.24-1.mga6
at-spi2-core-2.24.1-1.mga6
grep-3.0-1.mga6
lib64lua5.2-5.2.4-1.mga6
lib64pcre1-8.40-2.mga6
grub2-2.02-0.git10463.8.mga6
lib64zlib1-1.2.11-4.mga6
lib64wayland-cursor0-1.11.0-1.mga6
lib64xshmfence1-1.2-2.mga6
fuse-2.9.7-1.mga6
lib64expat1-2.2.1-1.mga6
lib64xinerama1-1.1.3-6.mga6
lib64acl1-2.2.52-7.mga6
lib64xkbcommon0-0.7.1-1.mga6
lib64drm_radeon1-2.4.81-1.mga6
glib2.0-common-2.52.2-2.mga6
lib64drm_amdgpu1-2.4.81-1.mga6
lib64harfbuzz0-1.3.2-5.mga6
lib64pciaccess0-0.13.5-1.mga6
lib64datrie1-0.2.10-1.mga6
lib64xau6-1.0.8-7.mga6
dbus-x11-1.10.16-1.mga6
lib64xdmcp6-1.1.2-5.mga6
lib64tiff5-4.0.8-3.mga6
lib64xcb-present0-1.12-2.mga6
lib64gdk_pixbuf2.0_0-2.36.6-1.mga6
lib64xcb-dri2_0-1.12-2.mga6
lib64atk1.0_0-2.24.0-1.mga6
lib64xcb-glx0-1.12-2.mga6
lib64epoxy0-1.4.1-1.mga6
lib64cap2-2.25-1.mga6
lib64thai0-0.1.26-1.mga6
coreutils-8.25-3.mga6
lib64gtk+3_0-3.22.16-1.mga6
libstdc++6-5.4.0-5.mga6
adwaita-icon-theme-3.24.0-1.mga6
lib64ncurses6-6.0-8.mga6
lib64dbusmenu-gtk3_4-16.04.1-1.20170109.1.mga6
lib64x11_6-1.6.5-1.mga6
mate-polkit-1.18.1-1.mga6
lib64xxf86vm1-1.1.4-2.mga6
perl-HTTP-Date-6.20.0-7.mga6
lib64xfixes3-5.0.3-1.mga6
perl-LWP-MediaTypes-6.20.0-7.mga6
lib64dri-drivers-17.1.4-1.mga6
perl-MDV-Packdrakeng-1.130.0-3.mga6
mesa-17.1.4-1.mga6
perl-Encode-Locale-1.50.0-3.mga6
lib64openssl-engines1.0.0-1.0.2l-1.mga6
perl-Net-HTTP-6.90.0-3.mga6
lib64gdbm4-1.12-1.mga6
perl-File-Listing-6.40.0-8.mga6
python-rpm-macros-3-4.mga6
perl-HTTP-Message-6.110.0-3.mga6
lib64readline6-6.3-9.mga6
perl-HTTP-Daemon-6.10.0-7.mga6
lib64db5.3-5.3.28-10.mga6
rpm-mageia-setup-2.20-9.mga6
xz-5.2.3-1.mga6
lib64sgutils2-1.42-1.mga6
sed-4.2.2-9.mga6
lib64atasmart4-0.19-8.mga6
python3-rpm-macros-3-4.mga6
lib64freetype-gir2.0-1.52.1-1.mga6
perl-MDK-Common-1.2.32-2.mga6
lib64atk-gir1.0-2.24.0-1.mga6
lib64uuid1-2.28.2-2.mga6
lib64pango-gir1.0-1.40.6-1.mga6
lib64sigsegv2-2.10-7.mga6
lib64rpmbuild7-4.13.0.1-3.mga6
lib64icu58-58.2-3.mga6
lib64gudev1.0_0-230-4.mga6
python-2.7.13-1.mga6
perl-HTML-Tagset-3.200.0-9.mga6
lib64python2.7-stdlib-2.7.13-1.mga6
perl-libwww-perl-6.150.0-2.mga6
python3-3.5.3-1.mga6
perl-XML-Twig-3.520.0-1.mga6
python3-pip-8.0.2-6.mga6
lib64gdk_pixbuf-gir2.0-2.36.6-1.mga6
lib64python3.5-stdlib-3.5.3-1.mga6
perl-Hal-Cdroms-0.40.0-3.mga6
libgpg-error-common-1.24-1.mga6
groff-1.22.3-1.mga6
lib64gcrypt20-1.7.8-1.mga6
drakx-kbd-mouse-x11-text-1.23-1.mga6
lib64cap-ng0-0.7.8-1.mga6
meta-task-6-1.mga6
lib64pam0-1.3.0-5.mga6
mageia-repos-keys-6-1.mga6
shadow-utils-4.4-1.mga6
lib64assuan0-2.4.3-1.mga6
diffutils-3.3-6.mga6
libsecret-tools-0.18.5-2.mga6
perl-Time-HiRes-1.973.300-1.mga6
perl-XML-NamespaceSupport-1.110.0-9.mga6
lib64avahi-common3-0.6.32-1.mga6
wireless-regdb-20170307-1.mga6
lib64devmapper1.02-1.02.137-1.mga6
perl-XML-SAX-0.990.0-9.mga6
lib64hogweed4-3.3-1.mga6
pinentry-1.0.0-2.mga6
p11-kit-0.23.2-2.mga6
perl-Net-Telnet-3.40.0-6.mga6
lib64popt0-1.16-13.mga6
iw-4.9-1.mga6
lib64tasn1_6-4.12-1.mga6
perl-Parse-EDID-1.0.6-5.mga6
openldap-2.4.45-2.mga6
perl-Curses-UI-0.960.900-9.mga6
lib64idn11-1.33-1.mga6
perl-Config-IniFiles-2.890.0-2.mga6
lib64verto1-0.2.6-6.mga6
lib64ksba8-1.3.5-1.mga6
e2fsprogs-1.43.4-1.mga6
lib64gpgme11-1.8.0-11.mga6
krb5-1.15.1-2.mga6
lib64x86_1-1.1-32.mga6
lib64gnutls30-3.5.13-1.mga6
perl-DelimMatch-1.60.0a-3.mga6
lib64krb53-1.15.1-2.mga6
lsb-release-2.0-52.mga6
lib64ldap2.4_2-2.4.45-2.mga6
mageia-release-common-6-4.mga6
chkconfig-1.10-1.mga6
lib64devmapper-event1.02-1.02.137-1.mga6
gawk-4.1.4-1.mga6
lib64nghttp2_14-1.9.2-1.mga6
lib64fdisk1-2.28.2-2.mga6
ifmetric-0.3-17.mga6
lib64kmod2-24-2.mga6
lib64procps6-3.3.12-1.mga6
kbd-2.0.3-1.mga6
lib64glib2.0_0-2.52.2-2.mga6
which-2.21-3.mga6
hostname-3.18-1.mga6
lib64tevent0-0.9.31-1.mga6
lib64ldb1-1.1.29-1.mga6
libuser-0.62-8.mga6
lib64dmraid1-1.0.0-0.rc16.22.mga6
gobject-introspection-1.52.1-1.mga6
pam_tcb-1.1-7.mga6
rootcerts-20170404.00-1.mga6
cracklib-dicts-2.9.6-5.mga6
lib64archive13-3.3.1-1.mga6
lib64curl4-7.54.1-2.mga6
dbus-1.10.16-1.mga6
procps-ng-3.3.12-1.mga6
net-tools-2.0-0.20150915git.4.mga6
tcb-1.1-7.mga6
pam-1.3.0-5.mga6
util-linux-2.28.2-2.mga6
dmsetup-1.02.137-1.mga6
lib64avahi-client3-0.6.32-1.mga6
lib64wbclient0-4.6.5-1.mga6
lib64kdc-samba4_2-4.6.5-1.mga6
lib64samba-dc0-4.6.5-1.mga6
dmraid-events-1.0.0-0.rc16.22.mga6
samba-client-4.6.5-1.mga6
perl-File-FnMatch-0.20.0-19.mga6
perl-String-ShellQuote-1.40.0-10.mga6
lib64wayland-server0-1.11.0-1.mga6
lib64nl-genl3_200-3.3.0-1.mga6
nmap-7.40-1.mga6
common-licenses-1.1-8.mga6
tar-1.29-3.mga6
rmt-0.4b46-1.mga6
dmidecode-3.1-1.mga6
file-5.25-5.mga6
gzip-1.8-1.mga6
dash-0.5.9-1.mga6
bridge-utils-1.6-1.mga6
lib64lcms2_2-2.8-2.mga6
lib64freetype6-2.7.1-2.mga6
fontconfig-2.12.1-2.mga6
lib64mozjs185_1.0-1.85-11.mga6
polkit-0.113-6.mga6
lib64ldetect0.12-0.12.8-3.mga6
bootloader-utils-1.16-6.mga6
lib64sysfs2-2.1.0-22.mga6
kernel-desktop-4.9.35-1.mga6-1-1.mga6
lib64gusb2-0.2.10-1.mga6
kernel-desktop-latest-4.9.35-1.mga6
lib64xft2-2.3.2-4.mga6
lib64xcb-render0-1.12-2.mga6
lib64xcb-shm0-1.12-2.mga6
lib64cairo2-1.14.10-1.mga6
hicolor-icon-theme-0.15-3.mga6
lib64cares2-1.13.0-1.mga6
urpmi-8.110-1.mga6
drakx-net-text-2.32-1.mga6
drakx-kbd-mouse-x11-1.23-1.mga6
curl-7.54.1-2.mga6
microcode_ctl-2.1-7.mga6
hawkey-man-0.9.2-1.mga6
cpupower-4.9.35-1.mga6
libsolv-tools-0.6.28-1.mga6
lib64nfnetlink0-1.0.1-7.mga6
lib64ipset3-6.30-1.mga6
lib64netfilter_conntrack3-1.0.6-1.mga6
lib64lzo2_2-2.09-4.mga6
lib64pipeline1-1.4.1-2.mga6
xdg-user-dirs-0.15-7.mga6
lib64ip6tc0-1.6.1-2.mga6
lib64btrfs0-4.9-2.mga6
dnf-conf-2.5.1-2.mga6
iptables-1.6.1-2.mga6
locales-fr-2.22-5.mga6
man-pages-4.10-1.mga6
python3-hawkey-0.9.2-1.mga6
lib64comps0-0.1.8-2.mga6
acpi-1.7-4.mga6
sharutils-4.15.2-2.mga6
lsof-4.89-2.mga6
libdrak3d-2.6-1.mga6
etcskel-1.63-34.mga6
hexedit-1.2.13-6.mga6
passwd-0.79-6.mga6
python3-cairo-1.13.2-1.mga6
lib64plymouth4-0.9.2-9.mga6
mtools-4.0.18-5.mga6
shorewall-core-5.0.15.6-1.mga6
timezone-2017b-1.mga6
python3-gobject3-3.24.1-1.mga6
dhcp-common-4.3.5-1.mga6
deltarpm-3.6.1-2.mga6
basesystem-minimal-6-0.4.mga6
python3-libcomps-0.1.8-2.mga6
python3-dnf-plugins-core-2.1.1-2.mga6
dnf-2.5.1-2.mga6
basesystem-6-0.4.mga6
python3-dbus-1.2.4-3.mga6
bash-completion-2.5-1.mga6
gpm-1.20.7-7.mga6
procmail-3.22-24.mga6
radeon-firmware-20170531-1.mga6.nonfree
iwlwifi-agn-ucode-20170531-1.mga6.nonfree
hdparm-9.52-1.mga6
ralink-firmware-20170531-1.mga6.nonfree
strace-4.17-1.mga6
microcode-0.20170511-1.mga6.nonfree
lib64glib-networking-gnutls-2.50.0-1.mga6
os-prober-1.74-3.mga6
numlock-2.1.2-12.mga6
grub2-mageia-theme-2.02-0.git10463.8.mga6
nss-3.28.5-1.mga6
libdrm-common-2.4.81-1.mga6
lib64atspi0-2.24.1-1.mga6
filesystem-2.1.9-28.mga6
lib64rpm7-4.13.0.1-3.mga6
lib64drm2-2.4.81-1.mga6
makedev-4.4-21.mga6
lib64attr1-2.4.47-7.mga6
lib64xcb-xkb1-1.12-2.mga6
lib64elfutils1-0.169-1.mga6
lib64graphite2_3-1.3.10-1.mga6
lib64ffi6-3.2.1-5.mga6
lib64xcomposite1-0.4.4-8.mga6
lib64bsd0-0.8.3-1.mga6
gdk-pixbuf2.0-2.36.6-1.mga6
lib64xcb-sync1-1.12-2.mga6
lib64atk-bridge2.0_0-2.24.1-1.mga6
lib64xcb-xfixes0-1.12-2.mga6
lib64pango1.0_0-1.40.6-1.mga6
lib64wayland-egl1-17.1.4-1.mga6
lib64indicator3_7-12.10.1-6.mga6
bash-4.3-48.3.mga6
ntfs-3g-2016.2.22-4.mga6
lib64xdamage1-1.1.4-8.mga6
lib64xlib-gir2.0-1.52.1-1.mga6
lib64mesagl1-17.1.4-1.mga6
lib64xft-gir2.0-1.52.1-1.mga6
lib64openssl1.0.0-1.0.2l-1.mga6
perl-IO-HTML-1.1.0-6.mga6
lib64lzma5-5.2.3-1.mga6
perl-HTTP-Negotiate-6.10.0-7.mga6
perl-5.22.3-3.mga6
groff-for-man-1.22.3-1.mga6
python2-rpm-macros-3-4.mga6
lib64dbus-glib1_2-0.108-2.mga6
multiarch-utils-1.0.13-7.mga6
lib64lvm2app2.2-2.02.168-1.mga6
icu58-data-58.2-3.mga6
udisks-1.0.5-8.mga6
lib64python2.7-2.7.13-1.mga6
perl-XML-Parser-2.440.0-5.mga6
python3-setuptools-19.6.2-1.mga6
lib64gtk-gir3.0-3.22.16-1.mga6
lib64dbnss5.3-5.3.28-10.mga6
perl-Time-ZoneInfo-0.300.0-8.mga6
lib64crack2-2.9.6-5.mga6
mandi-1.4-2.mga6
lib64pam_userpass1-1.0.2-13.mga6
libsecret-i18n-0.18.5-2.mga6
lib64mount1-2.28.2-2.mga6
perl-XML-SAX-Base-1.80.0-7.mga6
lib64nettle6-3.3-1.mga6
perl-XML-LibXML-2.12.900-1.mga6
lib64p11-kit0-0.23.2-2.mga6
perl-Term-ReadKey-2.330.0-4.mga6
traceroute-2.1.0-1.mga6
perl-Curses-1.340.0-2.mga6
lib64sasl2_3-2.1.26-12.mga6
perl-MDV-Distribconf-4.100.0-2.mga6
lib64fuse2-2.9.7-1.mga6
lib64repo0-1.7.20-2.mga6
lib64unistring2-0.9.7-1.mga6
perl-Libconf-0.42.10-12.mga6
iproute2-4.9.0-1.mga6
mageia-release-Default-6-4.mga6
gettext-base-0.19.8.1-1.mga6
drakxtools-curses-17.88-1.mga6
findutils-4.6.0-1.mga6
python3-librepo-1.7.20-2.mga6
lib64qrencode3-3.4.4-5.mga6
time-1.7-45.mga6
lib64smartcols1-2.28.2-2.mga6
lib64lvm2cmd2.02-2.02.168-1.mga6
elfutils-0.169-1.mga6
lib64mnl0-1.0.4-1.mga6
lib64lockdev1-1.0.4-0.120111007git.12.mga6
lib64dnf1-0.9.2-1.mga6
lib64tdb1-1.3.13-1.mga6
man-db-2.7.6.1-2.mga6
lib64user1-0.62-8.mga6
locales-2.22-5.mga6
lib64girepository1.0_1-1.52.1-1.mga6
mageia-dnf-conf-1.0-1.mga6
kpartx-0.5.0-5.mga6
xdg-user-dirs-gtk-0.10-5.mga6
lib64ssh2_1-1.7.0-2.mga6
mandi-ifw-1.4-2.mga6
lockdev-1.0.4-0.120111007git.12.mga6
libutempter-1.1.6-5.mga6
resolvconf-1.79-1.mga6
sash-3.8-6.mga6
nss_tcb-1.1-7.mga6
crontabs-1.10-22.mga6
initscripts-9.55-24.mga6
info-6.1-1.mga6
lib64samba1-4.6.5-1.mga6
tree-1.7.0-4.mga6
lib64smbclient0-4.6.5-1.mga6
shorewall-5.0.15.6-1.mga6
lib64parted2-3.2-7.mga6
python3-gpg-1.8.0-11.mga6
lib64wayland-client0-1.11.0-1.mga6
rootfiles-11.0-14.mga6
lib64pcap1-1.8.1-1.mga6
python3-dnf-2.5.1-2.mga6
kernel-firmware-20170531-1.mga6
lftp-4.7.7-1.mga6
cpio-2.12-3.mga6
shorewall-ipv6-5.0.15.6-1.mga6
less-487-1.mga6
harddrake-17.88-1.mga6
lib64xrender1-0.9.10-1.mga6
rtlwifi-firmware-20170531-1.mga6.nonfree
lib64png16_16-1.6.29-1.mga6
kernel-firmware-nonfree-20170531-1.mga6.nonfree
lib64nspr4-4.15-2.mga6
plymouth-0.9.2-9.mga6
lib64pci3-3.5.4-1.mga6
lvm2-2.02.168-1.mga6
dracut-044-11.mga6
usbutils-008-2.mga6
lib64glib-gir2.0-1.52.1-1.mga6
accountsservice-0.6.45-1.mga6
lib64pixman1_0-0.34.0-1.mga6
lib64dbusmenu-glib4-16.04.1-1.20170109.1.mga6
/iso/old/procedure-iso_v2.3.odt
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/iso/ressources/auto_inst.cfg.pl_template
0,0 → 1,116
#!/usr/bin/perl -cw
#
# Configuration file written by :
# * Hamza ESSAYEGH (Querdos) Laurent Roux
#
# /!\ Before putting this file in the iso, check the syntax with
# `perl -cw auto_inst.cfg.pl`
# /!\ The package list will be generated in the iso creation script
$o = {
# Interactive steps option
# http://members.shaw.ca/mandrake/ -> section Replay Steps for
# more informations
'interactiveSteps' => [
# Select language(s) support to be installed.
'selectLanguage',
 
# Do partitionning, comment this if you want to automate this step
'doPartitionDisks',
 
# Select the desired keyboard.
'selectKeyboard',
 
# Allows you to Accept or Refuse the License Agreement.
'acceptLicense',
 
# Select the time zone, GMT/Local hardware clock and if you
# want NTP installed.
'summary',
 
# ajouter des users
'setRootPassword_addUser'
 
],
 
 
# Security level:
# * 2 is for standard
# * 3 for High
# * 4 for Higher
# * 5 for Paranoïd
'security' => 2,
 
 
# Authentication method
'authentication' => {
'shadow' => 1,
'blowfish' => 1
},
 
 
 
# Default packages for the new distribution
# The list will be filled by the iso creation script
# Do not modify
'default_packages' => [
],
 
# Partitionning : control the partitioning of the target system's
# hard disk drives
'partitioning' => {
# Set to 1 if disk partitions are to be defined by the
# option partitions
'auto_allocate' => 1,
 
# 1: all the existing partitions on ALL disks are to be cleared
# and replaced
# 0: the disks are to be left untouched or, you are goeing to
# use "clear" instead
'clearall' => 1
},
 
'enabled_media' => [
'Core Release',
'Nonfree Release'
],
 
 
# Post installation script, executed as root in the installed
# environments and not inside the DrakX installation program
'postInstallNonRooted' => "
 
# Editing bashrc
touch /mnt/root/.bash_history
echo 'cd alcasar*' >> /mnt/root/.bash_history
echo './alcasar.sh -i' >> /mnt/root/.bash_history
 
# Copying Alcasar archive to the root directory
tar -xf /tmp/media/x86_64/install/alcasar/alcasar-*.tar.gz -C /mnt/root/
 
# Allow root shell login
rm -f /mnt/etc/securetty
 
# Install server kernel
urpmi --root /mnt/ --auto /tmp/media/x86_64/media/core/kernel-server-4*.rpm --no-verify-rpm
 
# Lock kernel version (exclude from further updates)
echo '/^kernel/' > /mnt/etc/urpmi/skip.list
 
# Place ISO_INSTALL flag
touch /mnt/root/iso_install
",
 
'postInstall' => "
#sert à la syncro des DD en cas d'un RAID
dracut -f -H
#pour syncro horloge
hwclock --systohc --utc
",
 
 
# Exit without prompt after installation is finished
# 0 - prompt the installer to re-boot and wait
# 1 - reboot the computer automatically
'autoExitInstall' => 1
};
/iso/ressources/install_slideshow/02_IM_mageia.pl
0,0 → 1,0
$title = N("Make it yours!");
Property changes:
Added: svn:executable
+*
\ No newline at end of property
/iso/ressources/install_slideshow/02_IM_mageia.png
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Property changes:
Added: svn:mime-type
+image/png
\ No newline at end of property
/iso/ressources/install_slideshow/alcasar.pl
0,0 → 1,0
$title = N("Alcasar");
Property changes:
Added: svn:executable
+*
\ No newline at end of property
/iso/ressources/install_slideshow/alcasar.png
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Property changes:
Added: svn:mime-type
+image/png
\ No newline at end of property
/iso/ressources/install_slideshow/list
0,0 → 1,2
02_IM_mageia.png
alcasar.png
/iso/scripts/build-image.log
0,0 → 1,0
could not install necessary packages
/iso/scripts/build-image.sh
0,0 → 1,243
#!/bin/bash
#
# Authors: Mageia Team
# Update for ALCASAR : Hamza ESSAYEGH (Querdos) - Rexy - Laurent Roux - Aurelien Dubois
##
# Usage: $0 ARGS
# --iso-file, -i Mageia-xxx-xxxxxx-xxx.iso (mandatory)
# --lang, -l Language for installation (optional)
# Supported languages: fr;en
#
#######################
###### Variables ######
###############################################################################""
 
CURRENT_DIR="$(readlink -f "$(dirname $0)")"
LOG_FILE="$CURRENT_DIR/build-image.log"
 
# Mageia
MAGEIA_VERSION=`cat /etc/release|cut -c 16`
ARCH=`cat /etc/release|cut -c 33-38`
MAGEIA_NEW_DIR=/tmp/mageia_new
MAGEIA_OFFICIAL_DIR=/tmp/mageia_official
# ISO file
ISO_DIR="/var/iso"
ISO_IN="$ISO_DIR/Mageia-$MAGEIA_VERSION-$ARCH-DVD.iso"
 
# Drake installer
INSTALLER_DIR="${MAGEIA_NEW_DIR}/${ARCH}/install/alcasar"
AUTO_INSTALL_CFG="/var/iso/auto_inst.cfg.pl"
ADVERT_DIR="${MAGEIA_NEW_DIR}/${ARCH}/install/extra/advertising"
 
# Alcasar
ALCASAR_TAR="$1"
ALCASAR_EXTRACTED_DIR=$(echo $ALCASAR_TAR | rev | cut -d '.' -f 3- | rev)
 
# Mirrors
ISO_SUPPORT="http://ftp.free.fr/mirrors/mageia.org/iso/$MAGEIA_VERSION/Mageia-$MAGEIA_VERSION-$ARCH-DVD/Mageia-$MAGEIA_VERSION-$ARCH-DVD.iso"
ISO_MD5="http://ftp.free.fr/mirrors/mageia.org/iso/$MAGEIA_VERSION/Mageia-$MAGEIA_VERSION-$ARCH-DVD/Mageia-$MAGEIA_VERSION-$ARCH-DVD.iso.md5"
 
# RPMs
RPM_DIR="/root/rpms"
BASE_RPM_LIST="acpi acpid alsa-utils aoss arp-scan basesystem bash-completion coreutils-doc cpupower curl dhcp-client dmraid dnf dnf-plugins-core dosfstools dracut drakx-net-text gpm grub2 grub2-mageia-theme harddrake hdparm hexedit info iwlwifi-agn-ucode kernel-desktop-latest kernel-firmware kernel-firmware-nonfree ldetect lftp lib64alsa-plugins lib64glib-networking-gnutls locales-en locales-fr lsof lvm2 mageia-theme-Default man-db mandi-ifw man-pages microcode microcode_ctl mtools ntfs-3g numlock os-prober p11-kit perl-Hal-Cdroms plymouth procmail python3 python3-dbus radeon-firmware ralink-firmware rtlwifi-firmware sharutils shorewall-ipv6 strace sysfsutils tmpwatch tree vim-minimal vnstat xdg-user-dirs-gtk"
 
#######################
###### Functions ######
################################################################################
# Print the given error message and exit 1
function errorExit()
{
tput bold
echo -e "ERROR : $1 \nAborting\n" >&2
echo "$1" > "$LOG_FILE"
tput sgr0
exit 1
}
#-------------------------------------------------------------------------------
# Print progress bar. $1 is a multiple of five
function printProgress()
{
local a
let "a = $1 / 5"
let "b = 25 - $a"
progressStr=$(printf "%${a}s")
progressStrBlanks=$(printf "%${b}s")
echo -en "Downloading...$1% [${progressStr// /#}${progressStrBlanks// / }]\r"
}
#-------------------------------------------------------------------------------
function printBold()
{
tput bold 2>/dev/null
echo $1
tput sgr0 2>/dev/null
}
#######################
###### Main ######
################################################################################
 
# Retrieve list of Alcasar dependencies
tar -xf /var/iso/$ALCASAR_TAR -C /tmp/ || errorExit "could not extract alcasar tar archive"
alcasarRpmList="$(grep -oP "(?<=PACKAGES=\").*?(?=\")" /tmp/$ALCASAR_EXTRACTED_DIR/scripts/alcasar-urpmi.sh)"
alcasarKernel="$(grep -oP "(?<=KERNEL=\").*?(?=\")" /tmp/$ALCASAR_EXTRACTED_DIR/scripts/alcasar-urpmi.sh)"
alcasarRpmList="$alcasarRpmList $alcasarKernel"
 
# Make clean rpm list
rpmList=$(echo $BASE_RPM_LIST $alcasarRpmList | sed "s/ /\n/g" | sort | uniq | sed "s/\n/ /g")
 
# Insert list into AUTO_INSTALL_CFG
formattedList=$(echo $rpmList | sed "s/[^ ]*/\'\0\'/g" | sed "s/ /,\n/g" | sed "/kernel-server/d")
cp "${AUTO_INSTALL_CFG}_template" "$AUTO_INSTALL_CFG" -f
insertLineNumber=$(grep -n "'default_packages' => " "$AUTO_INSTALL_CFG" | cut -d ':' -f1)
fileTop=$(head -n "+$insertLineNumber" "$AUTO_INSTALL_CFG")
fileBottom=$(tail -n "+$insertLineNumber" "$AUTO_INSTALL_CFG" | tail -n +2)
cat /dev/null > "$AUTO_INSTALL_CFG"
 
echo "$fileTop" > "$AUTO_INSTALL_CFG"
echo "$formattedList" >> "$AUTO_INSTALL_CFG"
echo "$fileBottom" >> "$AUTO_INSTALL_CFG"
 
# Installing tools to create the iso
printBold "Installing necessary tools"
dnf install 'dnf-command(download)' -y >/dev/null || errorExit "could not install necessary packages"
dnf config-manager --set-enabled mageia-x86_64-nonfree updates-x86_64-nonfree >/dev/null || errorExit "could not install necessary packages"
dnf install -y lftp wget cdrkit-genisoimage rpmtools >/dev/null || errorExit "could not install necessary packages"
 
 
# Directories initialization
#-------------------------------------------------------------------------------
[[ ! -d "$RPM_DIR" ]] && mkdir -p "$RPM_DIR"
 
# Beggining work on the ISO
#-------------------------------------------------------------------------------
# Checking the optional Mageia image. If not present or does not match the
# docker's version, download it
if [[ ! -f "$ISO_IN" ]]; then
printBold "Downloading the Mageia iso"
cd $ISO_DIR || errorExit "could not cd to $ISO_DIR"
echo Installing lftp
lftpget -c $ISO_SUPPORT || ( cd "$CURRENT_DIR" && errorExit "could not download Mageia iso" )
cd $CURRENT_DIR
fi
 
# Mounting the image
printBold "Mounting the image"
[[ ! -d "$MAGEIA_OFFICIAL_DIR" ]] && mkdir -p "$MAGEIA_OFFICIAL_DIR"
mount -o ro,loop "$ISO_IN" "$MAGEIA_OFFICIAL_DIR" || errorExit "failed mounting $ISO_IN"
 
# Checking ARCHitecture
[[ -d ${MAGEIA_OFFICIAL_DIR}/x86_64 ]] && ARCH=x86_64 || ARCH=i586
 
# Creating new directory that will contains the "cleared" iso image
[[ -d ${MAGEIA_NEW_DIR} ]] && rm -rf ${MAGEIA_NEW_DIR}
mkdir ${MAGEIA_NEW_DIR}
 
# Copying main files except core and nonfree directories
echo "Extracting base image..."
cd $MAGEIA_OFFICIAL_DIR && \
tar cf - --exclude=${ARCH}/media . | (cd $MAGEIA_NEW_DIR && tar xf - ) && cd "${CURRENT_DIR}"
 
# Creating new directories core and nonfree and dir for alcasar stufs
mkdir -p ${MAGEIA_NEW_DIR}/${ARCH}/{media/{core,nonfree},install/alcasar}
 
# Adding Alcasar image advert to the installer
cp -f /var/iso/install_slideshow/* "$ADVERT_DIR"
 
# Retrieving core and nonfree dirs (official)
coreDir=${MAGEIA_OFFICIAL_DIR}/${ARCH}/media/core
nonFreeDir=${MAGEIA_OFFICIAL_DIR}/${ARCH}/media/nonfree
 
# Retrieving core and nonfree dirs (new)
coreDirNew=${MAGEIA_NEW_DIR}/${ARCH}/media/core/
nonFreeDirNew=${MAGEIA_NEW_DIR}/${ARCH}/media/nonfree
plopFilePath=${MAGEIA_NEW_DIR}/${ARCH}/media/plop.idx
 
# Initializing counts
count=0
 
# Getting list of rpms needed by Mageia
#mageiaRpms="$(cat $MINIMAL_rpmList)"
 
# Copying the RPM in core and nonfree and clearing the plop.idx file
echo "Copying RPMS in ISO ..."
echo /dev/null > ${plopFilePath}
 
installedList="$(dnf list installed | cut -d ' ' -f1 | rev | cut -d . -f2- | rev | tail -n +2 | tr '\n' ' ')"
nbInstalled=$(echo $installedList | wc -w)
rpmList="$installedList $BASE_RPM_LIST $alcasarRpmList"
total=`echo $rpmList | wc -w`
 
for rpm in ${rpmList}; do
let percent="${count} * 100 / ${total}"
if [[ $count -lt $nbInstalled ]] ; then
dnf reinstall -y --downloadonly --downloaddir $coreDirNew $rpm 1> /dev/null || errorExit "could not download $rpm"
else
dnf install -y --downloadonly --downloaddir $coreDirNew $rpm 1> /dev/null || errorExit "could not download $rpm"
fi
printProgress ${percent}
 
count=$(expr ${count} + 1)
done
 
# Sorting the plop file alphabetically
cat ${plopFilePath} | sort > /tmp/tmpFileMageia && mv /tmp/tmpFileMageia ${plopFilePath}
 
# Informations
printBold "$count RPMs copied"
 
# Downloading rpms needed by Alcasar
cd "$CURRENT_DIR"
printBold "Downloading Alcasar dependencies"
tar -xf /var/iso/$ALCASAR_TAR
 
# Copying the Alcasar tar to be put into the ISO
cp /var/iso/$ALCASAR_TAR $INSTALLER_DIR/
 
# Add automatic install options
mkdir -p $INSTALLER_DIR || errorExit "could not create directory $INSTALLER_DIR"
cp $AUTO_INSTALL_CFG $INSTALLER_DIR || errorExit "could not copy $AUTO_INSTALL_CFG to $INSTALLER_DIR"
 
# Generating media info for core
echo "Generating media_info for core..."
genhdlist2 ${coreDirNew} --allow-empty-media --quiet
 
echo "Generating media_info for nonfree..."
genhdlist2 ${nonFreeDirNew} --allow-empty-media --quiet
 
# Puting pubkeys in media_info
cp ${coreDir}/media_info/pubkey ${coreDirNew}/media_info/
cp ${nonFreeDir}/media_info/pubkey ${nonFreeDirNew}/media_info/
 
# Retrieving media.cfg & compssUsers.pl depending on the arch
mkdir ${MAGEIA_NEW_DIR}/${ARCH}/media/media_info
cp ${MAGEIA_OFFICIAL_DIR}/${ARCH}/media/media_info/compssUsers.pl ${MAGEIA_NEW_DIR}/${ARCH}/media/media_info/compssUsers.pl
cp ${MAGEIA_OFFICIAL_DIR}/${ARCH}/media/media_info/media.cfg ${MAGEIA_NEW_DIR}/${ARCH}/media/media_info/media.cfg
 
# Specify install configuration
sed -i -e 's*rdz*rdz kickstart=/tmp/media/x86_64/install/alcasar/auto_inst.cfg.pl*g' ${MAGEIA_NEW_DIR}/isolinux/isolinux.cfg
 
# Generating distr
echo "Generating mirror tree..."
gendistrib -s ${MAGEIA_NEW_DIR}/${ARCH}
 
# Creating the new iso file
echo "Creating the isofile..."
alcasarVersion=$(echo $ALCASAR_TAR | cut -d '-' -f2 | rev | cut -d '.' -f 3- | rev )
newIsoName=Mageia-$MAGEIA_VERSION-${ARCH}-Alcasar${alcasarVersion}.iso
cd ${MAGEIA_NEW_DIR} && genisoimage -quiet -o ${CURRENT_DIR}/${newIsoName} \
-b isolinux/isolinux.bin \
-c boot.catalog \
-no-emul-boot -boot-load-size 4 \
-boot-info-table -J -R -V "Mageia-$MAGEIA_VERSION Alcasar ${ARCH}" .
 
# Unmounting
echo "Umounting..."
umount ${MAGEIA_OFFICIAL_DIR} && rmdir ${MAGEIA_OFFICIAL_DIR}
 
# Removing temporary dir
rm -rf ${MAGEIA_NEW_DIR}
 
mv ${CURRENT_DIR}/${newIsoName} /var/iso/
 
# Finished
rm -f "$AUTO_INSTALL_CFG"
echo "Done."
Property changes:
Added: svn:eol-style
+native
\ No newline at end of property
Added: svn:executable
+*
\ No newline at end of property