summaryrefslogtreecommitdiff
path: root/px/packages/tmetric.scm
blob: 615bd9b5f036f7d6715702ec8615fe1a9a57fc4c (plain)
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)))