X-Git-Url: https://git.tld-linux.org/?a=blobdiff_plain;f=macros.tld;h=d993c2bc70e0b8805dce3095540a53b271fcad66;hb=HEAD;hp=7b3e1e33c1bde5b5bcd1fef505f4afd20ee041cf;hpb=bd795208f1ec3774879d8e60f46efe38dfac057a;p=packages%2Frpm-tld-macros.git diff --git a/macros.tld b/macros.tld index 7b3e1e3..d993c2b 100644 --- a/macros.tld +++ b/macros.tld @@ -27,6 +27,8 @@ %_lispdir %{_datadir}/emacs/site-lisp %_initddir %{_sysconfdir}/rc.d/init.d +%_metainfodir %{_datadir}/metainfo + %_defaultdocdir %{_usr}/share/doc %_fmoddir %{_libdir}/gfortran/modules @@ -39,7 +41,7 @@ # Location of pkgconfig files %_pkgconfigdir /usr/%{_lib}/pkgconfig -# noarch pkgconfig files +# noarch pkgconfig files (since 1.446) %_npkgconfigdir /usr/share/pkgconfig # Location of desktop files @@ -55,10 +57,13 @@ # Location of fonts directories %_fontsdir /usr/share/fonts -# Location of Gtk and associated libraries documentation +# Location of Gtk and associated libraries documentation (since 1.98) %_gtkdocdir %{_defaultdocdir}/gtk-doc/html -# Location of KDE documentation +# Common subdirectory for gi-docgen generated libraries documentation (since 2.029) +%_gidocdir %{_defaultdocdir}/gi-doc + +# Location of KDE documentation (since 1.129) %_kdedocdir %{_defaultdocdir}/kde/HTML # unsermake script @@ -82,7 +87,6 @@ %{__spec_install_post_chrpath}\ %{__spec_install_post_compress_modules}\ %{__spec_install_post_check_so}\ -%{__spec_install_post_check_tmpfiles}\ %{__spec_install_post_check_shebangs}\ %{__spec_install_post_compress_docs}\ %{__spec_install_post_py_hardlink}\ @@ -100,9 +104,7 @@ # Template for debug information sub-package. %_enable_debug_packages 1 -%debug_package \ -%ifnarch noarch\ -%global __debug_package 1\ +%_debuginfo_template \ %package debuginfo\ Summary: Debug information for package %{name}\ Summary(pl.UTF-8): Informacje dla debuggera dla pakietu %{name}\ @@ -119,6 +121,32 @@ Informacje te są przydatne przy rozwijaniu aplikacji używających tego\ pakietu oraz przy odpluskwianiu samego pakietu.\ %files debuginfo -f debugfiles.list\ %defattr(-,root,root)\ +%{nil} + +%_debugsource_template \ +%package debugsource\ +Summary: Debug sources for package %{name}\ +Summary(pl.UTF-8): Źródła dla debuggera dla pakietu %{name}\ +Group: Development/Debug\ +AutoReqProv: 0\ +%description debugsource\ +This package provides debug sources for package %{name}.\ +Debug sources are useful when developing applications that use this\ +package or when debugging this package.\ +%description debugsource -l pl.UTF-8\ +Ten pakiet dostarcza źródła dla debuggera dla pakietu %{name}.\ +Źródła te są przydatne przy rozwijaniu aplikacji używających tego\ +pakietu oraz przy odpluskwianiu samego pakietu.\ +%files debugsource -f debugsourcefiles.list\ +%{nil} + +%debug_package \ +%ifnarch noarch\ +%global __debug_package 1\ +%_debuginfo_template\ +%if 0%{?_debugsource_packages}\ +%_debugsource_template\ +%endif\ %endif\ %{nil} @@ -171,7 +199,7 @@ pakietu oraz przy odpluskwianiu samego pakietu.\ %debugcppflags %{nil} %debugldflags %{nil} -%optldflags -Wl,--as-needed -Wl,--no-copy-dt-needed-entries -Wl,-z,relro -Wl,-z,combreloc +%optldflags -Wl,--as-needed -Wl,--no-copy-dt-needed-entries -Wl,-z,relro -Wl,-z,combreloc %{?use_ld:-Wl,-fuse-ld=%{use_ld}} %optcppflags %{nil} # common compilation flags @@ -227,7 +255,7 @@ pakietu oraz przy odpluskwianiu samego pakietu.\ %__make /usr/bin/make %{?_make_opts} %{?_smp_mflags} %__scons /usr/bin/scons %{?_smp_mflags} %__waf /usr/bin/waf %{?_smp_mflags} -%__cmake /usr/bin/cmake -Wno-dev +%__cmake /usr/bin/cmake %__meson /usr/bin/meson %__meson_wrap_mode nodownload %__ninja /usr/bin/ninja @@ -259,10 +287,10 @@ pakietu oraz przy odpluskwianiu samego pakietu.\ elif [ -d $HOME/rpm/SPECS -a -d $HOME/rpm/SOURCES ]; then \ # if old style rpm dir exist, go with it echo $HOME/rpm; \ - elif [ -x ../builder -a ! -d ../builder ]; then + elif [ -x ../builder -a ! -d ../builder ] && [ "$(realpath -s ../builder)" != "/usr/bin/builder" ]; then # relative new style rpmdir: in package dir cd ..; pwd - elif [ -x builder -a ! -d builder ]; then + elif [ -x builder -a ! -d builder ] && [ "$(realpath -s builder)" != "/usr/bin/builder" ]; then # relative new style rpmdir: in packages pwd elif [ -x packages/builder -a ! -d packages/builder ]; then @@ -461,8 +489,16 @@ pakietu oraz przy odpluskwianiu samego pakietu.\ %{?__cxx:CXX="${CXX:-%{__cxx}}"} \\\ CPPFLAGS="${CPPFLAGS:-%{rpmcppflags}}" \\\ %{__cmake} \\\ - -DCMAKE_VERBOSE_MAKEFILE=BOOL:ON \\\ + -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON \\\ -DCMAKE_BUILD_TYPE=%{!?debug:TLD}%{?debug:Debug} \\\ + -DCMAKE_SYSTEM_NAME=Linux \\\ + -DCMAKE_SYSTEM_VERSION="%(uname -r)" \\\ + -DCMAKE_CROSSCOMPILING:BOOL=FALSE \\\ +%ifarch x32\ + -DCMAKE_SYSTEM_PROCESSOR=x86_64 \\\ +%else\ + -DCMAKE_SYSTEM_PROCESSOR=%{_target_cpu} \\\ +%endif\ -DCMAKE_INSTALL_BINDIR:PATH=%{_bindir} \\\ -DCMAKE_INSTALL_SBINDIR:PATH=%{_sbindir} \\\ -DCMAKE_INSTALL_LIBEXECDIR:PATH=%{_libexecdir} \\\ @@ -495,6 +531,7 @@ CPPFLAGS="${CPPFLAGS:-%{rpmcppflags}}" \\\ -DBUILD_SHARED_LIBS:BOOL=ON \\\ %{nil} +# scons (since 1.385) %scons { \ %{__scons} \ LDFLAGS="${LDFLAGS:-%rpmldflags}" \ @@ -508,7 +545,7 @@ CPPFLAGS="${CPPFLAGS:-%{rpmcppflags}}" \\\ prefix=%{_prefix} \ } -# waf. see waf.spec +# waf. see waf.spec (since 1.336) %waf { \ CC="%{__cc}" \ CXX="%{__cxx}" \ @@ -519,7 +556,7 @@ LINKFLAGS="%{rpmldflags}" \ %{__waf} \ } -# meson +# meson (since 1.727) %meson { \ %{?__cc:CC="${CC:-%{__cc}}"} \ %{?__cxx:CXX="${CXX:-%{__cxx}}"} \ @@ -527,6 +564,8 @@ CFLAGS="${CFLAGS:-%{rpmcflags}}" \ CPPFLAGS="${CPPFLAGS:-%{rpmcppflags}}" \ CXXFLAGS="${CXXFLAGS:-%{rpmcxxflags}}" \ LDFLAGS="${LDFLAGS:-%{rpmldflags}}" \ +RUSTC="${RUSTC:-%{__rustc}}" \ +RUSTFLAGS="${RUSTFLAGS:-%{rpmrustflags} --target %rust_target}" \ LC_ALL=C.UTF-8 %{__meson} \ --buildtype=plain \ --bindir=%{_bindir} \ @@ -551,7 +590,7 @@ LC_ALL=C.UTF-8 %{__meson} \ %meson_install %___meson_deprecate meson_install ninja_install %meson_test %___meson_deprecate meson_test ninja_test -# ninja +# ninja (since 1.736) %ninja_build LC_ALL=C.UTF-8 %{__ninja} %{__ninja_common_opts} %ninja_install LC_ALL=C.UTF-8 DESTDIR=%{buildroot} %{__ninja} install %{__ninja_common_opts} %ninja_test LC_ALL=C.UTF-8 %{__ninja} test %{__ninja_common_opts} @@ -625,13 +664,13 @@ LC_ALL=C.UTF-8 %{__meson} \ %__without_if() %{expand:%%{?with_%{1}:--without-%{?2}%{!?2:%{1}}}} %__with_without_not() %{expand:%%{!?with_%{1}:--with-%{?2}%{!?2:%{1}}%{?3:=%{3}}}%%{?with_%{1}:--without-%{?2}%{!?2:%{1}}}} -# expands to true or false based on bcond; for use with meson or cmake +# expands to true or false based on bcond; for use with meson or cmake (since 1.729) %__true_false() %{expand:%%{?with_%{1}:true}%%{!?with_%{1}:false}} %__true_false_not() %{expand:%%{?with_%{1}:false}%%{!?with_%{1}:true}} -# expands to enabled or disabled based on bcond; for use with meson or cmake +# expands to enabled or disabled based on bcond; for use with meson or cmake (since 2.000) %__enabled_disabled() %{expand:%%{?with_%{1}:enabled}%%{!?with_%{1}:disabled}} -%__enabled_disabled_not() %{expand:%%{?with_%{1}:enabled}%%{!?with_%{1}:disabled}} +%__enabled_disabled_not() %{expand:%%{?with_%{1}:disabled}%%{!?with_%{1}:enabled}} # for use with cmake: # Usage: cmake_on_off BCOND_NAME [OPTION_NAME] @@ -648,6 +687,8 @@ LC_ALL=C.UTF-8 %{__meson} \ %%prep\ %{nil} +%_build_id_links %{expand:%%define __dic_%{?_enable_debug_packages} 1}%{?__dic_1:alldebug}%{?__dic_0:none}%{expand:%%undefine __dic_%{?_enable_debug_packages}} + # If non-empty "debug" macro defined, add "dbg" suffix to release number %_rpmfilename %%{NAME}-%%{VERSION}-%%{RELEASE}%{?debug:dbg}.%%{ARCH}.rpm @@ -665,12 +706,12 @@ LC_ALL=C.UTF-8 %{__meson} \ # Requires: name = version %requires_eq() %{!?1:ERROR}%{?2:ERROR}%{?1:%{!?2:%{expand:%%requires_eq_to %1 %1}}} # Requires: name = version (version based on querying package %2) -%requires_eq_to(r) %{!?2:ERROR}%{?3:ERROR}%{?2:%{!?3:%(if ! LC_ALL=C rpm -q --qf 'Requires: %1 = %|E?{%{E}:}|%{V}%{?-r:-%{R}}\\n' %2 | grep '^Requires:'; then echo "BuildRequires: %2"; fi)}} +%requires_eq_to(r) %{!?2:ERROR}%{?3:ERROR}%{?2:%{!?3:%(if ! LC_ALL=C rpm -q --whatprovides --qf 'Requires: %1 = %|E?{%{E}:}|%{V}%{?-r:-%{R}}\\n' %2 | grep '^Requires:'; then echo "BuildRequires: %2"; fi)}} # Requires: name >= version %requires_ge() %{!?1:ERROR}%{?2:ERROR}%{?1:%{!?2:%{expand:%%requires_ge_to %1 %1}}} # Requires: name >= version (version based on querying package %2) -%requires_ge_to(r) %{!?2:ERROR}%{?3:ERROR}%{?2:%{!?3:%(if ! LC_ALL=C rpm -q --qf 'Requires: %1 >= %|E?{%{E}:}|%{V}%{?-r:-%{R}}\\n' %2 | grep '^Requires:'; then echo "BuildRequires: %2"; fi)}} +%requires_ge_to(r) %{!?2:ERROR}%{?3:ERROR}%{?2:%{!?3:%(if ! LC_ALL=C rpm -q --whatprovides --qf 'Requires: %1 >= %|E?{%{E}:}|%{V}%{?-r:-%{R}}\\n' %2 | grep '^Requires:'; then echo "BuildRequires: %2"; fi)}} # helper for renaming packages # %rename old-package @@ -799,7 +840,7 @@ if [ -d "$RPM_BUILD_ROOT" ]; then \ echo "DONE"; \ fi; \ fi; \ - filelist=$(find $RPM_BUILD_ROOT -type f ! -regex ".*/usr/lib[x0-9]*/debug/.*\.debug" ! -regex ".*/usr/lib[x0-9]*.*/guile/.*\.go" ! -regex ".*/lib/modules/.*" ! -regex ".*%{_docdir}/.*" ! -regex ".*%{_includedir}/.*" %{?_noautostrip:! -regex "%{_noautostrip}"} %{?_autostripall:! -regex "%{_autostripall}"} %{?_autostripunneeded:! -regex "%{_autostripunneeded}"} %{?_autostripdebug:! -regex "%{_autostripdebug}"}); \ + filelist=$(find $RPM_BUILD_ROOT ! \( -path "*/usr/src/debug" -prune \) -type f ! -regex ".*/usr/lib[x0-9]*/debug/.*\.debug" ! -regex ".*/usr/lib[x0-9]*.*/guile/.*\.go" ! -regex ".*/lib/modules/.*" ! -regex ".*%{_docdir}/.*" ! -regex ".*%{_includedir}/.*" %{?_noautostrip:! -regex "%{_noautostrip}"} %{?_autostripall:! -regex "%{_autostripall}"} %{?_autostripunneeded:! -regex "%{_autostripunneeded}"} %{?_autostripdebug:! -regex "%{_autostripdebug}"}); \ if [ -n "$filelist" ]; then \ filetypes=`echo "$filelist" | xargs -r -d'\\n' file`; \ elfexelist=`echo "$filetypes" | awk -F: '/ELF.*executable/ {print $1}'`; \ @@ -947,14 +988,6 @@ __spec_install_post_check_execstack() { \ %{!?no_install_post_check_execstack:return $fail;} \ }; __spec_install_post_check_execstack }} -#----------------------------------------------------------------- -# Do not verify if each directory under /var/run contains -# tmpfiles.d configuration. TLD Linux doesn't use tmpfiles.d. -# -%no_install_post_check_tmpfiles 1 -# -%__spec_install_post_check_tmpfiles %{nil} - #----------------------------------------------------------------- # Verify that scripts have reasonable shebangs # Test spec: see "test/spec_install_post_check_shebangs" branch on packages/test.spec @@ -1007,7 +1040,7 @@ __spec_install_post_check_shebangs() { \ %_soname_prov() %(echo "%{1}()%{_soname_tag}" | sed -e 's/^\\([^(]*([^)]\\+)\\)()%{_soname_tag}$/\\1%{_soname_tag}/;s/()$//') #----------------------------------------------------------------- -# Update GConf2 schemas +# Update GConf2 schemas (since 1.198) # # Requires: GConf2 # @@ -1026,7 +1059,7 @@ fi; \ %{nil} #----------------------------------------------------------------- -# Update desktop MIME database +# Update desktop MIME database (since 1.198) # requires: desktop-file-utils %update_desktop_database() {{ \ umask 022; \ @@ -1044,7 +1077,7 @@ fi; \ %{nil} #----------------------------------------------------------------- -# Update shared MIME info database +# Update shared MIME info database (since 1.311) # requires: shared-mime-info # Note: https://bugs.freedesktop.org/show_bug.cgi?id=70366#c19 # https://bugzilla.redhat.com/show_bug.cgi?id=1052173 @@ -1075,7 +1108,7 @@ fi; \ %{nil} #----------------------------------------------------------------- -# Update scrollkeeper database +# Update scrollkeeper database (since 1.198) # requires: scrollkeeper # %scrollkeeper_update_post() \ @@ -1089,7 +1122,7 @@ fi; \ %{nil} #----------------------------------------------------------------- -# Compile GSettings schemas +# Compile GSettings schemas (since 1.592) # requires: glib2 >= 1:2.26.0 # %glib_compile_schemas() {{ \ @@ -1119,7 +1152,6 @@ fi; \ # %__noautoreqfiles %(sed -e s'/#.*//' /etc/rpm/noautoreqfiles)%{?_noautoreqfiles: %{_noautoreqfiles}} %__noautoprovfiles %(sed -e s'/#.*//' /etc/rpm/noautoprovfiles)%{?_noautoprovfiles: %{_noautoprovfiles}} -%__noautoreqdep %(sed -e s'/#.*//' /etc/rpm/noautoreqdep)%{?_noautoreqdep: %{_noautoreqdep}} %__noautoprov %(sed -e s'/#.*//' /etc/rpm/noautoprov) \ %{?_noautoprov: %{_noautoprov}} \ %{?_noautoprov_java: %{__noauto_regexp_helper -p java %{_noautoprov_java}}} \ @@ -1131,6 +1163,7 @@ fi; \ %{nil} %__noautoreq %(sed -e s'/#.*//' /etc/rpm/noautoreq) \ %{?_noautoreq: %{_noautoreq}} \ + %{?_noautoreqdep: %{_noautoreqdep}} \ %{?_noautoreq_java: %{__noauto_regexp_helper -p java %{_noautoreq_java}}} \ %{?_noautoreq_mono: %{__noauto_regexp_helper -p mono %{_noautoreq_mono}}} \ %{?_noautoreq_pear: %{__noauto_regexp_helper -p pear %{_noautoreq_pear}}} \ @@ -1139,6 +1172,29 @@ fi; \ %{?_noautoreq_py3egg: %{__noauto_regexp_helper -p python3egg %{_noautoreq_py3egg}}} \ %{nil} +%__noautodep_helper() %(echo '%*' | awk 'BEGIN { + RS = "\n([ \t]+\n)+"; + FS = " "; +} +{ + split($0, F); + if (length(F) > 0) { + printf("("); + for (i=1; i<=length(F); i++) { + s = F[i]; + sub(/#.*/, "z&z", s); + if (s ~ /^$/) { continue; }; + printf(s); + if (i != length(F)) { printf("|"); }; + }; + printf(")"); + } +}') +%__requires_exclude_from %{__noautodep_helper %{__noautoreqfiles}}%{nil} +%__provides_exclude_from %{__noautodep_helper %{__noautoprovfiles}}%{nil} +%__requires_exclude %{__noautodep_helper %{__noautoreq}}%{nil} +%__provides_exclude %{__noautodep_helper %{__noautoprov}}%{nil} + # helper for wrapping _noautoreq between perl() or pear() # Author: Elan Ruusamäe # Usage: @@ -1160,7 +1216,7 @@ fi; \ # %define _noautoprov_pyegg excluded # %define _noautoprov_py3egg excluded3 # -%__noauto_regexp_helper(p:) %(echo "%*" | awk 'BEGIN{RS=" "}{printf("%{-p*}%{__qchar}(%%s%{__qchar}) ", $1)}') +%__noauto_regexp_helper(p:) %(echo '%*' | awk 'BEGIN{RS=" "}{printf("%{-p*}%{__qchar}(%%s%{__qchar}) ", $1)}') # detect quote character runtime %__qchar_4 \\\\%{nil} %__qchar_5 \\\\\\%{nil} @@ -1192,7 +1248,7 @@ fi; \ # BuildRequires: rpmbuild(macros) >= 1.719 %zsh_compdir /usr/share/zsh/site-functions -# depmod macro +# depmod macro (since 1.184) %depmod() { \ umask 022; \ if [ -e /boot/System.map-%1 ]; then \ @@ -1206,7 +1262,7 @@ else \ fi; \ } -# user/group checking macros +# user/group checking macros (since 1.202) # # Usage: # %userremove myuser @@ -1236,7 +1292,7 @@ fi; \ %addusertogroup(q) quiet=%{-q:1} /usr/lib/rpm/user_group.sh user addtogroup %*; \ %{nil} -# banner support (useful in {pre,post}{,un} and triggers) +# banner support (useful in {pre,post}{,un} and triggers) (since 1.194) # # Usage: # %banner name [-a] [-e] [-n] [-tn] [-o] <= n; default n=5 -# -o - show only once, i.e when package is installed for the first time +# -o - show only once, i.e when package is installed for the first time (since 1.595) # # Tests: # (rpm -E '%banner -e banner < m; sh -x m @@ -1270,7 +1326,7 @@ fi \ eval $CMD %{?2:%2}%{?3: %3})%{-o:)} \ %{nil} -# useradd/groupadd macros +# useradd/groupadd macros (since 1.202) # Author: Elan Ruusamäe # # Usage: