-
Notifications
You must be signed in to change notification settings - Fork 96
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Remove non-free or unidentified files. #641
base: master
Are you sure you want to change the base?
Conversation
For reference, here is the Scheme snippets and the Guix package definition I've used to achieve the result of this PR: (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.
;; This preset uses stock.slang.
(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))))) |
Hm, I tried using hqx with this and it failed to find stock.slang; Mega_Bezel one failed at finding include/compat_macros.inc. Hopefully we can assert that stock.slang and compat.macros.inc are freely licensed; otherwise my change would have to remove their presets. |
This effort is to bring the project in compliance with most distributions guidelines such as the GNU Free Software Distribution Guidelines (GNU FSDG) [0]: the files without a clear license or a non-free license are removed. This is a work in progress; some files such as README.md and other project files can be easily re-added when the project owners introduce a LICENSE file with some explanatory text. This is a rather strict purge; I haven't tried contacting the authors or going through hoops to recover it from the original place the files were found; I've simply assumed that if there's no license information within the files, then they aren't free. This is relaxed for non-functional sources as the .slangp configuration or images, as non-functional data does not require to be freely licensed, per the GNU FSDG. [0] https://www.gnu.org/distros/free-system-distribution-guidelines.html Fixes: libretro#150
lol this is in no way merge-able. It's nuking readmes and every preset. EDIT: It occurs to me that a more effective solution may be to have a makefile that generates a "free" bundle rather than nuking a bunch of files. |
a75b734
to
6f0766e
Compare
It's clearly a WIP, as I wrote above; I also think in its current form it doesn't make sense to merge this. The aim is to shine light on the problem and hopefully clarify the licensing question of this collection. It also makes it at least distributable in Guix, as a crude stopgap measure. As I also hinted above, a useful thing to do on the project side would be to gather which files are owned by this project and apply a license to them, e.g. perhaps the I've updated the PR; the problems mentioned in #641 (comment) have been "fixed", by pruning yet more presets. If we can clarify the licensing of a few commonly reused files, I'll be more than happy to revise this PR. The diff can be used as a means to track progress and identify problematic areas. |
Or just make a list for every shader License, maybe both |
I've (painstakingly) visited every file of the project, and identified which ones were clearly annotated with licensing information; see the allow-list in #641 (comment). The ones which aren't listed there are removed, as can be seen looking at the diff of this PR: these deleted files' license would need to be looked into and identified. |
I meant something like https://github.com/Dogway/Avisynth-Scripts?tab=readme-ov-file#license-terms |
And regarding the "license is unknown" I think you can treat them as https://en.wikipedia.org/wiki/Unlicense or same as GPL-3.0 license until the original author comes forward and says otherwise. |
I think stock.slang is part of main project of slang-shaders of libretro/RetroArch |
@Jobima1st Would adding a GPLv3+ |
This effort is to bring the project in compliance with most distributions guidelines such as the GNU Free Software Distribution Guidelines (GNU FSDG) [0]: the files without a clear license or a non-free license are removed.
This is a work in progress; some files such as README.md and other project files can be easily re-added when the project owners introduce a LICENSE file with some explanatory text.
This is a rather strict purge; I haven't tried contacting the authors or going through hoops to recover the licences from the original place the files were found; I've simply assumed that if there's no license information within the files, then they aren't free. This is relaxed for non-functional sources as the .slangp configuration files or images, as non-functional data does not require to be freely licensed, per the GNU FSDG.
[0] https://www.gnu.org/distros/free-system-distribution-guidelines.html
Fixes: #150