aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRicardo Wurmus <rekado@elephly.net>2017-05-29 06:14:11 +0200
committerRicardo Wurmus <rekado@elephly.net>2017-05-29 06:14:11 +0200
commitff647c3d382dff13f6f43f817520053178671549 (patch)
tree14341b7e491fa12d88b760b5434f17d6f7438492
parent4953c33316409945f30c4a3c33aa106ec3d84afd (diff)
downloadguix-ff647c3d382dff13f6f43f817520053178671549.tar
guix-ff647c3d382dff13f6f43f817520053178671549.tar.gz
gnu: glibc: Move i686 patch to source field.
This is a rewrite of changes introduced by commits b2fd8f63679aa4f244c36fdca62f23c00b8eded9, c2e4f14ac8cd3e1ce7f46a192ad0c9acc084b210, 441e99d433583fdf76910c3f9323f78a1d1bbaf3 and d03b34cf190b5790ee1884ae551634f5f736f4f1. * gnu/packages/base.scm (glibc/linux)[source]: Add i686 patch. [arguments]: Remove conditional patch application from build phase. [native-inputs]: Remove patch. (glibc/hurd)[arguments]: Inherit pre-configure build phase from glibc/linux. * gnu/packages/commencement.scm (glibc-final-with-bootstrap-bash)[native-inputs]: Remove patch.
-rw-r--r--gnu/packages/base.scm91
-rw-r--r--gnu/packages/commencement.scm9
2 files changed, 4 insertions, 96 deletions
diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm
index 0ad6624dd5..b9364f81f5 100644
--- a/gnu/packages/base.scm
+++ b/gnu/packages/base.scm
@@ -531,7 +531,8 @@ store.")
(modules '((guix build utils)))
(patches (search-patches "glibc-ldd-x86_64.patch"
"glibc-versioned-locpath.patch"
- "glibc-o-largefile.patch"))))
+ "glibc-o-largefile.patch"
+ "glibc-memchr-overflow-i686.patch"))))
(build-system gnu-build-system)
;; Glibc's <limits.h> refers to <linux/limit.h>, for instance, so glibc
@@ -618,19 +619,6 @@ store.")
;; 4.7.1.
((" -lgcc_s") ""))
- ;; Apply patch only on i686.
- ;; TODO: Move the patch to 'patches' in the next update cycle.
- ,@(if (string-prefix? "i686" (or (%current-target-system)
- (%current-system)))
- `((unless (zero? (system* "patch" "-p1" "--force"
- "--input"
- (or (assoc-ref native-inputs
- "glibc-memchr-overflow-i686.patch")
- (assoc-ref inputs
- "glibc-memchr-overflow-i686.patch"))))
- (error "patch failed for glibc-memchr-overflow-i686.patch")))
- '())
-
;; Have `system' use that Bash.
(substitute* "sysdeps/posix/system.c"
(("#define[[:blank:]]+SHELL_PATH.*$")
@@ -674,15 +662,7 @@ store.")
;; install the message catalogs, with 'msgfmt'.
(native-inputs `(("texinfo" ,texinfo)
("perl" ,perl)
- ("gettext" ,gettext-minimal)
-
- ;; Apply this patch only on i686 to avoid a full rebuild.
- ;; TODO: Move to 'patches' in the next update cycle.
- ,@(if (string-prefix? "i686" (or (%current-target-system)
- (%current-system)))
- `(("glibc-memchr-overflow-i686.patch"
- ,(search-patch "glibc-memchr-overflow-i686.patch")))
- '())))
+ ("gettext" ,gettext-minimal)))
(native-search-paths
;; Search path for packages that provide locale data. This is useful
@@ -731,71 +711,6 @@ with the Linux kernel.")
;; Add libmachuser.so and libhurduser.so to libc.so's search path.
;; See <http://lists.gnu.org/archive/html/bug-hurd/2015-07/msg00051.html>.
`(modify-phases ,original-phases
- ;; TODO: This is almost an exact copy of the phase of the same name
- ;; in glibc/linux. The only difference is that the i686 patch is
- ;; not applied here. In the next update cycle the patch moves to
- ;; the patches field and this overwritten phase won't be needed any
- ;; more.
- (replace 'pre-configure
- (lambda* (#:key inputs native-inputs outputs
- #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (bin (string-append out "/bin"))
- ;; FIXME: Normally we would look it up only in INPUTS
- ;; but cross-base uses it as a native input.
- (bash (or (assoc-ref inputs "static-bash")
- (assoc-ref native-inputs "static-bash"))))
- ;; Install the rpc data base file under `$out/etc/rpc'.
- ;; FIXME: Use installFlags = [ "sysconfdir=$(out)/etc" ];
- (substitute* "sunrpc/Makefile"
- (("^\\$\\(inst_sysconfdir\\)/rpc(.*)$" _ suffix)
- (string-append out "/etc/rpc" suffix "\n"))
- (("^install-others =.*$")
- (string-append "install-others = " out "/etc/rpc\n")))
-
- (substitute* "Makeconfig"
- ;; According to
- ;; <http://www.linuxfromscratch.org/lfs/view/stable/chapter05/glibc.html>,
- ;; linking against libgcc_s is not needed with GCC
- ;; 4.7.1.
- ((" -lgcc_s") ""))
-
- ;; Have `system' use that Bash.
- (substitute* "sysdeps/posix/system.c"
- (("#define[[:blank:]]+SHELL_PATH.*$")
- (format #f "#define SHELL_PATH \"~a/bin/bash\"\n"
- bash)))
-
- ;; Same for `popen'.
- (substitute* "libio/iopopen.c"
- (("/bin/sh")
- (string-append bash "/bin/sh")))
-
- ;; Same for the shell used by the 'exec' functions for
- ;; scripts that lack a shebang.
- (substitute* (find-files "." "^paths\\.h$")
- (("#define[[:blank:]]+_PATH_BSHELL[[:blank:]].*$")
- (string-append "#define _PATH_BSHELL \""
- bash "/bin/sh\"\n")))
-
- ;; Nscd uses __DATE__ and __TIME__ to create a string to
- ;; make sure the client and server come from the same
- ;; libc. Use something deterministic instead.
- (substitute* "nscd/nscd_stat.c"
- (("static const char compilation\\[21\\] =.*$")
- (string-append
- "static const char compilation[21] = \""
- (string-take (basename out) 20) "\";\n")))
-
- ;; Make sure we don't retain a reference to the
- ;; bootstrap Perl.
- (substitute* "malloc/mtrace.pl"
- (("^#!.*")
- ;; The shebang can be omitted, because there's the
- ;; "bilingual" eval/exec magic at the top of the file.
- "")
- (("exec @PERL@")
- "exec perl")))))
(add-after 'install 'augment-libc.so
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out")))
diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm
index 93fec0c010..4f39a3fc66 100644
--- a/gnu/packages/commencement.scm
+++ b/gnu/packages/commencement.scm
@@ -510,14 +510,7 @@ the bootstrap environment."
(propagated-inputs `(("kernel-headers" ,(kernel-headers-boot0))))
(native-inputs
`(("texinfo" ,texinfo-boot0)
- ("perl" ,perl-boot0)
- ;; Apply this patch only on i686 to avoid a full rebuild.
- ;; TODO: Remove in the next update cycle.
- ,@(if (string-prefix? "i686" (or (%current-target-system)
- (%current-system)))
- `(("glibc-memchr-overflow-i686.patch"
- ,(search-patch "glibc-memchr-overflow-i686.patch")))
- '())))
+ ("perl" ,perl-boot0)))
(inputs
`(;; The boot inputs. That includes the bootstrap libc. We don't want
;; it in $CPATH, hence the 'pre-configure' phase above.