Update to spice-gtk-0.41.

This commit is contained in:
ajacoutot 2022-07-13 07:10:47 +00:00
parent 2966ed7907
commit 77c5b472aa
6 changed files with 4 additions and 441 deletions

View File

@ -1,12 +1,11 @@
COMMENT= GTK client and libraries for SPICE remote desktop servers
DISTNAME= spice-gtk-0.40
DISTNAME= spice-gtk-0.41
EXTRACT_SUFX= .tar.xz
REVISION= 0
CATEGORIES= x11 net
SHARED_LIBS += spice-client-glib-2.0 6.2 # 8.8.0
SHARED_LIBS += spice-client-glib-2.0 6.2 # 8.8.1
SHARED_LIBS += spice-client-gtk-3.0 4.2 # 5.1.0
HOMEPAGE= http://www.spice-space.org/page/Spice-Gtk

View File

@ -1,2 +1,2 @@
SHA256 (spice-gtk-0.40.tar.xz) = I/X/f6gLdWR85zzaXq+LMi80Mtu7f286g5Y0YYrbztM=
SIZE (spice-gtk-0.40.tar.xz) = 848688
SHA256 (spice-gtk-0.41.tar.xz) = 2Pi1y+qRhHAu64zCdqZ9cqzbbjbnxzNJ+4RF5byglp8=
SIZE (spice-gtk-0.41.tar.xz) = 827320

View File

