[PATCH] gnu: Add durden.

  • Done
  • quality assurance status badge
Details
3 participants
  • Ahmad Draidi
  • Liliana Marie Prikler
  • Ludovic Courtès
Owner
unassigned
Submitted by
Ahmad Draidi
Severity
normal
A
A
Ahmad Draidi wrote on 29 Jun 2023 12:21
(address . guix-patches@gnu.org)(name . Ahmad Draidi)(address . a.r.draidi@redscript.org)
3136090a794cd91a2500d3979236bfc3701f17d9.1688034098.git.a.r.draidi@redscript.org
* gnu/packages/arcan.scm (durden): New variable.
---
gnu/packages/arcan.scm | 37 +++++++++++++++++++++++++++++++++++++
1 file changed, 37 insertions(+)

Toggle diff (64 lines)
diff --git a/gnu/packages/arcan.scm b/gnu/packages/arcan.scm
index 7483777ff0..cf85fc95ef 100644
--- a/gnu/packages/arcan.scm
+++ b/gnu/packages/arcan.scm
@@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2019 L p R n d n <guix@lprndn.info>
;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
+;;; Copyright © 2023 Ahmad Draidi <a.r.draidi@redscript.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -19,7 +20,9 @@
(define-module (gnu packages arcan)
#:use-module (guix build-system cmake)
+ #:use-module (guix build-system copy)
#:use-module (guix build-system gnu)
+ #:use-module (guix gexp)
#:use-module (guix git-download)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
@@ -272,3 +275,37 @@ (define-public arcan-wayland
with an Arcan connection point. It allows Wayland compatible clients
to connect and render using Arcan.")
(license license:bsd-3)))
+
+(define-public durden
+ (package
+ (name "durden")
+ (version "0.6.1")
+ (source (origin
+ (method git-fetch)
+ (file-name (git-file-name name version))
+ (uri (git-reference
+ (url "https://github.com/letoram/durden")
+ (commit version)))
+ (sha256
+ (base32
+ "03ry8ypsvpjydb9s4c28y3iffz9375pfgwq9q9y68hmj4d89bjvz"))))
+ (build-system copy-build-system)
+ (arguments
+ (list #:install-plan #~'(("durden/" "share/arcan/appl/durden/")
+ ("distr/durden" "bin/durden"))
+ #:phases #~(modify-phases %standard-phases
+ (add-after 'unpack 'patch-paths
+ (lambda* (#:key outputs #:allow-other-keys)
+ (substitute* "distr/durden"
+ (("/usr/share/\\$applname")
+ (string-append (assoc-ref outputs "out")
+ "/share/arcan/appl"))))))))
+ (home-page "https://durden.arcan-fe.com/")
+ (synopsis "Desktop Environment for Arcan")
+ (description
+ "Durden is a desktop environment for the Arcan Display Server.
+It serves both as a reference showcase on how to take advantage of some of the
+features in Arcan, and as an entry to the advanced-user side of the desktop
+environment spectrum.")
+ (license (list license:bsd-3 license:expat license:cc-by3.0
+ license:cc-by4.0 license:asl2.0))))

base-commit: ac86174e22fcd762893bd4515786b1376af9397b
--
2.40.1
A
A
Ahmad Draidi wrote on 9 Dec 2023 18:01
[PATCH v2] gnu: Add durden.
(address . 64348@debbugs.gnu.org)(name . Ahmad Draidi)(address . a.r.draidi@redscript.org)
4c9840333f6e8f3f44448d55b095771f458129ee.1702141296.git.a.r.draidi@redscript.org
* gnu/packages/arcan.scm (durden): New variable.

Change-Id: I489409e161d20d1170923664aee01c4229f7a6f5
---
v2 changes: Rebase to fix conflicts

gnu/packages/arcan.scm | 36 ++++++++++++++++++++++++++++++++++++
1 file changed, 36 insertions(+)

