(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))))