Репозиторий Sisyphus
Последнее обновление: 1 октября 2023 | Пакетов: 18631 | Посещений: 37593301
en ru br
Репозитории ALT
S:4.8.7-alt25
5.1: 4.6.3-alt1.M51.1
4.1: 4.4.3-alt1.M41.1
4.0: 4.3.4-alt5.M40.1
3.0: 4.0.1-alt1
+updates:4.0.1-alt2
+backports:4.2.3-alt7.1.M30
www.altlinux.org/Changes

Группа :: Система/Библиотеки
Пакет: qt4

 Главная   Изменения   Спек   Патчи   Sources   Загрузить   Gear   Bugs and FR  Repocop 

%define debug 0
%define qt_copy 0
%define building 0

%define _optlevel 2
%define static_thread 1
%define shared_thread 1
%define build_odbc 1
%define versioning 0

# Versions

%define rname qt
%define major 4
%define minor 0
%define bugfix 1
%define beta %nil
%define rlz alt2
Name: %rname%major
Version: %major.%minor.%bugfix
Release: %rlz

%define qtdir %_libdir/%name
%define kdedir %prefix
%add_findprov_lib_path %qtdir/lib

Group: System/Libraries
Summary: Shared library for the Qt%major GUI toolkit
Url: http://www.trolltech.com/products/qt.html
License: GPL & QPL

Requires: %name-doc %name-sql lib%name %name-assistant

%if %qt_copy
Source0: qt-copy-%version%beta.tar.bz2
%else
Source0: ftp://ftp.trolltech.com/qt/source/%rname-x11-opensource-src-%version%beta.tar.gz
%endif
#
Source8: qtX-README.ALT
Source11: qt-ru-3.3.2-20040604.tar.bz2
Source12: wrap_kde_malloc.cpp
#
Source21: qt4-assistant.desktop
Source22: qt4-designer.desktop
Source23: qt4-linguist.desktop
Source24: qt4-qtconfig.desktop

Source101: %rname.16.png
Source102: %rname.32.png
Source103: %rname.48.png

# FC

Patch1: qt-4.0.1-sans-mono.patch

# Qt-copy

Patch40: 0102-qabstractitemmodel_invalidate.diff
Patch41: 0103-qitemselectionrange_intersect.diff
Patch42: 0104-qpainter_vertical_center.diff
Patch43: 0105-qdatastream_qint64.diff
Patch44: 0106-qfileinfo-issymlink.diff

# ALT

# by raorn at altlinux
Patch101: qt-4.0.1-honor-SUSv3-locales.patch
Patch102: qt-4.0.1-sqlite.patch
Patch103: qt-4.0.1-assistant-location.patch
Patch104: qt-4.0.1-dlopen_libgl.patch
Patch105: qt-4.0.1-iso_c_extension.patch
Patch106: qt-4.0.1-dont-build-extra.patch
Patch107: qt-4.0.1-alt-visibility.patch
#
# Sergey A. Sukiyazov <sukiyazov at mail.ru>
Patch9000: qt-4.0.1-qmenubar-key_f10.patch

# Automatically added by buildreq on Wed Sep 04 2002

#BuildRequires: XFree86-devel XFree86-libs freetype2-devel gcc-c++ libMySQL-devel libcups-devel libjpeg-devel liblcms libmng-devel libpng-devel libssl libstdc++-devel libunixODBC-devel postgresql-devel postgresql-libs zlib-devel

BuildRequires: XFree86-devel XFree86-libs freetype2-devel libGLU-devel
BuildRequires: libcups-devel libssl libcups-devel
BuildRequires: libbeecrypt liblcms gcc-c++ libstdc++-devel
BuildRequires: libjpeg-devel libpng-devel zlib-devel
BuildRequires: postgresql-devel libpq-devel libMySQL-devel
BuildRequires: libsqlite3-devel
BuildRequires: bison libaudio-devel
BuildRequires: fontconfig-devel menu-devel
%if %build_odbc
BuildRequires: libunixODBC-devel
%endif
#BuildRequires: libXft-devel

%description
Qt is a GUI software toolkit. Qt simplifies the task of writing and maintaining
GUI (graphical user interface) applications for the X Windows system.
It has everything you need to create professional GUI applications.
And it enables you to create them quickly.
Qt is multi-platform toolkit written in C++ and is fully object-oriented.
This package contains the shared library needed to run Qt%major applications, as
well as the README files for Qt.

##############################################

%package -n %name-common
Summary: Common package for Qt%major
Group: System/Libraries
Requires: common-licenses
%description -n %name-common
Common package for Qt%major

##############################################

