;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2016, 2017, 2019, 2020, 2021, 2024 Ricardo Wurmus ;;; Copyright © 2019 Tobias Geerinckx-Rice ;;; ;;; This file is part of GNU Guix. ;;; ;;; GNU Guix is free software; you can redistribute it and/or modify it ;;; under the terms of the GNU General Public License as published by ;;; the Free Software Foundation; either version 3 of the License, or (at ;;; your option) any later version. ;;; ;;; GNU Guix is distributed in the hope that it will be useful, but ;;; WITHOUT ANY WARRANTY; without even the implied warranty of ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;;; GNU General Public License for more details. ;;; ;;; You should have received a copy of the GNU General Public License ;;; along with GNU Guix. If not, see . (define-module (gnu packages axoloti) #:use-module (guix gexp) #:use-module (guix utils) #:use-module (guix packages) #:use-module
aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2024-07-18gnu: libktorrent: Update to 24.05.2.Zheng Junjie
* gnu/packages/kde-internet.scm (libktorrent): Update to 24.05.2. [inputs]: Remove karchive, qca and qtbase-5; add qca-qt6. [propagated-inputs]: Add karchive and qt5compat. [synopsis]: Adjust it. [arguments]: Set #:qtbase to qtbase. Change-Id: I290c801c075bb01ab36af7ac97ab2d786ef68a51
2024-07-18gnu: kreversi: Update to 24.05.2.Zheng Junjie
* gnu/packages/kde-games.scm (kreversi): Update to 24.05.2. [inputs]: Remove qtbase-5, qtdeclarative-5, and qtsvg-5; add qtdeclarative and qtsvg. [arguments]: Set #:qtbase to qtbase. Change-Id: I88c728e19b18af08a10c544931ad7da8f39d3241
2024-07-18gnu: kbreakout: Update to 24.05.2.Zheng Junjie
* gnu/packages/kde-games.scm (kbreakout): Update to 24.05.2. [inputs]: Remove qtbase-5 and qtdeclarative-5; add qtdeclarative. [arguments]: Set #:qtbase to qtbase. Change-Id: I4ef0b41345e4d3659221ef5349754867f027e985
2024-07-18gnu: konquest: Update to 24.05.2.Zheng Junjie
* gnu/packages/kde-games.scm (konquest): Update to 24.05.2. [inputs]: Remove qtbase-5, qtdeclarative-5, and qtsvg-5; add qtscxml, qtdeclarative, and qtsvg. [arguments]: Set #:qtbase to qtbase. Change-Id: Id6aca4d44d3632c3c2c69269029f8a16f8301d36
2024-07-18gnu: knetwalk: Update to 24.05.2.Zheng Junjie
* gnu/packages/kde-games.scm (knetwalk): Update to 24.05.2. [inputs]: Remove qtbase-5 and qtdeclarative-5; add qtdeclarative. [arguments]: Set #:qtbase to qtbase. Change-Id: I3114a366f170c9baa75cb3b8b5435cf6013134c2
2024-07-18gnu: bomber: Update to 24.05.2.Zheng Junjie
* gnu/packages/kde-games.scm (bomber): Update to 24.05.2. [inputs]: Remove qtbase-5 and qtdeclarative-5; add qtdeclarative. [arguments]: Set #:qtbase to qtbase. Change-Id: I56c8bdd4f3217eb99b20b206d2adf93b6ea88b36
2024-07-18gnu: granatier: Update to 24.05.2.Zheng Junjie
* gnu/packages/kde-games.scm (granatier): Update to 24.05.2. [inputs]: Remove qtbase-5, qtdeclarative-5, and qtsvg-5; add qtdeclarative and qtsvg. [arguments]: Set #:qtbase to qtbase. Change-Id: Ie836d9093b3e26687d9c28ae1ac467b604fc86e1
2024-07-18gnu: ksirk: Update to 24.05.2.Zheng Junjie
* gnu/packages/kde-games.scm (ksirk): Update to 24.05.2. [inputs]: Remove qca, qtbase-5, qtdeclarative-5, and qtsvg-5; add kdbusaddons, qca-qt6, qt5compat, qtdeclarative, qtmultimedia, and qtsvg. [arguments]: Set #:qtbase to qtbase. Change-Id: I95ce98a998c4f6857e1364fb6483be3e8df8c497
2024-07-18gnu: palapeli: Update to 24.05.2.Zheng Junjie
* gnu/packages/kde-games.scm (palapeli): Update to 24.05.2. [inputs]: Remove qtbase-5, qtdeclarative-5, and qtsvg-5; add kdbusaddons, qtdeclarative, and qtsvg. [arguments]: Set #:qtbase to qtbase. Change-Id: Ifb844640b1a661eb5864b1fa5e724e37968f0f55
2024-07-18gnu: kiriki: Update to 24.05.2.Zheng Junjie
* gnu/packages/kde-games.scm (kiriki): Update to 24.05.2. [inputs]: Remove qtbase-5 and qtdeclarative-5; add qtdeclarative. [arguments]: Set #:qtbase to qtbase. Change-Id: I005f30522aff5ed40356aaf30b63069e6e9ca865
2024-07-18gnu: kigo: Update to 24.05.2.Zheng Junjie
* gnu/packages/kde-games.scm (kigo): Update to 24.05.2. [inputs]: Remove qtbase-5, qtdeclarative-5, and qtsvg-5; add qtdeclarative and qtsvg. [arguments]: Set #:qtbase to qtbase. Change-Id: I11a8d6534da06c530cfcda827b8cb24b1e17bb08
2024-07-18gnu: kubrick: Update to 24.05.2.Zheng Junjie
* gnu/packages/kde-games.scm (kubrick): Update to 24.05.2. [inputs]: Remove qtbase-5, qtdeclarative-5, and qtsvg-5; add kdbusaddons, qtbase, qtdeclarative, and qtsvg. [arguments]: Set #:qtbase to qtbase. Change-Id: I02d384bc7264f6a49d763bd2863d3eff58b31f19
2024-07-18gnu: lskat: Update to 24.05.2.Zheng Junjie
* gnu/packages/kde-games.scm (lskat): Update to 24.05.2. [inputs]: Remove qtbase-5, qtdeclarative-5, and qtsvg-5; add kdbusaddons, qtdeclarative, and qtsvg. [arguments]: Set #:qtbase to qtbase. Change-Id: I79f9cb310281efd596eb5f0c5ef003d3b687e5ec
2024-07-18gnu: kapman: Update to 24.05.2.Zheng Junjie
* gnu/packages/kde-games.scm (kapman): Update to 24.05.2. [arguments]: Set #:qtbase to qtbase. [inputs]: Remove qtbase-5, qtdeclarative-5, and qtsvg-5; add qtdeclarative and qtsvg. Change-Id: Icfdab3c7cd754a8735676e7b8bb54ce6d890a517
2024-07-18gnu: kspaceduel: Update to 24.05.2.Zheng Junjie
* gnu/packages/kde-games.scm (kspaceduel): Update to 24.05.2. [arguments]: Set #:qtbase to qtbase. [inputs]: Remove qtbase-5, qtdeclarative-5, and qtsvg-5; add qtdeclarative and qtsvg. Change-Id: I01e3738d40e7d282517268402524f63639d04b15
2024-07-18gnu: bovo: Update to 24.05.2.Zheng Junjie
* gnu/packages/kde-games.scm (bovo): Update to 24.05.2. [arguments]: Set #:qtbase to qtbase. [inputs]: Remove qtbase-5, qtdeclarative-5, and qtsvg-5; add qtdeclarative and qtsvg. Change-Id: Ia4a83c67839ec346e259f1f498607418f529baab
2024-07-18gnu: falkon: Update to 24.05.2.Zheng Junjie
* gnu/packages/kde-internet.scm (falkon): Update to 24.05.2. [arguments]<#:phases>: Stop replace check phase, Add wrap phase. [inputs]: Remove qtquickcontrols-5, qtsvg-5, qtwebengine-5, qtx11extras, and qtwayland-5; add qt5compat, qtsvg, qtwebengine, and qtwayland. [native-inputs]: Remove qttools-5; add qttools. Change-Id: Ie14f2889acdd4424d8b846cca9faf85c6488a3e1
2024-07-18gnu: khelpcenter: Update to 24.05.2.Zheng Junjie
* gnu/packages/kde-systemtools.scm (khelpcenter): Update to 24.05.2. [inputs]: Remove grantlee, khtml, kinit, kjs, and qtbase-5; add ktexttemplate, qtbase, and qtwebengine. [native-inputs]: Add perl. [arguments] Enable tests. <#:phases>: Add add-miss-package phase, adjust wrap-executable phase. Change-Id: I94fb420f27a67c1c33a749bb6fd834ba40632e96
2024-07-18gnu: kdeconnect: Update to 24.05.2.Zheng Junjie
* gnu/packages/kde.scm (kdeconnect): Update to 24.05.2. [arguments]: Set #:qtbase to qtbase. <#:configure-flags>: Set QtWaylandScanner_EXECUTABLE and adjust PLUGIN_INSTALL_DIR. [inputs]: Remove kpeoplevcard, qca, qtbase-5, qtdeclarative-5, qtgraphicaleffects, qtmultimedia-5, qtquickcontrols-5, qtquickcontrols2-5, qtx11extras, and qtwayland-5; add dbus, kirigami-addons, kstatusnotifieritem, openssl, qca-qt6, qtbase, qtdeclarative, qtmultimedia, and qtwayland. [native-inputs]: Add qtwayland. Change-Id: Iae4b77cc6a32f52e8995adcb52b94630d6921e29
2024-07-18gnu: libkdegames: Update to 24.05.2.Zheng Junjie
* gnu/packages/kde.scm (libkdegames): Update to 24.05.2. [arguments]: Set #:qtbase to qtbase. [inputs]: Remove qtbase-5, qtdeclarative-5, and qtsvg-5; add qtdeclarative and qtsvg. Change-Id: I1c426c80bf863e680f25daa3124245e8bacc12fb
2024-07-18gnu: krdc: Enable VNC.Zheng Junjie
* gnu/packages/kde-internet.scm (krdc): [inputs]: Add lzo, libjpeg-turbo, libgcrypt, and gnutls. [native-inputs]: Add pkg-config. [arguments]<#:configure-flags>: Remove -DWITH_VNC=NO. Change-Id: Id20461059a32876bcff9910536d672aefbe21c53
2024-07-18gnu: krdc: Update to 24.05.2.Zheng Junjie
* gnu/packages/kde-internet.scm (krdc): Update to 24.05.2. [inputs]: Remove qtbase-5; add kio, kstatusnotifieritem, and plasma-activities. [arguments]: Set #:qtbase to qtbase; <#:configure-flags>: Pass -DQT_MAJOR_VERSION=6. Change-Id: I58052435be5a91378cdb013965ee4678607ea3d0
2024-07-18gnu: Add futuresql.Zheng Junjie
* gnu/packages/kde.scm (futuresql): New variable. Change-Id: Ic2e62701d1ed1240aa1dd207869c7f7c9026d23a
2024-07-18gnu: yakuake: Update to 24.05.2.Zheng Junjie
* gnu/packages/kde-systemtools.scm (yakuake): Update to 24.05.2. [arguments]: Set #:qtbase to qtbase. [inputs]: Remove qtbase-5, qtsvg-5, and qtx11extras; add kstatusnotifieritem, libxkbcommon, and qtsvg. Change-Id: I506c8113d04927b18401028d17b9017ce23b0b6f
2024-07-18gnu: krfb: Update to 24.05.2.Zheng Junjie
* gnu/packages/kde-systemtools.scm (krfb): Update to 24.05.2. [arguments]: Set #:qtbase to qtbase. <#:configure-flags>: Set QtWaylandScanner_EXECUTABLE. [inputs]: Remove qtbase-5, qtwayland-5, and qtx11extras; add kstatusnotifieritem, qtwayland, and libxkbcommon. [native-inputs]: Add qtwayland. Change-Id: I367879557f835b7cdcc5343f37bc81c92884538c
2024-07-18gnu: ksystemlog: Update to 24.05.2.Zheng Junjie
* gnu/packages/kde-systemtools.scm (ksystemlog): Update to 24.05.2. [inputs]: Remove qtbase-5. [arguments]: Set #:qtbase to qtbase. Change-Id: I5c1a389c19e4c0210c1be357e3f8affd78e2ad55
2024-07-18gnu: kwalletmanager: Update to 24.05.2.Zheng Junjie
* gnu/packages/kde-systemtools.scm (kwalletmanager): Update to 24.05.2. [inputs]: Add kstatusnotifieritem. [arguments]: Set #:qtbase to qtbase. Change-Id: I73a2f19427a35d9ca0279ab9d5f4c70e113c1ad0
2024-07-18gnu: Add ktexttemplate.Zheng Junjie
* gnu/packages/kde-frameworks.scm (ktexttemplate): New variable. Change-Id: Ib61f72103ec892711797ed570261ddfdc59738d5
2024-07-18gnu: plasma: Update to 6.1.2.Zheng Junjie
* gnu/packages/kde-plasma.scm (plasma): Update to 6.1.2. [propagated-inputs]: Remove kgamma, khotkeys, kinit, kdesu, krunner, and kwayland-integration; add plasma5support, qt5compat, kiconthemes, ksvg, ocean-sound-theme, qtdeclarative, qtsvg, qtbase, layer-shell-qt, krdp, plasma-workspace-wallpapers, qqc2-breeze-style, and kglobalacceld. Change-Id: I66ec11d31004c69a03f45f4ad0bd9c3363bd8e74
2024-07-18gnu: Remove ksysguard.Zheng Junjie
* gnu/packages/kde-plasma.scm (ksysguard): Delete variable. Change-Id: I4a11f1dfba65e74e10399377ff5284fb48a4088a
2024-07-18gnu: Remove khotkeys.Zheng Junjie
* gnu/packages/kde-plasma.scm (khotkeys): Delete variable. Change-Id: Ic8390f27156d252750abbfe2bf1bae2dd03be00f
2024-07-18gnu: Add krdp.Zheng Junjie
* gnu/packages/kde-plasma.scm (krdp): New variable. Change-Id: I3bbd44ffd4f2ad512542a2f1afd7a4c9f6ec8ad1
2024-07-18gnu: spectacle: Update to 24.02.2.Zheng Junjie
* gnu/packages/kde-systemtools.scm (spectacle): Update to 24.02.2. [inputs]: Remove libxcb, qtdeclarative-5, qtquickcontrols2-5, qtwayland-5, and qtx11extras; add layer-shell-qt, qtdeclarative, qtmultimedia, qtwayland, and libxkbcommon. [arguments]: Set #:qtbase to qtbase. Change-Id: I7ad5ab6f88443e9c8a33459c3d04d5b4c7b4b7f0
2024-07-18gnu: fcitx5-configtool: Update to 5.1.3.Zheng Junjie
* gnu/packages/fcitx5.scm (fcitx5-configtool): Update to 5.1.3. [inputs]: Remove qtbase-5, qtx11extras, qtdeclarative-5, qtquickcontrols2-5, and plasma-framework; add qtbase, qtdeclarative, ksvg, kcmutils, and libplasma. [arguments]<#:configure-flags>: Pass -DUSE_QT6=ON. Change-Id: Icf0c534b062b6d4ce5b19382aa5d1d1f3622afe0
2024-07-18gnu: fcitx5-qt: Use new style.Zheng Junjie
* gnu/packages/fcitx5.scm (fcitx5-qt)[arguments]: Use Gexp. [inputs]: Remove label. Change-Id: Ie47b0d7f0f1184351ffa5df919bfc16aff5e42c9
2024-07-18gnu: fcitx5-qt: Enable qt6 support.Zheng Junjie
* gnu/packages/fcitx5.scm (fcitx5-qt)[arguments]<#:configure-flags>: Add CMAKE_INSTALL_QT6PLUGINDIR and ENABLE_QT6=ON. [inputs]: Add qtbase, qtwayland, wayland. Change-Id: I389253eb08efe765d1c79c44ac5d69717ccaf362
2024-07-18gnu: dolphin-plugins: Update to 24.05.2.Zheng Junjie
* gnu/packages/kde-systemtools.scm (dolphin-plugins): Update to 24.05.2. [inputs]: Remove qtbase-5; add ktextwidgets, and qt5compat. [arguments]: Set #:qtbase to qtbase. Change-Id: I8e0cecbf241b13c575820f167575a5066e8b3183
2024-07-18gnu: kbackup: Update to 24.05.2.Zheng Junjie
* gnu/packages/kde-utils.scm (kbackup): Update to 24.05.2. [inputs]: Add kstatusnotifieritem and qt5compat. [arguments]: Set #:qtbase to qtbase. Change-Id: Ieef8488bed9a414ba928990562ebe83616c638a1
2024-07-18gnu: libkgapi: Update to 24.05.2.Zheng Junjie
* gnu/packages/kde-pim.scm (libkgapi): Update to 24.05.2. [inputs]: Remove qtbase-5, qtdeclarative-5, qtwebchannel-5, and qtwebengine-5; add qtdeclarative, qtwebchannel, and qtwebengine. [native-inputs]: Remove qttools-5; add qttools. [arguments]: Set #:qtbase to qtbase. Change-Id: I204bae9522537a1b8e49eeab6d901fef4026d5c2
2024-07-18gnu: kaccounts-providers: Update to 24.05.2.Zheng Junjie
* gnu/packages/kde-pim.scm (kaccounts-providers): Update to 24.05.2. [inputs]: Remove libaccounts-qt, qtwebengine-5, and signond; add kpackage, libaccounts-qt6, qtwebengine, and signond-qt6. [arguments]: Set #:qtbase to qtbase. Change-Id: Icd11e6416a23a8cccd9ca2949b356cc6062f835d
2024-07-18gnu: sweeper: Update to 24.05.2.Zheng Junjie
* gnu/packages/kde-utils.scm (sweeper): Update to 24.05.2. [inputs]: Remove kactivities-stats and qtbase-5; add plasma-activities-stats. [arguments]: Set #:qtbase to qtbase. Change-Id: I4d4496b556ce52942be2796395ee7e94acd0524b
2024-07-18gnu: kdebugsettings: Update to 24.05.2.Zheng Junjie
* gnu/packages/kde-utils.scm (kdebugsettings): Update to 24.05.2. [arguments]: Set #:qtbase to qtbase. Change-Id: Ia30a0a8a9904a3fd9bba9fe5fc8b0a4d125ae9d1
2024-07-18gnu: filelight: Update to 24.05.2.Zheng Junjie
* gnu/packages/kde-utils.scm (filelight): Update to 24.05.2. [inputs]: Remove qtgraphicaleffects, qtquickcontrols2-5, and qtsvg-5; add kirigami-addons and qtsvg. [arguments]: Set #:qtbase to qtbase. Change-Id: I03fa741b6bac95c29d1bb9cc49b6d13be7df85ce
2024-07-18gnu: kcachegrind: Update to 24.05.2.Zheng Junjie
* gnu/packages/kde.scm (kcachegrind): Update to 24.05.2. [inputs]: Remove qtbase-5; add qtbase and kxmlgui. [native-inputs]: Remove qttools-5; add qttools. Change-Id: Ic34a608c258114f12468dccafb6acb32eee12287
2024-07-18gnu: kdf: Update to 24.05.2.Zheng Junjie
* gnu/packages/kde.scm (kdf): Update to 24.05.2. [inputs]: Remove qtbase-5; add kstatusnotifieritem and qt5compat. [arguments]: Set #:qtbase to qtbase. Change-Id: I937d163a1dc5d693941b41006d735a94f8fa7369
2024-07-18gnu: Add ocean-sound-theme.Zheng Junjie
* gnu/packages/kde-plasma.scm (ocean-sound-theme): New variable. Change-Id: I9e74cec20874884ae39644340f748bb025335d95
2024-07-18gnu: dolphin: Update to 24.05.2.Zheng Junjie
* gnu/packages/kde-systemtools.scm (dolphin): Update to 24.05.2. [inputs]: Remove kactivities, kinit, qtbase-5, and qtx11extras; add plasma-activities and libxkbcommon. [arguments]: Set #:qtbase to qtbase. Change-Id: I40f858902d32c570d8724944df9ac07d18371bb1
2024-07-18gnu: ktimer: Update to 24.05.2.Zheng Junjie
* gnu/packages/kde.scm (ktimer): Update to 24.05.2. [inputs]: Add kconfigwidgets, kstatusnotifieritem, and qt5compat. [arguments]: Set #:qtbase to qtbase. Change-Id: Icb858a3df5cd5b006439e2ce73d023b2861e02ba
2024-07-18gnu: baloo-widgets: Update to 24.05.2.Zheng Junjie
* gnu/packages/kde.scm (baloo-widgets): Update to 24.05.2. [inputs]: Remove qtbase-5. [arguments]: Enable tests; Set #:qtbase to qtbase. <#:configure-flags>: Pass -DBUILD_WITH_QT6=ON. Change-Id: I208f28e895f8a4b36798019a465e9c52cfca2718
2024-07-18gnu: konsole: Update to 24.05.2.Zheng Junjie
* gnu/packages/kde-systemtools.scm (konsole): Update to 24.05.2. [inputs]: Remove kcompletion, kinit, qtbase-5, qtscript, and qtmultimedia-5; add qt5compat and qtmultimedia. [arguments]: Set #:qtbase to qtbase. Change-Id: I00c21cbcb5d517571f7b11eaa27f9a0bd298af5a
egacy/Makefile.patch") (("arm-none-eabi-(gcc|g\\+\\+|objcopy|objdump|size)" tool) (which tool))) ;; XXX: for some reason the whitespace substitution does not ;; work, so we disable it. (substitute* '("firmware/Makefile.patch" "firmware_axoloti_legacy/Makefile.patch") (("^BUILDDIR=.*") "BUILDDIR=${axoloti_libraries}/build\n")) ;; Hardcode full path to compiler tools (substitute* '("firmware/Makefile" "firmware/flasher/Makefile" "firmware/mounter/Makefile" "firmware_axoloti_legacy/Makefile" "firmware_axoloti_legacy/flasher/Makefile" "firmware_axoloti_legacy/mounter/Makefile") (("TRGT =.*") (string-append "TRGT = " (assoc-ref inputs "cross-toolchain") "/bin/arm-none-eabi-\n"))) ;; Hardcode path to "make" (substitute* '("firmware/compile_firmware_linux.sh" "firmware/compile_patch_linux.sh" "firmware_axoloti_legacy/compile_firmware_linux.sh" "firmware_axoloti_legacy/compile_patch_linux.sh") (("make") (which "make"))) ;; Hardcode path to "dfu-util" (substitute* "platform_linux/upload_fw_dfu.sh" (("-f \"\\$\\{platformdir\\}/bin/dfu-util\"") "-z \"\"") (("\\./dfu-util") (which "dfu-util"))))) (delete 'configure) (replace 'build ;; Build Axoloti firmware with cross-compiler (lambda _ (with-directory-excursion "platform_linux" (substitute* "compile_firmware.sh" (("^\"\\$\\{axoloti.*_firmware\\}/compile_firmware_linux.sh" m) (string-append (which "bash") " " m))) (invoke "sh" "compile_firmware.sh")))) (replace 'install (lambda* (#:key inputs #:allow-other-keys) (let* ((share (string-append #$output "/share/ksoloti/")) (doc (string-append share "doc")) (dir (getcwd)) (pats '("/doc/[^/]+$" "/patches/[^/]+/[^/]+$" "/objects/[^/]+/[^/]+$" "/firmware/.+" "/firmware_axoloti_legacy/.+" "/chibios/[^/]+$" "/chibios/boards/ST_STM32F4_DISCOVERY/[^/]+$" "/chibios/(ext|os|docs)/.+" "/CMSIS/[^/]+/[^/]+$" "/patch/[^/]+/[^/]+$" "/[^/]+\\.txt$")) (pattern (string-append "(" (string-join (map (cut string-append dir <>) pats) "|") ")")) (files (find-files dir (lambda (file stat) (and (eq? 'regular (stat:type stat)) (string-match pattern file)))))) (for-each (lambda (file) (install-file file (string-append share (regexp-substitute #f (string-match dir (dirname file)) 'pre 'post)))) files))))))) (inputs `(("chibios" ,(origin (method url-fetch) (uri "mirror://sourceforge/chibios/ChibiOS%20GPL3/Version%202.6.9/ChibiOS_2.6.9.zip") (sha256 (base32 "0lb5s8pkj80mqhsy47mmq0lqk34s2a2m3xagzihalvabwd0frhlj")))) ;; for compiling patches ("make" ,gnu-make) ;; for compiling firmware ("cross-toolchain" ,(make-arm-none-eabi-nano-toolchain-4.9)) ;; for uploading compiled patches and firmware ("dfu-util" ,dfu-util))) (native-inputs (list unzip)) (home-page "https://ksoloti.github.io/") (synopsis "Audio development environment for the Ksoloti board") (description "Ksoloti is an environment for generating and processing digital audio. It can be a programmable virtual modular synthesizer, polysynth, drone box, sequencer, chord generator, multi effect, sample player, looper, granular sampler, MIDI generator/processor, CV or trigger generator, anything in between, and more. The Ksoloti Core is a rework of the discontinued Axoloti Core board. In short, Ksoloti aims for maximum compatibility with the original Axoloti, but with some layout changes and added features. This package provides the runtime.") (license license:gpl3+))) (define-public ksoloti-patcher (package (inherit ksoloti-runtime) (name "ksoloti-patcher") (version (package-version ksoloti-runtime)) (arguments (list #:tests? #f ; no check target #:modules '((guix build gnu-build-system) ((guix build ant-build-system) #:prefix ant:) (guix build utils) (srfi srfi-1) (srfi srfi-26) (ice-9 match) (ice-9 regex) (sxml simple) (sxml xpath) (sxml transform)) #:imported-modules `((guix build ant-build-system) ,@%gnu-build-system-modules) #:phases #~(modify-phases %standard-phases (delete 'configure) (replace 'build (lambda* (#:key inputs #:allow-other-keys) (setenv "JAVA_HOME" (dirname (dirname (search-input-file inputs "/bin/javac")))) ;; We want to use our own jar files instead of the pre-built ;; stuff in lib. So we replace the zipfileset tags in the ;; build.xml with new ones that reference our jars. (let* ((build.xml (with-input-from-file "build.xml" (lambda _ (xml->sxml #:trim-whitespace? #t)))) (jars (append-map (match-lambda (((? (cut string-prefix? "java-" <>) label) . directory) (find-files directory "\\.jar$")) (_ '())) inputs)) (all-jars (append jars (find-files "lib" "\\.jar$"))) (classpath (string-join all-jars ":")) (fileset (map (lambda (jar) `(zipfileset (@ (excludes "META-INF/*.SF") (src ,jar)))) all-jars))) (call-with-output-file "build.xml" (lambda (port) (sxml->xml (pre-post-order build.xml `( ;; Remove all zipfileset tags from the "jar" tree and ;; inject our own tags. (jar . ,(lambda (tag . kids) `(jar ,@(append-map (filter (lambda (e) (not (eq? 'zipfileset (car e))))) kids) ,@fileset))) ;; Skip the "bundle" target (and the "-post-jar" target ;; that depends on it), because we don't need it and it ;; confuses sxml->xml. (target . ,(lambda (tag . kids) (let ((name ((sxpath '(name *text*)) (car kids)))) (if (or (member "bundle" name) (member "-post-jar" name)) '() ; skip `(,tag ,@kids))))) (*default* . ,(lambda (tag . kids) `(,tag ,@kids))) (*text* . ,(lambda (_ txt) (match txt ;; Remove timestamp. ("${TODAY}" "(unknown)") (_ txt)))))) port))) ;; Build it! (invoke "ant" (string-append "-Djavac.classpath=" classpath) "-Dbuild.runtime=true" "-Dbuild.time=01/01/1970 00:00:00" "-Djavac.source=1.8" "-Djavac.target=1.8" (string-append "-Dtag.short.version=" #$version))))) (replace 'install (lambda* (#:key inputs #:allow-other-keys) (let ((share (string-append #$output "/share/ksoloti/"))) (install-file "dist/Ksoloti.jar" share) ;; We do this to ensure that this package retains references to ;; other Java packages' jar files. (install-file "build.xml" share) ;; Create a launcher script (mkdir (string-append #$output "/bin")) (let ((target (string-append #$output "/bin/Ksoloti"))) (with-output-to-file target (lambda () (let* ((dir (string-append #$output "/share/ksoloti")) (runtime (search-input-directory inputs "share/ksoloti")) (toolchain (assoc-ref inputs "cross-toolchain")) (includes (string-append toolchain "/arm-none-eabi/include/:" toolchain "/arm-none-eabi/include/c++:" toolchain "/arm-none-eabi/include/c++/arm-none-eabi/armv7e-m")) (marlin.jar (search-input-file inputs "/share/java/marlin.jar"))) (display (string-append "#!" (which "sh") "\n" "export CROSS_CPATH=" includes "\n" "export CROSS_CPLUS_INCLUDE_PATH=" includes "\n" "export CROSS_LIBRARY_PATH=" toolchain "/arm-none-eabi/lib" "\n" (which "java") " -Xbootclasspath/a:" marlin.jar " -Dsun.java2d.renderer=org.marlin.pisces.MarlinRenderingEngine" " -Dsun.java2d.dpiaware=true" " -Daxoloti_release=" runtime " -Daxoloti_runtime=" runtime " -jar " dir "/Ksoloti.jar"))))) (chmod target #o555))))) (add-after 'install 'strip-jar-timestamps (assoc-ref ant:%standard-phases 'strip-jar-timestamps))))) (inputs `(("openjdk" ,openjdk11 "jdk") ("cross-toolchain" ,(make-arm-none-eabi-nano-toolchain-4.9)) ("java-autocomplete" ,java-autocomplete) ("java-flatlaf" ,java-flatlaf) ("java-flatlaf-intellij-themes" ,java-flatlaf-intellij-themes) ("java-jgit" ,java-jgit-4.2) ("java-jsch" ,java-jsch) ("java-marlin-renderer" ,java-marlin-renderer) ("java-rsyntaxtextarea" ,java-rsyntaxtextarea) ("java-simple-xml" ,java-simple-xml) ("java-usb4java" ,java-usb4java) ("java-slf4j-api" ,java-slf4j-api) ("ksoloti-runtime" ,ksoloti-runtime))) (native-inputs (list ant zip ;for repacking the jar unzip)) (description "Ksoloti is an environment for generating and processing digital audio. It can be a programmable virtual modular synthesizer, polysynth, drone box, sequencer, chord generator, multi effect, sample player, looper, granular sampler, MIDI generator/processor, CV or trigger generator, anything in between, and more. The Ksoloti Core is a rework of the discontinued Axoloti Core board. In short, Ksoloti aims for maximum compatibility with the original Axoloti, but with some layout changes and added features. This package provides the patcher application.")))