summary refs log tree commit diff
path: root/gnu
diff options
context:
space:
mode:
authorAndreas Enge <andreas@enge.fr>2015-02-21 19:24:54 +0100
committerAndreas Enge <andreas@enge.fr>2015-02-21 19:24:54 +0100
commit8cc91fa04131e1b37339bd08c48b117f1c32aa29 (patch)
tree3f69b804e09a78a1a1ab0aa16927be2e9282551c /gnu
parent94c43007200ba97879004db546dfc6bd8473da0d (diff)
downloadguix-8cc91fa04131e1b37339bd08c48b117f1c32aa29.tar.gz
gnu: Add weex.
* gnu/packages/ftp.scm (weex): New variable.
* gnu/packages/patches/weex-vacopy.patch: New file.
* gnu-system.am (dist_patch_DATA): Register patch.
Diffstat (limited to 'gnu')
-rw-r--r--gnu/packages/ftp.scm46
-rw-r--r--gnu/packages/patches/weex-vacopy.patch13
2 files changed, 56 insertions, 3 deletions
diff --git a/gnu/packages/ftp.scm b/gnu/packages/ftp.scm
index c5649812c0..f002122bb6 100644
--- a/gnu/packages/ftp.scm
+++ b/gnu/packages/ftp.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2014 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -17,10 +18,11 @@
 ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 
 (define-module (gnu packages ftp)
-  #:use-module ((guix licenses) #:select (gpl3+ clarified-artistic))
-  #:use-module (guix packages)
-  #:use-module (guix download)
+  #:use-module ((guix licenses) #:select (gpl2+ gpl3+ clarified-artistic))
   #:use-module (guix build-system gnu)
+  #:use-module (guix download)
+  #:use-module (guix packages)
+  #:use-module (gnu packages)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages readline)
   #:use-module (gnu packages pkg-config)
@@ -103,3 +105,41 @@ File Transfer Protocol (FTP) servers.  This includes 'ncftp', an interactive
 FTP browser, as well as non-interactive commands such as 'ncftpput' and
 'ncftpget'.")
     (license clarified-artistic)))
+
+
+(define-public weex
+  (package
+    (name "weex")
+    (version "2.6.1.5")
+    (source
+      (origin
+        (method url-fetch)
+        (uri
+          (string-append "mirror://sourceforge/weex/weex/" version
+                         "/weex-" version ".tar.gz"))
+        (sha256
+          (base32
+            "0f5cj5p852wkm24mzy2sxgxyahv2p9rk4wlq21j310pi7wlhgwyl"))
+        (patches (list (search-patch "weex-vacopy.patch")))))
+    (build-system gnu-build-system)
+    (arguments
+      `(#:phases
+        (alist-replace 'configure
+          ;; configure does not work followed by both "SHELL=..." and
+          ;; "CONFIG_SHELL=..."; set environment variables instead
+          (lambda* (#:key outputs #:allow-other-keys)
+            (let* ((out (assoc-ref outputs "out"))
+                  (bash (which "bash")))
+              (setenv "SHELL" bash)
+              (setenv "CONFIG_SHELL" bash)
+              (zero? (system* bash "./configure"
+                              (string-append "--prefix=" out)))))
+          %standard-phases)))
+    (home-page "http://weex.sourceforge.net/")
+    (synopsis "Non-interactive client for FTP synchronization")
+    (description
+     "Weex is a utility designed to automate the task of remotely
+maintaining a web page or other FTP archive.  It synchronizes a set of
+local files to a remote server by performing uploads and remote deletes
+as required.")
+    (license gpl2+)))
diff --git a/gnu/packages/patches/weex-vacopy.patch b/gnu/packages/patches/weex-vacopy.patch
new file mode 100644
index 0000000000..f593e86c08
--- /dev/null
+++ b/gnu/packages/patches/weex-vacopy.patch
@@ -0,0 +1,13 @@
+Taken from the Debian 2.8.0 package.
+
+--- weex-2.6.1.5/src/strlib.c	2003-08-18 11:52:38.000000000 +0200
++++ weex-2.8.0/src/strlib.c	2007-12-04 14:22:02.000000000 +0100
+@@ -42,6 +42,8 @@
+ #  define G_VA_COPY(ap1, ap2)     (*(ap1) = *(ap2))
+ #  elif defined (G_VA_COPY_AS_ARRAY)
+ #  define G_VA_COPY(ap1, ap2)     g_memmove ((ap1), (ap2), sizeof (va_list))
++#  elif defined (__x86_64__)
++#  define G_VA_COPY(ap1, ap2)     memmove ((ap1), (ap2), sizeof (va_list))
+ #  else /* va_list is a pointer */
+ #  define G_VA_COPY(ap1, ap2)     ((ap1) = (ap2))
+ #  endif /* va_list is a pointer */