FAQ Search Today's Posts Mark Forums Read
» Video Reviews

» Linux Archive

Linux-archive is a website aiming to archive linux email lists and to make them easily accessible for linux users/developers.


» Sponsor

» Partners

» Sponsor

Go Back   Linux Archive > Redhat > Fedora Build System

 
 
LinkBack Thread Tools
 
Old 05-12-2008, 08:54 PM
Jeroen van Meeuwen
 
Default Add anaconda-runtime to the package list for buildinstall

Jesse Keating wrote:

On Mon, 2008-04-21 at 13:44 +0200, Jeroen van Meeuwen wrote:

Or were you thinking something else?



[...snip...]

That's the fairly rough overview.



Revisiting this topic;

I've got this implemented differently right now; I'm pointing
buildinstall to one or more of the enabled repositories configured, as
it's just using yum with a configuration file that can perfectly point
at baseurls and mirrorlists. This does require some modifications to
buildinstall though, and I'm not sure whether the anaconda guys would
even consider it.


Attached is a the modified buildinstall script taking multiple --repo
parameters (currently only taking baseurls though).


Kind regards,

Jeroen van Meeuwen
-kanarip
#!/bin/bash
#
# buildinstall
#
# Copyright (C) 2007 Red Hat, Inc. All rights reserved.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#

usage() {
echo "Usage: buildinstall --version <version> --product <product> --release <comment> [--output outputdir] [--discs <discstring>] <root>" >&2
exit 1
}

PRODUCTPATH="anaconda"

declare -a repositories

while [ $# -gt 0 ]; do
case $1 in
# general options affecting how we build things
--nogr)
NOGRSTR="--nogr"
shift
;;
--debug)
DEBUGSTR="--debug"
shift
;;

# release information
--version)
VERSION=$2
shift; shift
;;
--release)
RELEASESTR=$2
shift; shift
;;
--product)
PRODUCTSTR=$2
shift; shift
;;
--variant)
VARIANT=$2
shift; shift
;;
--bugurl)
BUGURL=$2
shift; shift
;;

