ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/COMP/CMSDIST/python.spec
Revision: 1.63
Committed: Thu Feb 25 13:47:04 2010 UTC (15 years, 2 months ago) by diego
Branch: MAIN
CVS Tags: CRABSERVER_1_1_4_pre5_BUILD_SLC5, CRABSERVER_1_1_4_pre4_BUILD_SLC5, CRABSERVER_1_1_4_pre3_BUILD_SLC5, ebFor363slhc3p1, CMSSW_3_6_3_SLHC3, PRODAGENT_0_12_18_patch5, ebFor363slhc3, CRABSERVER_1_1_4_pre2_BUILD_SLC5, ebFor363slhc2, CRABSERVER_1_1_4_pre1_BUILD_SLC5_1, CRABSERVER_1_1_4_pre1_BUILD_SLC5, CMSSW_3_6_3_SLHC1_patch3, ebFor363slhc1pat3, CMSSW_3_6_3_SLHC1_patch2, ebFor363slhc1pat2, forPHEDEX400pre3, PRODAGENT_0_12_18_patch4, ebFor363slhc1pat1v0, DD_20101007_slc5_amd64_gcc434, DAS_20100922_slc5_amd64_gcc434_v2, DAS_20100922_slc5_amd64_gcc434, DAS_20100921_slc5_amd64_gcc434_v4, DAS_20100921_slc5_amd64_gcc434_v3, DAS_20100921_slc5_amd64_gcc434_v2, DAS_20100921_slc5_amd64_gcc434, DAS_20100920_slc5_amd64_gcc434, builder_2010-09-15_18-10-44_dbs-apps, dg-base-rev19, forPHEDEX-web-20100910-3, forPHEDEX-web-20100910-2, forPHEDEX-web-20100910-1, DAS_20100907_slc5_amd64_gcc434, CMSSW_3_6_3_SLHC1, FILEMOVER_20100901_slc5_amd64_gcc434_v5, FILEMOVER_20100901_slc5_amd64_gcc434_v4, FILEMOVER_20100901_slc5_amd64_gcc434_v3, FILEMOVER_20100901_slc5_amd64_gcc434_v2, FILEMOVER_20100901_slc5_amd64_gcc434, FILEMOVER_20100831_slc5_amd64_gcc434, dg20100831b-webtools-base, forPHEDEX-web-20100831-1, forPHEDEX-20100831-1, dg20100831-webtools-base, dg-base-rev18, sjg100827-MotT0, forPHEDEX-web-20100827-3, forPHEDEX-web-20100827-2, forPHEDEX-web-20100827-1, forPHEDEX-web-20100826-1, forPHEDEX-web-20100825-4, forPHEDEX-web-20100825-3, forPHEDEX-web-20100825-2, forPHEDEX-web-20100825-1, DD_20100824_slc5_amd64_gcc434_v1, builder_2010-08-25_01-26-27_crab-server, CRABSERVER_1_1_3_BUILD_SLC5, DAS_20100824_slc5_amd64_gcc434, dg20100824b-sitedb, DD_20100824_slc5_amd64_gcc434, dg20100824-sitedb, forPHEDEX-web-20100823-3, forPHEDEX-web-20100823-2, forPHEDEX-web-20100823-1, FILEMOVER_20100822_slc5_amd64_gcc434, FILEMOVER_20100820_slc5_amd64_gcc434_v1, FILEMOVER_20100820_slc5_amd64_gcc434, forPHEDEX-web-20100819-3, forPHEDEX-web-20100819-2, sjg100819-MotT0, forPHEDEX-web-20100819-1, DAS_20100818_slc5_amd64_gcc434_v4, DAS_20100818_slc5_amd64_gcc434_v3, DAS_20100818_slc5_amd64_gcc434_v2, DAS_20100818_slc5_amd64_gcc434, forPHEDEX-web-20100818-5, forPHEDEX-web-20100818-4, forPHEDEX-web-20100818-3, forPHEDEX-web-20100818-2, forPHEDEX-web-20100818-1, CMSSW_3_6_1_patch7, DAS_20100817_slc5_amd64_gcc434, smFor361patch7, forPHEDEX-web-20100817-4, forPHEDEX-web-20100817-3, forPHEDEX-web-20100817-2, forPHEDEX-web-20100817-1, builder_2010-08-13_12-13-11_crab-server, CRABSERVER_1_1_3_pre3_BUILD_SLC5, DS_20100813, forPHEDEX-web-20100812-6, forPHEDEX-web-20100812-5, forPHEDEX-web-20100812-4, builder_2010-08-12_16-07-39_crab-server, CMSSW_3_6_3_hltpatch4, DS_20100812, forPHEDEX-web-20100812-3, dg-base-rev17, forPHEDEX-web-20100812-2, forPHEDEX-web-20100812-1, forPHEDEX-web-20100811-3, forPHEDEX-web-20100811-2, forPHEDEX-web-20100811-1, forPHEDEX-web-20100810-a, forPHEDEX-web-20100810-4, forPHEDEX-web-20100810-3, forPHEDEX-web-20100810-2, forPHEDEX-web-20100810-1, dg20100809-crabserver, builder_2010-08-09_17-11-50_MotT0, forPHEDEX-web-20100809-2, builder_2010-08-09_16-07-08_MotT0, dg20100809-MotT0, forPHEDEX-web-20100809-1, dsr20100805fwlite363, CMSSW_3_6_3_onlpatch4_ONLINE, smFor363patch2, forPHEDEX-web-20100729-1, builder_2010-07-27_17-29-15_PHEDEX-combined-agents, builder_2010-07-27_16-42-42_PHEDEX-combined-agents, forPHEDEX332, forPHEDEX-web-20100726-4, forPHEDEX-web-20100721-7, forPHEDEX-web-20100726-3, forPHEDEX-web-20100726-2, forPHEDEX-web-20100726-1, dg-base-rev16, CMSSW_3_6_3_onlpatch3_ONLINE, forPHEDEX-web-20100721-6, forPHEDEX-web-20100721-5, forPHEDEX-web-20100721-4, forPHEDEX-web-20100721-3, forPHEDEX-web-20100721-2, forPHEDEX-web-20100721-1, forPHEDEX332pre4, builder2010_07_20_1279626381-PHEDEX-web, mytesttag, forPHEDEX-web-20100720-2, builder2010_07_15_1279201058-PHEDEX-combined-agents, forPHEDEX332pre3, builder2010_07_15_1279191486-PHEDEX-combined-agents, forPHEDEX332pre2, builder2010_07_14_1279125594-PHEDEX-combined-agents, dg20100714-PHEDEX-combined-agents, forPHEDEX-web-20100714-1, CMSSW_3_6_1_patch6, apFor361p6v0, builder2010_07_09_1278688493-dbs-web, builder2010_07_09_1278664363-PHEDEX-combined-agents, builder2010_07_08_1278610746-dbs3, builder2010_07_08_1278610490-prodagent, builder2010_07_08_1278608825-PHEDEX-combined-web, builder2010_07_08_1278582827-dbs-server, builder2010_07_08_1278582199-dbs-server, builder2010_07_08_1278578765-dls-client, builder2010_07_08_1278578446-dbs-client, CMSSW_3_6_3_patch1, builder2010_07_07_1278518809-dbs-client, apFor363p1v0, CMSSW_3_6_3_onlpatch2_ONLINE, dg20100630-dls-client, dg20100630-phedexweb, dg20100630-prodagent, dg20100628-MotT0, dg-base-rev15, dg20100625-fmws, FILEMOVER_20100623_slc5_amd64_gcc434, CMSSW_3_6_1_patch5, smFor361patch5, forPHEDEX-web-20100623-1, dg20100623-fmws, FILEMOVER_20100621_slc5_amd64_gcc434, dg20100618-mott0, dg20100617-crabserver, dg20100617-dbs, dg20100617-fmws, dg20100617-dd, FILEMOVER_20100616_slc5_amd64_gcc434, CMSSW_3_6_3_onlpatch1_ONLINE, DD_20100615_slc5_amd64_gcc434, dg20100615-mott0, CMSSW_3_6_3_ONLINE, CMSSW_3_6_3, apFor363v0, dg20100609-dd, DD_20100609_slc5_amd64_gcc434, DAS_20100609_slc5_amd64_gcc434, dg20100608-dd, dg20100608-dbs, DD_20100607_slc5_amd64_gcc434, CMSSW_3_6_2_ONLINE, fw361online_test5, CMSSW_3_6_2, dg20100503-phedexweb, dg-base-rev14, apFor362v1, apFor362v0, fw361online_test4, CMSSW_3_6_1_patch4, apFor361p4v0, DAS_20100527_slc5_amd64_gcc434, dg20100527-dbs3, fw361online_test3, dsr20100526fwlite361, fw361online_test2, CMSSW_3_6_1_patch3, fw361online_test1, apFor361p3v0, dg20100526-dd, dg20100526-das, DAS_20100525_slc5_amd64_gcc434, dg20100525-das, dg-base-rev13, DD_20100525_slc5_amd64_gcc434, forPHEDEX-web-20100528-1, DAS_20100524_slc5_amd64_gcc434, CMSSW_3_6_1_patch2, apFor361p2v0, dg20100521-dbs, DBS_20100520_slc5_amd64_gcc434, DQMGUI_5_2_1c, dg20100520-sitedb, dg20100519-t0mon, CMSSW_3_6_1_patch1, apFor361p1v2, apFor361p1v1, apFor361p1v0, dg20100517-prodagent, dg20100511-dbs3, CMSSW_3_6_1, apFor361v1, apFor361v0, dg1273515231-T0Mon, dg20100510-t0mon, fw360online_test5, fw360online_test4, fw360online_test3, sm100507pftrack, fw360online_test2, fw360online_test1, sm100506, sm100505a, sm100505, CMSSW_3_7_0_pre3, for370pre3, dg20100504-das, CMSSW_3_6_0_patch2, apFor360p2v0, DAS_20100504_slc5_amd64_gcc434, CMSSW_3_6_0_patch1, dg20100504-dd, dg20100504-dbs, apFor360p1v2, apFor360p1v1, apFor360p1v0, DD_20100503_slc5_amd64_gcc434, dg20100503b-prodagent, DBS_20100503_slc5_amd64_gcc434, dg20100503-prodagent, dg20100428-fmws, CMSSW_3_7_0_pre2, FILEMOVER_20100427_slc5_amd64_gcc434, for370pre2, dg-base-rev12, dg20100423-fmws, FILEMOVER_20100422_slc5_amd64_gcc434, CMSSW_3_7_0_pre1, smFor370pre1, pe20100419a-for36X-37X, pe20100419a-gcc45-from360, CMSSW_3_6_0, dg20100416-sitedb, dg20100416-t0mon, dg20100416-phedexweb, dg20100416-fmws, dg20100416-dbs, pe20100416a-for36X, dg20100414-das, dg-base-rev11, pe20100414b-gcc45-from360p6, pe20100414-gcc45-from360p6, dg20100413-das, dg-base-rev10, pe20100410-gcc45-from360p6, CMSSW_3_6_0_pre6, pe20100409b-for36X, dg-base-rev9, pe20100409a-for36X, CMSSW_3_6_0_pre5io, pe20100408a-for36Xio, DAS_20100407_slc5_amd64_gcc434, forPHEDEX-web-20100409-1, forPHEDEX-web-20100403-1, CMSSW_3_6_0_pre5, dg20100401-fmws-v2, dg20100401-fmws, dg20100401-dbs, pe20100401a-for36X, forPHEDEX-web-20100331-1, pe20100330a-for36X, dg20100329-dbs3, pe20100329a-for36X, forPHEDEX-web-20100329-1, dsr20100326fwlite355osx, DAS_20100326_slc5_amd64_gcc434, CMSSW_3_6_0_pre4, pe20100324a-for36X, dg20100322-security, dg-base-rev8, dg20100322-dbs3, pe20100321a-for36X, forPHEDEX-web-20100315-2, forPHEDEX-web-20100315, CMSSW_3_6_0_pre3, pe20100313a-for36X, pe20100312a-for36X, pe20100311a-for36X, dg20100310-sitedb, DAS_20100309_slc5_amd64_gcc434, dg20100308-calendar, pe20100307a-for36X, pe20100305e-for36X, pe20100305d-for36X, pe20100305c-for36X, pe20100305b-for36X, pe20100305-for36X, DAS_20100302_slc5_amd64_gcc434b, forPHEDEX-web-20100303, dg20100302-t0mon, forPHEDEX-web-20100302, forPHEDEX-web-20100301b, dg-base-rev7, dg20100226-dbs, dg-base-rev6, dg20100225-prodagent, dg20100225-dbs3, dg-base-rev5
Changes since 1.62: +15 -15 lines
Log Message:
Py2.6: Removed old (not working) patches. Also put the dependencies environment setup.