Toggle diff (58 lines)
diff --git a/gnu/packages/arcan.scm b/gnu/packages/arcan.scm
index 4ca76edbec..3f8fc7c219 100644
--- a/gnu/packages/arcan.scm
+++ b/gnu/packages/arcan.scm
@@ -20,6 +20,7 @@
(define-module (gnu packages arcan)
#:use-module (guix build-system cmake)
+ #:use-module (guix build-system copy)
#:use-module (guix build-system meson)
#:use-module (guix build-system gnu)
#:use-module (guix gexp)
@@ -183,6 +184,41 @@ (define-public arcan-sdl
"-DSTATIC_FREETYPE=off" "-DSHMIF_TUI_ACCEL=on")))))
(synopsis "Combined display server, multimedia framework and game engine (SDL)")))
+(define-public durden
+ (package
+ (name "durden")
+ (version "0.6.1")
+ (source
+ (origin
+ (method git-fetch)
+ (file-name (git-file-name name version))
+ (uri (git-reference
+ (url "https://github.com/letoram/durden")
+ (commit version)))
+ (sha256
+ (base32 "03ry8ypsvpjydb9s4c28y3iffz9375pfgwq9q9y68hmj4d89bjvz"))))
+ (build-system copy-build-system)
+ (arguments
+ (list
+ #:install-plan #~'(("durden/" "share/arcan/appl/durden/")
+ ("distr/durden" "bin/durden"))
+ #:phases #~(modify-phases %standard-phases
+ (add-after 'unpack 'patch-paths
+ (lambda* (#:key outputs #:allow-other-keys)
+ (substitute* "distr/durden"
+ (("/usr/share/\\$applname")
+ (string-append (assoc-ref outputs "out")
+ "/share/arcan/appl"))))))))
+ (home-page "https://durden.arcan-fe.com/")
+ (synopsis "Desktop Environment for Arcan")
+ (description
+ "Durden is a desktop environment for the Arcan Display Server.
+It serves both as a reference showcase on how to take advantage of some of the
+features in Arcan, and as an entry to the advanced-user side of the desktop
+environment spectrum.")
+ (license (list license:bsd-3 license:expat license:cc-by3.0
+ license:cc-by4.0 license:asl2.0))))
+
(define-public xarcan
(package
(name "xarcan")

base-commit: 61f2d84e75c340c2ba528d392f522c51b8843f34
--
2.41.0
A
A
Ahmad Draidi wrote on 1 Jan 07:36 +0100
[PATCH v3] gnu: Add durden.
(address . 64348@debbugs.gnu.org)(name . Ahmad Draidi)(address . a.r.draidi@redscript.org)
327a8de76ef6d95f5627f648bbfbe3877d29457f.1704090914.git.a.r.draidi@redscript.org
* gnu/packages/arcan.scm (durden): New variable.

Change-Id: I3ea34563c74c227eed40f4ad50d23713c45ce70b
---
v2 changes: Rebase to fix conflicts
v3 changes: Update to commit matching Arcan 0.6.3 (68016)

gnu/packages/arcan.scm | 40 ++++++++++++++++++++++++++++++++++++++++
1 file changed, 40 insertions(+)

Toggle diff (62 lines)
diff --git a/gnu/packages/arcan.scm b/gnu/packages/arcan.scm
index 4ca76edbec..9a575e98d4 100644
--- a/gnu/packages/arcan.scm
+++ b/gnu/packages/arcan.scm
@@ -20,6 +20,7 @@
(define-module (gnu packages arcan)
#:use-module (guix build-system cmake)
+ #:use-module (guix build-system copy)
#:use-module (guix build-system meson)
#:use-module (guix build-system gnu)
#:use-module (guix gexp)
@@ -183,6 +184,45 @@ (define-public arcan-sdl
"-DSTATIC_FREETYPE=off" "-DSHMIF_TUI_ACCEL=on")))))
(synopsis "Combined display server, multimedia framework and game engine (SDL)")))
+(define-public durden
+ ;; Match Arcan 0.6.3
+ (let ((commit "a8938b9c835f55bedc2c42aec4ddc5c9739eb949")
+ (revision "1"))
+ (package
+ (name "durden")
+ (version (git-version "0.6.1" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (file-name (git-file-name name version))
+ (uri (git-reference
+ (url "https://github.com/letoram/durden")
+ (commit commit)))
+ (sha256
+ (base32 "1ybi6x2kwn597kjqycrqmlvp6z79yv2jfwzgx937wcckm55xlpvk"))))
+ (build-system copy-build-system)
+ (arguments
+ (list
+ #:install-plan #~'(("durden/" "share/arcan/appl/durden/")
+ ("util/" "share/arcan/appl/durden/util/")
+ ("distr/durden" "bin/durden"))
+ #:phases #~(modify-phases %standard-phases
+ (add-after 'unpack 'patch-paths
+ (lambda* (#:key outputs #:allow-other-keys)
+ (substitute* "distr/durden"
+ (("/usr/share/\\$applname")
+ (string-append (assoc-ref outputs "out")
+ "/share/arcan/appl"))))))))
+ (home-page "https://durden.arcan-fe.com/")
+ (synopsis "Desktop Environment for Arcan")
+ (description
+ "Durden is a desktop environment for the Arcan Display Server.
+It serves both as a reference showcase on how to take advantage of some of the
+features in Arcan, and as an entry to the advanced-user side of the desktop
+environment spectrum.")
+ (license (list license:bsd-3 license:expat license:cc-by3.0
+ license:cc-by4.0 license:asl2.0)))))
+
(define-public xarcan
(package
(name "xarcan")

base-commit: 86b5fa100992527c434616482ba9cfd92b636d12
--
2.41.0
L
L
Liliana Marie Prikler wrote on 30 Mar 09:12 +0100
5e3e85482e05e549f8ca592a5f6b0768e3c9b8c0.camel@gmail.com
Am Montag, dem 01.01.2024 um 10:36 +0400 schrieb Ahmad Draidi:
Toggle quote (59 lines)
> * gnu/packages/arcan.scm (durden): New variable.
>
> Change-Id: I3ea34563c74c227eed40f4ad50d23713c45ce70b
> ---
> v2 changes: Rebase to fix conflicts
> v3 changes: Update to commit matching Arcan 0.6.3 (68016)
>
>  gnu/packages/arcan.scm | 40 ++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 40 insertions(+)
>
> diff --git a/gnu/packages/arcan.scm b/gnu/packages/arcan.scm
> index 4ca76edbec..9a575e98d4 100644
> --- a/gnu/packages/arcan.scm
> +++ b/gnu/packages/arcan.scm
> @@ -20,6 +20,7 @@
>  
>  (define-module (gnu packages arcan)
>    #:use-module (guix build-system cmake)
> +  #:use-module (guix build-system copy)
>    #:use-module (guix build-system meson)
>    #:use-module (guix build-system gnu)
>    #:use-module (guix gexp)
> @@ -183,6 +184,45 @@ (define-public arcan-sdl
>                "-DSTATIC_FREETYPE=off" "-DSHMIF_TUI_ACCEL=on")))))
>      (synopsis "Combined display server, multimedia framework and
> game engine (SDL)")))
>  
> +(define-public durden
> +  ;; Match Arcan 0.6.3
> +  (let ((commit "a8938b9c835f55bedc2c42aec4ddc5c9739eb949")
> +        (revision "1"))
> +    (package
> +      (name "durden")
> +      (version (git-version "0.6.1" revision commit))
> +      (source
> +       (origin
> +         (method git-fetch)
> +         (file-name (git-file-name name version))
> +         (uri (git-reference
> +               (url "https://github.com/letoram/durden")
> +               (commit commit)))
> +         (sha256
> +          (base32
> "1ybi6x2kwn597kjqycrqmlvp6z79yv2jfwzgx937wcckm55xlpvk"))))
> +      (build-system copy-build-system)
> +      (arguments
> +       (list
> +        #:install-plan #~'(("durden/" "share/arcan/appl/durden/")
> +                           ("util/" "share/arcan/appl/durden/util/")
> +                           ("distr/durden" "bin/durden"))
> +        #:phases #~(modify-phases %standard-phases
> +                     (add-after 'unpack 'patch-paths
> +                       (lambda* (#:key outputs #:allow-other-keys)
> +                         (substitute* "distr/durden"
> +                           (("/usr/share/\\$applname")
> +                            (string-append (assoc-ref outputs "out")
> +                                          
> "/share/arcan/appl"))))))))
> +      (home-page "https://durden.arcan-fe.com/")
I think there might be some commands like arcan and date (from
coreutils) which you might have to hard-code to comply with Guix
packaging practices. If you want to allow the user environment to
shadow them, you could make use of the following shell snippet:

if [ -n "$(command -v THE_COMMAND 2>/dev/null)" ]; then
THE_COMMAND="THE_COMMAND"
else
THE_COMMAND="@THE_COMMAND_STORE_PATH@"
fi

and then refer to THE_COMMAND via "${THE_COMMAND}" elsewhere.

Cheers
A
A
Ahmad Draidi wrote on 9 Apr 13:20 +0200
[PATCH v4] gnu: Add durden.
(address . 64348@debbugs.gnu.org)
682006543f08e606b9d774d75d0b29205b610d7e.1712661600.git.a.r.draidi@redscript.org
* gnu/packages/arcan.scm (durden): New variable.

Change-Id: I3ea34563c74c227eed40f4ad50d23713c45ce70b
---
Hello Liliana,

Thanks for the review.

I believe I got all of them. Coreutils are a sneaky bunch :)

Thanks!

v2 changes: Rebase to fix conflicts
v3 changes: Update to commit matching Arcan 0.6.3 (68016)
v4 changes: Hard-code coreutils and arcan paths in "durden" shell script

gnu/packages/arcan.scm | 72 +++++++++++++++++++++++++++++++++++++++++-
1 file changed, 71 insertions(+), 1 deletion(-)

Toggle diff (108 lines)
diff --git a/gnu/packages/arcan.scm b/gnu/packages/arcan.scm
index c4dfa8da3e..9d68005175 100644
--- a/gnu/packages/arcan.scm
+++ b/gnu/packages/arcan.scm
@@ -1,7 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2019 L p R n d n <guix@lprndn.info>
;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
-;;; Copyright © 2023 Ahmad Draidi <a.r.draidi@redscript.org>
+;;; Copyright © 2023, 2024 Ahmad Draidi <a.r.draidi@redscript.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -20,6 +20,7 @@
(define-module (gnu packages arcan)
#:use-module (guix build-system cmake)
+ #:use-module (guix build-system copy)
#:use-module (guix build-system meson)
#:use-module (guix build-system gnu)
#:use-module (guix gexp)
@@ -29,6 +30,7 @@ (define-module (gnu packages arcan)
#:use-module (guix utils)
#:use-module (gnu packages audio)
#:use-module (gnu packages autotools)
+ #:use-module (gnu packages base)
#:use-module (gnu packages bash)
#:use-module (gnu packages compression)
#:use-module (gnu packages databases)
@@ -183,6 +185,74 @@ (define-public arcan-sdl
"-DSTATIC_FREETYPE=off" "-DSHMIF_TUI_ACCEL=on")))))
(synopsis "Combined display server, multimedia framework and game engine (SDL)")))
+(define-public durden
+ ;; Match Arcan 0.6.3
+ (let ((commit "a8938b9c835f55bedc2c42aec4ddc5c9739eb949")
+ (revision "1"))
+ (package
+ (name "durden")
+ (version (git-version "0.6.1" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (file-name (git-file-name name version))
+ (uri (git-reference
+ (url "https://github.com/letoram/durden")
+ (commit commit)))
+ (sha256
+ (base32 "1ybi6x2kwn597kjqycrqmlvp6z79yv2jfwzgx937wcckm55xlpvk"))))
+ (build-system copy-build-system)
+ (arguments
+ (list
+ #:install-plan #~'(("durden/" "share/arcan/appl/durden/")
+ ("util/" "share/arcan/appl/durden/util/")
+ ("distr/durden" "bin/durden"))
+ #:phases #~(modify-phases %standard-phases
+ (add-after 'unpack 'patch-paths
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (substitute* "distr/durden"
+ (("/usr/share/\\$applname")
+ (string-append (assoc-ref outputs "out")
+ "/share/arcan/appl"))
+ (("([\\([:blank:]]+)arcan " _ separator)
+ (string-append separator
+ (assoc-ref inputs "arcan")
+ "/bin/arcan "))
+ (("([\\([:blank:]]+)basename " _ separator)
+ (string-append separator
+ (assoc-ref inputs "coreutils")
+ "/bin/basename "))
+ (("([\\([:blank:]]+)date " _ separator)
+ (string-append separator
+ (assoc-ref inputs "coreutils")
+ "/bin/date "))
+ (("([\\([:blank:]]+)ln " _ separator)
+ (string-append separator
+ (assoc-ref inputs "coreutils")
+ "/bin/ln "))
+ (("([\\([:blank:]]+)mkdir " _ separator)
+ (string-append separator
+ (assoc-ref inputs "coreutils")
+ "/bin/mkdir "))
+ (("([\\([:blank:]]+)true; " _ separator)
+ (string-append separator
+ (assoc-ref inputs "coreutils")
+ "/bin/true; "))
+ (("([\\([:blank:]]+)\\[ " _ separator)
+ (string-append separator
+ (assoc-ref inputs "coreutils")
+ "/bin/[ "))))))))
+ (inputs (list arcan coreutils))
+ (home-page "https://durden.arcan-fe.com/")
+ (synopsis "Desktop Environment for Arcan")
+ (description
+ "Durden is a desktop environment for the Arcan Display Server.
+It serves both as a reference showcase on how to take advantage of some of the
+features in Arcan, and as an entry to the advanced-user side of the desktop
+environment spectrum.")
+ (license (list license:bsd-3 license:expat license:cc-by3.0
+ license:cc-by4.0 license:asl2.0)))))
+
(define-public xarcan
(package
(name "xarcan")

base-commit: 51de844a0ff6ea224367a384092896bce6848b9f
--
2.41.0
A
A
Ahmad Draidi wrote on 9 Apr 13:59 +0200
(address . liliana.prikler@gmail.com)
F54F8996-B3C8-40A5-B1CC-4CFE52D86818@redscript.org
Hello again,

Sorry. I made a mistake, I believe.

Arcan requires setuid to run without nesting. I only tested with nesting before sending v4.

I'll pick up arcan from the user's profile. I think that's the best course of action.

Sorry for the noise.

On 9 April 2024 15:20:00 GTS, Ahmad Draidi <a.r.draidi@redscript.org> wrote:
Toggle quote (128 lines)
>* gnu/packages/arcan.scm (durden): New variable.
>
>Change-Id: I3ea34563c74c227eed40f4ad50d23713c45ce70b
>---
>Hello Liliana,
>
>Thanks for the review.
>
>I believe I got all of them. Coreutils are a sneaky bunch :)
>
>Thanks!
>
>v2 changes: Rebase to fix conflicts
>v3 changes: Update to commit matching Arcan 0.6.3 (68016)
>v4 changes: Hard-code coreutils and arcan paths in "durden" shell script
>
> gnu/packages/arcan.scm | 72 +++++++++++++++++++++++++++++++++++++++++-
> 1 file changed, 71 insertions(+), 1 deletion(-)
>
>diff --git a/gnu/packages/arcan.scm b/gnu/packages/arcan.scm
>index c4dfa8da3e..9d68005175 100644
>--- a/gnu/packages/arcan.scm
>+++ b/gnu/packages/arcan.scm
>@@ -1,7 +1,7 @@
> ;;; GNU Guix --- Functional package management for GNU
> ;;; Copyright © 2019 L p R n d n <guix@lprndn.info>
> ;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
>-;;; Copyright © 2023 Ahmad Draidi <a.r.draidi@redscript.org>
>+;;; Copyright © 2023, 2024 Ahmad Draidi <a.r.draidi@redscript.org>
> ;;;
> ;;; This file is part of GNU Guix.
> ;;;
>@@ -20,6 +20,7 @@
>
> (define-module (gnu packages arcan)
> #:use-module (guix build-system cmake)
>+ #:use-module (guix build-system copy)
> #:use-module (guix build-system meson)
> #:use-module (guix build-system gnu)
> #:use-module (guix gexp)
>@@ -29,6 +30,7 @@ (define-module (gnu packages arcan)
> #:use-module (guix utils)
> #:use-module (gnu packages audio)
> #:use-module (gnu packages autotools)
>+ #:use-module (gnu packages base)
> #:use-module (gnu packages bash)
> #:use-module (gnu packages compression)
> #:use-module (gnu packages databases)
>@@ -183,6 +185,74 @@ (define-public arcan-sdl
> "-DSTATIC_FREETYPE=off" "-DSHMIF_TUI_ACCEL=on")))))
> (synopsis "Combined display server, multimedia framework and game engine (SDL)")))
>
>+(define-public durden
>+ ;; Match Arcan 0.6.3
>+ (let ((commit "a8938b9c835f55bedc2c42aec4ddc5c9739eb949")
>+ (revision "1"))
>+ (package
>+ (name "durden")
>+ (version (git-version "0.6.1" revision commit))
>+ (source
>+ (origin
>+ (method git-fetch)
>+ (file-name (git-file-name name version))
>+ (uri (git-reference
>+ (url "https://github.com/letoram/durden")
>+ (commit commit)))
>+ (sha256
>+ (base32 "1ybi6x2kwn597kjqycrqmlvp6z79yv2jfwzgx937wcckm55xlpvk"))))
>+ (build-system copy-build-system)
>+ (arguments
>+ (list
>+ #:install-plan #~'(("durden/" "share/arcan/appl/durden/")
>+ ("util/" "share/arcan/appl/durden/util/")
>+ ("distr/durden" "bin/durden"))
>+ #:phases #~(modify-phases %standard-phases
>+ (add-after 'unpack 'patch-paths
>+ (lambda* (#:key inputs outputs #:allow-other-keys)
>+ (substitute* "distr/durden"
>+ (("/usr/share/\\$applname")
>+ (string-append (assoc-ref outputs "out")
>+ "/share/arcan/appl"))
>+ (("([\\([:blank:]]+)arcan " _ separator)
>+ (string-append separator
>+ (assoc-ref inputs "arcan")
>+ "/bin/arcan "))
>+ (("([\\([:blank:]]+)basename " _ separator)
>+ (string-append separator
>+ (assoc-ref inputs "coreutils")
>+ "/bin/basename "))
>+ (("([\\([:blank:]]+)date " _ separator)
>+ (string-append separator
>+ (assoc-ref inputs "coreutils")
>+ "/bin/date "))
>+ (("([\\([:blank:]]+)ln " _ separator)
>+ (string-append separator
>+ (assoc-ref inputs "coreutils")
>+ "/bin/ln "))
>+ (("([\\([:blank:]]+)mkdir " _ separator)
>+ (string-append separator
>+ (assoc-ref inputs "coreutils")
>+ "/bin/mkdir "))
>+ (("([\\([:blank:]]+)true; " _ separator)
>+ (string-append separator
>+ (assoc-ref inputs "coreutils")
>+ "/bin/true; "))
>+ (("([\\([:blank:]]+)\\[ " _ separator)
>+ (string-append separator
>+ (assoc-ref inputs "coreutils")
>+ "/bin/[ "))))))))
>+ (inputs (list arcan coreutils))
>+ (home-page "https://durden.arcan-fe.com/")
>+ (synopsis "Desktop Environment for Arcan")
>+ (description
>+ "Durden is a desktop environment for the Arcan Display Server.
>+It serves both as a reference showcase on how to take advantage of some of the
>+features in Arcan, and as an entry to the advanced-user side of the desktop
>+environment spectrum.")
>+ (license (list license:bsd-3 license:expat license:cc-by3.0
>+ license:cc-by4.0 license:asl2.0)))))
>+
> (define-public xarcan
> (package
> (name "xarcan")
>
>base-commit: 51de844a0ff6ea224367a384092896bce6848b9f
>--
>2.41.0
>
Attachment: file
A
A
Ahmad Draidi wrote on 9 Apr 18:56 +0200
[PATCH v5] gnu: Add durden.
(address . 64348@debbugs.gnu.org)
4f910ecb7fbf3a9b0fb7e39314b3f7cbe80c92cc.1712681810.git.a.r.draidi@redscript.org
* gnu/packages/arcan.scm (durden): New variable.
* gnu/packages/patches/durden-shadow-arcan.patch: New file.
* gnu/local.mk: Register it.

Change-Id: I3ea34563c74c227eed40f4ad50d23713c45ce70b
---
Greetings,

I tested this patch version using nested arcan (under wayland) and natively.
Hopefully this is the last version.

Thanks!

v2 changes: Rebase to fix conflicts
v3 changes: Update to commit matching Arcan 0.6.3 (68016)
v4 changes: Hard-code coreutils and arcan paths in "durden" shell script
v5 changes: Use set-uid arcan if available, otherwise use hard-coded from store

gnu/local.mk | 1 +
gnu/packages/arcan.scm | 73 ++++++++++++++++++-
.../patches/durden-shadow-arcan.patch | 42 +++++++++++
3 files changed, 115 insertions(+), 1 deletion(-)
create mode 100644 gnu/packages/patches/durden-shadow-arcan.patch

Toggle diff (171 lines)
diff --git a/gnu/local.mk b/gnu/local.mk
index 255bb870e9..81ea687b61 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1120,6 +1120,7 @@ dist_patch_DATA = \
%D%/packages/patches/dune-common-skip-failing-tests.patch \
%D%/packages/patches/dune-grid-add-missing-include-cassert.patch \
%D%/packages/patches/dune-istl-fix-solver-playground.patch \
+ %D%/packages/patches/durden-shadow-arcan.patch \
%D%/packages/patches/dvd+rw-tools-add-include.patch \
%D%/packages/patches/dynaconf-unvendor-deps.patch \
%D%/packages/patches/dyninst-fix-glibc-compatibility.patch \
diff --git a/gnu/packages/arcan.scm b/gnu/packages/arcan.scm
index c4dfa8da3e..f86e8206e5 100644
--- a/gnu/packages/arcan.scm
+++ b/gnu/packages/arcan.scm
@@ -1,7 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2019 L p R n d n <guix@lprndn.info>
;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
-;;; Copyright © 2023 Ahmad Draidi <a.r.draidi@redscript.org>
+;;; Copyright © 2023, 2024 Ahmad Draidi <a.r.draidi@redscript.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -20,6 +20,7 @@
(define-module (gnu packages arcan)
#:use-module (guix build-system cmake)
+ #:use-module (guix build-system copy)
#:use-module (guix build-system meson)
#:use-module (guix build-system gnu)
#:use-module (guix gexp)
@@ -27,8 +28,10 @@ (define-module (gnu packages arcan)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix utils)
+ #:use-module (gnu packages)
#:use-module (gnu packages audio)
#:use-module (gnu packages autotools)
+ #:use-module (gnu packages base)
#:use-module (gnu packages bash)
#:use-module (gnu packages compression)
#:use-module (gnu packages databases)
@@ -183,6 +186,74 @@ (define-public arcan-sdl
"-DSTATIC_FREETYPE=off" "-DSHMIF_TUI_ACCEL=on")))))
(synopsis "Combined display server, multimedia framework and game engine (SDL)")))
+(define-public durden
+ ;; Match Arcan 0.6.3
+ (let ((commit "a8938b9c835f55bedc2c42aec4ddc5c9739eb949")
+ (revision "1"))
+ (package
+ (name "durden")
+ (version (git-version "0.6.1" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (file-name (git-file-name name version))
+ (uri (git-reference
+ (url "https://github.com/letoram/durden")
+ (commit commit)))
+ (sha256
+ (base32 "1ybi6x2kwn597kjqycrqmlvp6z79yv2jfwzgx937wcckm55xlpvk"))
+ (patches (search-patches "durden-shadow-arcan.patch"))))
+ (build-system copy-build-system)
+ (arguments
+ (list
+ #:install-plan #~'(("durden/" "share/arcan/appl/durden/")
+ ("util/" "share/arcan/appl/durden/util/")
+ ("distr/durden" "bin/durden"))
+ #:phases #~(modify-phases %standard-phases
+ (add-after 'unpack 'patch-paths
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (substitute* "distr/durden"
+ (("/usr/share/\\$applname")
+ (string-append (assoc-ref outputs "out")
+ "/share/arcan/appl"))
+ (("@ARCAN_STORE_PATH@")
+ (string-append (assoc-ref inputs "arcan")
+ "/bin/arcan"))
+ (("([\\([:blank:]]+)basename " _ separator)
+ (string-append separator
+ (assoc-ref inputs "coreutils")
+ "/bin/basename "))
+ (("([\\([:blank:]]+)date " _ separator)
+ (string-append separator
+ (assoc-ref inputs "coreutils")
+ "/bin/date "))
+ (("([\\([:blank:]]+)ln " _ separator)
+ (string-append separator
+ (assoc-ref inputs "coreutils")
+ "/bin/ln "))
+ (("([\\([:blank:]]+)mkdir " _ separator)
+ (string-append separator
+ (assoc-ref inputs "coreutils")
+ "/bin/mkdir "))
+ (("([\\([:blank:]]+)true; " _ separator)
+ (string-append separator
+ (assoc-ref inputs "coreutils")
+ "/bin/true; "))
+ (("([\\([:blank:]]+)\\[ " _ separator)
+ (string-append separator
+ (assoc-ref inputs "coreutils")
+ "/bin/[ "))))))))
+ (inputs (list arcan coreutils))
+ (home-page "https://durden.arcan-fe.com/")
+ (synopsis "Desktop Environment for Arcan")
+ (description
+ "Durden is a desktop environment for the Arcan Display Server.
+It serves both as a reference showcase on how to take advantage of some of the
+features in Arcan, and as an entry to the advanced-user side of the desktop
+environment spectrum.")
+ (license (list license:bsd-3 license:expat license:cc-by3.0
+ license:cc-by4.0 license:asl2.0)))))
+
(define-public xarcan
(package
(name "xarcan")
diff --git a/gnu/packages/patches/durden-shadow-arcan.patch b/gnu/packages/patches/durden-shadow-arcan.patch
new file mode 100644
index 0000000000..b666a6d7e3
--- /dev/null
+++ b/gnu/packages/patches/durden-shadow-arcan.patch
@@ -0,0 +1,42 @@
+From 157524b7cb76c5044a27f4a9e373ee04a9da3c71 Mon Sep 17 00:00:00 2001
+From: Ahmad Draidi <a.r.draidi@redscript.org>
+Date: Tue, 9 Apr 2024 18:26:52 +0400
+Subject: [PATCH] Use arcan from setuid-programs if available
+
+---
+ distr/durden | 10 ++++++++--
+ 1 file changed, 8 insertions(+), 2 deletions(-)
+
+diff --git a/distr/durden b/distr/durden
+index ab431ce..8672556 100755
+--- a/distr/durden
++++ b/distr/durden
+@@ -1,5 +1,11 @@
+ #!/bin/sh
+
++if [ -n "$(command -v /run/setuid-programs/arcan 2>/dev/null)" ]; then
++ ARCAN_CMD="/run/setuid-programs/arcan"
++else
++ ARCAN_CMD="@ARCAN_STORE_PATH@"
++fi
++
+ arcan_base=${HOME}/.arcan
+ applname="$(basename $0)"
+ distargs=""
+@@ -98,11 +104,11 @@ while true; do
+ starttime=$(date +%s)
+
+ if [ -d "${arcan_logpath}" ]; then
+- if arcan ${distargs} -b "$applname" "$applname" "$@" >"${arcan_logpath}/${applname}_${starttime}.log" 2>&1; then
++ if "${ARCAN_CMD}" ${distargs} -b "$applname" "$applname" "$@" >"${arcan_logpath}/${applname}_${starttime}.log" 2>&1; then
+ exit
+ fi
+ else
+- if arcan ${distargs} -b "$applname" "$applname" "$@"; then
++ if "${ARCAN_CMD}" ${distargs} -b "$applname" "$applname" "$@"; then
+ exit
+ fi
+ fi
+--
+2.41.0
+

base-commit: 6d0502f9c3608ffd6b3b3c9b603cb5d4ad14d8c9
--
2.41.0
L
L
Ludovic Courtès wrote on 11 Apr 12:40 +0200
(name . Ahmad Draidi)(address . a.r.draidi@redscript.org)
87jzl4gp2k.fsf@gnu.org
Hello,

Ahmad Draidi <a.r.draidi@redscript.org> skribis:

Toggle quote (6 lines)
> * gnu/packages/arcan.scm (durden): New variable.
> * gnu/packages/patches/durden-shadow-arcan.patch: New file.
> * gnu/local.mk: Register it.
>
> Change-Id: I3ea34563c74c227eed40f4ad50d23713c45ce70b

Applied, thanks!

Ludo’.
Closed
?
Your comment

This issue is archived.

To comment on this conversation send an email to 64348@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 64348
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch