makedist.inc.sh 5.09 KB
# execute platform specific script
[ -e $TARGETDIR/platforms/$PLATFORM/pre.inc.sh ] && . $TARGETDIR/platforms/$PLATFORM/pre.inc.sh

[ "$PRODUCT_NAME" ] && \
   MEDIA_NAME=`PLATFORM=$PRODUCT_NAME media_name` ||
   MEDIA_NAME=`media_name`

#if [ "$FORCE" = "1" -o ! -e "$LOCALSTATEDIR/$MEDIA_NAME" ]; then

[ $MEDIA = "raw" ] && create_raw_filesystem $LOCALSTATEDIR/$MEDIA_NAME $MEDIA_SIZE 1024k $ROOTFS

#create_livecd

create_rpm_database
create_devices

install_rpms "filesystem gzip texinfo ldconfig bash libreadline glibc libncurses initscripts setup coreutils chkconfig libattr libstdc++6" "--nodeps --noorder --noscripts"

[ "$LANGUAGE" ] && {

   [ "$LANGUAGE" = "en" ] && KEYMAP=us || KEYMAP="$LANGUAGE"

   # configure localization
   cat > $MOUNTDIR/etc/vconsole.conf << _EOF
KEYMAP=$KEYMAP
FONT=lat9w-16
FONT_MAP=8859-1_to_uni
FONT_UNIMAP=
_EOF

   # legacy
   cat > $MOUNTDIR/etc/sysconfig/keyboard << _EOF
KEYMAP=$KEYMAP.map
XKB_LAYOUT=$KEYMAP
XKB_MODEL=pc105
XKB_OPTIONS=
_EOF

   [ "$COUNTRY" ] && {
      cat > $MOUNTDIR/etc/locale.conf << _EOF
LANG=${LANGUAGE}_${COUNTRY}.UTF-8
LC_COLLATE=C
_EOF
      # legacy
      cat > $MOUNTDIR/etc/sysconfig/i18n << _EOF
LANG=${LANGUAGE}_${COUNTRY}.UTF-8
_EOF
   }

}

# Workaround: avoid a circular dependency with bash
INSTALLED="texinfo"

#install_rpms_by_target \
#   "Installing kernel..." mtd-base \
#   "$NOARCHDIR/filesystem*"

#if [ "$BUILDARCH" != "$ARCH" ]; then
#   NOSCRIPTARG="--noscripts"
#fi

if [ "$BUILDARCH" != "$ARCH" ]; then
   pre_qemu
   QEMU_COPIED_FOR_INST=1
fi

install_rpms_by_target "Installing base packages for ${MAKEDIST_TARGET} target" ${MAKEDIST_TARGET}-base "--replacepkgs ${RPMEXTRAARGS} ${NOSCRIPTARG}"

pre_install_rpms

if [ ! "$KERNEL_IGNORE" ]; then
   for K in $KERNEL_EXTRAVER $KERNEL_MORE_EXTRAVER; do
      install_kernel ${K}${KERNEL_PLATFORM} "${KERNEL_ADDITIONAL}"
   done
fi

# set system hostname and domain
[[ "$TARGET_HOSTNAME" ]] || TARGET_HOSTNAME="$MAKEDIST_TARGET"
[[ "$TARGET_DOMAIN" ]] || TARGET_DOMAIN="localdomain"

sed -i "s|HOSTNAME=.*|HOSTNAME=$TARGET_HOSTNAME|" $MOUNTDIR/etc/sysconfig/network
sed -i "s|\(127\.0\.0\.1\W*\)\(.*\)|\1 $TARGET_HOSTNAME.$TARGET_DOMAIN $TARGET_HOSTNAME \2|" \
   $MOUNTDIR/etc/hosts

#install_rpms_by_target "Installing tools packages for ${MAKEDIST_TARGET} target" ${MAKEDIST_TARGET}-tools ""
install_rpms_by_target "Installing ${PLATFORM} platform packages" ${MAKEDIST_TARGET}-${PLATFORM} "${RPMEXTRAARGS}"

