summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVivien Kraus <vivien@planete-kraus.eu>2021-11-12 15:03:21 +0000
committerVivien Kraus <vivien@planete-kraus.eu>2021-11-12 17:47:24 +0000
commitfdfc737ce34840a768c98aa370725dbe650a6a3c (patch)
tree77430f7155e9ace134e9a16c94ddf3fa653b7cf5
parent2cbef4cfeb856327bb2794963ac99730d190bead (diff)
Client: Add a hello world Vala program.
-rw-r--r--Makefile.am4
-rw-r--r--configure.ac5
-rw-r--r--po/POTFILES.in3
-rw-r--r--po/disfluid.pot138
-rw-r--r--po/fr.po138
-rw-r--r--src/client/Makefile.am20
-rw-r--r--src/client/libwebidoidc-client.c17
-rw-r--r--src/scm/webid-oidc/client/reverse-stubs.scm4
-rw-r--r--src/ui/Makefile.am16
-rw-r--r--src/ui/main.vala31
-rw-r--r--vapigen/Makefile.am22
11 files changed, 239 insertions, 159 deletions
diff --git a/Makefile.am b/Makefile.am
index ec7d6c1..3d629ab 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -15,6 +15,7 @@
# along with this program. If not, see <https://www.gnu.org/licenses/>.
lib_LTLIBRARIES =
+libexec_PROGRAMS =
noinst_LTLIBRARIES =
noinst_PROGRAMS =
EXTRA_DIST =
@@ -22,10 +23,11 @@ BUILT_SOURCES =
DISTCHECK_CONFIGURE_FLAGS = CONFIG_SHELL=$(CONFIG_SHELL) SHELL=$(SHELL) \
--enable-indent-check=yes
SUFFIXES =
-SUBDIRS = . po man
+SUBDIRS = vapigen . po man
ACLOCAL_AMFLAGS = -I m4
AM_CPPFLAGS = -DLOCALEDIR=\"$(localedir)\" -I. -I$(srcdir)
AM_CFLAGS = $(GUILE_CFLAGS) $(NETTLE_CFLAGS)
+AM_VALAFLAGS =
nodist_noinst_SCRIPTS = pre-inst-env
dist_bin_SCRIPTS =
libexec_SCRIPTS =
diff --git a/configure.ac b/configure.ac
index 731f425..e7dc5ce 100644
--- a/configure.ac
+++ b/configure.ac
@@ -31,6 +31,7 @@ AM_MISSING_PROG([INDENT], [indent])
AM_MISSING_PROG([G_IR_SCANNER], [g-ir-scanner])
AM_MISSING_PROG([G_IR_COMPILER], [g-ir-compiler])
AM_MISSING_PROG([VAPIGEN], [vapigen])
+AM_PROG_VALAC
LT_INIT
AC_CONFIG_HEADERS([config.h])
AM_GNU_GETTEXT([external])
@@ -41,6 +42,8 @@ GUILE_SITE_DIR
PKG_CHECK_MODULES([NETTLE], [nettle])
PKG_CHECK_MODULES([HOGWEED], [hogweed])
PKG_CHECK_MODULES([GUILE], [guile-$GUILE_EFFECTIVE_VERSION])
+PKG_CHECK_MODULES([GLIB], [glib-2.0])
+PKG_CHECK_MODULES([GOBJECT], [gobject-2.0])
GUILE_MODULE_REQUIRED([json])
GUILE_MODULE_REQUIRED([rdf rdf])
GUILE_MODULE_REQUIRED([turtle tordf])
@@ -50,7 +53,7 @@ GUILE_MODULE_REQUIRED([jsonld])
GUILE_MODULE_REQUIRED([gi])
GLIB_GSETTINGS
-AC_CONFIG_FILES([Makefile po/Makefile.in man/Makefile eu.planete_kraus.Disfluid.gschema.xml])
+AC_CONFIG_FILES([vapigen/Makefile Makefile po/Makefile.in man/Makefile eu.planete_kraus.Disfluid.gschema.xml])
AC_CONFIG_FILES([man/reset-env], [chmod +x man/reset-env])
AC_CONFIG_FILES([pre-inst-env], [chmod +x pre-inst-env])
AC_OUTPUT
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 5834688..4837f5d 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -96,4 +96,5 @@ src/ui/loaded-page.glade
src/ui/loading-page.glade
src/ui/main-window.glade
src/ui/new-page.glade
-src/ui/updated-page.glade \ No newline at end of file
+src/ui/updated-page.glade
+src/ui/main.vala \ No newline at end of file
diff --git a/po/disfluid.pot b/po/disfluid.pot
index 3aa2c48..3749033 100644
--- a/po/disfluid.pot
+++ b/po/disfluid.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: disfluid SNAPSHOT\n"
"Report-Msgid-Bugs-To: vivien@planete-kraus.eu\n"
-"POT-Creation-Date: 2021-11-06 14:35+0100\n"
+"POT-Creation-Date: 2021-11-12 16:47+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -493,17 +493,17 @@ msgstr ""
msgid "You already have an account for ~a issued by ~a."
msgstr ""
-#: src/scm/webid-oidc/client/application.scm:397
+#: src/scm/webid-oidc/client/application.scm:394
msgid "the page URI (#:uri) should be a string encoding an URI or an URI"
msgstr ""
-#: src/scm/webid-oidc/client/application.scm:424
+#: src/scm/webid-oidc/client/application.scm:421
msgid ""
"the error code (#:code) should be an integer and the reason phrase (#:reason-"
"phrase) should be a string"
msgstr ""
-#: src/scm/webid-oidc/client/application.scm:473
+#: src/scm/webid-oidc/client/application.scm:470
msgid ""
"the etag (#:etag) should be a string or #f, the links (#:links) should be a "
"list of links, the content-type (#:content-type) should be a symbol or a "
@@ -511,24 +511,24 @@ msgid ""
"string or a bytevector, or #f for responses without a content"
msgstr ""
-#: src/scm/webid-oidc/client/application.scm:509
+#: src/scm/webid-oidc/client/application.scm:506
msgid ""
"the desired links (#:desired-links) should be an alist from URI to alists, "
"the desired content-type (#:desired-content-type) should be a symbol, and "
"the desired content (#:desired-content) should be a string or a bytevector"
msgstr ""
-#: src/scm/webid-oidc/client/application.scm:593
+#: src/scm/webid-oidc/client/application.scm:590
#, scheme-format
msgid "Loading ~a..."
msgstr ""
-#: src/scm/webid-oidc/client/application.scm:672
+#: src/scm/webid-oidc/client/application.scm:669
#, scheme-format
msgid "Updating ~a (expected ETag ~a)"
msgstr ""
-#: src/scm/webid-oidc/client/application.scm:719
+#: src/scm/webid-oidc/client/application.scm:716
#, scheme-format
msgid "Deleting ~a (expected ETag ~a)"
msgstr ""
@@ -926,8 +926,8 @@ msgstr ""
#: src/scm/webid-oidc/hello-world.scm:146 src/scm/webid-oidc/program.scm:145
#: src/scm/webid-oidc/server/endpoint/client.scm:153
#: src/scm/webid-oidc/server/endpoint/hello.scm:63
-#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:389
-#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:403
+#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:391
+#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:405
#: src/scm/webid-oidc/server/endpoint/reverse-proxy.scm:125
#: src/scm/webid-oidc/simulation.scm:90
msgid "xml-lang|en"
@@ -1614,7 +1614,7 @@ msgid "#:~a should be a list"
msgstr ""
#: src/scm/webid-oidc/server/endpoint/client.scm:123
-#: src/scm/webid-oidc/server/endpoint/resource-server.scm:145
+#: src/scm/webid-oidc/server/endpoint/resource-server.scm:148
msgid "reason-phrase|Not Modified"
msgstr ""
@@ -1639,9 +1639,9 @@ msgstr ""
#: src/scm/webid-oidc/server/endpoint/hello.scm:54
#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:332
-#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:459
-#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:468
-#: src/scm/webid-oidc/server/endpoint/resource-server.scm:208
+#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:461
+#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:470
+#: src/scm/webid-oidc/server/endpoint/resource-server.scm:211
msgid "reason-phrase|Unauthorized"
msgstr ""
@@ -1703,15 +1703,15 @@ msgstr ""
#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:318
#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:324
-#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:344
-#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:358
-#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:428
-#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:482
-#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:495
-#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:504
-#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:539
-#: src/scm/webid-oidc/server/endpoint/resource-server.scm:311
-#: src/scm/webid-oidc/server/endpoint/resource-server.scm:337
+#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:345
+#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:360
+#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:430
+#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:484
+#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:497
+#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:506
+#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:541
+#: src/scm/webid-oidc/server/endpoint/resource-server.scm:314
+#: src/scm/webid-oidc/server/endpoint/resource-server.scm:340
msgid "reason-phrase|Bad Request"
msgstr ""
@@ -1727,180 +1727,180 @@ msgstr ""
msgid "The password is incorrect."
msgstr ""
-#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:347
+#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:348
#, scheme-format
msgid "<p>The client, <a href=~s>~a</a>, cannot be queried.</p>"
msgstr ""
-#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:361
+#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:363
#, scheme-format
msgid ""
"<p>The real client at <a href=~s>~a</a> does not control the advertised "
"redirection URI.</p>"
msgstr ""
-#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:369
-#: src/scm/webid-oidc/server/endpoint/resource-server.scm:181
+#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:371
+#: src/scm/webid-oidc/server/endpoint/resource-server.scm:184
msgid "reason-phrase|Found"
msgstr ""
-#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:391
+#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:393
msgid "Redirecting..."
msgstr ""
-#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:393
+#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:395
msgid "You are being redirected."
msgstr ""
-#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:405
+#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:407
msgid "Authorization..."
msgstr ""
-#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:418
-#: src/scm/webid-oidc/server/endpoint/resource-server.scm:241
+#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:420
+#: src/scm/webid-oidc/server/endpoint/resource-server.scm:244
msgid "reason-phrase|Unsupported Media Type"
msgstr ""
-#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:421
+#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:423
msgid "<p>Please use <pre>application/x-www-form-urlencoded</pre>.</p>"
msgstr ""
-#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:431
+#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:433
msgid "<p>Expected an UTF-8 request body.</p>"
msgstr ""
-#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:439
-#: src/scm/webid-oidc/server/endpoint/resource-server.scm:215
+#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:441
+#: src/scm/webid-oidc/server/endpoint/resource-server.scm:218
msgid "reason-phrase|Method Not Allowed"
msgstr ""
-#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:442
+#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:444
msgid "<p>This is a token endpoint, please use <pre>POST</pre>.</p>"
msgstr ""
-#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:462
+#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:464
msgid "<p>No DPoP proof has been found in your request.</p>"
msgstr ""
-#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:471
+#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:473
msgid "<p>The DPoP proof is invalid.</p>"
msgstr ""
-#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:485
+#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:487
msgid "<p>The <pre>grant_type</pre> parameter has not been found.</p>"
msgstr ""
-#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:498
+#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:500
msgid "<p>Could not find an authorization code.</p>"
msgstr ""
-#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:507
+#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:509
msgid "<p>The authorization code is invalid.</p>"
msgstr ""
-#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:519
+#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:521
msgid "reason-phrase|Bad Requeset"
msgstr ""
-#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:522
+#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:524
msgid "<p>Could not find a refresh token.</p>"
msgstr ""
-#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:528
-#: src/scm/webid-oidc/server/endpoint/resource-server.scm:201
+#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:530
+#: src/scm/webid-oidc/server/endpoint/resource-server.scm:204
msgid "reason-phrase|Forbidden"
msgstr ""
-#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:531
+#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:533
msgid "<p>The refresh token is invalid or has been revoked.</p>"
msgstr ""
-#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:542
+#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:544
#, scheme-format
msgid "<p>Cannot process your grant type, ~a.</p>"
msgstr ""
-#: src/scm/webid-oidc/server/endpoint/resource-server.scm:76
+#: src/scm/webid-oidc/server/endpoint/resource-server.scm:79
msgid "#:server-name must be an URI or a string encoding an URI"
msgstr ""
-#: src/scm/webid-oidc/server/endpoint/resource-server.scm:86
+#: src/scm/webid-oidc/server/endpoint/resource-server.scm:89
msgid "#:owner must be an URI or a string encoding an URI"
msgstr ""
-#: src/scm/webid-oidc/server/endpoint/resource-server.scm:94
+#: src/scm/webid-oidc/server/endpoint/resource-server.scm:97
msgid "#:data-home must be a string, or a thunk (returning a string)"
msgstr ""
-#: src/scm/webid-oidc/server/endpoint/resource-server.scm:127
-#: src/scm/webid-oidc/server/endpoint/resource-server.scm:250
+#: src/scm/webid-oidc/server/endpoint/resource-server.scm:130
+#: src/scm/webid-oidc/server/endpoint/resource-server.scm:253
msgid "reason-phrase|Precondition Failed"
msgstr ""
-#: src/scm/webid-oidc/server/endpoint/resource-server.scm:130
+#: src/scm/webid-oidc/server/endpoint/resource-server.scm:133
msgid "<p>The resource has been updated.</p>"
msgstr ""
-#: src/scm/webid-oidc/server/endpoint/resource-server.scm:170
+#: src/scm/webid-oidc/server/endpoint/resource-server.scm:173
#, scheme-format
msgid "~a: ignoring a group that cannot be fetched: ~a\n"
msgstr ""
-#: src/scm/webid-oidc/server/endpoint/resource-server.scm:174
+#: src/scm/webid-oidc/server/endpoint/resource-server.scm:177
#, scheme-format
msgid "~a: ignoring a group that cannot be fetched\n"
msgstr ""
-#: src/scm/webid-oidc/server/endpoint/resource-server.scm:204
+#: src/scm/webid-oidc/server/endpoint/resource-server.scm:207
msgid ""
"<p>You are authentified, but you are not authorized to access this resource."
"</p>"
msgstr ""
-#: src/scm/webid-oidc/server/endpoint/resource-server.scm:218
+#: src/scm/webid-oidc/server/endpoint/resource-server.scm:221
msgid "<p>The storage root cannot be deleted.</p>"
msgstr ""
-#: src/scm/webid-oidc/server/endpoint/resource-server.scm:226
+#: src/scm/webid-oidc/server/endpoint/resource-server.scm:229
msgid "reason-phrase|Conflict"
msgstr ""
-#: src/scm/webid-oidc/server/endpoint/resource-server.scm:231
+#: src/scm/webid-oidc/server/endpoint/resource-server.scm:234
msgid "<p>You need to empty the container first before deleting it.</p>"
msgstr ""
-#: src/scm/webid-oidc/server/endpoint/resource-server.scm:233
+#: src/scm/webid-oidc/server/endpoint/resource-server.scm:236
msgid ""
"<p>To change which resources are contained within this container, please use "
"HTTP POST, PUT or DELETE.</p>"
msgstr ""
-#: src/scm/webid-oidc/server/endpoint/resource-server.scm:235
+#: src/scm/webid-oidc/server/endpoint/resource-server.scm:238
msgid "<p>The target resource is an auxiliary resource.</p>"
msgstr ""
-#: src/scm/webid-oidc/server/endpoint/resource-server.scm:244
+#: src/scm/webid-oidc/server/endpoint/resource-server.scm:247
msgid "<p>You cannot use this content type.</p>"
msgstr ""
-#: src/scm/webid-oidc/server/endpoint/resource-server.scm:253
+#: src/scm/webid-oidc/server/endpoint/resource-server.scm:256
msgid "<p>The resource is not in the state you expected.</p>"
msgstr ""
-#: src/scm/webid-oidc/server/endpoint/resource-server.scm:259
+#: src/scm/webid-oidc/server/endpoint/resource-server.scm:262
msgid "reason-phrase|Not Acceptable"
msgstr ""
-#: src/scm/webid-oidc/server/endpoint/resource-server.scm:262
+#: src/scm/webid-oidc/server/endpoint/resource-server.scm:265
msgid "<p>I cannot serve the resource with a content-type you want.</p>"
msgstr ""
-#: src/scm/webid-oidc/server/endpoint/resource-server.scm:314
-#: src/scm/webid-oidc/server/endpoint/resource-server.scm:340
+#: src/scm/webid-oidc/server/endpoint/resource-server.scm:317
+#: src/scm/webid-oidc/server/endpoint/resource-server.scm:343
msgid "<p>Please include a request body.</p>"
msgstr ""
-#: src/scm/webid-oidc/server/endpoint/resource-server.scm:350
+#: src/scm/webid-oidc/server/endpoint/resource-server.scm:353
msgid "reason-phrase|Created"
msgstr ""
diff --git a/po/fr.po b/po/fr.po
index 026fe9e..a79c471 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: webid-oidc 0.0.0\n"
"Report-Msgid-Bugs-To: vivien@planete-kraus.eu\n"
-"POT-Creation-Date: 2021-11-06 14:35+0100\n"
+"POT-Creation-Date: 2021-11-12 16:47+0100\n"
"PO-Revision-Date: 2021-10-20 18:19+0200\n"
"Last-Translator: Vivien Kraus <vivien@planete-kraus.eu>\n"
"Language-Team: French <vivien@planete-kraus.eu>\n"
@@ -540,13 +540,13 @@ msgstr ""
msgid "You already have an account for ~a issued by ~a."
msgstr "Vous avez déjà un compte pour ~a émis par ~a."
-#: src/scm/webid-oidc/client/application.scm:397
+#: src/scm/webid-oidc/client/application.scm:394
msgid "the page URI (#:uri) should be a string encoding an URI or an URI"
msgstr ""
"l’URI de la page doit être une chaîne de caractères encodant une URI ou une "
"URI"
-#: src/scm/webid-oidc/client/application.scm:424
+#: src/scm/webid-oidc/client/application.scm:421
msgid ""
"the error code (#:code) should be an integer and the reason phrase (#:reason-"
"phrase) should be a string"
@@ -554,7 +554,7 @@ msgstr ""
"le code d’erreur (#:code) doit être un entier et l’explication (#:reason-"
"phrase) doit être une chaîne de caractères"
-#: src/scm/webid-oidc/client/application.scm:473
+#: src/scm/webid-oidc/client/application.scm:470
msgid ""
"the etag (#:etag) should be a string or #f, the links (#:links) should be a "
"list of links, the content-type (#:content-type) should be a symbol or a "
@@ -567,7 +567,7 @@ msgstr ""
"contenu (#:content) doit être une chaîne de caractères ou un vecteur "
"d’octets, ou #f si la réponse n’a pas de contenu"
-#: src/scm/webid-oidc/client/application.scm:509
+#: src/scm/webid-oidc/client/application.scm:506
msgid ""
"the desired links (#:desired-links) should be an alist from URI to alists, "
"the desired content-type (#:desired-content-type) should be a symbol, and "
@@ -578,17 +578,17 @@ msgstr ""
"symbole, et le ccontenu désiré (#:desired-content-type) doit être unne "
"chaîne de caractères ou un vecteur d’octets"
-#: src/scm/webid-oidc/client/application.scm:593
+#: src/scm/webid-oidc/client/application.scm:590
#, scheme-format
msgid "Loading ~a..."
msgstr "Chargement de ~a…"
-#: src/scm/webid-oidc/client/application.scm:672
+#: src/scm/webid-oidc/client/application.scm:669
#, scheme-format
msgid "Updating ~a (expected ETag ~a)"
msgstr "Mise à jour de ~a (ETag attendu ~a)"
-#: src/scm/webid-oidc/client/application.scm:719
+#: src/scm/webid-oidc/client/application.scm:716
#, scheme-format
msgid "Deleting ~a (expected ETag ~a)"
msgstr "Suppression de ~a (ETag attendu ~a)"
@@ -1038,8 +1038,8 @@ msgstr "Le port doit être un nombre entre 0 et 65535.\n"
#: src/scm/webid-oidc/hello-world.scm:146 src/scm/webid-oidc/program.scm:145
#: src/scm/webid-oidc/server/endpoint/client.scm:153
#: src/scm/webid-oidc/server/endpoint/hello.scm:63
-#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:389
-#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:403
+#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:391
+#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:405
#: src/scm/webid-oidc/server/endpoint/reverse-proxy.scm:125
#: src/scm/webid-oidc/simulation.scm:90
msgid "xml-lang|en"
@@ -1837,7 +1837,7 @@ msgid "#:~a should be a list"
msgstr "#:~a doit être une liste"
#: src/scm/webid-oidc/server/endpoint/client.scm:123
-#: src/scm/webid-oidc/server/endpoint/resource-server.scm:145
+#: src/scm/webid-oidc/server/endpoint/resource-server.scm:148
msgid "reason-phrase|Not Modified"
msgstr "Non Modifié"
@@ -1866,9 +1866,9 @@ msgstr ""
#: src/scm/webid-oidc/server/endpoint/hello.scm:54
#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:332
-#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:459
-#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:468
-#: src/scm/webid-oidc/server/endpoint/resource-server.scm:208
+#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:461
+#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:470
+#: src/scm/webid-oidc/server/endpoint/resource-server.scm:211
msgid "reason-phrase|Unauthorized"
msgstr "Non Autorisé"
@@ -1930,15 +1930,15 @@ msgstr "Autoriser"
#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:318
#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:324
-#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:344
-#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:358
-#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:428
-#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:482
-#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:495
-#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:504
-#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:539
-#: src/scm/webid-oidc/server/endpoint/resource-server.scm:311
-#: src/scm/webid-oidc/server/endpoint/resource-server.scm:337
+#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:345
+#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:360
+#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:430
+#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:484
+#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:497
+#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:506
+#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:541
+#: src/scm/webid-oidc/server/endpoint/resource-server.scm:314
+#: src/scm/webid-oidc/server/endpoint/resource-server.scm:340
msgid "reason-phrase|Bad Request"
msgstr "Requête Invalide"
@@ -1954,12 +1954,12 @@ msgstr "Le paramètre de requête redirect_uri n’est pas défini."
msgid "The password is incorrect."
msgstr "Le mot de passe est incorrect."
-#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:347
+#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:348
#, scheme-format
msgid "<p>The client, <a href=~s>~a</a>, cannot be queried.</p>"
msgstr "<p>Le client, <a href=~s>~a</a>, n’a pas pu être requêté.</p>"
-#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:361
+#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:363
#, scheme-format
msgid ""
"<p>The real client at <a href=~s>~a</a> does not control the advertised "
@@ -1968,142 +1968,142 @@ msgstr ""
"<p>Le véritable client <a href=~s>~a</a> ne contrôle pas l’URI de "
"redirection publiée.</p>"
-#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:369
-#: src/scm/webid-oidc/server/endpoint/resource-server.scm:181
+#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:371
+#: src/scm/webid-oidc/server/endpoint/resource-server.scm:184
msgid "reason-phrase|Found"
msgstr "Trouvé"
-#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:391
+#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:393
msgid "Redirecting..."
msgstr "Redirection..."
-#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:393
+#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:395
msgid "You are being redirected."
msgstr "Vous êtes redirigé."
-#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:405
+#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:407
msgid "Authorization..."
msgstr "Autorisations…"
-#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:418
-#: src/scm/webid-oidc/server/endpoint/resource-server.scm:241
+#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:420
+#: src/scm/webid-oidc/server/endpoint/resource-server.scm:244
msgid "reason-phrase|Unsupported Media Type"
msgstr "Type de Média Non Supporté"
-#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:421
+#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:423
msgid "<p>Please use <pre>application/x-www-form-urlencoded</pre>.</p>"
msgstr "<p>Veuillez utiliser <pre>application/x-www-form-urlencoded</pre>.</p>"
-#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:431
+#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:433
msgid "<p>Expected an UTF-8 request body.</p>"
msgstr "<p>J’attends un corps de requête UTF-8.</p>"
-#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:439
-#: src/scm/webid-oidc/server/endpoint/resource-server.scm:215
+#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:441
+#: src/scm/webid-oidc/server/endpoint/resource-server.scm:218
msgid "reason-phrase|Method Not Allowed"
msgstr "Méthode Non Autorisée"
-#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:442
+#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:444
msgid "<p>This is a token endpoint, please use <pre>POST</pre>.</p>"
msgstr ""
"<p>Ceci est un terminal de jeton, veuillez utiliser <pre>POST</pre>.</p>"
-#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:462
+#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:464
msgid "<p>No DPoP proof has been found in your request.</p>"
msgstr "<p>Aucune preuve DPoP n’a été trouvée dans votre requête.</p>"
-#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:471
+#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:473
msgid "<p>The DPoP proof is invalid.</p>"
msgstr "<p>La preuve DPoP est invalide.</p>"
-#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:485
+#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:487
msgid "<p>The <pre>grant_type</pre> parameter has not been found.</p>"
msgstr "<p>Le paramètre <pre>grant_type</pre> n’a pas été trouvé.</p>"
-#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:498
+#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:500
msgid "<p>Could not find an authorization code.</p>"
msgstr "<p>Je n’ai pas pu trouver de code d’autorisation.</p>"
-#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:507
+#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:509
msgid "<p>The authorization code is invalid.</p>"
msgstr "<p>Le code d’autorisation est invalide.</p>"
-#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:519
+#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:521
msgid "reason-phrase|Bad Requeset"
msgstr "Requête Invalide"
-#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:522
+#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:524
msgid "<p>Could not find a refresh token.</p>"
msgstr "<p>Impossible de trouver un jeton de rafraîchissement.</p>"
-#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:528
-#: src/scm/webid-oidc/server/endpoint/resource-server.scm:201
+#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:530
+#: src/scm/webid-oidc/server/endpoint/resource-server.scm:204
msgid "reason-phrase|Forbidden"
msgstr "Interdit"
-#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:531
+#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:533
msgid "<p>The refresh token is invalid or has been revoked.</p>"
msgstr "<p>Le jeton de rafraîchissement est invalide ou a expiré.</p>"
-#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:542
+#: src/scm/webid-oidc/server/endpoint/identity-provider.scm:544
#, scheme-format
msgid "<p>Cannot process your grant type, ~a.</p>"
msgstr "<p>Impossible de traiter votre type d’offre, ~a.</p>"
-#: src/scm/webid-oidc/server/endpoint/resource-server.scm:76
+#: src/scm/webid-oidc/server/endpoint/resource-server.scm:79
msgid "#:server-name must be an URI or a string encoding an URI"
msgstr ""
"#:server-name doit être une URI ou une chaîne de caractères encodant une URI"
-#: src/scm/webid-oidc/server/endpoint/resource-server.scm:86
+#: src/scm/webid-oidc/server/endpoint/resource-server.scm:89
msgid "#:owner must be an URI or a string encoding an URI"
msgstr "#:owner doit être une URI ou une chaîne encodant une URI"
-#: src/scm/webid-oidc/server/endpoint/resource-server.scm:94
+#: src/scm/webid-oidc/server/endpoint/resource-server.scm:97
msgid "#:data-home must be a string, or a thunk (returning a string)"
msgstr ""
"#:data-home doit être une chaîne de caractères, ou un thunk (retournant une "
"chaîne)"
-#: src/scm/webid-oidc/server/endpoint/resource-server.scm:127
-#: src/scm/webid-oidc/server/endpoint/resource-server.scm:250
+#: src/scm/webid-oidc/server/endpoint/resource-server.scm:130
+#: src/scm/webid-oidc/server/endpoint/resource-server.scm:253
msgid "reason-phrase|Precondition Failed"
msgstr "Échec de Précondition"
-#: src/scm/webid-oidc/server/endpoint/resource-server.scm:130
+#: src/scm/webid-oidc/server/endpoint/resource-server.scm:133
msgid "<p>The resource has been updated.</p>"
msgstr "<p>La ressource a été mise à jour.</p>"
-#: src/scm/webid-oidc/server/endpoint/resource-server.scm:170
+#: src/scm/webid-oidc/server/endpoint/resource-server.scm:173
#, scheme-format
msgid "~a: ignoring a group that cannot be fetched: ~a\n"
msgstr "~a : j’ignore un groupe qui n’a pas pu être téléchargé : ~a\n"
-#: src/scm/webid-oidc/server/endpoint/resource-server.scm:174
+#: src/scm/webid-oidc/server/endpoint/resource-server.scm:177
#, scheme-format
msgid "~a: ignoring a group that cannot be fetched\n"
msgstr "~a : j’ignore un groupe qui ne peut pas être téléchargé\n"
-#: src/scm/webid-oidc/server/endpoint/resource-server.scm:204
+#: src/scm/webid-oidc/server/endpoint/resource-server.scm:207
msgid ""
"<p>You are authentified, but you are not authorized to access this resource."
"</p>"
msgstr ""
"<p>Vous êtes authentifié, mais pas autorisé à accéder à cette ressource.</p>"
-#: src/scm/webid-oidc/server/endpoint/resource-server.scm:218
+#: src/scm/webid-oidc/server/endpoint/resource-server.scm:221
msgid "<p>The storage root cannot be deleted.</p>"
msgstr "<p>La racine du stockage ne peut pas être détruite.</p>"
-#: src/scm/webid-oidc/server/endpoint/resource-server.scm:226
+#: src/scm/webid-oidc/server/endpoint/resource-server.scm:229
msgid "reason-phrase|Conflict"
msgstr "Conflit"
-#: src/scm/webid-oidc/server/endpoint/resource-server.scm:231
+#: src/scm/webid-oidc/server/endpoint/resource-server.scm:234
msgid "<p>You need to empty the container first before deleting it.</p>"
msgstr "<p>Vous devez vider le conteneur avant de le détruire.</p>"
-#: src/scm/webid-oidc/server/endpoint/resource-server.scm:233
+#: src/scm/webid-oidc/server/endpoint/resource-server.scm:236
msgid ""
"<p>To change which resources are contained within this container, please use "
"HTTP POST, PUT or DELETE.</p>"
@@ -2111,34 +2111,34 @@ msgstr ""
"<p>Pour changer les ressources contenue dans ce conteneur, veuillez utiliser "
"les méthodes HTTP POST, PUT ou DELETE.</p>"
-#: src/scm/webid-oidc/server/endpoint/resource-server.scm:235
+#: src/scm/webid-oidc/server/endpoint/resource-server.scm:238
msgid "<p>The target resource is an auxiliary resource.</p>"
msgstr "<p>La ressource cible est une ressource auxiliaire.</p>"
-#: src/scm/webid-oidc/server/endpoint/resource-server.scm:244
+#: src/scm/webid-oidc/server/endpoint/resource-server.scm:247
msgid "<p>You cannot use this content type.</p>"
msgstr "<p>Vous ne pouvez pas utiliser ce type de contenu.</p>"
-#: src/scm/webid-oidc/server/endpoint/resource-server.scm:253
+#: src/scm/webid-oidc/server/endpoint/resource-server.scm:256
msgid "<p>The resource is not in the state you expected.</p>"
msgstr "<p>La ressource n’est pas dans l’état auquel vous vous attendez.</p>"
-#: src/scm/webid-oidc/server/endpoint/resource-server.scm:259
+#: src/scm/webid-oidc/server/endpoint/resource-server.scm:262
msgid "reason-phrase|Not Acceptable"
msgstr "Inacceptable"
-#: src/scm/webid-oidc/server/endpoint/resource-server.scm:262
+#: src/scm/webid-oidc/server/endpoint/resource-server.scm:265
msgid "<p>I cannot serve the resource with a content-type you want.</p>"
msgstr ""
"<p>Je ne peux pas servir de ressource avec le type de contenu que vous "
"voulez.</p>"
-#: src/scm/webid-oidc/server/endpoint/resource-server.scm:314
-#: src/scm/webid-oidc/server/endpoint/resource-server.scm:340
+#: src/scm/webid-oidc/server/endpoint/resource-server.scm:317
+#: src/scm/webid-oidc/server/endpoint/resource-server.scm:343
msgid "<p>Please include a request body.</p>"
msgstr "<p>Veuillez inclure un corps de requête.</p>"
-#: src/scm/webid-oidc/server/endpoint/resource-server.scm:350
+#: src/scm/webid-oidc/server/endpoint/resource-server.scm:353
msgid "reason-phrase|Created"
msgstr "Créé"
diff --git a/src/client/Makefile.am b/src/client/Makefile.am
index f447adf..60035de 100644
--- a/src/client/Makefile.am
+++ b/src/client/Makefile.am
@@ -40,18 +40,22 @@ EXTRA_DIST += %reldir%/Disfluid-0.metadata %reldir%/disfluid-0-custom.vala
CLEANFILES += %reldir%/vapi-generation
-%reldir%/Disfluid-0.gir: %reldir%/Disfluid-0.h
+AM_VALAFLAGS += \
+ --vapidir=$(abs_top_srcdir)/%reldir% \
+ --pkg=disfluid-0
+
+$(srcdir)/%reldir%/Disfluid-0.gir: %reldir%/Disfluid-0.h
$(AM_V_GEN) $(G_IR_SCANNER) -n Disfluid --nsversion=0 --header-only --warn-all -o $@-t $<
- @mv $@-t $(srcdir)/$@
+ @mv $@-t $@
-%reldir%/Disfluid-0.typelib: %reldir%/Disfluid-0.gir
- $(AM_V_GEN) $(G_IR_COMPILER) -o $@-t --shared-library=libwebidoidc $(srcdir)/$<
- @mv $@-t $(srcdir)/$@
+$(srcdir)/%reldir%/Disfluid-0.typelib: %reldir%/Disfluid-0.gir
+ $(AM_V_GEN) $(G_IR_COMPILER) -o $@-t --shared-library=libwebidoidc $<
+ @mv $@-t $@
-%reldir%/disfluid-0.vapi: %reldir%/Disfluid-0.gir %reldir%/Disfluid-0.metadata %reldir%/disfluid-0-custom.vala
+$(srcdir)/%reldir%/disfluid-0.vapi: %reldir%/Disfluid-0.gir %reldir%/Disfluid-0.metadata %reldir%/disfluid-0-custom.vala
@rm -rf %reldir%/vapi-generation
@mkdir %reldir%/vapi-generation
- $(AM_V_GEN) $(VAPIGEN) --library disfluid-0 -d %reldir%/vapi-generation $(srcdir)/$< --metadatadir=$(srcdir)/%reldir% $(srcdir)/%reldir%/disfluid-0-custom.vala
+ $(AM_V_GEN) $(VAPIGEN) --library disfluid-0 -d %reldir%/vapi-generation $< --metadatadir=$(srcdir)/%reldir% $(srcdir)/%reldir%/disfluid-0-custom.vala
@mv %reldir%/vapi-generation/disfluid-0.vapi $@-t
@rmdir %reldir%/vapi-generation
- @mv $@-t $(srcdir)/$@
+ @mv $@-t $@
diff --git a/src/client/libwebidoidc-client.c b/src/client/libwebidoidc-client.c
index 46deecc..4937135 100644
--- a/src/client/libwebidoidc-client.c
+++ b/src/client/libwebidoidc-client.c
@@ -22,8 +22,8 @@ struct DisfluidApi
{
SCM scm_make_client;
SCM scm_get_client_id;
- SCM scm_get_key_pair;
- SCM scm_get_redirect_uri;
+ SCM scm_get_client_jwk;
+ SCM scm_get_client_redirect_uri;
SCM scm_make_account_full;
SCM scm_get_account_subject;
SCM scm_get_account_issuer;
@@ -49,10 +49,11 @@ inner_guile (void *data)
scm_c_public_ref ("webid-oidc client reverse-stubs", "make-client");
api.scm_get_client_id =
scm_c_public_ref ("webid-oidc client reverse-stubs", "get-client-id");
- api.scm_get_key_pair =
- scm_c_public_ref ("webid-oidc client reverse-stubs", "get-key-pair");
- api.scm_get_redirect_uri =
- scm_c_public_ref ("webid-oidc client reverse-stubs", "get-redirect-uri");
+ api.scm_get_client_jwk =
+ scm_c_public_ref ("webid-oidc client reverse-stubs", "get-client-jwk");
+ api.scm_get_client_redirect_uri =
+ scm_c_public_ref ("webid-oidc client reverse-stubs",
+ "get-client-redirect-uri");
api.scm_make_account_full =
scm_c_public_ref ("webid-oidc client reverse-stubs", "make-account-full");
api.scm_get_account_subject =
@@ -167,7 +168,7 @@ disfluid_client_get_key_pair (const struct DisfluidClient *client,
const struct DisfluidApi *api,
size_t start, size_t max, char *jwk)
{
- SCM scm_jwk = scm_call_1 (api->scm_get_key_pair, client->object);
+ SCM scm_jwk = scm_call_1 (api->scm_get_client_jwk, client->object);
return copy_scm_string (scm_jwk, start, max, jwk);
}
@@ -177,7 +178,7 @@ disfluid_client_get_redirect_uri (const struct DisfluidClient *client,
size_t start, size_t max,
char *redirect_uri)
{
- SCM scm_uri = scm_call_1 (api->scm_get_redirect_uri, client->object);
+ SCM scm_uri = scm_call_1 (api->scm_get_client_redirect_uri, client->object);
return copy_scm_string (scm_uri, start, max, redirect_uri);
}
diff --git a/src/scm/webid-oidc/client/reverse-stubs.scm b/src/scm/webid-oidc/client/reverse-stubs.scm
index 5a68525..641ee84 100644
--- a/src/scm/webid-oidc/client/reverse-stubs.scm
+++ b/src/scm/webid-oidc/client/reverse-stubs.scm
@@ -56,10 +56,10 @@
(define (get-client-id client)
(uri->string (client-id client)))
-(define (get-key-pair client)
+(define (get-client-jwk client)
(stubs:scm->json-string (key->jwk (key-pair client))))
-(define (get-redirect-uri client)
+(define (get-client-redirect-uri client)
(uri->string (redirect-uri client)))
(define (make-account-full subject issuer key-pair id-token-header id-token access-token refresh-token)
diff --git a/src/ui/Makefile.am b/src/ui/Makefile.am
index 0d04326..94e96d2 100644
--- a/src/ui/Makefile.am
+++ b/src/ui/Makefile.am
@@ -27,3 +27,19 @@ dist_uipkgdata_DATA = \
%reldir%/loading-page.glade \
%reldir%/new-page.glade \
%reldir%/updated-page.glade
+
+libexec_PROGRAMS += %reldir%/disfluid-gui
+
+%canon_reldir%_disfluid_gui_SOURCES = \
+ %reldir%/main.vala
+
+%canon_reldir%_disfluid_gui_CFLAGS = \
+ $(AM_CFLAGS) \
+ $(GLIB_CFLAGS) \
+ $(GOBJECT_CFLAGS) \
+ -include config.h
+
+%canon_reldir%_disfluid_gui_LDADD = \
+ $(GLIB_LIBS) \
+ $(GOBJECT_LIBS) \
+ $(lib_LTLIBRARIES)
diff --git a/src/ui/main.vala b/src/ui/main.vala
new file mode 100644
index 0000000..e15710d
--- /dev/null
+++ b/src/ui/main.vala
@@ -0,0 +1,31 @@
+// disfluid, implementation of the Solid specification
+// Copyright (C) 2021 Vivien Kraus
+
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see <https://www.gnu.org/licenses/>.
+
+namespace Disfluid {
+ class Main: GLib.Object {
+ public static int main (string[] args) {
+ int return_code = 1;
+ Disfluid.Api.init ((api) => {
+ foreach (var arg in args) {
+ stdout.printf ("%s\n", arg);
+ }
+ return_code = 0;
+ return null;
+ });
+ return return_code;
+ }
+ }
+} \ No newline at end of file
diff --git a/vapigen/Makefile.am b/vapigen/Makefile.am
new file mode 100644
index 0000000..f2abec3
--- /dev/null
+++ b/vapigen/Makefile.am
@@ -0,0 +1,22 @@
+# disfluid, implementation of the Solid specification
+# Copyright (C) 2021 Vivien Kraus
+
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see <https://www.gnu.org/licenses/>.
+
+.PHONY: update-vapi
+
+update-vapi:
+ $(MAKE) $(AM_MAKEFLAGS) -C .. src/client/disfluid-0.vapi
+
+all: update-vapi