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
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
|
(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)))
|