Hi,
OFED-1.5 build environment (git://git.openfabrics.org/~vlad/ofabuild.git
ofed_1_5) was changed in the following manner:
Userspace packages will be downloaded into OFED-1.5 builds as tarballs
and not taken directly from the git repositories.
All userspace packages (tarballs) are located now under:
http://www.openfabrics.org/downloads/<package name>
If you are going to release a new package, please copy the new tarball into
/var/www/openfabrics.org/downloads/<package name> directory on the OFA
server
and send me an email to update OFED's build script.
Please use attached "make.tarball" script in order to create the tarball
from your git tree.
Usage: ./make.tarball repo daily | release
repo - git repository
daily - repo-ver-rel.g<git-commit>.tar.gz will be created
release - repo-ver-rel.tar.gz will be created
Example:
./make.tarball libibverbs daily
- Will create libibverbs-1.1.2-0.1.gb00dc7d.tar.gz
./make.tarball libibverbs release
- Will create libibverbs-1.1.2.tar.gz
Here is the list of tarballs included in the OFED-1.5 latest build and URLs:
management:
http://www.openfabrics.org/downloads/management/daily/libibumad-1.3.2_20090831_ce6f8dd.tar.gz
http://www.openfabrics.org/downloads/management/daily/libibmad-1.3.2_20090831_ce6f8dd.tar.gz
http://www.openfabrics.org/downloads/management/daily/opensm-3.3.2_20090831_ce6f8dd.tar.gz
http://www.openfabrics.org/downloads/management/daily/infiniband-diags-1.5.2_20090831_ce6f8dd.tar.gz
libibverbs:
http://www.openfabrics.org/downloads/libibverbs/libibverbs-1.1.2-0.1.gb00dc7d.tar.gz
libmthca:
http://www.openfabrics.org/downloads/libmthca/libmthca-1.0.5-0.1.gbe5eef3.tar.gz
libmlx4:
http://www.openfabrics.org/downloads/libmlx4/libmlx4-1.0-0.1.gd5e5026.tar.gz
libcxgb3:
http://www.openfabrics.org/downloads/cxgb3/libcxgb3-1.2.3.tar.gz
libehca:
http://www.openfabrics.org/downloads/libehca/libehca-1.2.1-0.1.g3600f95.tar.gz
libipathverbs:
http://www.openfabrics.org/downloads/libipathverbs/libipathverbs-1.1-0.1.g3978e32.tar.gz
libnes:
http://www.openfabrics.org/downloads/nes/libnes-0.6.tar.gz
libibcm:
http://www.openfabrics.org/downloads/rdmacm/libibcm-1.0.4.tar.gz
librdmacm:
http://www.openfabrics.org/downloads/rdmacm/librdmacm-1.0.8.tar.gz
libsdp:
http://www.openfabrics.org/downloads/libsdp/libsdp-1.1.99-0.1.gb1eaecb.tar.gz
sdpnetstat:
http://www.openfabrics.org/downloads/sdpnetstat/sdpnetstat-1.60-0.1.g798e44f.tar.gz
srptools:
http://www.openfabrics.org/downloads/srptools/srptools-0.0.4-0.1.gce1f64c.tar.gz
perftest:
http://www.openfabrics.org/downloads/perftest/perftest-1.2-0.1.ge96be03.tar.gz
qlvnictools:
http://www.openfabrics.org/downloads/qlvnictools/qlvnictools-0.0.1-0.1.ge27eef7.tar.gz
tvflash:
http://www.openfabrics.org/downloads/tvflash/tvflash-0.9.0-0.1.ge1b50b3.tar.gz
mstflint:
http://www.openfabrics.org/downloads/mstflint/mstflint-1.4-0.1.g899ead3.tar.gz
qperf:
http://www.openfabrics.org/downloads/qperf/qperf-0.4.6-0.1.gb81434e.tar.gz
ibutils:
http://www.openfabrics.org/downloads/ibutils/ibutils-1.2-0.1.g90a589f.tar.gz
ibsim:
http://www.openfabrics.org/downloads/ibsim/ibsim-0.5-0.1.g327c3d8.tar.gz
dapl:
http://www.openfabrics.org/downloads/dapl/dapl-2.0.22.tar.gz
compat-dapl:
http://www.openfabrics.org/downloads/dapl/compat-dapl-1.2.14.tar.gz
Regards,
Vladimir
#!/bin/bash
usage() {
cat << EOF
Usage: $0 repo daily | release
repo - git repository
daily - repo-ver-rel.g<short_commit_ref>.tar.gz will be
created
release - repo-ver-rel.tar.gz will be created
EOF
}
# Execute command w/ echo and exit if it fail
ex()
{
echo "$@"
if ! eval "$@"; then
printf "\nFailed executing $...@\n"
exit 1
fi
}
setlocalversion()
{
# Check for git and a git repo.
if head=`git rev-parse --verify --short HEAD 2>/dev/null`; then
# If we are at a tagged commit (like "v2.6.30-rc6"), we ignore
it,
# because this version is defined in the top level Makefile.
if [ -z "`git describe --exact-match 2>/dev/null`" ]; then
# If we are past a tagged commit (like
"v2.6.30-rc5-302-g72357d5"),
# we pretty print it.
if atag="`git describe 2>/dev/null`"; then
echo "$atag" | awk -F- '{printf(".%s", $(NF))}'
# If we don't have a tag at all we print -g{commitish}.
else
printf '%s%s' .g $head
fi
fi
# Is this git on svn?
if git config --get svn-remote.svn.url >/dev/null; then
printf -- '.svn%s' "`git svn find-rev $head`"
fi
# Are there uncommitted changes?
git update-index --refresh --unmerged > /dev/null
if git diff-index --name-only HEAD | grep -v "^scripts/package"
\
| read dummy; then
printf '%s' .dirty
fi
# All done with git
exit
fi
# Check for svn and a svn repo.
if rev=`svn info 2>/dev/null | grep '^Last Changed Rev'`; then
rev=`echo $rev | awk '{print $NF}'`
printf -- '.svn%s' "$rev"
# All done with svn
exit
fi
}
URL="http://www.openfabrics.org/downloads"
if [ -z "$1" -o -z "$2" ]; then usage; exit 1; fi
if [ ! -d "$1" ]; then usage; exit 1; fi
NAME=$1
# ORIG_NAME used for packages that require different version for the same
package, like dapl
ORIG_NAME=$NAME
TMPDIR=dist
TOPDIR=${PWD}/topdir
if [ ! -d $TMPDIR ]; then mkdir $TMPDIR; fi
if [ ! -d $TOPDIR ]; then mkdir -p
$TOPDIR/{BUILD,BUILDS,RPMS,SOURCES,SPECS,SRPMS}; fi
if [ "$2" = "daily" -o "$2" = "release" ]; then
if [ ! -f $TMPDIR/$NAME-$2.HEAD ]; then
touch $TMPDIR/$NAME-$2.HEAD
fi
NEWHEAD=`cat $TMPDIR/$NAME-$2.HEAD`
else
usage
exit 1
fi
cd "$NAME"
echo "Updating git repo..."
git pull
RESULT=$?
HEAD=`git log --pretty=oneline -1`
ORIG_NAME=$NAME
case $NAME in
dapl*)
NAME=dapl
;;
ibsim)
VERSION=`sed -ne '/#define IBSIM_VERSION/s/^.*\"\(.*\)\".*$/\1/p'
ibsim/ibsim.c`
;;
qlvnictools)
VERSION=0.0.1
;;
esac
if [ "$RESULT" -ne 0 ]; then
echo "Failed to update the git repo cleanly, manual intervention
required"
exit 1
fi
if [ "$HEAD" = "$NEWHEAD" ] && [ "$2" != "release" ]; then
echo "No new commits since last tarball creation, nothing to do."
cd ..
exit 0
fi
if [ -z ${VERSION} ]; then
VERSION=`grep "AC_INIT.*$NAME" configure.in 2> /dev/null | cut -f 2 -d
',' | cut -f 1 -d '-' | sed -e 's/ //g;s/\[//g;s/\]//g'`
fi
if [ -z ${VERSION} ]; then
VERSION=`grep "AM_INIT.*$NAME" configure.in 2> /dev/null | cut -f 2 -d
',' | cut -f 1 -d '-' | sed -e 's/ //g;s/(//g;s/)//g'`
fi
if [ -z ${VERSION} ] && [ -f ../$NAME/$NAME.spec ]; then
VERSION=`grep "Version:" ../$NAME/$NAME.spec | awk '{print $NF}'`
fi
if [ -z ${VERSION} ]; then
echo Cannot determine $NAME version
exit 1
fi
if [ "$2" = "release" ]; then
# Is the repo clean?
git status | grep modified > /dev/null 2>&1
if [ $? = 0 ]; then
echo "There are modified files in the repo. Please check any"
echo "changes in before proceeding."
exit 4
fi
if [ 1 -eq 0 ]; then
# Since we will be tagging things, make sure we are on the right
# branch
git branch
echo -n "Is the active branch the right one to tag this release
on [y/N]? "
read answer
if [ "$answer" = y -o "$answer" = Y ]; then
echo "Proceeding..."
else
echo "Please check out the right branch and run
make.dist again"
exit 0
fi
fi
# Check versions to make sure that we can proceed
TARBALL=$NAME-$VERSION.tar.gz
if [ -f ../$TMPDIR/$TARBALL ]; then
/bin/rm -f ../$TMPDIR/$TARBALL
fi
if [ 1 -eq 0 ]; then
if [ ! -z "`git tag -l $NAME-$VERSION`" ]; then
echo "A git tag already exists for $NAME-$VERSION.
Please change the version"
echo "of $NAME so a tag replacement won't occur."
exit 3
fi
fi
# On a real release, this resets the daily release starting point, on the
# assumption that any new daily builds will have a version number that is
# incrementally higher than the last officially released tarball.
RELEASE=1
echo $RELEASE > ../$TMPDIR/$NAME.release
else
DATE=`date +%Y%m%d`
if [ -f ../$TMPDIR/$NAME.release ]; then
RELEASE=`cat ../$TMPDIR/$NAME.release`
RELEASE=`expr $RELEASE + 1`
else
RELEASE=1
fi
echo $RELEASE > ../$TMPDIR/$NAME.release
localversion=`setlocalversion`
RELEASE=0.${RELEASE}${localversion}
TARBALL=$NAME-${VERSION}-${RELEASE}.tar.gz
fi
cd ..
ex cp -a $ORIG_NAME $NAME-$VERSION
apply_patches()
{
if [ -f fixes/series ]; then
for pp in `cat fixes/series`
do
echo Applying fixes/$pp
patch -p1 -l -i fixes/$pp
if [ $? -ne 0 ]; then
echo Failed to apply fixes/$pp
exit 1
fi
done
else
for pp in `/bin/ls fixes/*.patch`
do
echo Applying $pp
patch -p1 -l -i $pp
if [ $? -ne 0 ]; then
echo Failed to apply $pp
exit 1
fi
done
fi
echo
echo Patches for basename `basename $(pwd)` applied successfully
echo
}
if [ -d $NAME-$VERSION/fixes ]; then
cd $NAME-$VERSION
# Apply patches from the fixes directory, if exist
apply_patches
cd ..
fi
if [ -f $NAME-$VERSION/autogen.sh ]; then
cd $NAME-$VERSION
bash ./autogen.sh
cd ..
fi
if [ "$NAME" == "qlvnictools" ]; then
cd $NAME-$VERSION/ibvexdmtools/
bash ./autogen.sh
cd -
fi
if [ -f $NAME-$VERSION/$NAME.spec.in ] && [ ! -f $NAME-$VERSION/$NAME.spec ];
then
cp $NAME-$VERSION/$NAME.spec.in $NAME-$VERSION/$NAME.spec
elif [ -f $NAME-$VERSION/$NAME.spec ]; then
echo "Using original spec"
else
echo "RPM spec file is not found ???"
exit 5
fi
perl -ni -e "s@(Version:)....@\$1
${VERSION}@;s/\...@version\@/${VERSION}/;s@(Release:)....@\$1
${RELEASE}@;s@(Source:)....@\$1 ${URL}/${TARBALL}@;s/\...@release\@/\$1
${RELEASE}/; print" $NAME-$VERSION/$NAME.spec
if [ "$NAME" == "opensm" ]; then
perl -ni -e "s/\...@opensm_config_sub_dir\@/opensm/; print"
$NAME-$VERSION/$NAME.spec
fi
echo "Creating $TMPDIR/$TARBALL"
ex tar -czf $TMPDIR/$TARBALL --exclude=.git $NAME-$VERSION
echo "$HEAD" > $TMPDIR/$ORIG_NAME-$2.HEAD
ex mv $TMPDIR/$TARBALL $TOPDIR/SOURCES
rm -rf $NAME-$VERSION
echo
echo Created $TOPDIR/SOURCES/$TARBALL
echo
_______________________________________________
ewg mailing list
[email protected]
http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg