summaryrefslogtreecommitdiffstats
path: root/tools/make_mdkinst_stage2
blob: 6aa0760b7e79dd2cbd2be416756e3530c35b655f (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
75
76
77
78
79
80
81
82
83
84
#!/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 `ls --sort=size $STAGE2TMP/lib/modules.cz-* | perl -ne 'print if $i++'`
rm -f $STAGE2TMP/usr/bin/{pv*,vg*,lv*} $STAGE2TMP/lib/liblvm*
rm -f $STAGE2TMP/usr/bin/{resize_reiserfs,fsck.jfs}
#- we can't simply remove those files, because when pango will start,
#- if it doesn't see them it will recompute the fonts.cache-1 :/
>$STAGE2TMP/usr/X11R6/lib/X11/fonts/12x13mdk.pcf.gz
>$STAGE2TMP/usr/X11R6/lib/X11/fonts/18x18mdk.pcf.gz
touch $STAGE2TMP/usr/X11R6/lib/X11/fonts/fonts.cache-1
rm -f $STAGE2TMP/usr/*/pango/*/modules/pango-{arabic,hangul,hebrew,indic,thai}-xft.so

rm -rf $STAGE2TMP{/usr/bin/brltty,/etc/brltty,/lib/brltty}
rm -rf $STAGE2TMP/usr/share/locale_special

(   # only keeping UTF-8
    cd $STAGE2TMP/usr/share/locale; 
    mv UTF-8 ..
    rm -rf *
    mv ../UTF-8 .
)
for i in /usr/share/keymaps /usr/share/xmodmap; do
    name=`basename $i`
    (cd $STAGE2TMP/$i ; ls * | $BUILD_ARCHIVE -b9s ../$name.cz2 400000)
    rm -rf $STAGE2TMP/$i
done

eval `find $STAGE2TMP | perl -MMDK::Common -lne '-l or $s += round_up(-s, 1024); $i++; END { print "size=",int($s/1024),";inodes=$i" }'`;
	
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=$[ $size + 1024 + 200 ]
$MKE2FS -N $[$inodes + 50] $STAGE2
$SUDO mount -t ext2 $STAGE2 $MNTPOINT -o loop

rmdir $MNTPOINT/lost+found
$SUDO cp -a $STAGE2TMP/* $MNTPOINT
$SUDO rm -rf $STAGE2TMP

df $MNTPOINT
$SUDO umount $STAGE2
rmdir $MNTPOINT

echo bzipping $STAGE2

bzip2 -v -f -9 $STAGE2