]> git.pld-linux.org Git - packages/rpm-build-tools.git/blobdiff - pearize.sh
- fiddle with pear vs core only requires line
[packages/rpm-build-tools.git] / pearize.sh
index c3b460d8e51d8f73291a0581e8111c6047ea3ac9..7c227519d721615c3fa780860a50dab1be381588 100644 (file)
@@ -57,16 +57,13 @@ if [ ! -f $tarball ]; then
 fi
 
 stmp=$(mktemp "${TMPDIR:-/tmp}/fragXXXXXX")
+template=pearize.spec
 cat > $stmp <<'EOF'
 @extra_headers@
-Optional: @optional@
-@optional-pkg@
-@optional-ext@
 License: @release_license@
 State: @release_state@
 EOF
-pear make-rpm-spec --spec-template=$stmp --output=pearize.spec $tarball
-template=pearize.spec
+pear make-rpm-spec --spec-template=$stmp --output=$template $tarball
 rm -f $stmp
 
 mv $template .$template~
@@ -102,11 +99,22 @@ sed -ne '/^Name:/,/^BuildRoot/p' $spec > $preamble
 bak=$(cp -fbv $spec $spec | awk '{print $NF}' | tr -d "['\`]" )
 
 # parse requires
+requires=$(grep '^BuildRequires:' $template || :)
+if [ -n "$requires" ]; then
+       echo "$requires" | while read tag dep; do
+               dep=$(add_epoch $dep)
+               if ! grep -q "^BuildRequires:.*$dep" $preamble; then
+                       sed -i -e "/^BuildRoot/iBuildRequires:\t$dep" $spec
+               fi
+       done
+fi
+
 requires=$(grep '^Requires:' $template || :)
 if [ -n "$requires" ]; then
        echo "$requires" | while read tag dep; do
                dep=$(add_epoch $dep)
                if ! grep -q "^Requires:.*$dep" $preamble; then
+                       dep=$(echo "$dep" | sed -e 's,php-pear-PEAR\b,php-pear-PEAR-core,')
                        sed -i -e "/^BuildRoot/iRequires:\t$dep" $spec
                fi
        done
@@ -124,13 +132,21 @@ if [ -n "$conflicts" ]; then
 fi
 
 # parse optional deps
-optional=$(grep '^Optional:' $template || :)
+optional=$(grep '^Suggests:' $template || :)
 if [ -n "$optional" ]; then
        echo "$optional" | while read tag dep; do
                for req in $dep; do
-                       # strip single quotes that default template includes in @optional@ expand
-                       # TODO: remove in php-pear-PEAR_Command_Packaging package
-                       req=${req#\'} req=${req%\'}
+                       case "$req" in
+                       php-pear-*)
+                               # convert pear package name to file pattern
+                               req=$(echo "$req" | sed -e 's,^php-pear-,pear(,;y,-,/,;s,$,.*),')
+                               ;;
+                       *)
+                               # process only php-pear-* packages
+                               continue
+                               ;;
+                       esac
+
                        m=$(grep "^%define.*_noautoreq" $spec || :)
                        if [ -z "$m" ]; then
                                sed -i -e "/^BuildRoot:/{
@@ -148,6 +164,24 @@ if [ -n "$optional" ]; then
                done
        done
 fi
+
+optional=$(grep '^Optional-ext:' $template || :)
+if [ -n "$optional" ]; then
+       tmp=$(mktemp "${TMPDIR:-/tmp}/fragXXXXXX")
+       echo "$optional" | while read tag ext; do
+               grep -q "PHP extension .$ext" && continue
+               cat > $tmp <<-EOF
+               echo '%{name} can optionally use PHP extension "$ext"' >> optional-packages.txt
+               EOF
+               sed -i -e "
+               /%pear_package_setup/ {
+                       r $tmp
+               }
+               " $spec
+       done
+       rm -f .ext.tmp
+fi
+
 has_opt=$(grep -Ec '^Optional-(pkg|ext):' $template || :)
 if [ "$has_opt" -gt 0 ]; then
        if ! grep -q 'rpmbuild(macros)' $spec; then
@@ -193,4 +227,3 @@ if ! diff -u $bak $spec > $diff; then
 else
        echo "$spec: No diffs"
 fi
-#exit 1
This page took 0.027785 seconds and 4 git commands to generate.