%package -n lib%name
Summary: Shared library for the Qt%major GUI toolkit
Group: System/Libraries
Requires: %name-common = %version-%release
Requires: lib%{name}-core lib%{name}-gui lib%{name}-network
Requires: lib%{name}-opengl lib%{name}-sql lib%{name}-xml
Requires: lib%{name}-qt3support
%description -n lib%name
Qt is a GUI software toolkit. Qt simplifies the task of writing and maintaining
GUI (graphical user interface) applications for X Windows System.
Qt is written in C++ and is fully object-oriented. It has everything you need
to create professional GUI applications. And it enables you to create them
quickly.

Qt is a multi-platform toolkit. When developing software with Qt, you can run
it on the X Window System (Unix/X11) or Microsoft Windows NT and Windows 95/98
or framebuffer devices.
Simply recompile your source code on the platform you want.

This package contains the shared library needed to run Qt%major applications, as
well as the README files for Qt.

##############################################

%package -n lib%{name}-qt3support
Summary: Qt3 support library for the Qt%major GUI toolkit
Group: System/Libraries
Requires: %name-common = %version-%release
%description -n lib%{name}-qt3support
Qt3 support library for the Qt%major GUI toolkit

##############################################

%package -n lib%{name}-core
Summary: Core library for the Qt%major GUI toolkit
Group: System/Libraries
Requires: %name-common = %version-%release
Requires: %name-settings = %major.%minor
%description -n lib%{name}-core
Core library for the Qt%major GUI toolkit

##############################################

%package -n lib%{name}-gui
Summary: GUI support library for the Qt%major GUI toolkit
Group: System/Libraries
Requires: %name-common = %version-%release
%description -n lib%{name}-gui
GUI support library for the Qt%major GUI toolkit

##############################################

%package -n lib%{name}-network
Summary: Network support library for the Qt%major GUI toolkit
Group: System/Libraries
Requires: %name-common = %version-%release
%description -n lib%{name}-network
Network support library for the Qt%major GUI toolkit

##############################################

%package -n lib%{name}-opengl
Summary: OpenGL support library for the Qt%major GUI toolkit
Group: System/Libraries
Requires: %name-common = %version-%release
%description -n lib%{name}-opengl
OpenGL support library for the Qt%major GUI toolkit

##############################################

%package -n lib%{name}-sql
Summary: SQL support library for the Qt%major GUI toolkit
Group: System/Libraries
Requires: %name-common = %version-%release
%description -n lib%{name}-sql
SQL support library for the Qt%major GUI toolkit

##############################################

%package -n lib%{name}-xml
Summary: XML support library for the Qt%major GUI toolkit
Group: System/Libraries
Requires: %name-common = %version-%release
%description -n lib%{name}-xml
XML support library for the Qt%major GUI toolkit

##############################################

%package -n %name-devel
Group: System/Libraries
Summary: Amount package for development with Qt%major GUI toolkit
Requires: lib%name-devel %name-doc %name-designer %name-assistant
%description -n %name-devel
Amount package for development with Qt%major GUI toolkit

##############################################

%package -n lib%name-devel
Summary: Header files and libraries for developing apps which will use Qt%major
Group: Development/KDE and QT
Requires: %name-common = %version-%release
Requires: lib%name
Requires: XFree86-devel freetype2-devel fontconfig-devel libaudio-devel zlib-devel libpng-devel
Provides: lib%name-devel-cxx = %__gcc_version_base
%description -n lib%name-devel
Qt is a GUI software toolkit. Qt simplifies the task of writing and maintaining
GUI (graphical user interface) applications for X Windows.

Qt is written in C++ and is fully object-oriented. It has everything you need
to create professional GUI applications. And it enables you to create them
quickly.

Qt is a multi-platform toolkit. When developing software with Qt, you can run
it on the X Window System (Unix/X11) or Microsoft Windows NT and Windows 95/98.
Simply recompile your source code on the platform you want.

This package contains the files necessary to develop applications

##############################################

%package -n lib%name-devel-static
Summary: Version of the Qt GUI toolkit for static linking
Group: Development/KDE and QT
Requires: %name-common = %version-%release
Requires: lib%name-devel
Obsoletes: %name-devel-static
%description -n lib%name-devel-static
This package package contains the files necessary to link applications
to the Qt GUI toolkit statically (rather than dynamically).
Statically linked applications don't require the library to be installed
on the system running the application.

##############################################

%package designer
Summary: Designer for the Qt%major
Group: Development/KDE and QT
Requires: %name-common = %version-%release
Requires: lib%name-devel
%description designer
The package contains an User Interface designer
tool for the Qt%major toolkit.

##############################################

