Skip to content

Commit

Permalink
Allow packaging of github repositories alternatively
Browse files Browse the repository at this point in the history
  • Loading branch information
toddlipcon committed Oct 21, 2009
1 parent dc1647c commit 23ed75a
Show file tree
Hide file tree
Showing 6 changed files with 97 additions and 45 deletions.
2 changes: 1 addition & 1 deletion debian/changelog
@@ -1,4 +1,4 @@
hadoop-gpl-compression (0.2.0svn46~unbuilt-1) UNRELEASED; urgency=low @PACKAGE_NAME@ (0.0-unbuilt) UNRELEASED; urgency=low


* Initial release * Initial release


Expand Down
6 changes: 3 additions & 3 deletions debian/control
@@ -1,12 +1,12 @@
Source: hadoop-gpl-compression Source: @PACKAGE_NAME@
Section: devel Section: devel
Priority: extra Priority: extra
Maintainer: Todd Lipcon <todd@cloudera.com> Maintainer: Todd Lipcon <todd@cloudera.com>
Build-Depends: debhelper (>= 5), sun-java6-jdk, liblzo2-dev, ant Build-Depends: debhelper (>= 5), sun-java6-jdk, liblzo2-dev, ant
Standards-Version: 3.8.0 Standards-Version: 3.8.0
Homepage: http://code.google.com/p/hadoop-gpl-compression/ Homepage: @PACKAGE_HOMEPAGE@


Package: hadoop-gpl-compression Package: @PACKAGE_NAME@
Architecture: any Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends} Depends: ${shlibs:Depends}, ${misc:Depends}
Description: GPL compression libraries for Hadoop Description: GPL compression libraries for Hadoop
Expand Down
2 changes: 1 addition & 1 deletion debian/copyright
@@ -1,7 +1,7 @@
This package was debianized by Todd Lipcon <todd@cloudera.com> on This package was debianized by Todd Lipcon <todd@cloudera.com> on
Tue, 20 Oct 2009 19:17:38 -0700. Tue, 20 Oct 2009 19:17:38 -0700.


It was checked out of SVN from http://code.google.com/p/hadoop-gpl-compression/ It was checked out from @PACKAGE_HOMEPAGE@


License: License:


Expand Down
8 changes: 4 additions & 4 deletions debian/rules
Expand Up @@ -10,9 +10,9 @@
#export DH_VERBOSE=1 #export DH_VERBOSE=1


VERSION=$(shell dpkg-parsechangelog | grep Version | head -1 | awk '{print $$2}') VERSION=$(shell dpkg-parsechangelog | grep Version | head -1 | awk '{print $$2}')

NAME=@PACKAGE_NAME@
DESTDIR=$(CURDIR)/debian/hadoop-gpl-compression DESTDIR=$(CURDIR)/debian/$(NAME)
NAME_VER=hadoop-gpl-compression-$(VERSION) NAME_VER=$(NAME)-$(VERSION)
HADOOP_HOME=/usr/lib/hadoop HADOOP_HOME=/usr/lib/hadoop


configure: configure-stamp configure: configure-stamp
Expand All @@ -27,7 +27,7 @@ build: build-stamp
build-stamp: configure-stamp build-stamp: configure-stamp
dh_testdir dh_testdir


JAVA_HOME=/usr/lib/jvm/java-6-sun ant -Dversion=$(VERSION) compile-native package JAVA_HOME=/usr/lib/jvm/java-6-sun ant -Dname=$(NAME) -Dversion=$(VERSION) compile-native package


touch $@ touch $@


Expand Down
116 changes: 84 additions & 32 deletions run.sh
@@ -1,13 +1,14 @@
#!/bin/bash -e #!/bin/bash -e
set -x set -x

