@@ -1631,6 +1631,708 @@ (define-public retroarch-joypad-autoconfig
physical device and the RetroPad virtual controller.")
(license license:expat)))
+(define-public libretro-slang-shaders
+ ;; There are no releases; use the latest commit.
+
+ ;; BEWARE: Any upgrade to this package must have the sources carefully
+ ;; audited for newly added items, with the snippet allow-list updated
+ ;; accordingly, due to various items lacking license information or being
+ ;; non-free (see: https://github.com/libretro/slang-shaders/issues/150).
+ (let ((commit "a8e35920c5a53448bf6ce78dfe4575485a20a41f")
+ (revision "0"))
+ (package
+ (name "libretro-slang-shaders")
+ (version (git-version "0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/libretro/slang-shaders/")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ (use-modules (guix build utils)
+ (ice-9 ftw)
+ (srfi srfi-1)
+ (srfi srfi-26))
+ (define (delete-all-but . preserve)
+ ;; Walk the file tree and delete everything except the paths
+ ;; listed in PRESERVE. Directories listed PRESERVE will cause
+ ;; their whole contents to be preserved.
+ (let ((preserve (map (compose (cut string-trim-right <> #\/)
+ (cut string-append "./" <>))
+ preserve)))
+ (file-system-fold
+ (lambda (path stat result) ;enter
+ (or (any (lambda (x)
+ (or (string-prefix? path x)
+ (string-prefix? x path)))
+ preserve)
+ (begin
+ (delete-file-recursively path)
+ #f)))
+ (lambda (path stat result) ;leaf (file)
+ (unless (any (cut string-prefix? <> path) preserve)
+ (delete-file path)))
+ (const #t) ;down (directory)
+ (const #t) ;up (directory)
+ (lambda (path stat result) ;skip
+ (when (file-exists? path)
+ (error "could not enter unreadable directory" path)))
+ (lambda (path stat errno result) ;error
+ (error "error processing" path (strerror errno)))
+ 0
+ ".")))
+
+ ;; This is an allow-list of the shaders explicitly licensed as
+ ;; free software.
+ (delete-all-but
+ "anamorphic/shaders/anamorphic.slang" ;expat
+ "anamorphic/anamorphic.slangp"
+ "annotated_passthru.slang" ;public license
+ "anti-aliasing/aa-shader-4.0-level2.slangp"
+ "anti-aliasing/aa-shader-4.0.slangp"
+ "anti-aliasing/shaders/aa-shader-4.0.slang" ;gpl2+
+ "anti-aliasing/shaders/aa-shader-4.0-level2" ;gpl2+
+ "anti-aliasing/shaders/advanced-aa.slang" ;gpl2+
+ "anti-aliasing/advanced-aa.slangp"
+ "anti-aliasing/shaders/reverse-aa-post3x" ;expat
+ "anti-aliasing/shaders/reverse-aa.slang" ;bsd-2
+ "anti-aliasing/shaders/smaa/" ;unlicense
+ ;; The following presets refder to stock.slang, which license is
+ ;; unknown.
+ ;; "anti-aliasing/smaa+linear.slangp"
+ ;; "anti-aliasing/smaa+sharpen.slangp"
+ ;; "anti-aliasing/smaa.slangp"
+ "auto-box/" ;public domain
+ "bezel/koko-aio/" ;gpl3+
+ ;; Mega_Bezel makes use of the include/compat_macros.inc file,
+ ;; which carries no license.
+ ;; "bezel/Mega_Bezel/" ;gpl3+
+ "bfi/" ;public domain
+ "blurs/shaders/dual_filter/" ;cc0
+ "blurs/shaders/gauss_4tap/" ;cc0
+ "blurs/gauss_4tap.slangp"
+ "blurs/shaders/gaussian_blur_filtering" ;gpl2+
+ "blurs/gaussian_blur_2_pass-sharp.slangp"
+ "blurs/gaussian_blur-sharp.slangp"
+ "blurs/gaussian_blur_2_pass.slangp"
+ "blurs/gaussian_blur.slangp"
+ "blurs/shaders/gizmo-blur.slang" ;gpl2+
+ "blurs/gizmo-composite-blur.slangp"
+ "blurs/shaders/sharpsmoother.slang" ;gpl2+
+ "blurs/sharpsmoother.slangp"
+ "blurs/shaders/smart-blur.slang" ;expat
+ "blurs/smart-blur.slangp" ;expat
+ ;; The .slang shaders of royale, itself Expat, all reference
+ ;; include/compat_macros.inc, which is not licensed thus not
+ ;; included.
+ ;;"blurs/shaders/royale" ;expat
+ "border/shaders/bigblur.slang" ;public domain
+ "border/shaders/autocrop-koko" ;gpl3+
+ "border/autocrop-koko.slangp"
+ "border/autocrop-koko.txt"
+ "border/textures" ;data
+ "border/shaders/imgborder-gbp.slang" ;<15 LOC
+ "border/shaders/imgborder.inc" ;public domain
+ "border/shaders/imgborder-sgba.slang" ;<15 LOC
+ "border/shaders/imgborder-sgb.slang" ;<15 LOC
+ "border/shaders/imgborder.slang" ;<15 LOC
+ "border/gameboy-player/gameboy-player-crt-geom-1x.slangp"
+ ;;"border/gameboy-player/gameboy-player-crt-royale.slangp"
+ "border/gameboy-player/gameboy-player-gba-color.slangp"
+ "border/gameboy-player/gameboy-player.png" ;data
+ "border/gameboy-player/gameboy-player.slangp"
+ "border/gameboy-player/gameboy-player-tvout-gba-color+interlacing.slangp"
+ "border/gameboy-player/gameboy-player-tvout-gba-color.slangp"
+ "border/gameboy-player/gameboy-player-tvout+interlacing.slangp"
+ "border/gameboy-player/gameboy-player-tvout.slangp"
+ "border/gameboy-player/sample-borders/" ;data
+ "border/handheld-nebula/handheld-nebula-gba+crt-consumer.slangp"
+ "border/handheld-nebula/handheld-nebula-gba+dot.slangp"
+ "border/handheld-nebula/handheld-nebula-gba.png" ;data
+ "border/handheld-nebula/handheld-nebula-gba.slangp"
+ "border/handheld-nebula/handheld-nebula-gb+crt-consumer.slangp"
+ "border/handheld-nebula/handheld-nebula-gb+dot.slangp"
+ "border/handheld-nebula/handheld-nebula-gb.png" ;data
+ "border/handheld-nebula/handheld-nebula-gb.slangp"
+ "border/handheld-nebula/handheld-nebula-gg+crt-consumer.slangp"
+ "border/handheld-nebula/handheld-nebula-gg+dot.slangp"
+ "border/handheld-nebula/handheld-nebula-gg.png" ;data
+ "border/handheld-nebula/handheld-nebula-gg.slangp"
+ "border/handheld-nebula/handheld-nebula-template.png" ;data
+ "border/imgborder.slangp"
+ "cel/shaders/advcartoon.slang" ;gpl (unknown version)
+ "cel/advcartoon.slangp"
+ "crt/shaders/Advanced_CRT_shader_whkrmrgks0.slang" ;gpl3+
+ "crt/advanced_crt_whkrmrgks0.slangp"
+ "crt/shaders/cathode-retro" ;expat
+ ;;"crt/cathode-retro_no-signal.slangp" ;uses stock.slang
+ "crt/shaders/crt-1tap.slang" ;cc0
+ "crt/shaders/crt-aperture.slang" ;gpl (unknown version)
+ "crt/crt-aperture.slangp"
+ "crt/shaders/crt-blurPi.slang" ;expat
+ "crt/crt-blurPi-sharp.slangp"
+ "crt/crt-blurPi-soft.slangp"
+ "crt/shaders/crt-caligari.slang" ;gpl2+
+ "crt/crt-caligari.slangp"
+ "crt/shaders/crt-cgwg-fast.slang" ;gpl2+
+ "crt/crt-cgwg-fast.slangp"
+ "crt/shaders/crt-consumer.slang" ;gpl2+
+ "crt/shaders/crt-consumer"
+ "crt/crt-consumer.slangp"
+ "crt/shaders/crt-Cyclon.slang" ;gpl2+
+ "crt/crt-Cyclon.slangp"
+ "crt/shaders/crt-easymode.slang" ;gpl3+ (latest assumed)
+ "crt/shaders/crt-easymode-halation" ;gpl3+ (latest assumed)
+ "crt/crt-easymode-halation.slangp"
+ "crt/crt-easymode.slangp"
+ "crt/shaders/crt-gdv-mini.slang" ;gpl2+
+ "crt/shaders/crt-gdv-mini-ultra.slang" ;gpl2+
+ "crt/crt-gdv-mini.slangp"
+ "crt/crt-gdv-mini-ultra-trinitron.slangp"
+ "crt/shaders/crt-geom-mini.slang" ;gpl2+
+ "crt/shaders/crt-geom.slang" ;gpl2+
+ "crt/crt-geom-deluxe.slangp"
+ "crt/crt-geom-mini.slangp"
+ "crt/crt-geom.slangp"
+ "crt/crt-geom-tate.slangp"
+ "crt/shaders/crt-interlaced-halation" ;gpl2+
+ "crt/shaders/crt-lottes-fast.slang" ;unlicense
+ "crt/crt-lottes-fast.slangp"
+ "crt/shaders/crt-lottes-multipass" ;public domain
+ "crt/shaders/crt-lottes.slang"
+ "crt/ crt-lottes.slangp"
+ ;;"crt/shaders/crt-maximus-royale" ;gpl2+
+ "crt/shaders/crt-nobody.slang" ;expat
+ "crt/crt-nobody.slangp"
+ "crt/shaders/crt-pi.slang" ;gpl2+
+ "crt/crt-pi.slangp"
+ "crt/shaders/crt-pocket.slang" ;gpl2+
+ "crt/crt-pocket.slangp"
+ "crt/shaders/crt-potato" ;gpl3+
+ "crt/crt-potato-BVM.slangp"
+ "crt/crt-potato-cool.slangp"
+ "crt/crt-potato-warm.slangp"
+ "crt/shaders/crt-resswitch-glitch-koko.slang" ;gpl3+
+ "crt/crt-resswitch-glitch-koko.slangp"
+ ;; crt-royale relies on royale, which pulls in the non-free
+ ;; include/compat_macros.h.
+ ;; "crt/shaders/crt-royale" ;gpl2+
+ ;; "crt/crt-royale-fake-bloom-intel.slangp"
+ ;; "crt/crt-royale-fake-bloom.slangp"
+ ;; "crt/crt-royale-fast.slangp" "crt/crt-royale-intel.slangp"
+ ;; "crt/crt-royale.slangp"
+ "crt/shaders/crtsim" ;cc0
+ "crt/crtsim.slangp"
+ "crt/shaders/crt-simple.slang" ;gpl2+
+ "crt/crt-simple.slangp"
+ "crt/shaders/crt-super-xbr" ;expat
+ "crt/crt-super-xbr.slangp"
+ "crt/shaders/dotmask.slang" ;gpl3+ (latest assumed)
+ "crt/shaders/geom-deluxe" ;gpl2+
+ "crt/shaders/gizmo-crt.slang" ;gpl2+
+ "crt/gizmo-crt.slangp"
+ "crt/shaders/gizmo-slotmask-crt.slang" ;gpl2+
+ "crt/gizmo-slotmask-crt.slangp"
+ "crt/shaders/GritsScanlines" ;public domain
+ ;;"crt/GritsScanlines.slangp" ;uses stock.slang
+ "crt/shaders/gtu-v050" ;gpl3
+ "crt/gtu-v050.slangp"
+ "crt/shaders/guest" ;gpl2+
+ "crt/crt-guest-advanced-fastest.slangp"
+ ;; The following crt-guest-advanced presets require
+ ;; 'stock.slang', which license is unknown.
+ ;; "crt/crt-guest-advanced-fast.slangp"
+ ;; "crt/crt-guest-advanced-hd.slangp"
+ ;; "crt/crt-guest-advanced-ntsc.slangp"
+ ;; "crt/crt-guest-advanced.slangp"
+ "crt/shaders/hyllian" ;expat
+ "crt/crt-hyllian-3d.slangp"
+ "crt/crt-hyllian-fast.slangp"
+ "crt/crt-hyllian-fast.slangp"
+ "crt/shaders/mame_hlsl" ;bsd-3
+ "crt/mame_hlsl.slangp"
+ "crt/shaders/moire-resolve.slang" ;public domain
+ "crt/shaders/newpixie" ;mit or public domain
+ "crt/newpixie-crt.slangp"
+ "crt/shaders/newpixie-mini" ;mit or public domain
+ "crt/newpixie-mini.slangp"
+ "crt/shaders/phosphorlut/scanlines-interlace-linearize.slang" ;public domain
+ "crt/shaders/rt_curvature" ;cc0
+ "crt/ray_traced_curvature_append.slangp"
+ "crt/shaders/torridgristle/Brighten.slang" ;public domain
+ "crt/shaders/torridgristle/Candy-Bloom.slang" ;public domain
+ "crt/shaders/torridgristle/ScanlineSimple.slang" ;public domain
+ "crt/shaders/torridgristle/sunset-gaussian-horiz.slang" ;public domain
+ "crt/shaders/torridgristle/sunset-gaussian-vert.slang" ;public domain
+ "crt/shaders/tvout-tweaks.slang" ;gpl3
+ "crt/tvout-tweaks.slangp"
+ "crt/shaders/zfast_crt" ;gpl2+
+ "crt/zfast-crt-composite.slangp"
+ "crt/zfast-crt-curvature.slangp"
+ "crt/zfast-crt-geo.slangp"
+ "crt/zfast-crt-hdmask.slangp"
+ "crt/zfast-crt.slangp"
+ "deblur/shaders/deblur-luma.slang" ;gpl2+
+ "deblur/deblur-luma.slangp"
+ "deblur/shaders/deblur.slang" ;gpl2+
+ "deblur/deblur.slangp"
+ "denoisers/shaders/bilateral-horizontal.slang" ;gpl2+
+ "denoisers/shaders/bilateral.slang" ;gpl2+
+ "denoisers/bilateral.slangp"
+ "denoisers/shaders/bilateral-vertical.slang" ;gpl2+
+ "denoisers/bilateral-2p.slangp"
+ "denoisers/shaders/fast-bilateral.slang" ;expat
+ "denoisers/fast-bilateral.slangp"
+ "denoisers/crt-fast-bilateral-super-xbr.slangp"
+ "denoisers/shaders/median_3x3.slang" ;bsd-2
+ "denoisers/median_3x3.slangp"
+ "denoisers/shaders/median_5x5.slang" ;bsd-2
+ "denoisers/median_5x5.slangp"
+ "dithering/shaders/bayer_4x4.slang" ;gpl2+
+ "dithering/bayer_4x4.slangp"
+ "dithering/shaders/blue_noise.slang" ;gpl2+
+ "dithering/shaders/blue_noise"
+ "dithering/blue_noise.slangp"
+ "dithering/shaders/blue_noise_dynamic.slang" ;gpl2+
+ "dithering/blue_noise_dynamic_4Bit.slangp"
+ "dithering/blue_noise_dynamic_monochrome.slangp"
+ "dithering/shaders/cbod-v1-pass1.slang" ;bsd-2
+ "dithering/shaders/cbod-v1-pass2.slang" ;bsd-2
+ "dithering/cbod_v1.slangp"
+ "dithering/shaders/checkerboard-dedither-pass1.slang" ;expat
+ "dithering/shaders/checkerboard-dedither-pass2.slang" ;expat
+ "dithering/shaders/checkerboard-dedither-pass3.slang"
+ "dithering/shaders/gendither.slang" ;gpl2+
+ "dithering/gendither.slangp"
+ "dithering/shaders/g-sharp_resampler.slang" ;gpl2+
+ "dithering/g-sharp_resampler.slangp"
+ "dithering/shaders/jinc2-dedither.slang" ;gpl2+
+ "dithering/jinc2-dedither.slangp"
+ "dithering/shaders/sgenpt-mix/sgenpt-mix-pass1.slang" ;expat
+ "dithering/shaders/sgenpt-mix/sgenpt-mix-pass2.slang" ;expat
+ "dithering/shaders/sgenpt-mix/sgenpt-mix-pass3.slang" ;expat
+ "dithering/shaders/sgenpt-mix/sgenpt-mix-pass4.slang" ;expat
+ "dithering/shaders/sgenpt-mix/sgenpt-mix-pass5.slang" ;expat
+ "dithering/shaders/sgenpt-mix.slang" ;expat
+ "dithering/sgenpt-mix.slangp"
+ "downsample/shaders/drez-g-sharp_resampler.slang" ;gpl2+
+ "downsample/drez/"
+ "downsample/drez_1x.slangp"
+ "downsample/shaders/mixed-res/cheap-sharpen-tweaked.slang" ;expat
+ "downsample/shaders/mixed-res/hires-tagger.slang" ;expat
+ "edge-smoothing/ddt/shaders/cut.slang" ;expat
+ "edge-smoothing/ddt//cut.slangp"
+ "edge-smoothing/ddt/shaders/ddt-extended.slang" ;expat
+ "edge-smoothing/ddt/ddt-extended.slangp"
+ "edge-smoothing/ddt/shaders/ddt-jinc.slang" ;gpl2+
+ "edge-smoothing/ddt/ddt-jinc.slangp"
+ "edge-smoothing/ddt/shaders/ddt.slang" ;expat
+ "edge-smoothing/ddt/ddt.slangp"
+ "edge-smoothing/ddt/shaders/ddt-waterpaint.slang" ;expat
+ "edge-smoothing/ddt/shaders/ddt-xbr-lv1.slang" ;expat
+ "edge-smoothing/ddt/ddt-xbr-lv1.slangp"
+ "edge-smoothing/fsr/shaders" ;expat & unlicense
+ "edge-smoothing/fsr/fsr-easu.slangp"
+ "edge-smoothing/fsr/fsr.slangp"
+ ;; hqx presets require stock.slang which has unknown license.
+ ;; "edge-smoothing/hqx" ;expat and lgpl2.1+
+ "edge-smoothing/hqx/resources" ;data
+ "edge-smoothing/hqx/shaders" ;expat and lgpl2.1+
+ "edge-smoothing/nedi/" ;gpl3+ and expat
+ "edge-smoothing/nnedi3/" ;gpl3+ and gpl2+
+ "edge-smoothing/omniscale/" ;expat
+ "edge-smoothing/sabr/" ;gpl2+
+ "edge-smoothing/scalefx/" ;expat
+ "edge-smoothing/scalehq/shaders/4xScaleHQ.slang" ;gpl2+
+ "edge-smoothing/scalenx/shaders/mmpx.slang" ;expat
+ "edge-smoothing/scalenx/mmpx.slangp"
+ "edge-smoothing/scalenx/shaders/scale2xplus.slang" ;gpl3+ (latest assumed)
+ "edge-smoothing/scalenx/scale2xplus.slangp"
+ "edge-smoothing/scalenx/shaders/scale2x.slang" ;gpl3+ (latest assumed)
+ "edge-smoothing/scalenx/scale2x.slangp"
+ "edge-smoothing/scalenx/shaders/scale3x.slang" ;gpl3+ (latest assumed)
+ "edge-smoothing/scalenx/scale3x.slangp"
+ "edge-smoothing/xbr/shaders/super-xbr/" ;expat
+ "edge-smoothing/xbr/shaders/xbr-lv1-standalone.slang" ;expat
+ "edge-smoothing/xbr/shaders/xbr-lv2-hd.slang" ;expat
+ "edge-smoothing/xbr/shaders/xbr-lv2-hd.slang" ;expat
+ "edge-smoothing/xbr/shaders/xbr-lv2-multipass/" ;expat
+ "edge-smoothing/xbr/shaders/xbr-lv2-standalone.slang" ;expat
+ "edge-smoothing/xbr/shaders/xbr-lv3-multipass/" ;expat
+ "edge-smoothing/xbr/shaders/xbr-lv3-standalone.slang" ;expat
+ "edge-smoothing/xbr/shaders/xbr-lv4-multipass/" ;expat
+ "edge-smoothing/xbr/other presets/shaders/4xbr-hybrid-crt.slang" ;expat
+ "edge-smoothing/xbr/other presets/4xbr-hybrid-crt.slangp"
+ "edge-smoothing/xbr/other presets/shaders/super-xbr/" ;expat
+ "edge-smoothing/xbr/other presets/shaders/xbr-hydrid/" ;gpl2+
+ "edge-smoothing/xbr/other presets/xbr-lv1-standalone.slangp"
+ "edge-smoothing/xbr/other presets/xbr-lv2-hd.slangp"
+ "edge-smoothing/xbr/other presets/xbr-lv2-standalone.slangp"
+ "edge-smoothing/xbr/other presets/xbr-lv3-9x-standalone.slangp"
+ "edge-smoothing/xbr/other presets/xbr-lv3-standalone.slangp"
+ "edge-smoothing/xbrz/shaders/" ;expat
+ "edge-smoothing/xbrz/2xbrz-linear.slangp"
+ "edge-smoothing/xbrz/xbrz-freescale.slangp"
+ "edge-smoothing/xsal/shaders/" ;gpl2+
+ "edge-smoothing/xsal/2xsal-level2-crt.slangp"
+ "edge-smoothing/xsal/2xsal.slangp"
+ "edge-smoothing/xsal/4xsal-level2-crt.slangp"
+ "edge-smoothing/xsoft/shaders/" ;gpl2+
+ "film/shaders/film-grain.slang" ;cc-by3.0
+ "film/film-grain.slangp"
+ "gpu/" ;gpl2+
+ "handheld/shaders/authentic_gbc/" ;cc0
+ "handheld/authentic_gbc.slangp"
+ "handheld/shaders/bevel.slang" ;gpl2+
+ "handheld/bevel.slangp"
+ "handheld/shaders/color/" ;public domain
+ "handheld/nds-color.slangp"
+ "handheld/NSO-gba-color.slangp"
+ "handheld/NSO-gbc-color.slangp"
+ "handheld/palm-color.slangp"
+ "handheld/psp-color.slangp"
+ "handheld/gba-color.slangp"
+ "handheld/gbc-color.slangp"
+ "handheld/gbc-dev.slangp"
+ "handheld/gbc-gambatte-color.slangp"
+ "handheld/SP101-color.slangp"
+ "handheld/SwitchOLED-color.slangp"
+ "handheld/vba-color.slangp"
+ "handheld/shaders/dot.slang" ;public domain
+ "handheld/dot.slangp"
+ "handheld/shaders/ds-hybrid-view.slang" ;public domain
+ "handheld/shaders/gameboy/" ;gpl3+
+ "handheld/gameboy-advance-dot-matrix.slangp"
+ "handheld/gameboy-color-dot-matrix.slangp"
+ "handheld/gameboy-color-dot-matrix-white-bg.slangp"
+ "handheld/gameboy-dark-mode.slangp"
+ "handheld/gameboy-light-mode.slangp"
+ "handheld/gameboy-light.slangp"
+ "handheld/gameboy-pocket-high-contrast.slangp"
+ "handheld/gameboy-pocket.slangp"
+ "handheld/gameboy.slangp"
+ "handheld/shaders/gbc_pokemon_modernizer.slang" ;public domain
+ "handheld/shaders/lcd1x_nds.slang" ;gpl2+
+ "handheld/lcd1x_nds.slangp"
+ "handheld/shaders/lcd1x_psp.slang" ;gpl2+
+ "handheld/lcd1x_psp.slangp"
+ "handheld/shaders/lcd1x.slang" ;gpl2+
+ "handheld/lcd1x.slangp"
+ "handheld/shaders/lcd3x.slang" ;public domain
+ "handheld/ lcd3x.slangp"
+ "handheld/shaders/lcd-shader/" ;gpl3+
+ "handheld/lcd-shader.slangp"
+ "handheld/shaders/mgba/" ;mpl2.0
+ "handheld/agb001-gba-color-motionblur.slangp"
+ "handheld/ags001-gba-color-motionblur.slangp"
+ "handheld/ags001.slangp"
+ "handheld/shaders/retro-tiles.slang" ;expat
+ "handheld/retro-tiles.slangp"
+ "handheld/shaders/retro-v2.slang" ;gpl2+
+ "handheld/retro-v2-nds-color.slangp"
+ "handheld/retro-v2.slangp"
+ "handheld/shaders/retro-v3.slang" ;gpl2+
+ "handheld/retro-v3-nds-color.slangp"
+ "handheld/retro-v3.slangp"
+ "handheld/shaders/sameboy-lcd.slang" ;expat
+ "handheld/sameboy-lcd-gbc-color-motionblur.slangp"
+ "handheld/sameboy-lcd.slangp"
+ "handheld/shaders/simpletex_lcd/" ;gpl2+
+ "handheld/simpletex_lcd-4k.slangp"
+ "handheld/simpletex_lcd_720p+gba-color.slangp"
+ "handheld/simpletex_lcd_720p+gbc-color.slangp"
+ "handheld/simpletex_lcd_720p.slangp"
+ "handheld/simpletex_lcd+gba-color-4k.slangp"
+ "handheld/simpletex_lcd+gba-color.slangp"
+ "handheld/simpletex_lcd+gbc-color-4k.slangp"
+ "handheld/simpletex_lcd+gbc-color.slangp"
+ "handheld/simpletex_lcd.slangp"
+ "handheld/shaders/zfast_lcd.slang" ;gpl2+
+ "handheld/zfast-lcd.slangp"
+ "handheld/console-border/shader-files/gb-pass0.slang" ;gpl3+
+ "handheld/console-border/shader-files/gb-pass1.slang" ;gpl3+
+ "handheld/console-border/shader-files/gb-pass2.slang" ;gpl3+
+ "handheld/console-border/shader-files/gb-pass3.slang" ;gpl3+
+ "handheld/console-border/resources/" ;non-functional data
+ "handheld/console-border/dmg.slangp"
+ "hdr/shaders/crt-guest-advanced-ntsc-pass1a.slang" ;gpl2+
+ "include/blur-functions.h" ;expat
+ "include/cleanEdge.inc" ;expat
+ "include/colorspace-tools.h" ;gpl2+
+ "include/gamma-management.h" ;expat
+ "include/img/black_lvl_dogway.h" ;<15 LOC
+ "include/img/black_lvl.h" ;<15 LOC
+ "include/img/cgwg_warp.h" ;gpl2
+ "include/img/channel_mix.h" ;<15 LOC
+ "include/img/col_tools.h" ;<15 LOC
+ "include/img/curvature.h" ;gpl2 and gpl3
+ "include/img/int_ar.h" ;public domain
+ "include/img/subpx_masks.h" ;<15 LOC
+ "include/quad-pixel-communication.h" ;expat
+ "include/special-functions.h" ;expat
+ "include/subpixel_masks.h" ;public domain
+ "interpolation/shaders/bicubic.slang" ;gpl2+
+ "interpolation/bicubic.slangp"
+ "interpolation/shaders/bicubic-x.slang" ;expat
+ "interpolation/shaders/bicubic-y.slang" ;expat
+ "interpolation/bicubic-fast.slangp"
+ "interpolation/shaders/b-spline-4-taps.slang" ;expat
+ "interpolation/b-spline-4-taps.slangp"
+ "interpolation/shaders/b-spline-x.slang" ;expat
+ "interpolation/shaders/b-spline-y.slang" ;expat
+ "interpolation/b-spline-fast.slangp"
+ "interpolation/shaders/catmull-rom-x.slang" ;expat
+ "interpolation/shaders/catmull-rom-y.slang" ;expat
+ "interpolation/catmull-rom-fast.slangp"
+ "interpolation/shaders/jinc2.slang" ;gpl2+
+ "interpolation/jinc2-sharper.slangp"
+ "interpolation/jinc2-sharp.slangp"
+ "interpolation/jinc2.slangp"
+ "interpolation/shaders/lanczos16.slang" ;gpl2+
+ "interpolation/lanczos16.slangp"
+ "interpolation/shaders/lanczos3-x.slang" ;gpl2+
+ "interpolation/shaders/lanczos3-y.slang" ;gpl2+
+ "interpolation/lanczos3-fast.slangp"
+ "interpolation/shaders/spline16-x.slang" ;gpl2+
+ "interpolation/shaders/spline16-y.slang" ;gpl2+
+ "interpolation/spline16-fast.slangp"
+ "interpolation/shaders/spline36-x.slang" ;gpl2+
+ "interpolation/shaders/spline36-y.slang" ;gpl2+
+ "interpolation/spline36-fast.slangp"
+ "misc/shaders/anti-flicker.slang" ;public domain
+ "misc/anti-flicker.slangp"
+ "misc/shaders/bead.slang" ;public domain
+ "misc/bead.slangp"
+ "misc/shaders/bob-deinterlacing.slang" ;public domain
+ "misc/bob-deinterlacing.slangp"
+ "misc/shaders/chromaticity.slang" ;gpl3+
+ "misc/chromaticity.slangp"
+ "misc/shaders/coverage/coverage.inc" ;<15 LOC
+ "misc/shaders/deband.slang" ;gpl2+
+ "misc/deband.slangp"
+ "misc/shaders/deinterlace.slang" ;gpl2
+ "misc/deinterlace.slangp"
+ "misc/shaders/deposterize" ;gpl2+
+ "misc/shaders/geom.slang" ;gpl2+
+ "misc/geom-append.slangp"
+ "misc/shaders/glass.slang" ;public domain
+ "misc/glass.slangp"
+ "misc/shaders/grade-no-LUT.slang" ;gpl2+
+ "misc/grade-no-LUT.slangp"
+ "misc/shaders/grade.slang" ;gpl2+
+ "misc/grade.slangp"
+ "misc/shaders/image-adjustment.slang" ;public domain
+ "misc/image-adjustment.slangp"
+ "misc/shaders/img_mod.slang" ;public domain
+ "misc/img_mod.slangp"
+ "misc/shaders/input_transform" ;cc0
+ "misc/shaders/interlacing.slang"
+ "misc/interlacing.slangp"
+ "misc/shaders/print-resolution/print-resolution-generate-and-cache.slang" ;gpl3+
+ "misc/shaders/relief.slang" ;expat
+ "misc/relief.slangp"
+ "misc/shaders/ss-gamma-ramp.slang" ;gpl2
+ "misc/ss-gamma-ramp.slangp"
+ "motionblur/shaders/braid-rewind.slang" ;gpl2+
+ "motionblur/braid-rewind.slangp"
+ "motionblur/shaders/mix_frames.slang" ;gpl2+
+ "motionblur/mix_frames.slangp"
+ "motionblur/shaders/mix_framse_smart.slang" ;gpl2+
+ "motionblur/mix_frames_smart.slangp"
+ "motionblur/shaders/motionblur-simple.slang" ;gpl2+
+ "motionblur/motionblur-simple.slangp"
+ "motionblur/shaders/response-time.slang" ;gpl2+
+ "motionblur/response-time.slangp"
+ "nes_raw_palette/shaders/gtu-famicom/" ;gpl3
+ "nes_raw_palette/gtu-famicom.slangp"
+ "nes_raw_palette/pal-r57shell-raw.slangp"
+ "nes_raw_palette/patchy-mesen-raw-palette.slangp"
+ "ntsc/shaders/analog_overshoot.slang" ;lgpl3
+ "ntsc/shaders/ntsc-simple/ntsc-simple-1.slang" ;gpl2+
+ "ntsc/shaders/ntsc-simple/ntsc-simple-2.slang" ;gpl2+
+ "ntsc/shaders/ntsc-xot.slang" ;cc-by-sa version unknown
+ "ntsc/shaderspatchy-ntsc/afterglow0-update/afterglow0-update-pass2.slang" ;gpl2+
+ "ntsc/shaderspatchy-ntsc/afterglow0-update/afterglow0-update-pass3.slang" ;gpl2+
+ "ntsc/shaders/patchy-ntsc/linear-to-srgb.slang" ;gpl3
+ "ntsc/shaders/patchy-ntsc/P22_80s_D65.png" ;data
+ "ntsc/shaders/patchy-ntsc/P22_90s_D65.png" ;data
+ "ntsc/shaders/patchy-ntsc/P22_J_D65.png" ;data
+ "ntsc/shaders/patchy-ntsc/P22_J_D93.png" ;data
+ "ntsc/shaders/patchy-ntsc/patchy-color.slang" ;gpl3
+ "ntsc/shaders/patchy-ntsc/patchy-ntsc-combine-y-c.slang" ;gpl3
+ "ntsc/shaders/patchy-ntsc/patchy-ntsc-decode-y-rmy-bmy.slang" ;gpl3
+ "ntsc/shaders/patchy-ntsc/patchy-ntsc-encode-y-c.slang" ;gpl3
+ "ntsc/shaders/patchy-ntsc/patchy-ntsc-eotf.slang" ;gpl3
+ "ntsc/shaders/patchy-ntsc/patchy-ntsc-inc-filters.inc" ;gpl3
+ "ntsc/shaders/patchy-ntsc/patchy-ntsc-inc-params.inc" ;gpl3
+ "ntsc/shaders/patchy-ntsc/patchy-ntsc-noise.slang" ;gpl3
+ "ntsc/shaders/patchy-ntsc/patchy-ntsc-separate-y-c.slang" ;gpl3
+ "ntsc/shaders/patchy-ntsc/trilinearLUT-switchable.slang" ;gpl2+
+ "ntsc/shaders/patchy-ntsc/TrinitronP22_D65.png" ;data
+ "ntsc/shaders/patchy-ntsc/TrinitronP22_D93.png" ;data
+ "ntsc/patchy-blastem.slangp"
+ "ntsc/patchy-genplusgx.slangp"
+ "ntsc/patchy-snes.slangp"
+ "pal/shaders/pal-r57shell.slang" ;public domain
+ "pal/pal-r57shell.slangp"
+ "pal/shaders/pal-singlepass.slang" ;bsd-2
+ "pal/pal-singlepass.slangp"
+ "pal/resources/" ;data
+ "pixel-art-scaling/shaders/aann.slang" ;expat
+ "pixel-art-scaling/aann.slangp"
+ "pixel-art-scaling/shaders/bandlimit-pixel.slang" ;expat
+ "pixel-art-scaling/shaders/box_filter_aa/" ;cc0
+ "pixel-art-scaling/box_filter_aa_xform.slangp"
+ "pixel-art-scaling/shaders/pixel_aa" ;cc0
+ "pixel-art-scaling/pixel_aa.slangp"
+ "pixel-art-scaling/pixel_aa_xform.slangp"
+ "pixel-art-scaling/shaders/pixellate.slang" ;isc
+ "pixel-art-scaling/pixellate.slangp"
+ "pixel-art-scaling/shaders/sharp-bilinear-scanlines.slang" ;public domain
+ "pixel-art-scaling/sharp-bilinear-scanlines.slangp"
+ "pixel-art-scaling/shaders/sharp-bilinear-simple.slang" ;public domain
+ "pixel-art-scaling/sharp-bilinear-simple.slangp"
+ "pixel-art-scaling/shaders/sharp-bilinear.slang"
+ "pixel-art-scaling/sharp-bilinear.slangp"
+ "pixel-art-scaling/shaders/uniform-nearest.slang" ;gpl2+
+ "pixel-art-scaling/uniform-nearest.slangp"
+ ;; The following include stock.slang, which license is unknown.
+ ;; "presets/crt-hyllian-sinc-smartblur-sgenpt.slangp"
+ ;; "presets/crt-hyllian-smartblur-sgenpt.slangp"
+ ;; The following depend on royale, which pulls in the non-free
+ ;; include/compat_macros.h.
+ ;; "presets/crt-royale-fast/4k/crt-royale-fast-rgb-aperture.slangp"
+ ;; "presets/crt-royale-fast/4k/crt-royale-fast-rgb-slot.slangp"
+ ;; "presets/crt-royale-fast/4k/crt-royale-pvm-rgb-blend.slangp"
+ ;; "presets/crt-royale-fast/4k/crt-royale-pvm-rgb-shmup.slangp"
+ ;; "presets/crt-royale-fast/4k/crt-royale-pvm-rgb.slangp"
+ ;; "presets/crt-royale-fast/crt-royale-fast-rgb-aperture.slangp"
+ ;; "presets/crt-royale-fast/crt-royale-fast-rgb-slot.slangp"
+ ;; "presets/crt-royale-fast/crt-royale-pvm-rgb-blend.slangp"
+ ;; "presets/crt-royale-fast/crt-royale-pvm-rgb-shmup.slangp"
+ ;; "presets/crt-royale-fast/crt-royale-pvm-rgb.slangp"
+ ;; "presets/crt-royale-fast-ntsc-composite.slangp"
+ ;; "presets/crt-royale-kurozumi.slangp"
+ ;; "presets/crt-royale-ntsc-composite.slangp"
+ ;; "presets/crt-royale-ntsc-svideo.slangp"
+ ;; "presets/crt-royale-pal-r57shell.slangp"
+ ;; "presets/crt-royale-xm29plus.slangp"
+ "presets/crtsim-grungy.slangp"
+ "presets/gizmo-crt/" ;slangp data files
+ ;; "presets/imgborder-royale-kurozumi.slangp"
+ "presets/my_old_tv.slangp"
+ "presets/nedi-powervr-sharpen.slangp"
+ "presets/retro-v2+gba-color.slangp"
+ "presets/retro-v2+gbc-color.slangp"
+ "presets/retro-v2+image-adjustment.slangp"
+ "presets/retro-v2+nds-color.slangp"
+ "presets/retro-v2+psp-color.slangp"
+ "presets/retro-v2+vba-color.slangp"
+ "presets/tvout/tvout-jinc-sharpen.slangp"
+ "presets/tvout/tvout.slangp"
+ "presets/tvout+interlacing/tvout+interlacing.slangp"
+ "presets/tvout+interlacing/tvout-jinc-sharpen+interlacing.slangp"
+ ;; The xbr-xsal presets require support/linearize.slang, whose
+ ;; license is unknown.
+ ;;"presets/xbr-xsal/" ;slangp data files
+ "procedural/iq-raymarching-primitives.slang" ;expat
+ "quad/shaders/biquad.slang" ;gpl2+
+ "quad/quad_interp.slang" ;public domain
+ "reshade/shaders/magicbloom/" ;mit
+ "scanlines/shaders/res-independent-scanlines.slang" ;public domain
+ "scanlines/res-independent-scanlines.slangp"
+ "scanlines/shaders/scanline-fract.slang" ;public domain
+ "scanlines/scanline-fract.slangp"
+ "scanlines/shaders/scanlines-rere.slang" ;public domain
+ "scanlines/scanlines-rere.slangp"
+ "scanlines/shaders/scanlines-sine-abs.slang" ;public domain
+ "scanlines/scanlines-sine-abs.slangp"
+ "sharpen/shaders/adaptive-sharpen-pass1.slang" ;bsd-2
+ "sharpen/shaders/adaptive-sharpen-pass2.slang" ;bsd-2
+ "sharpen/adaptive-sharpen-multipass.slangp"
+ "sharpen/shaders/adaptive-sharpen.slang" ;bsd-2
+ "sharpen/adaptive-sharpen.slangp"
+ "sharpen/shaders/anime4k/anime4k-compute-gradient.slang" ;expat
+ "sharpen/shaders/anime4k/anime4k-pushgrad-weak.slang" ;expat
+ "sharpen/shaders/anime4k/anime4k-push.slang" ;expat
+ "sharpen/shaders/cheap-sharpen.slang" ;expat
+ "sharpen/cheap-sharpen.slangp"
+ "sharpen/shaders/diff.slang" ;lgpl3+
+ "sharpen/shaders/fast-sharpen.slang" ;gpl2+
+ "sharpen/shaders/rcas.slang" ;expat
+ "sharpen/rca_sharpen.slangp"
+ "sharpen/shaders/super-res-ex.slang" ;lgpl3+
+ "stereoscopic-3d/shaders/anaglyph-to-side-by-side.slang" ;public domain
+ "stereoscopic-3d/anaglyph-to-side-by-side.slangp"
+ "stereoscopic-3d/shaders/sbs-to-interlaced.slang" ;public domain
+ "stereoscopic-3d/side-by-side-to-interlaced.slangp"
+ "stereoscopic-3d/shaders/sbs-to-shutter.slang" ;public domain
+ "stereoscopic-3d/side-by-side-to-shutter.slangp"
+ "stereoscopic-3d/shaders/shutter-to-side-by-side.slang" ;public domain
+ "stereoscopic-3d/shutter-to-side-by-side.slangp"
+ "stereoscopic-3d/shaders/side-by-side-simple.slang" ;public domain
+ "stereoscopic-3d/side-by-side-simple.slangp"
+ "vhs/shaders/vhs_and_crt_godot.slang" ;cc0
+ "vhs/vhs_and_crt_godot.slangp" ;cc0
+ "warp/shaders/dilation.slang" ;expat
+ "warp/shaders/erosion.slang" ;expat
+ "warp/dilation.slangp"
+
+ ;; Build/development supporting files not installed.
+ ".git/"
+ "configure"
+ "Makefile")
+
+ ;; The following are special cases, to be used sparringly. These
+ ;; presets uses stock.slang, whose license is unclear.
+ (for-each
+ (lambda (x)
+ (if (file-exists? x)
+ (delete-file x)
+ (format (current-error-port)
+ "warning: file ~s does not exist~%" x)))
+ '("bfi/120hz-smart-BFI.slangp"
+ "crt/shaders/cathode-retro/signal_test.slangp"
+ "blurs/shaders/dual_filter/naive_resample.slang"
+ "edge-smoothing/scalefx/scalefx+rAA.slangp"
+ "edge-smoothing/scalefx/scalefx-9x.slangp"
+ "edge-smoothing/scalefx/scalefx-hybrid.slangp"
+ "edge-smoothing/scalefx/scalefx.slangp"
+ "edge-smoothing/scalefx/shaders/old/scalefx-9x.slangp"
+ "edge-smoothing/scalefx/shaders/old/scalefx.slangp"))))
+ (sha256
+ (base32
+ "0r45p61nhi44f7ka5dvcabin7q2l25liyhgynm159pwlpwxz83nv"))))
+ (build-system gnu-build-system)
+ (arguments
+ (list #:tests? #f ;no test suite
+ #:make-flags #~(list (string-append "PREFIX=" #$output))))
+ (home-page "https://github.com/libretro/slang-shaders")
+ (synopsis "Vulkan GLSL shader collections for RetroArch")
+ (description "This package provides a collection of Vulkan
+GLSL (@file{.slang}) shaders for use with RetroArch.")
+ ;; Here's the current low-down on the licenses used in this aggregated
+ ;; collection; please keep it up to date!
+ (license (list license:expat
+ license:cc0
+ license:cc-by3.0
+ license:public-domain
+ license:gpl2
+ license:gpl2+
+ license:gpl3
+ license:gpl3+
+ license:isc
+ license:lgpl2.1+
+ license:lgpl3
+ license:mpl2.0
+ license:bsd-2
+ license:bsd-3
+ license:unlicense)))))
+
(define-public retroarch-minimal
;; Use the latest commit, as there are unreleased fixes that resolve black
;; screen issues when using the vulkan video renderer.