%package -n lib%name-styles
Summary: Extra styles for the Qt GUI toolkit
Group: System/Libraries
Requires: %name-common = %version-%release
%description -n lib%name-styles
Extra styles (themes) for the Qt GUI toolkit.

##############################################

%package -n %name-sql
Group: System/Libraries
Summary: Amount package for XML support of Qt%major GUI toolkit
Requires: lib%name-sql lib%name-sql-mysql
Requires: lib%name-sql-postgresql lib%name-sql-sqlite
%if %build_odbc
Requires: lib%name-sql-odbc
%endif
%description -n %name-sql
Amount package for XML support of Qt%major GUI toolkit

##############################################

%package -n lib%name-sql-odbc
Summary: ODBC drivers for Qt%major SQL classes
Group: System/Libraries
Requires: %name-common = %version-%release
Provides: lib%name-plugin-sql = %version-%release
%description -n lib%name-sql-odbc
ODBC driver for Qt's SQL classes (QSQL)

##############################################

%package -n lib%name-sql-mysql
Summary: MySQL driver for Qt%major SQL classes
Group: System/Libraries
Requires: %name-common = %version-%release
Provides: lib%name-plugin-sql = %version-%release
%description -n lib%name-sql-mysql
MySQL driver for Qt's SQL classes (QSQL)

##############################################

%package -n lib%name-sql-postgresql
Summary: PostgreSQL drivers for Qt%major SQL classes
Group: System/Libraries
Requires: %name-common = %version-%release
Provides: lib%name-plugin-sql = %version-%release
%description -n lib%name-sql-postgresql
PostgreSQL driver for Qt's SQL classes (QSQL)

##############################################

%package -n lib%name-sql-sqlite
Summary: SQLite driver for Qt%major SQL classes
Group: System/Libraries
Requires: %name-common = %version-%release
Provides: lib%name-plugin-sql = %version-%release
%description -n lib%name-sql-sqlite
SQLite driver for Qt's SQL classes (QSQL)

##############################################

%package doc
Summary: Document for developing apps which will use Qt%{major}
Group: Development/KDE and QT
Requires: %name-common = %version
#Requires: lib%name-devel = %version
Requires: %name-assistant = %version
Requires: %name-doc-html = %version
#Requires: %name-doc-man = %version
Requires: %name-doc-examples = %version
%description doc
This package contains documentation and sources for example programs.

##############################################

%package doc-html
Summary: Document for developing apps which will use Qt%{major}
Group: Development/KDE and QT
Requires: %name-common = %version
%description doc-html
This package contains documentation in html format.

##############################################

%package doc-man
Summary: Document for developing apps which will use Qt%{major}
Group: Development/KDE and QT
Requires: %name-common = %version
%description doc-man
This package contains documentation in man format.

##############################################

%package doc-examples
Summary: Examples for developing apps which will use Qt%{major}
Group: Development/KDE and QT
Requires: %name-common = %version
%description doc-examples
This package contains sources for example programs.

##############################################

%package assistant
Summary: Assistant for the Qt%major
Group: Text tools
Requires: %name-common = %version-%release
%description assistant
This package contains an documentation browser
for the Qt%major toolkit and Qt-based programs.

##############################################

%package -n lib%name-qsa
Summary: Qt Script for Applications (QSA)
Group: System/Libraries
Requires: %name-common = %version-%release
%description -n lib%name-qsa
Qt Script for Applications is a framework which enables the
user to make Qt/C++ applications scriptable. The end users of the
Qt/C++ applications can modify and extend the application dynamically.

##############################################

%prep
%if %qt_copy
%define buildsubdir qt-copy-%version%beta
%else
%define buildsubdir %rname-x11-opensource-src-%version%beta
%endif

%setup -q -n %buildsubdir
%patch1 -p1

%patch40 -p0
%patch41 -p0
#%patch42 -p0
%patch43 -p0
%patch44 -p0

%patch101 -p1
%patch102 -p1
%patch103 -p1
%patch104 -p1
%patch105 -p1
%patch106 -p1
%patch107 -p1

%patch9000 -p1

#pushd translations

#rm -f ./*.qm
#tar xfj %SOURCE11
#popd

#perl -pi -e "s,-O2,%optflags -DGLX_GLXEXT_LEGACY,g" mkspecs/*/qmake.conf

subst "s|-O2||" mkspecs/*/qmake.conf
##perl -pi -e "s,-fpic,-fPIC,g" mkspecs/*/qmake.conf
#perl -pi -e "s|-Wl,-rpath,| |" mkspecs/*/qmake.conf
##perl -pi -e "s|^CFG_NEWABI=.*|CFG_NEWABI=yes|" ./configure

