%_sys_macros_dir @RPMSYSCONFDIR@/macros.d %build_sysmacrospath() %{_sys_macros_dir}/%{?1:%{1}}%{?!1:%{name}}.macros # Various programs used in rpm scripts %_update_desktop_database_bin %{_bindir}/update-desktop-database %_update_mime_database_bin %{_bindir}/update-mime-database %_update_icon_cache_bin %{_bindir}/gtk-update-icon-cache %_gconftool_bin %{_bindir}/gconftool-2 %_scrollkeeper_bin %{_bindir}/scrollkeeper-update #============================================================================== # ---- Required rpmrc macros. # Macros that used to be initialized as a side effect of rpmrc parsing. # These are the default values that can be overridden by other # (e.g. per-platform, per-system, per-packager, per-package) macros. # %ix86 i386 i486 i586 i686 pentium3 pentium4 athlon k6 # Multilibs %_multilibpatt (/%{_lib}|/usr/%{_lib}(|/gconv)|/usr/local/%{_lib}|/usr/X11R6/%{_lib}|/opt/%{_lib})/[^/]*\\.([oa]|la|so[0-9.]*)$ %_arch_tag_suffix %([ "%{?_lib}" = "lib64" ] && echo "()(64bit)") %arch_tagged() %{1}%{_arch_tag_suffix} %{?2:%{2} %{3}%{?!3:%{error:undefined 3rd argument in arch_tagged}}} # Games macros %_gamesdir games %_gamesbindir %{_prefix}/%{_gamesdir} %_gamesdatadir %{_datadir}/%{_gamesdir} # Menu directories %_menudir %{_prefix}/lib/menu %_iconsdir %{_datadir}/icons %_miconsdir %{_datadir}/icons/mini %_liconsdir %{_datadir}/icons/large %_xfontdir %_datadir/fonts %_webconfdir %{_sysconfdir}/httpd/conf %_webappconfdir %_webconfdir/sites.d # compatibility %webappconfdir %_webappconfdir # For Appdata metainfo %_metainfodir %{_datadir}/metainfo #============================================================================== # ---- Build configuration macros. # # Package version macro. # The type of package to produce, for compatibility with legacy # versions of rpm. # # Script gets packaged file list on input. # Returns list of multiarch files that are not marked as such, # i.e. files in $RPM_BUILD_ROOT that have arch-dependent values # # Note: Disable (by commenting out) for legacy compatibility. #%__check_multiarch_files @RPMLIBDIR@/check-multiarch-files %{buildroot} # Update Menu %_update_menus_bin %{_bindir}/update-menus # Update Window Managers session. %_fndsession_bin %{_sbindir}/fndSession %make_session %{nil} %make_dm_session if [ -x %{_fndsession_bin} ]; then %{_fndsession_bin} || true ; fi \ %{nil} # For rebuilding gcj-db %_rebuildgcjdb_bin %{_bindir}/rebuild-gcj-db %update_gcjdb if [ -x %{_rebuildgcjdb_bin} ]; then %{_rebuildgcjdb_bin} || true ; fi \ %{nil} %clean_gcjdb if [ -x %{_rebuildgcjdb_bin} ]; then %{_rebuildgcjdb_bin} || true ; fi \ %{nil} # Rebuild icon cache # # following themes are handled through filetriggers: %icon_cache_through_filetrigger_hicolor 1 %icon_cache_through_filetrigger_gnome 1 %icon_cache_through_filetrigger_oxygen 1 %update_icon_cache() %{expand: %%{!?icon_cache_through_filetrigger_%1:if [ -x %%{_update_icon_cache_bin} ]; then \ %%{_update_icon_cache_bin} --force --quiet %%{_iconsdir}/%%{1} || true; fi \ %%{nil}}} %clean_icon_cache() %{expand: %%{!?icon_cache_through_filetrigger_%1:if [ -x %%{_update_icon_cache_bin} -a -r %%{_iconsdir}/%%{1}/index.theme ]; then \ %%{_update_icon_cache_bin} --force --quiet %%{_iconsdir}/%%{1} || true ; fi \ %%{nil}}} # GConf schemas: # uninstall still need to be done in %preun: %preun_uninstall_gconf_schemas() if [ "$1" = "0" -a -x %{_gconftool_bin} ]; then \ SCHEMAS="" \ for SCHEMA in %{*} ; do \ SCHEMAS="$SCHEMAS %{_sysconfdir}/gconf/schemas/$SCHEMA.schemas" \ done \ GCONF_CONFIG_SOURCE=`%{_gconftool_bin} --get-default-source` %{_gconftool_bin} --makefile-uninstall-rule $SCHEMAS > /dev/null || true ; fi \ %{nil} # Mageia Linux version # - "9.1" => 910 # - "10.2.2" => 1022 # (user may copy the following line in specfile) %mgaversion %distro_release %distsuffix @DISTSUFFIX@ %__dist_ident %{?distsuffix:%distsuffix}%{?!distsuffix:.mga}%{?distro_release:%distro_release} %__distro_section %{?distro_section:%distro_section}%{?!distro_section:core} %mkrel(c:) %{-c: 0.%{-c*}.}%{1}%{?subrel:.%subrel}%{?dist:%dist}%{?!dist:%__dist_ident}%([ "%{__distro_section}" != "core" ] && echo .%__distro_section) %_logdir %{_var}/log %_localstatedir /var %_pkgdocdir %{_docdir}/%{name} %_docdir_fmt %%{NAME} # Include minimal debug information in build binaries. # Requires _enable_debug_packages. # %_enable_debug_packages 1 %_include_minidebuginfo 1 %_include_gdb_index 1 %_debugsource_packages 1 %_debuginfo_subpackages 1 #------------------------------------------------------------------------------ # definions merged from manbo-setup-build # # Default extension to use (for info files) %_extension .xz %__install_info /sbin/install-info %_install_info() if [[ -f %{_infodir}/%{1}%{_extension} ]]; then %{__install_info} %{_infodir}/%{1}%{_extension} --dir=%{_infodir}/dir; fi \ %{nil} # (nb: keep the "alone on its line ';'") %_remove_install_info() if [ "$1" = "0" ]; then if [[ -f %{_infodir}/%{1}%{_extension} ]]; then %{__install_info} %{_infodir}/%{1}%{_extension} --dir=%{_infodir}/dir --remove ; fi; fi \ %{nil} # Macro: %{mklibname [ []] [-s] [-d]} # - %{mklibname test} => lib64test, on a lib64 platform # - %{mklibname test 1 -d} => libtest1-devel # - %{mklibname test 1 -d 0 -s} => libtest1_0-static-devel %mklibname(ds) %{_lib}%{1}%{?2:%{2}}%{?3:_%{3}}%{-s:-static}%{-d:-devel} # Dynamic EVRD tags macro for use with versioned provides/requires in place of # '%{version}-%{release}', ie. to automatically add distepoch or epoch if present %EVRD %{?epoch:%{epoch}:}%{?version:%{version}}%{?release:-%{release}}%{?distepoch::%{distepoch}} #============================================================================== # ---- compiler flags. # C compiler flags. This is traditionally called CFLAGS in makefiles. # Historically also available as %%{optflags}, and %%build sets the # environment variable RPM_OPT_FLAGS to this value. %debugcflags %{?_enable_debug_packages:-g} %_fortify_cflags -Wp,-D_FORTIFY_SOURCE=2 # cf http://wiki.mandriva.com/en/Development/Packaging/Problems#format_not_a_string_literal_and_no_format_arguments %Werror_cflags -Wformat -Werror=format-security %_ssp_cflags -fstack-protector --param=ssp-buffer-size=4%{?_serverbuild_flags: %_serverbuild_flags} %__common_cflags -O2 %{debugcflags} -pipe %{Werror_cflags} %{?_fortify_cflags} %__common_cflags_with_ssp %{__common_cflags} %{?_ssp_cflags} # Servers opt flags. # Also set the env variables for backward compatibility (mdv #32050). %serverbuild %define _serverbuild_flags -fstack-protector-all \ export CFLAGS="%optflags"; export CXXFLAGS="%optflags"; export RPM_OPT_FLAGS="%optflags" \ %{nil} %make \ %{warn:%%make is deprecated, use %%make_build instead} \ %{__make} -O %_smp_mflags %makeinstall_std \ %{warn:%%makeinstall_std is deprecated, use %%make_install instead} \ make DESTDIR=%{?buildroot:%{buildroot}} install %__fix_libtool_ltmain_from_overlinking @RPMVENDORDIR@/fix-libtool-ltmain-from-overlinking %__fix_libtool_from_moving_options_after_libs @RPMVENDORDIR@/fix-libtool-from-moving-options-after-libs %__fix_dlsearch_path_in_libtool_for_multilib @RPMVENDORDIR@/fix-dlsearch-path-in-libtool-for-multilib %__cputoolize cputoolize %__libtoolize libtoolize %__libtoolize_configure %{?__libtoolize:(cd $CONFIGURE_TOP; [ ! -f configure.in -a ! -f configure.ac ] || %{__libtoolize} --copy --force)} %ldflags %{?!_disable_ld_as_needed: -Wl,--as-needed}%{?!_disable_ld_no_undefined: -Wl,--no-undefined}%{?!_disable_ld_relro: -Wl,-z,relro}%{?!_disable_ld_O1: -Wl,-O1}%{?!_disable_ld_build_id: -Wl,--build-id}%{?!_disable_ld_enable_new_dtags: -Wl,--enable-new-dtags} %setup_compile_flags \ %{warn:%%setup_compile_flags is deprecated, use %%set_build_flags instead} \ %set_build_flags %before_configure \ %set_build_flags \ CONFIGURE_TOP="${CONFIGURE_TOP:-.}"; \ %{?!_disable_ld_as_needed:@RPMVENDORDIR@/force-as-needed-for-shared-lib-in-libtool ;} \ %{?!_disable_ld_no_undefined:@RPMVENDORDIR@/drop-ld-no-undefined-for-shared-lib-modules-in-libtool ;} \ %{__fix_libtool_ltmain_from_overlinking} ; \ %{__fix_libtool_from_moving_options_after_libs} $CONFIGURE_TOP ; \ %{__fix_dlsearch_path_in_libtool_for_multilib} $CONFIGURE_TOP %{_lib} # This is an improved version of %configure (from PLD team). %main_configure \ %before_configure ; \ %{?_legacy_autotools:%{?!_disable_libtoolize:%{?__libtoolize_configure:%{__libtoolize_configure};}}} \ %{!?_legacy_autotools:%{?_enable_libtoolize:%{?__libtoolize_configure:%{__libtoolize_configure};}}} \ [ -f $CONFIGURE_TOP/configure.in -o -f $CONFIGURE_TOP/configure.ac ] && \ CONFIGURE_XPATH="--x-includes=%{_prefix}/include --x-libraries=%{_prefix}/%{_lib}" \ $CONFIGURE_TOP/configure %{!?_legacy_autotools:--build=}%{_target_platform} \\\ %{?_program_prefix:--program-prefix=%{_program_prefix}} \\\ --prefix=%{_prefix} \\\ --exec-prefix=%{_exec_prefix} \\\ --bindir=%{_bindir} \\\ --sbindir=%{_sbindir} \\\ --sysconfdir=%{_sysconfdir} \\\ --datadir=%{_datadir} \\\ --includedir=%{_includedir} \\\ --libdir=%{_libdir} \\\ --libexecdir=%{_libexecdir} \\\ --localstatedir=%{_localstatedir} \\\ --sharedstatedir=%{_sharedstatedir} \\\ --mandir=%{_mandir} \\\ --infodir=%{_infodir} \\\ $CONFIGURE_XPATH # Implement configure shims %configure \ %define _legacy_autotools 1 \ %main_configure %configure2_5x \ %main_configure # Maximum number of CPU's to use when building, 0 for unlimited. %_smp_ncpus_max 0 #============================================================================== # ---- Build policy macros. # # #--------------------------------------------------------------------- # Expanded at beginning of %install scriptlet. # #============================================================================== # ---- specfile macros. # Macro(s) here can be used reliably for reproducible builds. # (Note: Above is the goal, below are the macros under development) # #------------------------------------------------------------------------------ # Useful python macros %pyver %(python -V 2>&1 | cut -f2 -d" " | cut -f1,2 -d".") #------------------------------------------------------------------------------ # Useful perl macros # (initially from Artur Frysiak ) # (modified by Pixel ) # # [...] # Group: Development/Perl # [...] # %build # perl Makefile.PL INSTALLDIRS=vendor # %make # [...] # %install # rm -rf $RPM_BUILD_ROOT # make install PREFIX="$RPM_BUILD_ROOT/%{prefix}" # [...] # %files # %defattr(644,root,root,755) # %{perl_vendorlib}/CGI # or # %{perl_vendorarch}/DBI # %{perl_vendorarch}/auto/DBI # %{_mandir}/*/* # %perl_convert_version() %(perl -Mversion -le ' $x = "%{1}"; $y = $x; $x =~ s/[[:alpha:]]*$//; $y =~ s/^$x//; $x =~ s/\D*$//; $v = version->new($x)->normal; $v =~ s/^v//; print "$v$y"; ') # kept for compatibility, but should not be used, especially the ugly perl_archlib! %perl_sitearch %(eval "`perl -V:installsitearch`"; echo $installsitearch) %perl_archlib %(eval "`perl -V:installarchlib`"; echo $installarchlib) #-------------------------------------------------------------------------------- # Macro from conectiva %rename() \ Obsoletes: %{1} <= %{?epoch:%epoch}%{?!epoch:0}:%{version}-%{release} \ Provides: %{1} = %{?epoch:%epoch}%{?!epoch:0}:%{version}-%{release} # Shorthand for %{defined with_...} # macros provided by rpm 4.4, but buggy :( %_with() %{expand: %%{?_with_%1:1} %%{!?_with_%1: %%{?_without_%1:0} %%{!?_without_%1: %%{?with_%1:%%{with_%1}} %%{!?with_%1: %%{?without_%1:!%%{without_%1}} %%{!?without_%1: %%{?2:%%2} %%{!?2:1} } } } } } %_without() !%{expand: %%{with %1 %{?2:%2}}} %_package_i18n(g:f:) \ %%package -n %{?1:%{1}}%{?!1:%{name}}-i18n\ Summary: Internationalization and locale data for %{?1:%{1}}%{?!1:%{name}}\ License: %{license}\ Group: %{?-g:%{-g*}}%{?!-g:%{group}}\ \ %%description -n %{?1:%{1}}%{?!1:%{name}}-i18n\ Internationalization and locale data for %{?1:%{1}}%{?!1:%{name}}\ \ %%files -n %{?1:%{1}}%{?!1:%{name}}-i18n %{?-f:%{-f}}%{?!-f:-f %{?1:%{1}}%{?!1:%{name}}.lang}\ %{nil} #------------------------------------------------------------------------------ # Python specific macros # More Python specific macro definitions (originally from PLD). # # backward compatibility %py_platlibdir %(python -c 'import distutils.sysconfig; print distutils.sysconfig.get_python_lib(standard_lib=1,plat_specific=1)' 2>/dev/null || echo PYTHON-LIBDIR-NOT-FOUND) %py_purelibdir %(python -c 'import distutils.sysconfig; print distutils.sysconfig.get_python_lib(standard_lib=1,plat_specific=0)' 2>/dev/null || echo PYTHON-LIBDIR-NOT-FOUND) %py_platsitedir %(python -c 'import distutils.sysconfig; print distutils.sysconfig.get_python_lib(plat_specific=1)' 2>/dev/null || echo PYTHON-LIBDIR-NOT-FOUND) %py_puresitedir %(python -c 'import distutils.sysconfig; print distutils.sysconfig.get_python_lib()' 2>/dev/null || echo PYTHON-LIBDIR-NOT-FOUND) #------------------------------------------------------------------------------ # Java Macros # %gcj_support 0 %gcj_native \ %if %{gcj_support} \ BuildRequires: java-gcj-compat-devel \ %else \ BuildArch: noarch \ %endif %aot_compile_rpm_bin %{_bindir}/aot-compile-rpm %gcj_compile \ %if %{gcj_support} \ %aot_compile_rpm_bin \ %endif %gcj_files \ %if %{gcj_support} \ %dir %{_libdir}/gcj/%{name} \ %attr(-,root,root) %{_libdir}/gcj/%{name}/* \ %endif %remove_java_binaries \ find . -name "*.jar" -delete %create_jar_links() \ pushd %{buildroot}%{_javadir}; \ for jar in *-%{version}.jar; do ln -sf ${jar} ${jar/-%{version}/}; done \ popd #------------------------------------------------------------------------------ # Ocaml macro # %ocaml_sitelib %(if [ -x /usr/bin/ocamlc ]; then ocamlc -where;fi)/site-lib #------------------------------------------------------------------------------ # Systemd and general service related macros # %_tmpfilescreate() /usr/bin/systemd-tmpfiles --create %{1}.conf \ %{nil} # Minimum versions for various packaging helpers. # These is defined here to easy upgrading from previous distros when the various # service helpers change and thus those pacakges need to be installed first to # ensure a smooth upgrade %rpmhelper_required_version 0.24.11 %systemd_required_version 195 #------------------------------------------------------------------------------ # Redefine RPM sections to allow jumping over them using "--without
". # This an interesting alternative to --short-circuit. # The following are mostly equivalent: # % rpmbuild -bi --short-circuit foo.spec && rpmbuild -bb --short-circuit foo.spec # % rpmbuild -bb --without build foo.spec %prep %%prep \ [ %{_with prep} -eq 1 ] || exit 0 \ [ %{_with build} -eq 1 ] || exit 0 \ [ %{_with install} -eq 1 ] || exit 0 \ %{nil} %build %%build \ [ %{_with install} -eq 1 ] || exit 0 \ [ %{_with build} -eq 1 ] || exit 0 \ %{nil} #--------------------------------------------------------------------- # Expanded at beginning of %install scriptlet. # %__spec_install_pre %{___build_pre}\ if [ %{_with install} -eq 1 ]; then\ [ "$RPM_BUILD_ROOT" != "/" ] && rm -rf "${RPM_BUILD_ROOT}"\ mkdir -p `dirname "$RPM_BUILD_ROOT"`\ mkdir "$RPM_BUILD_ROOT"\ fi #--------------------------------------------------------------------- # Expanded at end of %install scriptlet. %__brp_strip /usr/lib/rpm/brp-strip %{__strip} %__brp_strip_comment_note /usr/lib/rpm/brp-strip-comment-note %{__strip} %{__objdump} %__brp_strip_static_archive /usr/lib/rpm/brp-strip-static-archive %{__strip} %__brp_strip_shared /usr/lib/rpm/brp-strip-shared %{__strip} %__brp_python_bytecompile /usr/lib/rpm/brp-python-bytecompile "%{__python}" "%{?_python_bytecompile_errors_terminate_build}" "%{?_python_bytecompile_extra}" %__brp_python_hardlink /usr/lib/rpm/brp-python-hardlink # __brp_mangle_shebangs_exclude - shebangs to exclude # __brp_mangle_shebangs_exclude_file - file from which to get shebangs to exclude # __brp_mangle_shebangs_exclude_from - files to ignore # __brp_mangle_shebangs_exclude_from_file - file from which to get files to ignore %__brp_mangle_shebangs /usr/lib/rpm/redhat/brp-mangle-shebangs %{?__brp_mangle_shebangs_exclude:--shebangs "%{?__brp_mangle_shebangs_exclude}"} %{?__brp_mangle_shebangs_exclude_file:--shebangs-from "%{__brp_mangle_shebangs_exclude_file}"} %{?__brp_mangle_shebangs_exclude_from:--files "%{?__brp_mangle_shebangs_exclude_from}"} %{?__brp_mangle_shebangs_exclude_from_file:--files-from "%{__brp_mangle_shebangs_exclude_from_file}"} %__os_install_post \ %{?__spec_helper_post}%{?!__spec_helper_post:/usr/share/spec-helper/spec-helper} \ %{!?__debug_package:\ %{?__brp_strip} \ %{?__brp_strip_comment_note} \ %{?__brp_strip_static_archive} \ %{?__brp_strip_shared} \ } \ %{?py_auto_byte_compile:%{?__brp_python_bytecompile}} \ %{?__brp_python_hardlink} \ %{?__brp_mangle_shebangs} \ %{nil} %install %{?_enable_debug_packages:%{?buildsubdir:%{debug_package}}}\ %%install\ [ %{_with install} -eq 1 ] || exit 0 \ %{nil} %check %%check \ [ %{_with check} -eq 1 ] || exit 0 \ %{nil} # # Should missing buildids terminate a build? %_missing_build_ids_terminate_build 1 # ## Automatically compile python files %py_auto_byte_compile 1 # ## Should python bytecompilation errors terminate a build? %_python_bytecompile_errors_terminate_build 1 ## Should python bytecompilation compile outisde python specific directories? %_python_bytecompile_extra 1 # Use SHA-256 for FILEDIGESTS instead of default MD5 %_source_filedigest_algorithm 8 %_binary_filedigest_algorithm 8 # Use Zstandard compression for binary payloads %_binary_payload w19.zstdio # Automatically trim changelog entries after 2 years %_changelog_trimtime %{lua:print(os.time() - 2 * 365 * 86400)}