From 25b15995e76001ed81049fdb3f1e1178e2e350ef Mon Sep 17 00:00:00 2001 From: Yusef Aslam Date: Fri, 4 Jul 2025 10:37:21 +0100 Subject: [PATCH 01/11] .github: jekyll.yml: edit workflow to build and deploy from subdirectory --- .github/workflows/jekyll.yml | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/.github/workflows/jekyll.yml b/.github/workflows/jekyll.yml index 062315869..af5448869 100644 --- a/.github/workflows/jekyll.yml +++ b/.github/workflows/jekyll.yml @@ -43,19 +43,26 @@ jobs: - name: Setup Pages id: pages uses: actions/configure-pages@v5 + - name: Setup Jekyll + run: bundle install + working-directory: ./website - name: Build with Jekyll # Outputs to the './_site' directory by default - run: bundle exec jekyll build --baseurl "${{ steps.pages.outputs.base_path }}" + run: bundle exec jekyll build --baseurl "/website" + working-directory: ./website env: JEKYLL_ENV: production - name: Upload artifact # Automatically uploads an artifact from the './_site' directory by default uses: actions/upload-pages-artifact@v3 + with: + name: github-pages + path: "./website/_site" # Deployment job deploy: environment: - name: github-pages + name: xlibre_website url: ${{ steps.deployment.outputs.page_url }} runs-on: ubuntu-latest needs: build From 2021f04fda52900319155e69f2efc55214e6a6af Mon Sep 17 00:00:00 2001 From: Yusef Aslam Date: Fri, 4 Jul 2025 10:38:06 +0100 Subject: [PATCH 02/11] website: _config.yml: change baseurl --- website/_config.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/website/_config.yml b/website/_config.yml index 2f82186c1..288bf2c47 100644 --- a/website/_config.yml +++ b/website/_config.yml @@ -26,6 +26,7 @@ description: >- # this means to ignore newlines until "baseurl:" baseurl: "/xlibre/website" # the subpath of your site, e.g. /blog url: "https://xgui4.github.io" # the base hostname & protocol for your site, e.g. http://example.com github_username: xgui4 +baseurl: "/xlibre" # the subpath of your site, e.g. /blog # Build settings #plugins: From d289626aff93f68ed05d0110617fa0698445a959 Mon Sep 17 00:00:00 2001 From: Yusef Aslam Date: Fri, 4 Jul 2025 10:38:15 +0100 Subject: [PATCH 03/11] website: _data: navigation.yml: modify links to match baseurl --- website/_data/navigation.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/website/_data/navigation.yml b/website/_data/navigation.yml index 88d54ab6f..1d0698878 100644 --- a/website/_data/navigation.yml +++ b/website/_data/navigation.yml @@ -1,16 +1,16 @@ - name: Home page: / - link: /x11libre-website/ - link: /x11libre-website/index.html + link: /xlibre/ + link: /xlibre/index.html - name: About page: /about.html - link: /x11libre-website/about.html + link: /xlibre/about.html - name: Download page: /download.html - link: /x11libre-website/download.html + link: /xlibre/download.html - name: FAQ & Privacy page: /faq.html - link: /x11libre-website/faq.html + link: /xlibre/faq.html - name: Wiki page: /wiki.html - link: /x11libre-website/wiki.html + link: /xlibre/wiki.html From 03cecec7e7288472ea46900713d0a286a2adeda4 Mon Sep 17 00:00:00 2001 From: Yusef Aslam Date: Fri, 4 Jul 2025 10:40:27 +0100 Subject: [PATCH 04/11] website: _config.yml: change baseurl --- website/_config.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/website/_config.yml b/website/_config.yml index 288bf2c47..d08c0ffa5 100644 --- a/website/_config.yml +++ b/website/_config.yml @@ -23,10 +23,9 @@ title: X11Libre description: >- # this means to ignore newlines until "baseurl:" This is the website for the X11Libre project which is an open-source initiative focused on providing a modern, libre implementation of the X11 protocol and related tools. -baseurl: "/xlibre/website" # the subpath of your site, e.g. /blog +baseurl: "/xlibre" # the subpath of your site, e.g. /blog url: "https://xgui4.github.io" # the base hostname & protocol for your site, e.g. http://example.com github_username: xgui4 -baseurl: "/xlibre" # the subpath of your site, e.g. /blog # Build settings #plugins: From 74d5b7bb0558a3a2ab14a3570d17b2ea1e91949d Mon Sep 17 00:00:00 2001 From: "Enrico Weigelt, metux IT consult" Date: Fri, 4 Jul 2025 15:04:51 +0200 Subject: [PATCH 05/11] xquartz: drop unused field declarations in request handlers Silence compiler warning on unused fields, eg.: > ../hw/xquartz/applewm.c:692:5: warning: unused variable 'stuff' [-Wunused-variable] > REQUEST(xAppleWMQueryVersionReq); > ^ > ../include/dix.h:65:12: note: expanded from macro 'REQUEST' > type * stuff = (type *)client->requestBuffer; > ^ Signed-off-by: Enrico Weigelt, metux IT consult --- hw/xquartz/applewm.c | 1 - hw/xquartz/xpr/appledri.c | 1 - 2 files changed, 2 deletions(-) diff --git a/hw/xquartz/applewm.c b/hw/xquartz/applewm.c index 41ae6f280..096f7fc7b 100644 --- a/hw/xquartz/applewm.c +++ b/hw/xquartz/applewm.c @@ -690,7 +690,6 @@ SNotifyEvent(xAppleWMNotifyEvent *from, xAppleWMNotifyEvent *to) static int SProcAppleWMQueryVersion(register ClientPtr client) { - REQUEST(xAppleWMQueryVersionReq); return ProcAppleWMQueryVersion(client); } diff --git a/hw/xquartz/xpr/appledri.c b/hw/xquartz/xpr/appledri.c index c01ee9bf7..7810df86a 100644 --- a/hw/xquartz/xpr/appledri.c +++ b/hw/xquartz/xpr/appledri.c @@ -394,7 +394,6 @@ SNotifyEvent(xAppleDRINotifyEvent *from, static int SProcAppleDRIQueryVersion(register ClientPtr client) { - REQUEST(xAppleDRIQueryVersionReq); return ProcAppleDRIQueryVersion(client); } From 93013224b4e7671fc33ce04b5b53f1ac3ca728c2 Mon Sep 17 00:00:00 2001 From: "Enrico Weigelt, metux IT consult" Date: Fri, 4 Jul 2025 15:46:50 +0200 Subject: [PATCH 06/11] xquartz: fix incomplete prototype of executable_path() > ../hw/xquartz/mach-startup/bundle_trampoline.c:53:29: warning: a function declaration without a prototype is deprecated in all versions of C [-Wstrict-prototypes] > static char *executable_path() { > ^ > void > 1 warning generated. Signed-off-by: Enrico Weigelt, metux IT consult --- hw/xquartz/mach-startup/bundle_trampoline.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/xquartz/mach-startup/bundle_trampoline.c b/hw/xquartz/mach-startup/bundle_trampoline.c index f8611269b..9c58f3ee8 100644 --- a/hw/xquartz/mach-startup/bundle_trampoline.c +++ b/hw/xquartz/mach-startup/bundle_trampoline.c @@ -50,7 +50,7 @@ * needs and simply execs the startup script which then execs the main binary. */ -static char *executable_path() { +static char *executable_path(void) { uint32_t bufsize = PATH_MAX; char *buf = calloc(1, bufsize); From 2f46a02217813034e71df8e268119e3406eda4df Mon Sep 17 00:00:00 2001 From: "Enrico Weigelt, metux IT consult" Date: Fri, 4 Jul 2025 15:31:53 +0200 Subject: [PATCH 07/11] vfb: drop unused DarwinHandleGUI() Obsolete since 17 years now, probably just forgotten to clean up. Fixes: ef1c52053755fa14b4ca98b22c506f73f5f4a4b7 Signed-off-by: Enrico Weigelt, metux IT consult --- hw/vfb/InitOutput.c | 7 ------- 1 file changed, 7 deletions(-) diff --git a/hw/vfb/InitOutput.c b/hw/vfb/InitOutput.c index cd3b2e0a8..6a7ca7c55 100644 --- a/hw/vfb/InitOutput.c +++ b/hw/vfb/InitOutput.c @@ -259,13 +259,6 @@ ddxGiveUp(enum ExitCode error) } } -#ifdef __APPLE__ -void -DarwinHandleGUI(int argc, char *argv[]) -{ -} -#endif - void OsVendorInit(void) { From c6777fe48e6ba6fe884fca27f3f20e944dc7cdd4 Mon Sep 17 00:00:00 2001 From: "Enrico Weigelt, metux IT consult" Date: Fri, 4 Jul 2025 15:33:18 +0200 Subject: [PATCH 08/11] xnest: drop unused DarwinHandleGUI() Obsolete since 17 years now, probably just forgotten to clean up. Fixes: ef1c52053755fa14b4ca98b22c506f73f5f4a4b7 Signed-off-by: Enrico Weigelt, metux IT consult --- hw/xnest/Init.c | 7 ------- 1 file changed, 7 deletions(-) diff --git a/hw/xnest/Init.c b/hw/xnest/Init.c index 8f88c1edd..1eb49b645 100644 --- a/hw/xnest/Init.c +++ b/hw/xnest/Init.c @@ -154,13 +154,6 @@ ddxGiveUp(enum ExitCode error) xnestCloseDisplay(); } -#ifdef __APPLE__ -void -DarwinHandleGUI(int argc, char *argv[]) -{ -} -#endif - void OsVendorInit(void) { From d338bf6e6860f1ae57a131454dcf4640e8064b08 Mon Sep 17 00:00:00 2001 From: "Enrico Weigelt, metux IT consult" Date: Fri, 4 Jul 2025 15:01:30 +0200 Subject: [PATCH 09/11] namespace: drop unused winIsRoot() Not used in this file, so no need to keep it around anymore. Signed-off-by: Enrico Weigelt, metux IT consult --- Xext/namespace/hook-windowproperty.c | 8 -------- 1 file changed, 8 deletions(-) diff --git a/Xext/namespace/hook-windowproperty.c b/Xext/namespace/hook-windowproperty.c index f427c634f..afd478369 100644 --- a/Xext/namespace/hook-windowproperty.c +++ b/Xext/namespace/hook-windowproperty.c @@ -11,14 +11,6 @@ #include "namespace.h" #include "hooks.h" -static inline Bool winIsRoot(WindowPtr pWin) { - if (!pWin) - return FALSE; - if (pWin->drawable.pScreen->root == pWin) - return TRUE; - return FALSE; -} - void hookWindowProperty(CallbackListPtr *pcbl, void *unused, void *calldata) { XNS_HOOK_HEAD(PropertyFilterParam); From d3fe11b63978180790a05172fe06c1353ad8a7a2 Mon Sep 17 00:00:00 2001 From: stefan11111 Date: Mon, 30 Jun 2025 13:50:11 +0300 Subject: [PATCH 10/11] kdrive: add KdOsInit Kdrive X servers used to do the OS-speciffic init part using KdOsInit. This was changed in modern Xorg because Xephyr is the only kdrive X server there, so there was no need to keep this generic. Since we want to eventually add Xfbdev, we need to add this back. Signed-off-by: stefan11111 --- hw/kdrive/src/kdrive.c | 21 +++++++++++++++++++++ hw/kdrive/src/kdrive.h | 15 +++++++++++++++ 2 files changed, 36 insertions(+) diff --git a/hw/kdrive/src/kdrive.c b/hw/kdrive/src/kdrive.c index 36bda4153..4637bb6be 100644 --- a/hw/kdrive/src/kdrive.c +++ b/hw/kdrive/src/kdrive.c @@ -91,6 +91,14 @@ const char *kdGlobalXkbLayout = NULL; const char *kdGlobalXkbVariant = NULL; const char *kdGlobalXkbOptions = NULL; + +/* + * Carry arguments from InitOutput through driver initialization + * to KdScreenInit + */ + +KdOsFuncs *kdOsFuncs = NULL; + void KdDisableScreen(ScreenPtr pScreen) { @@ -517,6 +525,19 @@ KdProcessArgument(int argc, char **argv, int i) return 0; } +void +KdOsInit(KdOsFuncs * pOsFuncs) +{ + kdOsFuncs = pOsFuncs; + if (pOsFuncs) { + if (serverGeneration == 1) { + KdDoSwitchCmd("start"); + if (pOsFuncs->Init) + (*pOsFuncs->Init) (); + } + } +} + static Bool KdAllocatePrivates(ScreenPtr pScreen) { diff --git a/hw/kdrive/src/kdrive.h b/hw/kdrive/src/kdrive.h index a4b7576d0..7ce181f42 100644 --- a/hw/kdrive/src/kdrive.h +++ b/hw/kdrive/src/kdrive.h @@ -278,6 +278,16 @@ int KdAddConfigKeyboard(char *pointer); int KdAddKeyboard(KdKeyboardInfo * ki); void KdRemoveKeyboard(KdKeyboardInfo * ki); +typedef struct _KdOsFuncs { + int (*Init) (void); /* Only called when the X server is started, when serverGeneration == 1 */ + void (*Enable) (void); + Bool (*SpecialKey) (KeySym); + void (*Disable) (void); + void (*Fini) (void); + void (*pollEvents) (void); + void (*Bell) (int, int, int); +} KdOsFuncs; + typedef struct _KdPointerMatrix { int matrix[2][3]; } KdPointerMatrix; @@ -289,6 +299,8 @@ extern DevPrivateKeyRec kdScreenPrivateKeyRec; extern Bool kdEmulateMiddleButton; extern Bool kdDisableZaphod; +extern KdOsFuncs *kdOsFuncs; + #define KdGetScreenPriv(pScreen) ((KdPrivScreenPtr) \ dixLookupPrivate(&(pScreen)->devPrivates, kdScreenPrivateKey)) #define KdSetScreenPriv(pScreen,v) \ @@ -345,6 +357,9 @@ void int KdProcessArgument(int argc, char **argv, int i); +void + KdOsInit(KdOsFuncs * pOsFuncs); + void KdOsAddInputDrivers(void); From e98bd7cde2c1d7361ff88a2c480eca2a33036e2d Mon Sep 17 00:00:00 2001 From: stefan11111 Date: Mon, 30 Jun 2025 14:16:23 +0300 Subject: [PATCH 11/11] kdrive: ephyr: initialize OS specific callback vectors These will be used by subsequent commits for generic Kdrive functions calling back into the OS specific parts Signed-off-by: stefan11111 --- hw/kdrive/ephyr/ephyrinit.c | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/hw/kdrive/ephyr/ephyrinit.c b/hw/kdrive/ephyr/ephyrinit.c index fd5e73f82..f65cef052 100644 --- a/hw/kdrive/ephyr/ephyrinit.c +++ b/hw/kdrive/ephyr/ephyrinit.c @@ -370,6 +370,23 @@ ddxProcessArgument(int argc, char **argv, int i) return KdProcessArgument(argc, argv, i); } +static int +EphyrInit(void) +{ + /* + * make sure at least one screen + * has been added to the system. + */ + if (!KdCardInfoLast()) { + processScreenArg("640x480", NULL); + } + return hostx_init(); +} + +KdOsFuncs EphyrOsFuncs = { + .Init = EphyrInit, +}; + void OsVendorInit(void) { @@ -381,12 +398,7 @@ OsVendorInit(void) if (hostx_want_host_cursor()) ephyrFuncs.initCursor = &ephyrCursorInit; - if (serverGeneration == 1) { - if (!KdCardInfoLast()) { - processScreenArg("640x480", NULL); - } - hostx_init(); - } + KdOsInit(&EphyrOsFuncs); } KdCardFuncs ephyrFuncs = {