aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRaghav Gururajan <raghavgururajan@disroot.org>2020-05-07 15:51:43 -0400
committerDanny Milosavljevic <dannym@scratchpost.org>2020-05-08 16:11:26 +0200
commit7ee215dea9226518911774f35130323d602a8ba9 (patch)
tree22ec687ead968b7e17af1be42da8c81a897097f5
parenta632eeb86cea83957cae69e58e2120cbce598723 (diff)
downloadguix-7ee215dea9226518911774f35130323d602a8ba9.tar.gz
guix-7ee215dea9226518911774f35130323d602a8ba9.zip
gnu: spacefm: Fix functionality.
* gnu/packages/lxde.scm (spacefm): Update package definition. [source]: Change from url-fetch to git-fetch. [inputs]: Add btrfs-progs, coreutils, e2fsprogs, fsarchiver, gphotofs, ntfs-3g and procps. [arguments]<#:phases>[patch-source-files]: Delete phase. [patch-bin-dirs]: New phase. [patch-mime-dirs]: New phase. [patch-setuid-progs]: New phase. [patch-spacefm-conf]: New phase. [arguments]<:configure-flags>: Add "--with-preferable-sudo". Signed-off-by: Danny Milosavljevic <dannym@scratchpost.org>
-rw-r--r--gnu/packages/lxde.scm129
1 files changed, 102 insertions, 27 deletions
diff --git a/gnu/packages/lxde.scm b/gnu/packages/lxde.scm
index a52e403106..38dcd0e8ed 100644
--- a/gnu/packages/lxde.scm
+++ b/gnu/packages/lxde.scm
@@ -29,6 +29,7 @@
#:use-module (gnu packages)
#:use-module (gnu packages admin)
#:use-module (gnu packages autotools)
+ #:use-module (gnu packages base)
#:use-module (gnu packages bash)
#:use-module (gnu packages disk)
#:use-module (gnu packages docbook)
@@ -56,6 +57,7 @@
#:use-module (guix build-system gnu)
#:use-module (guix build-system trivial)
#:use-module (guix download)
+ #:use-module (guix git-download)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix utils))
@@ -250,25 +252,26 @@ with freedesktop.org standard.")
(package
(name "spacefm")
(version "1.0.6")
- (source (origin
- (method url-fetch)
- (uri (string-append
- "https://github.com/IgnorantGuru/spacefm/archive/"
- version ".tar.gz"))
- (sha256
- (base32
- "1jg7xfyr7kihjnalxp8wxyb9qjk8hqf5l36rp3s0lvkpmpyakppy"))
- (modules '((guix build utils)))
- (snippet
- '(begin
- (substitute* "src/main.c"
- (("#include <sys/types\\.h>" all)
- ;; Add missing include for 'major' and 'minor' with glibc
- ;; >= 2.28.
- (string-append all "\n"
- "#include <sys/sysmacros.h>\n")))
- #t))
- (file-name (string-append name "-" version ".tar.gz"))))
+ (source
+ (origin
+ (method git-fetch)
+ (uri
+ (git-reference
+ (url "https://github.com/IgnorantGuru/spacefm.git")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "193mdcv73cfc2bnm4bzmnf1wmkzgj1ya64y0lgyxn3ww36ghcsx9"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ (substitute* "src/main.c"
+ (("#include <sys/types\\.h>" all)
+ ;; Add missing include for 'major' and 'minor' with glibc
+ ;; >= 2.28.
+ (string-append all "\n"
+ "#include <sys/sysmacros.h>\n")))
+ #t))))
(build-system glib-or-gtk-build-system)
(native-inputs
`(("desktop-file-utils" ,desktop-file-utils)
@@ -278,20 +281,27 @@ with freedesktop.org standard.")
("pkg-config" ,pkg-config)))
(inputs
`(("bash" ,bash)
+ ("btrfs-progs" ,btrfs-progs)
("cairo" ,cairo)
+ ("coreutils" ,coreutils)
("curlftpfs" ,curlftpfs)
+ ("e2fsprogs" ,e2fsprogs)
("eudev" ,eudev)
("fakeroot" ,fakeroot)
("ffmpegthumbnailer" ,ffmpegthumbnailer)
+ ("fsarchiver" ,fsarchiver)
("fuseiso" ,fuseiso)
("glib" ,glib)
+ ("gphotofs" ,gphotofs)
("gtk+" ,gtk+)
("ifuse" ,ifuse)
("jmtpfs" ,jmtpfs)
("ktsuss" ,ktsuss)
("libx11" ,libx11)
("lsof" ,lsof)
+ ("ntfs-3g" ,ntfs-3g)
("pango" ,pango)
+ ("procps" ,procps)
("shared-mime-info" ,shared-mime-info)
("startup-notification" ,startup-notification)
("udevil" ,udevil)
@@ -300,23 +310,88 @@ with freedesktop.org standard.")
(arguments
`(#:phases
(modify-phases %standard-phases
- (add-after 'unpack 'patch-source-files
+ (add-after 'unpack 'patch-bin-dirs
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let* ((bash (assoc-ref inputs "bash"))
+ (coreutils (assoc-ref inputs "coreutils"))
+ (util-linux (assoc-ref inputs "util-linux"))
+ (procps (assoc-ref inputs "procps"))
+ (e2fsprogs (assoc-ref inputs "e2fsprogs"))
+ (btrfs-progs (assoc-ref inputs "btrfs-progs"))
+ (ntfs-3g (assoc-ref inputs "ntfs-3g"))
+ (lsof (assoc-ref inputs "lsof"))
+ (fsarchiver (assoc-ref inputs "fsarchiver"))
+ (ktsuss (assoc-ref inputs "ktsuss")))
+ (with-directory-excursion "src"
+ (substitute* '("ptk/ptk-file-task.c" "ptk/ptk-handler.h"
+ "ptk/ptk-location-view.c" "spacefm-auth"
+ "spacefm-auth.bash" "vfs/vfs-file-task.c"
+ "settings.c" "../data/ui/prefdlg.ui"
+ "../data/ui/prefdlg2.ui")
+ (("/bin/sh" file) (string-append bash file))
+ (("/bin/bash" file) (string-append bash file))
+ (("/bin/kill" file) (string-append coreutils file))
+ (("/bin/ls" file) (string-append coreutils file))
+ (("/usr(/bin/sha256sum)" _ file) (string-append coreutils file))
+ (("/usr(/bin/sha512sum)" _ file) (string-append coreutils file))
+ (("/sbin/fsck" file) (string-append util-linux file))
+ (("/sbin/mkfs" file) (string-append util-linux file))
+ (("/sbin/mkswap" file) (string-append util-linux file))
+ (("/bin/ps" file) (string-append procps file))
+ (("/sbin/tune2fs" file) (string-append e2fsprogs file))
+ (("/sbin/btrfs") (string-append btrfs-progs "/bin/btrfs"))
+ (("/sbin/ntfslabel" file) (string-append ntfs-3g file))
+ (("/usr(/bin/lsof)" _ file) (string-append lsof file))
+ (("(/usr)?/(sbin|bin)/fsarchiver") (string-append fsarchiver
+ "/sbin/fsarchiver"))
+ (("/usr(/bin/ktsuss)" _ file) (string-append ktsuss file))))
+ #t)))
+ (add-after 'patch-bin-dirs 'patch-share-dirs
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (share (string-append out "/share")))
+ (with-directory-excursion "src"
+ (substitute* '("main-window.c" "settings.c"
+ "ptk/ptk-app-chooser.c")
+ (("/usr(/local)?/share") share)))
+ #t)))
+ (add-after 'patch-share-dirs 'patch-mime-dirs
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let* ((mime (string-append (assoc-ref inputs "shared-mime-info")
+ "/share/mime")))
+ (with-directory-excursion "src"
+ (substitute* '("mime-type/mime-type.c" "ptk/ptk-file-menu.c")
+ (("/usr(/local)?/share/mime") mime)))
+ #t)))
+ (add-after 'patch-mime-dirs 'patch-setuid-progs
+ (lambda _
+ (let* ((su "/run/setuid-programs/su")
+ (mount "/run/setuid-programs/mount")
+ (umount "/run/setuid-programs/umount")
+ (udevil "/run/setuid-programs/udevil"))
+ (with-directory-excursion "src"
+ (substitute* '("settings.c" "settings.h" "vfs/vfs-file-task.c"
+ "vfs/vfs-volume-hal.c" "../data/ui/prefdlg.ui"
+ "../data/ui/prefdlg2.ui")
+ (("(/usr)?/bin/su") su)
+ (("/(bin|sbin)/mount") mount)
+ (("/(bin|sbin)/umount") umount)
+ (("/usr/bin/udevil") udevil)))
+ #t)))
+ (add-after 'patch-setuid-progs 'patch-spacefm-conf
(lambda* (#:key inputs #:allow-other-keys)
- ;; Patch config file to load programs correctly.
(substitute* "etc/spacefm.conf"
(("#terminal_su=/bin/su")
- "terminal_su=/run/setuid-programs/sudo")
+ "terminal_su=/run/setuid-programs/su")
(("#graphical_su=/usr/bin/gksu")
(string-append "graphical_su="
(string-append (assoc-ref inputs "ktsuss")
"/bin/ktsuss"))))
- ;; SpaceFM expects udevil to have uid set to root.
- ;; User has to manually add udevil to setuid-programs.
- (substitute* "src/settings.c"
- (("/usr/bin/udevil")
- "/run/setuid-programs/udevil"))
#t)))
#:configure-flags (list
+ (string-append "--with-preferable-sudo="
+ (assoc-ref %build-inputs "ktsuss")
+ "/bin/ktsuss")
(string-append "--with-bash-path="
(assoc-ref %build-inputs "bash")
"/bin/bash")