BASH   24

makedist

Guest on 26th May 2022 02:43:41 PM

  1. #!/bin/sh
  2. #
  3. # Distribution generator for git
  4. #
  5. # Usage: makedist version
  6. # Example: makedist 5.4.1
  7. # Example: makedist 5.3.5RC1
  8. #
  9. # To work, this script needs a consistent tagging of all releases.
  10. # Each release of a package should have a tag of the form
  11. #
  12. #  php-X.Y.Z[sub]
  13. #
  14. # The distribution ends up in a .tar.gz file that contains the distribution
  15. # in a directory called php-<version>.  
  16. # A .tar.bz2 file is also created.
  17. #
  18. # Written by Stig Bakken
  19. # Adapted to git by Stanislav Malyshev
  20.  
  21.  
  22. if test "$#" != "1"; then
  23.     echo "Usage: makedist <version>" >&2
  24.     exit 1
  25. fi
  26.  
  27. VER=$1 ; shift
  28.  
  29. old_IFS="$IFS"
  30. IFS=.
  31. eval set `bison --version| grep 'GNU Bison' | cut -d ' ' -f 4 | sed -e 's/\./ /'`
  32. if test "${1}" = "1" -a "${2}" -lt "28"; then
  33.   echo "You will need bison 1.28 if you want to regenerate the Zend parser (found ${1}.${2}).)"
  34.   exit 2
  35. fi
  36. IFS="$old_IFS"
  37.  
  38. PHPROOT=git@git.php.net:php-src.git
  39. LT_TARGETS='ltconfig ltmain.sh config.guess config.sub'
  40.  
  41. if echo '\c' | grep -s c >/dev/null 2>&1
  42. then
  43.     ECHO_N="echo -n"
  44.     ECHO_C=""
  45. else
  46.     ECHO_N="echo"
  47.     ECHO_C='\c'
  48. fi
  49.  
  50. MY_OLDPWD=`pwd`
  51.  
  52. # the destination .tar.gz file
  53. ARCHIVE=$MY_OLDPWD/php-$VER.tar
  54.  
  55. # temporary directory used to check out files from SVN
  56. DIR=php-$VER
  57. DIRPATH=$MY_OLDPWD/$DIR
  58.  
  59. if test -d "$DIRPATH"; then
  60.     echo "The directory $DIR"
  61.     echo "already exists, rename or remove it and run makedist again."
  62.     exit 1
  63. fi
  64.  
  65. # Export PHP
  66. $ECHO_N "makedist: exporting tag 'php-$VER' from '$PHPROOT'...$ECHO_C"
  67. git archive --format=tar --remote=$PHPROOT refs/tags/php-$VER --prefix=php-$VER/ | (cd $MY_OLDPWD; tar xvf -) || exit 4
  68. echo ""
  69.  
  70. cd $DIR || exit 5
  71.  
  72. # hide away our own versions of libtool-generated files
  73. for i in $LT_TARGETS; do
  74.   if test -f "$i"; then
  75.     mv $i $i.bak
  76.     cp $i.bak $i
  77.   fi
  78. done
  79.  
  80. # generate some files so people don't need bison, flex and autoconf
  81. # to install
  82. set -x
  83. ./buildconf --copy --force
  84.  
  85. # remove buildmk.stamp. Otherwise, buildcheck.sh might not be run,
  86. # when a user runs buildconf in the distribution.
  87. rm -f buildmk.stamp
  88.  
  89. ./genfiles
  90.  
  91. # now restore our versions of libtool-generated files
  92. for i in $LT_TARGETS; do
  93.   test -f "$i" && mv $i.bak $i
  94. done
  95.  
  96. # removing junk files
  97. find . -name \*.orig -print0 | xargs -0 rm
  98. rm -fr autom4te.cache/
  99.  
  100. # download pear
  101. $ECHO_N "makedist: Attempting to download PEAR's phar archive"
  102. if test ! -x wget; then
  103.         wget http://pear.php.net/install-pear-nozlib.phar -nd -P pear/
  104. else
  105.         $ECHO_N "Missing wget binary needed for pear download";
  106.         exit 7
  107. fi
  108.  
  109. cd $MY_OLDPWD
  110. $ECHO_N "makedist: making gzipped tar archive...$ECHO_C"
  111. rm -f $ARCHIVE.gz
  112. tar cf $ARCHIVE php-$VER || exit 8
  113. gzip -9 $ARCHIVE || exit 9
  114. echo ""
  115.  
  116. $ECHO_N "makedist: making bz2zipped tar archive...$ECHO_C"
  117. rm -f $ARCHIVE.bz2
  118. tar cf $ARCHIVE php-$VER || exit 10
  119. bzip2 -9 $ARCHIVE || exit 11
  120. echo ""
  121.  
  122. $ECHO_N "makedist: cleaning up...$ECHO_C"
  123. rm -rf $DIRPATH || exit 12
  124. echo ""
  125.  
  126. exit 0

Raw Paste


Login or Register to edit or fork this paste. It's free.