Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

added zotero, tested with guix shell pure, signed this time #27

Open
wants to merge 3 commits into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
63 changes: 63 additions & 0 deletions guix-science/packages/zotero.scm
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
(define-module (guix-science packages zotero)
#:use-module (guix packages)
#:use-module ((guix licenses)
#:prefix license:)
#:use-module (gnu packages base)
#:use-module (guix download)
#:use-module (nonguix build-system binary)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We cannot depend on nonguix here. The guix-science channel should not depend on the nonguix channel.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well since I have to rely on the binary to build it, and guix itself doesn't have a binary build-system, it's all I've got to work with. See the following mailing list archive: https://lists.gnu.org/archive/html/guix-devel/2019-03/msg00496.html

Additionally, this channel is dedicated to providing open source scientific software; which Zotero is. If the issue is with the build-system and the use of the blob, can we just move this to guix-science nonfree which also uses blobs?

Building this from source, while preferable, takes a lot of time (as you're basically just building a modified version of old Firefox with extra features), and since we don't have access to Cuirass to allow for substitutes, it really seems like this is the easiest option for users and packagers, especially since the current alternative for guix users it to just use the tarball anyway.

#:use-module (gnu packages gcc)
#:use-module (gnu packages gtk)
#:use-module (gnu packages xorg)
#:use-module (gnu packages glib)
#:use-module (ice-9 regex))
(define-public zotero
(package
(name "zotero")
(version "6.0.26")
(source
(origin
(method url-fetch)
(uri (string-append "https://download.zotero.org/client/release/"
version "/Zotero-" version "_linux-x86_64.tar.bz2"))
(sha256
(base32 "0h1bizcqlk22h7nvhnyp3ppymv2hrk7133hgmp15hl3bvfzz7nh6"))))
(build-system binary-build-system)
(arguments
`(#:patchelf-plan `(("zotero-bin" ("gcc:lib"))
("libmozgtk.so" ("gtk+"))
("libxul.so" ("libx11" "dbus-glib" "libxt"
"libgthread")))
#:install-plan '(("./" "/opt/zotero/"))
#:phases (modify-phases %standard-phases
(add-after 'patch-usr-bin-file 'patch-launcher
(lambda* (#:key outputs #:allow-other-keys)
(substitute* "zotero"
((,(regexp-quote
"$(dirname \"$(readlink -f \"$0\")\")"))
(string-append (assoc-ref outputs "out")
"/opt/zotero")))))
(add-after 'install 'install-bin
(lambda* (#:key outputs #:allow-other-keys)
(mkdir-p (string-append (assoc-ref outputs "out") "/bin"))
(symlink (string-append (assoc-ref outputs "out")
"/opt/zotero/zotero")
(string-append (assoc-ref outputs "out")
"/bin/zotero"))
(mkdir-p (string-append (assoc-ref outputs "out")
"/share/applications"))
(symlink (string-append (assoc-ref outputs "out")
"/opt/zotero/zotero.desktop")
(string-append (assoc-ref outputs "out")
"/share/applications/zotero.desktop")))))))
(inputs `(("coreutils" ,coreutils)
("gcc:lib" ,gcc "lib")
("gtk+" ,gtk+)
("libx11" ,libx11)
("libgthread" ,glib)
("libxt" ,libxt)
("dbus-glib" ,dbus-glib)))
(synopsis "Your personal research assistant.")
(description
"Zotero is a free, easy-to-use tool to help you collect, organize, annotate, cite, and share research.")
(home-page "https://www.zotero.org/")
(license license:agpl3)))