rm -rf tools/designer/examples
find . -type d -name CVS| xargs rm -rf
find . -type f -name .cvsignore | xargs rm -f

[ -f Makefile.cvs ] && make -f Makefile.cvs


%build
rm -rf %buildroot
# install %%optflags
subst "s|^\s*QMAKE_CFLAGS\s*=.*$|QMAKE_CFLAGS = %optflags -DGLX_GLXEXT_LEGACY|" mkspecs/*/qmake.conf

%if %versioning
cat > ./src/libqt_add.map <<__EOF__
CXX%__gcc_version_major {
   global:
extern "C++"  {
   QObject::QObject*;
   QString::QString*;
};
};
__EOF__
perl -pi -e "s|^QMAKE_LFLAGS_SONAME.*|QMAKE_LFLAGS_SONAME = -Wl,-soname, -Wl,--version-script=\\$\(QTDIR\)/src/libqt_add.map|" mkspecs/*/qmake.conf
%endif

#export QTDIR=$(`which pwd`)

#export PATH=$QTDIR/bin:$QTDIR/qmake:$PATH
#export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
export QT_DIR=$(`which pwd`)
export PATH=$QT_DIR/bin:$QT_DIR/qmake:$PATH
export LD_LIBRARY_PATH=$QT_DIR/lib:$LD_LIBRARY_PATH
export KDEDIR=%kdedir

# \

#        -enable-kernel -enable-tools  -enable-widgets -enable-dialogs \
# -enable-iconview -enable-workspace -enable-network -enable-canvas \
# -enable-table -enable-xml \
#
# -enable-opengl \
# -dlopen-opengl \
# \
# \
# -qt-style-windows -plugin-style-platinum \
# -plugin-style-cde -plugin-style-motifplus \
# -plugin-style-motif -plugin-style-sgi"

CNFGR="\
-I%_includedir/pgsql/ -I%_includedir/mysql/ \
-I/usr/X11R6/include/X11/Xft -I/usr/include/fontconfig \
-L/usr/X11R6/%_lib \
-L%_libdir \
       -prefix %qtdir \
-bindir %qtdir/bin \
-docdir %_docdir/%rname-%version \
-headerdir %_includedir/%name \
-libdir %qtdir/lib \
-translationdir %_datadir/%name/translations \
-plugindir %qtdir/plugins \
-sysconfdir %_sysconfdir/%name
-datadir %_datadir/%name
\
%if %debug
-debug \
%else
-release \
%endif
%ifarch %x86_64
-platform linux-g++-64 \
%else
-platform linux-g++ \
%endif
-largefile -stl -fast -no-rpath -pch \
-no-exceptions -no-g++-exceptions \
\
-system-zlib -cups -system-nas-sound \
-no-nis \
-accessibility \
\
-DQT_USE_APPROXIMATE_CURSORS \
-sm -xshape -xcursor -xinerama -xrender -xrandr -xkb \
-tablet -fontconfig \
\
-qt-gif \
-system-libpng -system-libjpeg"

CNFGR_STATIC=" -static \
-qt-sql-mysql -qt-sql-psql -qt-sql-sqlite \
%if %build_odbc
-qt-sql-odbc \
%endif
"
CNFGR_SHARED=" -shared \
-plugin-sql-mysql -plugin-sql-psql -plugin-sql-sqlite  \
%if %build_odbc
-plugin-sql-odbc \
%endif
"

is_building=""

