File libqt4.spec of Package libqt4

#
# spec file for package libqt4 (Version 4.4.3)
#
# Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.

# Please submit bugfixes or comments via http://bugs.opensuse.org/
#

# norootforbuild


Name:           libqt4
BuildRequires:  Mesa-devel cups-devel freetype2-devel gcc-c++ libjpeg-devel libmng-devel
BuildRequires:  libpng-devel libtiff-devel pkgconfig sqlite-devel
BuildRequires:  glib2-devel update-desktop-files
%if %suse_version > 910
BuildRequires:  dbus-1-devel openssl-devel xorg-x11-devel
%else
BuildRequires:  XFree86-devel XFree86-libs
%endif
%if %suse_version > 1020
BuildRequires:  clucene-core-devel
%endif
%define with_qt3support 1
Url:            http://www.trolltech.com
License:        GPL v2 only; GPL v3 only
Group:          System/Libraries
AutoReqProv:    on
Summary:        C++ Program Library, Core Components
# bug437293
%ifarch ppc64
Obsoletes:      qt-64bit
%endif
#
Obsoletes:      qt
Provides:       qt
Provides:       libqt4-dbus-1 = 4.4.0
Obsoletes:      libqt4-dbus-1 < 4.4.0
# COMMON-BEGIN
Version:        4.4.3
Release:        4.<RELEASE12>
%define base_name libqt4
%define x11_free  -x11-opensource-src-
%define rversion 4.4.3
Source:         qt%x11_free%rversion.tar.bz2
Source10:       qt4config.desktop
Source11:       designer4.desktop
Source12:       linguist4.desktop
Source13:       assistant4.desktop
Source14:       assistant.png
Source15:       designer.png
Source16:       linguist.png
Source42:       libQtWebKit-4.5.3.tar.bz2
Patch2:         qt-never-strip.diff
Patch3:         plastik-default.diff
Patch5:         lib64.patch
Patch6:         use-freetype-default.diff
Patch1006:      use-freetype-default-legacy.diff
Patch8:         link-tools-shared.diff
#Patch20:        qt-font-choose.diff
Patch27:        0167-fix-group-reading.diff
Patch39:        0191-listview-alternate-row-colors.diff
Patch40:        0188-fix-moc-parser-same-name-header.diff
Patch43:        0195-compositing-properties.diff
Patch48:        0203-qtexthtmlparser-link-color.diff
Patch55:        ignore-global-advance-width-in-fots.diff
Patch60:        0180-window-role.diff
Patch61:        qt4-fake-bold.patch
Patch66:        statusbar-recursion.diff
Patch67:        postgresql83-support.diff
Patch70:        0225-invalidate-tabbar-geometry-on-refresh.patch
Patch74:        ppc-atomic.diff
Patch75:        qt-debug-timer.diff
Patch77:        qt4-input-method-lazy-load.patch
Patch79:        aliasing.diff
Patch82:        0234-fix-mysql-threaded.diff
Patch86:        0238-fix-qt-qttabbar-size.diff
Patch87:        qfatal-noreturn.diff
Patch88:        0245-fix-randr-changes-detecting.diff
Patch90:        display-key-support.diff
Patch91:        0249-webkit-stale-frame-pointer.diff
Patch92:        0254-fix-qgraphicsproxywidget-deletion-crash.diff
Patch93:        0260-fix-qgraphicswidget-deletionclearFocus.diff
Patch94:        qnativesocketengine-select.diff
Patch95:        0257-qurl-validate-speedup.diff
Patch97:        0256-fix-recursive-backingstore-sync-crash.diff
Patch98:        0262-fix-treeview-animation-crash.diff
Patch99:        0261-sync-before-reset-errorhandler.patch
Patch100:       0263-fix-fontconfig-handling.diff
Patch101:       no-moc-date.diff
Patch102:       0253-qmake_correct_path_separators.diff
Patch103:       0265-fix-formlayoutcrash.diff
Patch104:       0264-fix-zero-height-qpixmap-isnull.diff
Patch105:       CVE-2009-0945.Qt-4.4.x.patch
Patch106:       CVE-2009-2700.diff
Patch107:       avoid-dbus-deadlock.diff
#Patch108:       libQtWebKit.diff
Patch109:       qt4-466791-force-focus-out-input-context.patch
Patch110:       CVE-2011-3922.patch
BuildRoot:      %{_tmppath}/%{name}-%{version}-build
%if %suse_version > 910
  %define common_options -fast -no-separate-debug-info -shared -xkb -tablet -xrender -xcursor -dbus-linked -xfixes -xrandr -xinerama -sm -no-nas-sound -no-rpath -system-libjpeg -system-libpng -accessibility -cups -stl -nis -system-zlib -qt-gif -prefix /usr -L %_libdir -libdir %_libdir -docdir %_docdir/%{base_name} -examplesdir %_libdir/qt4/examples -demosdir %_libdir/qt4/demos -plugindir %plugindir -translationdir /usr/share/qt4/translations -iconv -sysconfdir /etc/settings -datadir /usr/share/qt4/ -no-pch -reduce-relocations -exceptions -system-libtiff -glib -optimized-qmake -no-webkit -no-xmlpatterns -system-sqlite -qt3support
