about summary refs log tree commit diff
path: root/pkgs/os-specific
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/os-specific')
-rw-r--r--pkgs/os-specific/darwin/cctools/ld-tbd-v2.patch98
-rw-r--r--pkgs/os-specific/darwin/cctools/port.nix48
-rw-r--r--pkgs/os-specific/darwin/cctools/support-ios.patch13
-rw-r--r--pkgs/os-specific/darwin/cctools/undo-unknown-triple.patch17
-rw-r--r--pkgs/os-specific/linux/alsa-lib/default.nix4
-rw-r--r--pkgs/os-specific/linux/apparmor/default.nix8
-rw-r--r--pkgs/os-specific/linux/iproute/default.nix4
-rw-r--r--pkgs/os-specific/linux/kernel-headers/default.nix48
-rw-r--r--pkgs/os-specific/linux/v4l-utils/default.nix4
9 files changed, 40 insertions, 204 deletions
diff --git a/pkgs/os-specific/darwin/cctools/ld-tbd-v2.patch b/pkgs/os-specific/darwin/cctools/ld-tbd-v2.patch
deleted file mode 100644
index 9aae2be1d033..000000000000
--- a/pkgs/os-specific/darwin/cctools/ld-tbd-v2.patch
+++ /dev/null
@@ -1,98 +0,0 @@
-diff --git a/cctools/ld64/src/ld/parsers/textstub_dylib_file.cpp b/cctools/ld64/src/ld/parsers/textstub_dylib_file.cpp
-index 09c0e12..ac6b085 100644
---- a/cctools/ld64/src/ld/parsers/textstub_dylib_file.cpp
-+++ b/cctools/ld64/src/ld/parsers/textstub_dylib_file.cpp
-@@ -187,6 +187,7 @@ struct DynamicLibrary {
- 	ld::File::ObjcConstraint _objcConstraint;
- 	Options::Platform _platform;
- 	std::vector<Token> _allowedClients;
-+	std::vector<Token> _allowableClients;
- 	std::vector<Token> _reexportedLibraries;
- 	std::vector<Token> _symbols;
- 	std::vector<Token> _classes;
-@@ -246,6 +247,14 @@ class TBDFile {
- 		});
- 	}
- 
-+	void parseAllowableClients(DynamicLibrary& lib) {
-+		if ( !hasOptionalToken("allowable-clients") )
-+			return;
-+		parseFlowSequence([&](Token name) {
-+			lib._allowableClients.emplace_back(name);
-+		});
-+	}
-+
- 	void parseReexportedDylibs(DynamicLibrary& lib) {
- 		if ( !hasOptionalToken("re-exports") )
- 			return;
-@@ -306,6 +315,21 @@ class TBDFile {
- 		return false;
- 	}
- 
-+	void skipUUIDs(DynamicLibrary& lib) {
-+		expectToken("uuids");
-+		while ( true ) {
-+			auto token = next();
-+			if ( token == "]" )
-+				break;
-+		}
-+	}
-+
-+	void skipParentUmbrella(DynamicLibrary& lib) {
-+		if (!hasOptionalToken("parent-umbrella"))
-+			return;
-+		next();
-+	}
-+
- 	void parsePlatform(DynamicLibrary& lib) {
- 		expectToken("platform");
- 
-@@ -410,6 +434,7 @@ class TBDFile {
- 			}
- 
- 			parseAllowedClients(lib);
-+			parseAllowableClients(lib);
- 			parseReexportedDylibs(lib);
- 			parseSymbols(lib);
- 			if ( !hasOptionalToken("-") )
-@@ -455,17 +480,21 @@ class TBDFile {
- 			return result.front();
- 	}
- 
--	void parseDocument(DynamicLibrary& lib, std::string &requestedArchName) {
-+	void parseDocument(DynamicLibrary& lib, std::string &requestedArchName, bool isTbdV2) {
- 		auto selectedArchName = parseAndSelectArchitecture(requestedArchName);
- 		if (selectedArchName.empty())
- 			throwf("invalid arch");
- 
-+		if(isTbdV2)
-+			skipUUIDs(lib);
- 		parsePlatform(lib);
- 		parseInstallName(lib);
- 		parseCurrentVersion(lib);
- 		parseCompatibilityVersion(lib);
- 		parseSwiftVersion(lib);
- 		parseObjCConstraint(lib);
-+		if(isTbdV2)
-+			skipParentUmbrella(lib);
- 		parseExportsBlock(lib, selectedArchName);
- 	}
- 
-@@ -476,7 +505,8 @@ public:
- 		_tokenizer.reset();
- 		DynamicLibrary lib;
- 		expectToken("---");
--		parseDocument(lib, requestedArchName);
-+		auto isTbdV2 = hasOptionalToken("!tapi-tbd-v2");
-+		parseDocument(lib, requestedArchName, isTbdV2);
- 		expectToken("...");
- 		return lib;
- 	}
-@@ -486,6 +516,7 @@ public:
- 		auto token = next();
- 		if ( token != "---" )
- 			return false;
-+		hasOptionalToken("!tapi-tbd-v2");
- 		return !parseAndSelectArchitecture(requestedArchName).empty();
- 	}
- 
diff --git a/pkgs/os-specific/darwin/cctools/port.nix b/pkgs/os-specific/darwin/cctools/port.nix
index bad17cf6de46..2bca1bcc1d75 100644
--- a/pkgs/os-specific/darwin/cctools/port.nix
+++ b/pkgs/os-specific/darwin/cctools/port.nix
@@ -1,18 +1,10 @@
-{ stdenv, fetchFromGitHub, autoconf, automake, libtool_2, autoreconfHook
+{ stdenv, fetchFromGitHub, autoconf, automake, libtool, autoreconfHook
 , libcxxabi, libuuid, llvm
 , libobjc ? null, maloader ? null
-, enableDumpNormalizedLibArgs ? false
 }:
 
 let
 
-  # We need to use an old version of cctools-port to support linking TBD files
-  # in the iOS SDK. Note that this only provides support for SDK versions up to
-  # 10.x. For 11.0 and higher we will need to upgrade to a newer cctools than the
-  # default version here, which can support the new TBD format via Apple's
-  # libtapi.
-  useOld = stdenv.targetPlatform.isiOS;
-
   # The targetPrefix prepended to binary names to allow multiple binuntils on the
   # PATH to both be usable.
   targetPrefix = stdenv.lib.optionalString
@@ -23,51 +15,31 @@ in
 # Non-Darwin alternatives
 assert (!stdenv.hostPlatform.isDarwin) -> maloader != null;
 
-assert enableDumpNormalizedLibArgs -> (!useOld);
-
 let
   baseParams = rec {
     name = "${targetPrefix}cctools-port-${version}";
-    version = if useOld then "886" else "895";
+    version = "895";
 
-    src = fetchFromGitHub (if enableDumpNormalizedLibArgs then {
-      owner  = "tpoechtrager";
-      repo   = "cctools-port";
-      # master with https://github.com/tpoechtrager/cctools-port/pull/34
-      rev    = "8395d4b2c3350356e2fb02f5e04f4f463c7388df";
-      sha256 = "10vbf1cfzx02q8chc77s84fp2kydjpx2y682mr6mrbb7sq5rwh8f";
-    } else if useOld then {
+    src = fetchFromGitHub {
       owner  = "tpoechtrager";
       repo   = "cctools-port";
-      rev    = "02f0b8ecd87a3951653d838a321ae744815e21a5";
-      sha256 = "0bzyabzr5dvbxglr74d0kbrk2ij5x7s5qcamqi1v546q1had1wz1";
-    } else {
-      owner  = "tpoechtrager";
-      repo   = "cctools-port";
-      rev    = "2e569d765440b8cd6414a695637617521aa2375b"; # From branch 895-ld64-274.2
-      sha256 = "0l45mvyags56jfi24rawms8j2ihbc45mq7v13pkrrwppghqrdn52";
-    });
+      rev    = "07619027f8311fa61b4a549c75994b88739a82d8";
+      sha256 = "12g94hhz5v5bmy2w0zb6fb4bjlmn992gygc60h9nai15kshj2spi";
+    };
 
     outputs = [ "out" "dev" ];
 
     nativeBuildInputs = [
-      autoconf automake libtool_2
-    ] ++ stdenv.lib.optionals useOld [
-      autoreconfHook
+      autoconf automake libtool autoreconfHook
     ];
     buildInputs = [ libuuid ] ++
       stdenv.lib.optionals stdenv.isDarwin [ llvm libcxxabi libobjc ];
 
     patches = [
       ./ld-rpath-nonfinal.patch ./ld-ignore-rpath-link.patch
-    ] ++ stdenv.lib.optionals useOld [
-      # See https://github.com/tpoechtrager/cctools-port/issues/24. Remove when that's fixed.
-      ./undo-unknown-triple.patch
-      ./ld-tbd-v2.patch
-      ./support-ios.patch
     ];
 
-    __propagatedImpureHostDeps = stdenv.lib.optionals (!useOld) [
+    __propagatedImpureHostDeps = [
       # As far as I can tell, otool from cctools is the only thing that depends on these two, and we should fix them
       "/usr/lib/libobjc.A.dylib"
       "/usr/lib/libobjc.dylib"
@@ -78,7 +50,9 @@ let
     # TODO(@Ericson2314): Always pass "--target" and always targetPrefix.
     configurePlatforms = [ "build" "host" ] ++ stdenv.lib.optional (stdenv.targetPlatform != stdenv.hostPlatform) "target";
 
-    postPatch = ''
+    postPatch = stdenv.lib.optionalString stdenv.hostPlatform.isDarwin ''
+      substituteInPlace cctools/Makefile.am --replace libobjc2 ""
+    '' + ''
       sed -i -e 's/addStandardLibraryDirectories = true/addStandardLibraryDirectories = false/' cctools/ld64/src/ld/Options.cpp
 
       # FIXME: there are far more absolute path references that I don't want to fix right now
diff --git a/pkgs/os-specific/darwin/cctools/support-ios.patch b/pkgs/os-specific/darwin/cctools/support-ios.patch
deleted file mode 100644
index f78c6b63ac80..000000000000
--- a/pkgs/os-specific/darwin/cctools/support-ios.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/cctools/configure.ac b/cctools/configure.ac
-index 56e8f24..0b4b3ff 100644
---- a/cctools/configure.ac
-+++ b/cctools/configure.ac
-@@ -39,7 +39,7 @@ EXTRACXXFLAGS=""
- WARNINGS=""
- 
- case $host_os in
--  darwin* )
-+  darwin* | ios*)
-     isdarwin=yes
-     AM_CONDITIONAL([ISDARWIN], [true])
-   ;;
diff --git a/pkgs/os-specific/darwin/cctools/undo-unknown-triple.patch b/pkgs/os-specific/darwin/cctools/undo-unknown-triple.patch
deleted file mode 100644
index 7df9bdd16dab..000000000000
--- a/pkgs/os-specific/darwin/cctools/undo-unknown-triple.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-diff --git a/cctools/as/driver.c b/cctools/as/driver.c
-index b06d085..c03397a 100644
---- a/cctools/as/driver.c
-+++ b/cctools/as/driver.c
-@@ -363,12 +363,6 @@ char **envp)
- 	    /* Add -c or clang will run ld(1). */
- 	    new_argv[j] = "-c";
- 	    j++;
--	    /* cctools-port start */
--	    new_argv[j] = "-target";
--	    j++;
--	    new_argv[j] = "unknown-apple-darwin";
--	    j++;
--	    /* cctools-port end */
- 	    new_argv[j] = NULL;
- 	    if(execute(new_argv, verbose))
- 		exit(0);
diff --git a/pkgs/os-specific/linux/alsa-lib/default.nix b/pkgs/os-specific/linux/alsa-lib/default.nix
index 41b43afc242c..3d4e57f88ddc 100644
--- a/pkgs/os-specific/linux/alsa-lib/default.nix
+++ b/pkgs/os-specific/linux/alsa-lib/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
-  name = "alsa-lib-1.1.6";
+  name = "alsa-lib-1.1.7";
 
   src = fetchurl {
     url = "mirror://alsa/lib/${name}.tar.bz2";
-    sha256 = "096pwrnhj36yndldvs2pj4r871zhcgisks0is78f1jkjn9sd4b2z";
+    sha256 = "02fw7dw202mjid49w9ki3dsfcyvid5fj488561bdzcm3haw00q4x";
   };
 
   patches = [
diff --git a/pkgs/os-specific/linux/apparmor/default.nix b/pkgs/os-specific/linux/apparmor/default.nix
index 3ffaef8109f3..e632be905fdd 100644
--- a/pkgs/os-specific/linux/apparmor/default.nix
+++ b/pkgs/os-specific/linux/apparmor/default.nix
@@ -12,8 +12,8 @@
 }:
 
 let
-  apparmor-series = "2.12";
-  apparmor-patchver = "0";
+  apparmor-series = "2.13";
+  apparmor-patchver = "1";
   apparmor-version = apparmor-series + "." + apparmor-patchver;
 
   apparmor-meta = component: with stdenv.lib; {
@@ -25,8 +25,8 @@ let
   };
 
   apparmor-sources = fetchurl {
-    url = "https://launchpad.net/apparmor/${apparmor-series}/${apparmor-version}/+download/apparmor-${apparmor-series}.tar.gz";
-    sha256 = "0mm0mcp0w18si9wl15drndysm7v27az2942p1xjd197shg80qawa";
+    url = "https://launchpad.net/apparmor/${apparmor-series}/${apparmor-version}/+download/apparmor-${apparmor-version}.tar.gz";
+    sha256 = "7a060d94c275e59f96bacd1da150e6fee2c9152a85bf57800109d07d51ef8afb";
   };
 
   prePatchCommon = ''
diff --git a/pkgs/os-specific/linux/iproute/default.nix b/pkgs/os-specific/linux/iproute/default.nix
index 8f81ec4918ed..4fd2b2a9124b 100644
--- a/pkgs/os-specific/linux/iproute/default.nix
+++ b/pkgs/os-specific/linux/iproute/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "iproute2-${version}";
-  version = "4.18.0";
+  version = "4.19.0";
 
   src = fetchurl {
     url = "mirror://kernel/linux/utils/net/iproute2/${name}.tar.xz";
-    sha256 = "0ida5njr9nacg6ym3rjvl3cc9czw0hn4akhzbqf8f4zmjl6cgrm9";
+    sha256 = "114rlb3bvrf7q6yr03mn1rj6gl7mrg0psvm2dx0qb2kxyjhmrv6r";
   };
 
   preConfigure = ''
diff --git a/pkgs/os-specific/linux/kernel-headers/default.nix b/pkgs/os-specific/linux/kernel-headers/default.nix
index 011668f0c679..eb0059f55c35 100644
--- a/pkgs/os-specific/linux/kernel-headers/default.nix
+++ b/pkgs/os-specific/linux/kernel-headers/default.nix
@@ -4,7 +4,7 @@
 }:
 
 let
-  common = { version, sha256, patches ? [] }: stdenvNoCC.mkDerivation ({
+  common = { version, sha256, patches ? [] }: stdenvNoCC.mkDerivation {
     name = "linux-headers-${version}";
 
     src = fetchurl {
@@ -17,19 +17,16 @@ let
     # It may look odd that we use `stdenvNoCC`, and yet explicit depend on a cc.
     # We do this so we have a build->build, not build->host, C compiler.
     depsBuildBuild = [ buildPackages.stdenv.cc ];
-    # TODO make unconditional next mass rebuild
-    nativeBuildInputs = [ perl ] ++ lib.optional
-      (stdenvNoCC.hostPlatform != stdenvNoCC.buildPlatform)
-      elf-header;
+    # `elf-header` is null when libc provides `elf.h`.
+    nativeBuildInputs = [ perl elf-header ];
 
     extraIncludeDirs = lib.optional stdenvNoCC.hostPlatform.isPowerPC ["ppc"];
 
-    # "patches" array defaults to 'null' to avoid changing hash
-    # and causing mass rebuild
     inherit patches;
 
-    # TODO avoid native hack next rebuild
-    makeFlags = if stdenvNoCC.hostPlatform == stdenvNoCC.buildPlatform then null else [
+    hardeningDisable = lib.optional stdenvNoCC.buildPlatform.isDarwin "format";
+
+    makeFlags = [
       "SHELL=bash"
       # Avoid use of runtime build->host compilers for checks. These
       # checks only cared to work around bugs in very old compilers, so
@@ -41,11 +38,8 @@ let
       "HOSTCXX:=$(BUILD_CXX)"
     ];
 
-    # TODO avoid native hack next rebuild
     # Skip clean on darwin, case-sensitivity issues.
-    buildPhase = if stdenvNoCC.hostPlatform == stdenvNoCC.buildPlatform then ''
-      make mrproper headers_check SHELL=bash
-    '' else lib.optionalString (!stdenvNoCC.buildPlatform.isDarwin) ''
+    buildPhase = lib.optionalString (!stdenvNoCC.buildPlatform.isDarwin) ''
       make mrproper $makeFlags
     ''
     # For some reason, doing `make install_headers` twice, first without
@@ -55,21 +49,21 @@ let
       make headers_install $makeFlags
     '';
 
-    # TODO avoid native hack next rebuild
-    checkPhase = if stdenvNoCC.hostPlatform == stdenvNoCC.buildPlatform then null else ''
+    checkPhase = ''
       make headers_check $makeFlags
     '';
 
-    # TODO avoid native hack next rebuild
-    installPhase = (if stdenvNoCC.hostPlatform == stdenvNoCC.buildPlatform then ''
-      make INSTALL_HDR_PATH=$out headers_install
-    '' else ''
+    installPhase = ''
       make headers_install INSTALL_HDR_PATH=$out $makeFlags
-    '') + ''
-
-      # Some builds (e.g. KVM) want a kernel.release.
-      mkdir -p $out/include/config
+    ''
+    # Some builds (e.g. KVM) want a kernel.release.
+    + '' mkdir -p $out/include/config
       echo "${version}-default" > $out/include/config/kernel.release
+    ''
+    # These oddly named file records teh `SHELL` passed, which causes bootstrap
+    # tools run-time dependency.
+    + ''
+      find "$out" -name '..install.cmd' -print0 | xargs -0 rm
     '';
 
     meta = with lib; {
@@ -77,17 +71,13 @@ let
       license = licenses.gpl2;
       platforms = platforms.linux;
     };
-  } // lib.optionalAttrs (stdenvNoCC.hostPlatform != stdenvNoCC.buildPlatform) {
-    # TODO Make unconditional next mass rebuild
-    hardeningDisable = lib.optional stdenvNoCC.buildPlatform.isDarwin "format";
-  });
+  };
 in {
 
   linuxHeaders = common {
     version = "4.18.3";
     sha256 = "1m23hjd02bg8mqnd8dc4z4m3kxds1cyrc6j5saiwnhzbz373rvc1";
-    # TODO make unconditional next mass rebuild
-    patches = lib.optionals (stdenvNoCC.hostPlatform != stdenvNoCC.buildPlatform) [
+    patches = [
        ./no-relocs.patch # for building x86 kernel headers on non-ELF platforms
        ./no-dynamic-cc-version-check.patch # so we can use `stdenvNoCC`, see `makeFlags` above
     ];
diff --git a/pkgs/os-specific/linux/v4l-utils/default.nix b/pkgs/os-specific/linux/v4l-utils/default.nix
index 3665606e99c8..f586ea50398f 100644
--- a/pkgs/os-specific/linux/v4l-utils/default.nix
+++ b/pkgs/os-specific/linux/v4l-utils/default.nix
@@ -8,11 +8,11 @@
 
 stdenv.mkDerivation rec {
   name = "v4l-utils-${version}";
-  version = "1.14.2";
+  version = "1.16.0";
 
   src = fetchurl {
     url = "https://linuxtv.org/downloads/v4l-utils/${name}.tar.bz2";
-    sha256 = "14h6d2p3n4jmxhd8i0p1m5dbwz5vnpb3z88xqd9ghg15n7265fg6";
+    sha256 = "1b8bx9zfaw0crjkfh0wwyixbv4683mkw0cb3nxwc7fl489c2bd7i";
   };
 
   outputs = [ "out" "dev" ];