[packages/rpm-build-macros/rpm.org: 1/8] - move more scripts from main rpm package

baggins baggins at pld-linux.org
Tue Jan 7 07:48:11 CET 2020


commit d5b7209650dd438908eab500a3d54cf2e7e634fa
Author: Jan Rękorajski <baggins at pld-linux.org>
Date:   Mon Jan 6 17:22:23 2020 +0900

    - move more scripts from main rpm package

 macros.mimetype       |  7 +++++
 rpm-build-macros.spec | 14 +++++++++
 rpm-compress-doc      | 85 +++++++++++++++++++++++++++++++++++++++++++++++++++
 rpm-find-spec-bcond   | 64 ++++++++++++++++++++++++++++++++++++++
 rpm-mimetypedeps      | 21 +++++++++++++
 5 files changed, 191 insertions(+)
---
diff --git a/rpm-build-macros.spec b/rpm-build-macros.spec
index b11ea95..1b1363e 100644
--- a/rpm-build-macros.spec
+++ b/rpm-build-macros.spec
@@ -17,6 +17,8 @@ Source4:	dokuwiki-find-lang.sh
 Source5:	macros.kernel
 Source6:	attr.kernel
 Source7:	rpmrc
+Source8:	rpm-compress-doc
+Source9:	rpm-find-spec-bcond
 
 Source10:	attr.ruby
 Source11:	macros.ruby
@@ -49,6 +51,9 @@ Source51:	macros.webapp
 Source52:	macros.xmms
 Source53:	macros.xorg
 
+Source60:	rpm-mimetypedeps
+Source61:	macros.mimetypedeps
+
 Patch0:		disable-systemd.patch
 #Patchx: %{name}-pydebuginfo.patch
 BuildRequires:	rpm >= 4.4.9-56
@@ -173,6 +178,8 @@ install -d $RPM_BUILD_ROOT%{_usrlibrpm}/{macros.d,pld}
 
 cp -p macros.pld $RPM_BUILD_ROOT%{_usrlibrpm}/macros.build
 cp -p %{SOURCE7} $RPM_BUILD_ROOT%{_usrlibrpm}/pld/rpmrc
+cp -p %{SOURCE8} $RPM_BUILD_ROOT%{_usrlibrpm}/compress-doc
+cp -p %{SOURCE9} $RPM_BUILD_ROOT%{_usrlibrpm}/find-spec-bcond
 
 cat %{SOURCE5} %{SOURCE6} >$RPM_BUILD_ROOT%{_usrlibrpm}/macros.d/kernel
 
@@ -208,6 +215,9 @@ cp -p %{SOURCE51} $RPM_BUILD_ROOT%{_usrlibrpm}/macros.d/webapp
 cp -p %{SOURCE52} $RPM_BUILD_ROOT%{_usrlibrpm}/macros.d/xmms
 cp -p %{SOURCE53} $RPM_BUILD_ROOT%{_usrlibrpm}/macros.d/xorg
 
+cp -p %{SOURCE60} $RPM_BUILD_ROOT%{_usrlibrpm}/mimetypedeps.sh
+cp -p %{SOURCE61} $RPM_BUILD_ROOT%{_usrlibrpm}/macros.d/mimetype
+
 %clean
 rm -rf $RPM_BUILD_ROOT
 
@@ -220,6 +230,7 @@ rm -rf $RPM_BUILD_ROOT
 %{_usrlibrpm}/macros.d/ghc
 %{_usrlibrpm}/macros.d/java
 %{_usrlibrpm}/macros.d/kernel
+%{_usrlibrpm}/macros.d/mimetype
 %{_usrlibrpm}/macros.d/nagios
 %{_usrlibrpm}/macros.d/openldap
 %{_usrlibrpm}/macros.d/perl
@@ -236,6 +247,9 @@ rm -rf $RPM_BUILD_ROOT
 %attr(755,root,root) %{_usrlibrpm}/service_generator.sh
 %attr(755,root,root) %{_usrlibrpm}/find-lang.sh
 %attr(755,root,root) %{_usrlibrpm}/dokuwiki-find-lang.sh
+%attr(755,root,root) %{_usrlibrpm}/compress-doc
+%attr(755,root,root) %{_usrlibrpm}/find-spec-bcond
+%attr(755,root,root) %{_rpmlibdir}/mimetypedeps.sh
 
 %files rubyprov
 %defattr(644,root,root,755)