%else
  %define common_options -fast -no-separate-debug-info -shared -xkb -no-tablet -no-xrender -no-xrandr -no-xinerama -no-xshape -no-nas-sound -no-rpath -system-libjpeg -system-libpng -accessibility -cups -stl -nis -system-zlib -qt-gif -prefix /usr -L %_libdir -libdir %_libdir -docdir %_docdir/%{base_name} -examplesdir %_libdir/qt4/examples -demosdir %_libdir/qt4/demos -plugindir %plugindir -translationdir /usr/share/qt4/translations -iconv -sysconfdir /etc/settings -datadir /usr/share/qt4/ -no-pch -no-exceptions -system-libtiff -no-sm -no-opengl -no-xcursor -no-webkit -no-xmlpatterns
%endif
%define check_config \
  grep '# define' src/corelib/global/qconfig.h | egrep -v 'QT_(ARCH|USE)';             \
  if test -f /usr/share/qt4/mkspecs/qconfig.pri ; then                                 \
    cmp /usr/share/qt4/mkspecs/qconfig.pri mkspecs/qconfig.pri || exit 1;           \
  fi                                                                                   \

%description
Qt is a set of libraries for developing applications.

This package contains base tools, like string, xml, and network
handling.



Authors:
--------
    Troll Tech AS, Norway

%prep
%define plugindir %_libdir/qt4/plugins
%setup -q -n qt%x11_free%rversion
%patch2
%patch3
%patch5
%if %suse_version > 1010
%patch6
%else
%patch1006
%endif
# needs rediffing
#%patch8
%patch27
%patch39
%patch40
%patch43
%patch48
%patch55
%patch60
%if %suse_version > 910
# bnc#374073 comment #8
# %patch61
%endif
%patch66
%patch67 -p1
%patch70
%patch74
%patch75
%patch77
%patch79
%patch82
%patch86
%patch87
%patch88
%patch90
%patch91
%patch92
%patch93
%patch94
%patch95
%patch97
%patch98
%patch99
%patch100
%patch101
%patch102
%patch103
%patch104
%patch105
%patch106
%patch107
%patch109 -p1
%patch110
# be sure not to use them
rm -rf src/3rdparty/{libjpeg,freetype,libpng,zlib,libtiff}
# COMMON-END

%package devel
License:        GPL v2 only; GPL v3 only
Group:          Development/Libraries/X11
Summary:        Qt Development Kit
Requires:       zlib-devel c++_compiler pkgconfig
Requires:       freetype2-devel libmng-devel libpng-devel libtiff-devel
%if %suse_version > 910
Requires:       xorg-x11-devel Mesa-devel dbus-1-devel openssl-devel
%else
Requires:       XFree86-devel
%endif
Requires:       glib2-devel
Requires:       %name = %version
# bug437293
%ifarch ppc64
Obsoletes:      qt-devel-64bit
%endif
#
Provides:       dbus-1-qt-devel < 0.63
Obsoletes:      dbus-1-qt-devel < 0.63
Obsoletes:      qt-devel < 4.4.0
Provides:       qt-devel < 4.4.0
Provides:       dbus-1-qt < 0.63
Provides:       qt-dbus-1 < 4.2.0
Obsoletes:      dbus-1-qt < 0.63
Obsoletes:      qt-dbus-1 < 4.2.0

%description devel
You need this package, if you want to compile programs with Qt. It
contains the "Qt Crossplatform Development Kit". It does contain
include files and development applications like GUI designers,
translator tools and code generators.



Authors:
--------
    Troll Tech AS, Norway

%package -n libqt4-sql-sqlite
License:        GPL v2 only; GPL v3 only
Group:          Development/Libraries/C and C++
Summary:        Qt 4 sqlite plugin
Requires:       libqt4-sql = %version
Provides:       libqt4_sql_backend = %version
Obsoletes:      qt-sql-sqlite
Provides:       qt-sql-sqlite

%description -n libqt4-sql-sqlite
Qt 4 sqlite plugin to be able to use database functionality with Qt
applications without the need to setup a SQL server.



Authors:
--------
    Troll Tech AS, Norway

%package x11
License:        GPL v2 only; GPL v3 only
Group:          Development/Libraries/C and C++
Summary:        Qt 4 GUI related libraries
# bug437293
%ifarch ppc64
Obsoletes:      qt-x11-64bit
%endif
#
Obsoletes:      qt-x11
Provides:       qt-x11
Requires:       %name = %version

