summaryrefslogtreecommitdiffstats
path: root/tools/make_mdkinst_stage2
blob: 97b989e939002745a5203f08dc34b2b432aa3687 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
#!/bin/sh

[ $# != 2 ] && { 
    echo "usage: make_mdkinst_stage2 <live dir> <output image>" ; 
    echo "  example: misc/make_mdkinst_stage2 Mandrake/mdkinst Mandrake/base/mdkinst_stage2"
    exit
}

TMPDIR=${TMPDIR=/tmp}
STAGE2TMP=$TMPDIR/stage2_tmp
MKE2FS="/sbin/mke2fs -q -m 0 -F -s 1"
MNTPOINT=$TMPDIR/stage2_img
REP4PMS=/usr/bin/perl-install
DEST=$1
STAGE2=$2

testandset() { [ -x $1/packdrake ] && BUILD_ARCHIVE=$1/packdrake; }
testandset `pwd`/misc
testandset `pwd`/.
testandset /$DEST/../../misc
testandset `pwd`/$DEST/../../misc
[ -z "$BUILD_ARCHIVE" ] && { echo "can't find packdrake"; exit 1; }

if [ $EUID != "0" ]; then
    SUDO="sudo"
    PATH="/sbin:/usr/sbin:$PATH"
fi

$SUDO rm -rf $STAGE2TMP
install -d $STAGE2TMP
$SUDO cp -a $DEST/* $STAGE2TMP

#mkdir -p $MNTPOINT 2>/dev/null
#for i in $MNTPOINT $STAGE2; do $SUDO umount $i 2>/dev/null ; done
#dd if=/dev/zero of=$STAGE2 bs=1k count=24000
#$MKE2FS -N 1000 $STAGE2
#$SUDO mount -t ext2 $STAGE2 $MNTPOINT -o loop
# hack to reduce the STAGE2 image (do not edit without modifying in DrakX)
# be sure to keep the biggest server
rm -f $STAGE2TMP/usr/X11R6/bin/XF86_{VGA16,3DLabs,TGA,S3}
rm -f $STAGE2TMP/$REP4PMS/po/DrakX.pot
#for i in /usr/share/locale; do \
#    name=`basename $i` ; \
#    (cd $STAGE2TMP/$i ; find * | cpio -o 2>/dev/null | bzip2 > ../$name.cpio.bz2 ; cd .. ; rm -rf $name) \
#done
for i in /usr/share/locale; do
    name=`basename $i`
    (cd $STAGE2TMP/$i ; find * | $BUILD_ARCHIVE -b9s ../$name.cz2 4000000)
    rm -rf $STAGE2TMP/$i
done
for i in /usr/share/keymaps /usr/share/xmodmap $REP4PMS/po; do
    name=`basename $i`
    (cd $STAGE2TMP/$i ; ls * | $BUILD_ARCHIVE -b9s ../$name.cz2 400000)
    rm -rf $STAGE2TMP/$i
done


	
mkdir -p $MNTPOINT 2>/dev/null
for i in $MNTPOINT $STAGE2; do $SUDO umount $i 2>/dev/null ; done
dd if=/dev/zero of=$STAGE2 bs=1k count=$[ `du -s $STAGE2TMP | cut -f1` + 1024 ]
$MKE2FS -N 1000 $STAGE2
$SUDO mount -t ext2 $STAGE2 $MNTPOINT -o loop

$SUDO cp -a $STAGE2TMP/* $MNTPOINT
$SUDO rm -rf $STAGE2TMP

df $MNTPOINT
$SUDO umount $STAGE2
rmdir $MNTPOINT

echo gzipping $STAGE2

gzip -f -9 $STAGE2