[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