| 1 | |
| 2 | |
| 3 | |
| 4 | |
| 5 | |
| 6 | |
| 7 | |
| 8 | |
| 9 | |
| 10 | |
| 11 | |
| 12 | |
| 13 | |
| 14 | |
| 15 | |
| 16 | |
| 17 | |
| 18 | |
| 19 | |
| 20 | |
| 21 |
|
| 22 | (define-module (gnu packages arcan)
|
| 23 | #:use-module (guix build-system cmake)
|
| 24 | #:use-module (guix build-system copy)
|
| 25 | #:use-module (guix build-system meson)
|
| 26 | #:use-module (guix build-system gnu)
|
| 27 | #:use-module (guix gexp)
|
| 28 | #:use-module (guix git-download)
|
| 29 | #:use-module ((guix licenses) #:prefix license:)
|
| 30 | #:use-module (guix packages)
|
| 31 | #:use-module (guix utils)
|
| 32 | #:use-module (gnu packages)
|
| 33 | #:use-module (gnu packages audio)
|
| 34 | #:use-module (gnu packages autotools)
|
| 35 | #:use-module (gnu packages base)
|
| 36 | #:use-module (gnu packages bash)
|
| 37 | #:use-module (gnu packages compression)
|
| 38 | #:use-module (gnu packages databases)
|
| 39 | #:use-module (gnu packages fonts)
|
| 40 | #:use-module (gnu packages fontutils)
|
| 41 | #:use-module (gnu packages freedesktop)
|
| 42 | #:use-module (gnu packages gl)
|
| 43 | #:use-module (gnu packages gtk)
|
| 44 | #:use-module (gnu packages image)
|
| 45 | #:use-module (gnu packages libusb)
|
| 46 | #:use-module (gnu packages linux)
|
| 47 | #:use-module (gnu packages lua)
|
| 48 | #:use-module (gnu packages ocr)
|
| 49 | #:use-module (gnu packages onc-rpc)
|
| 50 | #:use-module (gnu packages pcre)
|
| 51 | #:use-module (gnu packages pdf)
|
| 52 | #:use-module (gnu packages pkg-config)
|
| 53 | #:use-module (gnu packages ruby)
|
| 54 | #:use-module (gnu packages sdl)
|
| 55 | #:use-module (gnu packages speech)
|
| 56 | #:use-module (gnu packages sqlite)
|
| 57 | #:use-module (gnu packages tls)
|
| 58 | #:use-module (gnu packages video)
|
| 59 | #:use-module (gnu packages vnc)
|
| 60 | #:use-module (gnu packages web)
|
| 61 | #:use-module (gnu packages xdisorg)
|
| 62 | #:use-module (gnu packages xorg)
|
| 63 | #:use-module (srfi srfi-1))
|
| 64 |
|
| 65 | (define-public arcan
|
| 66 | (package
|
| 67 | (name "arcan")
|
| 68 | (version "0.7.1")
|
| 69 | (source (origin
|
| 70 | (method git-fetch)
|
| 71 | (file-name (git-file-name name version))
|
| 72 | (uri (git-reference
|
| 73 | (url "https://codeberg.org/letoram/arcan")
|
| 74 | (commit version)))
|
| 75 | (sha256
|
| 76 | (base32
|
| 77 | "1sn8rljghrw57q99n9hl03pr2ndgkzg4g3p443iaslg42bmww05c"))
|
| 78 | (modules '((guix build utils)))
|
| 79 | (snippet
|
| 80 | |
| 81 | #~(begin
|
| 82 | (delete-file-recursively "external/git")
|
| 83 | (delete-file-recursively "external/lua")
|
| 84 | (delete-file-recursively "external/sqlite")))))
|
| 85 | (build-system cmake-build-system)
|
| 86 | (arguments
|
| 87 | (list
|
| 88 | #:configure-flags
|
| 89 | #~'("-DBUILD_PRESET=everything" "-DDISTR_TAG='Guix'")
|
| 90 | #:phases
|
| 91 | #~(modify-phases %standard-phases
|
| 92 | (add-after 'unpack 'patch-paths
|
| 93 | (lambda _
|
| 94 | (substitute* "src/platform/posix/paths.c"
|
| 95 | (("/usr/local") #$output))))
|
| 96 | |
| 97 | |
| 98 | |
| 99 | (add-after 'unpack 'prepare-static-openal
|
| 100 | (lambda* (#:key inputs #:allow-other-keys)
|
| 101 | (copy-recursively #$(this-package-input "arcan-openal-checkout")
|
| 102 | "external/git/openal")))
|
| 103 | (add-after 'prepare-static-openal 'generate-man
|
| 104 | (lambda _
|
| 105 | (with-directory-excursion "doc"
|
| 106 | (invoke "ruby" "docgen.rb" "mangen"))))
|
| 107 | (add-before 'configure 'chdir
|
| 108 | (lambda _
|
| 109 | (chdir "src"))))
|
| 110 | #:tests? #f))
|
| 111 | (inputs
|
| 112 | (list bash-minimal
|
| 113 | espeak
|
| 114 | ffmpeg-6
|
| 115 | freetype
|
| 116 | gumbo-parser
|
| 117 | harfbuzz
|
| 118 | jbig2dec
|
| 119 | leptonica
|
| 120 | libdrm
|
| 121 | libjpeg-turbo
|
| 122 | libseccomp
|
| 123 | libusb
|
| 124 | libvnc
|
| 125 | libxkbcommon
|
| 126 | luajit
|
| 127 | mupdf
|
| 128 | openal
|
| 129 | openjpeg
|
| 130 | sdl2
|
| 131 | sqlite
|
| 132 | tesseract-ocr
|
| 133 | vlc
|
| 134 | wayland
|
| 135 | wayland-protocols
|
| 136 | xcb-util
|
| 137 | xcb-util-wm
|
| 138 | zlib
|
| 139 | |
| 140 | |
| 141 | (origin
|
| 142 | (method git-fetch)
|
| 143 | (file-name "arcan-openal-checkout")
|
| 144 | (uri (git-reference (url
|
| 145 | "https://github.com/letoram/openal")
|
| 146 | (commit "0.6.2")))
|
| 147 | (sha256
|
| 148 | (base32
|
| 149 | "0vg3fda47q2dk1n43ijcc64q39z044pa8h6scmfyi22g6r6bfw2z")))))
|
| 150 | (native-inputs (list pkg-config ruby)) |
| 151 | (home-page "https://arcan-fe.com")
|
| 152 | (synopsis "Display server, multimedia framework and game engine")
|
| 153 | (description
|
| 154 | "Arcan is a development framework for creating virtually
|
| 155 | anything from user interfaces for specialized embedded applications
|
| 156 | all the way to full-blown desktop environments. At its heart lies a multimedia
|
| 157 | engine with a Lua scripting interface.")
|
| 158 | |
| 159 | (license (list license:asl2.0
|
| 160 | license:bsd-3
|
| 161 | license:cc-by3.0
|
| 162 | license:expat
|
| 163 | license:gpl2+
|
| 164 | license:lgpl2.0
|
| 165 | license:lgpl2.0+
|
| 166 | license:public-domain
|
| 167 | license:silofl1.1
|
| 168 | license:zlib))))
|
| 169 |
|
| 170 | (define-public arcan-sdl
|
| 171 | (package
|
| 172 | (inherit arcan)
|
| 173 | (name "arcan-sdl")
|
| 174 | (inputs
|
| 175 | (modify-inputs inputs
|
| 176 | (delete "libdrm")
|
| 177 | (prepend glu libglvnd mesa sdl2)))
|
| 178 | (arguments
|
| 179 | (ensure-keyword-arguments
|
| 180 | (package-arguments arcan)
|
| 181 | '(#:configure-flags
|
| 182 | '("-DHYBRID_SDL=on" "-DBUILTIN_LUA=off"
|
| 183 | "-DSTATIC_OPENAL=off" "-DDISABLE_JIT=off"
|
| 184 | "-DENABLE_LWA=on" "-DSTATIC_SQLITE3=off"
|
| 185 | "-DSTATIC_FREETYPE=off" "-DSHMIF_TUI_ACCEL=on"))))
|
| 186 | (synopsis "Combined display server, multimedia framework and game engine (SDL)")))
|
| 187 |
|
| 188 | (define-public durden
|
| 189 | (package
|
| 190 | (name "durden")
|
| 191 | (version "0.6.3")
|
| 192 | (source
|
| 193 | (origin
|
| 194 | (method git-fetch)
|
| 195 | (file-name (git-file-name name version))
|
| 196 | (uri (git-reference
|
| 197 | (url "https://codeberg.org/letoram/durden")
|
| 198 | (commit version)))
|
| 199 | (sha256
|
| 200 | (base32 "1w12mdjdbhw13134fj4kv43n1z6vrh1jhg1wc7m5hw82w8ncwqkm"))
|
| 201 | (patches (search-patches "durden-shadow-arcan.patch"))))
|
| 202 | (build-system copy-build-system)
|
| 203 | (arguments
|
| 204 | (list
|
| 205 | #:install-plan #~'(("durden/" "share/arcan/appl/durden/")
|
| 206 | ("util/" "share/arcan/appl/durden/util/")
|
| 207 | ("distr/durden" "bin/durden"))
|
| 208 | #:phases #~(modify-phases %standard-phases
|
| 209 | (add-after 'unpack 'patch-paths
|
| 210 | (lambda* (#:key inputs outputs #:allow-other-keys)
|
| 211 | (substitute* "distr/durden"
|
| 212 | (("/usr/share/\\$applname")
|
| 213 | (string-append (assoc-ref outputs "out")
|
| 214 | "/share/arcan/appl"))
|
| 215 | (("@ARCAN_STORE_PATH@")
|
| 216 | (string-append (assoc-ref inputs "arcan")
|
| 217 | "/bin/arcan"))
|
| 218 | (("([\\([:blank:]]+)basename " _ separator)
|
| 219 | (string-append separator
|
| 220 | (assoc-ref inputs "coreutils")
|
| 221 | "/bin/basename "))
|
| 222 | (("([\\([:blank:]]+)date " _ separator)
|
| 223 | (string-append separator
|
| 224 | (assoc-ref inputs "coreutils")
|
| 225 | "/bin/date "))
|
| 226 | (("([\\([:blank:]]+)ln " _ separator)
|
| 227 | (string-append separator
|
| 228 | (assoc-ref inputs "coreutils")
|
| 229 | "/bin/ln "))
|
| 230 | (("([\\([:blank:]]+)mkdir " _ separator)
|
| 231 | (string-append separator
|
| 232 | (assoc-ref inputs "coreutils")
|
| 233 | "/bin/mkdir "))
|
| 234 | (("([\\([:blank:]]+)true; " _ separator)
|
| 235 | (string-append separator
|
| 236 | (assoc-ref inputs "coreutils")
|
| 237 | "/bin/true; "))
|
| 238 | (("([\\([:blank:]]+)\\[ " _ separator)
|
| 239 | (string-append separator
|
| 240 | (assoc-ref inputs "coreutils")
|
| 241 | "/bin/[ "))))))))
|
| 242 | (inputs (list arcan coreutils))
|
| 243 | (home-page "https://durden.arcan-fe.com/")
|
| 244 | (synopsis "Desktop Environment for Arcan")
|
| 245 | (description
|
| 246 | "Durden is a desktop environment for the Arcan Display Server.
|
| 247 | It serves both as a reference showcase on how to take advantage of some of the
|
| 248 | features in Arcan, and as an entry to the advanced-user side of the desktop
|
| 249 | environment spectrum.")
|
| 250 | (license (list license:bsd-3 license:expat license:cc-by3.0
|
| 251 | license:cc-by4.0 license:asl2.0))))
|
| 252 |
|
| 253 | (define-public xarcan
|
| 254 | (package
|
| 255 | (name "xarcan")
|
| 256 | (version "0.7.1")
|
| 257 | (source
|
| 258 | (origin
|
| 259 | (method git-fetch)
|
| 260 | (file-name (git-file-name name version))
|
| 261 | (uri (git-reference
|
| 262 | (url "https://codeberg.org/letoram/xarcan")
|
| 263 | (commit version)))
|
| 264 | (sha256
|
| 265 | (base32 "1jpk272y58h94ss6j87i0cl1zlfp4g5803y0kpi09q8yy37icvcg"))))
|
| 266 | (build-system meson-build-system)
|
| 267 | (arguments
|
| 268 | (list
|
| 269 | #:configure-flags
|
| 270 | #~(list
|
| 271 | "-Dglamor=true" "-Dint10=false"
|
| 272 | "-Dipv6=true"
|
| 273 | "-Dsystemd_logind=false"
|
| 274 |
|
| 275 | |
| 276 |
|
| 277 | |
| 278 | |
| 279 | (string-append "-Ddefault_font_path="
|
| 280 | #$(this-package-input "font-dejavu") "/share/fonts")
|
| 281 | (string-append "-Dxkb_dir=" #$(this-package-input "xkeyboard-config")
|
| 282 | "/share/X11/xkb")
|
| 283 | (string-append "-Dxkb_bin_dir=" #$(this-package-input "xkbcomp")
|
| 284 | "/bin")
|
| 285 | (format #f "-Dbuilder_string=\"Build ID: ~a ~a\"" #$name #$version))))
|
| 286 | (native-inputs
|
| 287 | (list pkg-config autoconf automake libtool util-macros))
|
| 288 | (inputs
|
| 289 | (list arcan
|
| 290 | font-dejavu
|
| 291 | font-util
|
| 292 | libdrm
|
| 293 | libepoxy
|
| 294 | libtirpc
|
| 295 | libx11
|
| 296 | libxfont2
|
| 297 | libxkbfile
|
| 298 | libxshmfence
|
| 299 | mesa
|
| 300 | openssl
|
| 301 | pixman
|
| 302 | xcb-util
|
| 303 | xcb-util-image
|
| 304 | xcb-util-wm
|
| 305 | xkbcomp
|
| 306 | xkeyboard-config
|
| 307 | xorgproto
|
| 308 | xtrans))
|
| 309 | (home-page "https://arcan-fe.com")
|
| 310 | (synopsis "Patched Xserver that bridges connections to Arcan")
|
| 311 | (description
|
| 312 | "Patched Xserver with a KDrive backend that uses the arcan-shmif
|
| 313 | to map Xlib/Xcb/X clients to a running arcan instance. It allows
|
| 314 | running an X session as a window under Arcan.")
|
| 315 | (license (list license:bsd-3 license:expat))))
|