mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-12-24 21:38:07 -05:00
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>
This commit is contained in:
parent
a632eeb86c
commit
7ee215dea9
1 changed files with 102 additions and 27 deletions
|
@ -29,6 +29,7 @@ (define-module (gnu packages lxde)
|
|||
#: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 @@ (define-module (gnu packages lxde)
|
|||
#: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 @@ (define-public spacefm
|
|||
(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 @@ (define-public spacefm
|
|||
("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 @@ (define-public spacefm
|
|||
(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")
|
||||
|
|
Loading…
Reference in a new issue