};
}')
+#-----------------------------------------------------------------
+#
+# Generate a command which cleans environment, leaving only the
+# most important variables.
+# If any spec requires any additional environment it should
+# redefine %_preserve_env in following manner:
+#
+# # ADDITIONAL_VAR is required because [a good reason here]
+# %{expand:%%define _preserve_env %_preserve_env ADDITIONAL_VAR}
+
+%_preserve_env PATH HOME TMP TMPDIR
+
+%_clean_env env -i %(awk -vq="'" -vqq="\\"'\\"" -vq2q="'\\"'" 'BEGIN {
+ split("%{?_preserve_env:%_preserve_env}", P);
+ for (i in P) {
+ p = P[i];
+ if (ENVIRON[p]) {
+ split( ENVIRON[p], V, "" );
+ val = p "=";
+ for ( j = 1; j in V; j++ ) {
+ v = V[j];
+ if ( v == q )
+ v = qq;
+ else if ( v == "\\"" )
+ v = q2q;
+ else if ( v == "\\\\" )
+ v = "\\\\\\\\";
+ else
+ gsub( "[^a-zA-Z0-9/:._-]", "\\"&\\"", v );
+ val = val "" v;
+ }
+ printf( val " " );
+ }
+ }
+}')
+
#-----------------------------------------------------------------
%configure2_13 { \
if [ -n "$LINGUAS" ]; then unset LINGUAS; fi; \
#%configure_cache 0
%configure_cache_file %{buildroot}.configure.cache
-%configure {./configure \
+%__configure_sh sh
+%configure {%__configure_sh ./configure \
LDFLAGS="${LDFLAGS:-%rpmldflags}" \
CFLAGS="${CFLAGS:-%rpmcflags}" \
CXXFLAGS="${CXXFLAGS:-%rpmcxxflags}" \
__spec_install_post_check_so() { \
fail=0; \
printf "Searching for shared objects with unresolved symbols..."; \
- for f in $(find $RPM_BUILD_ROOT -type f -name '*.so*' -print); do \
- LC_ALL=C objdump -T $f 2> /dev/null | LC_ALL=C awk -v "file=$f" 'BEGIN { found=0; symbols = "" } /^[0-9a-z]+ +D +\*UND\*/ { found = 1; symbols = symbols "\n\t" $NF } END { if (found) { print "Unresolved symbols found in: " file symbols; exit(1); } } ' || fail=1 ; \
+ for f in $(find $RPM_BUILD_ROOT -type f -name '*.so.*' -print); do \
+ LC_ALL=C objdump -T $f 2> /dev/null | LC_ALL=C awk -v "file=$f" 'BEGIN { found=0; skip["program_name"]=1; symbols = "" } /^[0-9a-z]+ +D +\*UND\*/ { if ($NF in skip) { next; }; found = 1; symbols = symbols "\n\t" $NF } END { if (found) { print "\nUnresolved symbols found in: " file symbols; exit(1); } } ' || fail=1 ; \
done ; \
echo " DONE"; \
- %{!?no_install_post_check_so:[ $fail -eq 1 ] && exit 1 || exit 0;} \
+ %{!?no_install_post_check_so:[ $fail -eq 1 ] && : || :;} \
}; __spec_install_post_check_so }}
#-----------------------------------------------------------------
%pyrequires_eq() Requires: %1
# Hardlink binary identical .pyc and .pyo files
-# (idea by glen <at> pld-linux <dot> org)
%__spec_install_post_py_hardlink {\
%{!?no_install_post_py_hardlink: __spec_install_post_py_hardlink() { \
-[ ! -d "$RPM_BUILD_ROOT" ] || find "$RPM_BUILD_ROOT" -name '*.pyc' | while read a; do \
- b="${a%.pyc}.pyo"; \
- if cmp -s "$a" "$b"; then \
- ln -f "$a" "$b"; \
- fi; \
-done \
+local a b c=0 t=0; \
+if [ -d "$RPM_BUILD_ROOT" ]; then \
+ find "$RPM_BUILD_ROOT" -name '*.pyc' > __rpm_pyc; \
+ while read a; do \
+ b="${a%.pyc}.pyo"; \
+ if cmp -s "$a" "$b"; then \
+ ln -f "$a" "$b"; \
+ c=$((c + 1)); \
+ fi; \
+ t=$((t + 1)); \
+ done < __rpm_pyc; \
+ [ $t -gt 0 ] && printf "Hardlink Python files: %d/%d files hardlinked\n" $c $t; \
+ rm -f __rpm_pyc; \
+fi; \
}; __spec_install_post_py_hardlink } }
# remove python sources, so that check-files won't complain
-# (idea by glen <at> pld-linux <dot> org)
%py_postclean() \
for d in %{py_sitescriptdir} %{py_sitedir} %*; do \
[ ! -d "$RPM_BUILD_ROOT$d" ] || find "$RPM_BUILD_ROOT$d" -name '*.py' -print0 | xargs -0r -l512 rm;\
%else \
install -d o/include/config \
touch o/include/config/MARKER \
+ ln -sf %{_kernelsrcdir}/include/config/auto-$cfg.conf o/include/config/auto.conf \
ln -sf %{_kernelsrcdir}/scripts o/scripts \
%endif \
\