%description x11
Qt 4 libraries which are used for drawing widgets and OpenGL items.



Authors:
--------
    Troll Tech AS, Norway

%if %with_qt3support

%package qt3support
License:        GPL v2 only; GPL v3 only
Group:          System/Libraries
Summary:        C++ Program Library, Core Components
# bug437293
%ifarch ppc64
Obsoletes:      qt-qt3support-64bit
%endif
#
Obsoletes:      qt-qt3support
Provides:       qt-qt3support
Requires:       %name = %version

%description qt3support
Qt is a set of libraries for developing applications.

This package contains base tools, like string, xml, and network
handling.



Authors:
--------
    Troll Tech AS, Norway

%endif

%package sql
License:        GPL v2 only; GPL v3 only
Group:          Development/Libraries/C and C++
Summary:        Qt 4 SQL related libraries
# bug437293
%ifarch ppc64
Obsoletes:      qt-sql-64bit
%endif
#
Obsoletes:      qt-sql
Provides:       qt-sql
Requires:       %name = %version
%if %suse_version > 910
Recommends:     libqt4_sql_backend = %version
Suggests:       libqt4-sql-sqlite
%endif

%description sql
Qt 4 libraries which are used for connection with an SQL server. You
will need also a plugin package for a supported SQL server.



Authors:
--------
    Troll Tech AS, Norway

%build
export QTDIR=$PWD
export PATH=$PWD/bin:$PATH
export LD_LIBRARY_PATH=$PWD/lib/
sed -i -e "/^QMAKE_CFLAGS_RELEASE[ \t]*+=/s,\$, $RPM_OPT_FLAGS," mkspecs/common/g++.conf
export CXXFLAGS="$CXXFLAGS $RPM_OPT_FLAGS"
export CFLAGS="$CFLAGS $RPM_OPT_FLAGS"
export MAKEFLAGS="%{?jobs:-j %jobs}"
echo yes | ./configure %common_options -plugin-sql-sqlite -nomake examples -nomake demos -webkit -xmlpatterns
%check_config
mkdir fullconfig
cp -p src/corelib/global/qconfig.h fullconfig
cp -p mkspecs/qconfig.pri fullconfig
echo yes | ./configure %common_options -plugin-sql-sqlite -nomake examples -nomake demos -no-webkit -no-xmlpatterns
make %{?jobs:-j %jobs}

%install
# all except install_docimages
make INSTALL_ROOT=$RPM_BUILD_ROOT install_subtargets install_translations install_qmake install_mkspecs
# argggh, qmake is such a piece of <censored>
find $RPM_BUILD_ROOT/%_libdir -type f -name '*prl' -exec perl -pi -e "s, -L$RPM_BUILD_DIR/\S+,,g" {} \;
find $RPM_BUILD_ROOT/%_libdir -type f -name '*prl' -exec sed -i -e "/^QMAKE_PRL_BUILD_DIR/d" {} \;
#find $RPM_BUILD_ROOT/%_docdir/%name -type f -name 'lib*.a' -exec rm {} \;
find $RPM_BUILD_ROOT/%_libdir -type f -name '*la' -print -exec perl -pi -e "s, -L$RPM_BUILD_DIR/?\S+,,g" {} \;
# insanity ...
find $RPM_BUILD_ROOT/%_libdir -type f -name '*pc' -print -exec perl -pi -e "s, -L$RPM_BUILD_DIR/?\S+,,g" {} \; -exec sed -i -e "s,^moc_location=.*,moc_location=/usr/bin/moc," -e "s,uic_location=.*,uic_location=/usr/bin/uic," {} \;
find $RPM_BUILD_ROOT/%_libdir/ -name 'lib*.a' -exec chmod -x -- {} \;
mkdir -p $RPM_BUILD_ROOT/%plugindir/sqldrivers
for ch in changes-*; do
  if test -f $ch; then
    install -D -m 644 $ch $RPM_BUILD_ROOT/%_defaultdocdir/%name/$(basename $ch)
  fi
done
# overwrite config
install -m 644 fullconfig/qconfig.pri $RPM_BUILD_ROOT/usr/share/qt4/mkspecs/qconfig.pri
install -m 644 fullconfig/qconfig.h $RPM_BUILD_ROOT/usr/include/QtCore/
# packaged in devel-doc
rm $RPM_BUILD_ROOT/usr/bin/{qcollectiongenerator,assistant,assistant_adp}
rm $RPM_BUILD_ROOT/usr/bin/{qhelpconverter,qhelpgenerator}
# some packages expect these symlinks
ln -s /usr/include $RPM_BUILD_ROOT/%_libdir/qt4/include
ln -s %_libdir $RPM_BUILD_ROOT/%_libdir/qt4/lib
ln -s %_bindir $RPM_BUILD_ROOT/%_libdir/qt4/bin
#
# install menu entries
#
%suse_update_desktop_file -i qt4config  Qt Utility     DesktopSettings
%suse_update_desktop_file -i designer4  Qt Development GUIDesigner
%suse_update_desktop_file -i linguist4  Qt Development Translation

