123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157 |
- #!/bin/sh
- #
- # Distribution generator for git
- #
- # Usage: makedist version
- # Example: makedist 5.4.1
- # Example: makedist 5.3.5RC1
- #
- # To work, this script needs a consistent tagging of all releases.
- # Each release of a package should have a tag of the form
- #
- # php-X.Y.Z[sub]
- #
- # The distribution ends up in a .tar.gz file that contains the distribution
- # in a directory called php-<version>.
- # A .tar.bz2 file is also created.
- #
- # Written by Stig Bakken <ssb@guardian.no> 1997-05-28.
- # Adapted to git by Stanislav Malyshev <stas@php.net>
- if test "$#" != "1"; then
- echo "Usage: makedist <version>" >&2
- exit 1
- fi
- VER=$1 ; shift
- old_IFS="$IFS"
- IFS=.
- eval set `bison --version| grep 'GNU Bison' | cut -d ' ' -f 4 | sed -e 's/\./ /g'`
- if test "${1}" -lt "3" -o "${1}" = "3" -a "${2}" -eq "0" -a "${3}" -lt "2"; then
- echo "You will need bison >= 3.0.2 if you want to regenerate the Zend parser (found ${1}.${2}.${3})."
- exit 2
- fi
- eval set `re2c --version| grep 're2c' | cut -d ' ' -f 2 | sed -e 's/\./ /g'`
- if test "${2}" -lt "13" -o "${2}" -eq "13" -a "${3}" -lt "5"; then
- echo "You will need re2c >= 0.13.5 if you want to regenerate the Zend scanner (found ${1}.${2}.${3})."
- exit 2
- fi
- IFS="$old_IFS"
- if test "x$PHPROOT" != "x"; then
- remote_option=--remote=$PHPROOT
- else
- remote_option=
- fi
- LT_TARGETS='ltconfig ltmain.sh config.guess config.sub'
- if echo '\c' | grep -s c >/dev/null 2>&1
- then
- ECHO_N="echo -n"
- ECHO_C=""
- else
- ECHO_N="echo"
- ECHO_C='\c'
- fi
- MY_OLDPWD=`pwd`
- # the destination .tar.gz file
- ARCHIVE=$MY_OLDPWD/php-$VER.tar
- # temporary directory used to check out files from SVN
- DIR=php-$VER
- DIRPATH=$MY_OLDPWD/$DIR
- if test -d "$DIRPATH"; then
- echo "The directory $DIR" >&2
- echo "already exists, rename or remove it and run makedist again." >&2
- exit 1
- fi
- # Export PHP
- $ECHO_N "makedist: exporting tag 'php-$VER' from '$PHPROOT'...$ECHO_C"
- git archive --format=tar $remote_option refs/tags/php-$VER --prefix=php-$VER/ | (cd $MY_OLDPWD; tar xvf -) || exit 4
- echo ""
- cd $DIR || exit 5
- # hide away our own versions of libtool-generated files
- for i in $LT_TARGETS; do
- if test -f "$i"; then
- mv $i $i.bak
- cp $i.bak $i
- fi
- done
- # generate some files so people don't need bison, re2c and autoconf
- # to install
- set -x
- ./buildconf --copy --force
- # remove buildmk.stamp. Otherwise, buildcheck.sh might not be run,
- # when a user runs buildconf in the distribution.
- rm -f buildmk.stamp
- ./genfiles
- # now restore our versions of libtool-generated files
- for i in $LT_TARGETS; do
- test -f "$i" && mv $i.bak $i
- done
- # removing junk files
- find . -name \*.orig -print0 | xargs -0 rm
- rm -fr autom4te.cache/
- # touching everything to be packaged
- find $MY_OLDPWD/php-$VER -exec touch -c {} \;
- # tweak zendparse to be exported through ZEND_API
- # NOTE this has to be revisited once bison supports foreign skeletons
- # and that bison version is used. Read /usr/share/bison/README for more
- sed -i 's,^int zendparse\(.*\),ZEND_API int zendparse\1,g' $MY_OLDPWD/php-$VER/Zend/zend_language_parser.c
- sed -i 's,^int zendparse\(.*\),ZEND_API int zendparse\1,g' $MY_OLDPWD/php-$VER/Zend/zend_language_parser.h
- sed -i 's,^#ifndef YYTOKENTYPE,#include "zend.h"\n#ifndef YYTOKENTYPE,g' $MY_OLDPWD/php-$VER/Zend/zend_language_parser.h
- # download pear
- $ECHO_N "makedist: Attempting to download PEAR's phar archive"
- if test ! -x wget; then
- wget https://pear.php.net/install-pear-nozlib.phar -nd -P pear/
- if [ "x$?" != "x0" ]
- then
- $ECHO_N "Pear download failed";
- exit 7
- fi
- else
- $ECHO_N "Missing wget binary needed for pear download";
- exit 7
- fi
- cd $MY_OLDPWD
- $ECHO_N "makedist: making gzipped tar archive...$ECHO_C"
- rm -f $ARCHIVE.gz
- tar cf $ARCHIVE php-$VER || exit 8
- gzip -9 $ARCHIVE || exit 9
- echo ""
- $ECHO_N "makedist: making bz2zipped tar archive...$ECHO_C"
- rm -f $ARCHIVE.bz2
- tar cf $ARCHIVE php-$VER || exit 10
- bzip2 -9 $ARCHIVE || exit 11
- echo ""
- $ECHO_N "makedist: making xz2zipped tar archive...$ECHO_C"
- rm -f $ARCHIVE.xz
- tar cf $ARCHIVE php-$VER || exit 10
- xz -9 $ARCHIVE || exit 12
- echo ""
- $ECHO_N "makedist: cleaning up...$ECHO_C"
- rm -rf $DIRPATH || exit 13
- echo ""
- exit 0
|