Print this page
Python2.7 needs to be aware we're a 32-and-64-bit Python.

Split Close
Expand all
Collapse all
          --- old/build/python27/build.sh
          +++ new/build/python27/build.sh
↓ open down ↓ 91 lines elided ↑ open up ↑
  92   92      post_config
  93   93      [[ -n $NO_PARALLEL_MAKE ]] && MAKE_JOBS=""
  94   94      logmsg "--- make"
  95   95      logcmd $MAKE $MAKE_JOBS DFLAGS=-64 DESTSHARED=/usr/lib/python2.7/lib-dynload || \
  96   96          logerr "--- Make failed"
  97   97  }
  98   98  
  99   99  make_install32() {
 100  100      make_install
 101  101      rm $DESTDIR/usr/bin/i386/python || logerr "--- cannot remove arch hardlink"
 102      -    # mv $DESTDIR/usr/lib/python2.7/config/Makefile $DESTDIR/usr/lib/python2.7/config/Makefile.32 || logerr "--- Makefile backup (32)"
      102 +    # Copy off _sysconfigdata.py
      103 +    sed 's/^/    /g' < $DESTDIR/usr/lib/python2.7/_sysconfigdata.py > \
      104 +            /tmp/_sysconfigdata-32-$$.py
      105 +
      106 +
      107 +    # Move pyconfig.h header to 32-bit-specific version.
      108 +    mv $DESTDIR/usr/include/python2.7/pyconfig.h \
      109 +        $DESTDIR/usr/include/python2.7/pyconfig-32.h
 103  110  }
 104  111  make_install64() {
 105  112      logmsg "--- make install"
 106  113      logcmd $MAKE DESTDIR=${DESTDIR} install DESTSHARED=/usr/lib/python2.7/lib-dynload || \
 107  114          logerr "--- Make install failed"
 108  115      rm $DESTDIR/usr/bin/amd64/python || logerr "--- cannot remove arch hardlink"
 109  116      rm $DESTDIR/usr/lib/python2.7/config/libpython2.7.a || logerr "--- cannot remove static lib"
 110  117      # XXX KEBE SAYS Uncomment me eventually...
 111  118      # (cd $DESTDIR/usr/bin && ln -s python2.7 python) ||  logerr "--- could not setup python softlink"
 112      -    # XXX KEBE SAYS Python2.7 appears to honor $LIB/amd64 for 64-bit python...
 113      -    # mv $DESTDIR/usr/lib/python2.7/config/Makefile $DESTDIR/usr/lib/python2.7/config/Makefile.64 || logerr "--- Makefile backup (64)"
 114      -    # mv $DESTDIR/usr/lib/python2.7/config/Makefile.32 $DESTDIR/usr/lib/python2.7/config/Makefile || logerr "--- Makefile restore (32)"
      119 +    # Copy off _sysconfigdata.py
      120 +    sed 's/^/    /g' < $DESTDIR/usr/lib/python2.7/_sysconfigdata.py > \
      121 +            /tmp/_sysconfigdata-64-$$.py
      122 +    # Generate 32/64-bit agile _sysconfigdata.py
      123 +    echo "import sys" > $DESTDIR/usr/lib/python2.7/_sysconfigdata.py
      124 +    echo "" >> $DESTDIR/usr/lib/python2.7/_sysconfigdata.py
      125 +    echo "if sys.maxsize > 2**32:" >> \
      126 +            $DESTDIR/usr/lib/python2.7/_sysconfigdata.py
      127 +    cat /tmp/_sysconfigdata-64-$$.py \
      128 +            >> $DESTDIR/usr/lib/python2.7/_sysconfigdata.py
      129 +    echo "else:" >> $DESTDIR/usr/lib/python2.7/_sysconfigdata.py
      130 +    cat /tmp/_sysconfigdata-32-$$.py \
      131 +            >> $DESTDIR/usr/lib/python2.7/_sysconfigdata.py
      132 +    # Clean up the 32/64 stragglers.
      133 +    rm -f /tmp/_sysconfigdata-*-$$.py
      134 +    # Postprocessing steps in either IPS or the omnios-build system create
      135 +    # the .pyo and .pyc files.
      136 +
      137 +    # Move pyconfig.h header to 64-bit-specific version.
      138 +    mv $DESTDIR/usr/include/python2.7/pyconfig.h \
      139 +        $DESTDIR/usr/include/python2.7/pyconfig-64.h
      140 +
      141 +    logcmd cp $SRCDIR/files/pyconfig.h $DESTDIR/usr/include/python2.7/pyconfig.h
 115  142  }
 116  143  
 117  144  install_license(){
 118  145      logcmd cp $TMPDIR/$BUILDDIR/LICENSE $DESTDIR/license
 119  146  }
 120  147  
 121  148  init
 122  149  download_source $PROG $PROG $VER
 123  150  patch_source
 124  151  preprep_build
 125  152  prep_build
 126  153  build
 127  154  make_isa_stub
 128  155  strip_install -x
 129  156  install_license
 130  157  make_package
 131  158  clean_up
    
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX