Subversion Repositories ALCASAR

Rev

Rev 2878 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log

Rev 2878 Rev 2921
1
#!/bin/bash
1
#!/bin/bash
2
#
2
#
3
# Authors: Mageia Team
3
# Authors: Mageia Team
4
# Update for ALCASAR : Hamza ESSAYEGH (Querdos) - Rexy - Laurent Roux - Aurelien Dubois
4
# Update for ALCASAR : Hamza ESSAYEGH (Querdos) - Rexy - Laurent Roux - Aurelien Dubois - Pierre Rivault
5
##
5
##
6
# Usage: $0 ARGS
6
# Usage: $0 ARGS
7
#     --iso-file, -i      Mageia-xxx-xxxxxx-xxx.iso (mandatory)
7
#     --iso-file, -i      Mageia-xxx-xxxxxx-xxx.iso (mandatory)
8
#     --lang, -l          Language for installation (optional)
8
#     --lang, -l          Language for installation (optional)
9
#                         Supported languages: fr;en
9
#                         Supported languages: fr;en
10
#
10
#
11
#######################
11
#######################
12
###### Variables ######
12
###### Variables ######
13
################################################################################
13
################################################################################
14
 
14
 
15
CURRENT_DIR="$(readlink -f "$(dirname $0)")"
15
CURRENT_DIR="$(readlink -f "$(dirname $0)")"
16
LOG_FILE="$CURRENT_DIR/build-image.log"
16
LOG_FILE="$CURRENT_DIR/build-image.log"
17
 
17
 
18
# Mageia
18
# Mageia
19
MAGEIA_VERSION=`cat /etc/release|cut -d" " -f3`
19
MAGEIA_VERSION=`cat /etc/release|cut -d" " -f3`
20
ARCH=`cat /etc/release|cut -d" " -f6`
20
ARCH=`cat /etc/release|cut -d" " -f6`
21
MAGEIA_NEW_DIR=/tmp/mageia_new
21
MAGEIA_NEW_DIR=/tmp/mageia_new
22
MAGEIA_OFFICIAL_DIR=/tmp/mageia_official
22
MAGEIA_OFFICIAL_DIR=/tmp/mageia_official
-
 
23
MAGEIA_OFFICIAL_DIR_EFI=/tmp/mageia_official_efi
23
# ISO file
24
# ISO file
24
ISO_DIR="/var/iso"
25
ISO_DIR="/var/iso"
25
ISO_IN="$ISO_DIR/Mageia-$MAGEIA_VERSION-$ARCH.iso"
26
ISO_IN="$ISO_DIR/Mageia-$MAGEIA_VERSION-$ARCH.iso"
26
 
27
 
27
# Drake installer
28
# Drake installer
28
INSTALLER_DIR="${MAGEIA_NEW_DIR}/${ARCH}/install/alcasar"
29
INSTALLER_DIR="${MAGEIA_NEW_DIR}/${ARCH}/install/alcasar"
29
EFI_GRUB_CFG="${MAGEIA_NEW_DIR}/boot/grub2/grub.cfg"
30
EFI_GRUB_CFG="${MAGEIA_NEW_DIR}/boot/grub2/grub.cfg"
30
AUTO_INSTALL_CFG="/var/iso/auto_inst.cfg.pl"
31
AUTO_INSTALL_CFG="/var/iso/auto_inst.cfg.pl"
31
ADVERT_DIR="${MAGEIA_NEW_DIR}/${ARCH}/install/extra/advertising"
32
ADVERT_DIR="${MAGEIA_NEW_DIR}/${ARCH}/install/extra/advertising"
32
 
33
 
33
# Alcasar
34
# Alcasar
34
ALCASAR_TAR="$1"
35
ALCASAR_TAR="$1"
35
ALCASAR_EXTRACTED_DIR=$(echo $ALCASAR_TAR | rev | cut -d '.' -f 3- | rev)
36
ALCASAR_EXTRACTED_DIR=$(echo $ALCASAR_TAR | rev | cut -d '.' -f 3- | rev)
36
 
