-# PLD rpm macros
+# PLD Linux rpm macros
+# vim:ft=spec
%distribution PLD Linux
-%vendor pld
+%vendor pld
%bugurl http://bugs.pld-linux.org/
%disturl http://www.pld-linux.org/
%pld_release th
-#
+#
# Per-platform rpm configuration file.
#==============================================================================
#
%_vendor pld
%_os linux
-%_target_platform %{_target_cpu}-%{_vendor}-%{_target_os}%{?_gnu}
+%_target_platform %{_target_cpu}-%{_vendor}-%{_target_os}
#==============================================================================
# ---- configure macros. note that most of these are inherited
%_sysconfdir %{_prefix}/etc
%_sharedstatedir /var/lib
%_localstatedir /var
-%_lib lib
%_libdir %{_exec_prefix}/%{_lib}
%_includedir %{_prefix}/include
%_oldincludedir /usr/include
%__compress_doc @prefix@/lib/rpm/compress-doc%{?_noautocompressdoc: --noautocompressdoc='%{_noautocompressdoc}'}
%__os_install_post \
-%ifnarch noarch\
%{__spec_install_post_strip}\
%{__spec_install_post_chrpath}\
%{__spec_install_post_compress_modules}\
-%endif\
%{__spec_install_post_check_so}\
%{__spec_install_post_check_tmpfiles}\
%{__spec_install_post_compress_docs}\
%{__arch_install_post}\
%{nil}
+%__spec_install_post\
+%{expand:%%define __sip_%{?_enable_debug_packages} 1}%{?__sip_1:%{?__debug_package:%{__debug_install_post}}}%{expand:%%undefine __sip_%{?_enable_debug_packages}}\
+%{__arch_install_post}\
+%{__os_install_post}\
+%{nil}
+
#---------------------------------------------------------------------
# Template for debug information sub-package.
%_enable_debug_packages 1
-%{expand:%%define __sip_%{?_enable_debug_packages} 1}%{?__sip_1:%{?__debug_package:%{__debug_install_post}}}%{expand:%%undefine __sip_%{?_enable_debug_packages}}\
%debug_package \
%ifnarch noarch\
#---------------------------------------------------------------------
# Overwrite RPM macros with PLD specific one here.
+%__cp /bin/cp
+%__find /usr/bin/find
+%__grep /bin/grep
+%__lua %{_bindir}/lua
+%__rc %{_bindir}/rc
+%__xar %{_bindir}/xar
+
%_tmppath %(echo "${TMPDIR:-/var/tmp}")
%tmpdir %{_tmppath}
%_rpmfc_magic_path /usr/share/file/magic
-%undefine __scriptlet_requires
-
# provides don't obsolete
%_upgrade_tag name
+# Disable automatic dependencies on symlinks for now (debuginfo packages pull too many deps)
+%_check_symlink_deps 0
+
+# Do not generate executable() dependencies for scriptlets,
+# as it may give false positives, for example:
+# [ ! -x /bin/prog ] || /bin/prog
+# will generate R:/bin/prog and we don't want that as /bin/prog is optional in this case
+# 0 - Use external generator
+# 1 - Use internal generator if available
+# 2 - Use __scriptlet_requires to process scriptlet dependencies
+%_use_internal_dependency_generator 1
+
+%_duplicate_files_terminate_build 1
+%_files_listed_twice_terminate_build 1
+%_unpackaged_subdirs_terminate_build 0
+
#-----------------------------------------------------------------
# CFLAGS and LDFLAGS used to build
-%debuginfocflags %{expand:%%define __dic_%{?_enable_debug_packages} 1}%{?__dic_1: -gdwarf-2 -g2}%{expand:%%undefine __dic_%{?_enable_debug_packages}}
+%debuginfocflags %{expand:%%define __dic_%{?_enable_debug_packages} 1}%{?__dic_1: -gdwarf-4 -fno-debug-types-section -fvar-tracking-assignments -g2}%{expand:%%undefine __dic_%{?_enable_debug_packages}}
# -feliminate-dwarf2-dups disabled until PR ld/3290 is fixed.
-%debugcflags -O0 -g -Wall
-%debugcppflags %{nil}
-%debugldflags %{nil}
+%debugcflags -O0 -g -Wall
+%debugcppflags %{nil}
+%debugldflags %{nil}
-%optldflags -Wl,--as-needed -Wl,-z,relro -Wl,-z,-combreloc
-%optcppflags -D_FORTIFY_SOURCE=2
+%optldflags -Wl,--as-needed -Wl,--no-copy-dt-needed-entries -Wl,-z,relro -Wl,-z,combreloc
+%optcppflags %{nil}
# Warning: those macros are overwritten by macros.build,
# left here for compatibility
-%rpmcflags %{?debug:%debugcflags}%{!?debug:%optflags}%{?debuginfocflags}
-%rpmcxxflags %{rpmcflags}
-%rpmldflags %{!?no_build_with_as_needed:-Wl,--as-needed}
-%rpmcppflags -D_FORTIFY_SOURCE=2
+%rpmcflags %(awk 'BEGIN {
+ split("%{?debug:%debugcflags}%{!?debug:%optflags}%{?debuginfocflags}",I);
+ split("%{?filterout} %{?filterout_c} %{?filterout_ld}",F);
+ %{filter_out}
+}')
+%rpmcppflags %(awk 'BEGIN {
+ split("%{?debug:%debugcppflags}%{!?debug:%optcppflags}%{?debuginfocppflags}",I);
+ split("%{?filterout} %{?filterout_cpp} %{?filterout_cpp}",F);
+ %{filter_out}
+}')
+%rpmcxxflags %(awk 'BEGIN {
+ split("%{?debug:%debugcflags}%{!?debug:%optflags}%{?debuginfocflags}",I);
+ split("%{?filterout} %{?filterout_cxx} %{?filterout_ld}",F);
+ %{filter_out}
+}')
+%rpmldflags %(awk 'BEGIN {
+ split("%{?optldflags}",I);
+ split("%{?filterout_ld}",F)
+ %{filter_out}
+}')
+
+# common compilation flags
+%_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
+%__common_cflags -O2 -fwrapv -pipe %{Werror_cflags} %{debuginfocflags} %{?_fortify_cflags} %{!?nospecflags:%{?specflags}}
+%__common_cflags_with_ssp %{__common_cflags} %{?_ssp_cflags}
# arch macros
%ix86 i386 i486 i586 i686 pentium3 pentium4 athlon
%x8664 x86_64 amd64 ia32e
%ppc ppc ppc7400 ppc7450
-
#---------------------------------------------------------------------
# Expanded at end of %prep
#