############################## ##############################
# Begin configurables # Begin configurables
############################## ##############################
SVNURL=${SVNURL:-http://hadoop-gpl-compression.googlecode.com/svn/trunk/} # Which project to build.
if [ -z "$SVN_REV" ]; then # github - builds the github fork hadoop-lzo project
SVN_REV=$(svn info $SVNURL | grep Revision | awk '{print $2}') # googlecode - builds the original google code repo
fi SRC_PROJECT=${SRC_PROJECT:-github}
VERSION=${VERSION:-0.2.0svn$SVN_REV}
RELEASE=${RELEASE:-1} RELEASE=${RELEASE:-1}


# Some metadata fields for the packages (used only by rpms) # Some metadata fields for the packages (used only by rpms)
Expand All @@ -21,29 +22,82 @@ HADOOP_HOME=${HADOOP_HOME:-/usr/lib/hadoop-0.20}
############################## ##############################
# End configurables # End configurables
############################## ##############################

BINDIR=$(readlink -f $(dirname $0)) BINDIR=$(readlink -f $(dirname $0))
mkdir -p build

setup_googlecode() {
SVNURL=${SVNURL:-http://hadoop-gpl-compression.googlecode.com/svn/trunk/}
PACKAGE_HOMEPAGE=http://code.google.com/p/hadoop-gpl-compression/
if [ -z "$SVN_REV" ]; then
SVN_REV=$(svn info $SVNURL | grep Revision | awk '{print $2}')
[[ $SVN_REV == [0-9]+ ]]
echo "SVN Revision: $SVN_REV"
fi
VERSION=${VERSION:-0.2.0svn$SVN_REV}
NAME=hadoop-gpl-compression
}

checkout_googlecode() {
if [ ! -d $CHECKOUT ]; then
svn export -r $SVN_REV $SVNURL $CHECKOUT
fi
CHECKOUT_TAR=$BINDIR/build/${NAME}-$VERSION.tar.gz
}

setup_github() {
GITHUB_ACCOUNT=${GITHUB_ACCOUNT:-toddlipcon}
GITHUB_BRANCH=${GITHUB_BRANCH:-master}
PACKAGE_HOMEPAGE=http://github.com/$GITHUB_ACCOUNT/hadoop-lzo
TARURL=http://github.com/$GITHUB_ACCOUNT/hadoop-lzo/tarball/$GITHUB_BRANCH
if [ -z "$(ls $BINDIR/build/$GITHUB_ACCOUNT-hadoop*tar.gz)" ]; then
wget -P $BINDIR/build/ $TARURL
fi
ORIG_TAR=$(ls -1 $BINDIR/build/$GITHUB_ACCOUNT-hadoop*tar.gz | head -1)
GIT_HASH=$(expr match $ORIG_TAR ".*hadoop-lzo-\(.*\).tar.gz")
echo "Git hash: $GIT_HASH"
NAME=$GITHUB_ACCOUNT-hadoop-lzo
VERSION=$(date +"%Y%m%d%H%M%S").$GIT_HASH

pushd $BINDIR/build/ > /dev/null
mkdir $NAME-$VERSION/
tar -C $NAME-$VERSION/ --strip-components=1 -xzf $ORIG_TAR
tar czf $NAME-$VERSION.tar.gz $NAME-$VERSION/
popd > /dev/null

CHECKOUT_TAR=$BINDIR/build/$NAME-$VERSION.tar.gz
}

checkout_github() {
echo -n
}

do_substs() {
sed "
s,@PACKAGE_NAME@,$NAME,g;
s,@PACKAGE_HOMEPAGE@,$PACKAGE_HOMEPAGE,g;
s,@VERSION@,$VERSION,g;
s,@RELEASE@,$RELEASE,g;
s,@PACKAGER@,$PACKAGER,g;
s,@PACKAGER_EMAIL@,$PACKAGER_EMAIL,g;
s,@HADOOP_HOME@,$HADOOP_HOME,g;
"
}

setup_$SRC_PROJECT

TOPDIR=$BINDIR/build/topdir TOPDIR=$BINDIR/build/topdir


SVNCO=$BINDIR/hadoop-gpl-compression-$VERSION CHECKOUT=$BINDIR/${NAME}-$VERSION
SVNTAR=$BINDIR/build/hadoop-gpl-compression-$VERSION.tar.gz checkout_$SRC_PROJECT
mkdir -p build
if [ ! -d $SVNCO ]; then
svn export -r $SVN_REV $SVNURL $SVNCO
fi


if [ ! -e $SVNTAR ]; then if [ ! -e $CHECKOUT_TAR ]; then
pushd $SVNCO pushd $CHECKOUT
cd .. cd ..
tar czf $SVNTAR $(basename $SVNCO) tar czf $CHECKOUT_TAR $(basename $CHECKOUT)
popd popd
fi fi



[[ $SVN_REV == [0-9]+ ]]

echo "SVN Revision: $SVN_REV"

############################## ##############################
# RPM # RPM
############################## ##############################
Expand All @@ -53,21 +107,15 @@ mkdir -p $TOPDIR


(cd $TOPDIR/ && mkdir SOURCES BUILD SPECS SRPMS RPMS BUILDROOT) (cd $TOPDIR/ && mkdir SOURCES BUILD SPECS SRPMS RPMS BUILDROOT)


cat $BINDIR/template.spec | sed " cat $BINDIR/template.spec | do_substs > $TOPDIR/SPECS/${NAME}.spec
s,@VERSION@,$VERSION,g;
s,@RELEASE@,$RELEASE,g;
s,@PACKAGER@,$PACKAGER,g;
s,@PACKAGER_EMAIL@,$PACKAGER_EMAIL,g;
s,@HADOOP_HOME@,$HADOOP_HOME,g;
" > $TOPDIR/SPECS/hadoop-gpl-compression.spec


cp $SVNTAR $TOPDIR/SOURCES cp $CHECKOUT_TAR $TOPDIR/SOURCES


pushd $TOPDIR/SPECS > /dev/null pushd $TOPDIR/SPECS > /dev/null
rpmbuild $RPMBUILD_FLAGS \ rpmbuild $RPMBUILD_FLAGS \
--buildroot $(pwd)/../BUILDROOT \ --buildroot $(pwd)/../BUILDROOT \
--define "_topdir $(pwd)/.." \ --define "_topdir $(pwd)/.." \
-ba hadoop-gpl-compression.spec -ba ${NAME}.spec
popd popd
fi fi


Expand All @@ -80,11 +128,15 @@ mkdir -p $DEB_DIR
rm -Rf $DEB_DIR rm -Rf $DEB_DIR


mkdir $DEB_DIR mkdir $DEB_DIR
cp -a $SVNTAR $DEB_DIR/hadoop-gpl-compression_$VERSION.orig.tar.gz cp -a $CHECKOUT_TAR $DEB_DIR/${NAME}_$VERSION.orig.tar.gz
pushd $DEB_DIR pushd $DEB_DIR
tar xzf *.tar.gz tar xzf *.tar.gz
cp -a $BINDIR/debian/ hadoop-gpl-compression-$VERSION cp -a $BINDIR/debian/ ${NAME}-$VERSION/debian
pushd hadoop-gpl-compression-$VERSION for f in $(find ${NAME}-$VERSION/debian -type f) ; do
do_substs < $f > /tmp/$$.tmp && chmod --reference=$f /tmp/$$.tmp && mv /tmp/$$.tmp $f
done

pushd ${NAME}-$VERSION


dch -D $(lsb_release -cs) --newversion $VERSION-$RELEASE "Local automatic build" dch -D $(lsb_release -cs) --newversion $VERSION-$RELEASE "Local automatic build"
debuild -uc -us -sa debuild -uc -us -sa
Expand Down
8 changes: 4 additions & 4 deletions template.spec
@@ -1,11 +1,11 @@
Summary: GPL Compression Libraries for Hadoop Summary: GPL Compression Libraries for Hadoop
Name: hadoop-gpl-compression Name: @PACKAGE_NAME@
Version: @VERSION@ Version: @VERSION@
Release: @RELEASE@ Release: @RELEASE@
License: GPL License: GPL
Source0: hadoop-gpl-compression-@VERSION@.tar.gz Source0: @PACKAGE_NAME@-@VERSION@.tar.gz
Group: Development/Libraries Group: Development/Libraries
URL: http://code.google.com/p/hadoop-gpl-compression/ URL: @PACKAGE_HOMEPAGE@
Packager: @PACKAGER@ <@PACKAGER_EMAIL@> Packager: @PACKAGER@ <@PACKAGER_EMAIL@>
Buildroot: %{_tmppath}/%{name}-%{version} Buildroot: %{_tmppath}/%{name}-%{version}
BuildRequires: ant, ant-nodeps, gcc-c++, lzo-devel BuildRequires: ant, ant-nodeps, gcc-c++, lzo-devel
Expand All @@ -20,7 +20,7 @@ GPLed Compression Libraries for Hadoop, built at $DATE on $HOST
%setup %setup
%build %build


ant -Dversion=%{version} compile-native package ant -Dname=%{name} -Dversion=%{version} compile-native package


%install %install
mkdir -p $RPM_BUILD_ROOT/%{hadoop_home}/lib mkdir -p $RPM_BUILD_ROOT/%{hadoop_home}/lib
Expand Down

0 comments on commit 23ed75a

Please sign in to comment.