gnu: Add git-flow.

* gnu/packages/version-control.scm (git-flow, shflags): New variables.
This commit is contained in:
Eric Bavier 2014-11-22 02:04:35 -06:00
parent 40b4c6d606
commit c7810bd1a8
1 changed files with 94 additions and 1 deletions

View File

@ -4,6 +4,7 @@
;;; Copyright © 2013, 2014 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2013, 2014 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2013, 2014 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2013, 2014 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2014 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -22,13 +23,18 @@
(define-module (gnu packages version-control) (define-module (gnu packages version-control)
#:use-module ((guix licenses) #:use-module ((guix licenses)
#:select (asl2.0 gpl1+ gpl2 gpl2+ gpl3+ x11-style)) #:select (asl2.0 bsd-2
gpl1+ gpl2 gpl2+ gpl3+ lgpl2.1
x11-style))
#:use-module (guix packages) #:use-module (guix packages)
#:use-module (guix download) #:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix build-system gnu) #:use-module (guix build-system gnu)
#:use-module (guix build-system python) #:use-module (guix build-system python)
#:use-module (guix build-system trivial)
#:use-module (guix build utils) #:use-module (guix build utils)
#:use-module (gnu packages apr) #:use-module (gnu packages apr)
#:use-module (gnu packages base)
#:use-module (gnu packages bison) #:use-module (gnu packages bison)
#:use-module (gnu packages cook) #:use-module (gnu packages cook)
#:use-module (gnu packages curl) #:use-module (gnu packages curl)
@ -204,6 +210,93 @@ everything from small to very large projects with speed and efficiency.")
(license gpl2) (license gpl2)
(home-page "http://git-scm.com/"))) (home-page "http://git-scm.com/")))
(define-public shflags
(package
(name "shflags")
(version "1.0.3")
(source (origin
(method url-fetch)
(uri (string-append "https://shflags.googlecode.com/files/"
"shflags-" version ".tgz"))
(sha256
(base32
"08laxhf1hifh3w4j0hri5ppcklaqz0mnkmbaz8j0wxih29vi8slm"))))
(build-system trivial-build-system)
(native-inputs `(("tar" ,tar)
("gzip" ,gzip)))
(arguments
`(#:modules ((guix build utils))
#:builder (begin
(use-modules (guix build utils))
(let* ((source (assoc-ref %build-inputs "source"))
(tar (assoc-ref %build-inputs "tar"))
(gzip (assoc-ref %build-inputs "gzip"))
(output (assoc-ref %outputs "out"))
(srcdir (string-append output "/src")))
(begin
(setenv "PATH" (string-append gzip "/bin"))
(system* (string-append tar "/bin/tar") "xzf"
source)
(chdir ,(string-append name "-" version))
(mkdir-p srcdir)
(copy-file "src/shflags"
(string-append srcdir "/shflags"))
#t)))))
(home-page "https://code.google.com/p/shflags/")
(synopsis "Command-line flags library for shell scripts")
(description
"Shell Flags (shFlags) is a library written to greatly simplify the
handling of command-line flags in Bourne based Unix shell scripts (bash, dash,
ksh, sh, zsh). Most shell scripts use getopt for flags processing, but the
different versions of getopt on various OSes make writing portable shell
scripts difficult. shFlags instead provides an API that doesn't change across
shell and OS versions so the script writer can be confident that the script
will work.")
(license lgpl2.1)))
(define-public git-flow
(package
(name "git-flow")
;; This version has not be officially released yet, so we build it
;; directly from the git repository.
(version "0.4.2-pre")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/nvie/gitflow/")
(commit "15aab26")))
(sha256
(base32
"01fs97q76fdfnvmrh2cyjhywcs3pykf1dg58sy0frflnsdzs6prx"))))
(build-system gnu-build-system)
(inputs `(("shflags" ,shflags)))
(arguments
'(#:tests? #f ; no tests
#:make-flags (list (string-append "prefix="
(assoc-ref %outputs "out")))
#:phases (alist-cons-after
'unpack 'reset-shFlags-link
(lambda* (#:key inputs #:allow-other-keys)
;; The link points to a file in the shFlags submodule.
;; Redirect it to point to our system shFlags.
(let ((shflags (assoc-ref inputs "shflags")))
(begin
(delete-file "gitflow-shFlags")
(symlink (string-append shflags "/src/shflags")
"gitflow-shFlags"))))
(alist-delete
'configure
(alist-delete 'build %standard-phases)))))
(home-page "http://nvie.com/posts/a-successful-git-branching-model/")
(synopsis "Git extensions for Vincent Driessen's branching model")
(description
"Vincent Driessen's branching model is a git branching and release
management strategy that helps developers keep track of features, hotfixes,
and releases in bigger software projects. The git-flow library of git
subcommands helps automate some parts of the flow to make working with it a
lot easier.")
(license bsd-2)))
(define-public mercurial (define-public mercurial
(package (package
(name "mercurial") (name "mercurial")