%clean
rm -rf $RPM_BUILD_ROOT

%post -p /sbin/ldconfig

%post x11 -p /sbin/ldconfig
%if %with_qt3support

%post qt3support -p /sbin/ldconfig

%postun qt3support -p /sbin/ldconfig
%endif

%post sql -p /sbin/ldconfig

%postun -p /sbin/ldconfig

%postun x11 -p /sbin/ldconfig

%postun sql -p /sbin/ldconfig

%files
%defattr(-,root,root,755)
%dir %_libdir/qt4
%dir %plugindir
%if %suse_version > 910
%dir %plugindir/script
%endif
%dir %plugindir/codecs
%dir %plugindir/iconengines
%dir %plugindir/imageformats
%dir %plugindir/inputmethods
%dir %plugindir/accessible
%dir %_defaultdocdir/%name
%doc %_defaultdocdir/%name/changes-*
%_libdir/libQtCore*.so.*
%_libdir/libQtNetwork*.so.*
%_libdir/libQtXml*.so.*
%_libdir/libQtTest.so.*
%_libdir/libQtCLucene.so.*
%if %suse_version > 910
/usr/bin/qdbus
%_libdir/libQtDBus*.so.*
%endif

%files x11
%defattr(-,root,root,755)
%if %with_qt3support
%exclude %plugindir/accessible/libqtaccessiblecompatwidgets.so
/usr/bin/qtconfig
%endif
%if %suse_version > 910
/usr/bin/qdbusviewer
%endif
/usr/share/applications/qt4config.desktop
# designer.png is referenced by qt4config.desktop
%if %suse_version > 910
/usr/share/pixmaps/designer.png
%endif
%_libdir/libQtGui*.so.*
%if %suse_version > 910
%_libdir/libQtOpenGL*.so.*
%endif
%_libdir/libQtSvg.so.*
%_libdir/libQtScript.so.*
%_libdir/libQtDesigner*.so.*
%_libdir/libQtAssistantClient.so.*
%_libdir/libQtHelp.so.*
%plugindir/codecs/*
%plugindir/iconengines/*
%plugindir/imageformats/*
%plugindir/inputmethods/*
%plugindir/accessible/*
/usr/share/qt4/translations
/usr/share/qt4/phrasebooks
%if %suse_version > 910
%plugindir/script/libqtscriptdbus.so
%endif
%if %with_qt3support

%files qt3support
%defattr(-,root,root,755)
%_libdir/libQt3Support*.so.*
%plugindir/accessible/libqtaccessiblecompatwidgets.so
%endif

%files devel
%defattr(-,root,root,755)
/usr/bin/rcc
/usr/bin/uic
%if %with_qt3support
/usr/bin/uic3
%endif
/usr/bin/moc
/usr/bin/qmake
/usr/bin/designer
/usr/bin/linguist
/usr/bin/lrelease
/usr/bin/lupdate
/usr/bin/pixeltool
/usr/bin/qt3to4
%if %suse_version > 910
/usr/bin/qdbuscpp2xml
/usr/bin/qdbusxml2cpp
%endif
%_libdir/lib*.prl
%_libdir/lib*a
%_libdir/lib*.so
%_libdir/pkgconfig/*
%_libdir/qt4/lib
/usr/include/Qt
%if %with_qt3support
%plugindir/designer
/usr/include/Qt3Support
%endif
/usr/include/QtAssistant
/usr/include/QtCore
%if %suse_version > 910
/usr/include/QtDBus
%endif
/usr/include/QtDesigner
/usr/include/QtGui
/usr/include/QtHelp
/usr/include/QtNetwork
%if %suse_version > 910
/usr/include/QtOpenGL
%endif
/usr/include/QtScript
/usr/include/QtSql
/usr/include/QtSvg
/usr/include/QtTest
/usr/include/QtUiTools
/usr/include/QtXml
/usr/share/applications/designer4.desktop
/usr/share/applications/linguist4.desktop
%if %suse_version > 910
/usr/share/pixmaps/linguist.png
%endif
%_libdir/qt4/include
%_libdir/qt4/bin
%dir /usr/share/qt4
/usr/share/qt4/mkspecs
/usr/share/qt4/q3porting.xml

%files sql
%defattr(-,root,root,755)
%dir %plugindir/sqldrivers
%_libdir/libQtSql*.so.*

%files -n libqt4-sql-sqlite
%defattr(-,root,root,755)
%dir %plugindir/sqldrivers
%plugindir/sqldrivers/libqsqlite*.so

%changelog
openSUSE Build Service is sponsored by