37
 
37
# Mirrors
38
# Mirrors
38
ISO_SUPPORT="http://ftp.free.fr/mirrors/mageia.org/iso/$MAGEIA_VERSION/Mageia-$MAGEIA_VERSION-$ARCH/Mageia-$MAGEIA_VERSION-$ARCH.iso"
39
ISO_SUPPORT="http://ftp.free.fr/mirrors/mageia.org/iso/$MAGEIA_VERSION/Mageia-$MAGEIA_VERSION-$ARCH/Mageia-$MAGEIA_VERSION-$ARCH.iso"
39
ISO_MD5="http://ftp.free.fr/mirrors/mageia.org/iso/$MAGEIA_VERSION/Mageia-$MAGEIA_VERSION-$ARCH/Mageia-$MAGEIA_VERSION-$ARCH.iso.md5"
40
ISO_MD5="http://ftp.free.fr/mirrors/mageia.org/iso/$MAGEIA_VERSION/Mageia-$MAGEIA_VERSION-$ARCH/Mageia-$MAGEIA_VERSION-$ARCH.iso.md5"
40
 
41
 
41
# RPMs
42
# RPMs
42
RPM_DIR="/root/rpms"
43
RPM_DIR="/root/rpms"
43
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-efi grub2-mageia-theme harddrake hdparm hexedit info iwlwifi-agn-ucode kernel-server-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 sudo socat"
44
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-efi grub2-mageia-theme harddrake hdparm hexedit info iwlwifi-agn-ucode kernel-server-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 sudo socat"
44
 
45
 
45
#######################
46
#######################
46
###### Functions ######
47
###### Functions ######
47
################################################################################
48
################################################################################
48
# Print the given error message and exit 1
49
# Print the given error message and exit 1
49
function errorExit()
50
function errorExit()
50
{
51
{
51
    tput bold
52
    tput bold
52
    echo -e "ERROR : $1 \nAborting\n" >&2
53
    echo -e "ERROR : $1 \nAborting\n" >&2
53
    echo "$1" > "$LOG_FILE"
54
    echo "$1" > "$LOG_FILE"
54
    tput sgr0
55
    tput sgr0
55
    exit 1
56
    exit 1
56
}
57
}
57
#-------------------------------------------------------------------------------
58
#-------------------------------------------------------------------------------
58
# Print progress bar. $1 is a multiple of five
59
# Print progress bar. $1 is a multiple of five
59
function printProgress()
60
function printProgress()
60
{
61
{
61
    local a
62
    local a
62
    let "a = $1 / 5"
63
    let "a = $1 / 5"
63
    let "b = 25 - $a"
64
    let "b = 25 - $a"
64
    progressStr=$(printf "%${a}s")
65
    progressStr=$(printf "%${a}s")
65
    progressStrBlanks=$(printf "%${b}s")
66
    progressStrBlanks=$(printf "%${b}s")
66
    echo -en "Downloading...$1% [${progressStr// /#}${progressStrBlanks// / }]\r"
67
    echo -en "Downloading...$1% [${progressStr// /#}${progressStrBlanks// / }]\r"
67
}
68
}
68
#-------------------------------------------------------------------------------
69
#-------------------------------------------------------------------------------
69
function printBold()
70
function printBold()
70
{
71
{
71
    tput bold 2>/dev/null
72
    tput bold 2>/dev/null
72
    echo $1
73
    echo $1
73
    tput sgr0 2>/dev/null
74
    tput sgr0 2>/dev/null
74
}
75
}
75
#######################
76
#######################
76
######    Main    ######
77
######    Main    ######
77
################################################################################
78
################################################################################
78
 
79
 
