Bladeren bron

- switch to new world order: sane package build environment - fix building of Tar under new world order ;)

Ralf S. Engelschall 23 jaren geleden
bovenliggende
commit
88c278e8fd
2 gewijzigde bestanden met toevoegingen van 72 en 3 verwijderingen
  1. 36 2
      openpkg/openpkg.spec
  2. 36 1
      openpkg/rpmmacros

+ 36 - 2
openpkg/openpkg.spec

@@ -39,8 +39,8 @@
 #   o any cc(1)
 
 #   the package version and release
-%define       V_openpkg 20020327
-%define       R_openpkg 20020327
+%define       V_openpkg 20020402
+%define       R_openpkg 20020402
 
 #   the used software versions
 %define       V_rpm     4.0.2
@@ -233,6 +233,34 @@ Provides:     OpenPKG
         fi
     fi
     echo "loc=\"$loc\"; export loc" >>.buildenv
+
+    #   determine platform id
+    s=`(uname -s) 2>/dev/null` || s='Unknown'
+    r=`(uname -r) 2>/dev/null` || r='0.0'
+    plid="${s}/${r}"
+
+    #   determine platform-specific build environment
+    case $plid in
+        FreeBSD/* ) l_build_path="/bin:/sbin:/usr/bin:/usr/sbin" ;;
+        Linux/*   ) l_build_path="/bin:/sbin:/usr/bin:/usr/sbin" ;;
+        SunOS/*   ) l_build_path="/bin:/sbin:/usr/bin:/usr/sbin:/usr/ccs/bin" ;;
+        *         ) l_build_path="/bin:/sbin:/usr/bin:/usr/sbin" ;;
+    esac
+    case $plid in
+        FreeBSD/* ) l_build_ldlp="/usr/lib" ;;
+        Linux/*   ) l_build_ldlp="/lib:/usr/lib" ;;
+        SunOS/*   ) l_build_ldlp="/usr/lib:/usr/ccs/lib" ;;
+        *         ) l_build_ldlp="/usr/lib" ;;
+    esac
+    case $plid in
+        FreeBSD/4* ) l_build_ulim="ulimit -H -S -f 131072 -d 131072 -m 131072 -s 32768 -u 64" ;;
+        Linux/2*   ) l_build_ulim="ulimit -H -S -f 131072 -d 131072 -m 131072 -v 131072 -s 32768 -u 64" ;;
+        SunOS/5.8* ) l_build_ulim="ulimit -H -S -f 131072 -d 131072 -s 32768" ;;
+        *          ) l_build_ulim=":" ;;
+    esac
+    echo "l_build_path=\"$l_build_path\"; export l_build_path" >>.buildenv
+    echo "l_build_ldlp=\"$l_build_ldlp\"; export l_build_ldlp" >>.buildenv
+    echo "l_build_ulim=\"$l_build_ulim\"; export l_build_ulim" >>.buildenv
   
     #   bootstrap GNU zip tool
     ${l_tar} xf `SOURCE gzip-%{V_gzip}.tar` 2>/dev/null
@@ -310,9 +338,12 @@ Provides:     OpenPKG
   
     #   build GNU tar tool
     ( cd tar-%{V_tar}
+      echo 'am_cv_func_iconv=${am_cv_func_iconv=no}' >config.cache
+      echo 'am_cv_lib_iconv=${am_cv_lib_iconv=no}' >config.cache
       echo 'am_cv_func_iconv=${am_cv_func_iconv=no}' >config.cache
       CC="${l_cc}" 
       ./configure \
+          --config-cache \
           --prefix=%{l_prefix} \
           --disable-nls
       ${l_make}
@@ -582,6 +613,9 @@ Provides:     OpenPKG
         <`SOURCE rpmrc` \
         >$RPM_BUILD_ROOT%{l_prefix}/etc/openpkg/rpmrc
     sed -e "s:@l_prefix@:%{l_prefix}:g" \
+        -e "s;@l_build_path@;$l_build_path;g" \
+        -e "s;@l_build_ldlp@;$l_build_ldlp;g" \
+        -e "s;@l_build_ulim@;$l_build_ulim;g" \
         -e "s:@LOC@:$loc:g" \
         -e "s:@SUSR@:$susr:g" \
         -e "s:@SGRP@:$sgrp:g" \

+ 36 - 1
openpkg/rpmmacros

@@ -131,7 +131,6 @@
 %_bzip2bin               %{l_prefix}/lib/openpkg/bzip2
 %_patchbin               %{l_prefix}/lib/openpkg/patch
 %_tarbin                 %{l_prefix}/lib/openpkg/tar
-%_buildshell             %{l_prefix}/lib/openpkg/bash
 
 #   provide fixed paths to tools (additional)
 %l_rpmtool               %{l_prefix}/sbin/rpmtool
@@ -193,3 +192,39 @@
 %ifdef()                 %if %{expand:%%{?%{1}:1}%%{!?%{1}:0}}
 %ifndef()                %if %{expand:%%{?%{1}:0}%%{!?%{1}:1}}
 
+#   sane build environment
+%l_build_path            %{l_prefix}/bin:@l_build_path@
+%l_build_ldlp            %{l_prefix}/lib:@l_build_ldlp@
+%l_build_ulim            @l_build_ulim@
+%l_build_shell_cmd       %{l_prefix}/lib/openpkg/bash
+%l_build_shell_opt       --norc --noprofile --posix
+%_buildshell             env -i %{l_build_shell_cmd} %{l_build_shell_opt}
+%___build_pre \
+HOME="%{l_prefix}"\
+SHELL="%{l_build_shell_cmd}"\
+TERM="%(echo $TERM)"\
+TMPDIR="%{_tmppath}"\
+TEMPDIR="%{_tmppath}"\
+USER="%(echo $USER)"\
+LOGNAME="%(echo $LOGNAME)"\
+PATH="%{l_build_path}"\
+LD_LIBRARY_PATH="%{l_build_ldlp}"\
+export HOME SHELL TMPDIR TEMPDIR USER LOGNAME PATH LD_LIBRARY_PATH\
+RPM_SOURCE_DIR=\"%{u2p:%{_sourcedir}}\"\
+RPM_BUILD_DIR=\"%{u2p:%{_builddir}}\"\
+RPM_OPT_FLAGS=\"%{optflags}\"\
+RPM_ARCH=\"%{_arch}\"\
+RPM_OS=\"%{_os}\"\
+RPM_DOC_DIR=\"%{_docdir}\"\
+RPM_PACKAGE_NAME=\"%{name}\"\
+RPM_PACKAGE_VERSION=\"%{version}\"\
+RPM_PACKAGE_RELEASE=\"%{release}\"\
+export RPM_SOURCE_DIR RPM_BUILD_DIR RPM_OPT_FLAGS RPM_ARCH RPM_OS RPM_DOC_DIR\
+export RPM_PACKAGE_NAME RPM_PACKAGE_VERSION RPM_PACKAGE_RELEASE\
+%{?buildroot:RPM_BUILD_ROOT=\"%{u2p:%{buildroot}}\"\
+export RPM_BUILD_ROOT}\
+%{l_build_ulim}\
+umask 022\
+%{verbose:set -x}%{!verbose:exec >/dev/null}\
+cd %{u2p:%{_builddir}}
+