gnu: git: Add graphical tools to the "gui" output.
* gnu/packages/version-control.scm (git): Add "gui" output. Add Tcl/Tk as inputs. Add #:configure-flags. Augment 'split' phase to handle graphical user interfaces.
This commit is contained in:
parent
0a5a1db2d4
commit
ecfb69938a
|
@ -39,7 +39,8 @@
|
||||||
#:use-module (gnu packages xml)
|
#:use-module (gnu packages xml)
|
||||||
#:use-module (gnu packages emacs)
|
#:use-module (gnu packages emacs)
|
||||||
#:use-module (gnu packages compression)
|
#:use-module (gnu packages compression)
|
||||||
#:use-module (gnu packages swig))
|
#:use-module (gnu packages swig)
|
||||||
|
#:use-module (gnu packages tcl))
|
||||||
|
|
||||||
(define-public bazaar
|
(define-public bazaar
|
||||||
(package
|
(package
|
||||||
|
@ -93,12 +94,25 @@ from a command line or use a GUI application.")
|
||||||
("zlib" ,zlib)
|
("zlib" ,zlib)
|
||||||
|
|
||||||
;; For 'git-svn'.
|
;; For 'git-svn'.
|
||||||
("subversion" ,subversion)))
|
("subversion" ,subversion)
|
||||||
(outputs '("out" "svn"))
|
|
||||||
|
;; For 'git gui', 'gitk', and 'git citool'.
|
||||||
|
("tcl" ,tcl)
|
||||||
|
("tk" ,tk)))
|
||||||
|
(outputs '("out" ; the core
|
||||||
|
"svn" ; git-svn
|
||||||
|
"gui")) ; gitk, git gui
|
||||||
(arguments
|
(arguments
|
||||||
`(#:make-flags `("V=1") ; more verbose compilation
|
`(#:make-flags `("V=1") ; more verbose compilation
|
||||||
#:test-target "test"
|
#:test-target "test"
|
||||||
#:tests? #f ; FIXME: Many tests are failing
|
#:tests? #f ; FIXME: Many tests are failing
|
||||||
|
|
||||||
|
;; The explicit --with-tcltk forces the build system to hardcode the
|
||||||
|
;; absolute file name to 'wish'.
|
||||||
|
#:configure-flags (list (string-append "--with-tcltk="
|
||||||
|
(assoc-ref %build-inputs "tk")
|
||||||
|
"/bin/wish8.6")) ; XXX
|
||||||
|
|
||||||
#:phases
|
#:phases
|
||||||
(alist-replace
|
(alist-replace
|
||||||
'configure
|
'configure
|
||||||
|
@ -112,14 +126,28 @@ from a command line or use a GUI application.")
|
||||||
(alist-cons-after
|
(alist-cons-after
|
||||||
'install 'split
|
'install 'split
|
||||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||||
|
;; Split the binaries to the various outputs.
|
||||||
(let* ((out (assoc-ref outputs "out"))
|
(let* ((out (assoc-ref outputs "out"))
|
||||||
(svn (assoc-ref outputs "svn"))
|
(svn (assoc-ref outputs "svn"))
|
||||||
|
(gui (assoc-ref outputs "gui"))
|
||||||
|
(gitk (string-append out "/bin/gitk"))
|
||||||
|
(gitk* (string-append gui "/bin/gitk"))
|
||||||
|
(git-gui (string-append out "/libexec/git-core/git-gui"))
|
||||||
|
(git-gui* (string-append gui "/libexec/git-core/git-gui"))
|
||||||
|
(git-cit (string-append out "/libexec/git-core/git-citool"))
|
||||||
|
(git-cit* (string-append gui "/libexec/git-core/git-citool"))
|
||||||
(git-svn (string-append out "/libexec/git-core/git-svn"))
|
(git-svn (string-append out "/libexec/git-core/git-svn"))
|
||||||
(git-svn* (string-append svn "/libexec/git-core/git-svn")))
|
(git-svn* (string-append svn "/libexec/git-core/git-svn")))
|
||||||
|
(mkdir-p (string-append gui "/bin"))
|
||||||
|
(mkdir-p (string-append gui "/libexec/git-core"))
|
||||||
(mkdir-p (string-append svn "/libexec/git-core"))
|
(mkdir-p (string-append svn "/libexec/git-core"))
|
||||||
(copy-file git-svn git-svn*)
|
|
||||||
(delete-file git-svn)
|
(for-each (lambda (old new)
|
||||||
(chmod git-svn* #o555)
|
(copy-file old new)
|
||||||
|
(delete-file old)
|
||||||
|
(chmod new #o555))
|
||||||
|
(list gitk git-gui git-cit git-svn)
|
||||||
|
(list gitk* git-gui* git-cit* git-svn*))
|
||||||
|
|
||||||
;; Tell 'git-svn' where Subversion is.
|
;; Tell 'git-svn' where Subversion is.
|
||||||
(wrap-program git-svn*
|
(wrap-program git-svn*
|
||||||
|
|
Loading…
Reference in New Issue