File Contents

# Content
1 ### RPM external python 2.6.4
2 ## INITENV +PATH PATH %i/bin
3 ## INITENV +PATH LD_LIBRARY_PATH %i/lib
4 # OS X patches and build fudging stolen from fink
5 %define closingbrace )
6 %define online %(case %cmsplatf in *onl_*_*%closingbrace echo true;; *%closingbrace echo false;; esac)
7
8 Requires: expat bz2lib db4 gdbm
9
10 %if "%online" != "true"
11 Requires: zlib openssl sqlite
12 %endif
13
14 # FIXME: readline, crypt
15 # FIXME: gmp, panel, tk/tcl, x11
16
17 Source0: http://www.python.org/ftp/%n/%realversion/Python-%realversion.tgz
18
19 %prep
20 %setup -n Python-%realversion
21 perl -p -i -e "s|#!.*/usr/local/bin/python|#!/usr/bin/env python|" Lib/cgi.py
22
23 %ifos darwin
24 sed 's|@PREFIX@|%i|g' < %_sourcedir/python-osx | patch -p1
25 %endif
26
27 %build
28 # Python is awkward about passing other include or library directories
29 # to it. Basically there is no way to pass anything from configure to
30 # make, or down to python itself. To get python detect the extensions
31 # we want to enable, we simply have to link the contents into python's
32 # own include/lib directories. Ugh.
33 #
34 # NB: It would sort-of make sense to link more stuff from /sw on OS X,
35 # but we simply cannot link the whole world. If you need something,
36 # see above for the commented-out list of packages that could be
37 # linked specifically, or could be built by ourselves, depending on
38 # whether we like to pick up system libraries or want total control.
39 #mkdir -p %i/include %i/lib
40 mkdir -p %i/include %i/lib %i/bin
41
42 %if "%online" != "true"
43 %define extradirs $ZLIB_ROOT $OPENSSL_ROOT $SQLITE_ROOT
44 %else
45 %define extradirs %{nil}
46 %endif
47
48 dirs="$EXPAT_ROOT $BZ2LIB_ROOT $NCURSES_ROOT $DB4_ROOT $GDBM_ROOT %{extradirs}"
49
50 echo $dirs
51 for d in $dirs; do
52 for f in $d/include/*; do
53 [ -e $f ] || continue
54 rm -f %i/include/$(basename $f)
55 ln -s $f %i/include
56 done
57 for f in $d/lib/*; do
58 [ -e $f ] || continue
59 rm -f %i/lib/$(basename $f)
60 ln -s $f %i/lib
61 done
62 done
63
64 additionalConfigureOptions=""
65 case %cmsplatf in
66 osx105* )
67 additionalConfigureOptions="--disable-readline"
68 ;;
69 esac
70
71 ./configure --prefix=%i $additionalConfigureOptions --enable-shared \
72 --without-tkinter --disable-tkinter
73
74 # The following is a kludge around the fact that the /usr/lib/libreadline.so
75 # symlink (for 32-bit lib) is missing on the 64bit machines
76 case %cmsplatf in
77 slc4_ia32* )
78 mkdir -p %{i}/lib
79 ln -s /usr/lib/libreadline.so.4.3 %{i}/lib/libreadline.so
80 ;;
81 esac
82 make %makeprocesses
83
84 %install
85 make install
86 %define pythonv %(echo %realversion | cut -d. -f 1,2)
87
88 case %cmsplatf in
89 osx*)
90 make install prefix=%i
91 (cd Misc; /bin/rm -rf RPM)
92 mkdir -p %i/share/doc/%n
93 cp -R Demo Doc %i/share/doc/%n
94 cp -R Misc Tools %i/lib/python%{pythonv}
95 gcc -dynamiclib -all_load -single_module \
96 -framework System -framework CoreServices -framework Foundation \
97 %i/lib/python%{pythonv}/config/libpython%{pythonv}.a \
98 -undefined dynamic_lookup \
99 -o %i/lib/python%{pythonv}/config/libpython%{pythonv}.dylib \
100 -install_name %i/lib/python%{pythonv}/config/libpython%{pythonv}.dylib \
101 -current_version %{pythonv} -compatibility_version %{pythonv} -ldl
102 (cd %i/lib/python%{pythonv}/config
103 perl -p -i -e 's|-fno-common||g' Makefile)
104
105 find %i/lib/python%{pythonv}/config -name 'libpython*' -exec mv -f {} %i/lib \;
106 ;;
107 esac
108
109 perl -p -i -e "s|^#!.*python|#!/usr/bin/env python|" %{i}/bin/idle \
110 %{i}/bin/pydoc \
111 %{i}/bin/python-config \
112 %{i}/bin/2to3 \
113 %{i}/bin/python2.6-config \
114 %{i}/bin/smtpd.py \
115 %{i}/lib/python2.6/bsddb/dbshelve.py \
116 %{i}/lib/python2.6/test/test_bz2.py \
117 %{i}/lib/python2.6/test/test_largefile.py \
118 %{i}/lib/python2.6/test/test_optparse.py
119 rm `find %{i}/lib -maxdepth 1 -mindepth 1 ! -name '*python*'`
120 rm `find %{i}/include -maxdepth 1 -mindepth 1 ! -name '*python*'`
121
122 %if "%online" == "true"
123 # remove tkinter that brings dependency on libtk:
124 find %{i}/lib -type f -name "_tkinter.so" -exec rm {} \;
125 %endif
126
127 # SCRAM ToolBox toolfile
128 mkdir -p %i/etc/scram.d
129 cat << \EOF_TOOLFILE >%i/etc/scram.d/%n
130 <doc type=BuildSystem::ToolDoc version=1.0>
131 <Tool name=%n version=%v>
132 <lib name=python2.6>
133 <Client>
134 <Environment name=PYTHON_BASE default="%i"></Environment>
135 <Environment name=LIBDIR default="$PYTHON_BASE/lib"></Environment>
136 <Environment name=INCLUDE default="$PYTHON_BASE/include/python2.6"></Environment>
137 <Environment name=PYTHON_COMPILE default="$PYTHON_BASE/lib/python2.6/compileall.py"></Environment>
138 </Client>
139 <use name=sockets>
140 <Runtime name=PATH value="$PYTHON_BASE/bin" type=path>
141 </Tool>
142 EOF_TOOLFILE
143
144 # Makes sure that executables start with /usr/bin/env perl and not with comments.
145 find %i -type f -perm -555 -name '*.py' -exec perl -p -i -e 'if ($. == 1) {s|^"""|#/usr/bin/env python\n"""|}' {} \;
146 find %i -type f -perm -555 -name '*.py' -exec perl -p -i -e 'if ($. == 1) {s|^\'\'\'|#/usr/bin/env python\n\'\'\'|}' {} \;
147 find %i -type f -perm -555 -name '*.py' -exec perl -p -i -e 'if ($. == 1) {s|/usr/local/bin/python|/usr/bin/env python|}' {} \;
148 rm -f %i/share/doc/python/Demo/rpc/test
149
150 # Setups dependencies environment
151 rm -rf %i/etc/profile.d
152 mkdir -p %i/etc/profile.d
153 for x in %pkgreqs; do
154 case $x in /* ) continue ;; esac
155 p=%{instroot}/%{cmsplatf}/$(echo $x | sed 's/\([^+]*\)+\(.*\)+\([A-Z0-9].*\)/\1 \2 \3/' | tr ' ' '/')
156 echo ". $p/etc/profile.d/init.sh" >> %i/etc/profile.d/dependencies-setup.sh
157 echo "source $p/etc/profile.d/init.csh" >> %i/etc/profile.d/dependencies-setup.csh
158 done
159
160 %post
161 find $RPM_INSTALL_PREFIX/%pkgrel/lib -type l | xargs ls -la | sed -e "s|.*[ ]\(/.*\) -> \(.*\)| \2 \1|;s|[ ]/[^ ]*/external| $RPM_INSTALL_PREFIX/%cmsplatf/external|g" | xargs -n2 ln -sf
162 %{relocateConfig}etc/scram.d/%n
163 %{relocateConfig}lib/python2.6/config/Makefile
164
165 # Relocation for dependencies
166 %{relocateConfig}etc/profile.d/dependencies-setup.sh
167 %{relocateConfig}etc/profile.d/dependencies-setup.csh
168