--output)
OUTPUT=$2
shift; shift
;;
--updates)
UPDATES=$2
shift; shift
;;
--repo)
repositories[${#repositories[@]}]=$2
shift; shift
;;
*)
REPO=$1
shift
;;
esac
done

if [ -z "$PRODUCTSTR" ]; then
usage
fi

if [ -z "$VERSION" ]; then
usage
fi

if [ -z "$REPO" ]; then
usage
fi

if [ -z "$RELEASESTR" ]; then
usage
fi

if [ -z "$BUGURL" ]; then
BUGURL="your distribution provided bug reporting tool."
fi

if [[ "$REPO" =~ ^/ ]]; then
[ -n "$OUTPUT" ] || OUTPUT=$REPO
REPO="file://$REPO"
fi

if [ -z "$OUTPUT" ]; then
usage
fi

if [ ! -d "$OUTPUT" ]; then
mkdir -p $OUTPUT
fi

yumconf=$(mktemp /tmp/yum.conf.XXXXXX)
cat > $yumconf <<EOF
[main]
keepcache=0
gpgcheck=0
plugins=0
reposdir=
tsflags=nodocs
EOF

if [ ${#repositories[@]} -lt 1 ]; then
cat >> $yumconf <<EOF
[anacondarepo]
name=anaconda repo
baseurl=$REPO
enabled=1
EOF
else
i=0
while [ $i -lt ${#repositories[@]} ]; do
cat >> $yumconf <<EOF
[repo-$i]
name=anaconda repo $i
baseurl=${repositories[$i]}
enabled=1
EOF
i=$[ $i + 1 ]
done
fi

BUILDINSTDIR=`mktemp -d ${TMPDIR:-/tmp}/buildinstall.tree.XXXXXX`
TREEDIR=`mktemp -d ${TMPDIR:-/tmp}/treedir.XXXXXX`

echo "Running buildinstall..."

pushd $BUILDINSTDIR
BUILDARCH=`repoquery -c $yumconf --qf "%{ARCH}
" anaconda-runtime`
yumdownloader -c $yumconf anaconda-runtime || exit 1
rpm2cpio anaconda-runtime*rpm | cpio --quiet -iumd './usr*'
rm -f anaconda-runtime*rpm
popd

UPD_INSTROOT=./upd-instroot
MK_IMAGES=./mk-images
MK_TREEINFO=./maketreeinfo.py
MK_STAMP=./makestamp.py
BUILDINSTALL=./buildinstall

for f in $UPD_INSTROOT $MK_IMAGES $MK_STAMP $MK_TREEINFO $BUILDINSTALL; do
if [ -n "$UPDATES" -a -f $UPDATES/usr/lib/anaconda-runtime/$f ]; then
cp -a $UPDATES/usr/lib/anaconda-runtime/$f* $BUILDINSTDIR/
elif [ ! -f $f ]; then
cp -a $BUILDINSTDIR/usr/lib/anaconda-runtime/$f* $BUILDINSTDIR/
else
cp -a $f* $BUILDINSTDIR/
fi
done

UPD_INSTROOT=$BUILDINSTDIR/upd-instroot
MK_IMAGES=$BUILDINSTDIR/mk-images
MK_TREEINFO=$BUILDINSTDIR/maketreeinfo.py
MK_STAMP=$BUILDINSTDIR/makestamp.py
BUILDINSTALL=$BUILDINSTDIR/buildinstall

if [ -n "$UPDATES" ]; then UPDATES="--updates $UPDATES"; fi

echo "Building images..."
$UPD_INSTROOT $DEBUGSTR $NOGRSTR --arch $BUILDARCH $UPDATES --mindir $TREEDIR/minstg2 --stg2dir $TREEDIR/stage2 $yumconf

echo "Writing .treeinfo file..."
$MK_TREEINFO --family="$PRODUCTSTR" ${VARIANT:+--variant="$VARIANT"} --version=$VERSION --arch=$BUILDARCH --outfile=$OUTPUT/.treeinfo

# FIXME: need to update mk-images to take the yumconf
echo "Making images..."
$MK_IMAGES $DEBUGSTR $NOGRSTR --mindir $TREEDIR/minstg2 --stg2dir $TREEDIR/stage2 --arch $BUILDARCH --product "$PRODUCTSTR" --version $VERSION --bugurl "$BUGURL" --output $OUTPUT $yumconf

echo "Writing .discinfo file"
$MK_STAMP --releasestr="$RELEASESTR" --arch=$BUILDARCH --discNum="ALL" --outfile=$OUTPUT/.discinfo

rm -rf $TREEDIR $BUILDINSTDIR
rm -f $yumconf
--
Fedora-buildsys-list mailing list
Fedora-buildsys-list@redhat.com
https://www.redhat.com/mailman/listinfo/fedora-buildsys-list
 
Old 05-12-2008, 09:01 PM
Jesse Keating
 
Default Add anaconda-runtime to the package list for buildinstall

On Mon, 2008-05-12 at 22:54 +0200, Jeroen van Meeuwen wrote:
> Revisiting this topic;
>
> I've got this implemented differently right now; I'm pointing
> buildinstall to one or more of the enabled repositories configured, as
> it's just using yum with a configuration file that can perfectly point
> at baseurls and mirrorlists. This does require some modifications to
> buildinstall though, and I'm not sure whether the anaconda guys would
> even consider it.
>
> Attached is a the modified buildinstall script taking multiple --repo
> parameters (currently only taking baseurls though).

Didn't Will Woods submit a patch shortly after I posted this that
allowed for passing multiple repos to buildinstall?

--
Jesse Keating
Fedora -- Freedom˛ is a feature!
--
Fedora-buildsys-list mailing list
Fedora-buildsys-list@redhat.com
https://www.redhat.com/mailman/listinfo/fedora-buildsys-list
 

Thread Tools




All times are GMT. The time now is 06:02 AM.

VBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.
Copyright ©2007 - 2008, www.linux-archive.org