| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393 |
- ##
- ## qt.spec -- OpenPKG RPM Specification
- ## Copyright (c) 2000-2003 The OpenPKG Project <http://www.openpkg.org/>
- ## Copyright (c) 2000-2003 Ralf S. Engelschall <rse@engelschall.com>
- ## Copyright (c) 2000-2003 Cable & Wireless <http://www.cw.com/>
- ##
- ## 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: qt
- Summary: The Qt Toolkit
- URL: http://www.trolltech.com/products/qt/x11.html
- Vendor: TrollTech AS
- Packager: The OpenPKG Project
- Distribution: OpenPKG [EVAL]
- Group: XWindow
- License: GPL
- Version: 3.2.3
- Release: 20031202
- # package library options (each 'yes' builds more libraries)
- %option with_shared no
- %option with_threads yes
- # package extra options (additional nonlibrary components)
- %option with_pgsql no
- %option with_mysql no
- %option with_tools no
- # list of sources
- Source0: ftp://ftp.trolltech.com/pub/qt/source/qt-x11-free-%{version}.tar.bz2
- Patch0: qt.patch
- # build information
- Prefix: %{l_prefix}
- BuildRoot: %{l_buildroot}
- BuildPreReq: OpenPKG, openpkg >= 20030909, X11, xft, gcc, sed
- PreReq: OpenPKG, openpkg >= 20030909, X11, xft
- %if "%{with_pgsql}" == "yes"
- BuildPreReq: postgresql
- PreReq: postgresql
- %endif
- %if "%{with_mysql}" == "yes"
- BuildPreReq: mysql
- PreReq: mysql
- %endif
- AutoReq: no
- AutoReqProv: no
- %description
- Qt is a GUI (graphical user interface) software toolkit which simplifies
- the task of writing and maintaining GUIs, and allows the developer to
- create prototypes and feature-rich applications quickly. Offering C++
- library bindings, Qt enables development in an object-oriented
- environment and appeals to developers with portability in mind. Qt's
- portable C++ library bindings allow for error-free recompiling on at
- least the three major platforms Unix (and Linux), Apple Macintosh, and
- Microsoft Windows. Its API architecture is designed to reduce complexity
- and increase reliability through a signal and slot mechanism, which is
- similar to templates in C++, but with influences from component
- technology.
- %prep
- %setup -q -n qt-x11-free-%{version}
- %patch -p1
- # avoid dependencies external to OpenPKG instance
- cp -rp mkspecs mkspecs.fresh
- %{l_shtool} subst \
- -e 's;[ \t]*-I/usr/local/include;;g' \
- -e 's;[ \t]*/usr/local/include;;g' \
- -e 's;[ \t]*-L/usr/local/lib;;g' \
- -e 's;[ \t]*/usr/local/lib;;g' \
- mkspecs/darwin-g++/qmake.conf \
- mkspecs/freebsd-g++/qmake.conf \
- mkspecs/netbsd-g++/qmake.conf \
- mkspecs/macx-pbuilder/qmake.conf \
- mkspecs/openbsd-g++/qmake.conf
- # correctly detect OpenPKG xrender and xft installations
- %{l_shtool} subst \
- -e 's;INCDIRS=";INCDIRS="%{l_prefix}/include ;g' \
- -e 's;LIBDIRS=";LIBDIRS="%{l_prefix}/lib ;g' \
- -e 's;freetype2/freetype/;freetype/;g' \
- -e 's;freetype2;freetype;g' \
- config.tests/x11/xfreetype.test \
- config.tests/x11/xrender.test
- # repair nonstandard posix thread test macro usage
- %{l_shtool} subst \
- -e 's/\(defined(_POSIX_THREAD_SAFE_FUNCTIONS)\)/(\1 \&\& _POSIX_THREAD_SAFE_FUNCTIONS-0>0)/g' \
- src/dialogs/qfiledialog.cpp src/kernel/qfont_x11.cpp \
- src/tools/qdatetime.cpp src/tools/qdir_unix.cpp
- %build
- # display a warning that this package is a beast
- ( echo "The qt package requires about 320 MB of temporary disk space"
- echo "and one to five hours (depending on options) to build on a"
- echo "800 MHz system. Therefore, please be prepared and be patient."
- ) | %{l_rpmtool} msg -b -t notice
- # set HOME to a writable directory for qsettings
- # and set QTDIR to just the source tree directory
- # and determine the target platform to build
- HOME=`pwd`
- QTDIR=`pwd`
- case "%{l_platform -t}" in
- *-freebsd* ) oscomp="freebsd-g++" ;;
- *-linux* ) oscomp="linux-g++" ;;
- *-sunos* ) oscomp="solaris-g++" ;;
- * ) echo "platform %{l_platform -t} not supported" 2>&1; exit 1 ;;
- esac
- # put in proper search paths for dynamic libraries
- rflags=`echo '%{l_ldflags}' | %{l_shtool} subst \
- -e 's;%{l_prefix}/lib;%{l_prefix}/lib/qtdyn;g' \
- -e 's;-L;-R;g'`
- # calculate X11 paths in advance
- l_x11_incdir=`%{l_prefix}/etc/rc --query x11_incdir`
- l_x11_libdir=`%{l_prefix}/etc/rc --query x11_libdir`
- %if "%{with_shared}" == "yes"
- # special trolltech configuration
- CC="%{l_cc}" \
- CXX="%{l_cxx}" \
- CFLAGS="%{l_cflags -O}" \
- CXXFLAGS="%{l_cxxflags -O}" \
- echo "yes" | ./configure \
- %if "%{with_pgsql}" == "yes"
- -qt-sql-psql \
- %endif
- %if "%{with_mysql}" == "yes"
- -qt-sql-mysql \
- %endif
- -platform $oscomp \
- -prefix %{l_prefix} \
- -docdir %{l_prefix}/share/qt/doc \
- -datadir %{l_prefix}/share/qt/data \
- -plugindir %{l_prefix}/share/qt/plugins \
- -translationdir %{l_prefix}/share/qt/translations \
- -sysconfdir %{l_prefix}/etc/qt \
- -release -shared -stl -sm -xrender -xft \
- -qt-zlib -qt-libpng -qt-libjpeg -qt-libmng -qt-gif \
- -I$QTDIR/include %{l_cppflags} -I${l_x11_incdir} \
- -L$QTDIR/lib %{l_ldflags} -L${l_x11_libdir} \
- -R$rflags \
- -no-thread
- # make shared libs, but tools will be built statically later
- %{l_make} %{l_mflags -O} \
- MAKE="%{l_make} %{l_mflags -O}" \
- LD_LIBRARY_PATH=$QTDIR/lib \
- sub-src sub-plugins
- %if "%{with_threads}" == "yes"
- # run configure a second time to get threaded libs as well
- CC="%{l_cc}" \
- CXX="%{l_cxx}" \
- CFLAGS="%{l_cflags -O}" \
- CXXFLAGS="%{l_cxxflags -O}" \
- echo "yes" | ./configure \
- %if "%{with_pgsql}" == "yes"
- -qt-sql-psql \
- %endif
- %if "%{with_mysql}" == "yes"
- -qt-sql-mysql \
- %endif
- -platform $oscomp \
- -prefix %{l_prefix} \
- -docdir %{l_prefix}/share/qt/doc \
- -datadir %{l_prefix}/share/qt/data \
- -plugindir %{l_prefix}/share/qt/plugins \
- -translationdir %{l_prefix}/share/qt/translations \
- -sysconfdir %{l_prefix}/etc/qt \
- -release -shared -stl -sm -xrender -xft \
- -qt-zlib -qt-libpng -qt-libjpeg -qt-libmng -qt-gif \
- -I$QTDIR/include %{l_cppflags} -I${l_x11_incdir} \
- -L$QTDIR/lib %{l_ldflags} -L${l_x11_libdir} \
- -R$rflags \
- -thread
- # make our targets a second time to get threaded libs, too
- %{l_make} %{l_mflags -O} \
- MAKE="%{l_make} %{l_mflags -O}" \
- LD_LIBRARY_PATH=$QTDIR/lib \
- sub-src sub-plugins
- %endif
- # already install our shared libs, and clear out the rest
- cp -rf lib dyn
- rm -f lib/*
- %endif
- # start of static lib build
- # special trolltech configuration
- CC="%{l_cc}" \
- CXX="%{l_cxx}" \
- CFLAGS="%{l_cflags -O}" \
- CXXFLAGS="%{l_cxxflags -O}" \
- echo "yes" | ./configure \
- %if "%{with_pgsql}" == "yes"
- -qt-sql-psql \
- %endif
- %if "%{with_mysql}" == "yes"
- -qt-sql-mysql \
- %endif
- -platform $oscomp \
- -prefix %{l_prefix} \
- -docdir %{l_prefix}/share/qt/doc \
- -datadir %{l_prefix}/share/qt/data \
- -plugindir %{l_prefix}/share/qt/plugins \
- -translationdir %{l_prefix}/share/qt/translations \
- -sysconfdir %{l_prefix}/etc/qt \
- -release -static -stl -sm -xrender -xft \
- -qt-zlib -qt-libpng -qt-libjpeg -qt-libmng -qt-gif \
- -I$QTDIR/include %{l_cppflags} -I${l_x11_incdir} \
- -L$QTDIR/lib %{l_ldflags} -L${l_x11_libdir} \
- -no-thread
- %{l_make} %{l_mflags -O} \
- MAKE="%{l_make} %{l_mflags -O}" \
- %if "%{with_tools}" == "yes"
- sub-src sub-tools
- %else
- sub-src
- ( cd tools/designer
- %{l_make} %{l_mflags -O} \
- MAKE="%{l_make} %{l_mflags -O}" \
- sub-uic
- ) || exit $?
- %endif
- %if "%{with_threads}" == "yes"
- # run configure a second time to get threaded libs as well
- CC="%{l_cc}" \
- CXX="%{l_cxx}" \
- CFLAGS="%{l_cflags -O}" \
- CXXFLAGS="%{l_cxxflags -O}" \
- echo "yes" | ./configure \
- %if "%{with_pgsql}" == "yes"
- -qt-sql-psql \
- %endif
- %if "%{with_mysql}" == "yes"
- -qt-sql-mysql \
- %endif
- -platform $oscomp \
- -prefix %{l_prefix} \
- -docdir %{l_prefix}/share/qt/doc \
- -datadir %{l_prefix}/share/qt/data \
- -plugindir %{l_prefix}/share/qt/plugins \
- -translationdir %{l_prefix}/share/qt/translations \
- -sysconfdir %{l_prefix}/etc/qt \
- -release -static -stl -sm -xrender -xft \
- -qt-zlib -qt-libpng -qt-libjpeg -qt-libmng -qt-gif \
- -I$QTDIR/include %{l_cppflags} -I${l_x11_incdir} \
- -L$QTDIR/lib %{l_ldflags} -L${l_x11_libdir} \
- -thread
- # make our targets a second time to get threaded libs, too
- %{l_make} %{l_mflags -O} \
- MAKE="%{l_make} %{l_mflags -O}" \
- %if "%{with_tools}" == "yes"
- sub-src sub-tools
- %else
- sub-src
- ( cd tools/designer
- %{l_make} %{l_mflags -O} \
- MAKE="%{l_make} %{l_mflags -O}" \
- sub-uic
- ) || exit $?
- %endif
- %endif
- %install
- rm -rf $RPM_BUILD_ROOT
- # calculate X11 lib directory in advance
- l_x11_libdir=`%{l_prefix}/etc/rc --query x11_libdir`
- # make directory structure
- %{l_shtool} mkdir -f -p -m 755 \
- $RPM_BUILD_ROOT%{l_prefix}/bin \
- %if "%{with_shared}" == "yes"
- $RPM_BUILD_ROOT%{l_prefix}/lib/qtdyn \
- %endif
- %if "%{with_tools}" == "yes"
- $RPM_BUILD_ROOT%{l_prefix}/share/qt/templates \
- $RPM_BUILD_ROOT%{l_prefix}/share/qt/phrasebooks \
- $RPM_BUILD_ROOT%{l_prefix}/share/qt/images \
- %endif
- $RPM_BUILD_ROOT%{l_prefix}/share/qt/doc/html \
- $RPM_BUILD_ROOT%{l_prefix}/include/qt/private \
- $RPM_BUILD_ROOT%{l_prefix}/lib/pkgconfig \
- $RPM_BUILD_ROOT%{l_prefix}/man/man1 \
- $RPM_BUILD_ROOT%{l_prefix}/man/man3
- # copy binaries, headers, and then libraries to their target
- %{l_shtool} install -c -s -m 755 \
- bin/qmake bin/moc bin/uic \
- $RPM_BUILD_ROOT%{l_prefix}/bin/
- %if "%{with_tools}" == "yes"
- %{l_shtool} install -c -s -m 755 \
- bin/linguist bin/lrelease bin/lupdate \
- bin/assistant bin/qtconfig bin/designer \
- $RPM_BUILD_ROOT%{l_prefix}/bin/
- %endif
- # copy mkspecs directory for later portable use of qmake
- cp -rp mkspecs.fresh $RPM_BUILD_ROOT%{l_prefix}/share/qt/mkspecs
- # correct man suffix
- for man in doc/man/man3/*.3qt; do
- %{l_shtool} subst -e 's;\.3qt;.3;' $man
- mv $man `echo $man | sed -e 's;\.3qt$;.3;'`
- done
- # copy files to their destinations
- %{l_shtool} install -c -m 644 \
- include/*.h $RPM_BUILD_ROOT%{l_prefix}/include/qt/
- %{l_shtool} install -c -m 644 \
- include/private/*.h $RPM_BUILD_ROOT%{l_prefix}/include/qt/private/
- %{l_shtool} install -c -m 644 \
- lib/*.a lib/*.prl $RPM_BUILD_ROOT%{l_prefix}/lib/
- %{l_shtool} install -c -m 644 \
- -e "s;\t; ;g" \
- -e "s;\ \+; ;g" \
- -e "s;\ *$;;g" \
- -e "s;-[lL]\ *\-;\-;g" \
- -e "s;-l\ *[^ ]*qt\.pc\ *;;g" \
- -e "s;-L\ *.[^ ]*\ *;;g" \
- -e "s;Libs:;Libs: %{l_ldflags} -L${l_x11_libdir};g" \
- -e "s;\(\-l\);\-lqt \1;" \
- lib/qt.pc $RPM_BUILD_ROOT%{l_prefix}/lib/pkgconfig/
- %if "%{with_threads}" == "yes"
- %{l_shtool} install -c -m 644 \
- -e "s;\t; ;g" \
- -e "s;\ \+; ;g" \
- -e "s;\ *$;;g" \
- -e "s;-[lL]\ *\-;\-;g" \
- -e "s;-l\ *[^ ]*qt\-mt\.pc\ *;;g" \
- -e "s;-L\ *.[^ ]*\ *;;g" \
- -e "s;Libs:;Libs: %{l_ldflags} -L${l_x11_libdir};g" \
- -e "s;\(\-l\);\-lqt\-mt \1;" \
- lib/qt-mt.pc $RPM_BUILD_ROOT%{l_prefix}/lib/pkgconfig/
- %endif
- %if "%{with_shared}" == "yes"
- %{l_shtool} install -c -m 644 \
- dyn/lib*.so* dyn/*.prl dyn/*.pc $RPM_BUILD_ROOT%{l_prefix}/lib/qtdyn/
- %endif
- %if "%{with_tools}" == "yes"
- %{l_shtool} install -c -m 644 \
- tools/designer/templates/*.ui $RPM_BUILD_ROOT%{l_prefix}/share/qt/templates/
- %{l_shtool} install -c -m 644 \
- tools/linguist/phrasebooks/*.qph $RPM_BUILD_ROOT%{l_prefix}/share/qt/phrasebooks/
- %{l_shtool} install -c -m 644 \
- tools/designer/designer/images/* $RPM_BUILD_ROOT%{l_prefix}/share/qt/images/
- %endif
- %{l_shtool} install -c -m 644 \
- doc/man/man3/*.3 $RPM_BUILD_ROOT%{l_prefix}/man/man3/
- %{l_shtool} install -c -m 644 \
- doc/man/man1/*.1 $RPM_BUILD_ROOT%{l_prefix}/man/man1/
- %{l_shtool} install -c -m 644 \
- doc/html/* $RPM_BUILD_ROOT%{l_prefix}/share/qt/doc/html/
- # determine installation files
- %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT \
- %{l_files_std} \
- '%not %dir %{l_prefix}/lib/pkgconfig'
- %files -f files
- %clean
- rm -rf $RPM_BUILD_ROOT
|