nonguix/modules/nongnu/packages/engineering.scm
Giacomo Leidi 89b524ab58
Move Guile modules under modules/ .
This patch moves Guile modules shipped as a Guix channel under the
modules directory.  The rationale behind this is that we are probably
adding unwanted files into Guile's load path, such as the news file and
possible scripts that could be added to the channel repository in the future.

* guix-channel (channel): Set directory field.

* nongnu/*: Move under modules/nongnu.

* nonguix/*: Move under modules/nonguix.
2025-01-04 02:11:36 +01:00

74 lines
3.2 KiB
Scheme

;;; SPDX-License-Identifier: GPL-3.0-or-later
;;; Copyright © 2022 Demis Balbach <db@minikn.xyz>
;;; Copyright © 2023 Jonathan Brielmaier <jonathan.brielmaier@web.de>
;;; Copyright © 2023 Giacomo Leidi <goodoldpaul@autistici.org>
(define-module (nongnu packages engineering)
#:use-module (gnu packages base)
#:use-module (gnu packages xorg)
#:use-module (guix download)
#:use-module (guix gexp)
#:use-module (guix packages)
#:use-module (guix utils)
#:use-module ((guix licenses) :prefix license:)
#:use-module (nonguix build-system chromium-binary)
#:use-module ((nonguix licenses) :prefix license:)
#:use-module (ice-9 match))
(define-public lycheeslicer
(package
(name "lycheeslicer")
(version "4.1.0")
(source
(origin
(method url-fetch)
(uri
(string-append
"https://mango-lychee.nyc3.cdn.digitaloceanspaces.com/LycheeSlicer-" version ".deb"))
(sha256
(base32 "1rv3f8d1sb5irn4y8hjzk2m7c9irw71ls8p1mqambxg79q9ffj9m"))))
(supported-systems '("x86_64-linux"))
(build-system chromium-binary-build-system)
(arguments
(list #:validate-runpath? #f ; TODO: fails on wrapped binary and included other files
#:wrapper-plan
#~'("lib/LycheeSlicer/lycheeslicer")
#:phases
#~(modify-phases %standard-phases
(add-after 'binary-unpack 'setup-cwd
(lambda _
;; Use the more standard lib directory for everything.
(rename-file "opt/" "lib")
(mkdir-p "share")
(copy-recursively "usr/share" "share")
;; Remove unneeded files.
(delete-file-recursively "usr")))
(add-after 'setup-cwd 'fix-desktop-file
(lambda _
;; Fix the .desktop file binary location.
(substitute* '("share/applications/lycheeslicer.desktop")
(("/opt/LycheeSlicer")
(string-append #$output "/lib/LycheeSlicer")))))
(add-before 'install-wrapper 'symlink-binary-file
(lambda _
(mkdir-p (string-append #$output "/bin"))
(symlink (string-append #$output "/lib/LycheeSlicer/lycheeslicer")
(string-append #$output "/bin/lycheeslicer"))))
(add-after 'install-wrapper 'wrap-where-patchelf-does-not-work
(lambda _
(wrap-program (string-append #$output "/lib/LycheeSlicer/lycheeslicer")
`("LD_LIBRARY_PATH" ":" prefix
(,(string-join
(list
(string-append #$output "/lib/LycheeSlicer"))
":")))))))))
(inputs
(list libxscrnsaver))
(home-page "https://mango3d.io")
(synopsis "Slicer for resin 3d printers of different manufacturers")
(description "A user-friendly slicing software for resin 3d printers. It
supports printers and resins of different manufacturers alongside
community-created profiles as well. It offers a paid- and free version with a
reduced feature set.")
(license (license:nonfree "https://mango3d.io/terms-and-conditions"))))