Merge master into haskell-updates

This commit is contained in:
github-actions[bot] 2022-08-25 00:15:46 +00:00 committed by GitHub
commit 517fa0d808
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
403 changed files with 6324 additions and 4928 deletions

View File

@ -734,6 +734,63 @@ work in any of the formats supported by `buildPythonPackage` currently,
with the exception of `other` (see `format` in
[`buildPythonPackage` parameters](#buildpythonpackage-parameters) for more details).
### Using unittestCheckHook {#using-unittestcheckhook}
`unittestCheckHook` is a hook which will substitute the setuptools `test` command for a `checkPhase` which runs `python -m unittest discover`:
```
checkInputs = [ unittestCheckHook ];
unittestFlags = [ "-s" "tests" "-v" ];
```
##### Using sphinxHook {#using-sphinxhook}
The `sphinxHook` is a helpful tool to build documentation and manpages
using the popular Sphinx documentation generator.
It is setup to automatically find common documentation source paths and
render them using the default `html` style.
```
outputs = [
"out"
"doc"
];
nativeBuildInputs = [
sphinxHook
];
```
The hook will automatically build and install the artifact into the
`doc` output, if it exists. It also provides an automatic diversion
for the artifacts of the `man` builder into the `man` target.
```
outputs = [
"out"
"doc"
"man"
];
# Use multiple builders
sphinxBuilders = [
"singlehtml"
"man"
];
```
Overwrite `sphinxRoot` when the hook is unable to find your
documentation source root.
```
# Configure sphinxRoot for uncommon paths
sphinxRoot = "weird/docs/path";
```
The hook is also available to packages outside the python ecosystem by
referencing it using `python3.pkgs.sphinxHook`.
### Develop local package {#develop-local-package}
As a Python developer you're likely aware of [development mode](http://setuptools.readthedocs.io/en/latest/setuptools.html#development-mode)
@ -1260,16 +1317,18 @@ are used in `buildPythonPackage`.
- `pytestCheckHook` to run tests with `pytest`. See [example usage](#using-pytestcheckhook).
- `pythonCatchConflictsHook` to check whether a Python package is not already existing.
- `pythonImportsCheckHook` to check whether importing the listed modules works.
- `pythonRelaxDepsHook` will relax Python dependencies restrictions for the package.
See [example usage](#using-pythonrelaxdepshook).
- `pythonRemoveBinBytecode` to remove bytecode from the `/bin` folder.
- `setuptoolsBuildHook` to build a wheel using `setuptools`.
- `setuptoolsCheckHook` to run tests with `python setup.py test`.
- `sphinxHook` to build documentation and manpages using Sphinx.
- `venvShellHook` to source a Python 3 `venv` at the `venvDir` location. A
`venv` is created if it does not yet exist. `postVenvCreation` can be used to
to run commands only after venv is first created.
- `wheelUnpackHook` to move a wheel to the correct folder so it can be installed
with the `pipInstallHook`.
- `pythonRelaxDepsHook` will relax Python dependencies restrictions for the package.
See [example usage](#using-pythonrelaxdepshook).
- `unittestCheckHook` will run tests with `python -m unittest discover`. See [example usage](#using-unittestcheckhook).
### Development mode {#development-mode}

View File

@ -148,6 +148,11 @@ in mkLicense lset) ({
fullName = ''BSD 4-clause "Original" or "Old" License'';
};
bsdOriginalShortened = {
spdxId = "BSD-4-Clause-Shortened";
fullName = "BSD 4 Clause Shortened";
};
bsdOriginalUC = {
spdxId = "BSD-4-Clause-UC";
fullName = "BSD 4-Clause University of California-Specific";

View File

@ -1,2 +1,2 @@
# Expose the minimum required version for evaluating Nixpkgs
"2.2"
"2.3"

View File

@ -65,11 +65,17 @@ rec {
# is why we use the more obscure "bfd" and not "binutils" for this
# choice.
else "bfd";
extensions = {
extensions = rec {
sharedLibrary =
/**/ if final.isDarwin then ".dylib"
else if final.isWindows then ".dll"
else ".so";
staticLibrary =
/**/ if final.isWindows then ".lib"
else ".a";
library =
/**/ if final.isStatic then staticLibrary
else sharedLibrary;
executable =
/**/ if final.isWindows then ".exe"
else "";

View File

@ -120,7 +120,6 @@ to set one. The recommended configuration for modern systems is:
```nix
services.xserver.videoDrivers = [ "modesetting" ];
services.xserver.useGlamor = true;
```
If you experience screen tearing no matter what, this configuration was

View File

@ -133,7 +133,6 @@ services.xserver.displayManager.autoLogin.user = "alice";
</para>
<programlisting language="bash">
services.xserver.videoDrivers = [ &quot;modesetting&quot; ];
services.xserver.useGlamor = true;
</programlisting>
<para>
If you experience screen tearing no matter what, this

View File

@ -255,6 +255,11 @@
<section xml:id="sec-release-22.11-incompatibilities">
<title>Backward Incompatibilities</title>
<itemizedlist>
<listitem>
<para>
Nixpkgs now requires Nix 2.3 or newer.
</para>
</listitem>
<listitem>
<para>
The <literal>isCompatible</literal> predicate checking CPU

View File

@ -94,6 +94,8 @@ Available as [services.patroni](options.html#opt-services.patroni.enable).
## Backward Incompatibilities {#sec-release-22.11-incompatibilities}
- Nixpkgs now requires Nix 2.3 or newer.
- The `isCompatible` predicate checking CPU compatibility is no longer exposed
by the platform sets generated using `lib.systems.elaborate`. In most cases
you will want to use the new `canExecute` predicate instead which also

View File

@ -14,6 +14,15 @@ let
'';
};
filter = mkOption {
type = types.nullOr types.str;
default = null;
example = "*rpi*.dtb";
description = lib.mdDoc ''
Only apply to .dtb files matching glob expression.
'';
};
dtsFile = mkOption {
type = types.nullOr types.path;
description = lib.mdDoc ''
@ -150,6 +159,7 @@ in
'';
type = types.listOf (types.coercedTo types.path (path: {
name = baseNameOf path;
filter = null;
dtboFile = path;
}) overlayType);
description = lib.mdDoc ''

View File

@ -130,8 +130,8 @@ in
type = types.attrsOf (types.submodule ({ config, options, ... }: {
freeformType = datasetSettingsType;
options = commonOptions // datasetOptions;
config.use_template = mkAliasDefinitions (mkDefault options.useTemplate or { });
config.process_children_only = mkAliasDefinitions (mkDefault options.processChildrenOnly or { });
config.use_template = modules.mkAliasAndWrapDefsWithPriority id (options.useTemplate or { });
config.process_children_only = modules.mkAliasAndWrapDefsWithPriority id (options.processChildrenOnly or { });
}));
default = { };
description = lib.mdDoc "Datasets to snapshot.";

View File

@ -267,6 +267,7 @@ in
EnvironmentFile = [ "/var/lib/jitsi-meet/secrets-env" ];
SupplementaryGroups = [ "jitsi-meet" ];
};
reloadIfChanged = true;
};
users.groups.jitsi-meet = {};

View File

@ -151,8 +151,10 @@ in
(mkRemovedOptionModule
[ "services" "xserver" "startDbusSession" ]
"The user D-Bus session is now always socket activated and this option can safely be removed.")
(mkRemovedOptionModule ["services" "xserver" "useXFS" ]
(mkRemovedOptionModule [ "services" "xserver" "useXFS" ]
"Use services.xserver.fontPath instead of useXFS")
(mkRemovedOptionModule [ "services" "xserver" "useGlamor" ]
"Option services.xserver.useGlamor was removed because it is unnecessary. Drivers that uses Glamor will use it automatically.")
];
@ -555,15 +557,6 @@ in
'';
};
useGlamor = mkOption {
type = types.bool;
default = false;
description = lib.mdDoc ''
Whether to use the Glamor module for 2D acceleration,
if possible.
'';
};
enableCtrlAltBackspace = mkOption {
type = types.bool;
default = false;
@ -794,13 +787,6 @@ in
'')}
EndSection
${if cfg.useGlamor then ''
Section "Module"
Load "dri2"
Load "glamoregl"
EndSection
'' else ""}
# For each supported driver, add a "Device" and "Screen"
# section.
${flip concatMapStrings cfg.drivers (driver: ''
@ -808,7 +794,6 @@ in
Section "Device"
Identifier "Device-${driver.name}[0]"
Driver "${driver.driverName or driver.name}"
${if cfg.useGlamor then ''Option "AccelMethod" "glamor"'' else ""}
${indent cfg.deviceSection}
${indent (driver.deviceSection or "")}
${indent xrandrDeviceSection}

View File

@ -34,6 +34,7 @@ in {
autosnap = true;
};
datasets."pool/sanoid".use_template = [ "test" ];
datasets."pool/compat".useTemplate = [ "test" ];
extraArgs = [ "--verbose" ];
};
@ -51,6 +52,12 @@ in {
# Test pool without parent (regression test for https://github.com/NixOS/nixpkgs/pull/180111)
"pool".target = "root@target:pool/full-pool";
# Test backward compatible options (regression test for https://github.com/NixOS/nixpkgs/issues/181561)
"pool/compat" = {
target = "root@target:pool/compat";
extraArgs = [ "--no-sync-snap" ];
};
};
};
};
@ -70,6 +77,7 @@ in {
"udevadm settle",
"zpool create pool -R /mnt /dev/vdb1",
"zfs create pool/sanoid",
"zfs create pool/compat",
"zfs create pool/syncoid",
"udevadm settle",
)
@ -94,6 +102,7 @@ in {
# Take snapshot with sanoid
source.succeed("touch /mnt/pool/sanoid/test.txt")
source.succeed("touch /mnt/pool/compat/test.txt")
source.systemctl("start --wait sanoid.service")
assert len(source.succeed("zfs allow pool")) == 0, "Pool shouldn't have delegated permissions set after snapshotting"
@ -111,6 +120,9 @@ in {
source.systemctl("start --wait syncoid-pool.service")
target.succeed("[[ -d /mnt/pool/full-pool/syncoid ]]")
source.systemctl("start --wait syncoid-pool-compat.service")
target.succeed("cat /mnt/pool/compat/test.txt")
assert len(source.succeed("zfs allow pool")) == 0, "Pool shouldn't have delegated permissions set after syncing snapshots"
assert len(source.succeed("zfs allow pool/sanoid")) == 0, "Sanoid dataset shouldn't have delegated permissions set after syncing snapshots"
assert len(source.succeed("zfs allow pool/syncoid")) == 0, "Syncoid dataset shouldn't have delegated permissions set after syncing snapshots"

View File

@ -102,13 +102,13 @@ in
stdenv.mkDerivation rec {
pname = "cmus";
version = "2.9.1";
version = "2.10.0";
src = fetchFromGitHub {
owner = "cmus";
repo = "cmus";
rev = "v${version}";
sha256 = "sha256-HEiEnEWf/MzhPO19VKTLYzhylpEvyzy1Jxs6EW2NU34=";
sha256 = "sha256-Ha0bIh3SYMhA28YXQ//Loaz9J1lTJAzjTx8eK3AqUjM=";
};
patches = [ ./option-debugging.patch ];

View File

@ -106,6 +106,8 @@ stdenv.mkDerivation rec {
makeWrapper $out/opt/tidal-hifi/tidal-hifi $out/bin/tidal-hifi \
--prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath buildInputs}" \
"''${gappsWrapperArgs[@]}"
substituteInPlace $out/share/applications/tidal-hifi.desktop --replace \
"/opt/tidal-hifi/tidal-hifi" "tidal-hifi"
'';
meta = with lib; {

View File

@ -37,6 +37,7 @@ in python3.pkgs.buildPythonApplication rec {
nativeBuildInputs = with python3.pkgs; [
setuptools-scm
docutils
setuptoolsCheckHook
];
propagatedBuildInputs = with python3.pkgs; [
@ -64,14 +65,12 @@ in python3.pkgs.buildPythonApplication rec {
export SETUPTOOLS_SCM_PRETEND_VERSION="${version}"
'';
checkPhase = ''
runHook preCheck
preCheck = ''
# disable tests that require internet access
# https://github.com/JoeLametta/whipper/issues/291
substituteInPlace whipper/test/test_common_accurip.py \
--replace "test_AccurateRipResponse" "dont_test_AccurateRipResponse"
HOME=$TMPDIR ${python3.interpreter} -m unittest discover
runHook postCheck
export HOME=$TMPDIR
'';
passthru.tests.version = testers.testVersion {

View File

@ -6,14 +6,14 @@
let chia = python3Packages.buildPythonApplication rec {
pname = "chia";
version = "1.5.0";
version = "1.5.1";
src = fetchFromGitHub {
owner = "Chia-Network";
repo = "chia-blockchain";
rev = version;
fetchSubmodules = true;
hash = "sha256-OlaAnUy16QBff81XMoYQaZA0wKnsr+/3XEQLBP8IMug=";
hash = "sha256-FzKdb6Z/ykKYjpjCr7QR5fxXPNnQbW3bBY97t7DxS90=";
};
patches = [
@ -55,7 +55,7 @@ let chia = python3Packages.buildPythonApplication rec {
concurrent-log-handler
cryptography
dnslib
dnspythonchia
dnspython
fasteners
filelock
keyrings-cryptfile

View File

@ -5,16 +5,16 @@
buildGoModule rec {
pname = "gophernotes";
version = "0.7.4";
version = "0.7.5";
src = fetchFromGitHub {
owner = "gopherdata";
repo = "gophernotes";
rev = "v${version}";
sha256 = "sha256-ZyZ5VOZEgFn9QrFBC1bNHKA2g8msDUnd1c5plooO+b8=";
sha256 = "sha256-cGlYgay/t6XIl0U9XvrHkqNxZ6BXtXi0TIANY1WdZ3Y=";
};
vendorSha256 = "sha256-NH8Hz9SzmDksvGqCpggi6hG4kW+AoA1tctF6rGgy4H4=";
vendorSha256 = "sha256-iIBqx52fD12R+7MSjQNihMYYtZ9vPAdJndOG4YJVhy4=";
meta = with lib; {
description = "Go kernel for Jupyter notebooks";

View File

@ -1,12 +1,12 @@
{ lib, fetchFromGitHub }:
rec {
version = "9.0.0135";
version = "9.0.0180";
src = fetchFromGitHub {
owner = "vim";
repo = "vim";
rev = "v${version}";
sha256 = "sha256-xAIfGNJIPO9XoSbAQTRa36Tjln3y+oWQk0lADCnL25g=";
hash = "sha256-38l97auTi6cue457bfRHme5fvsAmvk1MT2va1E/qguw=";
};
enableParallelBuilding = true;
@ -24,7 +24,7 @@ rec {
description = "The most popular clone of the VI editor";
homepage = "http://www.vim.org";
license = licenses.vim;
maintainers = with maintainers; [ lovek323 equirosa ];
maintainers = with maintainers; [ das_j equirosa ];
platforms = platforms.unix;
};
}

View File

@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "clifm";
version = "1.5.1";
version = "1.6";
src = fetchFromGitHub {
owner = "leo-arch";
repo = pname;
rev = "v${version}";
sha256 = "sha256-JdVRi5xHKpYjP8h7df4WdizSU1dy+CtPfOiPEK+MEOE=";
sha256 = "sha256-ak2tZTNNKsHGNpxobi8oqnimhsNvoaW75zMYBeskXZU=";
};
buildInputs = [ libcap acl file readline ];

View File

@ -25,14 +25,14 @@
stdenv.mkDerivation rec {
pname = "foxotron";
version = "2022-03-06";
version = "2022-08-06";
src = fetchFromGitHub {
owner = "Gargaj";
repo = "Foxotron";
rev = version;
fetchSubmodules = true;
sha256 = "sha256-w66wi+aMwQa9akfNA/1cS6UmDXPWC4OPK9BIa9Kt47A=";
sha256 = "sha256-IGLoiUeHcTlQ+WJTot3o5/Q+jRJcY52I3xHDAT0zuIU=";
};
nativeBuildInputs = [ cmake pkg-config makeWrapper ];

View File

@ -21,13 +21,13 @@
stdenv.mkDerivation rec {
pname = "imgbrd-grabber";
version = "7.7.1";
version = "7.9.1";
src = fetchFromGitHub {
owner = "Bionus";
repo = "imgbrd-grabber";
rev = "v${version}";
sha256 = "sha256-3qE3mdtlIlReIkUf0oH2/qmunE8nvdB0EaD7EOqaEj0=";
sha256 = "sha256-0CceSXH1GJbWKOnxZkjmbuyj7NBOQ6tpCYrCl7z4Vrw=";
fetchSubmodules = true;
};

View File

@ -1,25 +1,30 @@
{ lib, stdenv, fetchFromGitHub, cmake, qt4, fftw }:
{ stdenv, lib, fetchFromGitHub, cmake, fftw
, qtbase, qmake, wrapQtAppsHook }:
stdenv.mkDerivation rec {
pname = "smartdeblur";
version = "unstable-2013-01-09";
version = "unstable-2018-10-29";
src = fetchFromGitHub {
owner = "Y-Vladimir";
repo = "SmartDeblur";
rev = "9895036d26cbb823a9ade28cdcb26fd0ac37258e";
sha256 = "sha256-+EbqEpOG1fj2OKmlz8NRF/CGfT2OYGwY5/lwJHCHaMw=";
rev = "5af573c7048ac49ef68e638f3405d3a571b96a8b";
sha256 = "151vdd5ld0clw0vgp0fvp2gp2ybwpx9g43dad9fvbvwkg60izs87";
};
preConfigure = ''
cd src
sourceRoot = "${src.name}/src";
nativeBuildInputs = [ qmake wrapQtAppsHook ];
buildInputs = [ qtbase fftw ];
installPhase = ''
runHook preInstall
install -Dm755 ./SmartDeblur -t $out/bin
runHook postInstall
'';
nativeBuildInputs = [ cmake ];
buildInputs = [ qt4 fftw ];
cmakeFlags = [ "-DUSE_SYSTEM_FFTW=ON" ];
meta = with lib; {
homepage = "https://github.com/Y-Vladimir/SmartDeblur";
description = "Tool for restoring blurry and defocused images";

View File

@ -3,7 +3,7 @@
extra-cmake-modules, kdoctools,
shared-mime-info,
akonadi, akonadi-calendar, akonadi-contacts, akonadi-mime, akonadi-notes,
kholidays, kcalutils, kcontacts, kdav, kidentitymanagement,
cyrus_sasl, kholidays, kcalutils, kcontacts, kdav, kidentitymanagement,
kimap, kldap, kmailtransport, kmbox, kmime, knotifications, knotifyconfig,
pimcommon, libkgapi, libsecret,
qca-qt5, qtkeychain, qtnetworkauth, qtspeech, qtwebengine, qtxmlpatterns,
@ -23,4 +23,7 @@ mkDerivation {
pimcommon libkgapi libsecret
qca-qt5 qtkeychain qtnetworkauth qtspeech qtxmlpatterns
];
qtWrapperArgs = [
"--prefix SASL_PATH : ${lib.makeSearchPath "lib/sasl2" [ cyrus_sasl libkgapi ]}"
];
}

View File

@ -9,7 +9,7 @@ let
version = "3.1.14";
src = old.src.override {
inherit version;
sha256 = "72a4a5a136a214c39cf016ccdd6b69e2aa08c7479c66d93f3a9b5e4bb9d8a347";
hash = "sha256-cqSloTaiFMOc8BbM3Wtp4qoIx0ecZtk/OpteS7nYo0c=";
};
meta = old.meta // {
knownVulnerabilities = [

View File

@ -0,0 +1,49 @@
{ lib, fetchFromGitLab, buildGoModule, scdoc, nix-update-script }:
buildGoModule rec {
pname = "darkman";
version = "1.3.1";
src = fetchFromGitLab {
owner = "WhyNotHugo";
repo = "darkman";
rev = "v${version}";
sha256 = "09iwc9cwwc88c6yrf6a552nbsnf1w8cnlra9axsar2p0k21v5yl1";
};
vendorSha256 = "09rjqw6v1jaf0mhmycw9mcay9q0y1fya2azj8216gdgkl48ics08";
nativeBuildInputs = [ scdoc ];
postPatch = ''
substituteInPlace darkman.service \
--replace "/usr/bin/darkman" "$out/bin/darkman"
substituteInPlace contrib/dbus/nl.whynothugo.darkman.service \
--replace "/usr/bin/darkman" "$out/bin/darkman"
substituteInPlace contrib/dbus/org.freedesktop.impl.portal.desktop.darkman.service \
--replace "/usr/bin/darkman" "$out/bin/darkman"
'';
buildPhase = ''
runHook preBuild
make build
runHook postBuild
'';
installPhase = ''
runHook preInstall
make PREFIX=$out install
runHook postInstall
'';
passthru.updateScript = nix-update-script {
attrPath = pname;
};
meta = with lib; {
description = "Framework for dark-mode and light-mode transitions on Linux desktop";
homepage = "https://gitlab.com/WhyNotHugo/darkman";
license = licenses.isc;
maintainers = [ maintainers.ajgrf ];
};
}

View File

@ -4,6 +4,7 @@
, libtiff
, librsvg
, libiconv
, bash
}:
stdenv.mkDerivation rec {
@ -17,13 +18,20 @@ stdenv.mkDerivation rec {
outputs = [ "bin" "dev" "out" ];
strictDeps = true;
nativeBuildInputs = [
librsvg
];
buildInputs = [
libjpeg
libtiff
librsvg
libiconv
bash
];
enableParallelBuilding = true;
meta = with lib; {
description = "The big set of CLI tools to make/modify/optimize/show/export DJVU files";
homepage = "http://djvu.sourceforge.net";

View File

@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
pname = "fetchmail";
version = "6.4.30";
version = "6.4.32";
src = fetchurl {
url = "mirror://sourceforge/fetchmail/fetchmail-${version}.tar.xz";
sha256 = "sha256-NYJMIKodjZfj8WEf70m59/aDlvfLxNOoB/7SeunqRFo=";
sha256 = "sha256-PudERmVgatBvtfexX5HjFzuEW8mLZGsaRRSkaqSLcig=";
};
buildInputs = [ openssl ];

View File

@ -52,11 +52,9 @@ buildPythonApplication rec {
# will fail without pre-seeded config files
doCheck = false;
checkInputs = [ mock ];
checkInputs = [ unittestCheckHook mock ];
checkPhase = ''
${python.interpreter} -m unittest discover -s tests -v
'';
unittestFlagsArray = [ "-s" "tests" "-v" ];
meta = with lib; {
homepage = "https://github.com/donnemartin/haxor-news";

View File

@ -2,13 +2,13 @@
mkDerivation rec {
pname = "heimer";
version = "3.2.0";
version = "3.5.0";
src = fetchFromGitHub {
owner = "juzzlin";
repo = pname;
rev = version;
sha256 = "sha256-aAFhShsC3FLGgtF/8XJbWIMBEO3/gcGeDZei69Luz+s=";
sha256 = "sha256-rxvfBgbMVKNiv+F2fyqcieGamTUwFKScEky918oU8lc=";
};
nativeBuildInputs = [ cmake ];

View File

@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "iptsd";
version = "0.5";
version = "0.5.1";
src = fetchFromGitHub {
owner = "linux-surface";
repo = pname;
rev = "v${version}";
sha256 = "sha256-A/0hA4gJwzrRPn57IKYvfcAnx1KXbQl0ZX2TE8mcQhc=";
sha256 = "sha256-du5TC3I5+hWifjdnaeTj2QPJ6/oTXZqaOrZJkef/USU=";
};
nativeBuildInputs = [ meson ninja pkg-config ];

View File

@ -1,7 +1,8 @@
{ lib, fetchurl, buildDotnetPackage, substituteAll, makeWrapper, makeDesktopItem,
unzip, icoutils, gtk2, xorg, xdotool, xsel, coreutils, unixtools, glib, plugins ? [] }:
with builtins; buildDotnetPackage rec {
let
inherit (builtins) add length readFile replaceStrings unsafeDiscardStringContext toString map;
in buildDotnetPackage rec {
pname = "keepass";
version = "2.49";

View File

@ -15,9 +15,7 @@ in buildPythonApplication rec {
nativeBuildInputs = [ setuptools-scm ];
propagatedBuildInputs = [ pyyaml six jinja2 cerberus_1_1 ];
checkPhase = ''
${python.interpreter} -m unittest discover
'';
checkInputs = [ unittestCheckHook ];
meta = with lib; {
homepage = "https://pythonhosted.org/pyditz/";

View File

@ -1,4 +1,4 @@
{ lib, python3Packages, fetchFromGitHub, glibcLocales }:
{ lib, python3Packages, fetchFromGitHub, glibcLocales, unittestCheckHook }:
with python3Packages;
@ -22,16 +22,15 @@ buildPythonApplication rec {
watchdog
];
checkInputs = [ mock freezegun pylint ];
checkInputs = [ unittestCheckHook mock freezegun pylint ];
# Skip test that has been reported multiple times upstream without result:
# bram85/topydo#271, bram85/topydo#274.
checkPhase = ''
preCheck = ''
substituteInPlace test/test_revert_command.py --replace 'test_revert_ls' 'dont_test_revert_ls'
python -m unittest discover
'';
LC_ALL="en_US.UTF-8";
LC_ALL = "en_US.UTF-8";
meta = with lib; {
description = "A cli todo application compatible with the todo.txt format";

View File

@ -531,7 +531,6 @@ buildStdenv.mkDerivation ({
header "separating debug info from $i (build ID $id)"
mkdir -p "$dst/''${id:0:2}"
$OBJCOPY --only-keep-debug "$i" "$dst/''${id:0:2}/''${id:2}.debug"
$STRIP --strip-debug "$i"
# Also a create a symlink <original-name>.debug.
ln -sfn ".build-id/''${id:0:2}/''${id:2}.debug" "$dst/../$(basename "$i")"

View File

@ -2,16 +2,16 @@
buildGoModule rec {
pname = "argocd-autopilot";
version = "0.4.4";
version = "0.4.5";
src = fetchFromGitHub {
owner = "argoproj-labs";
repo = "argocd-autopilot";
rev = "v${version}";
sha256 = "sha256-d7Jm4Ff7cXytbECt+/TzncCwDGDYxsV1xOC8GSPAgJY=";
sha256 = "sha256-0UQpqQ0qvBuTGI6xG+y/f9JijA4CukdqvQbr0KFir1c=";
};
vendorSha256 = "sha256-EpLU6rYzmtk/FCZiS8AJVGR4LUEkzNQE26CU9LzBwFM=";
vendorSha256 = "sha256-ujDtfDL1VWe4XjTHD+pXMmMFp0AiuZcE+CKRkMsiv9Q=";
proxyVendor = true;

View File

@ -2,13 +2,13 @@
buildGoModule rec {
pname = "kubernetes-helm";
version = "3.9.3";
version = "3.9.4";
src = fetchFromGitHub {
owner = "helm";
repo = "helm";
rev = "v${version}";
sha256 = "sha256-fRlHI2g+pSexPzeEqUnow5WTPvNMGnQNWjnllzJ42fY=";
sha256 = "sha256-KIqbugEzwjlDcQPiQQjN+i05rcMNIbYpGufVYZwQ/uQ=";
};
vendorSha256 = "sha256-ZOY25wgxCdVQafdhBW4Z3aQxOGTs7N3SvSDJ/Fu5psg=";

View File

@ -2,16 +2,16 @@
buildGoModule rec {
pname = "kube-router";
version = "1.4.0";
version = "1.5.1";
src = fetchFromGitHub {
owner = "cloudnativelabs";
repo = pname;
rev = "v${version}";
sha256 = "sha256-WBnJPCZHtJWckoFvE8e+eAa2EC/RA7yOMlW+Cemw53Q=";
sha256 = "sha256-J/wQyrEEdBki8bq1Qesgu4Kqj2w33zzvEEOecFdiGak=";
};
vendorSha256 = "sha256-5co+288KZf/dx/jZ7xIGh6kxuW3DdbpAsrZgYob3nWk=";
vendorSha256 = "sha256-+3uTIaXuiwbU0fUgn2th4RNDQ5gCDi3ntPMu92S+mXc=";
CGO_ENABLED = 0;

View File

@ -2,16 +2,16 @@
buildGoModule rec {
pname = "kubelogin";
version = "0.0.11";
version = "0.0.20";
src = fetchFromGitHub {
owner = "Azure";
repo = pname;
rev = "v${version}";
sha256 = "sha256-+u+75Z2Efaq16g7kGNq1GHavXwtKvNO6dytniUr8mlE=";
sha256 = "sha256-ZaAjXuECOmGIqye08/A41VQiO7avxqbaCOPFCPjaOjY=";
};
vendorSha256 = "sha256-vJfTf9gD/qrsPAfJeMYLjGa90mYLOshgDehv2Fcl6xM=";
vendorSha256 = "sha256-3TQm0xbgFDZ2XCie93g4fPXKCHDh/yw4vwpAEMBMQGI=";
ldflags = [
"-X main.version=${version}"

View File

@ -2,16 +2,16 @@
buildGoModule rec {
pname = "roxctl";
version = "3.70.1";
version = "3.71.0";
src = fetchFromGitHub {
owner = "stackrox";
repo = "stackrox";
rev = version;
sha256 = "sha256-T06VldyPBIpYWs8+N4OWmaCwXCcb37F7lLD4jHcm1uc=";
sha256 = "sha256-svoSc9cT12nPYbyYz+Uv2edJAt/dJjcqe3E6cKII0KY=";
};
vendorSha256 = "sha256-xh2bgLSWjQHOjHrgDpQri78LvCL4CDbMteQYARyGLgg=";
vendorSha256 = "sha256-zz8v9HkJPnk4QDRa9eVgI5uvqQLhemq8vOZ0qc9u8es=";
nativeBuildInputs = [ installShellFiles ];

View File

@ -169,9 +169,9 @@ rec {
mkTerraform = attrs: pluggable (generic attrs);
terraform_1 = mkTerraform {
version = "1.2.7";
sha256 = "sha256-0AGONBurlm0cSM4HyAmUxLt8GdnqNPh146A8ibyfe+k=";
vendorSha256 = "sha256-Whe1prBGsE0q0QdNkzAKwvAP7EVlnD/985gjngh+VI4=";
version = "1.2.8";
sha256 = "sha256-FJHZtYQHzRPWlSlXYu8mdd0YddIrBy8eBzhsvAHwfZw=";
vendorSha256 = "sha256-VKJ+aWZYD6N8HDJwUEtgWxoBMGOa27K9ze2RUJvuipc=";
patches = [ ./provider-path-0_15.patch ];
passthru = {
inherit plugins;

View File

@ -11,16 +11,16 @@
buildGoModule rec {
pname = "werf";
version = "1.2.163";
version = "1.2.164";
src = fetchFromGitHub {
owner = "werf";
repo = "werf";
rev = "v${version}";
sha256 = "sha256-TgXJ5l/vWHIlAEMmPWM50AOMHU9crsmjtxJdmGzPM+w=";
sha256 = "sha256-qRw3cH0UNg1PyNZfiVSAX0WJsPw17KNsJ1TnBlySI94=";
};
vendorSha256 = "sha256-XpSAFiweD2oUKleD6ztDp1+3PpfUWXfGaaE/9mzRrUQ=";
vendorSha256 = "sha256-E5yDk48O7zze8QTeLQ999QmB8XLkpKNZ8JQ2wVRMGCU=";
proxyVendor = true;

View File

@ -5,11 +5,11 @@
stdenv.mkDerivation rec {
pname = "alfaview";
version = "8.49.1";
version = "8.51.0";
src = fetchurl {
url = "https://production-alfaview-assets.alfaview.com/stable/linux/${pname}_${version}.deb";
sha256 = "sha256-A0kX6r5ubC764XJFinCq4/u9pA1AOP4fXUOFB4voeeE=";
sha256 = "sha256-rnzYTQpAX1OSBnVfnFsamd9i9Zpab4mZwlxot0CakgY=";
};
nativeBuildInputs = [

View File

@ -1,4 +1,4 @@
{ stdenv, lib, fetchgit, wrapGAppsHook, autoreconfHook, bison, flex
{ stdenv, lib, fetchgit, fetchurl, wrapGAppsHook, autoreconfHook, bison, flex
, curl, gtk3, pkg-config, python3, shared-mime-info
, glib-networking, gsettings-desktop-schemas
@ -110,6 +110,11 @@ in stdenv.mkDerivation rec {
patches = [
./mime.patch
# fix build with perl 5.36+
(fetchurl {
url = "https://raw.githubusercontent.com/archlinux/svntogit-packages/packages/claws-mail/trunk/20cope_with_fix_for_1009149.patch";
hash = "sha256-/WBslmoFvja2v2GEBntxvNtG0I3xtkUUqXO5gl5pqqs=";
})
];
preConfigure = ''

View File

@ -4,13 +4,13 @@ rec {
thunderbird = thunderbird-102;
thunderbird-91 = (buildMozillaMach rec {
pname = "thunderbird";
version = "91.12.0";
version = "91.13.0";
application = "comm/mail";
applicationName = "Mozilla Thunderbird";
binaryName = pname;
src = fetchurl {
url = "mirror://mozilla/thunderbird/releases/${version}/source/thunderbird-${version}.source.tar.xz";
sha512 = "1c0200a84ccc4124127d472713d72c4ff7ece8d61ad120d5c45c732a3ab4f86a2edfea23a8bf26e4739d24956654aec30e7bc59a28af17fbbf10f3d67466649a";
sha512 = "e73d3db4333ad659ec1ab249bd261e8c28301c125d0c39b473c83f8fccace6d4916a2bfef14fc20c065055ff6bbd3ca618b5aab178241b53509543640dcd541a";
};
extraPatches = [
# The file to be patched is different from firefox's `no-buildconfig-ffx90.patch`.

View File

@ -19,6 +19,7 @@ let
src = oldAttrs.src.override {
inherit version;
hash = "sha256-yKhbKNN3zHc35G4tnytPRO48Dh3qxr9G3e/HGH0weXo=";
sha256 = "";
};
SETUPTOOLS_SCM_PRETEND_VERSION = version;

View File

@ -0,0 +1,95 @@
From b9bf46966dd7931f9f33c30ed608a21d0e71e923 Mon Sep 17 00:00:00 2001
From: rewine <lhongxu@outlook.com>
Date: Tue, 19 Jul 2022 13:19:10 +0800
Subject: [PATCH 1/2] remove dependency on vendored library
---
CuteMarkEd.pro | 4 +---
app-static/app-static.pro | 11 ++---------
app/app.pro | 2 --
app/cutemarkdownhighlighter.h | 2 +-
4 files changed, 4 insertions(+), 15 deletions(-)
diff --git a/CuteMarkEd.pro b/CuteMarkEd.pro
index 4ee92e3..0d247a4 100644
--- a/CuteMarkEd.pro
+++ b/CuteMarkEd.pro
@@ -9,12 +9,10 @@ TEMPLATE = subdirs
CONFIG += c++14
SUBDIRS = \
- 3rdparty \
libs \
app-static \
app \
- fontawesomeicon \
- test
+ fontawesomeicon
# build order: 3rdparty -> libs -> app-static -> app & test
#libs.depends = 3rdparty
diff --git a/app-static/app-static.pro b/app-static/app-static.pro
index cd3c292..560b4fc 100644
--- a/app-static/app-static.pro
+++ b/app-static/app-static.pro
@@ -13,7 +13,6 @@ CONFIG += c++11
INCLUDEPATH += $$PWD
# MD4C library
-INCLUDEPATH += $$PWD/../3rdparty/md4c/src
SOURCES += \
snippets/jsonsnippettranslator.cpp \
@@ -34,10 +33,7 @@ SOURCES += \
revealviewsynchronizer.cpp \
htmlpreviewcontroller.cpp \
htmlviewsynchronizer.cpp \
- yamlheaderchecker.cpp \
- $$PWD/../3rdparty/md4c/src/md4c.c \
- $$PWD/../3rdparty/md4c/src/entity.c \
- $$PWD/../3rdparty/md4c/src/md4c-html.c
+ yamlheaderchecker.cpp
HEADERS += \
snippets/snippet.h \
@@ -64,10 +60,7 @@ HEADERS += \
revealviewsynchronizer.h \
htmlpreviewcontroller.h \
htmlviewsynchronizer.h \
- yamlheaderchecker.h \
- $$PWD/../3rdparty/md4c/src/md4c.h \
- $$PWD/../3rdparty/md4c/src/entity.h \
- $$PWD/../3rdparty/md4c/src/md4c-html.h
+ yamlheaderchecker.h
#unix:!symbian {
diff --git a/app/app.pro b/app/app.pro
index 4827673..ab961cf 100644
--- a/app/app.pro
+++ b/app/app.pro
@@ -40,8 +40,6 @@ macx {
}
#qmarkdowntextedit
-include(../3rdparty/qmarkdowntextedit/qmarkdowntextedit.pri)
-include(../3rdparty/hunspell/hunspell.pri)
INCLUDEPATH += $$PWD
SOURCES += \
diff --git a/app/cutemarkdownhighlighter.h b/app/cutemarkdownhighlighter.h
index c99ab56..78f2be6 100644
--- a/app/cutemarkdownhighlighter.h
+++ b/app/cutemarkdownhighlighter.h
@@ -19,7 +19,7 @@
#include <QSyntaxHighlighter>
-#include "../3rdparty/qmarkdowntextedit/markdownhighlighter.h"
+#include <QMarkdownTextedit/markdownhighlighter.h>
namespace hunspell {
class SpellChecker;
--
2.36.1

View File

@ -0,0 +1,25 @@
From bdc66eace846edc8a7b435f7ca9f324427243ce4 Mon Sep 17 00:00:00 2001
From: rewine <lhongxu@outlook.com>
Date: Thu, 21 Jul 2022 17:30:22 +0800
Subject: [PATCH 2/2] use pkgcofig to find libraries
---
app/app.pro | 2 ++
1 file changed, 2 insertions(+)
diff --git a/app/app.pro b/app/app.pro
index ab961cf..475487d 100644
--- a/app/app.pro
+++ b/app/app.pro
@@ -13,6 +13,8 @@ win32: QT += winextras
TARGET = cutemarked
TEMPLATE = app
CONFIG += c++11
+CONFIG += link_pkgconfig
+PKGCONFIG += QMarkdownTextedit hunspell md4c-html
unix:!macx {
CONFIG += link_pkgconfig
--
2.36.1

View File

@ -0,0 +1,57 @@
{ lib
, stdenv
, fetchFromGitHub
, qmake
, pkg-config
, qttools
, qtbase
, qtwebengine
, wrapQtAppsHook
, qmarkdowntextedit
, md4c
, hunspell
}:
stdenv.mkDerivation rec {
pname = "CuteMarkEd-NG";
version = "unstable-2021-07-29";
src = fetchFromGitHub {
owner = "Waqar144";
repo = pname;
rev = "9431ac603cef23d6f29e51e18f1eeee156f5bfb3";
sha256 = "sha256-w/D4C2ZYgI/7ZCDamTQlhrJ9vtvAMThgM/fopkdKWYc";
};
patches = [
./0001-remove-dependency-on-vendored-library.patch
./0002-use-pkgcofig-to-find-libraries.patch
];
postPatch = ''
substituteInPlace app/app.pro \
--replace '$$[QT_INSTALL_BINS]/lrelease' "lrelease"
'';
nativeBuildInputs = [
qmake
qttools
pkg-config
wrapQtAppsHook
];
buildInputs = [
md4c
qtwebengine
qmarkdowntextedit
hunspell.dev
];
meta = with lib; {
description = "A Qt-based, free and open source markdown editor";
homepage = "https://github.com/Waqar144/CuteMarkEd-NG";
license = licenses.gpl2Plus;
maintainers = with maintainers; [ rewine ];
platforms = platforms.linux;
};
}

View File

@ -205,6 +205,8 @@ in
# Fix build with poppler 22.04
./poppler-22-04-0.patch
./gpgme-1.18.patch
];
### QT/KDE

View File

@ -0,0 +1,10 @@
The way this check mixes C and C++ started to cause issues since gpgme 1.18.0
But we can confidently skip the function check anyway.
--- a/configure.ac
+++ b/configure.ac
@@ -12302,4 +12302 @@
- # progress_callback is the only func with plain C linkage
- # checking for it also filters out older, KDE-dependent libgpgmepp versions
- AC_CHECK_LIB(gpgmepp, progress_callback, [ GPGMEPP_LIBS=-lgpgmepp ],
- [AC_MSG_ERROR(gpgmepp not found or not functional)], [])
+ GPGMEPP_LIBS=-lgpgmepp

View File

@ -16,6 +16,8 @@
mkDerivation rec {
pname = "audiotube";
postPatch = "sed '1i#include <iostream>' -i src/ytmusic.cpp";
nativeBuildInputs = [
extra-cmake-modules
gcc11 # doesn't build with GCC 9 from stdenv on aarch64

View File

@ -8,12 +8,12 @@
}:
stdenv.mkDerivation rec {
version = "1.4.5";
version = "1.4.7";
pname = "flrig";
src = fetchurl {
url = "mirror://sourceforge/fldigi/${pname}-${version}.tar.gz";
sha256 = "sha256-Zj/LkP1nSm1zLKLxuGfaKuVuP8jaVlvK/TzX504VKHk=";
sha256 = "sha256-RzyeJf3T1vKTlyU/EMXFY+ObkqKq7wJyBB8ZeKMOO1M=";
};
buildInputs = [

View File

@ -2,12 +2,12 @@
stdenv.mkDerivation rec {
pname = "angsd";
version = "0.937";
version = "0.938";
src = fetchFromGitHub {
owner = "ANGSD";
repo = "angsd";
sha256 = "1020gh066dprqhfi90ywqzqqnq7awn49wrkkjnizmmab52v00kxs";
sha256 = "sha256-hNELuPim2caJCzJ63fQ7kIB0ZZnXcC8JIbk4dFcCs2U=";
rev = "${version}";
};

View File

@ -7,6 +7,13 @@
let allVersions = with lib; flip map
# N.B. Versions in this list should be ordered from newest to oldest.
[
{
version = "13.1.0";
lang = "en";
language = "English";
sha256 = "1659kyp38a8xknic95pynx9fsgn96i8jn9lnk89pc8n6vydw1460";
installer = "WolframEngine_13.1.0_LINUX.sh";
}
{
version = "13.0.1";
lang = "en";

View File

@ -2,13 +2,13 @@
buildGoModule rec {
pname = "gh";
version = "2.14.5";
version = "2.14.6";
src = fetchFromGitHub {
owner = "cli";
repo = "cli";
rev = "v${version}";
sha256 = "sha256-BkUSt4MTcAdAJjZv7MIhkhCUc/uuROrUkDhc+u1N67Y=";
sha256 = "sha256-lortdE+qp+ejxu/QJKz+wNzaNqxcG83nHZi1txblr7E=";
};
vendorSha256 = "sha256-ZgUU9G9BLjGSDvS15fmSpvGD0POKuX9mTF9+XxYciZI=";

View File

@ -28,7 +28,7 @@ assert sendEmailSupport -> perlSupport;
assert svnSupport -> perlSupport;
let
version = "2.37.1";
version = "2.37.2";
svn = subversionClient.override { perlBindings = perlSupport; };
gitwebPerlLibs = with perlPackages; [ CGI HTMLParser CGIFast FCGI FCGIProcManager HTMLTagCloud ];
in
@ -41,7 +41,7 @@ stdenv.mkDerivation (finalAttrs: {
src = fetchurl {
url = "https://www.kernel.org/pub/software/scm/git/git-${version}.tar.xz";
sha256 = "sha256-yBYsa4uPHF23BqsBtO4p4xBhGCE13CfEhgIkquwbNQA=";
sha256 = "sha256-HD2cghxFOOem2sMKSvi9jc/k9lH5VHTFJrUvg0BtsAM=";
};
outputs = [ "out" ] ++ lib.optional withManual "doc";

View File

@ -10,24 +10,24 @@ with lib;
let
pname = "gitkraken";
version = "8.6.0";
version = "8.8.0";
throwSystem = throw "Unsupported system: ${stdenv.hostPlatform.system}";
srcs = {
x86_64-linux = fetchzip {
url = "https://release.axocdn.com/linux/GitKraken-v${version}.tar.gz";
sha256 = "sha256-BBhKenEm1D680wJ1hmIOM/AdXN1DxoipLf9K4eHESzs=";
sha256 = "sha256-F/uqV6CL/zFERS6nKVD8kEqCZQ2O9AGGzU5uCJ94qwk=";
};
x86_64-darwin = fetchzip {
url = "https://release.axocdn.com/darwin/GitKraken-v${version}.zip";
sha256 = "sha256-fyRhvaKDGYyKu6lAxHb5ve7Ix+7Tuu5JWXnqBF73ti4=";
sha256 = "sha256-TWkwN39SxPRvUUjAPSBxv4octWasjRiA91FNCWRya44=";
};
aarch64-darwin = fetchzip {
url = "https://release.axocdn.com/darwin-arm64/GitKraken-v${version}.zip";
sha256 = "sha256-qbu3gPTo5zY7OQyULY2iIUDQjwjlL4xZdkl68rE3VHA=";
sha256 = "sha256-drAj0t8BRUETQ6mZPdHXgkuFAKeYsGLE8oLtf/imHk4=";
};
};

View File

@ -57,10 +57,10 @@
, libdvdcss
, libbluray
# Darwin-specific
, AudioToolbox ? null
, Foundation ? null
, libobjc ? null
, VideoToolbox ? null
, AudioToolbox
, Foundation
, libobjc
, VideoToolbox
# GTK
# NOTE: 2019-07-19: The gtk3 package has a transitive dependency on dbus,
# which in turn depends on systemd. systemd is not supported on Darwin, so

View File

@ -8,13 +8,13 @@
stdenv.mkDerivation rec {
pname = "jftui";
version = "0.5.1";
version = "0.6.0";
src = fetchFromGitHub {
owner = "Aanok";
repo = pname;
rev = "v${version}";
sha256 = "sha256-/QVSywS0O+HZpwY9W3le3RK3OhCkmdLYMCGTyyBdsFw=";
sha256 = "sha256-UwR4IboLSjD/XXvSw1AhJubSxettvL/URhZ/Je6TWPQ=";
};
nativeBuildInputs = [

View File

@ -2,16 +2,16 @@
buildGoModule rec {
pname = "docker-compose";
version = "2.10.0";
version = "2.10.1";
src = fetchFromGitHub {
owner = "docker";
repo = "compose";
rev = "v${version}";
sha256 = "sha256-SXmYf1IvHXzNLP6w8MzFx6W2kX4yIICuACOJ8Yu/HWE=";
sha256 = "sha256-SAq6sXhYySqebXbWHJ9X6q1wWnNJjgwKf8YLTXZpKuA=";
};
vendorSha256 = "sha256-nqfCdvgK2JF4XNnA14KJNngP2M/OKThawdTo+iPjRNM=";
vendorSha256 = "sha256-Yz2lea+ttgNbfP1mL+kwTKmo81Q6GGjJyvDANzeckpo=";
ldflags = [ "-X github.com/docker/compose/v2/internal.Version=${version}" "-s" "-w" ];

View File

@ -2,16 +2,16 @@
rustPlatform.buildRustPackage rec {
pname = "nixpacks";
version = "0.3.2";
version = "0.3.3";
src = fetchFromGitHub {
owner = "railwayapp";
repo = pname;
rev = "v${version}";
sha256 = "sha256-WLT9dkaoPHusPBD6oZQSR1KGR1/Lt1jB4+BLhuAXo50=";
sha256 = "sha256-CnRYMdqQvYvHzYNFa6QNh9yFyHeXrMJFPafEcYZ/sHE=";
};
cargoSha256 = "sha256-aV0Cg4hbcGylQjx09rHvwHbre/OSALvekEifRYr89D8=";
cargoSha256 = "sha256-OHG1XMSurmSxtMb/rizgLnyIHIo+SJSlM1Ggl8crHzM=";
# skip test due FHS dependency
doCheck = false;

View File

@ -365,7 +365,7 @@ stdenv.mkDerivation {
##
+ extraBuildCommands;
inherit dynamicLinker expand-response-params;
inherit dynamicLinker;
# for substitution in utils.bash
expandResponseParams = "${expand-response-params}/bin/expand-response-params";

View File

@ -157,6 +157,8 @@ stdenv.mkDerivation {
'(${concatStringsSep " " (map (pkg: "\"${pkg}\"") pkgs)}))
'';
inherit expand-response-params;
inherit nixSupport;
};
@ -540,7 +542,6 @@ stdenv.mkDerivation {
(name: value: "echo ${toString value} >> $out/nix-support/${name}")
nixSupport);
inherit expand-response-params;
# for substitution in utils.bash
expandResponseParams = "${expand-response-params}/bin/expand-response-params";

View File

@ -4,12 +4,17 @@ let mirrors = import ./mirrors.nix; in
{ url ? builtins.head urls
, urls ? []
, sha256
, sha256 ? ""
, hash ? ""
, name ? baseNameOf (toString url)
}:
# assert exactly one hash is set
assert hash != "" || sha256 != "";
assert hash != "" -> sha256 == "";
import <nix/fetchurl.nix> {
inherit system sha256 name;
inherit system hash sha256 name;
url =
# Handle mirror:// URIs. Since <nix/fetchurl.nix> currently

View File

@ -117,6 +117,9 @@ let
else throw "fetchurl requires either `url` or `urls` to be set";
hash_ =
# Many other combinations don't make sense, but this is the most common one:
if hash != "" && sha256 != "" then throw "multiple hashes passed to fetchurl" else
if hash != "" then { outputHashAlgo = null; outputHash = hash; }
else if md5 != "" then throw "fetchurl does not support md5 anymore, please use sha256 or sha512"
else if (outputHash != "" && outputHashAlgo != "") then { inherit outputHashAlgo outputHash; }

View File

@ -75,11 +75,8 @@ in {
${lib.optionalString (stdenv.buildPlatform.config != stdenv.hostPlatform.config) ''
[target."${shortTarget}"]
"linker" = "${ccForHost}"
${# https://github.com/rust-lang/rust/issues/46651#issuecomment-433611633
lib.optionalString (stdenv.hostPlatform.isMusl && stdenv.hostPlatform.isAarch64) ''
"rustflags" = [ "-C", "target-feature=+crt-static", "-C", "link-arg=-lgcc" ]
''}
''}
"rustflags" = [ "-C", "target-feature=${if stdenv.hostPlatform.isStatic then "+" else "-"}crt-static" ]
'';
};
} ./cargo-setup-hook.sh) {};

View File

@ -2,7 +2,6 @@ export NIX_SET_BUILD_ID=1
export NIX_LDFLAGS+=" --compress-debug-sections=zlib"
export NIX_CFLAGS_COMPILE+=" -ggdb -Wa,--compress-debug-sections"
export RUSTFLAGS+=" -g"
dontStrip=1
fixupOutputHooks+=(_separateDebugInfo)
@ -35,7 +34,6 @@ _separateDebugInfo() {
# firmware blobs in QEMU.)
(
$OBJCOPY --only-keep-debug "$i" "$dst/${id:0:2}/${id:2}.debug"
$STRIP --strip-debug "$i"
# Also a create a symlink <original-name>.debug.
ln -sfn ".build-id/${id:0:2}/${id:2}.debug" "$dst/../$(basename "$i")"

View File

@ -38,26 +38,27 @@ _doStrip() {
stripDirs() {
local cmd="$1"
local ranlibCmd="$2"
local dirs="$3"
local paths="$3"
local stripFlags="$4"
local dirsNew=
local pathsNew=
local d
for d in ${dirs}; do
if [ -d "$prefix/$d" ]; then
dirsNew="${dirsNew} $prefix/$d "
local p
for p in ${paths}; do
if [ -e "$prefix/$p" ]; then
pathsNew="${pathsNew} $prefix/$p"
fi
done
dirs=${dirsNew}
paths=${pathsNew}
if [ -n "${dirs}" ]; then
echo "stripping (with command $cmd and flags $stripFlags) in$dirs"
find $dirs -type f -exec $cmd $stripFlags '{}' \; 2>/dev/null
if [ -n "${paths}" ]; then
echo "stripping (with command $cmd and flags $stripFlags) in $paths"
# Do not strip lib/debug. This is a directory used by setup-hooks/separate-debug-info.sh.
find $paths -type f -a '!' -wholename "$prefix/lib/debug/*" -exec $cmd $stripFlags '{}' \; 2>/dev/null
# 'strip' does not normally preserve archive index in .a files.
# This usually causes linking failures against static libs like:
# ld: ...-i686-w64-mingw32-stage-final-gcc-13.0.0-lib/i686-w64-mingw32/lib/libstdc++.dll.a:
# error adding symbols: archive has no index; run ranlib to add one
# Restore the index by running 'ranlib'.
find $dirs -name '*.a' -type f -exec $ranlibCmd '{}' \; 2>/dev/null
find $paths -name '*.a' -type f -exec $ranlibCmd '{}' \; 2>/dev/null
fi
}

View File

@ -0,0 +1,34 @@
{ lib, fetchzip, stdenvNoCC, fetchFromGitLab, xcursorgen, imagemagick6, inkscape }:
stdenvNoCC.mkDerivation rec {
pname = "hackneyed";
version = "0.8.2";
src = fetchFromGitLab {
owner = "Enthymeme";
repo = "hackneyed-x11-cursors";
rev = version;
sha256 = "sha256-Wtrw/EzxCj4cAyfdBp0OJE4+c6FouW7+b6nFTLxdXNY=";
};
buildInputs = [ imagemagick6 inkscape xcursorgen ];
postPatch = ''
patchShebangs *.sh
substituteInPlace make-png.sh \
--replace /usr/bin/inkscape ${inkscape}/bin/inkscape
'';
enableParallelBuilding = true;
makeFlags = [ "PREFIX=$(out)" ];
buildFlags = [ "theme" "theme.left" ];
meta = with lib; {
homepage = "https://gitlab.com/Enthymeme/hackneyed-x11-cursors";
description = "A scalable cursor theme that resembles Windows 3.x/NT 3.x cursors";
platforms = platforms.all;
license = licenses.mit;
maintainers = with maintainers; [ somasis ];
};
}

View File

@ -2,18 +2,18 @@
stdenv.mkDerivation rec {
pname = "tzdata";
version = "2022a";
version = "2022b";
srcs =
[ (fetchurl {
url = "https://data.iana.org/time-zones/releases/tzdata${version}.tar.gz";
sha256 = "0r0nhwpk9nyxj5kkvjy58nr5d85568m04dcb69c4y3zmykczyzzg";
})
(fetchurl {
url = "https://data.iana.org/time-zones/releases/tzcode${version}.tar.gz";
sha256 = "1iysv8fdkm79k8wh8jizmjmq075q4qjhk090vxjy57my6dz5wmzq";
})
];
srcs = [
(fetchurl {
url = "https://data.iana.org/time-zones/releases/tzdata${version}.tar.gz";
hash = "sha256-9ZDq8Eo5UkVCbCvk+uccFDrqXOvBEIi3oKVwRGHfOX0=";
})
(fetchurl {
url = "https://data.iana.org/time-zones/releases/tzcode${version}.tar.gz";
hash = "sha256-urINlD5ZoyGENfSNhopOVS8Y1tfz3RKGYMVmDIC4oF8=";
})
];
sourceRoot = ".";

View File

@ -88,6 +88,7 @@ stdenv.mkDerivation rec {
};
meta = with lib; {
broken = true; # won't build with current meson; upstream is dead/archived
homepage = "https://wiki.gnome.org/Apps/Books";
description = "An e-book manager application for GNOME";
maintainers = teams.gnome.members;

View File

@ -7,7 +7,7 @@ packages:
# 3. Something else?
let cli = builtins.head packages;
in
assert lib.assertMsg ((builtins.length packages) < 1)
assert lib.assertMsg ((builtins.length packages) > 0)
''You must include at least one package, e.g
`with dotnetCorePackages; combinePackages [
sdk_3_1 aspnetcore_5_0

File diff suppressed because it is too large Load Diff

View File

@ -188,7 +188,7 @@ stdenv.mkDerivation ({
preConfigure = import ../common/pre-configure.nix {
inherit lib;
inherit version targetPlatform hostPlatform gnatboot langAda langGo langJit crossStageStatic;
inherit version targetPlatform hostPlatform gnatboot langAda langGo langJit crossStageStatic enableMultilib;
};
dontDisableStatic = true;
@ -229,7 +229,7 @@ stdenv.mkDerivation ({
(if profiledCompiler then "profiledbootstrap" else "bootstrap");
inherit
(import ../common/strip-attributes.nix { inherit stdenv; })
(import ../common/strip-attributes.nix { inherit lib stdenv langJit; })
stripDebugList
stripDebugListTarget
preFixup;
@ -268,8 +268,6 @@ stdenv.mkDerivation ({
enableParallelBuilding = true;
inherit enableMultilib enableShared;
inherit (stdenv) is64bit;
meta = {
homepage = "https://gcc.gnu.org/";
license = lib.licenses.gpl3Plus; # runtime support libraries are typically LGPLv3+

View File

@ -74,8 +74,8 @@ let majorVersion = "11";
++ optional (targetPlatform.libc == "musl" && targetPlatform.isPower) ../ppc-musl.patch
++ optional (stdenv.isDarwin && stdenv.isAarch64) (fetchpatch {
url = "https://github.com/fxcoudert/gcc/compare/releases/gcc-11.1.0...gcc-11.1.0-arm-20210504.diff";
sha256 = "sha256-JqCGJAfbOxSmkNyq49aFHteK/RFsCSLQrL9mzUCnaD0=";
url = "https://github.com/fxcoudert/gcc/compare/releases/gcc-11.2.0...gcc-11.2.0-arm-20211201.diff";
sha256 = "sha256-z62s/cXuH9Kgq/oD/OiiZ8LWnX1xl1D43sONnwaEW1w=";
})
# Obtain latest patch with ../update-mcfgthread-patches.sh
@ -196,7 +196,7 @@ stdenv.mkDerivation ({
preConfigure = import ../common/pre-configure.nix {
inherit lib;
inherit version targetPlatform hostPlatform gnatboot langAda langGo langJit crossStageStatic;
inherit version targetPlatform hostPlatform gnatboot langAda langGo langJit crossStageStatic enableMultilib;
};
dontDisableStatic = true;
@ -237,7 +237,7 @@ stdenv.mkDerivation ({
(if profiledCompiler then "profiledbootstrap" else "bootstrap");
inherit
(import ../common/strip-attributes.nix { inherit stdenv; })
(import ../common/strip-attributes.nix { inherit lib stdenv langJit; })
stripDebugList
stripDebugListTarget
preFixup;
@ -276,8 +276,6 @@ stdenv.mkDerivation ({
enableParallelBuilding = true;
inherit enableShared enableMultilib;
inherit (stdenv) is64bit;
meta = {
homepage = "https://gcc.gnu.org/";
license = lib.licenses.gpl3Plus; # runtime support libraries are typically LGPLv3+

View File

@ -191,7 +191,7 @@ stdenv.mkDerivation ({
preConfigure = import ../common/pre-configure.nix {
inherit lib;
inherit version targetPlatform hostPlatform gnatboot langAda langGo langJit crossStageStatic;
inherit version targetPlatform hostPlatform gnatboot langAda langGo langJit crossStageStatic enableMultilib;
};
dontDisableStatic = true;
@ -232,7 +232,7 @@ stdenv.mkDerivation ({
(if profiledCompiler then "profiledbootstrap" else "bootstrap");
inherit
(import ../common/strip-attributes.nix { inherit stdenv; })
(import ../common/strip-attributes.nix { inherit lib stdenv langJit; })
stripDebugList
stripDebugListTarget
preFixup;
@ -271,8 +271,6 @@ stdenv.mkDerivation ({
enableParallelBuilding = true;
inherit enableShared enableMultilib;
inherit (stdenv) is64bit;
meta = {
homepage = "https://gcc.gnu.org/";
license = lib.licenses.gpl3Plus; # runtime support libraries are typically LGPLv3+

View File

@ -195,7 +195,7 @@ stdenv.mkDerivation ({
preConfigure = import ../common/pre-configure.nix {
inherit lib;
inherit version targetPlatform hostPlatform langJava langGo crossStageStatic;
inherit version targetPlatform hostPlatform langJava langGo crossStageStatic enableMultilib;
};
dontDisableStatic = true;
@ -236,7 +236,7 @@ stdenv.mkDerivation ({
(if profiledCompiler then "profiledbootstrap" else "bootstrap");
inherit
(import ../common/strip-attributes.nix { inherit stdenv; })
(import ../common/strip-attributes.nix { inherit lib stdenv langJit; })
stripDebugList
stripDebugListTarget
preFixup;
@ -291,8 +291,6 @@ stdenv.mkDerivation ({
enableParallelBuilding = true;
inherit enableShared enableMultilib;
inherit (stdenv) is64bit;
meta = {
homepage = "https://gcc.gnu.org/";
license = lib.licenses.gpl3Plus; # runtime support libraries are typically LGPLv3+

View File

@ -215,7 +215,7 @@ stdenv.mkDerivation ({
preConfigure = import ../common/pre-configure.nix {
inherit lib;
inherit version targetPlatform hostPlatform langJava langGo crossStageStatic;
inherit version targetPlatform hostPlatform langJava langGo crossStageStatic enableMultilib;
};
dontDisableStatic = true;
@ -256,7 +256,7 @@ stdenv.mkDerivation ({
(if profiledCompiler then "profiledbootstrap" else "bootstrap");
inherit
(import ../common/strip-attributes.nix { inherit stdenv; })
(import ../common/strip-attributes.nix { inherit lib stdenv langJit; })
stripDebugList
stripDebugListTarget
preFixup;
@ -310,8 +310,6 @@ stdenv.mkDerivation ({
enableParallelBuilding = true;
inherit enableShared enableMultilib;
inherit (stdenv) is64bit;
meta = {
homepage = "https://gcc.gnu.org/";
license = lib.licenses.gpl3Plus; # runtime support libraries are typically LGPLv3+

View File

@ -227,7 +227,7 @@ stdenv.mkDerivation ({
preConfigure = import ../common/pre-configure.nix {
inherit lib;
inherit version targetPlatform hostPlatform gnatboot langJava langAda langGo crossStageStatic;
inherit version targetPlatform hostPlatform gnatboot langJava langAda langGo crossStageStatic enableMultilib;
};
dontDisableStatic = true;
@ -268,7 +268,7 @@ stdenv.mkDerivation ({
(if profiledCompiler then "profiledbootstrap" else "bootstrap");
inherit
(import ../common/strip-attributes.nix { inherit stdenv; })
(import ../common/strip-attributes.nix { inherit lib stdenv langJit; })
stripDebugList
stripDebugListTarget
preFixup;
@ -322,8 +322,6 @@ stdenv.mkDerivation ({
enableParallelBuilding = true;
inherit enableShared enableMultilib;
inherit (stdenv) is64bit;
meta = {
homepage = "https://gcc.gnu.org/";
license = lib.licenses.gpl3Plus; # runtime support libraries are typically LGPLv3+

View File

@ -194,7 +194,7 @@ stdenv.mkDerivation ({
preConfigure = import ../common/pre-configure.nix {
inherit lib;
inherit version targetPlatform hostPlatform langGo crossStageStatic;
inherit version targetPlatform hostPlatform langGo crossStageStatic enableMultilib;
};
dontDisableStatic = true;
@ -235,7 +235,7 @@ stdenv.mkDerivation ({
(if profiledCompiler then "profiledbootstrap" else "bootstrap");
inherit
(import ../common/strip-attributes.nix { inherit stdenv; })
(import ../common/strip-attributes.nix { inherit lib stdenv langJit; })
stripDebugList
stripDebugListTarget
preFixup;
@ -276,8 +276,6 @@ stdenv.mkDerivation ({
enableParallelBuilding = true;
inherit enableShared enableMultilib;
inherit (stdenv) is64bit;
meta = {
homepage = "https://gcc.gnu.org/";
license = lib.licenses.gpl3Plus; # runtime support libraries are typically LGPLv3+

View File

@ -177,7 +177,7 @@ stdenv.mkDerivation ({
preConfigure = import ../common/pre-configure.nix {
inherit lib;
inherit version targetPlatform hostPlatform langGo crossStageStatic;
inherit version targetPlatform hostPlatform langGo crossStageStatic enableMultilib;
};
dontDisableStatic = true;
@ -216,7 +216,7 @@ stdenv.mkDerivation ({
(if profiledCompiler then "profiledbootstrap" else "bootstrap");
inherit
(import ../common/strip-attributes.nix { inherit stdenv; })
(import ../common/strip-attributes.nix { inherit lib stdenv langJit; })
stripDebugList
stripDebugListTarget
preFixup;
@ -255,8 +255,6 @@ stdenv.mkDerivation ({
enableParallelBuilding = true;
inherit enableShared enableMultilib;
inherit (stdenv) is64bit;
meta = {
homepage = "https://gcc.gnu.org/";
license = lib.licenses.gpl3Plus; # runtime support libraries are typically LGPLv3+

View File

@ -190,7 +190,7 @@ stdenv.mkDerivation ({
preConfigure = import ../common/pre-configure.nix {
inherit lib;
inherit version targetPlatform hostPlatform gnatboot langAda langGo langJit crossStageStatic;
inherit version targetPlatform hostPlatform gnatboot langAda langGo langJit crossStageStatic enableMultilib;
};
dontDisableStatic = true;
@ -231,7 +231,7 @@ stdenv.mkDerivation ({
(if profiledCompiler then "profiledbootstrap" else "bootstrap");
inherit
(import ../common/strip-attributes.nix { inherit stdenv; })
(import ../common/strip-attributes.nix { inherit lib stdenv langJit; })
stripDebugList
stripDebugListTarget
preFixup;
@ -270,8 +270,6 @@ stdenv.mkDerivation ({
enableParallelBuilding = true;
inherit enableShared enableMultilib;
inherit (stdenv) is64bit;
meta = {
homepage = "https://gcc.gnu.org/";
license = lib.licenses.gpl3Plus; # runtime support libraries are typically LGPLv3+

View File

@ -193,10 +193,15 @@ preInstall() {
mkdir -p "$out/${targetConfig}/lib"
mkdir -p "${!outputLib}/${targetConfig}/lib"
# Make lib64 symlinks to lib.
if [ -n "$is64bit" -a -z "$enableMultilib" ]; then
if [ -n "$linkLib64toLib" ]; then
ln -s lib "$out/${targetConfig}/lib64"
ln -s lib "${!outputLib}/${targetConfig}/lib64"
fi
# Make lib32 symlinks to lib.
if [ -n "$linkLib32toLib" ]; then
ln -s lib "$out/${targetConfig}/lib32"
ln -s lib "${!outputLib}/${targetConfig}/lib32"
fi
}

View File

@ -5,6 +5,7 @@
, langJit ? false
, langGo
, crossStageStatic
, enableMultilib
}:
assert langJava -> lib.versionOlder version "7";
@ -78,3 +79,17 @@ in lib.optionalString (hostPlatform.isSunOS && hostPlatform.is64bit) ''
+ lib.optionalString (targetPlatform != hostPlatform && crossStageStatic) ''
export inhibit_libc=true
''
+ lib.optionalString (!enableMultilib && hostPlatform.is64bit && !hostPlatform.isMips64n32) ''
export linkLib64toLib=1
''
# On mips platforms, gcc follows the IRIX naming convention:
#
# $PREFIX/lib = mips32
# $PREFIX/lib32 = mips64n32
# $PREFIX/lib64 = mips64
#
+ lib.optionalString (!enableMultilib && targetPlatform.isMips64n32) ''
export linkLib32toLib=1
''

View File

@ -1,4 +1,4 @@
{ stdenv }:
{ lib, stdenv, langJit }:
{
# Note [Cross-compiler stripping]
@ -8,7 +8,9 @@
# Example ARM breakage by x86_64 strip: https://bugs.gentoo.org/697428
#
# Let's recap the file layout for directories with object files for a
# cross-compiler (host != target):
# cross-compiler:
#
# $out (host != target)
# `- bin: HOST
# lib/*.{a,o}: HOST
# `- gcc/<TARGET>/<VERSION>/*.{a,o}: TARGET
@ -17,10 +19,16 @@
# `- libexec/: HOST
# `- <TARGET>/: TARGET
#
# (host == target) has identical directory layout.
# $out (host == target) has identical directory layout.
#
# $lib (host != target):
# `- <TARGET>/lib/*.{la,so}: TARGET
#
# $lib (host == target):
# `- lib/*.{la,so}: HOST
# The rest of stripDebugList{Host,Target} will be populated in
# postInstall.
# postInstall to disambiguate lib/ object files.
stripDebugList = [ "bin" "libexec" ];
stripDebugListTarget = [ stdenv.targetPlatform.config ];
@ -32,21 +40,30 @@
shopt -s nullglob
pushd $out
local -ar hostFiles=(
lib{,32,64}/*.{a.o}
local -ar outHostFiles=(
lib{,32,64}/*.{a,o,so*}
lib{,32,64}/gcc/${stdenv.targetPlatform.config}/*/plugin
)
local -ar targetFiles=(
lib{,32,64}/gcc/${stdenv.targetPlatform.config}/*/*.{a.o}
local -ar outTargetFiles=(
lib{,32,64}/gcc/${stdenv.targetPlatform.config}/*/*.{a,o,so*}
)
popd
'' + lib.optionalString (!langJit) ''
${/*keep indentation*/ ""}
pushd $lib
local -ar libHostFiles=(
lib{,32,64}/*.{a,o,so*}
)
local -ar libTargetFiles=(
lib{,32,64}/${stdenv.targetPlatform.config}/*.{a,o,so*}
)
stripDebugList="$stripDebugList ''${hostFiles[*]}"
stripDebugListTarget="$stripDebugListTarget ''${targetFiles[*]}"
popd
'' + ''
eval "$oldOpts"
stripDebugList="$stripDebugList ''${outHostFiles[*]} ''${libHostFiles[*]}"
stripDebugListTarget="$stripDebugListTarget ''${outTargetFiles[*]} ''${libTargetFiles[*]}"
}
updateDebugListPaths
'';

View File

@ -9,13 +9,13 @@
}:
stdenv.mkDerivation rec {
pname = "glslang";
version = "1.3.211.0";
version = "1.3.216.0";
src = fetchFromGitHub {
owner = "KhronosGroup";
repo = "glslang";
rev = "sdk-${version}";
sha256 = "sha256-YLn/Mxuk6mXPGtBBgfwky5Nl1TCAW6i2g+AZLzqVz+A=";
hash = "sha256-sjidkiPtRADhyOEKDb2cHCBXnFjLwk2F5Lppv5/fwNQ=";
};
# These get set at all-packages, keep onto them for child drvs

View File

@ -3,7 +3,6 @@
, fetchurl
, tzdata
, iana-etc
, runCommand
, perl
, which
, pkg-config
@ -21,15 +20,7 @@
}:
let
go_bootstrap = buildPackages.callPackage ./bootstrap116.nix { };
goBootstrap = runCommand "go-bootstrap" { } ''
mkdir $out
cp -rf ${go_bootstrap}/* $out/
chmod -R u+w $out
find $out -name "*.c" -delete
cp -rf $out/bin/* $out/share/go/bin/
'';
goBootstrap = buildPackages.callPackage ./bootstrap116.nix { };
goarch = platform: {
"aarch64" = "arm64";
@ -277,6 +268,10 @@ stdenv.mkDerivation rec {
disallowedReferences = [ goBootstrap ];
passthru = {
inherit goBootstrap;
};
meta = with lib; {
description = "The Go Programming language";
homepage = "https://go.dev/";

View File

@ -2,34 +2,24 @@
, stdenv
, fetchurl
, tzdata
, substituteAll
, iana-etc
, runCommand
, perl
, which
, pkg-config
, procps
, pcre
, cacert
, Security
, Foundation
, xcbuild
, mailcap
, runtimeShell
, buildPackages
, pkgsBuildTarget
, threadsCross
, testers
, skopeo
, buildGo118Module
}:
let
go_bootstrap = buildPackages.callPackage ./bootstrap116.nix { };
goBootstrap = buildPackages.callPackage ./bootstrap116.nix { };
goBootstrap = runCommand "go-bootstrap" { } ''
mkdir $out
cp -rf ${go_bootstrap}/* $out/
chmod -R u+w $out
find $out -name "*.c" -delete
cp -rf $out/bin/* $out/share/go/bin/
'';
skopeoTest = skopeo.override { buildGoModule = buildGo118Module; };
goarch = platform: {
"aarch64" = "arm64";
@ -63,126 +53,41 @@ stdenv.mkDerivation rec {
};
strictDeps = true;
# perl is used for testing go vet
nativeBuildInputs = [ perl which pkg-config procps ];
buildInputs = [ cacert pcre ]
buildInputs = [ ]
++ lib.optionals stdenv.isLinux [ stdenv.cc.libc.out ]
++ lib.optionals (stdenv.hostPlatform.libc == "glibc") [ stdenv.cc.libc.static ];
propagatedBuildInputs = lib.optionals stdenv.isDarwin [ xcbuild ];
depsTargetTargetPropagated = lib.optionals stdenv.isDarwin [ Security Foundation ];
depsTargetTargetPropagated = lib.optionals stdenv.isDarwin [ Foundation Security xcbuild ];
depsBuildTarget = lib.optional isCross targetCC;
depsTargetTarget = lib.optional stdenv.targetPlatform.isWindows threadsCross;
hardeningDisable = [ "all" ];
prePatch = ''
patchShebangs ./ # replace /bin/bash
# This source produces shell script at run time,
# and thus it is not corrected by patchShebangs.
substituteInPlace misc/cgo/testcarchive/carchive_test.go \
--replace '#!/usr/bin/env bash' '#!${runtimeShell}'
# Patch the mimetype database location which is missing on NixOS.
# but also allow static binaries built with NixOS to run outside nix
sed -i 's,\"/etc/mime.types,"${mailcap}/etc/mime.types\"\,\n\t&,' src/mime/type_unix.go
# Disabling the 'os/http/net' tests (they want files not available in
# chroot builds)
rm src/net/{listen,parse}_test.go
rm src/syscall/exec_linux_test.go
# !!! substituteInPlace does not seems to be effective.
# The os test wants to read files in an existing path. Just don't let it be /usr/bin.
sed -i 's,/usr/bin,'"`pwd`", src/os/os_test.go
sed -i 's,/bin/pwd,'"`type -P pwd`", src/os/os_test.go
# Fails on aarch64
sed -i '/TestFallocate/aif true \{ return\; \}' src/cmd/link/internal/ld/fallocate_test.go
# Skip this test since ssl patches mess it up.
sed -i '/TestLoadSystemCertsLoadColonSeparatedDirs/aif true \{ return\; \}' src/crypto/x509/root_unix_test.go
# Disable another PIE test which breaks.
sed -i '/TestTrivialPIE/aif true \{ return\; \}' misc/cgo/testshared/shared_test.go
# Disable the BuildModePie test
sed -i '/TestBuildmodePIE/aif true \{ return\; \}' src/cmd/go/go_test.go
# Disable the unix socket test
sed -i '/TestShutdownUnix/aif true \{ return\; \}' src/net/net_test.go
# Disable the hostname test
sed -i '/TestHostname/aif true \{ return\; \}' src/os/os_test.go
# ParseInLocation fails the test
sed -i '/TestParseInSydney/aif true \{ return\; \}' src/time/format_test.go
# Remove the api check as it never worked
sed -i '/src\/cmd\/api\/run.go/ireturn nil' src/cmd/dist/test.go
# Remove the coverage test as we have removed this utility
sed -i '/TestCoverageWithCgo/aif true \{ return\; \}' src/cmd/go/go_test.go
# Remove the timezone naming test
sed -i '/TestLoadFixed/aif true \{ return\; \}' src/time/time_test.go
# Remove disable setgid test
sed -i '/TestRespectSetgidDir/aif true \{ return\; \}' src/cmd/go/internal/work/build_test.go
# Remove cert tests that conflict with NixOS's cert resolution
sed -i '/TestEnvVars/aif true \{ return\; \}' src/crypto/x509/root_unix_test.go
# TestWritevError hangs sometimes
sed -i '/TestWritevError/aif true \{ return\; \}' src/net/writev_test.go
# TestVariousDeadlines fails sometimes
sed -i '/TestVariousDeadlines/aif true \{ return\; \}' src/net/timeout_test.go
sed -i 's,/etc/protocols,${iana-etc}/etc/protocols,' src/net/lookup_unix.go
sed -i 's,/etc/services,${iana-etc}/etc/services,' src/net/port_unix.go
# Disable cgo lookup tests not works, they depend on resolver
rm src/net/cgo_unix_test.go
# prepend the nix path to the zoneinfo files but also leave the original value for static binaries
# that run outside a nix server
sed -i 's,\"/usr/share/zoneinfo/,"${tzdata}/share/zoneinfo/\"\,\n\t&,' src/time/zoneinfo_unix.go
'' + lib.optionalString stdenv.isAarch32 ''
echo '#!${runtimeShell}' > misc/cgo/testplugin/test.bash
'' + lib.optionalString stdenv.isDarwin ''
substituteInPlace src/race.bash --replace \
"sysctl machdep.cpu.extfeatures | grep -qv EM64T" true
sed -i 's,strings.Contains(.*sysctl.*,true {,' src/cmd/dist/util.go
sed -i 's,"/etc","'"$TMPDIR"'",' src/os/os_test.go
sed -i 's,/_go_os_test,'"$TMPDIR"'/_go_os_test,' src/os/path_test.go
sed -i '/TestChdirAndGetwd/aif true \{ return\; \}' src/os/os_test.go
sed -i '/TestCredentialNoSetGroups/aif true \{ return\; \}' src/os/exec/exec_posix_test.go
sed -i '/TestRead0/aif true \{ return\; \}' src/os/os_test.go
sed -i '/TestSystemRoots/aif true \{ return\; \}' src/crypto/x509/root_darwin_test.go
sed -i '/TestGoInstallRebuildsStalePackagesInOtherGOPATH/aif true \{ return\; \}' src/cmd/go/go_test.go
sed -i '/TestBuildDashIInstallsDependencies/aif true \{ return\; \}' src/cmd/go/go_test.go
sed -i '/TestDisasmExtld/aif true \{ return\; \}' src/cmd/objdump/objdump_test.go
sed -i 's/unrecognized/unknown/' src/cmd/link/internal/ld/lib.go
# TestCurrent fails because Current is not implemented on Darwin
sed -i 's/TestCurrent/testCurrent/g' src/os/user/user_test.go
sed -i 's/TestLookup/testLookup/g' src/os/user/user_test.go
touch $TMPDIR/group $TMPDIR/hosts $TMPDIR/passwd
postPatch = ''
patchShebangs .
'';
patches = [
(substituteAll {
src = ./iana-etc-1.17.patch;
iana = iana-etc;
})
# Patch the mimetype database location which is missing on NixOS.
# but also allow static binaries built with NixOS to run outside nix
(substituteAll {
src = ./mailcap-1.17.patch;
inherit mailcap;
})
# prepend the nix path to the zoneinfo files but also leave the original value for static binaries
# that run outside a nix server
(substituteAll {
src = ./tzdata-1.17.patch;
inherit tzdata;
})
./remove-tools-1.11.patch
./ssl-cert-file-1.16.patch
./remove-test-pie-1.15.patch
./creds-test.patch
./skip-chown-tests-1.16.patch
./skip-external-network-tests-1.16.patch
./skip-nohup-tests.patch
./skip-cgo-tests-1.15.patch
./go_no_vendor_checks-1.16.patch
];
postPatch = ''
find . -name '*.orig' -exec rm {} ';'
'';
GOOS = stdenv.targetPlatform.parsed.kernel.name;
GOARCH = goarch stdenv.targetPlatform;
# GOHOSTOS/GOHOSTARCH must match the building system, not the host system.
@ -207,16 +112,11 @@ stdenv.mkDerivation rec {
GOARM = toString (lib.intersectLists [ (stdenv.hostPlatform.parsed.cpu.version or "") ] [ "5" "6" "7" ]);
GO386 = "softfloat"; # from Arch: don't assume sse2 on i686
CGO_ENABLED = 1;
# Hopefully avoids test timeouts on Hydra
GO_TEST_TIMEOUT_SCALE = 3;
# Indicate that we are running on build infrastructure
# Some tests assume things like home directories and users exists
GO_BUILDER_NAME = "nix";
GOROOT_BOOTSTRAP = "${goBootstrap}/share/go";
postConfigure = ''
buildPhase = ''
runHook preBuild
export GOCACHE=$TMPDIR/go-cache
# this is compiled into the binary
export GOROOT_FINAL=$out/share/go
@ -229,18 +129,11 @@ stdenv.mkDerivation rec {
export CC=${buildPackages.stdenv.cc}/bin/cc
''}
ulimit -a
'';
postBuild = ''
(cd src && ./make.bash)
'';
doCheck = stdenv.hostPlatform == stdenv.targetPlatform && !stdenv.isDarwin;
checkPhase = ''
runHook preCheck
(cd src && HOME=$TMPDIR GOCACHE=$TMPDIR/go-cache ./run.bash --no-rebuild)
runHook postCheck
pushd src
./make.bash
popd
runHook postBuild
'';
preInstall = ''
@ -271,6 +164,13 @@ stdenv.mkDerivation rec {
disallowedReferences = [ goBootstrap ];
passthru = {
inherit goBootstrap skopeoTest;
tests = {
skopeo = testers.testVersion { package = skopeoTest; };
};
};
meta = with lib; {
description = "The Go Programming language";
homepage = "https://go.dev/";

View File

@ -2,34 +2,24 @@
, stdenv
, fetchurl
, tzdata
, substituteAll
, iana-etc
, runCommand
, perl
, which
, pkg-config
, procps
, pcre
, cacert
, Security
, Foundation
, xcbuild
, mailcap
, runtimeShell
, buildPackages
, pkgsBuildTarget
, threadsCross
, testers
, skopeo
, buildGo119Module
}:
let
go_bootstrap = buildPackages.callPackage ./bootstrap116.nix { };
goBootstrap = buildPackages.callPackage ./bootstrap116.nix { };
goBootstrap = runCommand "go-bootstrap" { } ''
mkdir $out
cp -rf ${go_bootstrap}/* $out/
chmod -R u+w $out
find $out -name "*.c" -delete
cp -rf $out/bin/* $out/share/go/bin/
'';
skopeoTest = skopeo.override { buildGoModule = buildGo119Module; };
goarch = platform: {
"aarch64" = "arm64";
@ -63,125 +53,41 @@ stdenv.mkDerivation rec {
};
strictDeps = true;
# perl is used for testing go vet
nativeBuildInputs = [ perl which pkg-config procps ];
buildInputs = [ cacert pcre ]
buildInputs = [ ]
++ lib.optionals stdenv.isLinux [ stdenv.cc.libc.out ]
++ lib.optionals (stdenv.hostPlatform.libc == "glibc") [ stdenv.cc.libc.static ];
propagatedBuildInputs = lib.optionals stdenv.isDarwin [ xcbuild ];
depsTargetTargetPropagated = lib.optionals stdenv.isDarwin [ Security Foundation ];
depsTargetTargetPropagated = lib.optionals stdenv.isDarwin [ Foundation Security xcbuild ];
depsBuildTarget = lib.optional isCross targetCC;
depsTargetTarget = lib.optional stdenv.targetPlatform.isWindows threadsCross;
hardeningDisable = [ "all" ];
prePatch = ''
patchShebangs ./ # replace /bin/bash
# This source produces shell script at run time,
# and thus it is not corrected by patchShebangs.
substituteInPlace misc/cgo/testcarchive/carchive_test.go \
--replace '#!/usr/bin/env bash' '#!${runtimeShell}'
# Patch the mimetype database location which is missing on NixOS.
# but also allow static binaries built with NixOS to run outside nix
sed -i 's,\"/etc/mime.types,"${mailcap}/etc/mime.types\"\,\n\t&,' src/mime/type_unix.go
# Disabling the 'os/http/net' tests (they want files not available in
# chroot builds)
rm src/net/{listen,parse}_test.go
rm src/syscall/exec_linux_test.go
# !!! substituteInPlace does not seems to be effective.
# The os test wants to read files in an existing path. Just don't let it be /usr/bin.
sed -i 's,/usr/bin,'"`pwd`", src/os/os_test.go
sed -i 's,/bin/pwd,'"`type -P pwd`", src/os/os_test.go
# Fails on aarch64
sed -i '/TestFallocate/aif true \{ return\; \}' src/cmd/link/internal/ld/fallocate_test.go
# Skip this test since ssl patches mess it up.
sed -i '/TestLoadSystemCertsLoadColonSeparatedDirs/aif true \{ return\; \}' src/crypto/x509/root_unix_test.go
# Disable another PIE test which breaks.
sed -i '/TestTrivialPIE/aif true \{ return\; \}' misc/cgo/testshared/shared_test.go
# Disable the BuildModePie test
sed -i '/TestBuildmodePIE/aif true \{ return\; \}' src/cmd/go/go_test.go
# Disable the unix socket test
sed -i '/TestShutdownUnix/aif true \{ return\; \}' src/net/net_test.go
# Disable the hostname test
sed -i '/TestHostname/aif true \{ return\; \}' src/os/os_test.go
# ParseInLocation fails the test
sed -i '/TestParseInSydney/aif true \{ return\; \}' src/time/format_test.go
# Remove the api check as it never worked
sed -i '/src\/cmd\/api\/run.go/ireturn nil' src/cmd/dist/test.go
# Remove the coverage test as we have removed this utility
sed -i '/TestCoverageWithCgo/aif true \{ return\; \}' src/cmd/go/go_test.go
# Remove the timezone naming test
sed -i '/TestLoadFixed/aif true \{ return\; \}' src/time/time_test.go
# Remove disable setgid test
sed -i '/TestRespectSetgidDir/aif true \{ return\; \}' src/cmd/go/internal/work/build_test.go
# Remove cert tests that conflict with NixOS's cert resolution
sed -i '/TestEnvVars/aif true \{ return\; \}' src/crypto/x509/root_unix_test.go
# TestWritevError hangs sometimes
sed -i '/TestWritevError/aif true \{ return\; \}' src/net/writev_test.go
# TestVariousDeadlines fails sometimes
sed -i '/TestVariousDeadlines/aif true \{ return\; \}' src/net/timeout_test.go
sed -i 's,/etc/protocols,${iana-etc}/etc/protocols,' src/net/lookup_unix.go
sed -i 's,/etc/services,${iana-etc}/etc/services,' src/net/port_unix.go
# Disable cgo lookup tests not works, they depend on resolver
rm src/net/cgo_unix_test.go
# prepend the nix path to the zoneinfo files but also leave the original value for static binaries
# that run outside a nix server
sed -i 's,\"/usr/share/zoneinfo/,"${tzdata}/share/zoneinfo/\"\,\n\t&,' src/time/zoneinfo_unix.go
'' + lib.optionalString stdenv.isAarch32 ''
echo '#!${runtimeShell}' > misc/cgo/testplugin/test.bash
'' + lib.optionalString stdenv.isDarwin ''
substituteInPlace src/race.bash --replace \
"sysctl machdep.cpu.extfeatures | grep -qv EM64T" true
sed -i 's,strings.Contains(.*sysctl.*,true {,' src/cmd/dist/util.go
sed -i 's,"/etc","'"$TMPDIR"'",' src/os/os_test.go
sed -i 's,/_go_os_test,'"$TMPDIR"'/_go_os_test,' src/os/path_test.go
sed -i '/TestChdirAndGetwd/aif true \{ return\; \}' src/os/os_test.go
sed -i '/TestCredentialNoSetGroups/aif true \{ return\; \}' src/os/exec/exec_posix_test.go
sed -i '/TestRead0/aif true \{ return\; \}' src/os/os_test.go
sed -i '/TestSystemRoots/aif true \{ return\; \}' src/crypto/x509/root_darwin_test.go
sed -i '/TestGoInstallRebuildsStalePackagesInOtherGOPATH/aif true \{ return\; \}' src/cmd/go/go_test.go
sed -i '/TestBuildDashIInstallsDependencies/aif true \{ return\; \}' src/cmd/go/go_test.go
sed -i '/TestDisasmExtld/aif true \{ return\; \}' src/cmd/objdump/objdump_test.go
sed -i 's/unrecognized/unknown/' src/cmd/link/internal/ld/lib.go
# TestCurrent fails because Current is not implemented on Darwin
sed -i 's/TestCurrent/testCurrent/g' src/os/user/user_test.go
sed -i 's/TestLookup/testLookup/g' src/os/user/user_test.go
touch $TMPDIR/group $TMPDIR/hosts $TMPDIR/passwd
postPatch = ''
patchShebangs .
'';
patches = [
(substituteAll {
src = ./iana-etc-1.17.patch;
iana = iana-etc;
})
# Patch the mimetype database location which is missing on NixOS.
# but also allow static binaries built with NixOS to run outside nix
(substituteAll {
src = ./mailcap-1.17.patch;
inherit mailcap;
})
# prepend the nix path to the zoneinfo files but also leave the original value for static binaries
# that run outside a nix server
(substituteAll {
src = ./tzdata-1.19.patch;
inherit tzdata;
})
./remove-tools-1.11.patch
./ssl-cert-file-1.16.patch
./remove-test-pie-1.15.patch
./skip-chown-tests-1.16.patch
./skip-external-network-tests-1.16.patch
./skip-nohup-tests.patch
./skip-cgo-tests-1.19.patch
./go_no_vendor_checks-1.16.patch
];
postPatch = ''
find . -name '*.orig' -exec rm {} ';'
'';
GOOS = stdenv.targetPlatform.parsed.kernel.name;
GOARCH = goarch stdenv.targetPlatform;
# GOHOSTOS/GOHOSTARCH must match the building system, not the host system.
@ -206,16 +112,11 @@ stdenv.mkDerivation rec {
GOARM = toString (lib.intersectLists [ (stdenv.hostPlatform.parsed.cpu.version or "") ] [ "5" "6" "7" ]);
GO386 = "softfloat"; # from Arch: don't assume sse2 on i686
CGO_ENABLED = 1;
# Hopefully avoids test timeouts on Hydra
GO_TEST_TIMEOUT_SCALE = 3;
# Indicate that we are running on build infrastructure
# Some tests assume things like home directories and users exists
GO_BUILDER_NAME = "nix";
GOROOT_BOOTSTRAP = "${goBootstrap}/share/go";
postConfigure = ''
buildPhase = ''
runHook preBuild
export GOCACHE=$TMPDIR/go-cache
# this is compiled into the binary
export GOROOT_FINAL=$out/share/go
@ -228,18 +129,11 @@ stdenv.mkDerivation rec {
export CC=${buildPackages.stdenv.cc}/bin/cc
''}
ulimit -a
'';
postBuild = ''
(cd src && ./make.bash)
'';
doCheck = stdenv.hostPlatform == stdenv.targetPlatform && !stdenv.isDarwin;
checkPhase = ''
runHook preCheck
(cd src && HOME=$TMPDIR GOCACHE=$TMPDIR/go-cache ./run.bash --no-rebuild)
runHook postCheck
pushd src
./make.bash
popd
runHook postBuild
'';
preInstall = ''
@ -270,6 +164,13 @@ stdenv.mkDerivation rec {
disallowedReferences = [ goBootstrap ];
passthru = {
inherit goBootstrap skopeoTest;
tests = {
skopeo = testers.testVersion { package = skopeoTest; };
};
};
meta = with lib; {
description = "The Go Programming language";
homepage = "https://go.dev/";

View File

@ -1,4 +1,4 @@
{ lib, stdenv, fetchurl, version, hashes }:
{ lib, stdenv, fetchurl, version, hashes, autoPatchelfHook }:
let
toGoKernel = platform:
if platform.isDarwin then "darwin"
@ -25,19 +25,16 @@ stdenv.mkDerivation rec {
sha256 = hashes.${platform} or (throw "Missing Go bootstrap hash for platform ${platform}");
};
nativeBuildInputs = lib.optionals stdenv.isLinux [ autoPatchelfHook ];
# We must preserve the signature on Darwin
dontStrip = stdenv.hostPlatform.isDarwin;
installPhase = ''
runHook preInstall
mkdir -p $out/share/go $out/bin
mv bin/* $out/bin
cp -r . $out/share/go
${lib.optionalString stdenv.isLinux (''
patchelf \
--set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \
$out/bin/go
'')}
ln -s $out/share/go/bin/go $out/bin/go
runHook postInstall
'';
}

View File

@ -0,0 +1,26 @@
diff --git a/src/net/lookup_unix.go b/src/net/lookup_unix.go
index 8030e3d99e..5a7472d933 100644
--- a/src/net/lookup_unix.go
+++ b/src/net/lookup_unix.go
@@ -21,7 +21,7 @@ var onceReadProtocols sync.Once
// readProtocols loads contents of /etc/protocols into protocols map
// for quick access.
func readProtocols() {
- file, err := open("/etc/protocols")
+ file, err := open("@iana@/etc/protocols")
if err != nil {
return
}
diff --git a/src/net/port_unix.go b/src/net/port_unix.go
index a9a96a2323..0df6efe9e5 100644
--- a/src/net/port_unix.go
+++ b/src/net/port_unix.go
@@ -17,7 +17,7 @@ import (
var onceReadServices sync.Once
func readServices() {
- file, err := open("/etc/services")
+ file, err := open("@iana@/etc/services")
if err != nil {
return
}

View File

@ -0,0 +1,12 @@
diff --git a/src/mime/type_unix.go b/src/mime/type_unix.go
index f954bc8a1f..06d897bfbf 100644
--- a/src/mime/type_unix.go
+++ b/src/mime/type_unix.go
@@ -26,6 +26,7 @@ var mimeGlobs = []string{
// Common locations for mime.types files on unix.
var typeFiles = []string{
+ "@mailcap@/etc/mime.types",
"/etc/mime.types",
"/etc/apache2/mime.types",
"/etc/apache/mime.types",

View File

@ -1,13 +0,0 @@
diff --git a/src/cmd/dist/test.go b/src/cmd/dist/test.go
index e1cd4965c3..0980d044df 100644
--- a/src/cmd/dist/test.go
+++ b/src/cmd/dist/test.go
@@ -1136,7 +1136,7 @@ func (t *tester) cgoTest(dt *distTest) error {
t.addCmd(dt, "misc/cgo/test", t.goTest(), "-buildmode=pie", "-ldflags=-linkmode=internal")
}
t.addCmd(dt, "misc/cgo/testtls", t.goTest(), "-buildmode=pie", ".")
- t.addCmd(dt, "misc/cgo/nocgo", t.goTest(), "-buildmode=pie", ".")
+ //t.addCmd(dt, "misc/cgo/nocgo", t.goTest(), "-buildmode=pie", ".")
}
}
}

View File

@ -0,0 +1,12 @@
diff --git a/src/time/zoneinfo_unix.go b/src/time/zoneinfo_unix.go
index 4ea029dbde..af94a4d90b 100644
--- a/src/time/zoneinfo_unix.go
+++ b/src/time/zoneinfo_unix.go
@@ -20,6 +20,7 @@ import (
// Many systems use /usr/share/zoneinfo, Solaris 2 has
// /usr/share/lib/zoneinfo, IRIX 6 has /usr/lib/locale/TZ.
var zoneSources = []string{
+ "@tzdata@/share/zoneinfo/",
"/usr/share/zoneinfo/",
"/usr/share/lib/zoneinfo/",
"/usr/lib/locale/TZ/",

View File

@ -0,0 +1,12 @@
diff --git a/src/time/zoneinfo_unix.go b/src/time/zoneinfo_unix.go
index 67b8beb47b..5cd1fb1759 100644
--- a/src/time/zoneinfo_unix.go
+++ b/src/time/zoneinfo_unix.go
@@ -18,6 +18,7 @@ import (
// Many systems use /usr/share/zoneinfo, Solaris 2 has
// /usr/share/lib/zoneinfo, IRIX 6 has /usr/lib/locale/TZ.
var platformZoneSources = []string{
+ "@tzdata@/share/zoneinfo/",
"/usr/share/zoneinfo/",
"/usr/share/lib/zoneinfo/",
"/usr/lib/locale/TZ/",

View File

@ -20,8 +20,8 @@
} @ args:
import ./default.nix {
rustcVersion = "1.62.1";
rustcSha256 = "sha256-cqy+b/zZT1mDgqdDCw2F7o9nnm0LJ/P1Zu0cFsl4Ez8=";
rustcVersion = "1.63.0";
rustcSha256 = "1l4rrbzhxv88pnfq94nbyb9m6lfnjwixma3mwjkmvvs2aqlq158z";
llvmSharedForBuild = pkgsBuildBuild.llvmPackages_14.libllvm.override { enableSharedLibraries = true; };
llvmSharedForHost = pkgsBuildHost.llvmPackages_14.libllvm.override { enableSharedLibraries = true; };
@ -37,25 +37,25 @@ import ./default.nix {
# Note: the version MUST be one version prior to the version we're
# building
bootstrapVersion = "1.61.0";
bootstrapVersion = "1.62.1";
# fetch hashes by running `print-hashes.sh ${bootstrapVersion}`
bootstrapHashes = {
i686-unknown-linux-gnu = "b15eb0ad44b7253e0b5b1a8cd285feb10e9fb0402840dba9a13112c3349a4b39";
x86_64-unknown-linux-gnu = "066b324239d30787ce64142d7e04912f2e1850c07db3b2354d8654e02ff8b23a";
x86_64-unknown-linux-musl = "0904f6b769ae28c259e0e25a41e99290a4ae2a36bca63ae153790b2ebbc427bf";
arm-unknown-linux-gnueabihf = "cc32705cd1b583aaac74e6663f71392131dc0355a0f484cb56f0378b71ea7ebc";
armv7-unknown-linux-gnueabihf = "2782ec75ea4abb402513e2e57becc6c14e67b492d57228cddedef6db0853b165";
aarch64-unknown-linux-gnu = "261cd47bc3c98c9f97b601d1ad2a7d9b33c9ea63c9a351119c2f6d4e82f5d436";
aarch64-unknown-linux-musl = "feb79985cb161a10b252236852df8db3bf3593c78905b84c7e94cd4454327e47";
x86_64-apple-darwin = "d851f1a473926a5d8f111ed08002047a5dc4ad944a5b7f8d5d2f1f266b51e66a";
aarch64-apple-darwin = "2dbafd13d007543aada47179fa273f9a3865f27e0a07bd69be61801232a0819e";
powerpc64le-unknown-linux-gnu = "6d5cd579b68a2adc20384406c69a92beaaf4941056e126ff0ed1ec2f3a4e721f";
riscv64gc-unknown-linux-gnu = "3d0f3b1a8522e09fffdf920a061794ac3107410eb1fe8f5d62a7aae3c6dcb81e";
mips64el-unknown-linux-gnuabi64 = "6ed5b6492e68f45488108abd06dbcd4b89c46cdbd4715331bb11e88f18500815";
i686-unknown-linux-gnu = "1669163ffe01e252ffb62da7d84949378fc274931a65ac827d54059a5ffc542c";
x86_64-unknown-linux-gnu = "dd7d82b8fa8eae59729e1c31fe59a9de6ee61d08ab40ce016185653beebe04d2";
x86_64-unknown-linux-musl = "32bee487074b105e2582cddce35934a6019eec74bae3f9300fdc3edfcf5b66d4";
arm-unknown-linux-gnueabihf = "5c735e8174d394936d7b499c2d147ddadf3c4d77e652d1e0b0a72d9d09f81ea4";
armv7-unknown-linux-gnueabihf = "26fa731385f1a71211ba8e3c94f3bb3b1a82bde89f8d4dcf75b4b463b57b0f88";
aarch64-unknown-linux-gnu = "1311fa8204f895d054c23a3481de3b158a5cd3b3a6338761fee9cdf4dbf075a5";
aarch64-unknown-linux-musl = "73bbab4d8a9e3c416035d40406e656ab37e785df35fa069a33af52e931a24b12";
x86_64-apple-darwin = "0a04dcf2b521239826f3eaa66d77169d91e68087ccc3107b54e8aba7c02c9adf";
aarch64-apple-darwin = "6d1671ea31b05cab5e2587cc2b295b3e7232b0135f0977355618e2a01933ff0a";
powerpc64le-unknown-linux-gnu = "1d3248e1a673cda87cf443cd4334ff5fb53e6f87c72d3587b07e5c0cb507f3ae";
riscv64gc-unknown-linux-gnu = "fd378d0bf866689e8111aba0e2b020da87f32f70fb11d98a575d42dc05978c2a";
mips64el-unknown-linux-gnuabi64 = "b7c47dd94728161aa96762fb7bc51b6ab0feba7c5215d06eaea5b78649815a96";
};
selectRustPackage = pkgs: pkgs.rust_1_62;
selectRustPackage = pkgs: pkgs.rust_1_63;
rustcPatches = [
];

View File

@ -1,4 +1,5 @@
{ lib, stdenv, makeWrapper, bash, curl, darwin, zlib
, autoPatchelfHook, gcc
, version
, src
, platform
@ -31,7 +32,9 @@ rec {
license = [ licenses.mit licenses.asl20 ];
};
nativeBuildInputs = lib.optional (!stdenv.isDarwin) autoPatchelfHook;
buildInputs = [ bash ]
++ lib.optionals (!stdenv.isDarwin) [ gcc.cc.lib zlib ]
++ lib.optional stdenv.isDarwin Security;
postPatch = ''
@ -42,24 +45,6 @@ rec {
./install.sh --prefix=$out \
--components=${installComponents}
${optionalString (stdenv.isLinux && bootstrapping) (''
patchelf \
--set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \
"$out/bin/rustc"
'' + optionalString (lib.versionAtLeast version "1.46")
# rustc bootstrap needs libz starting from 1.46
''
ln -s ${zlib}/lib/libz.so.1 $out/lib/libz.so.1
ln -s ${zlib}/lib/libz.so $out/lib/libz.so
'' + ''
patchelf \
--set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \
"$out/bin/rustdoc"
patchelf \
--set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \
"$out/bin/cargo"
'')}
# Do NOT, I repeat, DO NOT use `wrapProgram` on $out/bin/rustc
# (or similar) here. It causes strange effects where rustc loads
# the wrong libraries in a bootstrap-build causing failures that
@ -83,8 +68,11 @@ rec {
license = [ licenses.mit licenses.asl20 ];
};
nativeBuildInputs = [ makeWrapper ];
buildInputs = [ bash ] ++ lib.optional stdenv.isDarwin Security;
nativeBuildInputs = [ makeWrapper ]
++ lib.optional (!stdenv.isDarwin) autoPatchelfHook;
buildInputs = [ bash ]
++ lib.optional (!stdenv.isDarwin) gcc.cc.lib
++ lib.optional stdenv.isDarwin Security;
postPatch = ''
patchShebangs .
@ -95,12 +83,6 @@ rec {
./install.sh --prefix=$out \
--components=cargo
${optionalString (stdenv.isLinux && bootstrapping) ''
patchelf \
--set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \
"$out/bin/cargo"
''}
wrapProgram "$out/bin/cargo" \
--suffix PATH : "${rustc}/bin"
'';

View File

@ -72,5 +72,7 @@ rustPlatform.buildRustPackage {
maintainers = with maintainers; [ retrry ];
license = [ licenses.mit licenses.asl20 ];
platforms = platforms.unix;
# weird segfault in a build script
broken = stdenv.targetPlatform.isMusl && !stdenv.targetPlatform.isStatic;
};
}

View File

@ -87,6 +87,10 @@ in stdenv.mkDerivation rec {
"${setBuild}.cxx=${cxxForBuild}"
"${setHost}.cxx=${cxxForHost}"
"${setTarget}.cxx=${cxxForTarget}"
"${setBuild}.crt-static=${lib.boolToString stdenv.buildPlatform.isStatic}"
"${setHost}.crt-static=${lib.boolToString stdenv.hostPlatform.isStatic}"
"${setTarget}.crt-static=${lib.boolToString stdenv.targetPlatform.isStatic}"
] ++ optionals (!withBundledLLVM) [
"--enable-llvm-link-shared"
"${setBuild}.llvm-config=${llvmSharedForBuild.dev}/bin/llvm-config"
@ -188,8 +192,5 @@ in stdenv.mkDerivation rec {
maintainers = with maintainers; [ madjar cstrahan globin havvy ];
license = [ licenses.mit licenses.asl20 ];
platforms = platforms.linux ++ platforms.darwin;
# rustc can't generate binaries for dynamically linked Musl.
# https://github.com/NixOS/nixpkgs/issues/179242
broken = stdenv.targetPlatform.isMusl && !stdenv.targetPlatform.isStatic;
};
}

Some files were not shown because too many files have changed in this diff Show More