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

Reply via email to