On Tue, 2014-08-19 at 00:28 -0500, Bruce Dubbs wrote:
> Christopher Gregory wrote:
> > Hello,
> >
> > I have finally overcome my 20 year hatred of scripts and am in the
> > process of creating bash scripts for all the packages in BLFS.
> >
> > As packages get upgraded all the time, what I need to do is to have wild
> > cards to match the package tarballs. I have achieved that with regards
> > to the below example, however some packages have additional characters
> > such as boost has boost_1_56_0.tar.bz2 so the wild card match of ? would
> > not work in this case.
> >
> > I have not been able to work out how to do a match for this type of
> > file.
> >
> > Could someone please assist in this? I only want to know how to do it
> > in bash thanks.
> >
> > #!/bin/bash
> > export PROGRAM=apr-1.5.?
> > tar -xvf $PROGRAM.tar.?z*
> > pushd $PROGRAM
> >
> > ./configure --prefix=/usr \
> > --disable-static \
> > --with-installbuilddir=/usr/share/apr-1/build &&
> > make -j2 &&
> > make install
> > popd
> > rm -rf $PROGRAM
>
> Here is what I use:
>
>
> $ cat make-apr-1.5.0
> #!/bin/bash
>
> source /usr/src/stats
>
> #######################
>
> DIR=`pwd`
> PROGRAM=apr-1.5.0
> LOG=$DIR/$PROGRAM.log
> TITLE=$PROGRAM
> TIMEFORMAT="$TIMEFMT $TITLE"
>
> BUILDDIR=/tmp/apr
> #DEST=$BUILDDIR/install
>
> rm -f $LOG
> rm -rf $BUILDDIR
> mkdir $BUILDDIR
> cd $BUILDDIR
>
> before=`df -k /tmp | grep / | sed -e "s/ \{2,\}/ /g" | cut -d' ' -f3`
>
> tar -xf $DIR/$PROGRAM.tar.?z* || exit 1
>
> cd $PROGRAM
> { time \
> {
> echo Making $TITLE
> date
>
> ./configure --prefix=/usr \
> --disable-static \
> --with-installbuilddir=/usr/share/apr-1/build &&
> make &&
> #make test &&
> echo "BLFS Start INSTALL" &&
>
> $SUDO make DESTDIR=$DEST install
> }
> } 2>&1 | tee -a $LOG
>
> if [ $PIPESTATUS -ne 0 ]; then exit 1; fi;
>
> stats $LOG $DIR/$PROGRAM.tar.?z* $before
>
> exit 0
> ========
> $ cat /usr/src/stats
> #!/bin/bash
>
> function stats()
> {
> log=$1
> tarball=$2
> b4=$3
>
> base_sbu=118
>
> free_now=`df -k /tmp | grep / | sed -e "s/ \{2,\}/ /g" | cut -d" " -f3`
>
> buildtime=`tail -n1 $log|cut -f1 -d" "`
> sbu=`echo "scale=3; $buildtime / $base_sbu" | bc`
>
> psizeK=`du -k $tarball | cut -f1`
> psizeM=`echo "scale=3; $psizeK / 1024" | bc`
>
> bsizeK=`echo "$free_now - $b4" | bc`
> bsizeM=`echo "scale=3; $bsizeK / 1024" | bc`
>
> echo "SBU=$sbu" | tee -a $log
> echo "$psizeK $tarball size ($psizeM MB)" | tee -a $log
> echo "$bsizeK kilobytes build size ($bsizeM MB)" | tee -a $log
> (echo -n "md5sum : "; md5sum $tarball) | tee -a $log
> (echo -n "sha1sum: "; sha1sum $tarball) | tee -a $log
>
> echo "`date` $tarball" >> /usr/src/packages-$(lsb_release -r|cut -f2).log
> }
>
> TIMEFMT='%1R Elapsed Time - '
> SUDO='sudo -E'
> =======
> base_sbu is the binutils time.
>
> You can modify this to pass parameters, but I generally edit the script
> for any new version. The build procedures change often enough that I
> generally copy the old build script to the new and update as needed.
>
> I build in /tmp, but that can be modified as desired. I don't delete
> until /tmp gets full so I can review if needed.
>
> -- Bruce
Hello Bruce,
Thanks for that. It puts my poor little scripts to shame. Just before
your reply came in, I finally managed to get the wildcards working
correctly by adding another ??. I also found that it helps considerably
when the correct suffix is specified, otherwise the poor script can not
extract the archive, which in turn means that $PROGRAM can never be set
correctly.
I need to get these scripts done, as I am now building often enough that
I am getting sick of copying and pasting. Once they are all done then I
will duplicate them and have one set for doing a permanent install and
the other for doing the calculations.
I am now trying to save up to get a desktop computer. Looking at your
base_sbu highlights just how slow my laptop is. It probably won't be
more than a quad core that I get as I will also need to get a monitor.
An 8 core would be wonderful however I think at the moment out of my
price bracket. Can always get another later.
Regards,
Christopher.
--
http://lists.linuxfromscratch.org/listinfo/blfs-dev
FAQ: http://www.linuxfromscratch.org/blfs/faq.html
Unsubscribe: See the above information page