(define-module (unlustig) #:use-module ((guix licenses) :prefix license:) #:use-module (guix packages) #:use-module (guix build-system cargo) #:use-module (guix download) #:use-module (guix build utils) #:use-module (guix git-download) #:use-module (gnu packages video) #:use-module (gnu packages image) #:use-module (gnu packages commencement) #:use-module (gnu packages perl) #:use-module (gnu packages rust) #:use-module (gnu packages python) #:use-module (gnu packages xorg) #:use-module (gnu packages crates-graphics) #:use-module (gnu packages crates-gtk) #:use-module (gnu packages crates-web) #:use-module (gnu packages crates-windows) #:use-module (gnu packages crates-apple) #:use-module (gnu packages crates-crypto) #:use-module (gnu packages crates-io) ) (define-public rust-quickcheck-1 (package (name "rust-quickcheck") (version "1.0.3") (source (origin (method url-fetch) (uri (crate-uri "quickcheck" version)) (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 "1mjhkfqwrb8mdyxdqr4zzbj1rm5dfx25n9zcc25lb6fxwiw673sq")))) (build-system cargo-build-system) (arguments `(#:cargo-inputs (("rust-env-logger" ,rust-env-logger-0.8) ("rust-log" ,rust-log-0.4) ("rust-rand" ,rust-rand-0.8)))) (home-page "https://github.com/BurntSushi/quickcheck") (synopsis "Automatic property based testing with shrinking") (description "This package provides Automatic property based testing with shrinking.") (license (list license:unlicense license:expat)))) (define-public rust-human-bytes-0.3 (package (name "rust-human-bytes") (version "0.3.1") (source (origin (method url-fetch) (uri (crate-uri "human_bytes" version)) (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 "05w8yb616p26fnjb9iqdlgb2nzx6dlcsl1n3q522x57c77fd9848")))) (build-system cargo-build-system) (arguments `(#:cargo-inputs (("rust-lexical" ,rust-lexical-6)))) (home-page "https://sr.ht/~nkeor/human_bytes") (synopsis "Crate to convert bytes into human-readable values") (description "Crate to convert bytes into human-readable values") (license license:bsd-2))) (define-public rust-bltzxsd-discord-rich-presence (package (name "rust-bltzxsd-discord-rich-presence") (version "6d0bcf71f17a0371065d3efeb95ca61d9fe32c6a") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/bltzxsd/discord-rich-presence.git") (commit version))) (sha256 (base32 "138h4ifjdqx8zd6cdjr4xd9ak1phrnpzb4gw0blsfsnzbrz6lx68")))) (build-system cargo-build-system) (arguments `(#:cargo-inputs (("rust-serde", rust-serde-1) ("rust-thiserror", rust-thiserror-1) ("rust-windows-named-pipe", rust-windows-named-pipe-0.1) ("rust-uuid", rust-uuid-0.8)) #:phases (modify-phases %standard-phases (delete 'check)))) (synopsis "library to connect and send data to Discord's IPC") (description "Simple, cross-platform crate to connect and send data to Discord's IPC") (home-page "https://github.com/bltzxsd/discord-rich-presence") (license license:expat))) (define-public unlustig (package (name "unlustig") (version "0.0.14") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/bltzxsd/unlustig") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 "0fmsnvg3wp4lcrhw661lqhibvwsbljdq0k6ph9b7yl45kqxyv6p7")) (modules '((guix build utils))) (snippet '(delete-file-recursively "deps")))) (inputs (list ffmpeg gifsicle )) (native-inputs (list perl python rust-bltzxsd-discord-rich-presence rust-imageproc-0.23 gcc-toolchain libx11 )) (build-system cargo-build-system) (arguments `( #:cargo-inputs (("discord-rich-presence", rust-bltzxsd-discord-rich-presence) ("imageproc", rust-imageproc-0.23) ("rust-dirs", rust-dirs-4) ("human-bytes", rust-human-bytes-0.3) ("indicatif", rust-indicatif-0.16) ("rust-klask", rust-klask-1) ("rust-ureq", rust-ureq-2) ("rust-yansi", rust-yansi-0.5) ("rust-winres", rust-winres-0.1) ("rust-wayland-client", rust-wayland-client-0.28.0) ("rust-simple-logger", rust-simple-logger-2) ) #:phases (modify-phases %standard-phases (add-before 'build 'use-local (lambda _ (substitute* "Cargo.toml" ( ("imageproc.*") "imageproc = \"0.23.0\"\n")) (substitute* "Cargo.toml" ( ("discord-rich-presence.*") "discord-rich-presence = \"0.1.8\"\n")) ))))) (synopsis "GIF Caption tool") (description "A CLI and GUI program for making IFunny gif captions on your computer.") (home-page "https://github.com/bltzxsd/unlustig") (license license:expat))) (define-public rust-klask-1 (package (name "rust-klask") (version "1.0.0") (source (origin (method url-fetch) (uri (crate-uri "klask" version)) (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 "167dfap4wivqm93qyjszvbwv25qrmpynlx58yrh18wwcfvfsx80k")))) (build-system cargo-build-system) (arguments `(#:cargo-inputs (("rust-cansi" ,rust-cansi-2) ("rust-clap" ,rust-clap-3) ("rust-clap-derive" ,rust-clap-derive-3) ("rust-eframe" ,rust-eframe-0.15) ("rust-inflector" ,rust-inflector-0.11) ("rust-linkify" ,rust-linkify-0.7) ("rust-native-dialog" ,rust-native-dialog-0.5) ("rust-thiserror" ,rust-thiserror-1) ("rust-uuid" ,rust-uuid-0.8)))) (home-page "https://github.com/MichalGniadek/klask") (synopsis "Automatically create GUI for clap apps") (description "This package provides Automatically create GUI for clap apps.") (license license:expat))) (define-public rust-wayland-client-0.28.0 (package (name "rust-wayland-client") (version "0.28.6") (source (origin (method url-fetch) (uri (crate-uri "wayland-client" version)) (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 "0m831sj4w5k0j9167f2dy3815k73g153j09271cz20p5a0ik7az3")))) (build-system cargo-build-system) (arguments `(#:cargo-inputs (("rust-bitflags" ,rust-bitflags-1) ("rust-downcast-rs" ,rust-downcast-rs-1) ("rust-libc" ,rust-libc-0.2) ("rust-nix" ,rust-nix-0.20) ("rust-scoped-tls" ,rust-scoped-tls-1) ("rust-wayland-commons" ,rust-wayland-commons-0.28) ("rust-wayland-scanner" ,rust-wayland-scanner-0.28) ("rust-wayland-sys" ,rust-wayland-sys-0.28)) #:cargo-development-inputs (("rust-tempfile" ,rust-tempfile-2)))) (home-page "https://github.com/smithay/wayland-rs") (synopsis "Bindings to the standard C implementation of the wayland protocol, client side") (description "This package provides Bindings to the standard C implementation of the wayland protocol, client side.") (license license:expat))) (define-public rust-windows-named-pipe-0.1 (package (name "rust-windows-named-pipe") (version "0.1.0") (source (origin (method url-fetch) (uri (crate-uri "windows-named-pipe" version)) (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 "1213q0kpicmb3xhpg4kisp47q68fhpiqxl0sjxjm9k467mdsd2w0")))) (build-system cargo-build-system) (arguments `(#:cargo-inputs (("rust-kernel32-sys" ,rust-kernel32-sys-0.2) ("rust-winapi" ,rust-winapi-0.2)))) (home-page "https://gitlab.com/dgriffen/windows-named-pipe") (synopsis "Windows named pipes with a unix-socket like interface") (description "This package provides Windows named pipes with a unix-socket like interface.") (license license:bsd-2))) (define-public rust-cansi-2 (package (name "rust-cansi") (version "2.2.1") (source (origin (method url-fetch) (uri (crate-uri "cansi" version)) (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 "1y3yjr2fkla0cssj23lg0l58m0g6af6f8xyf2ms031in2n3sxp2b")))) (build-system cargo-build-system) (arguments `(#:cargo-development-inputs (("rust-colored" ,rust-colored-2) ("rust-criterion" ,rust-criterion-0.3)))) (home-page "https://github.com/kurtlawrence/cansi") (synopsis "Catergorise ANSI - ANSI escape code parser and categoriser") (description "This package provides Catergorise ANSI - ANSI escape code parser and categoriser.") (license license:expat))) (define-public rust-eframe-0.15 (package (name "rust-eframe") (version "0.15.0") (source (origin (method url-fetch) (uri (crate-uri "eframe" version)) (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 "0907ksmla3szpcgzk17n2br0vv9d7and5qvfzgaj78hap684621s")))) (build-system cargo-build-system) (arguments `(#:cargo-inputs (("rust-egui" ,rust-egui-0.15) ("rust-egui-winit" ,rust-egui-winit-0.15) ("rust-egui-glium" ,rust-egui-glium-0.15) ("rust-egui-glow" ,rust-egui-glow-0.15) ("rust-egui-web" ,rust-egui-web-0.15) ("rust-epi" ,rust-epi-0.15)) #:cargo-development-inputs (("rust-image" ,rust-image-0.23) ("rust-rfd" ,rust-rfd-0.5)))) (home-page "https://github.com/emilk/egui/tree/master/crates/eframe") (synopsis "egui framework - write GUI apps that compiles to web and/or natively") (description "This package provides egui framework - write GUI apps that compiles to web and/or natively.") (license (list license:expat license:asl2.0)))) (define-public rust-native-dialog-0.5 (package (name "rust-native-dialog") (version "0.5.8") (source (origin (method url-fetch) (uri (crate-uri "native-dialog" version)) (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 "1mmpkh1gybi1fz93axqmaghd3q1kmmp87dz53hi5i0aq8ka92qki")))) (build-system cargo-build-system) (arguments `(#:cargo-inputs (("rust-cocoa" ,rust-cocoa-0.24) ("rust-dirs-next" ,rust-dirs-next-2) ("rust-objc" ,rust-objc-0.2) ("rust-objc-foundation" ,rust-objc-foundation-0.1) ("rust-objc-id" ,rust-objc-id-0.1) ("rust-once-cell" ,rust-once-cell-1) ("rust-raw-window-handle" ,rust-raw-window-handle-0.3) ("rust-thiserror" ,rust-thiserror-1) ("rust-wfd" ,rust-wfd-0.1) ("rust-which" ,rust-which-4) ("rust-winapi" ,rust-winapi-0.3)))) (home-page "https://github.com/balthild/native-dialog-rs") (synopsis "library to display dialogs. Supports GNU/Linux, BSD Unix, macOS and Windows.") (description "This package provides a library to display dialogs. Supports GNU/Linux, BSD Unix, @code{macOS} and Windows.") (license license:expat))) (define-public rust-tempfile-2 (package (name "rust-tempfile") (version "2.2.0") (source (origin (method url-fetch) (uri (crate-uri "tempfile" version)) (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 "1q61byf232rra0vqxp4qp10wwwqsqqd45qjj80ql5f34vgljzkhi")))) (build-system cargo-build-system) (arguments `(#:cargo-inputs (("rust-kernel32-sys" ,rust-kernel32-sys-0.2) ("rust-libc" ,rust-libc-0.2) ("rust-rand" ,rust-rand-0.3) ("rust-redox-syscall" ,rust-redox-syscall-0.1) ("rust-winapi" ,rust-winapi-0.2)))) (home-page "https://stebalien.com/projects/tempfile-rs/") (synopsis "library for managing temporary files and directories.") (description "This package provides a library for managing temporary files and directories.") (license (list license:expat license:asl2.0)))) (define-public rust-wfd-0.1 (package (name "rust-wfd") (version "0.1.7") (source (origin (method url-fetch) (uri (crate-uri "wfd" version)) (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 "1a6p8651l0q9dvzipam91nwv56n2ijxfpqg318dbzrdacw5h84z7")))) (build-system cargo-build-system) (arguments `(#:cargo-inputs (("rust-libc" ,rust-libc-0.2) ("rust-winapi" ,rust-winapi-0.3)))) (home-page "https://www.github.com/ben-wallis/wfd") (synopsis "simple to use abstraction over the Open and Save dialogs in the Windows API") (description "This package provides a simple to use abstraction over the Open and Save dialogs in the Windows API.") (license license:expat))) (define-public rust-egui-0.15 (package (name "rust-egui") (version "0.15.0") (source (origin (method url-fetch) (uri (crate-uri "egui" version)) (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 "1rzswl25w2ryfrkijm7fp7nfzmxl8sx1rfqp9mpzrjs36dm4338w")))) (build-system cargo-build-system) (arguments `(#:cargo-inputs (("rust-ahash" ,rust-ahash-0.7) ("rust-epaint" ,rust-epaint-0.15) ("rust-nohash-hasher" ,rust-nohash-hasher-0.2) ("rust-ron" ,rust-ron-0.7) ("rust-serde" ,rust-serde-1)))) (home-page "https://github.com/emilk/egui") (synopsis "An easy-to-use immediate mode GUI that runs on both web and native") (description "This package provides An easy-to-use immediate mode GUI that runs on both web and native.") (license (list license:expat license:asl2.0)))) (define-public rust-egui-winit-0.15 (package (name "rust-egui-winit") (version "0.15.0") (source (origin (method url-fetch) (uri (crate-uri "egui-winit" version)) (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 "13inxssjvkdnqj89kyxvha38rcqfvwy1jd67y4wk4sdxs68kwh5w")))) (build-system cargo-build-system) (arguments `(#:cargo-inputs (("rust-copypasta" ,rust-copypasta-0.7) ("rust-egui" ,rust-egui-0.15) ("rust-epi" ,rust-epi-0.15) ("rust-serde" ,rust-serde-1) ("rust-tts" ,rust-tts-0.17) ("rust-webbrowser" ,rust-webbrowser-0.5) ("rust-winit" ,rust-winit-0.25)))) (home-page "https://github.com/emilk/egui/tree/master/crates/egui-winit") (synopsis "Bindings for using egui with winit") (description "This package provides Bindings for using egui with winit.") (license (list license:expat license:asl2.0)))) (define-public rust-egui-glium-0.15 (package (name "rust-egui-glium") (version "0.15.0") (source (origin (method url-fetch) (uri (crate-uri "egui_glium" version)) (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 "14mcla2m2qjx51cqb86qzzihd0f1iyf0zac7asj4374ckg48wir6")))) (build-system cargo-build-system) (arguments `(#:cargo-inputs (("rust-egui" ,rust-egui-0.15) ("rust-egui-winit" ,rust-egui-winit-0.15) ("rust-epi" ,rust-epi-0.15) ("rust-glium" ,rust-glium-0.30)) #:cargo-development-inputs (("rust-image" ,rust-image-0.23)))) (home-page "https://github.com/fayalalebrun/egui_glium") (synopsis "Bindings for using egui natively using the glium library") (description "This package provides Bindings for using egui natively using the glium library.") (license (list license:expat license:asl2.0)))) (define-public rust-egui-glow-0.15 (package (name "rust-egui-glow") (version "0.15.0") (source (origin (method url-fetch) (uri (crate-uri "egui_glow" version)) (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 "1nvqx4l4lz0wvf2dbj5f8wh0xbd2krylk06hvhblr3bv45dq3fjg")))) (build-system cargo-build-system) (arguments `(#:cargo-inputs (("rust-egui" ,rust-egui-0.15) ("rust-egui-winit" ,rust-egui-winit-0.15) ("rust-epi" ,rust-epi-0.15) ("rust-glow" ,rust-glow-0.11) ("rust-glutin" ,rust-glutin-0.27) ("rust-memoffset" ,rust-memoffset-0.6)) #:cargo-development-inputs (("rust-image" ,rust-image-0.23)))) (home-page "https://github.com/emilk/egui/tree/master/crates/egui_glow") (synopsis "Bindings for using egui natively using the glow library") (description "This package provides Bindings for using egui natively using the glow library.") (license (list license:expat license:asl2.0)))) (define-public rust-egui-web-0.15 (package (name "rust-egui-web") (version "0.15.0") (source (origin (method url-fetch) (uri (crate-uri "egui_web" version)) (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 "0qsp3jw1sr5c1yyv7np8rysqjp0qg16444bzmymfrjd1hj4szwj3")))) (build-system cargo-build-system) (arguments `(#:cargo-inputs (("rust-egui" ,rust-egui-0.15) ("rust-epi" ,rust-epi-0.15) ("rust-js-sys" ,rust-js-sys-0.3) ("rust-ron" ,rust-ron-0.7) ("rust-serde" ,rust-serde-1) ("rust-tts" ,rust-tts-0.17) ("rust-wasm-bindgen" ,rust-wasm-bindgen-0.2) ("rust-wasm-bindgen-futures" ,rust-wasm-bindgen-futures-0.4) ("rust-web-sys" ,rust-web-sys-0.3)))) (home-page "https://github.com/emilk/egui/tree/master/egui_web") (synopsis "Bindings for compiling egui code to WASM for a web page") (description "This package provides Bindings for compiling egui code to WASM for a web page.") (license (list license:expat license:asl2.0)))) (define-public rust-epi-0.15 (package (name "rust-epi") (version "0.15.0") (source (origin (method url-fetch) (uri (crate-uri "epi" version)) (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 "10pwyc7wfkb8akyc4w5idra66jvn68q6mjahqki8d6vz2844wpiz")))) (build-system cargo-build-system) (arguments `(#:cargo-inputs (("rust-directories-next" ,rust-directories-next-2) ("rust-egui" ,rust-egui-0.15) ("rust-ron" ,rust-ron-0.7) ("rust-serde" ,rust-serde-1)))) (home-page "https://github.com/emilk/egui/tree/master/epi") (synopsis "Backend-agnostic interface for writing apps using egui") (description "This package provides Backend-agnostic interface for writing apps using egui.") (license (list license:expat license:asl2.0)))) (define-public rust-rfd-0.5 (package (name "rust-rfd") (version "0.5.1") (source (origin (method url-fetch) (uri (crate-uri "rfd" version)) (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 "1aljg6k3i9mzpzxl9abfn6ywsclpfb90zrbcplpb08rs9s4cbjia")))) (build-system cargo-build-system) (arguments `(#:cargo-inputs (("rust-block" ,rust-block-0.1) ("rust-dispatch" ,rust-dispatch-0.2) ("rust-glib-sys" ,rust-glib-sys-0.14) ("rust-gobject-sys" ,rust-gobject-sys-0.14) ("rust-gtk-sys" ,rust-gtk-sys-0.14) ("rust-js-sys" ,rust-js-sys-0.3) ("rust-lazy-static" ,rust-lazy-static-1) ("rust-objc" ,rust-objc-0.2) ("rust-objc-foundation" ,rust-objc-foundation-0.1) ("rust-objc-id" ,rust-objc-id-0.1) ("rust-raw-window-handle" ,rust-raw-window-handle-0.3) ("rust-wasm-bindgen" ,rust-wasm-bindgen-0.2) ("rust-wasm-bindgen-futures" ,rust-wasm-bindgen-futures-0.4) ("rust-web-sys" ,rust-web-sys-0.3) ("rust-winapi" ,rust-winapi-0.3)) #:cargo-development-inputs (("rust-futures" ,rust-futures-0.3)))) (home-page "https://github.com/PolyMeilex/rfd") (synopsis "Rusty File Dialog") (description "This package provides Rusty File Dialog.") (license license:expat))) (define-public rust-tts-0.17 (package (name "rust-tts") (version "0.17.3") (source (origin (method url-fetch) (uri (crate-uri "tts" version)) (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 "0q60y5iv91fpqv9sq1kz8ff159y7gq48x18s31f9451sdr9yw09p")))) (build-system cargo-build-system) (arguments `(#:cargo-inputs (("rust-cocoa-foundation" ,rust-cocoa-foundation-0.1) ("rust-dyn-clonable" ,rust-dyn-clonable-0.9) ("rust-jni" ,rust-jni-0.19) ("rust-lazy-static" ,rust-lazy-static-1) ("rust-libc" ,rust-libc-0.2) ("rust-log" ,rust-log-0.4) ("rust-ndk-glue" ,rust-ndk-glue-0.3) ("rust-objc" ,rust-objc-0.2) ("rust-speech-dispatcher" ,rust-speech-dispatcher-0.7) ("rust-thiserror" ,rust-thiserror-1) ("rust-tolk" ,rust-tolk-0.5) ("rust-wasm-bindgen" ,rust-wasm-bindgen-0.2) ("rust-web-sys" ,rust-web-sys-0.3) ("rust-windows" ,rust-windows-0.9) ("rust-windows" ,rust-windows-0.9)) #:cargo-development-inputs (("rust-env-logger" ,rust-env-logger-0.8)))) (home-page "https://github.com/ndarilek/tts-rs") (synopsis "High-level Text-To-Speech (TTS) interface") (description "This package provides High-level Text-To-Speech (TTS) interface.") (license license:expat))) (define-public rust-glow-0.11 (package (name "rust-glow") (version "0.11.2") (source (origin (method url-fetch) (uri (crate-uri "glow" version)) (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 "068rqvczh691385gzwqqsclp8lr0zq3276x2hfnbh6ba2mvmigfq")))) (build-system cargo-build-system) (arguments `(#:cargo-inputs (("rust-js-sys" ,rust-js-sys-0.3) ("rust-slotmap" ,rust-slotmap-1) ("rust-wasm-bindgen" ,rust-wasm-bindgen-0.2) ("rust-web-sys" ,rust-web-sys-0.3)))) (home-page "https://github.com/grovesNL/glow.git") (synopsis "GL on Whatever: a set of bindings to run GL (Open GL, OpenGL ES, and WebGL) anywhere, and avoid target-specific code") (description "This package provides GL on Whatever: a set of bindings to run GL (Open GL, @code{OpenGL} ES, and @code{WebGL}) anywhere, and avoid target-specific code.") (license (list license:expat license:asl2.0))))