[smokegen] revert upstream commit causing smokekde ftbfs
Rex Dieter
rdieter at fedoraproject.org
Sun Jun 10 13:59:17 UTC 2012
commit 4ca0dc9df2fd908c2f9b14d11df0bea64793b3c6
Author: Rex Dieter <rdieter at fedoraproject.org>
Date: Sun Jun 10 09:02:12 2012 -0500
revert upstream commit causing smokekde ftbfs
smokegen-4.8.90-qflags.patch | 87 ++++++++++++++++++++++++++++++++++++++++++
smokegen.spec | 12 +++++-
2 files changed, 97 insertions(+), 2 deletions(-)
---
diff --git a/smokegen-4.8.90-qflags.patch b/smokegen-4.8.90-qflags.patch
new file mode 100644
index 0000000..554e41e
--- /dev/null
+++ b/smokegen-4.8.90-qflags.patch
@@ -0,0 +1,87 @@
+From: Arno Rehn <arno at arnorehn.de>
+Date: Thu, 31 May 2012 18:43:41 +0000
+Subject: handle QFlags references as if they were normal uints.
+X-Git-Url: http://quickgit.kde.org/?p=smokegen.git&a=commitdiff&h=b295439071bca5dd29d9096cb8d372ade2f3c3be
+---
+handle QFlags references as if they were normal uints.
+---
+
+
+--- a/generators/smoke/helpers.cpp
++++ b/generators/smoke/helpers.cpp
+@@ -472,7 +472,7 @@ QChar Util::munge(const Type *type) {
+ // reference to array or hash or unknown
+ return '?';
+ } else if (type->isIntegral() || type->getEnum() || Options::scalarTypes.contains(type->name()) ||
+- (Options::qtMode && !type->isRef() && type->pointerDepth() == 0 &&
++ (Options::qtMode && type->pointerDepth() == 0 &&
+ (type->getClass() && type->getClass()->isTemplate() && type->getClass()->name() == "QFlags")))
+ {
+ // plain scalar
+@@ -516,7 +516,7 @@ QString Util::stackItemField(const Type*
+ return stackItemField(&resolved);
+ }
+
+- if (Options::qtMode && !type->isRef() && type->pointerDepth() == 0 &&
++ if (Options::qtMode && type->pointerDepth() == 0 &&
+ type->getClass() && type->getClass()->isTemplate() && type->getClass()->name() == "QFlags")
+ {
+ return "s_uint";
+@@ -555,15 +555,14 @@ QString Util::assignmentString(const Typ
+
+ if (type->pointerDepth() > 0 || type->isFunctionPointer()) {
+ return "(void*)" + var;
++ } else if (Options::qtMode && type->getClass() && type->getClass()->isTemplate() && type->getClass()->name() == "QFlags") {
++ return "(uint)" + var;
+ } else if (type->isRef()) {
+ return "(void*)&" + var;
+ } else if (type->isIntegral() && !Options::voidpTypes.contains(type->name())) {
+ return var;
+ } else if (type->getEnum()) {
+ return var;
+- } else if (Options::qtMode && type->getClass() && type->getClass()->isTemplate() && type->getClass()->name() == "QFlags")
+- {
+- return "(uint)" + var;
+ } else {
+ QString ret = "(void*)new " + type->toString();
+ ret += '(' + var + ')';
+
+--- a/generators/smoke/writeSmokeDataFile.cpp
++++ b/generators/smoke/writeSmokeDataFile.cpp
+@@ -118,7 +118,7 @@ QString SmokeDataFile::getTypeFlags(cons
+ flags += "|Smoke::t_voidp";
+ } else if (t->getClass()) {
+ if (t->getClass()->isTemplate()) {
+- if (Options::qtMode && t->getClass()->name() == "QFlags" && !t->isRef() && t->pointerDepth() == 0) {
++ if (Options::qtMode && t->getClass()->name() == "QFlags" && t->pointerDepth() == 0) {
+ flags += "|Smoke::t_uint";
+ } else {
+ flags += "|Smoke::t_voidp";
+@@ -157,14 +157,21 @@ QString SmokeDataFile::getTypeFlags(cons
+ flags += "|Smoke::t_voidp";
+ }
+
+- if (t->isRef())
+- flags += "|Smoke::tf_ref";
+- if (t->pointerDepth() > 0)
+- flags += "|Smoke::tf_ptr";
+- if (!t->isRef() && t->pointerDepth() == 0)
++ // special case QFlags references
++ if (Options::qtMode && t->pointerDepth() == 0 && t->getClass() && t->getClass()->isTemplate() && t->getClass()->name() == "QFlags") {
+ flags += "|Smoke::tf_stack";
++ } else {
++ if (t->isRef())
++ flags += "|Smoke::tf_ref";
++ if (t->pointerDepth() > 0)
++ flags += "|Smoke::tf_ptr";
++ if (!t->isRef() && t->pointerDepth() == 0)
++ flags += "|Smoke::tf_stack";
++ }
++
+ if (t->isConst())
+ flags += "|Smoke::tf_const";
++
+ flags.replace("0|", "");
+
+ return flags;
+
diff --git a/smokegen.spec b/smokegen.spec
index d642d80..018a1b8 100644
--- a/smokegen.spec
+++ b/smokegen.spec
@@ -1,6 +1,6 @@
Name: smokegen
Version: 4.8.90
-Release: 1%{?dist}
+Release: 2%{?dist}
Summary: Smoke Generator
License: LGPLv2 and GPLv2+
@@ -13,7 +13,10 @@ URL: https://projects.kde.org/projects/kde/kdebindings/smoke
%endif
Source0: ftp://ftp.kde.org/pub/kde/%{stable}/%{version}/src/%{name}-%{version}.tar.xz
-## upstreamable patches
+## upstream patches
+# revert http://quickgit.kde.org/index.php?p=smokegen.git&a=commit&h=b295439071bca5dd29d9096cb8d372ade2f3c3be
+# causes smokekde FTBFS
+Patch100: smokegen-4.8.90-qflags.patch
BuildRequires: cmake
BuildRequires: pkgconfig(QtCore) pkgconfig(QtXml)
@@ -37,6 +40,8 @@ Requires: %{name}%{?_isa} = %{version}-%{release}
%prep
%setup -q
+%patch100 -p1 -R -b .qflags
+
%build
mkdir -p %{_target_platform}
@@ -71,6 +76,9 @@ make install/fast DESTDIR=%{buildroot} -C %{_target_platform}
%changelog
+* Sun Jun 10 2012 Rex Dieter <rdieter at fedoraproject.org> 4.8.90-2
+- revert upstream commit causing smokekde ftbfs
+
* Sat Jun 09 2012 Rex Dieter <rdieter at fedoraproject.org> - 4.8.90-1
- 4.8.90
More information about the scm-commits
mailing list