makedist: sync all changes to date
This commit is contained in:
parent
c15983073f
commit
114bd9c94d
@ -125,7 +125,7 @@ ALTREPNUM=`expr ${#REPOSITORY[*]} - 2`
|
||||
for c in `seq 0 $ALTREPNUM`; do
|
||||
echo "
|
||||
[makedist${c}]
|
||||
DESCRIPTION = makedsit repository ${c}
|
||||
DESCRIPTION = makedist repository ${c}
|
||||
REPOSITORY_DIR = ${REPOSITORY[$c]}" >> $LOCALSTATEDIR/distromatic/distromatic.conf
|
||||
done
|
||||
|
||||
|
@ -12,6 +12,45 @@ function prelink() {
|
||||
chroot $MOUNTDIR /sbin/ldconfig
|
||||
}
|
||||
|
||||
function i18n_add_all_languages() {
|
||||
# add localedata for all supported languages (requires glibc-i18ndata installed)
|
||||
echo -n "Generating locales archive for all supported languages..."
|
||||
cat $MOUNTDIR/usr/share/i18n/locales/SUPPORTED | sed "s|\\\||" | \
|
||||
while read line; do
|
||||
LOCALE=${line/\/*}
|
||||
LOCALEPREFIX=${LOCALE/.*}
|
||||
ENCODING=${line/*\/}
|
||||
[ "$LOCALE" != "$ENCODING" ] || continue
|
||||
chroot $MOUNTDIR localedef -i $LOCALEPREFIX -f $ENCODING $LOCALE
|
||||
echo -n "$line "
|
||||
done
|
||||
echo
|
||||
}
|
||||
|
||||
function i18n_add_languages_from_file() {
|
||||
# add localedata for extra requested languages from input file (requires glibc-i18ndata installed)
|
||||
echo -n "Generating locales archive for requested languages..."
|
||||
cat $TARGETDIR/platforms/$PLATFORM/languages | \
|
||||
while read REQUESTED_LANG; do
|
||||
lines=`grep -i "^${REQUESTED_LANG}[./@]" $MOUNTDIR/usr/share/i18n/locales/SUPPORTED`
|
||||
if [ ! "$lines" ]; then
|
||||
echo
|
||||
echo "Warning: requested language $REQUESTED_LANG not found in supported languages; skipping."
|
||||
else
|
||||
echo $lines | sed "s|\\\||g" | \
|
||||
for line in $lines; do
|
||||
LOCALE=${line/\/*}
|
||||
LOCALEPREFIX=${LOCALE/.*}
|
||||
ENCODING=${line/*\/}
|
||||
[ "$LOCALE" != "$ENCODING" ] || continue
|
||||
chroot $MOUNTDIR localedef -i $LOCALEPREFIX -f $ENCODING $LOCALE
|
||||
echo -n "$line "
|
||||
done
|
||||
fi
|
||||
done
|
||||
echo
|
||||
}
|
||||
|
||||
function create_rpm_database() {
|
||||
# RPM database initialization
|
||||
#
|
||||
@ -69,9 +108,22 @@ function clean_rpm_database() {
|
||||
|
||||
function erase_rpm_database() {
|
||||
echo "Erasing rpm database"
|
||||
[ "$RPM_OCCUPACY_STATS_FILE" ] || rpm_occupacy_stats
|
||||
[ "$MOUNTDIR" != "" -a "$MOUNTDIR" != "/" ] && rm -rf $MOUNTDIR/var/lib/rpm
|
||||
}
|
||||
|
||||
function rpm_occupacy_stats() {
|
||||
RPM_OCCUPACY_STATS_FILE=`mktemp`
|
||||
SIZE=0
|
||||
rpm -r $MOUNTDIR -qa --queryformat "%{SIZE} %{NAME}\n" | sort -k1 -n -r > $RPM_OCCUPACY_STATS_FILE
|
||||
while read line; do
|
||||
set -- $line
|
||||
SIZE=`expr $SIZE + $1`
|
||||
done < $RPM_OCCUPACY_STATS_FILE
|
||||
# echo "-------------------------" >> $RPM_OCCUPACY_STATS_FILE
|
||||
# echo "$SIZE \tTotal size" >> $RPM_OCCUPACY_STATS_FILE
|
||||
}
|
||||
|
||||
function set_rpm_dirs() {
|
||||
|
||||
for r in ${RPMDIR[*]}; do
|
||||
@ -80,7 +132,7 @@ function set_rpm_dirs() {
|
||||
|
||||
if [ "$arch_fallback" ]; then
|
||||
for r in ${RPMDIR[*]}; do
|
||||
RPM_DIRS="${r}${arch_fallback}/ $RPM_DIRS"
|
||||
RPM_DIRS="$RPM_DIRS ${r}${arch_fallback}/"
|
||||
done
|
||||
fi
|
||||
}
|
||||
@ -150,6 +202,7 @@ function get_rpm_version() {
|
||||
#find $NOARCHDIR -regex ".*/${1//+/\\+}-[^-]*-[^-]*" | sed "s|.*/${1//+/\\+}-\([^-]*\)-[^-]*|\1|"
|
||||
}
|
||||
|
||||
|
||||
# wget_grep()
|
||||
#
|
||||
# parameters:
|
||||
@ -182,8 +235,6 @@ function wget_grep() {
|
||||
# $1 : kernel extraver
|
||||
function install_kernel() {
|
||||
# installing kernel image, modules and utilities
|
||||
# note: it is safe and better to give --scripts and --nodeps
|
||||
# because kernel doesn't have dependencies itself
|
||||
KERNEL_BASENAME="kernel"
|
||||
|
||||
[ "$1" ] && {
|
||||
@ -193,14 +244,29 @@ function install_kernel() {
|
||||
done
|
||||
}
|
||||
|
||||
install_rpms_by_target "\
|
||||
if [ "$KERNEL_NOPREPARATION" != "1" ]; then
|
||||
install_rpms_by_target "\
|
||||
Installing and preparing dracut for kernel install..." \
|
||||
"dracut module-init-tools"
|
||||
|
||||
for f in /usr/sbin/dracut /usr/sbin/mkinitrd /sbin/depmod; do
|
||||
mv ${MOUNTDIR}${f} ${MOUNTDIR}${f}.preinst
|
||||
ln -s /bin/true ${MOUNTDIR}${f}
|
||||
done
|
||||
fi
|
||||
|
||||
MAKE_RESOLVE_ADD="KERNEL_EXTRAVER=$1" install_rpms_by_target "\
|
||||
Installing kernel image (${KERNEL_VER}$1), modules and utilities..." \
|
||||
"$KERNEL_TARGET"
|
||||
# \
|
||||
# "--noscripts --nodeps"
|
||||
MAKE_RESOLVE_ADD=
|
||||
|
||||
if [ "$KERNEL_NOPREPARATION" != "1" ]; then
|
||||
for f in /usr/sbin/dracut /usr/sbin/mkinitrd /sbin/depmod; do
|
||||
rm ${MOUNTDIR}${f}
|
||||
mv ${MOUNTDIR}${f}.preinst ${MOUNTDIR}${f}
|
||||
done
|
||||
fi
|
||||
|
||||
# create /sys directory
|
||||
mkdir -p $MOUNTDIR/sys
|
||||
}
|
||||
|
||||
# update_modules_dependencies()
|
||||
@ -310,6 +376,8 @@ mv \$MOUNTDIR/sbin/install-info.preinst \$MOUNTDIR/sbin/install-info
|
||||
" >> ${LOCALSTATEDIR}/${BUILDSCRIPT_NAME}
|
||||
fi
|
||||
|
||||
[ "$RPM_OCCUPACY_STATS_FILE" ] || rpm_occupacy_stats
|
||||
|
||||
}
|
||||
|
||||
# install_rpms()
|
||||
@ -333,6 +401,8 @@ LANG=${LANGUAGE}_${COUNTRY}.UTF-8 $RPM --ignorearch -r \$MOUNTDIR -hiv $rpmextra
|
||||
echo "$makedist_me: fatal error, aborting installation" >&2
|
||||
echo "$makedist_me: exit code was: $retcode" >&2
|
||||
echo "$makedist_me: command was: LANG=${LANGUAGE}_${COUNTRY}.UTF-8 $RPM --ignorearch -r $MOUNTDIR -hiv $rpmextraargs $2 $TOINSTALL_RPMS" >&2
|
||||
echo "$makedist_me: sleeping 600 seconds"
|
||||
sleep 600
|
||||
{ (exit 1); exit 1; }; }
|
||||
|
||||
INSTALLED="$INSTALLED $1"
|
||||
@ -357,7 +427,7 @@ function resolve_pkg_deps() {
|
||||
{ (exit 1); exit 1; }; }
|
||||
|
||||
cmd="make --no-print-directory ARCH=$arch -C $GLOBALDIR CHROOTCMD=\"$CHROOTCMD\" \
|
||||
LANGUAGE=$LANGUAGE INSTALLED=\"$1\" TARGET=$MAKEFILE_TARGET PLATFORM='$PLATFORM' -s $2"
|
||||
LANGUAGE=$LANGUAGE INSTALLED=\"$1\" TARGET=$MAKEFILE_TARGET PLATFORM='$PLATFORM' $MAKE_RESOLVE_ADD -s $2"
|
||||
[ "$VERBOSE" ] && {
|
||||
echo
|
||||
echo "Executing command: $cmd" >&2
|
||||
@ -736,7 +806,13 @@ function write_installed_packages_info() {
|
||||
|
||||
[ -e $OUTLISTFILE ] && rm -f $OUTLISTFILE
|
||||
echo "FILESIZE=\"$FILESIZE\"" > $OUTLISTFILE
|
||||
echo "INSTALLED=\"$INSTALLED\"" > $OUTLISTFILE
|
||||
echo "INSTALLED=\"$INSTALLED\"" >> $OUTLISTFILE
|
||||
[ "$RPM_OCCUPACY_STATS_FILE" -a -e "$RPM_OCCUPACY_STATS_FILE" ] && {
|
||||
echo "RPMOCCUPACY=\"" >> $OUTLISTFILE
|
||||
cat $RPM_OCCUPACY_STATS_FILE >> $OUTLISTFILE
|
||||
echo "\"" >> $OUTLISTFILE
|
||||
rm $RPM_OCCUPACY_STATS_FILE
|
||||
}
|
||||
|
||||
if [ "$INSTALLED" ]; then
|
||||
cmd="make --no-print-directory ARCH=$arch -C $GLOBALDIR SOURCESMODE=1 -s $INSTALLED"
|
||||
@ -844,9 +920,15 @@ function medium_name() {
|
||||
archive|ARCHIVE|archive_bz2|ARCHIVE_BZ2)
|
||||
MEDIUM_NAME=$MEDIUM_NAME.$arch.tar.bz2
|
||||
;;
|
||||
archive_xz|ARCHIVE_XZ)
|
||||
MEDIUM_NAME=$MEDIUM_NAME.$arch.tar.xz
|
||||
;;
|
||||
cpio|CPIO)
|
||||
MEDIUM_NAME=$MEDIUM_NAME.$arch.cpio.gz
|
||||
;;
|
||||
cpio_xz|CPIO_XZ)
|
||||
MEDIUM_NAME=$MEDIUM_NAME.$arch.cpio.xz
|
||||
;;
|
||||
squash*|SQUASH*)
|
||||
MEDIUM_NAME=$MEDIUM_NAME.$arch.sqsh
|
||||
;;
|
||||
@ -878,6 +960,7 @@ function medium_name() {
|
||||
echo $MEDIUM_NAME
|
||||
}
|
||||
|
||||
|
||||
# produce_media()
|
||||
#
|
||||
# $1: media name (default: detect using medium_name function)
|
||||
@ -888,22 +971,35 @@ function produce_media() {
|
||||
|
||||
[ -e $MOUNTDIR/proc/version ] && umount $MOUNTDIR/proc
|
||||
|
||||
TARGETSIZE=`du -sh $MOUNTDIR | sed "s|[[:space:]].*||"`
|
||||
echo "Uncompressed occupacy size is: ${TARGETSIZE}"
|
||||
|
||||
case $MEDIA in
|
||||
archive_gz|ARCHIVE_GZ)
|
||||
echo "Producing rootfs compressed archive $MEDIUM_FILENAME..."
|
||||
(cd $MOUNTDIR
|
||||
tar czf $LOCALSTATEDIR/$MEDIUM_FILENAME *)
|
||||
;;
|
||||
archive|ARCHIVE)
|
||||
archive|ARCHIVE|archive_bz2|ARCHIVE_BZ2)
|
||||
echo "Producing rootfs compressed archive $MEDIUM_FILENAME..."
|
||||
(cd $MOUNTDIR
|
||||
tar cjf $LOCALSTATEDIR/$MEDIUM_FILENAME *)
|
||||
;;
|
||||
archive_xz|ARCHIVE_XZ)
|
||||
echo "Producing rootfs compressed archive $MEDIUM_FILENAME..."
|
||||
(cd $MOUNTDIR
|
||||
tar cJf $LOCALSTATEDIR/$MEDIUM_FILENAME *)
|
||||
;;
|
||||
cpio|CPIO)
|
||||
echo "Producing rootfs compressed cpio image $MEDIUM_FILENAME..."
|
||||
(cd $MOUNTDIR
|
||||
find . -print | cpio -o -Hnewc | gzip -c > $LOCALSTATEDIR/$MEDIUM_FILENAME )
|
||||
;;
|
||||
cpio_xz|CPIO_XZ)
|
||||
echo "Producing rootfs compressed cpio image $MEDIUM_FILENAME..."
|
||||
(cd $MOUNTDIR
|
||||
find . -print | cpio -o -Hnewc | xz -c > $LOCALSTATEDIR/$MEDIUM_FILENAME )
|
||||
;;
|
||||
squash|SQUASH)
|
||||
echo "Producing squashfs (default) compressed filesystem image $MEDIUM_FILENAME..."
|
||||
mksquashfs $MOUNTDIR $LOCALSTATEDIR/$MEDIUM_FILENAME -noappend
|
||||
|
@ -134,17 +134,6 @@ CHROOTCMD="chroot $MOUNTDIR"
|
||||
# note: some non-SMP machines are unable to boot with a SMP kernel
|
||||
KERNEL_EXTRAVER=
|
||||
|
||||
# set BUILDARCH
|
||||
BUILDARCH=`uname -m`
|
||||
|
||||
case $BUILDARCH in
|
||||
i386|i486|i586|i686|athlon) BUILDARCH=i586 ;;
|
||||
arm*) BUILDARCH=arm ;;
|
||||
*) echo "Error: build architecture $BUILDARCH is unknown; aborting."
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
#
|
||||
# load some target specific settings
|
||||
. $TARGETDIR/settings.inc
|
||||
@ -213,11 +202,19 @@ if [ ! "$KERNEL_IGNORE" ]; then
|
||||
{ echo "$makedist_me: cannot get KERNEL_VER" >&2
|
||||
{ (exit 1); exit 1; }; }
|
||||
echo "Found Linux kernel version ${KERNEL_VER}${KERNEL_EXTRAVER}"
|
||||
KERNEL_MAJVER=`echo $KERNEL_VER | cut -d. -f1-3`
|
||||
if [ "${KERNEL_VER:0:1}" = "2" ]; then
|
||||
# kernel major release = 2
|
||||
KERNEL_MAJVER=`echo $KERNEL_VER | cut -d. -f1-3`
|
||||
else
|
||||
# kernel major release >= 3
|
||||
KERNEL_MAJVER=`echo $KERNEL_VER | cut -d. -f1-2`
|
||||
fi
|
||||
echo "
|
||||
KERNEL_PLATFORM=${KERNEL_PLATFORM}
|
||||
KERNEL_EXTRAVER=${KERNEL_EXTRAVER}" >> /var/makedist/.defs.inc
|
||||
|
||||
if [ "$KERNEL_MORE_EXTRAVER" ]; then
|
||||
echo "KERNEL_MORE_EXTRAVER=${KERNEL_MORE_EXTRAVER}" >> /var/makedist/.defs.inc
|
||||
fi
|
||||
else
|
||||
echo "Skipping kernel check"
|
||||
fi
|
||||
@ -324,6 +321,7 @@ mkdir -p $MOUNTDIR/dev
|
||||
mknod --mode=0600 initctl p
|
||||
mknod -m666 null c 1 3
|
||||
mknod -m600 console c 5 1
|
||||
mknod -m444 urandom c 1 9
|
||||
)
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user