[ "$LANGUAGE" ] && install_rpms_by_target "Installing ${PLATFORM} platform localization packages for language $LANGUAGE" ${MAKEDIST_TARGET}-${PLATFORM}-${LANGUAGE} "${RPMEXTRAARGS}"
[ "$ARCH" ] && install_rpms_by_target "Installing ${PLATFORM} platform packages for arch $ARCH" ${MAKEDIST_TARGET}-${PLATFORM}-${ARCH} "${RPMEXTRAARGS}"

if [ ! "$KERNEL_IGNORE" ]; then
   for K in $KERNEL_EXTRAVER $KERNEL_MORE_EXTRAVER; do
      update_modules_dependencies ${KERNEL_VER}${K}
   done
fi

if [ "$APPLICATION_TARGET" ]; then
   for t in $APPLICATION_TARGET; do
      install_rpms_by_target "Installing $t application packages." "$t" "${RPMEXTRAARGS}"
   done
fi

if [ ${DEBUG:-0} -gt 0 ]; then
   install_rpms_by_target "Installing debugging packages." ${MAKEDIST_TARGET}-debug "${RPMEXTRAARGS}"
   cat > $MOUNTDIR/etc/sysconfig/network-scripts/ifcfg-eth0 << _EOF
DEVICE=eth0
BOOTPROTO=dhcp
ONBOOT=yes
#NM_CONTROLLED=no
_EOF
fi

#erase_rpm_database
clean_rpm_database

# delete unused localizations
#
echo "Deleting other languages l10n files..."
for d in /usr/share/locale /opt/kde/share/locale \
         /opt/kde/share/locale/l10n /opt/kde3/share/locale; do
   find ${MOUNTDIR}${d} -maxdepth 1 -mindepth 1 -type d \
      ! -name ${LANGUAGE}* ! -name en* ! -name C ! -name l10n -exec rm -rf {} \; 2>/dev/null
done

if [ "$U_BOOT" ]; then
echo "Copying u-boot Image for Kernel"
#mkimage -A ppc -O linux -T kernel -C gzip -a 0x8000 -e 0x8000 \
#              -n "$DISTRONAME 2.6" -d $MOUNTDIR/boot/vmlinuz-2.6.12 $DISTRONAME-$MAKEDIST_TARGET-uImage.bin
fi

# disable parport
#sed -i "/parport_pc/d" $MOUNTDIR/etc/modprobe.conf

# disable multithreaded init ?
if [ ${MULTITHREAD:-0} -gt 0 ]; then
   sed -i "s|multithread=1|multithread=0|" $MOUNTDIR/etc/sysconfig/rc
fi

# set rootdev on extlinux
[ -e $MOUNTDIR/boot/extlinux.conf ] && sed -i "s|\([^::alpha]root=\)[^ ]*|\1$ROOTDEV|" $MOUNTDIR/boot/extlinux.conf

# execute platform specific script
[ -e $TARGETDIR/platforms/$PLATFORM/post.inc.sh ] && . $TARGETDIR/platforms/$PLATFORM/post.inc.sh

post_install_rpms

# cleanup: prevent generating a cleanfs script crash due to a unionfs bug
rm -rf $MOUNTDIR/tmp/.ICE-unix
rm -rf $MOUNTDIR/tmp/kde-root

[ "$QEMU_COPIED_FOR_INST" ] && post_qemu

# copy static files for target
[ -e $TARGETDIR/root ] && 
   cp -a $TARGETDIR/root/* $MOUNTDIR/

# copy static files for specific platform
[ -e $TARGETDIR/platforms/$PLATFORM/root -a "`ls $TARGETDIR/platforms/$PLATFORM/root/* 2>/dev/null`" ] &&
   cp -a $TARGETDIR/platforms/$PLATFORM/root/* $MOUNTDIR/

# copy localized static files for specific platform
[ "$LANGUAGE" -a -e $TARGETDIR/platforms/$PLATFORM/root-$LANGUAGE ] &&
   cp -a $TARGETDIR/platforms/$PLATFORM/root-$LANGUAGE/* $MOUNTDIR/

produce_media