## ## qt.spec -- OpenPKG RPM Specification ## Copyright (c) 2000-2003 Cable & Wireless Deutschland GmbH ## Copyright (c) 2000-2003 The OpenPKG Project ## Copyright (c) 2000-2003 Ralf S. Engelschall ## ## 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.1.2 Release: 20030305 # package options %option with_xft no # list of sources Source0: ftp://ftp.trolltech.com/pub/qt/source/qt-x11-free-%{version}.tar.gz # build information Prefix: %{l_prefix} BuildRoot: %{l_buildroot} BuildPreReq: OpenPKG, openpkg >= 20030103, X11, gcc PreReq: OpenPKG, openpkg >= 20030103, X11 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} %build export QTDIR=`pwd` case "%{l_target}" in *-freebsd* ) oscomp="freebsd-g++" %{l_shtool} subst \ -e 's/defined(_POSIX_THREAD_SAFE_FUNCTIONS)/_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 ;; *-linux* ) oscomp="linux-g++" ;; *-solaris* ) oscomp="solaris-g++" ;; * ) echo "platform %{l_target} not supported" 2>&1; exit 1 ;; esac # special trolltech configuration echo "yes" | ./configure \ -prefix %{l_prefix} \ -docdir %{l_prefix}/share/qt/doc \ -datadir %{l_prefix}/share/qt/data \ -static -qt-gif -qt-zlib -platform $oscomp \ -stl -qt-libpng -qt-libjpeg -qt-libmng \ %if "%{with_xft}" == "yes" -xft %else -no-xft %endif # set $HOME to a writable directory for qsettings HOME=$PWD %{l_make} %{l_mflags -O} \ MAKE="%{l_make} %{l_mflags -O}" # run configure a second time to get threaded libs, too echo "yes" | ./configure \ -prefix %{l_prefix} \ -docdir %{l_prefix}/share/qt/doc \ -datadir %{l_prefix}/share/qt/data \ -static -qt-gif -qt-zlib -platform $oscomp \ -thread -stl -qt-libpng -qt-libjpeg -qt-libmng \ %if "%{with_xft}" == "yes" -xft %else -no-xft %endif # make our targets a second time to get threaded libs, too %{l_make} %{l_mflags -O} \ MAKE="%{l_make} %{l_mflags -O}" \ symlinks src-qmake src-moc sub-src sub-tools %install rm -rf $RPM_BUILD_ROOT # make directory structure %{l_shtool} mkdir -f -p -m 755 \ $RPM_BUILD_ROOT%{l_prefix}/bin \ $RPM_BUILD_ROOT%{l_prefix}/lib \ $RPM_BUILD_ROOT%{l_prefix}/include/qt/private \ $RPM_BUILD_ROOT%{l_prefix}/man/man1 \ $RPM_BUILD_ROOT%{l_prefix}/man/man3 \ $RPM_BUILD_ROOT%{l_prefix}/share/qt/doc/html \ $RPM_BUILD_ROOT%{l_prefix}/share/qt/templates \ $RPM_BUILD_ROOT%{l_prefix}/share/qt/phrasebooks \ $RPM_BUILD_ROOT%{l_prefix}/share/qt/images # copy binaries, headers, and then libraries to their target %{l_shtool} install -c -s -m 755 \ bin/qmake bin/moc bin/uic \ bin/linguist bin/lrelease bin/lupdate \ bin/assistant bin/qtconfig bin/designer \ $RPM_BUILD_ROOT%{l_prefix}/bin/ # copy mkspecs directory for later portable use of qmake cp -rp mkspecs $RPM_BUILD_ROOT%{l_prefix}/share/qt/ # 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 %{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 \ doc/html/* $RPM_BUILD_ROOT%{l_prefix}/share/qt/doc/html/ %{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/ %{l_shtool} install -c -m 644 \ lib/*.a lib/*.prl $RPM_BUILD_ROOT%{l_prefix}/lib %{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_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT %{l_files_std} %files -f files %clean rm -rf $RPM_BUILD_ROOT