]> git.pld-linux.org Git - packages/rpm.git/blobdiff - rpm.macros
- %filterout_* support (in build-specyfic macros because of awk requeriment)
[packages/rpm.git] / rpm.macros
index b6ddebb8a7dafda902aeac90879d06582f097390..df7db86271ce7dbc1fd87a798aa149e24a87cf64 100644 (file)
@@ -31,6 +31,7 @@ fi; \
 
 %__glib_gettextize     glib-gettextize --copy --force
 %__gnome_doc_common    gnome-doc-common --copy
+%__gnome_doc_prepare   gnome-doc-prepare --copy --force
 %__gtkdocize           gtkdocize --copy
 %__intltoolize         intltoolize --copy --force
 %__libtoolize          libtoolize --copy --force
@@ -50,6 +51,46 @@ fi; \
 #      and that both p and q are package names (i.e. no version/release).
 %_dependency_whiteout  %{nil}
 
+
+#-----------------------------------------------------------------
+#
+# (re)definition of %{rpm*flags} with %filterout_* support
+# Requires:            awk
+#
+# Flags specified in %filterout_* are removed from %rpm*flags, exactly:
+# %rpmcflags   = %optflags - %filterout_c - %filterout_ld
+# %rpmcxxflags = %rpmcflags - %filterout_cxx
+# %rpmldflags  = %optldflags - %filterout_ld
+#
+# Regular expressions are supported, but to avoid some character be treated
+# as regular expression it must be escaped twice.
+
+%filter_out                                            \
+       for (i in I) {  A=0;                    \
+               for (f in F) {                          \
+                       if (I[i] ~ "^" F[f] "$") A=1;   \
+               };                                                      \
+               if (!A) printf(I[i] FS);        \
+       }
+
+%rpmcflags %(awk 'BEGIN {
+       split("%{?debug:%debugcflags}%{!?debug:%optflags}%{?debuginfocflags}",I);
+       split("%{?filterout_c} %{?filterout_ld}",F);
+       %{filter_out}
+}')
+
+%rpmcxxflags %(awk 'BEGIN {
+       split("%{rpmcflags}",I);
+       split("%{?filterout_cxx}",F);
+       %{filter_out}
+}')
+
+%rpmldflags %(awk 'BEGIN {
+       split("%{optldflags}",I);
+       split("%{?filterout_ld}",F)
+       %{filter_out}
+}')
+
 #-----------------------------------------------------------------
 %configure2_13 { \
  if [ -n "$LINGUAS" ]; then unset LINGUAS; fi; \
@@ -202,7 +243,7 @@ unset LINGUAS ||:\
 %releq_kernel_up()             %((LC_ALL="C" rpm -qf --qf '%%{name}-up = %%{epoch}:%%{version}-%%{release}\\n' %{_kernelsrcdir}/include/linux/version.h 2>/dev/null || echo ERROR) | sed -e 's/ (none):/ /' | sed -e 's:-headers::' | grep -vE "(is not|no such)")
 %releq_kernel_smp()            %((LC_ALL="C" rpm -qf --qf '%%{name}-smp = %%{epoch}:%%{version}-%%{release}\\n' %{_kernelsrcdir}/include/linux/version.h 2>/dev/null || echo ERROR) | sed -e 's/ (none):/ /' | sed -e 's:-headers::' | grep -vE "(is not|no such)")
 %requires_releq_kernel_up(s:)  Requires%{-s:(%{-s*})}: %releq_kernel_up
-%requires_releq_kernel_smp(s:)         Requires%{-s:(%{-s*})}: %releq_kernel_smp
+%requires_releq_kernel_smp(s:) Requires%{-s:(%{-s*})}: %releq_kernel_smp
 
 %requires_eq()         %(echo '%*' | LC_ALL="C" xargs -r rpm -q --qf 'Requires: %%{name} = %%{epoch}:%%{version}\\n' | sed -e 's/ (none):/ /' -e 's/ 0:/ /' | grep -v "is not")
 %requires_eq_to() %(LC_ALL="C" rpm -q --qf 'Requires: %1 = %%{epoch}:%%{version}\\n' %2 | sed -e 's/ (none):/ /' | grep -v "is not")
@@ -278,12 +319,15 @@ unset LINGUAS ||:\
        elfarchiveslist=`echo $filelist | xargs -r file | \
                awk '/current ar archive/ {print $1}' | cut -d: -f1`; \
        if [ -n "$elfexelist" ]; then \
+               chmod u+w $elfexelist; \
                %{__strip} --remove-section=.note --remove-section=.comment $elfexelist; \
        fi; \
        if [ -n "$elfsharedlist" ]; then \
+               chmod u+w $elfsharedlist; \
                %{__strip} --strip-unneeded --remove-section=.note --remove-section=.comment $elfsharedlist; \
        fi; \
        if [ -n "$elfarchiveslist" ]; then \
+               chmod u+w $elfarchiveslist; \
                %{__strip} --strip-debug --remove-section=.note --remove-section=.comment $elfarchiveslist; \
        fi; \
 fi; }; __spec_install_post_strip } } }
@@ -368,16 +412,34 @@ fi \
 #
 %update_desktop_database_post() {{ \
        umask 022; \
-       /usr/bin/update-desktop-database; \
+       /usr/bin/update-desktop-database -q; \
 }}
 
 %update_desktop_database_postun() {{ \
 if [ $1 = 0 ]; then \
        umask 022; \
-       /usr/bin/update-desktop-database; \
+       /usr/bin/update-desktop-database -q; \
 fi \
 }}
 
+#-----------------------------------------------------------------
+# Update shared MIME info database
+# requires: shared-mime-info
+#
+%update_mime_database() {{ \
+       umask 022; \
+       /usr/bin/update-mime-database %{_datadir}/mime; \
+}}
+
+#-----------------------------------------------------------------
+# Update icon cache
+# requires: gtk+
+#
+%update_icon_cache() {{ \
+       umask 022; \
+       /usr/bin/gtk-update-icon-cache -qf %{_datadir}/icons/%1; \
+}}
+
 #-----------------------------------------------------------------
 # Update scrollkeeper database
 # requires: scrollkeeper
This page took 0.032641 seconds and 4 git commands to generate.