@ -1,22 +0,0 @@
From b3eb04485cf4553b0e588a7ca78f7377e1c4f35e Mon Sep 17 00:00:00 2001
From: Eli Schwartz <eschwartz93@gmail.com>
Date: Mon, 27 Jun 2022 01:48:02 -0400
Subject: [PATCH] fix invalid use of subprojects
Index: meson.build
--- meson.build.orig
+++ meson.build
@@ -49,9 +49,10 @@ spice_gtk_config_data.merge_from(spice_common.get_vari
spice_glib_deps += spice_common.get_variable('spice_common_client_dep')
spice_protocol_version = spice_common.get_variable('spice_protocol_version')
-subproject('keycodemapdb')
-keymapgen = files('subprojects/keycodemapdb/tools/keymap-gen')
-keymapcsv = files('subprojects/keycodemapdb/data/keymaps.csv')
+keycodemapdb = subproject('keycodemapdb')
+
+keymapgen = find_program('keymap-gen')
+keymapcsv = keycodemapdb.get_variable('keymaps_csv')
#
# check for system headers

View File

@ -1,17 +0,0 @@
From b3eb04485cf4553b0e588a7ca78f7377e1c4f35e Mon Sep 17 00:00:00 2001
From: Eli Schwartz <eschwartz93@gmail.com>
Date: Mon, 27 Jun 2022 01:48:02 -0400
Subject: [PATCH] fix invalid use of subprojects
Index: src/meson.build
--- src/meson.build.orig
+++ src/meson.build
@@ -312,7 +312,7 @@ if spice_gtk_has_gtk
foreach keymap : keymaps
varname = 'keymap_@0@2xtkbd'.format(keymap)
target = 'vncdisplay@0@.h'.format(varname)
- cmd = [python, keymapgen, '--lang', 'glib2', '--varname', varname, 'code-map', keymapcsv, keymap, 'xtkbd']
+ cmd = [python, keymapgen, 'code-map', '--lang', 'glib2', '--varname', varname, keymapcsv, keymap, 'xtkbd']
spice_client_gtk_sources += custom_target(target,
output : target,
capture : true,

View File

@ -1,16 +0,0 @@
From e15649b83a78f89f57205927022115536d2c1698 Mon Sep 17 00:00:00 2001
From: Eli Schwartz <eschwartz93@gmail.com>
Date: Tue, 21 Jun 2022 20:18:22 -0400
Subject: [PATCH] make the meson.build stub a bit more well-rounded by exporting files
Index: subprojects/keycodemapdb/meson.build
--- subprojects/keycodemapdb/meson.build.orig
+++ subprojects/keycodemapdb/meson.build
@@ -1 +1,6 @@
-project('keycodemapdb')
+project('keycodemapdb', meson_version: '>=0.46.0')
+
+keymap_gen = find_program('tools/keymap-gen')
+meson.override_find_program('keymap-gen', keymap_gen)
+
+keymaps_csv = files('data/keymaps.csv')

View File

@ -1,381 +0,0 @@
From b3eb04485cf4553b0e588a7ca78f7377e1c4f35e Mon Sep 17 00:00:00 2001
From: Eli Schwartz <eschwartz93@gmail.com>
Date: Mon, 27 Jun 2022 01:48:02 -0400
Subject: [PATCH] fix invalid use of subprojects
Index: subprojects/keycodemapdb/tools/keymap-gen
--- subprojects/keycodemapdb/tools/keymap-gen.orig
+++ subprojects/keycodemapdb/tools/keymap-gen
@@ -508,7 +508,7 @@ class LanguageDocGenerator(LanguageGenerator):
def _array_code_entry(self, value, name):
raise NotImplementedError()
- def generate_name_docs(self, varname, database, mapname):
+ def generate_name_docs(self, title, subtitle, database, mapname):
if mapname not in database.mapname:
raise Exception("Unknown map %s, expected one of %s" % (
mapname, ", ".join(database.mapname.keys())))
@@ -517,10 +517,12 @@ class LanguageDocGenerator(LanguageGenerator):
keys.sort()
names = [database.mapname[Database.MAP_LINUX].get(key, "unnamed") for key in keys]
- if varname is None:
- varname = mapname
+ if title is None:
+ title = mapname
+ if subtitle is None:
+ subtitle = "Docs for %s" % mapname
- self._array_start_name_doc(varname, mapname)
+ self._array_start_name_doc(title, subtitle, mapname)
for i in range(len(keys)):
key = keys[i]
@@ -530,7 +532,7 @@ class LanguageDocGenerator(LanguageGenerator):
self._array_end()
- def generate_code_docs(self, varname, database, mapname):
+ def generate_code_docs(self, title, subtitle, database, mapname):
if mapname not in database.mapfrom:
raise Exception("Unknown map %s, expected one of %s" % (
mapname, ", ".join(database.mapfrom.keys())))
@@ -545,10 +547,12 @@ class LanguageDocGenerator(LanguageGenerator):
names = database.mapname[Database.MAP_LINUX]
namemap = Database.MAP_LINUX
- if varname is None:
- varname = mapname
+ if title is None:
+ title = mapname
+ if subtitle is None:
+ subtitle = "Docs for %s" % mapname
- self._array_start_code_doc(varname, mapname, namemap)
+ self._array_start_code_doc(title, subtitle, mapname, namemap)
for i in range(len(keys)):
key = keys[i]
@@ -748,6 +752,54 @@ class StdCppHeaderLanguageGenerator(CppHeaderLanguageG
def __init__(self):
super(StdCppHeaderLanguageGenerator, self).__init__("unsigned short", "char *", "unsigned int")
+
+class RustLanguageGenerator(LanguageSrcGenerator):
+
+ def _boilerplate(self, lines):
+ print("//")
+ for line in lines:
+ print("// %s" % line)
+ print("//")
+
+ def _array_start(self, varname, length, defvalue, fromtype, totype):
+ if fromtype == self.TYPE_ENUM:
+ raise NotImplementedError("Enums not supported as source in Rust generator")
+
+ totypename = "&str" if totype == self.TYPE_STRING else "u16"
+ if fromtype != self.TYPE_STRING:
+ print("pub static %s: &[%s] = &[" % (varname.upper(), totypename))
+ else:
+ print("pub static %s: phf::Map<&str, %s> = phf::phf_map! {" %
+ (varname.upper(), totypename))
+
+ def _array_end(self, fromtype, totype):
+ if fromtype != self.TYPE_STRING:
+ print("];")
+ else:
+ print("};")
+
+ def _array_entry(self, index, value, comment, fromtype, totype):
+ none = "\"\"" if totype == self.TYPE_STRING else "0"
+ if fromtype == self.TYPE_INT:
+ if value is None:
+ print(" %s, // %s" % (none, comment))
+ elif totype == self.TYPE_INT:
+ print(" 0x%x, // %s" % (value, comment))
+ elif totype == self.TYPE_ENUM:
+ print(" %s, // %s" % (value, comment))
+ else:
+ print(" \"%s\", // %s" % (value, comment))
+ else:
+ if value is None:
+ print(" \"%s\" => %s, // %s" % (index, none, comment))
+ elif totype == self.TYPE_INT:
+ print(" \"%s\" => 0x%x, // %s" % (index, value, comment))
+ elif totype == self.TYPE_ENUM:
+ print(" \"%s\" => %s, // %s" % (index, value, comment))
+ else:
+ print(" \"%s\" => \"%s\", // %s" % (index, value, comment))
+
+
class PythonLanguageGenerator(LanguageSrcGenerator):
def _boilerplate(self, lines):
@@ -872,17 +924,25 @@ class PodLanguageGenerator(LanguageDocGenerator):
print("# %s" % line)
print("#")
- def _array_start_name_doc(self, varname, namemap):
- print("=head1 %s" % varname)
+ def _array_start_name_doc(self, title, subtitle, namemap):
+ print("=head1 NAME")
print("")
+ print("%s - %s" % (title, subtitle))
+ print("")
+ print("=head1 DESCRIPTION")
+ print("")
print("List of %s key code names, with corresponding key code values" % namemap)
print("")
print("=over 4")
print("")
- def _array_start_code_doc(self, varname, codemap, namemap):
- print("=head1 %s" % varname)
+ def _array_start_code_doc(self, title, subtitle, codemap, namemap):
+ print("=head1 NAME")
print("")
+ print("%s - %s" % (title, subtitle))
+ print("")
+ print("=head1 DESCRIPTION")
+ print("")
print("List of %s key code values, with corresponding %s key code names" % (codemap, namemap))
print("")
print("=over 4")
@@ -904,6 +964,63 @@ class PodLanguageGenerator(LanguageDocGenerator):
print("Key name %s" % name)
print("")
+class RSTLanguageGenerator(LanguageDocGenerator):
+
+ def _boilerplate(self, lines):
+ print("..")
+ for line in lines:
+ print(" %s" % line)
+ print("")
+
+ def _array_start_name_doc(self, title, subtitle, namemap):
+ print("=" * len(title))
+ print(title)
+ print("=" * len(title))
+ print("")
+ print("-" * len(subtitle))
+ print(subtitle)
+ print("-" * len(subtitle))
+ print("")
+ print(":Manual section: 7")
+ print(":Manual group: Virtualization Support")
+ print("")
+ print("DESCRIPTION")
+ print("===========")
+ print("List of %s key code names, with corresponding key code values" % namemap)
+ print("")
+
+ def _array_start_code_doc(self, title, subtitle, codemap, namemap):
+ print("=" * len(title))
+ print(title)
+ print("=" * len(title))
+ print("")
+ print("-" * len(subtitle))
+ print(subtitle)
+ print("-" * len(subtitle))
+ print("")
+ print(":Manual section: 7")
+ print(":Manual group: Virtualization Support")
+ print("")
+ print("DESCRIPTION")
+ print("===========")
+ print("List of %s key code values, with corresponding %s key code names" % (codemap, namemap))
+ print("")
+
+ def _array_end(self):
+ print("")
+
+ def _array_name_entry(self, value, name):
+ print("* %s" % name)
+ print("")
+ print(" Key value %d (0x%x)" % (value, value))
+ print("")
+
+ def _array_code_entry(self, value, name):
+ print("* %d (0x%x)" % (value, value))
+ print("")
+ print(" Key name %s" % name)
+ print("")
+
SRC_GENERATORS = {
"stdc": StdCLanguageGenerator(),
"stdc-header": StdCHeaderLanguageGenerator(),
@@ -915,19 +1032,21 @@ SRC_GENERATORS = {
"python3": PythonLanguageGenerator(),
"perl": PerlLanguageGenerator(),
"js": JavaScriptLanguageGenerator(),
+ "rust": RustLanguageGenerator(),
}
DOC_GENERATORS = {
"pod": PodLanguageGenerator(),
+ "rst": RSTLanguageGenerator(),
}
def code_map(args):
database = Database()
database.load(args.keymaps)
- cliargs = ["keymap-gen", "--lang=%s" % args.lang]
+ cliargs = ["keymap-gen", "code-map", "--lang=%s" % args.lang]
if args.varname is not None:
cliargs.append("--varname=%s" % args.varname)
- cliargs.extend(["code-map", "keymaps.csv", args.frommapname, args.tomapname])
+ cliargs.extend(["keymaps.csv", args.frommapname, args.tomapname])
SRC_GENERATORS[args.lang].generate_header(database, " ".join(cliargs))
SRC_GENERATORS[args.lang].generate_code_map(args.varname, database, args.frommapname, args.tomapname)
@@ -936,10 +1055,10 @@ def code_table(args):
database = Database()
database.load(args.keymaps)
- cliargs = ["keymap-gen", "--lang=%s" % args.lang]
+ cliargs = ["keymap-gen", "code-table", "--lang=%s" % args.lang]
if args.varname is not None:
cliargs.append("--varname=%s" % args.varname)
- cliargs.extend(["code-table", "keymaps.csv", args.mapname])
+ cliargs.extend(["keymaps.csv", args.mapname])
SRC_GENERATORS[args.lang].generate_header(database, " ".join(cliargs))
SRC_GENERATORS[args.lang].generate_code_table(args.varname, database, args.mapname)
@@ -948,10 +1067,10 @@ def name_map(args):
database = Database()
database.load(args.keymaps)
- cliargs = ["keymap-gen", "--lang=%s" % args.lang]
+ cliargs = ["keymap-gen", "name-map", "--lang=%s" % args.lang]
if args.varname is not None:
cliargs.append("--varname=%s" % args.varname)
- cliargs.extend(["name-map", "keymaps.csv", args.frommapname, args.tomapname])
+ cliargs.extend(["keymaps.csv", args.frommapname, args.tomapname])
SRC_GENERATORS[args.lang].generate_header(database, " ".join(cliargs))
SRC_GENERATORS[args.lang].generate_name_map(args.varname, database, args.frommapname, args.tomapname)
@@ -961,10 +1080,10 @@ def name_table(args):
database.load(args.keymaps)
- cliargs = ["keymap-gen", "--lang=%s" % args.lang]
+ cliargs = ["keymap-gen", "name-table", "--lang=%s" % args.lang]
if args.varname is not None:
cliargs.append("--varname=%s" % args.varname)
- cliargs.extend(["name-table", "keymaps.csv", args.mapname])
+ cliargs.extend(["keymaps.csv", args.mapname])
SRC_GENERATORS[args.lang].generate_header(database, " ".join(cliargs))
SRC_GENERATORS[args.lang].generate_name_table(args.varname, database, args.mapname)
@@ -974,26 +1093,30 @@ def code_docs(args):
database.load(args.keymaps)
- cliargs = ["keymap-gen", "--lang=%s" % args.lang]
- if args.varname is not None:
- cliargs.append("--varname=%s" % args.varname)
- cliargs.extend(["code-docs", "keymaps.csv", args.mapname])
+ cliargs = ["keymap-gen", "code-docs", "--lang=%s" % args.lang]
+ if args.title is not None:
+ cliargs.append("--title=%s" % args.title)
+ if args.subtitle is not None:
+ cliargs.append("--subtitle=%s" % args.subtitle)
+ cliargs.extend(["keymaps.csv", args.mapname])
DOC_GENERATORS[args.lang].generate_header(database, " ".join(cliargs))
- DOC_GENERATORS[args.lang].generate_code_docs(args.varname, database, args.mapname)
+ DOC_GENERATORS[args.lang].generate_code_docs(args.title, args.subtitle, database, args.mapname)
def name_docs(args):
database = Database()
database.load(args.keymaps)
- cliargs = ["keymap-gen", "--lang=%s" % args.lang]
- if args.varname is not None:
- cliargs.append("--varname=%s" % args.varname)
- cliargs.extend(["name-docs", "keymaps.csv", args.mapname])
+ cliargs = ["keymap-gen", "name-docs", "--lang=%s" % args.lang]
+ if args.title is not None:
+ cliargs.append("--title=%s" % args.title)
+ if args.subtitle is not None:
+ cliargs.append("--subtitle=%s" % args.subtitle)
+ cliargs.extend(["keymaps.csv", args.mapname])
DOC_GENERATORS[args.lang].generate_header(database, " ".join(cliargs))
- DOC_GENERATORS[args.lang].generate_name_docs(args.varname, database, args.mapname)
+ DOC_GENERATORS[args.lang].generate_name_docs(args.title, args.subtitle, database, args.mapname)
def usage():
print ("Please select a command:")
@@ -1003,43 +1126,62 @@ def usage():
def main():
parser = argparse.ArgumentParser()
- parser.add_argument("--lang", default="stdc",
- help="Output language, (src=%s, doc=%s)" % (
- ",".join(SRC_GENERATORS.keys()),
- ",".join(DOC_GENERATORS.keys())))
- parser.add_argument("--varname", default=None,
- help="Data variable name")
-
subparsers = parser.add_subparsers(help="sub-command help")
codemapparser = subparsers.add_parser("code-map", help="Generate a mapping between code tables")
+ codemapparser.add_argument("--varname", default=None, help="Data variable name")
+ codemapparser.add_argument("--lang", default="stdc",
+ help="Output language (%s)" % (
+ ",".join(SRC_GENERATORS.keys())))
codemapparser.add_argument("keymaps", help="Path to keymap CSV data file")
codemapparser.add_argument("frommapname", help="Source code table name")
codemapparser.add_argument("tomapname", help="Target code table name")
codemapparser.set_defaults(func=code_map)
codetableparser = subparsers.add_parser("code-table", help="Generate a flat code table")
+ codetableparser.add_argument("--lang", default="stdc",
+ help="Output language (%s)" % (
+ ",".join(SRC_GENERATORS.keys())))
+ codetableparser.add_argument("--varname", default=None, help="Data variable name")
codetableparser.add_argument("keymaps", help="Path to keymap CSV data file")
codetableparser.add_argument("mapname", help="Code table name")
codetableparser.set_defaults(func=code_table)
namemapparser = subparsers.add_parser("name-map", help="Generate a mapping to names")
+ namemapparser.add_argument("--lang", default="stdc",
+ help="Output language (%s)" % (
+ ",".join(SRC_GENERATORS.keys())))
+ namemapparser.add_argument("--varname", default=None, help="Data variable name")
namemapparser.add_argument("keymaps", help="Path to keymap CSV data file")
namemapparser.add_argument("frommapname", help="Source code table name")
namemapparser.add_argument("tomapname", help="Target name table name")
namemapparser.set_defaults(func=name_map)
nametableparser = subparsers.add_parser("name-table", help="Generate a flat name table")
+ nametableparser.add_argument("--lang", default="stdc",
+ help="Output language, (%s)" % (
+ ",".join(SRC_GENERATORS.keys())))
+ nametableparser.add_argument("--varname", default=None, help="Data variable name")
nametableparser.add_argument("keymaps", help="Path to keymap CSV data file")
nametableparser.add_argument("mapname", help="Name table name")
nametableparser.set_defaults(func=name_table)
codedocsparser = subparsers.add_parser("code-docs", help="Generate code documentation")
+ codedocsparser.add_argument("--lang", default="pod",
+ help="Output language (%s)" % (
+ ",".join(DOC_GENERATORS.keys())))
+ codedocsparser.add_argument("--title", default=None, help="Document title")
+ codedocsparser.add_argument("--subtitle", default=None, help="Document subtitle")
codedocsparser.add_argument("keymaps", help="Path to keymap CSV data file")
codedocsparser.add_argument("mapname", help="Code table name")
codedocsparser.set_defaults(func=code_docs)
namedocsparser = subparsers.add_parser("name-docs", help="Generate name documentation")
+ namedocsparser.add_argument("--lang", default="pod",
+ help="Output language (%s)" % (
+ ",".join(DOC_GENERATORS.keys())))
+ namedocsparser.add_argument("--title", default=None, help="Document title")
+ namedocsparser.add_argument("--subtitle", default=None, help="Document subtitle")
namedocsparser.add_argument("keymaps", help="Path to keymap CSV data file")
namedocsparser.add_argument("mapname", help="Name table name")
namedocsparser.set_defaults(func=name_docs)