79
# Retrieve list of Alcasar dependencies
80
# Retrieve list of Alcasar dependencies
80
tar -xf /var/iso/$ALCASAR_TAR -C /tmp/ || errorExit "could not extract alcasar tar archive"
81
tar -xf /var/iso/$ALCASAR_TAR -C /tmp/ || errorExit "could not extract alcasar tar archive"
81
alcasarRpmList="$(grep -oP "(?<=PACKAGES=\").*?(?=\")" /tmp/$ALCASAR_EXTRACTED_DIR/scripts/alcasar-urpmi.sh)"
82
alcasarRpmList="$(grep -oP "(?<=PACKAGES=\").*?(?=\")" /tmp/$ALCASAR_EXTRACTED_DIR/scripts/alcasar-urpmi.sh)"
82
alcasarKernel="$(grep -oP "(?<=KERNEL=\").*?(?=\")" /tmp/$ALCASAR_EXTRACTED_DIR/scripts/alcasar-urpmi.sh)"
83
alcasarKernel="$(grep -oP "(?<=KERNEL=\").*?(?=\")" /tmp/$ALCASAR_EXTRACTED_DIR/scripts/alcasar-urpmi.sh)"
83
alcasarRpmList="$alcasarRpmList $alcasarKernel"
84
alcasarRpmList="$alcasarRpmList $alcasarKernel"
84
 
85
 
85
# Make clean rpm list
86
# Make clean rpm list
86
rpmList=$(echo $BASE_RPM_LIST $alcasarRpmList | sed "s/ /\n/g" | sort | uniq | sed "s/\n/ /g")
87
rpmList=$(echo $BASE_RPM_LIST $alcasarRpmList | sed "s/ /\n/g" | sort | uniq | sed "s/\n/ /g")
87
 
88
 
88
# Insert list into AUTO_INSTALL_CFG
89
# Insert list into AUTO_INSTALL_CFG
89
formattedList=$(echo $rpmList | sed "s/[^ ]*/\'\0\'/g" | sed "s/ /,\n/g" | sed "/kernel-server/d")
90
formattedList=$(echo $rpmList | sed "s/[^ ]*/\'\0\'/g" | sed "s/ /,\n/g" | sed "/kernel-server/d")
90
cp "${AUTO_INSTALL_CFG}_template" "$AUTO_INSTALL_CFG" -f
91
cp "${AUTO_INSTALL_CFG}_template" "$AUTO_INSTALL_CFG" -f
91
insertLineNumber=$(grep -n "'default_packages' => " "$AUTO_INSTALL_CFG" | cut -d ':' -f1)
92
insertLineNumber=$(grep -n "'default_packages' => " "$AUTO_INSTALL_CFG" | cut -d ':' -f1)
92
fileTop=$(head -n "+$insertLineNumber" "$AUTO_INSTALL_CFG")
93
fileTop=$(head -n "+$insertLineNumber" "$AUTO_INSTALL_CFG")
93
fileBottom=$(tail -n "+$insertLineNumber" "$AUTO_INSTALL_CFG" | tail -n +2)
94
fileBottom=$(tail -n "+$insertLineNumber" "$AUTO_INSTALL_CFG" | tail -n +2)
94
cat /dev/null > "$AUTO_INSTALL_CFG"
95
cat /dev/null > "$AUTO_INSTALL_CFG"
95
 
96
 
96
echo "$fileTop" > "$AUTO_INSTALL_CFG"
97
echo "$fileTop" > "$AUTO_INSTALL_CFG"
97
echo "$formattedList" >> "$AUTO_INSTALL_CFG"
98
echo "$formattedList" >> "$AUTO_INSTALL_CFG"
98
echo "$fileBottom" >> "$AUTO_INSTALL_CFG"
99
echo "$fileBottom" >> "$AUTO_INSTALL_CFG"
99
 
100
 
