qt/qt.spec

changeset 92
645923d1e875
parent 88
5eb8172041b5
child 94
0bb9d0584d2a
equal deleted inserted replaced
7:c1a1bd351d05 8:7b7c57d0574b
103 ) | %{l_rpmtool} msg -b -t notice 103 ) | %{l_rpmtool} msg -b -t notice
104 104
105 %setup -q -n qt-x11-opensource-src-%{version} 105 %setup -q -n qt-x11-opensource-src-%{version}
106 x11_incdir=`%{l_rc} --query x11_incdir` 106 x11_incdir=`%{l_rc} --query x11_incdir`
107 x11_libdir=`%{l_rc} --query x11_libdir` 107 x11_libdir=`%{l_rc} --query x11_libdir`
108 fontconf=`%{l_prefix}/bin/pkg-config --libs-only-l --static fontconfig` 108 fontconflibs=`%{l_prefix}/bin/pkg-config --libs-only-l --static fontconfig`
109 openssllibs=`%{l_prefix}/bin/pkg-config --libs --static openssl`
110
109 loclibs='' 111 loclibs=''
110 case "%{l_platform -t}" in 112 case "%{l_platform -t}" in
111 *-sunos* ) 113 *-sunos* )
112 loclibs='-lsocket -lnsl' 114 loclibs='-lsocket -lnsl'
113 ;; 115 ;;
117 do 119 do
118 ln -s $plat `echo $plat | %{l_shtool} subst -e 's;\(.*\)-generic-\(.*\);\1-x86-\2;'` 120 ln -s $plat `echo $plat | %{l_shtool} subst -e 's;\(.*\)-generic-\(.*\);\1-x86-\2;'`
119 done 121 done
120 ) || exit $? 122 ) || exit $?
121 %{l_shtool} subst \ 123 %{l_shtool} subst \
122 -e 's;\(-z[ \t][ \t]*\)\([^ \t\"][^ \t\"]*\);\1"\2";g' \ 124 -e 's;\(-z[\t ][\t ]*\)\([^\t \"][^\t \"]*\);\1"\2";g' \
123 configure 125 configure
124 %{l_shtool} subst \ 126 %{l_shtool} subst \
125 -e "s;\(QMAKE_LIBS_X11.*\)-lfreetype -lfontconfig;\1$fontconf;" \ 127 -e "s;\(QMAKE_LIBS_X11.*\)-lfreetype -lfontconfig;\1$fontconflibs;" \
128 configure
129 %{l_shtool} subst \
130 -e "s;\(OPENSSL_LIBS *=\) *-lssl -lcrypto;\1 $openssllibs;" \
126 configure 131 configure
127 %{l_shtool} subst \ 132 %{l_shtool} subst \
128 -e 's;-silent|;-rpath|-silent|;' \ 133 -e 's;-silent|;-rpath|-silent|;' \
129 -e 's;\(RPATH_FLAGS="\)\\"\$QT_INSTALL_LIBS\\" \($RPATH_FLAGS"\);\1\2;' \ 134 -e 's;\(RPATH_FLAGS="\)\\"\$QT_INSTALL_LIBS\\" \($RPATH_FLAGS"\);\1\2;' \
130 -e "s;\(echo.*QMAKE_RPATHDIR +=\).*\$QT_INSTALL_LIBS\\\\\"\\\";\1 $x11_libdir\";" \ 135 -e "s;\(echo.*QMAKE_RPATHDIR +=\).*\$QT_INSTALL_LIBS\\\\\"\\\";\1 $x11_libdir\";" \
132 %{l_shtool} subst \ 137 %{l_shtool} subst \
133 -e 's;\(TRY_INCLUDEPATHS = \).*\(\$\$INCLUDEPATH\);\1\2;' \ 138 -e 's;\(TRY_INCLUDEPATHS = \).*\(\$\$INCLUDEPATH\);\1\2;' \
134 -e 's;/freetype2;/freetype;' \ 139 -e 's;/freetype2;/freetype;' \
135 config.tests/unix/freetype/freetype.pri 140 config.tests/unix/freetype/freetype.pri
136 %{l_shtool} subst \ 141 %{l_shtool} subst \
137 -e "s;^\(LIBS += \)-lfreetype -lfontconfig;\1$fontconf;" \ 142 -e "s;^\(LIBS += \)-lfreetype -lfontconfig;\1$fontconflibs;" \
138 config.tests/x11/fontconfig/fontconfig.pro 143 config.tests/x11/fontconfig/fontconfig.pro
139 %{l_shtool} subst \ 144 %{l_shtool} subst \
140 -e "s;\(LIBS += -lpq\);\1 -lssl -lcrypto $loclibs;" \ 145 -e "s;\(LIBS += -lpq\);\1 -lssl -lcrypto $loclibs;" \
141 config.tests/unix/psql/psql.pro 146 config.tests/unix/psql/psql.pro
142 %{l_shtool} subst \ 147 %{l_shtool} subst \
151 src/gui/kernel/kernel.pri 156 src/gui/kernel/kernel.pri
152 %{l_shtool} subst \ 157 %{l_shtool} subst \
153 -e "s;QMAKE_CXXFLAGS \*= \$\$QT_CFLAGS_PSQL;INCPATH += `pg_config --includedir 2>/dev/null | %{l_shtool} subst -e 's;-I;;g'`;g" \ 158 -e "s;QMAKE_CXXFLAGS \*= \$\$QT_CFLAGS_PSQL;INCPATH += `pg_config --includedir 2>/dev/null | %{l_shtool} subst -e 's;-I;;g'`;g" \
154 -e "s;QMAKE_CXXFLAGS \*= \$\$QT_CFLAGS_MYSQL;INCPATH += `mysql_config --include 2>/dev/null | %{l_shtool} subst -e 's;-I;;g'`;g" \ 159 -e "s;QMAKE_CXXFLAGS \*= \$\$QT_CFLAGS_MYSQL;INCPATH += `mysql_config --include 2>/dev/null | %{l_shtool} subst -e 's;-I;;g'`;g" \
155 -e "s;QMAKE_CXXFLAGS \*= \$\$QT_CFLAGS_SQLITE;INCPATH += `pkg-config --cflags-only-I sqlite3 2>/dev/null | %{l_shtool} subst -e 's;-I;;g'`;g" \ 160 -e "s;QMAKE_CXXFLAGS \*= \$\$QT_CFLAGS_SQLITE;INCPATH += `pkg-config --cflags-only-I sqlite3 2>/dev/null | %{l_shtool} subst -e 's;-I;;g'`;g" \
161 src/plugins/sqldrivers/mysql/mysql.pro \
162 src/plugins/sqldrivers/psql/psql.pro \
163 src/plugins/sqldrivers/sqlite/sqlite.pro \
156 src/sql/drivers/drivers.pri 164 src/sql/drivers/drivers.pri
157 %{l_shtool} subst \ 165 %{l_shtool} subst \
158 -e "s;QMAKE_CXXFLAGS += \$\$QT_CFLAGS_DBUS;INCPATH += `pkg-config --cflags-only-I dbus-1 2>/dev/null | %{l_shtool} subst -e 's;-I;;g'`;g" \ 166 -e "s;QMAKE_CXXFLAGS += \$\$QT_CFLAGS_DBUS;INCPATH += `pkg-config --cflags-only-I dbus-1 2>/dev/null | %{l_shtool} subst -e 's;-I;;g'`;g" \
159 src/dbus/dbus.pro 167 src/dbus/dbus.pro
160 %{l_shtool} subst \ 168 %{l_shtool} subst \
178 -e 's;^\( *contains(QT_CONFIG, freetype) {\);\1 LIBS += -lfreetype;' \ 186 -e 's;^\( *contains(QT_CONFIG, freetype) {\);\1 LIBS += -lfreetype;' \
179 src/gui/text/text.pri 187 src/gui/text/text.pri
180 %{l_shtool} subst \ 188 %{l_shtool} subst \
181 -e 's;\(#include *"\)\(tiffio.h"\);\1tiff/\2;' \ 189 -e 's;\(#include *"\)\(tiffio.h"\);\1tiff/\2;' \
182 src/plugins/imageformats/tiff/qtiffhandler.cpp 190 src/plugins/imageformats/tiff/qtiffhandler.cpp
191 %{l_shtool} subst \
192 -e 's;\(CONFIG[\t ]*+=[\t ]*qt\);\1 x11;' \
193 tools/qtconfig/qtconfig.pro
183 # for projfile in `find examples/ -name '*.pro' -print`; do 194 # for projfile in `find examples/ -name '*.pro' -print`; do
184 # echo 'CONFIG += release' >>$projfile 195 # echo 'CONFIG += release' >>$projfile
185 # done 196 # done
186 197
187 %build 198 %build
188 # protect against sloppy code inclusion of all unused subprojects 199 # protect against sloppy code inclusion of all unused subprojects
189 rm -rf src/3rdparty/[^cdhmsw]* src/3rdparty/sql* src/3rdparty/win* 200 rm -rf src/3rdparty/[^cdhmsw]* src/3rdparty/sql* src/3rdparty/win*
190 201
202 # detect which platform for which to build
191 case "%{l_platform -t}" in 203 case "%{l_platform -t}" in
192 sun4[uv]-sunos* | amd64-sunos* ) platcomp="solaris-g++-64" ;; 204 sun4[uv]-sunos* | amd64-sunos* ) platcomp="solaris-g++-64" ;;
193 i?86-sunos* ) platcomp="solaris-g++" ;; 205 i?86-sunos* ) platcomp="solaris-g++" ;;
194 amd64-linux* ) platcomp="linux-g++-64" ;; 206 amd64-linux* ) platcomp="linux-g++-64" ;;
195 i?86-linux* ) platcomp="linux-g++" ;; 207 i?86-linux* ) platcomp="linux-g++" ;;
199 *-hpux* ) platcomp="hpux-g++" ;; 211 *-hpux* ) platcomp="hpux-g++" ;;
200 *-irix* ) platcomp="irix-g++" ;; 212 *-irix* ) platcomp="irix-g++" ;;
201 * ) echo "Platform '%{l_platform -t}' is not supported." 2>&1; exit 1 ;; 213 * ) echo "Platform '%{l_platform -t}' is not supported." 2>&1; exit 1 ;;
202 esac 214 esac
203 215
216 # detect which architecture extensions are available
217 archflags=''
218 case "%{l_platform -t}" in
219 amd64-* )
220 break
221 ;;
222 * )
223 archflags='-no-sse2 -no-3dnow'
224 ;;
225 esac
226
204 %if "%{with_shared}" == "yes" 227 %if "%{with_shared}" == "yes"
205 # optional shared build (precedes mandatory static build) 228 # optional shared build (precedes mandatory static build)
206 echo 'yes' | ./configure \ 229 echo 'yes' | ./configure \
230 $archflags \
207 -prefix %{l_prefix} \ 231 -prefix %{l_prefix} \
208 -bindir %{l_prefix}/bin \ 232 -bindir %{l_prefix}/bin \
209 -libdir %{l_prefix}/lib/qt \ 233 -libdir %{l_prefix}/lib/qt \
210 -docdir %{l_prefix}/share/qt/doc \ 234 -docdir %{l_prefix}/share/qt/doc \
211 -headerdir %{l_prefix}/include \ 235 -headerdir %{l_prefix}/include \
268 %{l_make} %{l_mflags -O} \ 292 %{l_make} %{l_mflags -O} \
269 sub-corelib sub-xml sub-network sub-gui sub-sql \ 293 sub-corelib sub-xml sub-network sub-gui sub-sql \
270 sub-script sub-testlib sub-qt3support sub-dbus \ 294 sub-script sub-testlib sub-qt3support sub-dbus \
271 sub-opengl sub-xmlpatterns sub-svg sub-plugins 295 sub-opengl sub-xmlpatterns sub-svg sub-plugins
272 ) || exit $? 296 ) || exit $?
297 ( cd demos
298 %{l_make} %{l_mflags -O} sub-arthurplugin
299 ) || exit $?
273 300
274 # cache shared libs and initialize the build configuration, which 301 # cache shared libs and initialize the build configuration, which
275 # would otherwise still contain references to our shared libs build 302 # would otherwise still contain references to our shared libs build
276 %{l_shtool} mkdir -f -p -m 755 dynamic 303 %{l_shtool} mkdir -f -p -m 755 dynamic
277 mv lib/* dynamic/ 304 mv lib/* dynamic/
281 rm -f .qmake.cache 308 rm -f .qmake.cache
282 %endif 309 %endif
283 310
284 # mandatory static build (follows optional shared build) 311 # mandatory static build (follows optional shared build)
285 echo 'yes' | ./configure \ 312 echo 'yes' | ./configure \
313 $archflags \
286 -prefix %{l_prefix} \ 314 -prefix %{l_prefix} \
287 -bindir %{l_prefix}/bin \ 315 -bindir %{l_prefix}/bin \
288 -libdir %{l_prefix}/lib \ 316 -libdir %{l_prefix}/lib \
289 -docdir %{l_prefix}/share/qt/doc \ 317 -docdir %{l_prefix}/share/qt/doc \
290 -headerdir %{l_prefix}/include \ 318 -headerdir %{l_prefix}/include \
385 %{l_tar} cf - dynamic | %{l_tar} xf - -C $RPM_BUILD_ROOT%{l_prefix}/lib/qt 413 %{l_tar} cf - dynamic | %{l_tar} xf - -C $RPM_BUILD_ROOT%{l_prefix}/lib/qt
386 414
387 # offer limited support of pkg-config(1) for shared libs 415 # offer limited support of pkg-config(1) for shared libs
388 # substitution unfortunately only handles paths with no whitespace 416 # substitution unfortunately only handles paths with no whitespace
389 %{l_shtool} subst \ 417 %{l_shtool} subst \
390 -e "s;[\ \t][\ \t]*qt-x11-opensource-src-%{version};%{l_prefix};g" \ 418 -e "s;[^\t ][^\t ]*qt-x11-opensource-src-%{version};%{l_prefix};g" \
391 $RPM_BUILD_ROOT%{l_prefix}/lib/qt/dynamic/pkgconfig/* 419 $RPM_BUILD_ROOT%{l_prefix}/lib/qt/dynamic/pkgconfig/*
392 420
393 # explain nonstandard shared library placement 421 # explain nonstandard shared library placement
394 ( echo "This OpenPKG Qt build is using the with_shared option." 422 ( echo "This OpenPKG Qt build is using the with_shared option."
395 echo "" 423 echo ""
404 echo "please direct pkg-config(1) to use the properdefinitions" 432 echo "please direct pkg-config(1) to use the properdefinitions"
405 echo "by setting the environment variable PKG_CONFIG_PATH to " 433 echo "by setting the environment variable PKG_CONFIG_PATH to "
406 echo "%{l_prefix}/lib/qt/dynamic/pkgconfig." 434 echo "%{l_prefix}/lib/qt/dynamic/pkgconfig."
407 ) >$RPM_BUILD_ROOT%{l_prefix}/lib/qt/README 435 ) >$RPM_BUILD_ROOT%{l_prefix}/lib/qt/README
408 436
409 # install plugins, which are otherwise only useless static objects
410 for plug in accessible codecs designer iconengines \
411 imageformats inputmethods script sqldrivers; do \
412 %{l_shtool} mkdir -f -p -m 755 \
413 $RPM_BUILD_ROOT%{l_prefix}/lib/qt/plugins/${plug}; \
414 %{l_shtool} install -c -m 644 \
415 plugins/${plug}/*.so plugins/${plug}/*.so.debug \
416 $RPM_BUILD_ROOT%{l_prefix}/lib/qt/plugins/${plug}/; \
417 done
418
419 # remove temporary dynamic link paths 437 # remove temporary dynamic link paths
420 %{l_shtool} subst \ 438 %{l_shtool} subst \
421 -e 's;\(QMAKE_PRL_BUILD_DIR[^=]*=\).*\(qt-x11-opensource-src.*\);\1 /tmp/\2;' \ 439 -e "s;-L\([\t ]*\)[^\t ][^\t ]*qt-x11-opensource-src-%{version}\(/[^\t ][^\t ]*\);-L\1%{l_prefix}\2;g" \
422 $RPM_BUILD_ROOT%{l_prefix}/lib/*.prl 440 -e "s;\([\t ][\t ]*\)[^\t ][^\t ]*\(qt-x11-opensource-src-%{version}.*\);\1/tmp/\2;" \
441 $RPM_BUILD_ROOT%{l_prefix}/lib/qt/dynamic/*.prl \
442 $RPM_BUILD_ROOT%{l_prefix}/lib/qt/dynamic/*.la
423 %endif 443 %endif
424 444
425 # determine internal file listing 445 # determine internal file listing
426 %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT \ 446 %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT \
427 %{l_files_std} \ 447 %{l_files_std} \

mercurial