[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH] Add patchutils and quilt
From: |
Eric Bavier |
Subject: |
[PATCH] Add patchutils and quilt |
Date: |
Mon, 07 Apr 2014 11:18:46 -0500 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/23.3 (gnu/linux) |
The following patch adds two new packages: patchutils and quilt.
Comments welcome.
>From df0c351c53ede204d4b60bad0c0709fec0708675 Mon Sep 17 00:00:00 2001
From: Eric Bavier <address@hidden>
Date: Mon, 7 Apr 2014 11:15:48 -0500
Subject: [PATCH] gnu: Add patchutils and quilt
* gnu/packages/patchutils.scm: New file
* gnu/packages/patches/patchutils-xfail-gendiff-tests.patch: New patch
* gnu-system.am (GNU_SYSTEM_MODULES): Add patchutils.
(dist_patch_DATA): Add patch.
---
gnu-system.am | 2 +
.../patches/patchutils-xfail-gendiff-tests.patch | 26 ++++
gnu/packages/patchutils.scm | 157 +++++++++++++++++++++
3 files changed, 185 insertions(+)
create mode 100644 gnu/packages/patches/patchutils-xfail-gendiff-tests.patch
create mode 100644 gnu/packages/patchutils.scm
diff --git a/gnu-system.am b/gnu-system.am
index 5d817cc..38cf869 100644
--- a/gnu-system.am
+++ b/gnu-system.am
@@ -169,6 +169,7 @@ GNU_SYSTEM_MODULES = \
gnu/packages/package-management.scm \
gnu/packages/parallel.scm \
gnu/packages/parted.scm \
+ gnu/packages/patchutils.scm \
gnu/packages/pcre.scm \
gnu/packages/pdf.scm \
gnu/packages/pem.scm \
@@ -312,6 +313,7 @@ dist_patch_DATA =
\
gnu/packages/patches/mit-krb5-init-fix.patch \
gnu/packages/patches/mpc123-initialize-ao.patch \
gnu/packages/patches/patchelf-page-size.patch \
+ gnu/packages/patches/patchutils-xfail-gendiff-tests.patch \
gnu/packages/patches/perl-no-sys-dirs.patch \
gnu/packages/patches/plotutils-libpng-jmpbuf.patch \
gnu/packages/patches/procps-make-3.82.patch \
diff --git a/gnu/packages/patches/patchutils-xfail-gendiff-tests.patch
b/gnu/packages/patches/patchutils-xfail-gendiff-tests.patch
new file mode 100644
index 0000000..b2e77d2
--- /dev/null
+++ b/gnu/packages/patches/patchutils-xfail-gendiff-tests.patch
@@ -0,0 +1,26 @@
+The gendiff1 and gendiff2 tests need the gendiff script that's distributed
+with the rpm package management tool. Without that script, these tests are
+expected to fail.
+
+Need to mark one of the tests as PHONY to get permissions set correctly on
+built scripts.
+
+--- a/Makefile.in 2011-02-10 09:44:43.000000000 -0600
++++ b/Makefile.in 2014-03-06 17:27:55.610048953 -0600
+@@ -378,6 +378,8 @@
+ # These ones don't work yet.
+ # Feel free to send me patches. :-)
+ XFAIL_TESTS = \
++ tests/gendiff1/run-test \
++ tests/gendiff2/run-test \
+ tests/delhunk5/run-test \
+ tests/delhunk6/run-test
+
+@@ -1106,6 +1108,7 @@
+ rm -f $(DESTDIR)$(bindir)/"`echo lsdiff|sed '$(transform)'`"
+ rm -f $(DESTDIR)$(bindir)/"`echo grepdiff|sed '$(transform)'`"
+
++.PHONY: tests/combine1/run-test
+ tests/combine1/run-test: src/combinediff$(EXEEXT) src/flipdiff$(EXEEXT) \
+ src/lsdiff$(EXEEXT) src/grepdiff$(EXEEXT)
+ for script in $(bin_SCRIPTS); do \
diff --git a/gnu/packages/patchutils.scm b/gnu/packages/patchutils.scm
new file mode 100644
index 0000000..9252b53
--- /dev/null
+++ b/gnu/packages/patchutils.scm
@@ -0,0 +1,157 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2014 Eric Bavier <address@hidden>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages patchutils)
+ #:use-module (guix packages)
+ #:use-module (guix licenses)
+ #:use-module (guix download)
+ #:use-module (guix build-system gnu)
+ #:use-module (gnu packages)
+ #:use-module (gnu packages ed)
+ #:use-module (gnu packages base)
+ #:use-module (gnu packages bash)
+ #:use-module (gnu packages file)
+ #:use-module (gnu packages gawk)
+ #:use-module (gnu packages less)
+ #:use-module (gnu packages perl))
+
+(define-public patchutils
+ (package
+ (name "patchutils")
+ (version "0.3.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "http://cyberelk.net/tim/data/patchutils/stable/"
+ name "-" version ".tar.bz2"))
+ (sha256
+ (base32
+ "08dffxlkpjafyfrb98hs39h5d8pwgrqrkndwqvxymyj23dbimszx"))
+ (patches
+ (list (search-patch "patchutils-xfail-gendiff-tests.patch")))))
+ (build-system gnu-build-system)
+ (inputs `(("perl" ,perl)
+ ("diffutils" ,diffutils)
+ ("patch" ,patch)
+ ("sed" ,sed)
+ ("gawk" ,gawk)))
+ (arguments
+ '(#:parallel-tests? #f
+ #:phases (alist-cons-before
+ 'check 'patch-test-scripts
+ (lambda _
+ (let ((echo (which "echo")))
+ (substitute*
+ (find-files "tests" "^run-test$")
+ (("/bin/echo") echo))))
+ (alist-cons-after
+ 'install 'wrap-program
+ ;; Point installed scripts to the utilities they need.
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (diffutils (assoc-ref inputs "diffutils"))
+ (sed (assoc-ref inputs "sed"))
+ (gawk (assoc-ref inputs "gawk")))
+ (for-each
+ (lambda (prog)
+ (wrap-program (string-append out "/bin/" prog)
+ `("PATH" ":" prefix
+ ,(map (lambda (dir)
+ (string-append dir "/bin"))
+ (list diffutils sed gawk)))))
+ '("dehtmldiff" "editdiff" "espdiff"))))
+ %standard-phases))))
+ (home-page "http://freecode.com/projects/patchutils")
+ (synopsis "Collection of tools for manupulating patch files")
+ (description
+ "Patchutils contains a collection of tools for manipulating patch files:
+interdiff, combinediff, flipdiff, filterdiff, fixcvsdiff, rediff, lsdiff,
+grepdiff, splitdiff, recountdiff, and unwrapdiff. You can use interdiff to
+create an incremental patch between two patches that are against a common
+source tree, combinediff for creating a cumulative diff from two incremental
+patches, and flipdiff to transpose two incremental patches. Filterdiff is for
+extracting or excluding patches from a patch set based on modified files
+matching shell wildcards. Lsdiff lists modified files in a patch. Rediff,
+recountdiff, and unwrapdiff correct hand-edited (or otherwise broken)
+patches.")
+ (license gpl2+)))
+
+(define-public quilt
+ (package
+ (name "quilt")
+ (version "0.61")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://savannah/quilt/"
+ name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1hwz58djkq9cv46sjwxbp2v5m8yjr41kd0nm1zm1xm6418khmv0y"))))
+ (build-system gnu-build-system)
+ (inputs `(("perl" ,perl)
+ ("diffutils" ,diffutils)
+ ("findutils" ,findutils)
+ ("less" ,less)
+ ("file" ,file)
+ ("ed" ,ed)
+ ("sed" ,sed)
+ ("bash" ,bash)
+ ("grep" ,grep)))
+ (arguments
+ '(#:parallel-tests? #f
+ #:phases
+ (alist-cons-before
+ 'check 'patch-tests
+ (lambda _
+ (substitute*
+ '("test/run"
+ "test/edit.test")
+ (("/bin/sh") (which "sh")))
+ ;; TODO: Run the mail tests once the mail feature can be supported.
+ (delete-file "test/mail.test"))
+ (alist-cons-after
+ 'install 'wrap-program
+ ;; quilt's configure checks for the absolute path to the utilities it
+ ;; needs, but uses only the name when invoking them, so we need to
+ ;; make sure the quilt script can find those utilities when run.
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (coreutils (assoc-ref inputs "coreutils"))
+ (diffutils (assoc-ref inputs "diffutils"))
+ (findutils (assoc-ref inputs "findutils"))
+ (less (assoc-ref inputs "less"))
+ (file (assoc-ref inputs "file"))
+ (ed (assoc-ref inputs "ed"))
+ (sed (assoc-ref inputs "sed"))
+ (bash (assoc-ref inputs "bash"))
+ (grep (assoc-ref inputs "grep")))
+ (wrap-program (string-append out "/bin/quilt")
+ `("PATH" ":" prefix
+ ,(map (lambda (dir)
+ (string-append dir "/bin"))
+ (list coreutils diffutils findutils
+ less file ed sed bash grep))))))
+ %standard-phases))))
+ (home-page "https://savannah.nongnu.org/projects/quilt/")
+ (synopsis "Script for managing patches to software")
+ (description
+ "Quilt allows you to easily manage large numbers of patches by keeping
+track of the changes each patch makes. Patches can be applied, un-applied,
+refreshed, and more. ")
+ (license gpl2)))
--
1.8.4
--
`~Eric
- [PATCH] Add patchutils and quilt,
Eric Bavier <=