From 1a89dbce8326eae79bd2049b0a5f7ccdec0cfa21 Mon Sep 17 00:00:00 2001 From: Rex Dieter Date: Fri, 27 Sep 2013 10:24:38 -0500 Subject: [PATCH 1/7] 5.1.1-6 - -doc subpkg - enable %check --- qt5-qtbase.spec | 44 ++++++++++++++++++++++++++++++++++++++------ 1 file changed, 38 insertions(+), 6 deletions(-) diff --git a/qt5-qtbase.spec b/qt5-qtbase.spec index 6efe017..2fbf7fa 100644 --- a/qt5-qtbase.spec +++ b/qt5-qtbase.spec @@ -15,7 +15,7 @@ Summary: Qt5 - QtBase components Name: qt5-qtbase Version: 5.1.1 -Release: 5%{?dist} +Release: 6%{?dist} # See LGPL_EXCEPTIONS.txt, LICENSE.GPL3, respectively, for exception details License: LGPLv2 with exceptions or GPLv3 with exceptions @@ -62,6 +62,8 @@ Patch51: qtbase-opensource-src-5.1.1-bigendian.patch %define _qt5_sysconfdir %{_qt5_settingsdir} %define _qt5_translationdir %{_datadir}/qt5/translations +# for %%check +BuildRequires: cmake BuildRequires: cups-devel BuildRequires: desktop-file-utils BuildRequires: findutils @@ -112,6 +114,13 @@ Requires: pkgconfig(gl) %description devel %{summary}. +%package doc +Summary: API documentation for %{name} +Requires: %{name} = %{version}-%{release} +BuildArch: noarch +%description doc +%{summary}. + %package static Summary: Static library files for %{name} Requires: %{name}-devel%{?_isa} = %{version}-%{release} @@ -242,11 +251,15 @@ popd make %{?_smp_mflags} +make %{?_smp_mflags} docs + %install make install INSTALL_ROOT=%{buildroot} +make install_docs INSTALL_ROOT=%{buildroot} + # Qt5.pc cat >%{buildroot}%{_libdir}/pkgconfig/Qt5.pc< - 5.1.1-6 +- -doc subpkg +- enable %%check + * Mon Sep 23 2013 Dan Horák - 5.1.1-5 - fix big endian builds From 6dd363f1397695feaff61082c4963b766607de7d Mon Sep 17 00:00:00 2001 From: Rex Dieter Date: Fri, 27 Sep 2013 13:57:49 -0500 Subject: [PATCH 2/7] disable -doc subpkg Seems to have bootstrapping issues --- qt5-qtbase.spec | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/qt5-qtbase.spec b/qt5-qtbase.spec index 2fbf7fa..3366e81 100644 --- a/qt5-qtbase.spec +++ b/qt5-qtbase.spec @@ -12,6 +12,9 @@ %define rpm_macros_dir %{_sysconfdir}/rpm %endif +# define to build docs (currently broken) +#define docs 1 + Summary: Qt5 - QtBase components Name: qt5-qtbase Version: 5.1.1 @@ -251,14 +254,18 @@ popd make %{?_smp_mflags} -make %{?_smp_mflags} docs +%if 0%{?docs} +make docs +%endif %install make install INSTALL_ROOT=%{buildroot} +%if 0%{?docs} make install_docs INSTALL_ROOT=%{buildroot} +%endif # Qt5.pc cat >%{buildroot}%{_libdir}/pkgconfig/Qt5.pc< - 5.1.1-6 -- -doc subpkg +- -doc subpkg (not enabled, needswork) - enable %%check * Mon Sep 23 2013 Dan Horák - 5.1.1-5 From bbafcff0b330049ae43231c7273a4fd7c286200a Mon Sep 17 00:00:00 2001 From: Rex Dieter Date: Fri, 27 Sep 2013 16:15:33 -0500 Subject: [PATCH 3/7] (re)enable -doc generatation Fixes some bootstrapping issues --- qt5-qtbase.spec | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/qt5-qtbase.spec b/qt5-qtbase.spec index 3366e81..cf17acd 100644 --- a/qt5-qtbase.spec +++ b/qt5-qtbase.spec @@ -12,8 +12,9 @@ %define rpm_macros_dir %{_sysconfdir}/rpm %endif -# define to build docs (currently broken) -#define docs 1 +# define to build docs, need to undef this for bootstrapping +# where qt5-qttools builds are not yet available +%define docs 1 Summary: Qt5 - QtBase components Name: qt5-qtbase @@ -117,12 +118,16 @@ Requires: pkgconfig(gl) %description devel %{summary}. +%if 0%{?docs} %package doc Summary: API documentation for %{name} Requires: %{name} = %{version}-%{release} +# for qhelpgenerator +BuildRequires: qt5-qttools-devel BuildArch: noarch %description doc %{summary}. +%endif %package static Summary: Static library files for %{name} @@ -255,12 +260,13 @@ popd make %{?_smp_mflags} %if 0%{?docs} -make docs +# wierd but necessary, to force regeration to use just-built qdoc +rm -fv src/corelib/Makefile +make %{?_smp_mflags} docs %endif %install - make install INSTALL_ROOT=%{buildroot} %if 0%{?docs} @@ -577,7 +583,7 @@ popd %changelog * Fri Sep 27 2013 Rex Dieter - 5.1.1-6 -- -doc subpkg (not enabled, needswork) +- -doc subpkg - enable %%check * Mon Sep 23 2013 Dan Horák - 5.1.1-5 From bb1c6562ac17bbfa259297e63799c31b6d76bc00 Mon Sep 17 00:00:00 2001 From: Rex Dieter Date: Mon, 30 Sep 2013 07:33:23 -0500 Subject: [PATCH 4/7] disable -doc Seems generated noarch -doc content ends up different between various archs. :( --- qt5-qtbase.spec | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/qt5-qtbase.spec b/qt5-qtbase.spec index cf17acd..6241d91 100644 --- a/qt5-qtbase.spec +++ b/qt5-qtbase.spec @@ -14,7 +14,8 @@ # define to build docs, need to undef this for bootstrapping # where qt5-qttools builds are not yet available -%define docs 1 +# FIXME: noarch -doc content different between archs +#define docs 1 Summary: Qt5 - QtBase components Name: qt5-qtbase @@ -583,7 +584,7 @@ popd %changelog * Fri Sep 27 2013 Rex Dieter - 5.1.1-6 -- -doc subpkg +- -doc subpkg (not enabled) - enable %%check * Mon Sep 23 2013 Dan Horák - 5.1.1-5 From 3bc8a77c4355973b29d4194e1472c47454b0eaa6 Mon Sep 17 00:00:00 2001 From: Rex Dieter Date: Wed, 2 Oct 2013 09:21:15 -0500 Subject: [PATCH 5/7] 5.2.0-0.1.alpha - 5.2.0-alpha - -system-harfbuzz - rename subpkg -x11 => -gui - move some gui-related plugins base => -gui - don't use symlinks in %_qt5_bindir (more qtchooser-friendly) --- .gitignore | 2 +- qt5-qtbase.spec | 67 ++++++++++++------- ...-opensource-src-5.2.0-alpha-harfbuzz.patch | 12 ++++ sources | 2 +- 4 files changed, 56 insertions(+), 27 deletions(-) create mode 100644 qtbase-opensource-src-5.2.0-alpha-harfbuzz.patch diff --git a/.gitignore b/.gitignore index 77f837b..6a603ed 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,2 @@ -/qtbase-opensource-src-5.0.2.tar.xz /qtbase-opensource-src-5.1.1.tar.xz +/qtbase-opensource-src-5.2.0-alpha.tar.xz diff --git a/qt5-qtbase.spec b/qt5-qtbase.spec index 6241d91..4998822 100644 --- a/qt5-qtbase.spec +++ b/qt5-qtbase.spec @@ -14,18 +14,23 @@ # define to build docs, need to undef this for bootstrapping # where qt5-qttools builds are not yet available -# FIXME: noarch -doc content different between archs -#define docs 1 +%define docs 1 + +%define pre alpha Summary: Qt5 - QtBase components Name: qt5-qtbase -Version: 5.1.1 -Release: 6%{?dist} +Version: 5.2.0 +Release: 0.1.%{pre}%{?dist} # See LGPL_EXCEPTIONS.txt, LICENSE.GPL3, respectively, for exception details License: LGPLv2 with exceptions or GPLv3 with exceptions Url: http://qt-project.org/ -Source0: http://download.qt-project.org/official_releases/qt/5.1/%{version}/submodules/%{qt_module}-opensource-src-%{version}.tar.xz +%if 0%{?pre:1} +Source0: http://download.qt-project.org/development_releases/qt/5.2/%{version}-%{pre}/submodules/%{qt_module}-opensource-src-%{version}-%{pre}.tar.xz +%else +Source0: http://download.qt-project.org/official_releases/qt/5.2/%{version}/submodules/%{qt_module}-opensource-src-%{version}.tar.xz +%endif # http://bugzilla.redhat.com/1005482 ExcludeArch: ppc64 ppc @@ -43,6 +48,8 @@ Patch2: qtbase-multilib_optflags.patch Patch50: qt5-poll.patch # fix big endian builds Patch51: qtbase-opensource-src-5.1.1-bigendian.patch +# fix build with -system-harfbuzz +Patch52: qtbase-opensource-src-5.2.0-alpha-harfbuzz.patch ##upstream patches @@ -90,6 +97,8 @@ BuildRequires: pkgconfig(openssl) %if 0%{?fedora} || 0%{?rhel} > 6 BuildRequires: pkgconfig(atspi-2) BuildRequires: pkgconfig(glesv2) +BuildRequires: pkgconfig(harfbuzz) +%define harfbuzz -system-harfbuzz BuildRequires: pkgconfig(icu-i18n) BuildRequires: pkgconfig(libpcre) >= 8.30 %define pcre -system-pcre @@ -114,7 +123,7 @@ handling. %package devel Summary: Development files for %{name} Requires: %{name}%{?_isa} = %{version}-%{release} -Requires: %{name}-x11%{?_isa} +Requires: %{name}-gui%{?_isa} Requires: pkgconfig(gl) %description devel %{summary}. @@ -170,15 +179,17 @@ Requires: %{name}%{?_isa} = %{version}-%{release} %{summary}. # debating whether to do 1 subpkg per library or not -- rex -%package x11 +%package gui Summary: Qt5 GUI-related libraries Requires: %{name}%{?_isa} = %{version}-%{release} -%description x11 +Obsoletes: qt5-qtbase-x11 < 5.2.0 +Provides: qt5-qtbase-x11 = %{version}-%{release} +%description gui Qt5 libraries used for drawing widgets and OpenGL items. %prep -%setup -q -n qtbase-opensource-src-%{version} +%setup -q -n qtbase-opensource-src-%{version}%{?pre:-%{pre}} %patch2 -p1 -b .multilib_optflags # drop backup file(s), else they get installed too, http://bugzilla.redhat.com/639463 @@ -186,6 +197,7 @@ rm -fv mkspecs/linux-g++*/qmake.conf.multilib-optflags #patch50 -p1 -b .poll %patch51 -p1 -b .bigendian +%patch52 -p1 -b .harfbuzz # drop -fexceptions from $RPM_OPT_FLAGS RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS | sed 's|-fexceptions||g'` @@ -252,6 +264,7 @@ popd -no-separate-debug-info \ -no-strip \ -reduce-relocations \ + %{?harfbuzz} \ -system-libjpeg \ -system-libpng \ %{?pcre} \ @@ -326,19 +339,17 @@ EOF # create/own dirs mkdir -p %{buildroot}{%{_qt5_archdatadir}/mkspecs/modules,%{_qt5_importdir},%{_qt5_libexecdir},%{_qt5_plugindir}/iconengines,%{_qt5_translationdir}} -# put non-conflicting binaries with -qt5 postfix in %{_bindir} +# hardlink files to %{_bindir}, add -qt5 postfix to not conflict mkdir %{buildroot}%{_bindir} pushd %{buildroot}%{_qt5_bindir} for i in * ; do case "${i}" in moc|qdbuscpp2xml|qdbusxml2cpp|qmake|rcc|syncqt|uic) - mv $i ../../../bin/${i}-qt5 - ln -s ../../../bin/${i}-qt5 . - ln -s ../../../bin/${i}-qt5 $i + ln -v ${i} %{buildroot}%{_bindir}/${i}-qt5 + ln -sv ${i} ${i}-qt5 ;; - *) - mv $i ../../../bin/ - ln -s ../../../bin/$i . + *) + ln -v ${i} %{buildroot}%{_bindir}/${i} ;; esac done @@ -353,7 +364,7 @@ popd %ifarch %{multilib_archs} mv qt5.conf qt5-%{__isa_bits}.conf %ifarch %{multilib_basearchs} - ln -sf qt5-%{__isa_bits}.conf qt5.conf + ln -sv qt5-%{__isa_bits}.conf qt5.conf %endif %endif popd @@ -403,6 +414,7 @@ popd %{_qt5_libdir}/libQt5Test.so.5* %{_qt5_libdir}/libQt5Xml.so.5* %dir %{_qt5_docdir}/ +%{_qt5_docdir}/global/ %{_qt5_importdir}/ %{_qt5_translationdir}/ %dir %{_qt5_prefix}/ @@ -417,11 +429,8 @@ popd %dir %{_qt5_plugindir}/generic/ %dir %{_qt5_plugindir}/imageformats/ %dir %{_qt5_plugindir}/platforminputcontexts/ -%{_qt5_plugindir}/platforminputcontexts/libcomposeplatforminputcontextplugin.so %dir %{_qt5_plugindir}/platforms/ -%{_qt5_plugindir}/platforms/libqoffscreen.so %dir %{_qt5_plugindir}/platformthemes/ -%{_qt5_plugindir}/platformthemes/libqgtk2.so %dir %{_qt5_plugindir}/printsupport/ %dir %{_qt5_plugindir}/sqldrivers/ %{_qt5_plugindir}/sqldrivers/libqsqlite.so @@ -429,7 +438,6 @@ popd %if 0%{?docs} %files doc %{_qt5_docdir}/*.qch -%{_qt5_docdir}/global/ %{_qt5_docdir}/qdoc/ %{_qt5_docdir}/qmake/ %{_qt5_docdir}/qtconcurrent/ @@ -558,10 +566,10 @@ popd %files tds %{_qt5_plugindir}/sqldrivers/libqsqltds.so -%post x11 -p /sbin/ldconfig -%postun x11 -p /sbin/ldconfig +%post gui -p /sbin/ldconfig +%postun gui -p /sbin/ldconfig -%files x11 +%files gui %{_qt5_libdir}/libQt5Gui.so.5* %{_qt5_libdir}/libQt5OpenGL.so.5* %{_qt5_libdir}/libQt5PrintSupport.so.5* @@ -574,15 +582,24 @@ popd %{_qt5_plugindir}/imageformats/libqgif.so %{_qt5_plugindir}/imageformats/libqico.so %{_qt5_plugindir}/imageformats/libqjpeg.so +%{_qt5_plugindir}/platforminputcontexts/libcomposeplatforminputcontextplugin.so %{_qt5_plugindir}/platforminputcontexts/libibusplatforminputcontextplugin.so -%{_qt5_plugindir}/platforminputcontexts/libmaliitplatforminputcontextplugin.so %{_qt5_plugindir}/platforms/libqlinuxfb.so %{_qt5_plugindir}/platforms/libqminimal.so +%{_qt5_plugindir}/platforms/libqoffscreen.so %{_qt5_plugindir}/platforms/libqxcb.so +%{_qt5_plugindir}/platformthemes/libqgtk2.so %{_qt5_plugindir}/printsupport/libcupsprintersupport.so %changelog +* Tue Oct 01 2013 Rex Dieter - 5.2.0-0.1.alpha +- 5.2.0-alpha +- -system-harfbuzz +- rename subpkg -x11 => -gui +- move some gui-related plugins base => -gui +- don't use symlinks in %%_qt5_bindir (more qtchooser-friendly) + * Fri Sep 27 2013 Rex Dieter - 5.1.1-6 - -doc subpkg (not enabled) - enable %%check diff --git a/qtbase-opensource-src-5.2.0-alpha-harfbuzz.patch b/qtbase-opensource-src-5.2.0-alpha-harfbuzz.patch new file mode 100644 index 0000000..57a044e --- /dev/null +++ b/qtbase-opensource-src-5.2.0-alpha-harfbuzz.patch @@ -0,0 +1,12 @@ +diff -up qtbase-opensource-src-5.2.0-alpha/src/gui/text/qtextengine.cpp.harfbuzz qtbase-opensource-src-5.2.0-alpha/src/gui/text/qtextengine.cpp +--- qtbase-opensource-src-5.2.0-alpha/src/gui/text/qtextengine.cpp.harfbuzz 2013-09-27 06:05:10.000000000 -0500 ++++ qtbase-opensource-src-5.2.0-alpha/src/gui/text/qtextengine.cpp 2013-10-01 12:20:23.089054279 -0500 +@@ -1098,7 +1098,7 @@ int QTextEngine::shapeTextWithHarfbuzzNG + hb_buffer_set_segment_properties(buffer, &props); + hb_buffer_guess_segment_properties(buffer); + +- uint buffer_flags = HB_BUFFER_FLAG_DEFAULT; ++ uint buffer_flags = HB_BUFFER_FLAGS_DEFAULT; + // Symbol encoding used to encode various crap in the 32..255 character code range, + // and thus might override U+00AD [SHY]; avoid hiding default ignorables + if (actualFontEngine->symbol) diff --git a/sources b/sources index 0c58940..a6bad2c 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -955d1e4da875f3872ef3208f21a757dd qtbase-opensource-src-5.1.1.tar.xz +9dcb69e03aa9c11ad42b8dd184c3a764 qtbase-opensource-src-5.2.0-alpha.tar.xz From be3d96a70865285f28667fef8870978865f91250 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Tinkl?= Date: Wed, 16 Oct 2013 18:35:52 +0200 Subject: [PATCH 6/7] Fixes #1005482 - qtbase FTBFS on ppc/ppc64 --- qt5-qtbase.spec | 12 ++++++++++-- qtbase-qatomic-ppc.patch | 22 ++++++++++++++++++++++ 2 files changed, 32 insertions(+), 2 deletions(-) create mode 100644 qtbase-qatomic-ppc.patch diff --git a/qt5-qtbase.spec b/qt5-qtbase.spec index 4998822..dbbd8e9 100644 --- a/qt5-qtbase.spec +++ b/qt5-qtbase.spec @@ -21,7 +21,7 @@ Summary: Qt5 - QtBase components Name: qt5-qtbase Version: 5.2.0 -Release: 0.1.%{pre}%{?dist} +Release: 0.2.%{pre}%{?dist} # See LGPL_EXCEPTIONS.txt, LICENSE.GPL3, respectively, for exception details License: LGPLv2 with exceptions or GPLv3 with exceptions @@ -33,7 +33,7 @@ Source0: http://download.qt-project.org/official_releases/qt/5.2/%{version}/subm %endif # http://bugzilla.redhat.com/1005482 -ExcludeArch: ppc64 ppc +#ExcludeArch: ppc64 ppc # help build on some lowmem archs, e.g. drop hard-coded -O3 optimization on some files Patch1: qtbase-opensource-src-5.0.2-lowmem.patch @@ -41,6 +41,9 @@ Patch1: qtbase-opensource-src-5.0.2-lowmem.patch # support multilib optflags Patch2: qtbase-multilib_optflags.patch +# qatomic on ppc/ppc64 +Patch3: qtbase-qatomic-ppc.patch + # upstreamable patches # support poll # https://bugreports.qt-project.org/browse/QTBUG-27195 @@ -195,6 +198,8 @@ Qt5 libraries used for drawing widgets and OpenGL items. # drop backup file(s), else they get installed too, http://bugzilla.redhat.com/639463 rm -fv mkspecs/linux-g++*/qmake.conf.multilib-optflags +%patch3 -p1 -b .qatomic-ppc + #patch50 -p1 -b .poll %patch51 -p1 -b .bigendian %patch52 -p1 -b .harfbuzz @@ -593,6 +598,9 @@ popd %changelog +* Wed Oct 16 2013 Lukáš Tinkl - 5.2.0-0.2.alpha +- Fixes #1005482 - qtbase FTBFS on ppc/ppc64 + * Tue Oct 01 2013 Rex Dieter - 5.2.0-0.1.alpha - 5.2.0-alpha - -system-harfbuzz diff --git a/qtbase-qatomic-ppc.patch b/qtbase-qatomic-ppc.patch new file mode 100644 index 0000000..4e1ac59 --- /dev/null +++ b/qtbase-qatomic-ppc.patch @@ -0,0 +1,22 @@ +Index: qtbase-opensource-src-5.1.1/src/corelib/thread/qoldbasicatomic.h +=================================================================== +--- qtbase-opensource-src-5.1.1.orig/src/corelib/thread/qoldbasicatomic.h ++++ qtbase-opensource-src-5.1.1/src/corelib/thread/qoldbasicatomic.h +@@ -63,7 +63,7 @@ public: + // Atomic API, implemented in qatomic_XXX.h + + int load() const { return _q_value; } +- int loadAcquire() { return _q_value; } ++ int loadAcquire() const { return _q_value; } + void store(int newValue) { _q_value = newValue; } + void storeRelease(int newValue) { _q_value = newValue; } + +@@ -107,7 +107,7 @@ public: + // Atomic API, implemented in qatomic_XXX.h + + T *load() const { return _q_value; } +- T *loadAcquire() { return _q_value; } ++ T *loadAcquire() const { return _q_value; } + void store(T *newValue) { _q_value = newValue; } + void storeRelease(T *newValue) { _q_value = newValue; } + From 6a55943ecb69eea326bf70f5e14d006011220557 Mon Sep 17 00:00:00 2001 From: Rex Dieter Date: Wed, 16 Oct 2013 12:59:37 -0500 Subject: [PATCH 7/7] disable -docs (for ppc bootstrap mostly) --- qt5-qtbase.spec | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/qt5-qtbase.spec b/qt5-qtbase.spec index dbbd8e9..1387303 100644 --- a/qt5-qtbase.spec +++ b/qt5-qtbase.spec @@ -14,14 +14,14 @@ # define to build docs, need to undef this for bootstrapping # where qt5-qttools builds are not yet available -%define docs 1 +#define docs 1 %define pre alpha Summary: Qt5 - QtBase components Name: qt5-qtbase Version: 5.2.0 -Release: 0.2.%{pre}%{?dist} +Release: 0.3.%{pre}%{?dist} # See LGPL_EXCEPTIONS.txt, LICENSE.GPL3, respectively, for exception details License: LGPLv2 with exceptions or GPLv3 with exceptions @@ -32,16 +32,13 @@ Source0: http://download.qt-project.org/development_releases/qt/5.2/%{version}-% Source0: http://download.qt-project.org/official_releases/qt/5.2/%{version}/submodules/%{qt_module}-opensource-src-%{version}.tar.xz %endif -# http://bugzilla.redhat.com/1005482 -#ExcludeArch: ppc64 ppc - # help build on some lowmem archs, e.g. drop hard-coded -O3 optimization on some files Patch1: qtbase-opensource-src-5.0.2-lowmem.patch # support multilib optflags Patch2: qtbase-multilib_optflags.patch -# qatomic on ppc/ppc64 +# qatomic on ppc/ppc64, http://bugzilla.redhat.com/1005482 Patch3: qtbase-qatomic-ppc.patch # upstreamable patches @@ -598,6 +595,9 @@ popd %changelog +* Wed Oct 16 2013 Rex Dieter 5.2.0-0.3.alpha +- disable -docs (for ppc bootstrap mostly) + * Wed Oct 16 2013 Lukáš Tinkl - 5.2.0-0.2.alpha - Fixes #1005482 - qtbase FTBFS on ppc/ppc64