## option defaults
OPT_BRANCH=""
OPT_DOCSDIR=""
-OPT_TAG=""
OPT_KEYID=""
TOPDIR="`dirname $0`/.."
-VER_H="${TOPDIR}/source/include/version.h"
+VER_H="${TOPDIR}/source3/include/version.h"
function exitOnError
{
echo " --help Print command usage"
echo " --branch <name> Specify the branch to to create the archive file from"
echo " --copy-docs <dir> Copy documentation from <dir> rather than building"
- echo " --tag <name> Tag name for release"
echo " --keyid <email> The GnuPG key ID used to sign the release tag"
echo ""
}
##
-## Parse the command line options
+## Parse the command line options
##
function parseOptions
OPT_DOCSDIR="$1"
shift
;;
- --tag)
- shift
- if [ -z "$1" ]; then
- printUsage
- return 1
- fi
- OPT_TAG="$1"
- shift
- ;;
--keyid)
shift
if [ -z "$1" ]; then
}
##
-## Build the dopcumentation (may be a no-op)
+## Build the documentation (may be a no-op)
##
function buildDocs
rsync -av "${OPT_DOCSDIR}"/ docs/
exitOnError $? "Failed top copy docs from ${OPT_DOCSDIR}"
-
+
+ cd docs/
+ /bin/rm -rf test.pdf Samba4*pdf htmldocs/Samba4* htmldocs/test
+ if [ -d manpages-3 ]; then
+ mv manpages-3 manpages
+ fi
+ if [ -d htmldocs/manpages-3 ]; then
+ mv htmldocs/manpages-3 htmldocs/manpages
+ fi
+ # Sync thanks, history and registry/ into the docs dir
+ rsync -Ca --exclude=.svn ../../$OPT_BRANCH/docs-xml/registry ../docs/
+ rsync -Ca --exclude=.svn ../../$OPT_BRANCH/docs-xml/archives/ ../docs/
+ cd ../
+
return 0
fi
##
function createReleaseTag
{
- if [ -z "${OPT_TAG}" ]; then
- echo "Tagging disabled"
- return 0
- fi
+ tagname="$1"
- if [ "x`git-tag -l ${OPT_TAG}`" != "x" ]; then
- echo -n "Tag exists. Do you wish to overwrite? (y/N): "
+ if [ "x`git tag -l ${tagname}`" != "x" ]; then
+ echo -n "Tag '${tagname}' exists. Do you wish to overwrite? (y/N): "
read answer
if [ "x$answer" != "xy" ]; then
fi
fi
- git-tag -u ${OPT_KEYID} ${OPT_TAG}
- exitOnError $? "Failed to create tag"
+ git tag -u ${OPT_KEYID} ${tagname}
+ exitOnError $? "Failed to create tag '${tagname}'"
return 0
}
##
## Main driver
##
-function main
+function main
{
parseOptions "$@"
exitOnError $? "Failed to parse options"
-
+
cd $TOPDIR
- git-checkout ${OPT_BRANCH}
+ git checkout ${OPT_BRANCH}
exitOnError $? "Invalid branch name \"${OPT_BRANCH}\""
- (cd source && ./script/mkversion.sh)
+ (cd source3 && ./script/mkversion.sh)
if [ ! -f $VER_H ]; then
exitOnError 1 "Failed to find ${VER_H}!"
fi
- version=`grep SAMBA_VERSION_OFFICIAL_STRING $VER_H | awk '{print $3}'`
- vendor_version=`grep SAMBA_VERSION_VENDOR_SUFFIX $VER_H | awk '{print $3}'`
+ version=`grep "define SAMBA_VERSION_OFFICIAL_STRING" $VER_H | awk '{print $3}'`
+ vendor_version=`grep "define SAMBA_VERSION_VENDOR_SUFFIX" $VER_H | awk '{print $3}'`
if [ -n "$vendor_version" ]; then
version="$version-$vendor_version"
fi
+ vendor_patch=`grep "define SAMBA_VERSION_VENDOR_PATCH_STRING" $VER_H | awk '{print $3}'`
+ if [ -n "$vendor_patch" ]; then
+ version="$version-$vendor_patch"
+ fi
version=`echo $version | sed 's/\"//g'`
echo "Creating release tarball for Samba $version"
/bin/rm -rf ../samba-${version}
- git-archive --format=tar --prefix=samba-${version}/ HEAD | (cd .. && tar xf -)
+ git archive --format=tar --prefix=samba-${version}/ HEAD | (cd .. && tar xf -)
exitOnError $? "Failed to create release directory tree"
pushd ../samba-${version}
+ # Remove RFCs as they are non-free content (with a strict interpretation of
+ # the DFSG)
+
+ if [ -d source4 ]; then
+ echo "Removing RFCs"
+ find source4/ -name "rfc*.txt" -exec rm -f {} \;
+ rm -f source4/ldap_server/devdocs/draft-armijo-ldap-syntax-00.txt
+ rm -f source4/ldap_server/devdocs/ldapext-ldapv3-vlv-04.txt
+ fi
+
packaging/bin/update-pkginfo ${version} 1 ""
buildDocs
exitOnError $? "Failed to build documentation"
- ( cd source && ./autogen.sh )
+ ( cd source3 && ./autogen.sh )
cd ..
tar cf samba-${version}.tar --exclude=.git* --exclude=CVS --exclude=.svn samba-${version}
popd
- createReleaseTag
+ createReleaseTag "samba-${version}"
exitOnError $? "Failed to create release tag"
return 0