clean_but_lib()
{
[ -n "$is_building" ] || return
if [ -n "$1" ]; then
   dirsuffix="$1"
else
   dirsuffix="builded"
fi
   mkdir -p lib-"$dirsuffix"
   cp -ar lib/* lib-"$dirsuffix"
   make distclean
   rm -rf lib/*
}

# Build   STATIC THREADED   libraries #

%if %static_thread
echo "yes" |./configure $CNFGR $CNFGR_STATIC
%make_build sub-src
is_building=1
clean_but_lib
%endif #static_thread

# Build   SHARED THREADED   libraries #

%if %shared_thread
echo "yes" |./configure $CNFGR $CNFGR_SHARED
#%make_build sub-src sub-tools ||:
%make_build
%endif #shared_thread

# compile translations

#LD_LIBRARY_PATH=./lib ./bin/lrelease ./translations/*.ts
#rm -f ./translations/*_untranslated.qm


%install
%if %debug
%set_strip_method none
%endif
# uninstall %%optflags
subst "s|^\s*QMAKE_CFLAGS\s*=.*$|QMAKE_CFLAGS = -pipe|" mkspecs/*/qmake.conf

export QTDIR=%qtdir
export QT_DIR=$(`which pwd`)
export PATH=$QT_DIR/bin:%qtdir/bin:%buildroot/%qtdir/bin:$PATH
export MANPATH=%qtdir/doc/man:$MANPATH
export LD_LIBRARY_PATH=%buildroot/%qtdir/lib:$QT_DIR/lib:$LD_LIBRARY_PATH
export KDEDIR=%kdedir

%__install -d -m 0755 %buildroot/%_bindir

%make INSTALL_ROOT=%buildroot install

# install rpm macros

%__install -d -m 0755 %buildroot/%_sysconfdir/rpm/macros.d/
cat >%buildroot/%_sysconfdir/rpm/macros.d/%name <<__EOF__
%_%{name}dir %_libdir/%name
__EOF__

# install settings

%__install -d -m 0755 %buildroot/%_sysconfdir/%rname%major
ln -s ../../../%_sysconfdir/%rname%major %buildroot/%qtdir/settings

# install tools

%__install -m 775 bin/findtr %buildroot/%qtdir/bin
pushd %buildroot/%_bindir
ln -s ../%_lib/%name/bin/designer designer-%name
ln -s ../%_lib/%name/bin/assistant assistant-%name
ln -s ../%_lib/%name/bin/linguist linguist-%name
ln -s ../%_lib/%name/bin/qtconfig qtconfig-%name
popd

# install libraries

#
%if %static_thread
for f in lib-builded/lib*.a lib-builded/lib*.la; do
%__install -m0644 $f %buildroot/%qtdir/lib/
done
%endif
#
%__mkdir_p %buildroot%_sysconfdir/ld.so.conf.d/
%__cat <<__EOF__ > %buildroot/%_sysconfdir/ld.so.conf.d/%name.conf
%qtdir/lib
__EOF__
ln -s %name %buildroot/%_libdir/%rname-%version

# install translations

#install -m 644 ./translations/*.qm %buildroot/%qtdir/translations
%__mkdir_p %buildroot/%_datadir/%name/translations
ln -s ../../../%_datadir/%name/translations %buildroot/%qtdir/translations
%__mkdir_p %buildroot/%_datadir/%name/phrasebooks
ln -s ../../../%_datadir/%name/phrasebooks %buildroot/%qtdir/phrasebooks


# move pkgconfig to right place

%__mkdir_p %buildroot/%_libdir/pkgconfig
for f in %buildroot/%qtdir/lib/*pc; do
   %__mv $f %buildroot/%_libdir/pkgconfig/
done

# install includes

%__mkdir_p %buildroot/%_includedir/
%__ln_s ../../../%_includedir/%name %buildroot/%qtdir/include
#pushd include
#for d in *
#do
#    [ -d "$d" ] || continue
#    if [ -d $d/private/ ]
#    then
# %__mkdir_p %buildroot/%_includedir/%name/$d/private/
# %__install -m 0644 $d/private/* %buildroot/%_includedir/%name/$d/private/
#    fi
#done
#popd

# install designer templates

#install -d -m 0755 %buildroot/%qtdir/tools/designer/templates
#cp -fR tools/designer/templates/*.ui %buildroot/%qtdir/tools/designer/templates

# Ship qmake stuff

ln -s ../../../%_datadir/%name/mkspecs %buildroot/%qtdir/mkspecs

%if %versioning
# fix QMAKE_LFLAGS_SONAME
for f in %buildroot/%_datadir/%name/mkspecs/*/qmake.conf
do
   subst "s|^.*QMAKE_LFLAGS_SONAME.*$|QMAKE_LFLAGS_SONAME     = -Wl,-soname,|g" $f
done
%endif


# install documentation

#install -d -m 0755 %buildroot/%_docdir/%rname-%version/doc/html
#%%if %qt_copy
#rm -rf doc/html/designer
#%%endif
#install -m 0644 doc/html/*.html %buildroot/%_docdir/%rname-%version/doc/html

# David - 3.0.0-0.11mdk - Install missing documentation

install -d -m 0755 %buildroot/%_docdir/qt-%version/
#install -m 0644 %_builddir/%buildsubdir/ANNOUNCE  %buildroot/%_docdir/qt-%version/
cat > %buildroot/%_docdir/qt-%version/LICENSE <<__EOF__
see QPL-1.0 and GPL-2 in %_datadir/license
__EOF__
#install -m 0644 %_builddir/%buildsubdir/PLATFORMS %buildroot/%_docdir/qt-%version/
#install -m 0644 %_builddir/%buildsubdir/FAQ       %buildroot/%_docdir/qt-%version/
install -m 0644 %_builddir/%buildsubdir/README*    %buildroot/%_docdir/qt-%version/
%if !%qt_copy
install -m 0644 %_builddir/%buildsubdir/changes*  %buildroot/%_docdir/qt-%version/
%endif

# Install a README

install -m 0644 %SOURCE8 %buildroot/%_docdir/qt-%version/README.ALT
%__subst 's| at QT at |%name|g' %buildroot/%_docdir/qt-%version/README.ALT
%__subst 's| at QTDIR at |%qtdir|g' %buildroot/%_docdir/qt-%version/README.ALT
%__subst 's| at QtVersion at |%version|g' %buildroot/%_docdir/qt-%version/README.ALT
%__subst 's| at PackageVersion at |%version-%release|g' %buildroot/%_docdir/qt-%version/README.ALT
%__subst 's| at QTHOME at |~/.config/|g' %buildroot/%_docdir/qt-%version/README.ALT

# wrap qt malloc

install -m 0644 %SOURCE12 %buildroot/%_docdir/qt-%version/

# Install man pages

#install -d -m 0755 %buildroot/%_mandir/man1/
#for i in %_builddir/%buildsubdir/doc/man/man1/* ; do
#   install -m 0644 $i %buildroot/%_mandir/man1/
#done
#pushd %buildroot/%_mandir/man1
#    for i in $(find . -name \*.1);do
# mv -f $i ${i}qt%major%minor%bugfix
#    done
#popd
#install -d -m 0755 %buildroot/%_mandir/man3/
#for i in %_builddir/%buildsubdir/doc/man/man3/* ; do
#   install -m 0644 $i %buildroot/%_mandir/man3/
#done
#
#pushd %buildroot/%_mandir/
#    for i in $(find . -name Q\*);do
# perl -pi -e 's|3qt|3qt%major%minor%bugfix|g' $i
#    done
#    for i in $(find . -name \*.3qt);do
# mv -f $i ${i}%major%minor%bugfix
#    done
#popd

# David - 3.0.1-2mdk - Install .pri files needed to build examples and demos

install -d -m 0755 %buildroot/%qtdir/src/
for i in %_builddir/%buildsubdir/src/*.pri; do
  install -m 0644 $i %buildroot/%qtdir/src/
done

# David - 3.0.0-0.11mdk - Provide a qmake.cache for examples

cp -pf %_builddir/%buildsubdir/.qmake.cache %_builddir/%buildsubdir/.qmake.cache.tmp
perl -pi -e "s|^QT_SOURCE_TREE.*|QT_SOURCE_TREE = %qtdir|" %_builddir/%buildsubdir/.qmake.cache.tmp
perl -pi -e "s|^QT_BUILD_TREE.*|QT_BUILD_TREE = %qtdir|" %_builddir/%buildsubdir/.qmake.cache.tmp
perl -pi -e "s|^QMAKE_MOC.*|QMAKE_MOC = %qtdir/bin/moc|" %_builddir/%buildsubdir/.qmake.cache.tmp
perl -pi -e "s|^QMAKE_UIC.*|QMAKE_UIC = %qtdir/bin/uic -L $$QT_BUILD_TREE/plugins|" %_builddir/%buildsubdir/.qmake.cache.tmp
perl -pi -e "s|^QMAKE_QMAKE.*|QMAKE_QMAKE = %qtdir/bin/qmake|" %_builddir/%buildsubdir/.qmake.cache.tmp
perl -pi -e "s|^QMAKE_MOC_SRC.*|QMAKE_MOC_SRC = %qtdir/src/moc|" %_builddir/%buildsubdir/.qmake.cache.tmp
perl -pi -e "s|^QMAKE_INCDIR_QT.*|QMAKE_INCDIR_QT = %qtdir/include|" %_builddir/%buildsubdir/.qmake.cache.tmp
perl -pi -e "s|^QMAKE_LIBDIR_QT.*|QMAKE_LIBDIR_QT = %qtdir/lib|" %_builddir/%buildsubdir/.qmake.cache.tmp
#perl -pi -e "s|^QMAKE_LIBDIR_FLAGS.*|QMAKE_LIBDIR_FLAGS += -lXinerama|" %_builddir/%buildsubdir/.qmake.cache.tmp

# examples and demos

for m in examples demos
do
   cp -ar %_builddir/%buildsubdir/$m %buildroot/%_docdir/qt-%version
   pushd %buildroot/%_docdir/qt-%version/$m
cp -p %_builddir/%buildsubdir/.qmake.cache.tmp .qmake.cache
find -type f -name Makefile | \
while read f
do
   %__subst "s|^\s*QMAKE\s=.*|QMAKE = %qtdir/bin/qmake|" $f
   %__subst "s|../../../mkspecs/|%qtdir/mkspecs/|" $f
   %__subst "s|../../mkspecs/|%qtdir/mkspecs/|" $f
   %__subst "s|../mkspecs/|%qtdir/mkspecs/|" $f
   %__subst "s|../.qmake.cache|.qmake.cache|" $f
   %__subst "s|../../../include|%qtdir/include|" $f
   %__subst "s|../../include|%qtdir/include|" $f
   %__subst "s|%_builddir/%buildsubdir|%qtdir|" $f
done
cat README > README.tmp
echo "Before try to build one of these $m, you need to:" > README
echo "" >> README
echo "export QTDIR=\"%{qtdir}/\"" >> README
echo "" >> README
echo "" >> README
cat README.tmp >> README
rm -f README.tmp
   popd
   pushd %buildroot/%_docdir/qt-%version/
   tar jcf $m.tar.bz2 $m
   rm -rf $m
   popd
done

ln -s ../../../%_docdir/qt-%version %buildroot/%qtdir/doc

pushd %buildroot/%_datadir/%name/mkspecs/
rm -rf default
%ifarch %x86_64
ln -sf linux-g++-64 default
%else
ln -sf linux-g++ default
%endif
popd

# Install .desktop files

install -d -m 0755 %buildroot/%_datadir/applications/
install -m 0644 %SOURCE21 %buildroot/%_datadir/applications/%name-assistant.desktop
install -m 0644 %SOURCE22 %buildroot/%_datadir/applications/%name-designer.desktop
install -m 0644 %SOURCE23 %buildroot/%_datadir/applications/%name-linguist.desktop
install -m 0644 %SOURCE24 %buildroot/%_datadir/applications/%name-qtconfig.desktop
# Icons
mkdir -p %buildroot/%_iconsdir/hicolor/{16x16,32x32,48x48}/apps
install -m 644 %SOURCE101 %buildroot/%_iconsdir/hicolor/16x16/apps/%rname.png
install -m 644 %SOURCE102 %buildroot/%_iconsdir/hicolor/32x32/apps/%rname.png
install -m 644 %SOURCE103 %buildroot/%_iconsdir/hicolor/48x48/apps/%rname.png
# Menus
install -d -m 0755 %buildroot/%_menudir/
%Md2m \
   %name-assistant \
   Documentation \
   %buildroot/%_datadir/applications/%name-assistant.desktop \
   %buildroot/%_menudir/%name-assistant
%Md2m \
   %name-designer \
   "Applications/Development/Development environments" \
   %buildroot/%_datadir/applications/%name-designer.desktop \
   %buildroot/%_menudir/%name-designer
%Md2m \
   %name-designer \
   Applications/Development/Tools \
   %buildroot/%_datadir/applications/%name-linguist.desktop \
   %buildroot/%_menudir/%name-linguist
%Md2m \
   lib%name-gui \
   Configuration/Other \
   %buildroot/%_datadir/applications/%name-qtconfig.desktop \
   %buildroot/%_menudir/%name-qtconfig


%post -n lib%name-qt3support
%post_ldconfig
%postun -n lib%name-qt3support
%postun_ldconfig
%post -n lib%name-core
%post_ldconfig
%postun -n lib%name-core
%postun_ldconfig
%post -n lib%name-gui
%post_ldconfig
%postun -n lib%name-gui
%postun_ldconfig
%post -n lib%name-network
%post_ldconfig
%postun -n lib%name-network
%postun_ldconfig
%post -n lib%name-opengl
%post_ldconfig
%postun -n lib%name-opengl
%postun_ldconfig
%post -n lib%name-sql
%post_ldconfig
%postun -n lib%name-sql
%postun_ldconfig
%post -n lib%name-xml
%post_ldconfig
%postun -n lib%name-xml
%postun_ldconfig

%post -n lib%name-devel
%update_menus
%postun -n lib%name-devel
%clean_menus

%post assistant
%update_menus
%postun assistant
%clean_menus

%post designer
%update_menus
%postun designer
%clean_menus


%files
%files -n lib%name
%files -n %name-sql
%files -n %name-devel

%files -n %name-common
%dir %qtdir/bin
%dir %qtdir/
%dir %qtdir/lib/
%dir %qtdir/phrasebooks/
%dir %_datadir/%name/phrasebooks/
%dir %qtdir/translations/
%_datadir/%name/translations
#%dir %%qtdir/translations/
#%dir %_datadir/%name/translations/
#%_datadir/%name/translations/qt_*.qm
#%_datadir/%name/translations/qtconfig_*.qm
%dir %qtdir/plugins/
%dir %qtdir/plugins/codecs
%dir %qtdir/plugins/sqldrivers/
%qtdir/plugins/imageformats
#%qtdir/plugins/styles
%qtdir/settings
%_libdir/%rname-%version
%_iconsdir/hicolor/*/apps/%rname.png
%dir %_docdir/qt-%version/
%qtdir/doc
#
%qtdir/mkspecs/
%dir %_datadir/%name/mkspecs/
#
%dir %qtdir/src/

%files -n lib%{name}-qt3support
%qtdir/lib/libQt3Support.so.*
%qtdir/bin/qtconfig
%_bindir/qtconfig-%name
%_datadir/applications/qt4-qtconfig.desktop

%files -n lib%{name}-core
%qtdir/lib/libQtCore.so.*
%_sysconfdir/ld.so.conf.d/%name.conf

%files -n lib%{name}-gui
%qtdir/lib/libQtGui.so.*
%qtdir/plugins/codecs/lib*.so
%_menudir/%name-qtconfig

%files -n lib%{name}-network
%qtdir/lib/libQtNetwork.so.*

%files -n lib%{name}-opengl
%qtdir/lib/libQtOpenGL.so.*

%files -n lib%{name}-sql
%qtdir/lib/libQtSql.so.*

%files -n lib%{name}-xml
%qtdir/lib/libQtXml.so.*

%files -n lib%name-devel
#%doc %_docdir/qt-%version/ANNOUNCE
#%doc %_docdir/qt-%version/FAQ
%doc %_docdir/qt-%version/LICENSE
#%doc %_docdir/qt-%version/PLATFORMS
%doc %_docdir/qt-%version/README*
%doc %_docdir/qt-%version/wrap_kde_malloc.cpp
%if !%qt_copy
%doc %_docdir/qt-%version/changes*
%endif
#
%qtdir/bin/findtr
%qtdir/bin/moc
%qtdir/bin/rcc
%qtdir/bin/uic
%qtdir/bin/uic3
%qtdir/bin/lrelease
%qtdir/bin/lupdate
%qtdir/bin/qm2ts
%qtdir/bin/qt3to4
%qtdir/bin/qmake
#
%_includedir/%name
%qtdir/include
%qtdir/lib/*.so
%qtdir/lib/libQtAssistantClient.a
#
%_datadir/%name/mkspecs/features
%_datadir/%name/mkspecs/default
%_datadir/%name/mkspecs/*linux*
#
%qtdir/src/*
%_datadir/%name/q3porting.xml
#
%_libdir/pkgconfig/*.pc
#
%_sysconfdir/rpm/macros.d/%name

%files designer
%_bindir/designer*
%_bindir/linguist*
%qtdir/lib/libQtDesigner.so.*
%qtdir/lib/libQtDesignerComponents.so.*
#
%_datadir/%name/phrasebooks/*.qph
#%_datadir/%name/translations/designer_*.qm
#%_datadir/%name/translations/linguist_*.qm
#
%dir %qtdir/plugins/designer
%qtdir/plugins/designer/*
%qtdir/bin/designer*
%qtdir/bin/linguist*
#
%_menudir/%name-designer
%_menudir/%name-linguist
%_datadir/applications/%name-linguist.desktop
%_datadir/applications/%name-designer.desktop

%if %build_odbc
%files -n lib%name-sql-odbc
%qtdir/plugins/sqldrivers/libqsqlodbc*
%endif

%files -n lib%name-sql-postgresql
%qtdir/plugins/sqldrivers/libqsqlpsql*

%files -n lib%name-sql-mysql
%qtdir/plugins/sqldrivers/libqsqlmysql*

%files -n lib%name-sql-sqlite
%qtdir/plugins/sqldrivers/libqsqlite*

%files assistant
%_bindir/assistant-%name
%qtdir/bin/assistant
#%_datadir/%name/translations/assistant_*.qm
%_menudir/%name-assistant
%_datadir/applications/%name-assistant.desktop

%files doc

%files doc-html
%dir %_docdir/%rname-%version/html/
%doc %_docdir/%rname-%version/html/*

%files doc-examples
%doc %_docdir/%rname-%version/*.bz2

#%files doc-man

#%doc %_mandir/man1/*
#%doc %_mandir/man3/*

%files -n lib%name-devel-static
%qtdir/lib/lib*.a
%qtdir/lib/lib*.la
%exclude %qtdir/lib/libQtAssistantClient.a

%changelog

Полный changelog можно просмотреть здесь

 
дизайн и разработка: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
текущий майнтейнер: Michael Shigorin