diff --git a/macros.mimetype b/macros.mimetype
new file mode 100644
index 0000000..5f67ab5
--- /dev/null
+++ b/macros.mimetype
@@ -0,0 +1,7 @@
+#------------------------------------------------------------------------
+# mimetype(...) configuration.
+#
+# Path to script to autogenerate mimetype(foo) provides, based on MimeType
+# key from desktop files.
+#
+%__mimetype_provides %{_usrlibrpm}/mimetypedeps.sh --provides
diff --git a/rpm-compress-doc b/rpm-compress-doc
new file mode 100644
index 0000000..3c5ff93
--- /dev/null
+++ b/rpm-compress-doc
@@ -0,0 +1,85 @@
+#!/bin/sh
+#
+# Compress documentation files found in $DOCDIR. Omit some files we don't
+# want to get compressed.
+#
+# /etc/rpm/noautocompressdoc and --noautocompressdoc= option can contain
+# whitespace delimated list of patters to omit.
+#
+
+#set -x
+
+COMPRESS_CMD="gzip -9nf"
+EXCLUDE_SUFFIXES="htm html jpg jpeg png gif pdf css dia js abw HTM JPG PNG GIF PDF CSS JS"
+EXCLUDE_MASKS=
+RECOMPRESS_BZIP2=yes
+
+nocompressdoc=''
+while [ $# -gt 0 ]; do
+	case "$1" in
+	  --noautocompressdoc=*)
+		EXCLUDE_MASKS=`echo "${1#--noautocompressdoc=}" | sed -e 's/^ *//;s/ *$//;s/ \+/|/g'`
+	esac
+	shift
+done
+
+if [ -r /etc/rpm/noautocompressdoc ]; then
+	exclude=$(cat /etc/rpm/noautocompressdoc | grep -v '^#' | xargs echo | sed -e 's/^ *//;s/ *$//;s/ \+/|/g')
+	if [ -n "${exclude}" ]; then
+		if [ -n "${EXCLUDE_MASKS}" ]; then
+			EXCLUDE_MASKS="${EXCLUDE_MASKS}|${exclude}"
+		else
+			EXCLUDE_MASKS="${exclude}"
+		fi
+	fi
+fi
+
+if [ "$DOCDIR" = "" ] ; then
+	echo '$DOCDIR not set; exiting.'
+	exit 1
+fi
+
+cd $DOCDIR
+
+echo "Compressing documentation in $DOCDIR..."
+
+if test "$EXCLUDE_MASKS" ; then
+	echo "Excluding pattern '$EXCLUDE_MASKS'"
+fi
+
+FIND_CMD="find . -type f "
+for SUF in $EXCLUDE_SUFFIXES ; do
+	FIND_CMD="$FIND_CMD -a -not -name '*.$SUF'"
+done
+
+eval $FIND_CMD | while read FILENAME ; do
+	if test -n "$EXCLUDE_MASKS" ; then
+		if eval "case \$(basename \"$FILENAME\") in
+			 $EXCLUDE_MASKS ) true ;;
+			 * ) false ;;
+			 esac" ; then
+			continue
+		fi
+	fi
+	case "$FILENAME" in
+	*.gz | *.Z)
+		gzip -d "$FILENAME"
+		FILENAME=$(echo "$FILENAME" | sed -e 's/\.gz$//; s/\.Z$//')
+		;;
+	*.bz2)
+		if [ "$RECOMPRESS_BZIP2" = yes ] ; then
+			bzip2 -d "$FILENAME"
+			FILENAME=$(echo "$FILENAME" | sed -e 's/\.bz2$//')
+		else
+			continue
+		fi
+		;;
+	esac
+
+	$COMPRESS_CMD "$FILENAME"
+
+	echo -n "$FILENAME "
+done
+
+echo
+echo "Documentation compressed."
diff --git a/rpm-find-spec-bcond b/rpm-find-spec-bcond
new file mode 100644
index 0000000..a11dece
--- /dev/null
+++ b/rpm-find-spec-bcond
@@ -0,0 +1,64 @@
+#!/bin/sh
+# Display bcond (_with_*, _without_*) macros from given spec 
+# $Id$
+
+if [ "$#" = 0 ]; then
+    echo "Usage: $0 SPEC"
+    exit 1
+fi
+
+SPEC=$1
+if [ $SPEC = "--" ]; then
+    if [ "$#" -lt 2 ]; then
+	echo "Usage: rpmbuild --bcond SPEC"
+	exit 1
+    fi
+    SPEC=$2
+fi
+
+if [ ! -f $SPEC ]; then
+    echo "rpmbuild: $SPEC: no such file"
+    exit 1
+fi
+
+bconds=`awk -F"\n" 'BEGIN { chlog=0 }
+		/^%changelog/ { chlog=1 }
+		/_with(out)?_[_a-zA-Z0-9]+/ && chlog == 0 {
+			match($0, /_with(out)?_[_a-zA-Z0-9]+/);
+	       		print substr($0, RSTART, RLENGTH)                       
+	    	}
+		/^%bcond_with/ && chlog == 0 {
+			match($0, /bcond_with(out)?[ \t]+[_a-zA-Z0-9]+/);
+				 bcond = substr($0, RSTART +5 , RLENGTH -5);
+				 gsub(/[ \t]+/,"_",bcond);
+				 print bcond
+			}' $SPEC | sort -u`
+
+for c in $bconds; do
+    echo -n "$c"
+
+    if ! echo `rpm --eval "%$c"` | grep $c >/dev/null; then
+	echo " (on)"
+    else 
+	echo ""
+    fi
+done
+
+
+for bcond in $bconds; do
+    isset=`awk -F"\n" "BEGIN { val=0 }
+                   /^%define[\t ]+$bcond/ {
+                     if (match(\\$0, /$bcond[\t ]+0[\t ]*$/)) {
+                        val = 0
+                     } else if (match(\\$0, /$bcond[\t ]+1[\t ]*$/)) {
+                        val = 1
+                     } else {
+                        print \"couldn't determine $bcond value from \", \\$0
+                     }
+                  } END { print val }" $SPEC`;
+
+    if [ x"$isset" = x"1" ]; then
+	echo "WARN: $bcond defined in spec";
+    fi
+done
+	 
diff --git a/rpm-mimetypedeps b/rpm-mimetypedeps
new file mode 100644
index 0000000..6c0176d
--- /dev/null
+++ b/rpm-mimetypedeps
@@ -0,0 +1,21 @@
+#!/bin/sh
+
+case $1 in
+-P|--provides)
+	while read filename; do
+	case "$filename" in
+	*.desktop)
+		mime=$(awk -F= '/^MimeType=/{print $2}' "$filename")
+		IFS=';'
+		for type in $mime; do
+			if [ -n "$type" ]; then
+				echo "mimetype($type)"
+			fi
+		done
+		;;
+	esac
+	done
+	;;
+esac
+
+exit 0
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/rpm-build-macros.git/commitdiff/0c4a87cbfb5cfc4b9a707f657b25f01e04db0843



More information about the pld-cvs-commit mailing list