gnu: facter: Update to 4.0.33.
[jackhill/guix/guix.git] / gnu / packages / installers.scm
index c987254..a8a5c36 100644 (file)
   #:use-module (guix utils))
 
 (define (make-nsis machine target-arch nsis-target-type)
-  (let ((triplet (string-append machine "-" "w64-mingw32")))
+  (let* ((triplet (string-append machine "-" "w64-mingw32"))
+         (xbinutils (cross-binutils triplet))
+         (xlibc (cross-libc triplet))
+         (xgcc (cross-gcc triplet #:libc xlibc)))
     (package
       (name (string-append "nsis-" machine))
-      (version "3.04")
+      (version "3.05")
       (source (origin
                 (method url-fetch)
                 (uri (string-append "http://prdownloads.sourceforge.net/nsis/nsis-"
                                     version "-src.tar.bz2"))
                 (sha256
                  (base32
-                  "1xgllk2mk36ll2509hd31mfq6blgncmdzmwxj3ymrwshdh23d5b0"))
+                  "1sbwx5vzpddharkb7nj4q5z3i5fbg4lan63ng738cw4hmc4v7qdn"))
                 (patches (search-patches "nsis-env-passthru.patch"))))
       (build-system scons-build-system)
-      (native-inputs `(("xgcc" ,(cross-gcc triplet #:libc (cross-libc triplet)))
-                       ("xbinutils" ,(cross-binutils triplet))
-                       ("mingw-w64" ,(cross-libc triplet))))
+      (native-inputs `(("xgcc" ,xgcc)
+                       ("xbinutils" ,xbinutils)
+                       ("mingw-w64" ,xlibc)))
       (inputs `(("zlib" ,zlib)))
       (arguments
        `(#:scons ,scons-python2
          #:modules ((srfi srfi-1)
+                    (srfi srfi-26)
                     (guix build utils)
                     (guix build scons-build-system))
          #:tests? #f
                              ;; CROSS_-prefixed version of env vars
                              (setenv (string-append "CROSS_" env-name)
                                      (filter-delimited-string env-val mingw-path?))))
-                         '("CPLUS_INCLUDE_PATH" "LIBRARY_PATH" "C_INCLUDE_PATH"))))
+                         '("CPATH" "LIBRARY_PATH"))
+                        ;; Hack to place mingw-w64 path at the end of search
+                        ;; paths.  Could probably use a specfile and dirafter
+                        (setenv "CROSS_CPLUS_INCLUDE_PATH"
+                                (string-join
+                                 `(,@(map (cut string-append (assoc-ref %build-inputs "xgcc") <>)
+                                          `("/include/c++"
+                                            ,(string-append "/include/c++/" ,triplet)
+                                            "/include/c++/backward"
+                                            ,@(map (cut string-append "/lib/gcc/" ,triplet "/" ,(package-version xgcc) <>)
+                                                   '("/include"
+                                                     "/include-fixed"))))
+                                   ,(getenv "CROSS_CPATH"))
+                                 ":"))))
                     (add-before 'build 'fix-target-detection
                       (lambda _
                         ;; NSIS target detection is screwed up, manually