+(define-public udevil
+ (package
+ (name "udevil")
+ (version "0.4.4")
+ (source
+ (origin
+ (method git-fetch)
+ (uri
+ (git-reference
+ (url "https://github.com/IgnorantGuru/udevil")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0x9mjr9abvbxzfa9mrip5264iz1qxvsl01k3ybz95q4a7xl4jcb3"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:configure-flags
+ (list
+ "--disable-systemd"
+ (string-append "--sysconfdir="
+ (assoc-ref %outputs "out")
+ "/etc")
+ ;; udevil expects these programs to be run with uid set as root.
+ ;; user has to manually add these programs to setuid-programs.
+ ;; mount and umount are default setuid-programs in guix system.
+ "--with-mount-prog=/run/setuid-programs/mount"
+ "--with-umount-prog=/run/setuid-programs/umount"
+ "--with-losetup-prog=/run/setuid-programs/losetup"
+ "--with-setfacl-prog=/run/setuid-programs/setfacl")
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'remove-root-reference
+ (lambda _
+ (substitute* "src/Makefile.in"
+ (("-o root -g root") ""))
+ #t))
+ (add-after 'unpack 'patch-udevil-reference
+ ;; udevil expects itself to be run with uid set as root.
+ ;; devmon also expects udevil to be run with uid set as root.
+ ;; user has to manually add udevil to setuid-programs.
+ (lambda _
+ (substitute* "src/udevil.c"
+ (("/usr/bin/udevil") "/run/setuid-programs/udevil"))
+ (substitute* "src/devmon"
+ (("`which udevil 2>/dev/null`") "/run/setuid-programs/udevil"))
+ #t)))))
+ (native-inputs
+ `(("intltool" ,intltool)
+ ("pkg-config" ,pkg-config)))
+ (inputs
+ `(("cifs-utils" ,cifs-utils)
+ ("curlftpfs" ,curlftpfs)
+ ("eudev" ,eudev)
+ ("fakeroot" ,fakeroot)
+ ("glib" ,glib)
+ ("sshfs" ,sshfs)))
+ (synopsis "Device and file system manager")
+ (description "udevil is a command line program that mounts and unmounts
+removable devices without a password, shows device info, and monitors device
+changes. It can also mount ISO files, NFS, SMB, FTP, SSH and WebDAV URLs, and
+tmpfs/ramfs filesystems.")
+ (home-page "https://ignorantguru.github.io/udevil/")
+ (license license:gpl3+)))
+