(define-module (ajatt packages dictionaries) #:use-module (gnu packages cmake) #:use-module (gnu packages compression) #:use-module (gnu packages dictionaries) #:use-module (gnu packages education) #:use-module (gnu packages fontutils) #:use-module (gnu packages fonts) #:use-module (gnu packages gstreamer) #:use-module (gnu packages hunspell) #:use-module (gnu packages icu4c) #:use-module (gnu packages image) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) #:use-module ((gnu packages qt) #:hide (qtspeech)) #:use-module (gnu packages search) #:use-module (gnu packages textutils) #:use-module (gnu packages version-control) #:use-module (gnu packages video) #:use-module (gnu packages vulkan) #:use-module (gnu packages web) #:use-module (gnu packages xdisorg) #:use-module (gnu packages xiph) #:use-module (gnu packages xorg) #:use-module (guix build-system cmake) #:use-module (guix build-system gnu) #:use-module (guix gexp) #:use-module (guix utils) #:use-module (guix git-download) #:use-module (guix packages) #:use-module (ajatt packages qt) #:use-module (ajatt packages suckless) #:use-module ((guix licenses) #:prefix license:) #:use-module (gnu packages search) #:use-module (gnu packages web) #:use-module (gnu packages gcc) #:use-module (gnu packages tls) #:use-module (gnu packages cpp) #:use-module (gnu packages glib) #:use-module (gnu packages nss) #:use-module (gnu packages datastructures) #:use-module (gnu packages certs) #:use-module (gnu packages check) #:use-module (guix build-system qt) #:use-module (gnu packages curl) #:use-module (guix utils) #:use-module (guix search-paths) #:use-module (guix build-system cmake) #:use-module (guix build-system gnu) #:use-module (guix download)) (define-public goldendict-ng (package (name "goldendict-ng") (version "24.05.06") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/xiaoyifang/goldendict-ng.git") (commit "4ac44e9a48d7f9e8c0b5123ce61c461a22e757c4"))) (sha256 (base32 "0xk164ksxwxlj3xng9hplgvdjmnf8nrmm0xpv3dw4syv0prcq918")))) (build-system cmake-build-system) (arguments (list #:make-flags #~(list "-j" "7") #:cmake cmake #:tests? #f #:configure-flags #~(list "-DCMAKE_BUILD_TYPE=Release") #:phases #~(modify-phases %standard-phases (add-after 'unpack 'absolutize-qt-headers (lambda _ (let ((qtbase-file (lambda (path) (string-append "\"" #$qtbase path "\"")))) (substitute* "src/ui/mainwindow.cc" (("") (qtbase-file "/include/qt6/QtPrintSupport/QPrinter")) (("") (qtbase-file "/include/qt6/QtPrintSupport/QPageSetupDialog")) (("") (qtbase-file "/include/qt6/QtPrintSupport/QPrintPreviewDialog")) (("") (qtbase-file "/include/qt6/QtPrintSupport/QPrintDialog")))))) (add-after 'wrap 'wrap-qt-process-path (lambda* (#:key inputs outputs #:allow-other-keys) (wrap-program (search-input-file outputs "bin/goldendict") `("QTWEBENGINE_RESOURCES_PATH" = (,(search-input-directory inputs "/share/qt6/resources"))) `("QTWEBENGINEPROCESS_PATH" = (,(search-input-file inputs "/lib/qt6/libexec/QtWebEngineProcess"))))))))) (native-inputs (list hunspell icu4c libeb libtiff libvorbis libxkbcommon libxkbfile libxtst libzim lzo opencc pkg-config qt5compat gstreamer qtspeech qtsvg qttools qtwebview qtx11extras vulkan-headers (list xz "static") zlib (list zstd "lib"))) (inputs (list ao bzip2 ffmpeg xapian qtmultimedia qtwebengine gstreamer qtbase xproto)) (synopsis "A feature-rich dictionary lookup program") (description "GoldenDict is a feature-rich dictionary lookup program, supporting multiple dictionary formats (StarDict, Babylon, Lingvo, Dictd, AARD, MDict, SDict) and online dictionaries, featuring perfect article rendering with the complete markup, illustrations and other content retained, and allowing you to type in words without any accents or correct case.") (home-page "https://xiaoyifang.github.io/goldendict-ng/") (license (list license:gpl3+ license:zlib)))) (define-public suckless-dictpopup (package (name "suckless-dictpopup") (version "2.5_stable") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/KonstantinDjairo/suckless_dictpopup.git") (commit "5309e184d0a68bad266ca0f4bef7c3d73ccc5eef"))) (sha256 (base32 "1pnx25s101ydldcvsrh79imkpirw5j5n9qzp9pzi37fz1g1xbb1k")))) (build-system gnu-build-system) (inputs (list freetype libxft libx11 font-google-noto-sans-cjk libxinerama perl sdcv sselp)) (arguments (list #:tests? #f #:make-flags #~(list (string-append "CC=" #$(cc-for-target)) (string-append "PREFIX=" #$output) (string-append "CPPFLAGS=-I" (assoc-ref %build-inputs "freetype") "/include/freetype2")) #:phases #~(modify-phases %standard-phases (replace 'configure (lambda _ (copy-file "config.def.h" "config.h")))))) (synopsis "A very lightweight popup dictionary written in C.") (description "suckless_dictpopup is a very lightweight program to show popups with the dictionary entries of the selected text. It uses Xlib for displaying the popup and sdcv for the dictionary lookup.") (home-page "https://github.com/KonstantinDjairo/suckless_dictpopup") (license license:bsd-0))) (define-public catch2-full (package (name "Catch2") (version "3.5.2") (source (origin (method url-fetch) (uri "https://github.com/catchorg/Catch2/archive/refs/tags/v3.5.2.tar.gz") (sha256 (base32 "0vhc8zg69idw8lp7vr4hdkhsf9scqba33wizz6rl0vxpksj47596")))) (build-system cmake-build-system) (arguments ( list #:cmake cmake #:tests? #f)) (native-inputs (list gcc-13 pkg-config)) (synopsis "Catch2 testing for C++") (description "Catch2 is mainly a unit testing framework for C++, but it also provides basic micro-benchmarking features, and simple BDD macros. Catch2's main advantage is that using it is both simple and natural. Test names do not have to be valid identifiers, assertions look like normal C++ boolean expressions, and sections provide a nice and local way to share set-up and tear-down code in tests.") (home-page "https://github.com/catchorg/Catch2") (license (list license:boost1.0)))) (define-public libcpr (package (name "cpr") (version "1.5") (source (origin (method git-fetch) (uri (git-reference (url "https://codeberg.org/hashirama/libcpr.git") (commit "528b3b235e9bf4c7e1b66e1b8d3a4451ba37d5e0"))) (sha256 (base32 "0040d3v4fjmjs253dc8cwqh5k484pvjybdq1rvwzmg0bwi0invjd")))) (build-system cmake-build-system) (arguments ( list #:cmake cmake #:tests? #f )) (native-inputs (list openssl gcc-13 curl pkg-config )) (inputs (list curl openssl )) (synopsis "C++ Requests: Curl for People ") (description "C++ Requests is a simple wrapper around libcurl inspired by the excellent Python Requests project. Despite its name, libcurl's easy interface is anything but, and making mistakes, misusing it is a common source of error and frustration. Using the more expressive language facilities of C++17 'or C++11 in case you use cpr < 1.10.0', this library captures the essence of making network calls into a few concise idioms.") (home-page "https://github.com/libcpr/cpr") (license (list license:expat)))) (define-public rdricpp (package (name "rdricpp") (version "1.5") (source (origin (method git-fetch) (uri (git-reference (url "https://codeberg.org/hashirama/rdricpp.git") (commit "63aa0e11e7244cbc06cbecabbc1ac96faee9dabc"))) (sha256 (base32 "0iz8gw7y1ybmds5d9wkzd15gj78k1flxziqn9wm424mhfp80h8bj")))) (build-system cmake-build-system) (arguments ( list #:cmake cmake #:tests? #f #:configure-flags #~(list "-DGUIX=1") )) (native-inputs (list gcc-13 pkg-config)) (inputs (list catch2-full)) (synopsis "Rikaitan Deinflector Reference Implementation in C++.") (description "Rikaitan Deinflector Reference Implementation in C++.") (home-page "https://codeberg.org/hashirama/rdricpp") (license (list license:gpl3+ license:zlib)))) (define-public gd-tools (package (name "gd-tools") (version "1.5") (source (origin (method git-fetch) (uri (git-reference (url "https://codeberg.org/hashirama/gd-tools.git") (commit "a44fc99f9a4ae716b89afefbc96b77abcbe89307"))) (sha256 (base32 "0jpg7v3alfd3ls352vnp9wjrk2sd2jl81l2lzrqvank78f8jpwnd")))) (build-system cmake-build-system) (arguments ( list #:cmake cmake ;;#:tests? #f #:configure-flags #~(list "-DGUIX=1") ) ) (native-inputs (list openssl rdricpp zlib glib gcc-13 curl pkg-config )) (inputs (list nlohmann-json curl openssl nss-certs marisa catch2-full libcpr )) (synopsis "A set of helpful programs to enhance goldendict for immersion learning.") (description "A set of helpful programs to enhance goldendict for immersion learning.") (home-page "https://codeberg.org/hashirama/gd-tools/") (license (list license:gpl3+ license:zlib)))) (define-public xcdat (package (name "xcdat") (version "0.2.1") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/kampersanda/xcdat.git") (commit "c1b97048259140ff5d5a22a29c1724e60112da4f"))) (sha256 (base32 "0kwfhv3kvbc4sl0bingncmpn9i210vv02lszjiqi91fa84rlxisj")))) (build-system cmake-build-system) (arguments (list #:cmake cmake #:tests? #f )) (synopsis "Fast compressed trie dictionary library.") (description "Xcdat is a C++17 header-only library of a fast compressed string dictionary based on an improved double-array trie structure.") (home-page "https://kampersanda.github.io/xcdat/") (license (list license:expat)))) goldendict-ng