100
# Installing tools to create the iso
101
# Installing tools to create the iso
101
printBold "Installing necessary tools"
102
printBold "Installing necessary tools"
102
dnf install 'dnf-command(download)' -y || errorExit "could not install necessary packages"
103
dnf install 'dnf-command(download)' -y || errorExit "could not install necessary packages"
103
#dnf install 'dnf-command(config-manager)' -y || errorExit "could not install necessary packages"
104
#dnf install 'dnf-command(config-manager)' -y || errorExit "could not install necessary packages"
104
dnf config-manager --set-enabled mageia-x86_64-nonfree updates-x86_64-nonfree  || errorExit "could not install necessary packages"
105
dnf config-manager --set-enabled mageia-x86_64-nonfree updates-x86_64-nonfree  || errorExit "could not install necessary packages"
105
dnf install -y lftp wget cdrkit-genisoimage xorriso rpmtools syslinux || errorExit "could not install necessary packages"
106
dnf install -y lftp wget cdrkit-genisoimage xorriso rpmtools syslinux || errorExit "could not install necessary packages"
106
 
107
 
107
 
108
 
108
# Directories initialization
109
# Directories initialization
109
#-------------------------------------------------------------------------------
110
#-------------------------------------------------------------------------------
110
[[ ! -d "$RPM_DIR" ]] && mkdir -p "$RPM_DIR"
111
[[ ! -d "$RPM_DIR" ]] && mkdir -p "$RPM_DIR"
111
 
112
 
112
# Beggining work on the ISO
113
# Beggining work on the ISO
113
#-------------------------------------------------------------------------------
114
#-------------------------------------------------------------------------------
114
# Checking the optional Mageia image. If not present or does not match the
115
# Checking the optional Mageia image. If not present or does not match the
115
# docker's version, download it
116
# docker's version, download it
116
if [[ ! -f "$ISO_IN" ]]; then
117
if [[ ! -f "$ISO_IN" ]]; then
117
    printBold "Downloading the Mageia iso"
118
    printBold "Downloading the Mageia iso"
118
    cd $ISO_DIR || errorExit "could not cd to $ISO_DIR"
119
    cd $ISO_DIR || errorExit "could not cd to $ISO_DIR"
119
    echo Installing lftp
120
    echo Installing lftp
120
    lftpget -c $ISO_SUPPORT || ( cd "$CURRENT_DIR" && errorExit "could not download Mageia iso" )
121
    lftpget -c $ISO_SUPPORT || ( cd "$CURRENT_DIR" && errorExit "could not download Mageia iso" )
121
    cd $CURRENT_DIR
122
    cd $CURRENT_DIR
122
fi
123
fi
123
 
124
 
124
# Mounting the image
125
# Mounting the image
125
printBold "Mounting the image"
126
printBold "Mounting the image"
126
[[ ! -d "$MAGEIA_OFFICIAL_DIR" ]] && mkdir -p "$MAGEIA_OFFICIAL_DIR"
127
[[ ! -d "$MAGEIA_OFFICIAL_DIR" ]] && mkdir -p "$MAGEIA_OFFICIAL_DIR"
127
mount -o ro,loop "$ISO_IN" "$MAGEIA_OFFICIAL_DIR" || (sleep 5 ; mount -o ro,loop "$ISO_IN" "$MAGEIA_OFFICIAL_DIR" || errorExit "failed mounting $ISO_IN. Running the script again might solve the issue.")
128
mount -o ro,loop "$ISO_IN" "$MAGEIA_OFFICIAL_DIR" || (sleep 5 ; mount -o ro,loop "$ISO_IN" "$MAGEIA_OFFICIAL_DIR" || errorExit "failed mounting $ISO_IN. Running the script again might solve the issue.")
128
 
129
 
129
# Checking ARCHitecture
130
# Checking ARCHitecture
130
[[ -d ${MAGEIA_OFFICIAL_DIR}/x86_64 ]] && ARCH=x86_64 || ARCH=i586
131
[[ -d ${MAGEIA_OFFICIAL_DIR}/x86_64 ]] && ARCH=x86_64 || ARCH=i586
131
 
