X-Git-Url: http://git.pld-linux.org/?p=packages%2Frpm-build-tools.git;a=blobdiff_plain;f=pearize.sh;h=55363d632872cbdab1839d6f96d98300f41d3f83;hp=25800744ee09826deb7048e707ea3d43250db531;hb=947500436acb28d51898eff42b7eb0a6b0159faa;hpb=d340622b0c24b84aec4395b03fb325611cde2eb5 diff --git a/pearize.sh b/pearize.sh old mode 100644 new mode 100755 index 2580074..55363d6 --- a/pearize.sh +++ b/pearize.sh @@ -6,6 +6,11 @@ # # needs 'pear' for 'pear make-rpm-spec' command, ./builder for fetching sources. # You should have all PEAR packages installed to get best results (needed for epoch autodetection) +# So far there are 3 packages with epoch > 0: +# $ grep ^Epoch:.* php-pear-*.spec | grep -v 'Epoch:.*0' +# php-pear-MDB2.spec:Epoch: 1 +# php-pear-MDB.spec:Epoch: 1 +# php-pear-PEAR.spec:Epoch: 1 # # To create completely new PEAR package spec, follow something like this: # $ pear download RDF-alpha @@ -23,6 +28,9 @@ # # Send blames and beerideas to glen@pld-linux.org +PROGRAM=${0##*/} +APPDIR=$(d=$0; [ -L "$d" ] && d=$(readlink -f "$d"); dirname "$d") + set -e spec="$1" if [ -z "$spec" ]; then @@ -53,7 +61,7 @@ if [ -z "$tarball" ]; then fi if [ ! -f $tarball ]; then - ./builder -g "$spec" + $APPDIR/builder -g "$spec" fi stmp=$(mktemp "${TMPDIR:-/tmp}/fragXXXXXX") @@ -96,8 +104,12 @@ preamble=$(mktemp "${TMPDIR:-/tmp}/fragXXXXXX") sed -ne '/^Name:/,/^BuildRoot/p' $spec > $preamble # create backup -bak=$(cp -fbv $spec $spec | awk '{print $NF}' | tr -d "['\`]" ) +bak=$(LC_ALL=C cp -fbv $spec $spec | awk '{print $NF}' | tr -d "['\`]" ) +# ensure rpm-build-macros is present +if ! grep -q "^BuildRequires:.*rpmbuild(macros)" $preamble; then + sed -i -e "/^BuildRequires:.*rpm-php-pearprov/aBuildRequires:\trpmbuild(macros) >= 1.300" $spec +fi # parse requires requires=$(grep '^BuildRequires:' $template || :) if [ -n "$requires" ]; then @@ -135,6 +147,11 @@ fi optional=$(grep '^Suggests:' $template || :) if [ -n "$optional" ]; then echo "$optional" | while read tag dep; do + dep=$(add_epoch $dep) + if ! grep -q "^Suggests:.*$dep" $preamble; then + sed -i -e "/^BuildRoot/iSuggests:\t$dep" $spec + fi + for req in $dep; do case "$req" in php-pear-*) @@ -214,10 +231,15 @@ fi # parse state state=$(awk '/^State:/{print $2}' $template) -sed -i -e "/^%define.*_status/{ - /%define.*_status.*$state/!s/.*/%define\t\t_status\t\t$state/ +sed -i -e "/^%define.*_\?status/{ + s/%define[[:space:]]*_status.*/%define\t\t_status\t\t$state/ + s/%define[[:space:]]*status.*/%define\t\tstatus\t\t$state/ }" $spec +# parse license +#license=$(awk '/^License:/{print $2}' $template) +#sed -i -e "s/^License:.*/License:\t$license/" $spec + rm -f $preamble diff=$(mktemp "${TMPDIR:-/tmp}/fragXXXXXX")