summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorCharles Bos2019-02-20 19:40:15 +0000
committerCharles Bos2019-02-20 19:40:15 +0000
commit83771d7d62efac866dc53bb853e893d756297eae (patch)
tree67a50ec4196a2409d1c5d3b311dfb6cbfa8f02a0
parentafe6bc485be153aecffd668c36dbf3cd19de310b (diff)
downloadaur-83771d7d62efac866dc53bb853e893d756297eae.tar.gz
Add fix for #1816629
-rw-r--r--.SRCINFO4
-rw-r--r--PKGBUILD11
-rw-r--r--ccsm-unicode-fix.patch112
3 files changed, 123 insertions, 4 deletions
diff --git a/.SRCINFO b/.SRCINFO
index f00bd0872948..32d0708ab7fe 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,7 +1,7 @@
pkgbase = compiz
pkgdesc = Composite manager for Aiglx and Xgl, with plugins and CCSM
pkgver = 0.9.14.0
- pkgrel = 4
+ pkgrel = 5
url = https://launchpad.net/compiz
arch = i686
arch = x86_64
@@ -46,12 +46,14 @@ pkgbase = compiz
source = reverse-unity-config.patch
source = screenshot-launch-fix.patch
source = no-compile-gschemas.patch
+ source = ccsm-unicode-fix.patch
sha256sums = 52cd6a90ffe987bd0415fda23c34e1f3284aa34c4d8b4eefb160fbf4d1f33a2c
sha256sums = f4897590b0f677ba34767a29822f8f922a750daf66e8adf47be89f7c2550cf4b
sha256sums = 16ddb6311ce42d958505e21ca28faae5deeddce02cb558d55e648380274ba4d9
sha256sums = 6ec9c04540ca1649c687d9ab2c8311caea7075831e2cffe719ec7958c9ebab7b
sha256sums = 89ee91a8ea6b1424ef76661ea9a2db43412366aacddc12d24a7adf5e04bfbc61
sha256sums = 4ab3277da201314b3f65e30128bc30704ddee584fdbbfc8d0d83c7e0de91fa9a
+ sha256sums = 78ab98cb0904cab84d57028f3c07defc5e3596dcd8c0f691bcb57a85f9e0c06e
pkgname = compiz
diff --git a/PKGBUILD b/PKGBUILD
index 2332c9cef923..c22c31c28fa0 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -6,7 +6,7 @@
pkgname=compiz
pkgver=0.9.14.0
-pkgrel=4
+pkgrel=5
pkgdesc="Composite manager for Aiglx and Xgl, with plugins and CCSM"
arch=('i686' 'x86_64')
url="https://launchpad.net/compiz"
@@ -23,13 +23,15 @@ source=("https://launchpad.net/${pkgname}/${pkgver:0:6}/${pkgver}/+download/${pk
"gtk-extents.patch"
"reverse-unity-config.patch"
"screenshot-launch-fix.patch"
- "no-compile-gschemas.patch")
+ "no-compile-gschemas.patch"
+ "ccsm-unicode-fix.patch")
sha256sums=('52cd6a90ffe987bd0415fda23c34e1f3284aa34c4d8b4eefb160fbf4d1f33a2c'
'f4897590b0f677ba34767a29822f8f922a750daf66e8adf47be89f7c2550cf4b'
'16ddb6311ce42d958505e21ca28faae5deeddce02cb558d55e648380274ba4d9'
'6ec9c04540ca1649c687d9ab2c8311caea7075831e2cffe719ec7958c9ebab7b'
'89ee91a8ea6b1424ef76661ea9a2db43412366aacddc12d24a7adf5e04bfbc61'
- '4ab3277da201314b3f65e30128bc30704ddee584fdbbfc8d0d83c7e0de91fa9a')
+ '4ab3277da201314b3f65e30128bc30704ddee584fdbbfc8d0d83c7e0de91fa9a'
+ '78ab98cb0904cab84d57028f3c07defc5e3596dcd8c0f691bcb57a85f9e0c06e')
prepare() {
cd "${pkgname}-${pkgver}"
@@ -48,6 +50,9 @@ prepare() {
# Don't try to compile gschemas during make install
patch -p1 -i "${srcdir}/no-compile-gschemas.patch"
+
+ # Fix unicode related ccsm crashes #1816629
+ patch -p1 -i "${srcdir}/ccsm-unicode-fix.patch"
}
build() {
diff --git a/ccsm-unicode-fix.patch b/ccsm-unicode-fix.patch
new file mode 100644
index 000000000000..f1920be20285
--- /dev/null
+++ b/ccsm-unicode-fix.patch
@@ -0,0 +1,112 @@
+diff --git a/compizconfig/compizconfig-python/src/compizconfig.pyx b/compizconfig/compizconfig-python/src/compizconfig.pyx
+index 79d6362..60e5301 100644
+--- a/compizconfig/compizconfig-python/src/compizconfig.pyx
++++ b/compizconfig/compizconfig-python/src/compizconfig.pyx
+@@ -1,4 +1,5 @@
+-# cython: c_string_type=str, c_string_encoding=ascii, language_level=3
++# cython: c_string_type=str, c_string_encoding=utf8, language_level=3
++
+ '''
+ This program is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public License
+@@ -471,9 +472,9 @@ cdef CCSSettingValue * EncodeValue (object data,
+ else:
+ t = ccsSettingGetType (setting)
+ if t == TypeString:
+- bv.value.asString = strdup (data)
++ bv.value.asString = strdup (data.encode ("utf-8"))
+ elif t == TypeMatch:
+- bv.value.asMatch = strdup (data)
++ bv.value.asMatch = strdup (data.encode ("utf-8"))
+ elif t == TypeInt:
+ bv.value.asInt = data
+ elif t == TypeFloat:
+@@ -489,11 +490,11 @@ cdef CCSSettingValue * EncodeValue (object data,
+ bv.value.asColor.color.blue = data[2]
+ bv.value.asColor.color.alpha = data[3]
+ elif t == TypeKey:
+- ccsStringToKeyBinding (data, &bv.value.asKey)
++ ccsStringToKeyBinding (data.encode ("utf-8"), &bv.value.asKey)
+ elif t == TypeButton:
+- ccsStringToButtonBinding (data, &bv.value.asButton)
++ ccsStringToButtonBinding (data.encode ("utf-8"), &bv.value.asButton)
+ elif t == TypeEdge:
+- bv.value.asEdge = ccsStringToEdges (data)
++ bv.value.asEdge = ccsStringToEdges (data.encode ("utf-8"))
+ elif t == TypeBell:
+ if (data):
+ bv.value.asBell = 1
+@@ -591,7 +592,7 @@ cdef class Setting:
+ cdef CCSSettingType t
+ cdef CCSSettingInfo * i
+
+- self.ccsSetting = ccsFindSetting (plugin.ccsPlugin, name)
++ self.ccsSetting = ccsFindSetting (plugin.ccsPlugin, name.encode ("utf-8"))
+ self.plugin = plugin
+
+ self.extendedStrRestrictions = None
+@@ -717,7 +718,7 @@ cdef class Plugin:
+ cdef object hasExtendedString
+
+ def __cinit__ (self, Context context, name):
+- self.ccsPlugin = ccsFindPlugin (context.ccsContext, name)
++ self.ccsPlugin = ccsFindPlugin (context.ccsContext, name.encode ("utf-8"))
+ self.context = context
+ self.screen = {}
+ self.groups = {}
+@@ -1037,7 +1038,7 @@ cdef class Profile:
+
+ def __cinit__ (self, Context context, name):
+ self.context = context
+- self.name = strdup (name)
++ self.name = strdup (name.encode ("utf-8"))
+
+ def __dealloc__ (self):
+ free (self.name)
+@@ -1059,9 +1060,9 @@ cdef class Backend:
+
+ def __cinit__ (self, Context context, info):
+ self.context = context
+- self.name = strdup (info[0])
+- self.shortDesc = strdup (info[1])
+- self.longDesc = strdup (info[2])
++ self.name = strdup (info[0].encode ("utf-8"))
++ self.shortDesc = strdup (info[1].encode ("utf-8"))
++ self.longDesc = strdup (info[2].encode ("utf-8"))
+ self.profileSupport = bool (info[3])
+ self.integrationSupport = bool (info[4])
+
+@@ -1226,13 +1227,13 @@ cdef class Context:
+ ccsReadSettings (self.ccsContext)
+
+ def Import (self, path, autoSave = True):
+- ret = bool (ccsImportFromFile (self.ccsContext, path, True))
++ ret = bool (ccsImportFromFile (self.ccsContext, path.encode ("utf-8"), True))
+ if autoSave:
+ ccsWriteSettings (self.ccsContext)
+ return ret
+
+ def Export (self, path, skipDefaults = False):
+- return bool (ccsExportToFile (self.ccsContext, path, skipDefaults))
++ return bool (ccsExportToFile (self.ccsContext, path.encode ("utf-8"), skipDefaults))
+
+ property Plugins:
+ def __get__ (self):
+@@ -1247,7 +1248,7 @@ cdef class Context:
+ return self.currentProfile
+ def __set__ (self, profile):
+ self.currentProfile = profile
+- ccsSetProfile (self.ccsContext, profile.Name)
++ ccsSetProfile (self.ccsContext, profile.Name.encode ("utf-8"))
+ ccsReadSettings (self.ccsContext)
+
+ property Profiles:
+@@ -1259,7 +1260,7 @@ cdef class Context:
+ return self.currentBackend
+ def __set__ (self, backend):
+ self.currentBackend = backend
+- ccsSetBackend (self.ccsContext, backend.Name)
++ ccsSetBackend (self.ccsContext, backend.Name.encode ("utf-8"))
+ ccsReadSettings (self.ccsContext)
+
+ property Backends: