Bladeren bron

create python30 package

Ralf S. Engelschall 17 jaren geleden
bovenliggende
commit
9ac09d4ee6
2 gewijzigde bestanden met toevoegingen van 300 en 0 verwijderingen
  1. 89 0
      python30/python30.patch
  2. 211 0
      python30/python30.spec

+ 89 - 0
python30/python30.patch

@@ -0,0 +1,89 @@
+Index: configure
+--- configure.orig	2008-09-07 21:19:04 +0200
++++ configure	2008-10-02 18:39:15 +0200
+@@ -3098,9 +3098,9 @@
+   CFLAGS=$ac_save_CFLAGS
+ elif test $ac_cv_prog_cc_g = yes; then
+   if test "$GCC" = yes; then
+-    CFLAGS="-g -O2"
++    CFLAGS="-O2"
+   else
+-    CFLAGS="-g"
++    CFLAGS=""
+   fi
+ else
+   if test "$GCC" = yes; then
+@@ -4530,7 +4530,7 @@
+ 		# debug builds.
+ 		OPT="-g -Wall $STRICT_PROTO"
+ 	    else
+-		OPT="-g $WRAP -O3 -Wall $STRICT_PROTO"
++		OPT="$WRAP -O3 -Wall $STRICT_PROTO"
+ 	    fi
+ 	    ;;
+ 	*)
+@@ -13198,7 +13198,7 @@
+ 		then
+ 			LINKFORSHARED="-Wl,--export-dynamic"
+ 		fi;;
+-	SunOS/5*) case $CC in
++	SunOS/5*) case gcc in
+ 		  *gcc*)
+ 		    if $CC -Xlinker --help 2>&1 | grep export-dynamic >/dev/null
+ 		    then
+Index: setup.py
+--- setup.py.orig	2008-09-30 02:15:45 +0200
++++ setup.py	2008-10-02 18:44:21 +0200
+@@ -310,8 +310,8 @@
+ 
+     def detect_modules(self):
+         # Ensure that /usr/local is always used
+-        add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib')
+-        add_dir_to_list(self.compiler.include_dirs, '/usr/local/include')
++        
++        
+ 
+         # Add paths specified in the environment variables LDFLAGS and
+         # CPPFLAGS for header and library files.
+@@ -612,8 +612,6 @@
+                                depends = ['socketmodule.h']) )
+         # Detect SSL support for the socket module (via _ssl)
+         search_for_ssl_incs_in = [
+-                              '/usr/local/ssl/include',
+-                              '/usr/contrib/ssl/include/'
+                              ]
+         ssl_incs = find_file('openssl/ssl.h', inc_dirs,
+                              search_for_ssl_incs_in
+@@ -624,8 +622,7 @@
+             if krb5_h:
+                 ssl_incs += krb5_h
+         ssl_libs = find_library_file(self.compiler, 'ssl',lib_dirs,
+-                                     ['/usr/local/ssl/lib',
+-                                      '/usr/contrib/ssl/lib/'
++                                     [
+                                      ] )
+ 
+         if (ssl_incs is not None and
+@@ -740,14 +737,8 @@
+         # top of the normal inc_dirs.
+         db_inc_paths = [
+             '/usr/include/db4',
+-            '/usr/local/include/db4',
+             '/opt/sfw/include/db4',
+-            '/usr/include/db3',
+-            '/usr/local/include/db3',
+-            '/opt/sfw/include/db3',
+-            # Fink defaults (http://fink.sourceforge.net/)
+             '/sw/include/db4',
+-            '/sw/include/db3',
+         ]
+         # 4.x minor number specific paths
+         for x in gen_db_minor_ver_nums(4):
+@@ -1537,6 +1528,7 @@
+                 dotversion = dotversion[:-1] + '.' + dotversion[-1]
+             tcl_include_sub = []
+             tk_include_sub = []
++            dotversion = ''
+             for dir in inc_dirs:
+                 tcl_include_sub += [dir + os.sep + "tcl" + dotversion]
+                 tk_include_sub += [dir + os.sep + "tk" + dotversion]

+ 211 - 0
python30/python30.spec

@@ -0,0 +1,211 @@
+##
+##  python30.spec -- OpenPKG RPM Package Specification
+##  Copyright (c) 2000-2008 OpenPKG Foundation e.V. <http://openpkg.net/>
+##
+##  Permission to use, copy, modify, and distribute this software for
+##  any purpose with or without fee is hereby granted, provided that
+##  the above copyright notice and this permission notice appear in all
+##  copies.
+##
+##  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
+##  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+##  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+##  IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
+##  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+##  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+##  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+##  USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+##  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+##  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+##  OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+##  SUCH DAMAGE.
+##
+
+#   package information
+Name:         python30
+Summary:      The Python Programming Language
+URL:          http://www.python.org/
+Vendor:       Guido van Rossum
+Packager:     OpenPKG Foundation e.V.
+Distribution: OpenPKG Community
+Class:        BASE
+Group:        Language
+License:      GPL
+Version:      3.0
+Release:      20081211
+
+#   package options
+%option       with_readline      no
+%option       with_db            no
+%option       with_dbm           no
+%option       with_curses        no
+%option       with_zlib          no
+%option       with_bzip2         no
+%option       with_xml           no
+%option       with_locale        no
+%option       with_ssl           no
+
+#   list of sources
+Source0:      http://www.python.org/ftp/python/%{version}/Python-%{version}.tar.bz2
+Patch0:       python30.patch
+
+#   build information
+Prefix:       %{l_prefix}
+BuildRoot:    %{l_buildroot}
+BuildPreReq:  OpenPKG, openpkg >= 20040130, gcc
+PreReq:       OpenPKG, openpkg >= 20040130, gcc
+BuildPreReq:  zlib
+PreReq:       zlib
+%if "%{with_readline}" == "yes"
+BuildPreReq:  readline
+PreReq:       readline
+%endif
+%if "%{with_db}" == "yes"
+BuildPreReq:  db
+PreReq:       db
+%endif
+%if "%{with_dbm}" == "yes"
+BuildPreReq:  gdbm::with_ndbm = yes
+PreReq:       gdbm::with_ndbm = yes
+%endif
+%if "%{with_curses}" == "yes"
+BuildPreReq:  ncurses
+PreReq:       ncurses
+%endif
+%if "%{with_zlib}" == "yes"
+BuildPreReq:  zlib
+PreReq:       zlib
+%endif
+%if "%{with_bzip2}" == "yes"
+BuildPreReq:  bzip2
+PreReq:       bzip2
+%endif
+%if "%{with_xml}" == "yes"
+BuildPreReq:  expat
+PreReq:       expat
+%endif
+%if "%{with_locale}" == "yes"
+BuildPreReq:  gettext, libiconv
+PreReq:       gettext, libiconv
+%endif
+%if "%{with_ssl}" == "yes"
+BuildPreReq:  openssl
+PreReq:       openssl
+%endif
+AutoReq:      no
+AutoReqProv:  no
+Provides:     python = %{version}-%{release}
+
+%description
+    Python is an interpreted, interactive, object-oriented programming
+    language. Python combines remarkable power with very clear syntax.
+    It has modules, classes, exceptions, very high level dynamic data
+    types, and dynamic typing. There are interfaces to many system calls
+    and libraries, as well as to various windowing systems (X11, Motif,
+    Tk, Mac, MFC). New built-in modules are easily written in C or C++.
+    Python is also usable as an extension language for applications that
+    need a programmable interface.
+
+%track
+    prog python = {
+        version   = %{version}
+        url       = http://www.python.org/download/
+        regex     = Python-(\d+(\.\d+)+)\.tar\.bz2
+    }
+
+%prep
+    %setup -q -n Python-%{version}
+    %patch -p0
+    %{l_shtool} subst \
+        -e 's;altinstall bininstall maninstall;altinstall maninstall;' \
+        -e 's;python$(VERSION);python;g' \
+        Makefile.pre.in
+    %{l_shtool} subst \
+        -e 's;\(lib/python"\) *VERSION;\1;g' \
+        Modules/getpath.c
+    find Lib -name "*.py" -print |\
+    xargs %{l_shtool} subst -q \
+        -e 's;\+ *sys\.version\[:3\];;g' \
+        -e 's;\+ *get_python_version();;g'
+    %{l_shtool} subst \
+        -e 's;python\$py_version_short;python;g' \
+        Lib/distutils/command/install.py
+
+%build
+    echo "" >config.cache
+%if "%{with_readline}" == "yes"
+    ( echo "readline readline.c %{l_cppflags} %{l_ldflags} -lreadline -ltermcap"
+    ) >>Modules/Setup.local
+%endif
+%if "%{with_db}" == "yes"
+    ( echo "_bsddb  _bsddb.c %{l_cppflags} %{l_ldflags} -ldb"
+    ) >>Modules/Setup.local
+%endif
+%if "%{with_dbm}" == "yes"
+    ( echo "_dbm  _dbmmodule.c  -DHAVE_NDBM_H %{l_cppflags} %{l_ldflags} -lndbm -lgdbm"
+      echo "_gdbm _gdbmmodule.c -DHAVE_GDBM_H %{l_cppflags} %{l_ldflags} -lgdbm"
+    ) >>Modules/Setup.local
+%endif
+%if "%{with_curses}" == "yes"
+    ( echo "_curses_panel _curses_panel.c %{l_cppflags} %{l_ldflags} -lpanel -lncurses"
+    ) >>Modules/Setup.local
+%endif
+%if "%{with_zlib}" == "yes"
+    ( echo "zlib zlibmodule.c %{l_cppflags} %{l_ldflags} -lz"
+    ) >>Modules/Setup.local
+%endif
+%if "%{with_bzip2}" == "yes"
+    ( echo "bz2 bz2module.c %{l_cppflags} %{l_ldflags} -lbz2"
+    ) >>Modules/Setup.local
+%endif
+%if "%{with_xml}" == "yes"
+    ( echo "EXPAT_DIR=%{l_prefix}"
+      echo "pyexpat pyexpat.c -DHAVE_EXPAT_H %{l_cppflags} %{l_ldflags} -lexpat"
+    ) >>Modules/Setup.local
+%endif
+%if "%{with_locale}" == "yes"
+    ( echo "_locale _localemodule.c %{l_cppflags} %{l_ldflags} -lintl -liconv"
+    ) >>Modules/Setup.local
+%endif
+%if "%{with_ssl}" == "yes"
+    ( echo "_socket socketmodule.c"
+      echo "SSL=%{l_prefix}"
+      echo "_ssl _ssl.c -DUSE_SSL %{l_cppflags openssl .} %{l_ldflags} -lssl -lcrypto"
+    ) >>Modules/Setup.local
+%endif
+
+    #   getaddrinfo bug
+    disableipv6=""
+    case "%{l_platform -t}" in
+        *-aix* ) disableipv6="--disable-ipv6" ;;
+    esac
+
+    CC="%{l_prefix}/bin/gcc" \
+    CXX="%{l_cxx}" \
+    CFLAGS="%{l_cflags -O}" \
+    CXXFLAGS="%{l_cxxflags -O}" \
+    LDFLAGS="%{l_ldflags}" \
+    ./configure \
+        --cache-file=./config.cache \
+        --with-gcc \
+        $disableipv6 \
+        --prefix=%{l_prefix} \
+        --mandir=%{l_prefix}/man
+    %{l_make} %{l_mflags}
+
+%install
+    rm -rf $RPM_BUILD_ROOT
+    %{l_make} %{l_mflags} install DESTDIR=$RPM_BUILD_ROOT
+    ln $RPM_BUILD_ROOT%{l_prefix}/lib/python/config/libpython*.a \
+       $RPM_BUILD_ROOT%{l_prefix}/lib/python/config/libpython.a
+    rm -f  $RPM_BUILD_ROOT%{l_prefix}/bin/smtpd.py
+    rm -f  $RPM_BUILD_ROOT%{l_prefix}/bin/idle
+    rm -rf $RPM_BUILD_ROOT%{l_prefix}/lib/python/test
+    strip $RPM_BUILD_ROOT%{l_prefix}/bin/* >/dev/null 2>&1 || true
+    %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT %{l_files_std}
+
+%files -f files
+
+%clean
+    rm -rf $RPM_BUILD_ROOT
+