1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
|
(define-module (px packages tmetric)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix download)
#:use-module (guix packages)
#:use-module (guix utils)
#:use-module (guix build-system trivial)
#:use-module (gnu packages bash)
#:use-module (gnu packages bootstrap)
#:use-module (gnu packages commencement)
#:use-module (gnu packages compression)
#:use-module (gnu packages elf)
#:use-module (gnu packages base)
#:use-module (gnu packages glib)
#:use-module (gnu packages gtk)
#:use-module (gnu packages xorg))
(define-public tmetric
(package
(name "tmetric")
(version "20.2.4")
(source (origin
(method url-fetch)
(uri (string-append "https://source.pantherx.org/" name "_" version ".tgz"))
(sha256
(base32
"0ssw356b6a4z14vw74pdcplz326x6qwxpx6gnwgfg2s004w6raj8"))))
(build-system trivial-build-system)
(arguments
`(#:modules ((guix build utils))
#:builder (begin
(use-modules (guix build utils)
(srfi srfi-26))
(let* ((source (assoc-ref %build-inputs "source"))
(atk (assoc-ref %build-inputs "atk"))
(bash (assoc-ref %build-inputs "bash"))
(cairo (assoc-ref %build-inputs "cairo"))
(coreutils (assoc-ref %build-inputs "coreutils"))
(gdk-pixbuf (assoc-ref %build-inputs "gdk-pixbuf"))
(glib (assoc-ref %build-inputs "glib"))
(gzip (assoc-ref %build-inputs "gzip"))
(gtk (assoc-ref %build-inputs "gtk+"))
(pango (assoc-ref %build-inputs "pango"))
(patchelf (assoc-ref %build-inputs "patchelf"))
(tar (assoc-ref %build-inputs "tar"))
(xz (assoc-ref %build-inputs "xz"))
(libx11 (assoc-ref %build-inputs "libx11"))
(libxss (assoc-ref %build-inputs "libxscrnsaver"))
(ld-so (string-append (assoc-ref %build-inputs "glibc")
,(glibc-dynamic-linker)))
(bin-dir (string-append %output "/bin")))
(mkdir-p bin-dir)
(setenv "PATH" (string-append
(string-append bash "/bin:")
(string-append coreutils "/bin:")
(string-append gzip "/bin:")
(string-append patchelf "/bin:")
(string-append tar "/bin:")
(string-append xz "/bin:")))
(invoke "tar" "xvf" source)
(invoke "tar" "xvf" "tmetric/data.tar.xz")
(substitute* '("usr/share/applications/tmetricdesktop.desktop")
(("Exec=/usr/share/tmetricdesktop/TMetricDesktop") (string-append "Exec=" %output "/bin/tmetric")))
(copy-recursively "usr" %output)
(invoke "patchelf" "--set-interpreter" ld-so (string-append %output "/share/tmetricdesktop/TMetricDesktop"))
(invoke "ln" "-s" (string-append %output "/share/tmetricdesktop/TMetricDesktop")
(string-append %output "/bin/tmetric"))
(wrap-program (string-append %output "/share/tmetricdesktop/TMetricDesktop")
`("LD_LIBRARY_PATH" ":" prefix (,(string-append gdk-pixbuf "/lib"))))
(wrap-program (string-append %output "/share/tmetricdesktop/TMetricDesktop")
`("LD_LIBRARY_PATH" ":" prefix (,(string-append pango "/lib"))))
(wrap-program (string-append %output "/share/tmetricdesktop/TMetricDesktop")
`("LD_LIBRARY_PATH" ":" prefix (,(string-append glib "/lib"))))
(wrap-program (string-append %output "/share/tmetricdesktop/TMetricDesktop")
`("LD_LIBRARY_PATH" ":" prefix (,(string-append cairo "/lib"))))
(wrap-program (string-append %output "/share/tmetricdesktop/TMetricDesktop")
`("LD_LIBRARY_PATH" ":" prefix (,(string-append libx11 "/lib"))))
(wrap-program (string-append %output "/share/tmetricdesktop/TMetricDesktop")
`("LD_LIBRARY_PATH" ":" prefix (,(string-append gtk "/lib"))))
(wrap-program (string-append %output "/share/tmetricdesktop/TMetricDesktop")
`("LD_LIBRARY_PATH" ":" prefix (,(string-append libxss "/lib"))))
(wrap-program (string-append %output "/share/tmetricdesktop/TMetricDesktop")
`("PATH" ":" prefix (,(string-append gtk "/bin"))))
(wrap-program (string-append %output "/share/tmetricdesktop/TMetricDesktop")
`("LD_LIBRARY_PATH" ":" prefix (,(string-append atk "/lib"))))
#t))))
(native-inputs `(("coreutils" ,coreutils)
("cairo" ,cairo)
("gcc-toolchain" ,gcc-toolchain)
("glib" ,glib)
("gdk-pixbuf" ,gdk-pixbuf)
("gtk+" ,gtk+-2)
("glibc" ,glibc)
("libx11" ,libx11)
("libxscrnsaver" ,libxscrnsaver)
("gzip" ,gzip)
("pango" ,pango)
("patchelf" ,patchelf)
("tar" ,tar)
("xz" ,xz)))
(inputs `(("bash" ,bash)
("zlib" ,zlib)))
(home-page "https://tmetric.com/")
(synopsis "Free Time Tracking Software & App")
(description "TMetric is a simple and accurate work time-tracker
that sets you free from tedious time reporting.")
(license license:expat)))
|