Simplifying release.sh script.
As the build system can now generate a full root file system, there is no need to bootstrap the iso image by copying over files from the currently system. The SVN references have also been mostly taken out, as they are not anymore valid. Some cleanup have been done to try to improve the readability of the script.
This commit is contained in:
parent
b73a0e570b
commit
3ba3608c5f
1 changed files with 25 additions and 55 deletions
|
@ -8,16 +8,10 @@ version_pretty="`sh tell_config OS_RELEASE . OS_VERSION | tr -dc 0-9.`"
|
||||||
version="`echo $version_pretty | tr . _`"
|
version="`echo $version_pretty | tr . _`"
|
||||||
PACKAGEDIR=/usr/pkgsrc/packages/$version_pretty/`uname -m`
|
PACKAGEDIR=/usr/pkgsrc/packages/$version_pretty/`uname -m`
|
||||||
|
|
||||||
XBIN=usr/xbin
|
|
||||||
XLIB=xlib
|
|
||||||
SRC=src
|
SRC=src
|
||||||
REPO=git://git.minix3.org/minix
|
REPO=git://git.minix3.org/minix
|
||||||
GITBRANCH=master
|
GITBRANCH=master
|
||||||
|
|
||||||
LD_LIB="LD_LIBRARY_PATH=/lib:/usr/lib:/$XLIB"
|
|
||||||
BUILDPATH="PATH=/$XBIN:/usr/pkg/bin"
|
|
||||||
BUILDENV="$BUILDPATH $LD_LIB"
|
|
||||||
|
|
||||||
# List of packages included on installation media
|
# List of packages included on installation media
|
||||||
PACKAGELIST=packages.install
|
PACKAGELIST=packages.install
|
||||||
secs=`expr 32 '*' 64`
|
secs=`expr 32 '*' 64`
|
||||||
|
@ -52,9 +46,6 @@ fi
|
||||||
|
|
||||||
set -- $* $RELOPTS
|
set -- $* $RELOPTS
|
||||||
|
|
||||||
# SVN trunk repo
|
|
||||||
TRUNK=https://gforge.cs.vu.nl/svn/minix/trunk
|
|
||||||
|
|
||||||
export RELEASEDIR=/usr/r-staging
|
export RELEASEDIR=/usr/r-staging
|
||||||
RELEASEMNTDIR=/usr/r
|
RELEASEMNTDIR=/usr/r
|
||||||
RELEASEPACKAGE=${RELEASEDIR}/usr/install/packages
|
RELEASEPACKAGE=${RELEASEDIR}/usr/install/packages
|
||||||
|
@ -69,7 +60,6 @@ BS=4096
|
||||||
HDEMU=0
|
HDEMU=0
|
||||||
COPY=0
|
COPY=0
|
||||||
JAILMODE=0
|
JAILMODE=0
|
||||||
SVNREV=""
|
|
||||||
REVTAG=""
|
REVTAG=""
|
||||||
PACKAGES=1
|
PACKAGES=1
|
||||||
MINIMAL=0
|
MINIMAL=0
|
||||||
|
@ -87,11 +77,11 @@ fi
|
||||||
|
|
||||||
FILENAMEOUT=""
|
FILENAMEOUT=""
|
||||||
|
|
||||||
while getopts "b:j:ls:pmMchu?r:f:L:e:" c
|
while getopts "b:j:ls:pmMchu?f:L:e:" c
|
||||||
do
|
do
|
||||||
case "$c" in
|
case "$c" in
|
||||||
\?)
|
\?)
|
||||||
echo "Usage: $0 [-l] [-p] [-c] [-h] [-m] [-M] [-r <tag>] [-u] [-f <filename>] [-s <username>] -j<jaildir> [-L <packageurl>] [-e <extras-path>]" >&2
|
echo "Usage: $0 [-l] [-p] [-c] [-h] [-m] [-M] [-u] [-f <filename>] [-s <username>] -j<jaildir> [-L <packageurl>] [-e <extras-path>]" >&2
|
||||||
exit 1
|
exit 1
|
||||||
;;
|
;;
|
||||||
b)
|
b)
|
||||||
|
@ -103,15 +93,12 @@ do
|
||||||
HDEMU=1
|
HDEMU=1
|
||||||
;;
|
;;
|
||||||
c)
|
c)
|
||||||
echo " * Copying, not SVN"
|
echo " * Copying, not using GIT"
|
||||||
COPY=1
|
COPY=1
|
||||||
;;
|
;;
|
||||||
p)
|
p)
|
||||||
PACKAGES=0
|
PACKAGES=0
|
||||||
;;
|
;;
|
||||||
r)
|
|
||||||
SVNREV=-r$OPTARG
|
|
||||||
;;
|
|
||||||
j)
|
j)
|
||||||
RELEASEDIR=$OPTARG
|
RELEASEDIR=$OPTARG
|
||||||
JAILMODE=1
|
JAILMODE=1
|
||||||
|
@ -182,33 +169,11 @@ fi
|
||||||
rm -rf $RELEASEDIR $RELEASEMNTDIR $IMG $ROOTIMAGE $CDFILES image* || true
|
rm -rf $RELEASEDIR $RELEASEMNTDIR $IMG $ROOTIMAGE $CDFILES image* || true
|
||||||
mkdir -p $CDFILES || exit
|
mkdir -p $CDFILES || exit
|
||||||
mkdir -p $RELEASEDIR $RELEASEMNTDIR
|
mkdir -p $RELEASEDIR $RELEASEMNTDIR
|
||||||
mkdir -m 755 $RELEASEDIR/usr
|
|
||||||
mkdir -m 1777 $RELEASEDIR/tmp
|
|
||||||
|
|
||||||
mkdir -p $RELEASEDIR/tmp
|
|
||||||
mkdir -p $RELEASEDIR/usr/tmp
|
|
||||||
mkdir -p $RELEASEDIR/$XBIN
|
|
||||||
mkdir -p $RELEASEDIR/$XLIB
|
|
||||||
mkdir -p $RELEASEDIR/libexec
|
|
||||||
mkdir -p $RELEASEDIR/usr/bin
|
|
||||||
mkdir -p $RELEASEDIR/bin
|
|
||||||
mkdir -p $RELEASEPACKAGE
|
mkdir -p $RELEASEPACKAGE
|
||||||
|
|
||||||
echo " * Transfering bootstrap dirs to $RELEASEDIR"
|
##########################################################################
|
||||||
|
echo " * Bootstrapping filesystem in $RELEASEDIR"
|
||||||
# Actual binaries
|
##########################################################################
|
||||||
cp -p /bin/* /usr/bin/* /usr/sbin/* /sbin/* $RELEASEDIR/$XBIN
|
|
||||||
cp -rp /bin/cat /bin/sh /bin/echo /bin/rm /bin/date /bin/ls $RELEASEDIR/bin
|
|
||||||
cp -rp /usr/bin/make /usr/bin/yacc /usr/bin/lex /usr/bin/install /usr/bin/m4 \
|
|
||||||
/usr/bin/grep /usr/bin/egrep /usr/bin/awk /usr/bin/sed $RELEASEDIR/usr/bin
|
|
||||||
|
|
||||||
# For dynamically linked binaries: put interpreter there the
|
|
||||||
# system's current crop of shared libraries so they'll run;
|
|
||||||
# once they're rebuilt they can be thrown out in favour of the
|
|
||||||
# new ones like $XBIN
|
|
||||||
cp -p /libexec/ld.elf_so $RELEASEDIR/libexec/
|
|
||||||
cp -p /lib/*.so* /usr/lib/*.so* $RELEASEDIR/$XLIB/
|
|
||||||
|
|
||||||
CONFIGHEADER=$RELEASEDIR/usr/src/include/minix/sys_config.h
|
CONFIGHEADER=$RELEASEDIR/usr/src/include/minix/sys_config.h
|
||||||
|
|
||||||
copy_local_packages
|
copy_local_packages
|
||||||
|
@ -253,18 +218,8 @@ fi
|
||||||
if [ "$USB" -eq 0 ]
|
if [ "$USB" -eq 0 ]
|
||||||
then date >$RELEASEDIR/CD
|
then date >$RELEASEDIR/CD
|
||||||
fi
|
fi
|
||||||
echo " * Bootstrap /usr/share/mk files"
|
|
||||||
# Need /usr/share/mk in the new system to invoke make. Real ownerships
|
|
||||||
# and permissions will be set by its own src/share/mk/Makefile.
|
|
||||||
mkdir -p $RELEASEDIR/usr/share/mk
|
|
||||||
chmod 755 $RELEASEDIR/usr/share/mk
|
|
||||||
cp $RELEASEDIR/usr/src/share/mk/* $RELEASEDIR/usr/share/mk/
|
|
||||||
chown -R root $RELEASEDIR/usr/share/mk
|
|
||||||
rm -f $RELEASEDIR/usr/$SRC/releasetools/revision
|
|
||||||
mkdir -p $RELEASEDIR/etc
|
|
||||||
cp $RELEASEDIR/usr/src/etc/group $RELEASEDIR/etc
|
|
||||||
|
|
||||||
echo " * Make hierarchy"
|
rm -f $RELEASEDIR/usr/$SRC/releasetools/revision
|
||||||
|
|
||||||
for p in $PREINSTALLED_PACKAGES
|
for p in $PREINSTALLED_PACKAGES
|
||||||
do echo " * Pre-installing: $p from $PKG_ADD_URL"
|
do echo " * Pre-installing: $p from $PKG_ADD_URL"
|
||||||
|
@ -277,7 +232,10 @@ fi
|
||||||
|
|
||||||
echo " * Resetting timestamps"
|
echo " * Resetting timestamps"
|
||||||
find $RELEASEDIR | xargs touch
|
find $RELEASEDIR | xargs touch
|
||||||
|
|
||||||
|
##########################################################################
|
||||||
echo " * Build"
|
echo " * Build"
|
||||||
|
##########################################################################
|
||||||
|
|
||||||
cd $RELEASEDIR/usr/src
|
cd $RELEASEDIR/usr/src
|
||||||
make distribution DESTDIR=$RELEASEDIR CHECKFLIST=no
|
make distribution DESTDIR=$RELEASEDIR CHECKFLIST=no
|
||||||
|
@ -292,10 +250,11 @@ make cleandir
|
||||||
|
|
||||||
cd -
|
cd -
|
||||||
|
|
||||||
echo " * Chroot build done"
|
echo " * build done"
|
||||||
|
|
||||||
|
##########################################################################
|
||||||
echo " * Removing bootstrap files"
|
echo " * Removing bootstrap files"
|
||||||
rm -rf $RELEASEDIR/$XBIN
|
##########################################################################
|
||||||
rm -rf $RELEASEDIR/$XLIB
|
|
||||||
# The build process leaves some file in $SRC as bin.
|
# The build process leaves some file in $SRC as bin.
|
||||||
chown -R root $RELEASEDIR/usr/src*
|
chown -R root $RELEASEDIR/usr/src*
|
||||||
cp issue.install $RELEASEDIR/etc/issue
|
cp issue.install $RELEASEDIR/etc/issue
|
||||||
|
@ -331,7 +290,9 @@ then echo "Created new minix install in $RELEASEDIR."
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
##########################################################################
|
||||||
echo " * Counting files"
|
echo " * Counting files"
|
||||||
|
##########################################################################
|
||||||
extrakb=`du -ks $RELEASEDIR/usr/install | awk '{ print $1 }'`
|
extrakb=`du -ks $RELEASEDIR/usr/install | awk '{ print $1 }'`
|
||||||
find $RELEASEDIR/usr | fgrep -v /install/ | wc -l >$RELEASEDIR/.usrfiles
|
find $RELEASEDIR/usr | fgrep -v /install/ | wc -l >$RELEASEDIR/.usrfiles
|
||||||
find $RELEASEDIR -print -path $RELEASEDIR/usr -prune | wc -l >$RELEASEDIR/.rootfiles
|
find $RELEASEDIR -print -path $RELEASEDIR/usr -prune | wc -l >$RELEASEDIR/.rootfiles
|
||||||
|
@ -354,7 +315,9 @@ usr=/dev/c0d7p0s2
|
||||||
usr_roflag=\"-r\"" > $RELEASEDIR/etc/fstab
|
usr_roflag=\"-r\"" > $RELEASEDIR/etc/fstab
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
##########################################################################
|
||||||
echo " * Mounting $TMPDISKROOT as $RELEASEMNTDIR"
|
echo " * Mounting $TMPDISKROOT as $RELEASEMNTDIR"
|
||||||
|
##########################################################################
|
||||||
fitfs $RELEASEDIR $TMPDISKROOT 64 256 "$ROOTMB"
|
fitfs $RELEASEDIR $TMPDISKROOT 64 256 "$ROOTMB"
|
||||||
ROOTBLOCKS=$blocks
|
ROOTBLOCKS=$blocks
|
||||||
ROOTSECTS="`expr $blocks \* \( $BS / 512 \)`"
|
ROOTSECTS="`expr $blocks \* \( $BS / 512 \)`"
|
||||||
|
@ -367,7 +330,9 @@ USRSECTS="`expr $blocks \* \( $BS / 512 \)`"
|
||||||
mkdir -m 755 $RELEASEMNTDIR/usr
|
mkdir -m 755 $RELEASEMNTDIR/usr
|
||||||
mount $TMPDISKUSR $RELEASEMNTDIR/usr || exit
|
mount $TMPDISKUSR $RELEASEMNTDIR/usr || exit
|
||||||
|
|
||||||
|
##########################################################################
|
||||||
echo " * Copying files from staging to image"
|
echo " * Copying files from staging to image"
|
||||||
|
##########################################################################
|
||||||
synctree -f $RELEASEDIR $RELEASEMNTDIR > /dev/null || true
|
synctree -f $RELEASEDIR $RELEASEMNTDIR > /dev/null || true
|
||||||
expr `df -k $TMPDISKUSR | tail -1 | awk '{ print $4 }'` - $extrakb >$RELEASEMNTDIR/.usrkb
|
expr `df -k $TMPDISKUSR | tail -1 | awk '{ print $4 }'` - $extrakb >$RELEASEMNTDIR/.usrkb
|
||||||
|
|
||||||
|
@ -389,6 +354,9 @@ echo " * Unmounting $TMPDISKROOT from $RELEASEMNTDIR"
|
||||||
umount $TMPDISKROOT || exit
|
umount $TMPDISKROOT || exit
|
||||||
rm -r $RELEASEMNTDIR
|
rm -r $RELEASEMNTDIR
|
||||||
|
|
||||||
|
##########################################################################
|
||||||
|
echo " * Generating image files"
|
||||||
|
##########################################################################
|
||||||
dd if=$TMPDISKROOT of=$ROOTIMAGE bs=$BS count=$ROOTBLOCKS
|
dd if=$TMPDISKROOT of=$ROOTIMAGE bs=$BS count=$ROOTBLOCKS
|
||||||
cp release/cd/* $CDFILES || true
|
cp release/cd/* $CDFILES || true
|
||||||
echo "This is Minix version $version_pretty prepared `date`." >$CDFILES/VERSION.TXT
|
echo "This is Minix version $version_pretty prepared `date`." >$CDFILES/VERSION.TXT
|
||||||
|
@ -440,6 +408,8 @@ if [ "$FILENAMEOUT" ]
|
||||||
then echo "$IMG" >$FILENAMEOUT
|
then echo "$IMG" >$FILENAMEOUT
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
##########################################################################
|
||||||
echo " * Freeing up memory used by ramdisks"
|
echo " * Freeing up memory used by ramdisks"
|
||||||
|
##########################################################################
|
||||||
ramdisk 1 $TMPDISKROOT
|
ramdisk 1 $TMPDISKROOT
|
||||||
ramdisk 1 $TMPDISKUSR
|
ramdisk 1 $TMPDISKUSR
|
||||||
|
|
Loading…
Reference in a new issue