Two patches below. One to rewrite the phases using modify-phases syntax, and the other to clean up the mess that 'make install' creates.
>From 81adae7d0de6e6d9213b81dc6a8747bfc6487420 Mon Sep 17 00:00:00 2001 From: David Thompson <[email protected]> Date: Sun, 5 Apr 2015 12:31:54 -0400 Subject: [PATCH 1/2] gnu: nginx: Use modify-phases syntax. * gnu/packages/web.scm (nginx): Use modify-phases syntax. --- gnu/packages/web.scm | 62 +++++++++++++++++++++++++--------------------------- 1 file changed, 30 insertions(+), 32 deletions(-) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 42d58c8..031bbca 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -108,38 +108,36 @@ and its related documentation.") (arguments `(#:tests? #f ; no test target #:phases - (alist-cons-before - 'configure 'patch-/bin/sh - (lambda _ - (substitute* "auto/feature" - (("/bin/sh") (which "bash")))) - (alist-replace - 'configure - (lambda* (#:key outputs #:allow-other-keys) - (let ((flags - (list (string-append "--prefix=" (assoc-ref outputs "out")) - "--with-http_ssl_module" - "--with-pcre-jit" - "--with-ipv6" - "--with-debug" - ;; Even when not cross-building, we pass the - ;; --crossbuild option to avoid customizing for the - ;; kernel version on the build machine. - ,(let ((system "Linux") ; uname -s - (release "2.6.32") ; uname -r - ;; uname -m - (machine (match (or (%current-target-system) - (%current-system)) - ("x86_64-linux" "x86_64") - ("i686-linux" "i686") - ("mips64el-linux" "mips64")))) - (string-append "--crossbuild=" - system ":" release ":" machine))))) - (setenv "CC" "gcc") - (format #t "environment variable `CC' set to `gcc'~%") - (format #t "configure flags: ~s~%" flags) - (zero? (apply system* "./configure" flags)))) - %standard-phases)))) + (modify-phases %standard-phases + (add-before configure patch-/bin/sh + (lambda _ + (substitute* "auto/feature" + (("/bin/sh") (which "bash"))))) + (replace configure + (lambda* (#:key outputs #:allow-other-keys) + (let ((flags + (list (string-append "--prefix=" (assoc-ref outputs "out")) + "--with-http_ssl_module" + "--with-pcre-jit" + "--with-ipv6" + "--with-debug" + ;; Even when not cross-building, we pass the + ;; --crossbuild option to avoid customizing for the + ;; kernel version on the build machine. + ,(let ((system "Linux") ; uname -s + (release "2.6.32") ; uname -r + ;; uname -m + (machine (match (or (%current-target-system) + (%current-system)) + ("x86_64-linux" "x86_64") + ("i686-linux" "i686") + ("mips64el-linux" "mips64")))) + (string-append "--crossbuild=" + system ":" release ":" machine))))) + (setenv "CC" "gcc") + (format #t "environment variable `CC' set to `gcc'~%") + (format #t "configure flags: ~s~%" flags) + (zero? (apply system* "./configure" flags)))))))) (home-page "http://nginx.org") (synopsis "HTTP and reverse proxy server") (description -- 2.1.4
>From 6757351ece10cafc5e9c04f5778e6ba6334979d5 Mon Sep 17 00:00:00 2001 From: David Thompson <[email protected]> Date: Sun, 5 Apr 2015 12:34:45 -0400 Subject: [PATCH 2/2] gnu: nginx: Clean up installation directories. * gnu/packages/web.scm (nginx): Add 'fix-root-dirs' phase. --- gnu/packages/web.scm | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 031bbca..c41e9ba 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -137,7 +137,25 @@ and its related documentation.") (setenv "CC" "gcc") (format #t "environment variable `CC' set to `gcc'~%") (format #t "configure flags: ~s~%" flags) - (zero? (apply system* "./configure" flags)))))))) + (zero? (apply system* "./configure" flags))))) + (add-after install fix-root-dirs + (lambda* (#:key outputs #:allow-other-keys) + ;; 'make install' puts things in strange places, so we need to + ;; clean it up ourselves. + (let* ((out (assoc-ref outputs "out")) + (share (string-append out "/share/nginx"))) + ;; This directory is empty, so get rid of it. + (rmdir (string-append out "/logs")) + ;; Example configuration and HTML files belong in + ;; /share. + (mkdir-p share) + (rename-file (string-append out "/conf") + (string-append share "/conf")) + (rename-file (string-append out "/html") + (string-append share "/html")) + ;; No reason to use /sbin + (rename-file (string-append out "/sbin") + (string-append out "/bin")))))))) (home-page "http://nginx.org") (synopsis "HTTP and reverse proxy server") (description -- 2.1.4
-- David Thompson Web Developer - Free Software Foundation - http://fsf.org GPG Key: 0FF1D807 Support the FSF: https://fsf.org/donate
