diff --git a/PyQt-x11-gpl-4.5.1-licenses.patch b/PyQt-x11-gpl-4.5.1-licenses.patch new file mode 100644 index 0000000..951120c --- /dev/null +++ b/PyQt-x11-gpl-4.5.1-licenses.patch @@ -0,0 +1,77 @@ +diff -up PyQt-x11-gpl-4.5.1/configure.py.licenses PyQt-x11-gpl-4.5.1/configure.py +--- PyQt-x11-gpl-4.5.1/configure.py.licenses 2009-07-02 13:42:00.855146231 -0500 ++++ PyQt-x11-gpl-4.5.1/configure.py 2009-07-02 13:43:37.020897737 -0500 +@@ -50,6 +50,7 @@ sip_min_version = 0x040801 + + qt_version = 0 + qt_edition = "" ++qt_licensee = None + qt_dir = None + qt_incdir = None + qt_libdir = None +@@ -908,6 +909,9 @@ def inform_user(): + + sipconfig.inform("Qt v%s %sis being used." % (sipconfig.version_to_string(qt_version), edstr)) + ++ if qt_licensee: ++ sipconfig.inform("Qt is licensed to %s." % qt_licensee) ++ + if sys.platform == "darwin" and qt_framework: + sipconfig.inform("Qt is built as a framework.") + +@@ -1464,9 +1468,8 @@ def check_license(): + sipconfig.inform("This is the %s version of PyQt %s (licensed under the %s) for Python %s on %s." % (ltype, pyqt_version_str, lname, sys.version.split()[0], sys.platform)) + + # Common checks. +- if qt_edition and ltype != "internal": +- if qt_edition != "free" and ltype == "GPL": +- sipconfig.error("This version of PyQt and the %s edition of Qt have incompatible licenses." % qt_edition) ++ if qt_licensee and ltype == "GPL": ++ sipconfig.error("This version of PyQt and the commercial version of Qt have incompatible licenses.") + + # Confirm the license if not already done. + if not opts.license_confirmed: +@@ -1674,6 +1677,8 @@ int main(int, char **) + out << QT_VERSION << '\\n'; + out << QT_EDITION << '\\n'; + ++ out << QLibraryInfo::licensee() << '\\n'; ++ + //#if defined(QT_SHARED) || defined(QT_DLL) + out << "shared\\n"; + //#else +@@ -1760,7 +1765,7 @@ int main(int, char **) + f.close() + + global qt_dir, qt_incdir, qt_libdir, qt_bindir, qt_datadir, qt_pluginsdir +- global qt_version, qt_edition, qt_shared, qt_xfeatures ++ global qt_version, qt_edition, qt_licensee, qt_shared, qt_xfeatures + + qt_dir = lines[0] + qt_incdir = lines[1] +@@ -1770,8 +1775,12 @@ int main(int, char **) + qt_pluginsdir = lines[5] + qt_version = lines[6] + qt_edition = lines[7] +- qt_shared = lines[8] +- qt_xfeatures = lines[9:] ++ qt_licensee = lines[8] ++ qt_shared = lines[9] ++ qt_xfeatures = lines[10:] ++ ++ if qt_licensee == 'Open Source': ++ qt_licensee = None + + try: + qt_version = int(qt_version) +@@ -1788,6 +1797,10 @@ int main(int, char **) + if qt_edition & 0x200: + # It has ActiveQt. + qt_edition = "Desktop" ++ ++ # ActiveQt became part of the open source version in v4.5.2. ++ if qt_version >= 0x040502 and qt_licensee is None: ++ qt_edition = "free" + elif qt_edition & 0x008: + # It has OpenGL. + qt_edition = "free" diff --git a/PyQt-x11-gpl-4.5.1-pyuic_shebang.patch b/PyQt-x11-gpl-4.5.1-pyuic_shebang.patch new file mode 100644 index 0000000..bafa4ec --- /dev/null +++ b/PyQt-x11-gpl-4.5.1-pyuic_shebang.patch @@ -0,0 +1,9 @@ +diff -up PyQt-x11-gpl-4.5.1/pyuic/uic/pyuic.py.shbang PyQt-x11-gpl-4.5.1/pyuic/uic/pyuic.py +--- PyQt-x11-gpl-4.5.1/pyuic/uic/pyuic.py.shbang 2009-06-16 03:37:46.000000000 -0500 ++++ PyQt-x11-gpl-4.5.1/pyuic/uic/pyuic.py 2009-07-02 14:01:44.218147410 -0500 +@@ -1,3 +1,5 @@ ++#!/usr/bin/python -tt ++ + import sys + import optparse + diff --git a/PyQt4.spec b/PyQt4.spec index d932323..391e7b9 100644 --- a/PyQt4.spec +++ b/PyQt4.spec @@ -4,7 +4,7 @@ Summary: Python bindings for Qt4 Name: PyQt4 Version: 4.5.1 -Release: 1%{?dist} +Release: 2%{?dist} # GPLv2 exceptions(see GPL_EXCEPTIONS*.txt) License: GPLv3 or GPLv2 with exceptions @@ -17,6 +17,8 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) Patch1: PyQt-x11-gpl-4.4.4-64bit.patch # HACK! FIXME: ping upstream why this isn't working right. -- Rex Patch2: PyQt-x11-gpl-4.4.4-QT_SHARED.patch +Patch3: PyQt-x11-gpl-4.5.1-licenses.patch +Patch4: PyQt-x11-gpl-4.5.1-pyuic_shebang.patch BuildRequires: chrpath BuildRequires: dbus-devel dbus-python-devel @@ -60,9 +62,13 @@ of the Qt4 classes (e.g. KDE or your own). %patch1 -p1 -b .64bit %patch2 -p1 -b .QT_SHARED +%patch3 -p1 -b .licenses +%patch4 -p1 +## permissions # mark examples non-executable find examples/ -name "*.py" | xargs chmod a-x +chmod a+rx pyuic/uic/pyuic.py %build @@ -84,7 +90,6 @@ rm -rf %{buildroot} make install DESTDIR=%{buildroot} INSTALL_ROOT=%{buildroot} # fix/remove rpaths - chrpath --list %{buildroot}%{python_sitearch}/PyQt4/QtCore.so chrpath --delete %{buildroot}%{python_sitearch}/PyQt4/QtCore.so @@ -97,17 +102,12 @@ chrpath --delete %{buildroot}%{python_sitearch}/PyQt4/QtDesigner.so chrpath --list %{buildroot}%{python_sitelib}/dbus/mainloop/qt.so chrpath --delete %{buildroot}%{python_sitelib}/dbus/mainloop/qt.so -# non-executable script -chmod 755 %{buildroot}%{python_sitearch}/PyQt4/uic/pyuic.py - -# missing shebang -cp -a %{buildroot}%{_bindir}/pyuic4 %{buildroot}%{_bindir}/pyuic4.ORIG -cat > %{buildroot}%{_bindir}/pyuic4 <> %{buildroot}%{_bindir}/pyuic4 -rm -f %{buildroot}%{_bindir}/pyuic4.ORIG +# HACK: fix multilb conflict, http://bugzilla.redhat.com/509415 +rm -fv %{buildroot}%{_bindir}/pyuic4 +mv %{buildroot}%{python_sitearch}/PyQt4/uic/pyuic.py \ + %{buildroot}%{_bindir}/pyuic4 +ln -s %{_bindir}/pyuic4 \ + %{buildroot}%{python_sitearch}/PyQt4/uic/pyuic.py %clean @@ -121,6 +121,7 @@ rm -rf %{buildroot} %doc LICENSE.GPL2 GPL_EXCEPTION*.TXT %doc LICENSE.GPL3 %{python_sitearch}/PyQt4/ +%exclude %{python_sitearch}/PyQt4/uic/pyuic.py* # fixme? -> sitearch? -- Rex %{python_sitelib}/dbus/mainloop/qt.so %{_qt4_plugindir}/designer/* @@ -129,12 +130,19 @@ rm -rf %{buildroot} %defattr(-,root,root,-) %doc doc/* %doc examples/ -%{_bindir}/* +%{_bindir}/pylupdate4 +%{_bindir}/pyrcc4 +%{_bindir}/pyuic4 +%{python_sitearch}/PyQt4/uic/pyuic.py* %{_datadir}/sip/PyQt4/ %{_qt4_prefix}/qsci/api/python/PyQt4.api %changelog +* Thu Jul 02 2009 Rex Dieter - 4.5.1-2 +- fix build with qt-4.5.2 +- PyQt4-devel multilib conflict (#509415) + * Tue Jun 16 2009 Rex Dieter - 4.5.1-1 - PyQt-4.5.1