-
-
Notifications
You must be signed in to change notification settings - Fork 14.1k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
17 changed files
with
246 additions
and
28 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
35 changes: 35 additions & 0 deletions
35
pkgs/development/tools/build-managers/gnumake/4.4/0001-No-impure-bin-sh.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
From e00a5257a6ca5fedbf68b09eee7df3502971a057 Mon Sep 17 00:00:00 2001 | ||
From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= <joerg@thalheim.io> | ||
Date: Sat, 24 Apr 2021 10:11:40 +0200 | ||
Subject: [PATCH 1/2] No impure bin sh | ||
|
||
default_shell is used to populuate default shell used to execute jobs. | ||
Unless SHELL is set to a different value this would be /bin/sh. | ||
Our stdenv provides sh in form of bash anyway. Having this value not | ||
hard-coded has some advantages: | ||
|
||
- It would ensure that on all systems it uses sh from its PATH rather | ||
than /bin/sh, which helps as different systems might have different | ||
shells there (bash vs. dash) | ||
- In the past I had issues with LD_PRELOAD with BEAR, where /bin/sh | ||
used a different glibc than BEAR which came from my development shell. | ||
--- | ||
src/job.c | 2 +- | ||
1 file changed, 1 insertion(+), 1 deletion(-) | ||
|
||
diff --git a/src/job.c b/src/job.c | ||
index ae1f18b..6b4ddb3 100644 | ||
--- a/src/job.c | ||
+++ b/src/job.c | ||
@@ -77,7 +77,7 @@ char * vms_strsignal (int status); | ||
|
||
#else | ||
|
||
-const char *default_shell = "/bin/sh"; | ||
+const char *default_shell = "sh"; | ||
int batch_mode_shell = 0; | ||
|
||
#endif | ||
-- | ||
2.31.1 | ||
|
40 changes: 40 additions & 0 deletions
40
pkgs/development/tools/build-managers/gnumake/4.4/0002-remove-impure-dirs.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
From 795d63d3c8b5c0dbb7e544954f75507b371b7228 Mon Sep 17 00:00:00 2001 | ||
From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= <joerg@thalheim.io> | ||
Date: Sat, 24 Apr 2021 10:20:16 +0200 | ||
Subject: [PATCH 2/2] remove impure dirs | ||
|
||
--- | ||
src/read.c | 3 --- | ||
src/remake.c | 2 -- | ||
2 files changed, 5 deletions(-) | ||
|
||
diff --git a/src/read.c b/src/read.c | ||
index fa197fb..defacfb 100644 | ||
--- a/src/read.c | ||
+++ b/src/read.c | ||
@@ -109,9 +109,6 @@ static const char *default_include_directories[] = | ||
#endif | ||
INCLUDEDIR, | ||
#ifndef _AMIGA | ||
- "/usr/gnu/include", | ||
- "/usr/local/include", | ||
- "/usr/include", | ||
#endif | ||
0 | ||
}; | ||
diff --git a/src/remake.c b/src/remake.c | ||
index fb237c5..94bff7d 100644 | ||
--- a/src/remake.c | ||
+++ b/src/remake.c | ||
@@ -1601,8 +1601,6 @@ library_search (const char *lib, FILE_TIMESTAMP *mtime_ptr) | ||
static const char *dirs[] = | ||
{ | ||
#ifndef _AMIGA | ||
- "/lib", | ||
- "/usr/lib", | ||
#endif | ||
#if defined(WINDOWS32) && !defined(LIBDIR) | ||
/* | ||
-- | ||
2.31.1 | ||
|
75 changes: 75 additions & 0 deletions
75
pkgs/development/tools/build-managers/gnumake/4.4/default.nix
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,75 @@ | ||
{ lib | ||
, stdenv | ||
, fetchurl | ||
, guileSupport ? false, guile | ||
# avoid guile depend on bootstrap to prevent dependency cycles | ||
, inBootstrap ? false | ||
, pkg-config | ||
, gnumake | ||
}: | ||
|
||
let | ||
guileEnabled = guileSupport && !inBootstrap; | ||
in | ||
|
||
stdenv.mkDerivation rec { | ||
pname = "gnumake"; | ||
version = "4.4"; | ||
|
||
src = fetchurl { | ||
url = "mirror://gnu/make/make-${version}.tar.gz"; | ||
hash = "sha256-WB9NToctp0s5Qch0IViYp9NYAvA3Mr3M7h1KeXkQXRg="; | ||
}; | ||
|
||
# to update apply these patches with `git am *.patch` to https://git.savannah.gnu.org/git/make.git | ||
patches = [ | ||
# Replaces /bin/sh with sh, see patch file for reasoning | ||
./0001-No-impure-bin-sh.patch | ||
# Purity: don't look for library dependencies (of the form `-lfoo') in /lib | ||
# and /usr/lib. It's a stupid feature anyway. Likewise, when searching for | ||
# included Makefiles, don't look in /usr/include and friends. | ||
./0002-remove-impure-dirs.patch | ||
]; | ||
|
||
nativeBuildInputs = lib.optionals guileEnabled [ pkg-config ]; | ||
buildInputs = lib.optionals guileEnabled [ guile ]; | ||
|
||
configureFlags = lib.optional guileEnabled "--with-guile" | ||
|
||
# Make uses this test to decide whether it should keep track of | ||
# subseconds. Apple made this possible with APFS and macOS 10.13. | ||
# However, we still support macOS 10.11 and 10.12. Binaries built | ||
# in Nixpkgs will be unable to use futimens to set mtime less than | ||
# a second. So, tell Make to ignore nanoseconds in mtime here by | ||
# overriding the autoconf test for the struct. | ||
# See https://github.com/NixOS/nixpkgs/issues/51221 for discussion. | ||
++ lib.optional stdenv.isDarwin "ac_cv_struct_st_mtim_nsec=no"; | ||
|
||
outputs = [ "out" "man" "info" ]; | ||
separateDebugInfo = true; | ||
|
||
passthru.tests = { | ||
# make sure that the override doesn't break bootstrapping | ||
gnumakeWithGuile = gnumake.override { guileSupport = true; }; | ||
}; | ||
|
||
meta = with lib; { | ||
description = "A tool to control the generation of non-source files from sources"; | ||
longDescription = '' | ||
Make is a tool which controls the generation of executables and | ||
other non-source files of a program from the program's source files. | ||
Make gets its knowledge of how to build your program from a file | ||
called the makefile, which lists each of the non-source files and | ||
how to compute it from other files. When you write a program, you | ||
should write a makefile for it, so that it is possible to use Make | ||
to build and install the program. | ||
''; | ||
homepage = "https://www.gnu.org/software/make/"; | ||
|
||
license = licenses.gpl3Plus; | ||
maintainers = [ maintainers.vrthra ]; | ||
mainProgram = "make"; | ||
platforms = platforms.all; | ||
}; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.