;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2017, 2018, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017, 2018, 2020, 2021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017 Gábor Boskovits <boskovits@gmail.com>
-;;; Copyright © 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2017, 2018, 2021 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2018 Leo Famulari <leo@famulari.name>
-;;; Copyright © 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2020 Raghav Gururajan <raghavgururajan@disroot.org>
;;; Copyright © 2020 Morgan Smith <Morgan.J.Smith@outlook.com>
+;;; Copyright © 2021 raid5atemyhomework <raid5atemyhomework@protonmail.com>
+;;; Copyright © 2021 Stefan Reichör <stefan@xsteve.at>
;;;
;;; This file is part of GNU Guix.
;;;
#:use-module (guix build-system cmake)
#:use-module (guix build-system copy)
#:use-module (guix build-system gnu)
+ #:use-module (guix build-system go)
#:use-module (guix build-system linux-module)
#:use-module (guix build-system python)
#:use-module (guix build-system trivial)
#:use-module (gnu packages gawk)
#:use-module (gnu packages glib)
#:use-module (gnu packages gnupg)
+ #:use-module (gnu packages golang)
#:use-module (gnu packages kerberos)
#:use-module (gnu packages libffi)
#:use-module (gnu packages linux)
(define-public autofs
(package
(name "autofs")
- (version "5.1.6")
+ (version "5.1.7")
(source
(origin
(method url-fetch)
"v" (version-major version) "/"
"autofs-" version ".tar.xz"))
(sha256
- (base32 "1vya21mb4izj3khcr3flibv7xc15vvx2v0rjfk5yd31qnzcy7pnx"))))
+ (base32 "1myfz6a3wj2c4j9h5g44zj796fdi82jhp1s92w2hg6xp2632csx3"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags
(("^searchpath=\".*\"")
"searchpath=\"$PATH\""))
#t))
+ (add-before 'configure 'fix-rpath
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ (substitute* "Makefile.rules"
+ (("^AUTOFS_LIB_LINK.*=" match)
+ (string-append match " -Wl,-rpath=" out "/lib"))))))
(add-before 'install 'omit-obsolete-lookup_nis.so-link
;; Building lookup_yp.so depends on $(YPCLNT) but this doesn't,
;; leading to a make error. Since it's broken, comment it out.
(define-public bindfs
(package
(name "bindfs")
- (version "1.14.8")
+ (version "1.15.1")
(source (origin
(method url-fetch)
(uri (string-append "https://bindfs.org/downloads/bindfs-"
version ".tar.gz"))
(sha256
(base32
- "15y4brlcrqhxl6z73785m0dr1vp2q3wc6xss08x9jjr0apzmmjp5"))))
+ "1av8dj9i1g0105fs5r9srqqsp7yahlhwc0yl8i1szyfdls23bp84"))))
(build-system gnu-build-system)
(arguments
;; XXX: The tests have no hope of passing until there is a "nogroup"
(home-page "https://bindfs.org")
(synopsis "Bind mount a directory and alter permission bits")
(description
- "@command{bindfs} is a FUSE filesystem for mounting a directory to
+ "@command{bindfs} is a FUSE file system for mounting a directory to
another location, similar to @command{mount --bind}. It can be used for:
@itemize
@item Making a directory read-only.
(description
"The @acronym{WebDAV, Web Distributed Authoring and Versioning} extension
to the HTTP protocol defines a standard way to author resources on a remote Web
-server. Davfs2 exposes such resources as a typical filesystem which can be used
-by standard applications with no built-in support for WebDAV, such as the GNU
-coreutils (@command{cp}, @command{mv}, etc.) or a graphical word processor.
+server. Davfs2 exposes such resources as a typical file system which can be
+used by standard applications with no built-in support for WebDAV, such as the
+GNU coreutils (@command{cp}, @command{mv}, etc.) or a graphical word processor.
Davfs2 works with most WebDAV servers with no or little configuration. It
supports TLS (HTTPS), HTTP proxies, HTTP basic and digest authentication, and
(define-public fsarchiver
(package
(name "fsarchiver")
- (version "0.8.5")
+ (version "0.8.6")
(source
(origin
(method git-fetch)
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "1rvwq5v3rl14bqxjm1ibfapyicf0sa44nw7451v10kx39lp56ylp"))))
+ (base32 "1ry2sdkfbg4bwcldk42g1i3wa3z4pr9yh9dil6ilhwcvhqiw41zc"))))
(build-system gnu-build-system)
(native-inputs
`(("autoconf" ,autoconf)
(license license:gpl2+)))
(define-public bcachefs-tools
- (let ((commit "db931a4571817d7d61be6bce306f1d42f7cd3398")
- (revision "2"))
+ (let ((commit "ce906d661e63d4318b9f26ec145f2ff5fddf5162")
+ (revision "5"))
(package
(name "bcachefs-tools")
(version (git-version "0.1" revision commit))
(commit commit)))
(file-name (git-file-name name version))
(sha256
- (base32 "1zl8lda6ni6rhsmsng6smrcjihy2irjf03h1m7nvkqmkhq44j80s"))))
+ (base32 "1fkfqrk3q6shjr8jnpf3myd79xdpc8hbs0grwdmzb3dhw65k9isi"))))
(build-system gnu-build-system)
(arguments
`(#:make-flags
(define-public exfatprogs
(package
(name "exfatprogs")
- (version "1.0.4")
+ (version "1.1.0")
(source
(origin
(method git-fetch)
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "1braffz1wc4ki3nb42q85l5zg2dl2hwjr64rk27nc85wcsrbavnl"))))
+ (base32 "1ciy28lx7c1vr1f138qi0mkz88pzlkay6nlwmp1yjzd830x48549"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags
(define-public disorderfs
(package
(name "disorderfs")
- (version "0.5.10")
+ (version "0.5.11")
(source
(origin
(method git-fetch)
(file-name (git-file-name name version))
(sha256
(base32
- "0lsisx5118k0qk0b5klbxl03rvhycnznyfx05yxmjawh85bfhmlh"))))
+ "1pnrj0h8sgqwgsc18vz3fkqsp6vhigdbi75vdj0si1r6wgslnr7z"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)))
(define-public zfs
(package
(name "zfs")
- (version "0.8.5")
+ (version "2.0.4")
(outputs '("out" "module" "src"))
(source
(origin
"/download/zfs-" version
"/zfs-" version ".tar.gz"))
(sha256
- (base32 "0gfdnynmsxbhi97q73smrgmcw1k8zmlr1hgljfn38sk0kimivd6v"))))
+ (base32 "0v2zshimz5miyj8mbskb52pnzyl1s4rhpr6208zq549v8g2l84vx"))))
(build-system linux-module-build-system)
(arguments
`(;; The ZFS kernel module should not be downloaded since the license
(let ((out (assoc-ref outputs "out"))
(src (assoc-ref outputs "src"))
(util-linux (assoc-ref inputs "util-linux"))
- (nfs-utils (assoc-ref inputs "nfs-utils")))
+ (nfs-utils (assoc-ref inputs "nfs-utils"))
+ (kmod (assoc-ref inputs "kmod-runtime")))
+ (substitute* "etc/Makefile.in"
+ ;; This just contains an example configuration file for
+ ;; configuring ZFS on traditional init systems, skip it
+ ;; since we cannot use it anyway; the install target becomes
+ ;; misdirected.
+ (("= default ") "= "))
+ (substitute* "lib/libzfs/os/linux/libzfs_util_os.c"
+ ;; Use path to /gnu/store/*-kmod in actual path that is exec'ed.
+ (("\"/sbin/modprobe\"")
+ (string-append "\"" kmod "/bin/modprobe" "\""))
+ ;; Just use 'modprobe' in message to user, since Guix
+ ;; does not have a traditional /sbin/
+ (("'/sbin/modprobe ") "'modprobe "))
(substitute* "contrib/Makefile.in"
;; This is not configurable nor is its hard-coded /usr prefix.
((" initramfs") ""))
- (substitute* "module/zfs/zfs_ctldir.c"
+ (substitute* "module/os/linux/zfs/zfs_ctldir.c"
(("/usr/bin/env\", \"umount")
(string-append util-linux "/bin/umount\", \"-n"))
(("/usr/bin/env\", \"mount")
(string-append util-linux "/bin/mount\", \"-n")))
- (substitute* "lib/libzfs/libzfs_mount.c"
+ (substitute* "lib/libzfs/os/linux/libzfs_mount_os.c"
(("/bin/mount") (string-append util-linux "/bin/mount"))
(("/bin/umount") (string-append util-linux "/bin/umount")))
- (substitute* "lib/libshare/nfs.c"
+ (substitute* "lib/libshare/os/linux/nfs.c"
(("/usr/sbin/exportfs")
(string-append nfs-utils "/sbin/exportfs")))
(substitute* "config/zfs-build.m4"
(substitute* "contrib/pyzfs/Makefile.in"
((".*install-lib.*") ""))
(substitute* '("Makefile.am" "Makefile.in")
- (("\\$\\(prefix)/src") (string-append src "/src"))))
+ (("\\$\\(prefix)/src") (string-append src "/src")))
+ (substitute* (find-files "udev/rules.d/" ".rules.in$")
+ (("/sbin/modprobe") (string-append kmod "/bin/modprobe"))))
#t))
(replace 'build
(lambda _ (invoke "make")))
("pkg-config" ,pkg-config)))
(inputs
`(("eudev" ,eudev)
+ ("kmod-runtime" ,kmod)
("libaio" ,libaio)
("libtirpc" ,libtirpc)
("nfs-utils" ,nfs-utils)
("openssl" ,openssl)
("python" ,python)
("python-cffi" ,python-cffi)
- ("util-linux" ,util-linux "lib")
+ ("util-linux" ,util-linux)
+ ("util-linux:lib" ,util-linux "lib")
("zlib" ,zlib)))
(home-page "https://zfsonlinux.org/")
- (synopsis "Native ZFS on Linux")
+ (synopsis "OpenZFS on Linux")
(description
- "ZFS on Linux is an advanced file system and volume manager which was
+ "OpenZFS is an advanced file system and volume manager which was
originally developed for Solaris and is now maintained by the OpenZFS
community.")
(license license:cddl1.0)))
(define-public mergerfs
(package
(name "mergerfs")
- (version "2.31.0")
+ (version "2.32.4")
(source
(origin
(method url-fetch)
version "/mergerfs-" version ".tar.gz"))
(sha256
(base32
- "0k4asbg5n9dhy5jpjkw6simqqnr1zira2y4i71cq05091dfwm90p"))))
+ "0yz7nljx6axcj6hb09sgc0waspgfhp535228rjqvqgyd8y74jc3s"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; No tests exist.
(define-public python-dropbox
(package
(name "python-dropbox")
- (version "10.3.1")
+ (version "11.5.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "dropbox" version))
(sha256
(base32
- "137rn9fs1bg1p1khd5lcccfxh8jsx27dh2ix5wwd8cmddbrzdrbd"))))
+ "16bxx9xqx2s4d9khrw57a0bj4q7nc6kq355wl4pfddn9cqvh9rg2"))))
(build-system python-build-system)
(arguments '(#:tests? #f)) ; Tests require a network connection.
(native-inputs
("python-chardet" ,python-chardet)
("python-requests" ,python-requests)
("python-six" ,python-six)
+ ("python-stone" ,python-stone)
("python-urllib3" ,python-urllib3)))
(home-page "https://www.dropbox.com/developers")
(synopsis "Official Dropbox API Client")
(define-public dbxfs
(package
(name "dbxfs")
- (version "1.0.43")
+ (version "1.0.51")
(source
(origin
(method url-fetch)
(uri (pypi-uri "dbxfs" version))
(sha256
(base32
- "1f9sy2ax215dxiwszrrcadffjdsmrlxm4kwrbiap9dhxvzm226ks"))
+ "1zz82d0mnql55397x4jx7z5rn857rf9zhjv895j93wpxdq10xwvk"))
(patches (search-patches "dbxfs-remove-sentry-sdk.patch"))))
(build-system python-build-system)
(arguments
"@code{dbxfs} allows you to mount your Dropbox folder as if it were a
local file system using FUSE.")
(license license:gpl3+)))
+
+(define-public go-github-com-hanwen-fuse
+ (package
+ (name "go-github-com-hanwen-fuse")
+ (version "2.0.3")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/hanwen/go-fuse")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1y44d08fxyis99s6jxdr6dbbw5kv3wb8lkhq3xmr886i4w41lz03"))))
+ (build-system go-build-system)
+ (arguments
+ `(#:import-path "github.com/hanwen/go-fuse"))
+ (propagated-inputs
+ `(("go-golang-org-x-sys" ,go-golang-org-x-sys)))
+ (home-page "https://github.com/hanwen/go-fuse")
+ (synopsis "FUSE bindings for Go")
+ (description
+ "This package provides Go native bindings for the FUSE kernel module.")
+ (license license:bsd-3)))
+
+(define-public tmsu
+ (package
+ (name "tmsu")
+ (version "0.7.5")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/oniony/TMSU")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0834hah7p6ad81w60ifnxyh9zn09ddfgrll04kwjxwp7ypbv38wq"))))
+ (build-system go-build-system)
+ (arguments
+ `(#:import-path "github.com/oniony/TMSU"
+ #:unpack-path ".."
+ #:install-source? #f
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'install 'post-install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ ;; The go build system produces /bin/TMSU -> install as /bin/tmsu
+ (rename-file (string-append out "/bin/TMSU")
+ (string-append out "/bin/tmsu"))))))))
+ (inputs
+ `(("go-github-com-mattn-go-sqlite3" ,go-github-com-mattn-go-sqlite3)
+ ("go-github-com-hanwen-fuse" ,go-github-com-hanwen-fuse)))
+ (home-page "https://github.com/oniony/TMSU")
+ (synopsis "Tag files and access them through a virtual file system")
+ (description
+ "TMSU is a tool for tagging your files. It provides a simple
+command-line utility for applying tags and a virtual file system to give you a
+tag-based view of your files from any other program. TMSU does not alter your
+files in any way: they remain unchanged on disk, or on the network, wherever
+your put them. TMSU maintains its own database and you simply gain an
+additional view, which you can mount where you like, based upon the tags you
+set up.")
+ (license license:gpl3+)))