diff options
| author | John Kehayias <john@guixotic.coop> | 2025-07-15 11:46:27 -0400 |
|---|---|---|
| committer | John Kehayias <john.kehayias@protonmail.com> | 2025-07-18 00:37:44 -0400 |
| commit | 5a9164f7ed6b2f61c3a052634c71be1eaf808175 (patch) | |
| tree | ba924ed40034b67a51b6e97466b7a94f03127975 /nongnu/packages | |
| parent | b8c13cd2c8e3fec32facdf64c57e74e1461398a7 (diff) | |
nongnu: Add grayjay.grayjay
* nongnu/packages/video.scm (grayjay): New variable.
Co-authored-by: Robin Templeton <robin@guixotic.coop>
Diffstat (limited to 'nongnu/packages')
| -rw-r--r-- | nongnu/packages/video.scm | 216 |
1 files changed, 215 insertions, 1 deletions
diff --git a/nongnu/packages/video.scm b/nongnu/packages/video.scm index f1badf6..12403f3 100644 --- a/nongnu/packages/video.scm +++ b/nongnu/packages/video.scm | |||
| @@ -2,11 +2,33 @@ | |||
| 2 | ;;; Copyright © 2022 Jelle Licht <jlicht@fsfe.org> | 2 | ;;; Copyright © 2022 Jelle Licht <jlicht@fsfe.org> |
| 3 | ;;; Copyright © 2024 Oleg Pykhalov <go.wigust@gmail.com> | 3 | ;;; Copyright © 2024 Oleg Pykhalov <go.wigust@gmail.com> |
| 4 | ;;; Copyright © 2024 Murilo <murilo@disroot.org> | 4 | ;;; Copyright © 2024 Murilo <murilo@disroot.org> |
| 5 | ;;; Copyright © 2025 John Kehayias <john@guixotic.coop> | ||
| 6 | ;;; Copyright © 2025 Robin Templeton <robin@guixotic.coop> | ||
| 5 | 7 | ||
| 6 | (define-module (nongnu packages video) | 8 | (define-module (nongnu packages video) |
| 9 | #:use-module (gnu packages base) | ||
| 10 | #:use-module (gnu packages bash) | ||
| 11 | #:use-module (gnu packages compression) | ||
| 12 | #:use-module (gnu packages cups) | ||
| 13 | #:use-module (gnu packages databases) | ||
| 14 | #:use-module (gnu packages fontutils) | ||
| 15 | #:use-module (gnu packages freedesktop) | ||
| 16 | #:use-module (gnu packages icu4c) | ||
| 17 | #:use-module (gnu packages gcc) | ||
| 7 | #:use-module (gnu packages gl) | 18 | #:use-module (gnu packages gl) |
| 19 | #:use-module (gnu packages glib) | ||
| 20 | #:use-module (gnu packages gnome) | ||
| 21 | #:use-module (gnu packages gtk) | ||
| 22 | #:use-module (gnu packages kerberos) | ||
| 23 | #:use-module (gnu packages linux) | ||
| 24 | #:use-module (gnu packages nss) | ||
| 8 | #:use-module (gnu packages pkg-config) | 25 | #:use-module (gnu packages pkg-config) |
| 26 | #:use-module (gnu packages pulseaudio) | ||
| 27 | #:use-module (gnu packages tls) | ||
| 9 | #:use-module (gnu packages video) | 28 | #:use-module (gnu packages video) |
| 29 | #:use-module (gnu packages xdisorg) | ||
| 30 | #:use-module (gnu packages xml) | ||
| 31 | #:use-module (gnu packages xorg) | ||
| 10 | #:use-module (guix build-system cmake) | 32 | #:use-module (guix build-system cmake) |
| 11 | #:use-module (guix build-system gnu) | 33 | #:use-module (guix build-system gnu) |
| 12 | #:use-module (guix build-system meson) | 34 | #:use-module (guix build-system meson) |
| @@ -17,7 +39,9 @@ | |||
| 17 | #:use-module (guix utils) | 39 | #:use-module (guix utils) |
| 18 | #:use-module ((guix licenses) #:prefix license:) | 40 | #:use-module ((guix licenses) #:prefix license:) |
| 19 | #:use-module (nongnu packages chromium) | 41 | #:use-module (nongnu packages chromium) |
| 20 | #:use-module (nongnu packages nvidia)) | 42 | #:use-module (nongnu packages nvidia) |
| 43 | #:use-module (nonguix build-system binary) | ||
| 44 | #:use-module ((nonguix licenses) #:prefix nonguix-license:)) | ||
| 21 | 45 | ||
| 22 | (define-public ffmpeg-nvenc | 46 | (define-public ffmpeg-nvenc |
| 23 | (package | 47 | (package |
| @@ -279,3 +303,193 @@ content.") | |||
| 279 | (package-description obs) | 303 | (package-description obs) |
| 280 | " This build of OBS includes embeded Chromium-based browser to enable | 304 | " This build of OBS includes embeded Chromium-based browser to enable |
| 281 | Browser source.")))) | 305 | Browser source.")))) |
| 306 | |||
| 307 | (define-public grayjay | ||
| 308 | (package | ||
| 309 | (name "grayjay") | ||
| 310 | (version "8") | ||
| 311 | (source | ||
| 312 | (origin | ||
| 313 | (method url-fetch) | ||
| 314 | (uri (string-append "https://updater.grayjay.app/Apps/Grayjay.Desktop/" | ||
| 315 | version "/Grayjay.Desktop-linux-x64-v" | ||
| 316 | version ".zip")) | ||
| 317 | (file-name (string-append name "-" version "-x86_64.zip")) | ||
| 318 | (sha256 | ||
| 319 | (base32 "168p343wn33c8fjm75fz1smr3z1gw09jp7r1b7givyqkiv02pq25")))) | ||
| 320 | (supported-systems '("x86_64-linux")) | ||
| 321 | (build-system binary-build-system) | ||
| 322 | (arguments | ||
| 323 | (list #:strip-binaries? #f ; prevent corruption of .NET programs | ||
| 324 | #:patchelf-plan | ||
| 325 | #~(let ((libs '("alsa-lib" | ||
| 326 | "at-spi2-atk" | ||
| 327 | "at-spi2-core" | ||
| 328 | "atk" | ||
| 329 | "cairo" | ||
| 330 | "cups" | ||
| 331 | "dbus" | ||
| 332 | "eudev" | ||
| 333 | "expat" | ||
| 334 | "fontconfig-minimal" | ||
| 335 | "gcc" | ||
| 336 | "glib" | ||
| 337 | "glibc" | ||
| 338 | "gtk+" | ||
| 339 | "icu4c" | ||
| 340 | "libdrm" | ||
| 341 | "libnotify" | ||
| 342 | "librsvg" | ||
| 343 | "libsecret" | ||
| 344 | "libx11" | ||
| 345 | "libxcb" | ||
| 346 | "libxcomposite" | ||
| 347 | "libxcursor" | ||
| 348 | "libxdamage" | ||
| 349 | "libxext" | ||
| 350 | "libxfixes" | ||
| 351 | "libxi" | ||
| 352 | "libxkbcommon" | ||
| 353 | "libxkbfile" | ||
| 354 | "libxrandr" | ||
| 355 | "libxrender" | ||
| 356 | "libxshmfence" | ||
| 357 | "libxtst" | ||
| 358 | "mesa" | ||
| 359 | "mit-krb5" | ||
| 360 | "nspr" | ||
| 361 | ("nss" "/lib/nss") | ||
| 362 | ("out" "/lib/grayjay/cef") | ||
| 363 | "openssl" | ||
| 364 | "pango" | ||
| 365 | "pulseaudio" | ||
| 366 | "sqlcipher" | ||
| 367 | "xcb-util" | ||
| 368 | "xcb-util-image" | ||
| 369 | "xcb-util-keysyms" | ||
| 370 | "xcb-util-renderutil" | ||
| 371 | "xcb-util-wm" | ||
| 372 | "xdg-utils" | ||
| 373 | "zlib"))) | ||
| 374 | `(("ClearScriptV8.linux-x64.so" ,libs) | ||
| 375 | ("Grayjay" ,libs) | ||
| 376 | ("cef/chrome-sandbox" ,libs) | ||
| 377 | ("cef/dotcefnative" ,libs) | ||
| 378 | ;; Some of these likely are not directly used after | ||
| 379 | ;; patchelf-ing the main binaries, other than libcef.so. | ||
| 380 | ;; This allows validate-runpath to pass though. | ||
| 381 | ("cef/libEGL.so" ,libs) | ||
| 382 | ("cef/libGLESv2.so" ,libs) | ||
| 383 | ;; XXX: Can replace with chromium-embedded-framework? | ||
| 384 | ("cef/libcef.so" ,libs) | ||
| 385 | ("cef/libvk_swiftshader.so" ,libs) | ||
| 386 | ("cef/libvulkan.so.1" ,libs) | ||
| 387 | ("libe_sqlite3.so" ,libs) | ||
| 388 | ("libsodium.so" ,libs))) | ||
| 389 | #:install-plan ''(("." "lib/grayjay")) | ||
| 390 | #:phases | ||
| 391 | #~(modify-phases %standard-phases | ||
| 392 | (add-before 'install 'remove-files | ||
| 393 | (lambda _ | ||
| 394 | ;; Disable automatic updates, unbundle ffmpeg, and remove | ||
| 395 | ;; "Portable" which makes Grayjay try to (unsuccessfully) | ||
| 396 | ;; run from its installed path. (Grayjay doesn't find the | ||
| 397 | ;; updater or ffmpeg when run outside of lib/grayjay.) | ||
| 398 | (delete-file "FUTO.Updater.Client") | ||
| 399 | (delete-file "ffmpeg") | ||
| 400 | (delete-file "Portable"))) | ||
| 401 | (add-before 'install 'install-entrypoint | ||
| 402 | (lambda _ | ||
| 403 | (let* ((bin (string-append #$output "/bin"))) | ||
| 404 | (mkdir-p bin) | ||
| 405 | (symlink (string-append #$output "/lib/grayjay/Grayjay") | ||
| 406 | (string-append bin "/Grayjay"))))) | ||
| 407 | (add-before 'install 'install-icon | ||
| 408 | (lambda _ | ||
| 409 | (let ((dir (string-append | ||
| 410 | #$output | ||
| 411 | "/share/icons/hicolor/scalable/apps"))) | ||
| 412 | (mkdir-p dir) | ||
| 413 | (copy-file "grayjay.png" | ||
| 414 | (string-append dir | ||
| 415 | "/app.grayjay.Grayjay.png"))))) | ||
| 416 | (add-after 'install 'wrap-program | ||
| 417 | (lambda* (#:key inputs #:allow-other-keys) | ||
| 418 | (wrap-program (string-append #$output "/lib/grayjay/Grayjay") | ||
| 419 | `("PATH" prefix | ||
| 420 | (,(string-append #$(this-package-input "ffmpeg") | ||
| 421 | "/bin")))))) | ||
| 422 | (add-after 'install 'create-desktop-file | ||
| 423 | (lambda _ | ||
| 424 | (make-desktop-entry-file | ||
| 425 | (string-append #$output "/share/applications/Grayjay.desktop") | ||
| 426 | #:name "Grayjay" | ||
| 427 | #:type "Application" | ||
| 428 | #:exec (string-append #$output "/bin/Grayjay") | ||
| 429 | #:icon "app.grayjay.Grayjay" | ||
| 430 | #:categories '("AudioVideo" "Player") | ||
| 431 | #:startup-w-m-class "Grayjay" | ||
| 432 | #:comment "Universal media aggregator")))))) | ||
| 433 | (native-inputs (list unzip)) | ||
| 434 | (inputs (list alsa-lib | ||
| 435 | at-spi2-atk | ||
| 436 | at-spi2-core | ||
| 437 | atk | ||
| 438 | bash-minimal | ||
| 439 | cairo | ||
| 440 | cups | ||
| 441 | dbus | ||
| 442 | eudev | ||
| 443 | expat | ||
| 444 | ffmpeg | ||
| 445 | fontconfig | ||
| 446 | freetype | ||
| 447 | `(,gcc "lib") | ||
| 448 | glib | ||
| 449 | glibc | ||
| 450 | gtk+ | ||
| 451 | icu4c-76 | ||
| 452 | libdrm | ||
| 453 | libnotify | ||
| 454 | librsvg | ||
| 455 | libsecret | ||
| 456 | libx11 | ||
| 457 | libxcb | ||
| 458 | libxcomposite | ||
| 459 | libxcursor | ||
| 460 | libxdamage | ||
| 461 | libxext | ||
| 462 | libxfixes | ||
| 463 | libxi | ||
| 464 | libxkbcommon | ||
| 465 | libxkbfile | ||
| 466 | libxrandr | ||
| 467 | libxrender | ||
| 468 | libxshmfence | ||
| 469 | libxtst | ||
| 470 | mesa | ||
| 471 | mit-krb5 | ||
| 472 | nspr | ||
| 473 | nss | ||
| 474 | openssl | ||
| 475 | pango | ||
| 476 | pulseaudio | ||
| 477 | sqlcipher | ||
| 478 | xcb-util | ||
| 479 | xcb-util-image | ||
| 480 | xcb-util-keysyms | ||
| 481 | xcb-util-renderutil | ||
| 482 | xcb-util-wm | ||
| 483 | xdg-utils | ||
| 484 | zlib)) | ||
| 485 | (home-page "https://grayjay.app/") | ||
| 486 | (synopsis "Universal media aggregator") | ||
| 487 | (description "Grayjay is a media aggregator application that enables users | ||
| 488 | to stream and download multimedia content from various online sources, most | ||
| 489 | prominently YouTube. It also offers an extensible plugin API to create and | ||
| 490 | import new integrations.") | ||
| 491 | (license | ||
| 492 | ;; "Source First License 1.1" which allows distribution, modification, | ||
| 493 | ;; etc. but with a non-commercial prohibition. | ||
| 494 | (nonguix-license:nonfree | ||
| 495 | "https://gitlab.futo.org/videostreaming/grayjay/-/blob/master/LICENSE.md")))) | ||