132
 
132
# Creating new directory that will contains the "cleared" iso image
133
# Creating new directory that will contains the "cleared" iso image
133
[[ -d ${MAGEIA_NEW_DIR} ]] && rm -rf ${MAGEIA_NEW_DIR}
134
[[ -d ${MAGEIA_NEW_DIR} ]] && rm -rf ${MAGEIA_NEW_DIR}
134
mkdir ${MAGEIA_NEW_DIR}
135
mkdir ${MAGEIA_NEW_DIR}
135
 
136
 
136
# Copying main files except core and nonfree directories
137
# Copying main files except core and nonfree directories
137
echo "Extracting base image..."
138
echo "Extracting base image..."
138
cd $MAGEIA_OFFICIAL_DIR && \
139
cd $MAGEIA_OFFICIAL_DIR && \
139
    tar cf - --exclude=${ARCH}/media . | (cd $MAGEIA_NEW_DIR && tar xf - ) && cd "${CURRENT_DIR}"
140
    tar cf - --exclude=${ARCH}/media . | (cd $MAGEIA_NEW_DIR && tar xf - ) && cd "${CURRENT_DIR}"
140
 
141
 
141
# Creating new directories core and nonfree and dir for alcasar stufs
142
# Creating new directories core and nonfree and dir for alcasar stufs
142
mkdir -p ${MAGEIA_NEW_DIR}/${ARCH}/{media/{core,nonfree},install/alcasar}
143
mkdir -p ${MAGEIA_NEW_DIR}/${ARCH}/{media/{core,nonfree},install/alcasar}
143
 
144
 
144
# Adding Alcasar image advert to the installer
145
# Adding Alcasar image advert to the installer
145
cp -f /var/iso/install_slideshow/* "$ADVERT_DIR"
146
cp -f /var/iso/install_slideshow/* "$ADVERT_DIR"
146
 
147
 
147
# Retrieving core and nonfree dirs (official)
148
# Retrieving core and nonfree dirs (official)
148
coreDir=${MAGEIA_OFFICIAL_DIR}/${ARCH}/media/core
149
coreDir=${MAGEIA_OFFICIAL_DIR}/${ARCH}/media/core
149
nonFreeDir=${MAGEIA_OFFICIAL_DIR}/${ARCH}/media/nonfree
150
nonFreeDir=${MAGEIA_OFFICIAL_DIR}/${ARCH}/media/nonfree
150
 
151
 
151
# Retrieving core and nonfree dirs (new)
152
# Retrieving core and nonfree dirs (new)
152
coreDirNew=${MAGEIA_NEW_DIR}/${ARCH}/media/core/
153
coreDirNew=${MAGEIA_NEW_DIR}/${ARCH}/media/core/
153
nonFreeDirNew=${MAGEIA_NEW_DIR}/${ARCH}/media/nonfree
154
nonFreeDirNew=${MAGEIA_NEW_DIR}/${ARCH}/media/nonfree
154
plopFilePath=${MAGEIA_NEW_DIR}/${ARCH}/media/plop.idx
155
plopFilePath=${MAGEIA_NEW_DIR}/${ARCH}/media/plop.idx
155
 
156
 
156
# Initializing counts
157
# Initializing counts
157
count=0
158
count=0
158
 
159
 
159
# Getting list of rpms needed by Mageia
160
# Getting list of rpms needed by Mageia
160
#mageiaRpms="$(cat $MINIMAL_rpmList)"
161
#mageiaRpms="$(cat $MINIMAL_rpmList)"
161
 
162
 
162
# Copying the RPM in core and nonfree and clearing the plop.idx file
163
# Copying the RPM in core and nonfree and clearing the plop.idx file
163
echo "Copying RPMS in ISO ..."
164
echo "Copying RPMS in ISO ..."
164
echo /dev/null > ${plopFilePath}
165
echo /dev/null > ${plopFilePath}
165
 
166
 
166
dnf upgrade -y
167
dnf upgrade -y
167
 
168
 
168
installedList="$(dnf list installed | cut -d ' ' -f1 | rev | cut -d . -f2- | rev | tail -n +2 | tr '\n' ' ')"
169
installedList="$(dnf list installed | cut -d ' ' -f1 | rev | cut -d . -f2- | rev | tail -n +2 | tr '\n' ' ')"
169
nbInstalled=$(echo $installedList | wc -w)
170
nbInstalled=$(echo $installedList | wc -w)
170
rpmList="$installedList $BASE_RPM_LIST $alcasarRpmList"
171
rpmList="$installedList $BASE_RPM_LIST $alcasarRpmList"
171
total=`echo $rpmList | wc -w`
172
total=`echo $rpmList | wc -w`
172
 
173
 
173
for rpm in ${rpmList}; do
174
for rpm in ${rpmList}; do
174
	let percent="${count} * 100 / ${total}"
175
	let percent="${count} * 100 / ${total}"
175
    if [[ $count -lt $nbInstalled ]] ; then
176
    if [[ $count -lt $nbInstalled ]] ; then
176
        dnf reinstall -y --downloadonly --downloaddir $coreDirNew $rpm 1> /dev/null || errorExit "could not download $rpm"
177
        dnf reinstall -y --downloadonly --downloaddir $coreDirNew $rpm 1> /dev/null || errorExit "could not download $rpm"
177
    else
178
    else
178
        dnf install -y --downloadonly --downloaddir $coreDirNew $rpm 1> /dev/null || errorExit "could not download $rpm"
179
        dnf install -y --downloadonly --downloaddir $coreDirNew $rpm 1> /dev/null || errorExit "could not download $rpm"
179
    fi
180
    fi
180
    printProgress ${percent}
181
    printProgress ${percent}
181
 
182
 
182
	count=$(expr ${count} + 1)
183
	count=$(expr ${count} + 1)
183
done
184
done
184
 
185
 
185
# Sorting the plop file alphabetically
186
# Sorting the plop file alphabetically
186
cat ${plopFilePath} | sort > /tmp/tmpFileMageia && mv /tmp/tmpFileMageia ${plopFilePath}
187
cat ${plopFilePath} | sort > /tmp/tmpFileMageia && mv /tmp/tmpFileMageia ${plopFilePath}
187
 
188
 
188
# Informations
189
# Informations
189
printBold "$count RPMs copied"
190
printBold "$count RPMs copied"
190
 
191
 
191
# Downloading rpms needed by Alcasar
192
# Downloading rpms needed by Alcasar
192
cd "$CURRENT_DIR"
193
cd "$CURRENT_DIR"
193
printBold "Downloading Alcasar dependencies"
194
printBold "Downloading Alcasar dependencies"
194
tar -xf /var/iso/$ALCASAR_TAR
195
tar -xf /var/iso/$ALCASAR_TAR
195
 
196
 
196
# Copying the Alcasar tar to be put into the ISO
197
# Copying the Alcasar tar to be put into the ISO
197
cp /var/iso/$ALCASAR_TAR $INSTALLER_DIR/
198
cp /var/iso/$ALCASAR_TAR $INSTALLER_DIR/
198
 
199
 
199
# Add automatic install options
200
# Add automatic install options
200
mkdir -p $INSTALLER_DIR || errorExit "could not create directory $INSTALLER_DIR"
201
mkdir -p $INSTALLER_DIR || errorExit "could not create directory $INSTALLER_DIR"
201
cp $AUTO_INSTALL_CFG $INSTALLER_DIR || errorExit "could not copy $AUTO_INSTALL_CFG to $INSTALLER_DIR"
202
cp $AUTO_INSTALL_CFG $INSTALLER_DIR || errorExit "could not copy $AUTO_INSTALL_CFG to $INSTALLER_DIR"
202
 
203
 
203
# Generating media info for core
204
# Generating media info for core
204
echo "Generating media_info for core..."
205
echo "Generating media_info for core..."
205
genhdlist2 ${coreDirNew} --allow-empty-media --quiet
206
genhdlist2 ${coreDirNew} --allow-empty-media --quiet
206
 
207
 
207
echo "Generating media_info for nonfree..."
208
echo "Generating media_info for nonfree..."
208
genhdlist2 ${nonFreeDirNew} --allow-empty-media --quiet
209
genhdlist2 ${nonFreeDirNew} --allow-empty-media --quiet
209
 
210
 
210
# Puting pubkeys in media_info
211
# Puting pubkeys in media_info
211
cp ${coreDir}/media_info/pubkey ${coreDirNew}/media_info/
212
cp ${coreDir}/media_info/pubkey ${coreDirNew}/media_info/
212
cp ${nonFreeDir}/media_info/pubkey ${nonFreeDirNew}/media_info/
213
cp ${nonFreeDir}/media_info/pubkey ${nonFreeDirNew}/media_info/
213
 
214
 
214
# Retrieving media.cfg & compssUsers.pl depending on the arch
215
# Retrieving media.cfg & compssUsers.pl depending on the arch
215
mkdir ${MAGEIA_NEW_DIR}/${ARCH}/media/media_info
216
mkdir ${MAGEIA_NEW_DIR}/${ARCH}/media/media_info
216
cp ${MAGEIA_OFFICIAL_DIR}/${ARCH}/media/media_info/compssUsers.pl ${MAGEIA_NEW_DIR}/${ARCH}/media/media_info/compssUsers.pl
217
cp ${MAGEIA_OFFICIAL_DIR}/${ARCH}/media/media_info/compssUsers.pl ${MAGEIA_NEW_DIR}/${ARCH}/media/media_info/compssUsers.pl
217
cp ${MAGEIA_OFFICIAL_DIR}/${ARCH}/media/media_info/media.cfg ${MAGEIA_NEW_DIR}/${ARCH}/media/media_info/media.cfg
218
cp ${MAGEIA_OFFICIAL_DIR}/${ARCH}/media/media_info/media.cfg ${MAGEIA_NEW_DIR}/${ARCH}/media/media_info/media.cfg
218
 
219
 
219
# Specify install configuration
220
# Specify install configuration
220
#sed -i -e 's*rdz*rdz kickstart=/tmp/media/x86_64/install/alcasar/auto_inst.cfg.pl*g'  ${MAGEIA_NEW_DIR}/isolinux/isolinux.cfg
221
#sed -i -e 's*rdz*rdz kickstart=/tmp/media/x86_64/install/alcasar/auto_inst.cfg.pl*g'  ${MAGEIA_NEW_DIR}/isolinux/isolinux.cfg
221
sed -i -e 's*noiswmd*noiswmd kickstart=/tmp/media/x86_64/install/alcasar/auto_inst.cfg.pl*g'  $EFI_GRUB_CFG 
222
sed -i -e 's*noiswmd*noiswmd kickstart=/tmp/media/x86_64/install/alcasar/auto_inst.cfg.pl*g'  $EFI_GRUB_CFG 
222
 
223
 
223
# Generating distr
224
# Generating distr
224
echo "Generating mirror tree..."
225
echo "Generating mirror tree..."
225
gendistrib -s ${MAGEIA_NEW_DIR}/${ARCH}
226
gendistrib -s ${MAGEIA_NEW_DIR}/${ARCH}
226
 
227
 
227
# Creating the new iso file
228
# Creating the new iso file
228
echo "Creating the isofile..."
229
echo "Creating the isofile..."
229
alcasarVersion=$(echo $ALCASAR_TAR | cut -d '-' -f2 | rev | cut -d '.' -f 3- | rev )
230
alcasarVersion=$(echo $ALCASAR_TAR | cut -d '-' -f2 | rev | cut -d '.' -f 3- | rev )
230
newIsoName=Mageia-$MAGEIA_VERSION-${ARCH}-Alcasar${alcasarVersion}.iso
231
newIsoName=Mageia-$MAGEIA_VERSION-${ARCH}-Alcasar${alcasarVersion}.iso
-
 
232
 
-
 
233
# Generating the iso file
-
 
234
# Parameters for xorriso found using the following command on the original mageia iso
-
 
235
# xorriso -indev Mageia-7-x86_64.iso -report_el_torito as_mkisofs
231
#cd ${MAGEIA_NEW_DIR} && genisoimage -quiet -o ${CURRENT_DIR}/${newIsoName} \
236
cd ${MAGEIA_NEW_DIR} && xorriso -as mkisofs \
-
 
237
	-V 'Mageia-7.1-x86_64' \
-
 
238
	--grub2-mbr --interval:local_fs:0s-15s:zero_mbrpt:${ISO_IN} \
232
#    -b isolinux/isolinux.bin \
239
	-partition_cyl_align off \
233
#    -c boot.catalog \
240
	-partition_offset 0 \
234
#    -no-emul-boot -boot-load-size 4 \
241
	--mbr-force-bootable \
235
#    -boot-info-table -J -R -V "Mageia-$MAGEIA_VERSION Alcasar ${ARCH}" .
242
	-append_partition 2 0xef --interval:local_fs:8785156d-8793347d::${ISO_IN} \
236
 
-
 
237
cd ${MAGEIA_NEW_DIR} && xorriso -as mkisofs -quiet -o ${CURRENT_DIR}/${newIsoName} \
-
 
238
    -isohybrid-mbr /usr/lib/syslinux/isohdpfx.bin \
243
	-iso_mbr_part_type 0x00 \
239
    -isohybrid-gpt-basdat \
244
	-c '/boot.catalog' \
240
    -b /boot/grub2/eltorito.img \
245
	-b '/boot/grub2/eltorito.img' \
241
    -c boot.catalog \
246
	-no-emul-boot \
242
    -no-emul-boot -boot-load-size 4 \
247
	-boot-load-size 4 \
-
 
248
	-boot-info-table \
-
 
249
	--grub2-boot-info \
-
 
250
	-eltorito-alt-boot \
243
    -boot-info-table -J -R -V "Mageia-$MAGEIA_VERSION Alcasar ${ARCH}" .
251
	-e '--interval:appended_partition_2_start_2196289s_size_8192d:all::' \
-
 
252
	-no-emul-boot \
-
 
253
	-boot-load-size 8192 \
-
 
254
	-o ${CURRENT_DIR}/${newIsoName} .
244
 
255
 
245
 
256
 
246
# Unmounting
257
# Unmounting
247
echo "Umounting..."
258
echo "Umounting..."
248
umount ${MAGEIA_OFFICIAL_DIR} && rmdir ${MAGEIA_OFFICIAL_DIR}
259
umount ${MAGEIA_OFFICIAL_DIR} && rmdir ${MAGEIA_OFFICIAL_DIR}
249
 
260
 
250
# Removing temporary dir
261
# Removing temporary dir
251
rm -rf ${MAGEIA_NEW_DIR}
262
rm -rf ${MAGEIA_NEW_DIR}
252
 
263
 
253
mv ${CURRENT_DIR}/${newIsoName} /var/iso/
264
mv ${CURRENT_DIR}/${newIsoName} /var/iso/
254
 
265
 
255
# Finished
266
# Finished
256
rm -f "$AUTO_INSTALL_CFG"
267
rm -f "$AUTO_INSTALL_CFG"
257
echo "Done."
268
echo "Done."
258
 
269