Merge branch 'staging' into staging-next

This commit is contained in:
Vladimír Čunát 2023-10-26 10:36:50 +02:00
commit d811555465
No known key found for this signature in database
GPG Key ID: E747DF1F9575A3AA
317 changed files with 3942 additions and 2691 deletions

View File

@ -1,16 +1,28 @@
# Meson {#meson}
Overrides the configure phase to run meson to generate Ninja files. To run these files, you should accompany Meson with ninja. By default, `enableParallelBuilding` is enabled as Meson supports parallel building almost everywhere.
Overrides the configure, check, and install phases to run `meson setup`, `meson test`, and `meson install`.
Meson is a meta-build system so you will need a secondary build system to run the generated build files in build phase. In Nixpkgs context, you will want to accompany Meson with ninja, which provides a [setup hook](#ninja) registering a ninja-based build phase.
By default, `enableParallelBuilding` is enabled as Meson supports parallel building almost everywhere.
## Variables controlling Meson {#variables-controlling-meson}
### `mesonFlags` {#mesonflags}
Controls the flags passed to meson.
Controls the flags passed to `meson setup`.
### `mesonCheckFlags` {#mesoncheckflags}
Controls the flags passed to `meson test`.
### `mesonInstallFlags` {#mesoninstallflags}
Controls the flags passed to `meson install`.
### `mesonBuildType` {#mesonbuildtype}
Which [`--buildtype`](https://mesonbuild.com/Builtin-options.html#core-options) to pass to Meson. We default to `plain`.
Which [`--buildtype`](https://mesonbuild.com/Builtin-options.html#core-options) to pass to `meson setup`. We default to `plain`.
### `mesonAutoFeatures` {#mesonautofeatures}
@ -23,3 +35,20 @@ What value to set [`-Dwrap_mode=`](https://mesonbuild.com/Builtin-options.html#c
### `dontUseMesonConfigure` {#dontusemesonconfigure}
Disables using Mesons `configurePhase`.
### `dontUseMesonCheck` {#dontusemesoncheck}
Disables using Mesons `checkPhase`.
### `dontUseMesonInstall` {#dontusemesoninstall}
Disables using Mesons `installPhase`.
### `mesonInstallFlags` {#mesoninstallflags}
Controls the flags passed to meson install.
### `mesonInstallTags` (#mesoninstalltags)
Tags specified here will be passed to Meson as via `--tags` during
installation and controls which components will be installed.

View File

@ -1,3 +1,5 @@
# ninja {#ninja}
Overrides the build, install, and check phase to run ninja instead of make. You can disable this behavior with the `dontUseNinjaBuild`, `dontUseNinjaInstall`, and `dontUseNinjaCheck`, respectively. Parallel building is enabled by default in Ninja.
Note that if the [Meson setup hook](#meson) is also active, Ninja's install and check phases will be disabled in favor of Meson's.

View File

@ -19373,6 +19373,13 @@
fingerprint = "FD0A C425 9EF5 4084 F99F 9B47 2ACC 9749 7C68 FAD4";
}];
};
YellowOnion = {
name = "Daniel Hill";
email = "daniel@gluo.nz";
github = "YellowOnion";
githubId = 364160;
matrix = "@woobilicious:matrix.org";
};
yesbox = {
email = "jesper.geertsen.jonsson@gmail.com";
github = "yesbox";

View File

@ -1,9 +1,9 @@
name,src,ref,server,version,luaversion,maintainers
alt-getopt,,,,,,arobyn
bit32,,,,5.3.0-1,5.1,lblasc
argparse,https://github.com/luarocks/argparse.git,,,,,
basexx,https://github.com/teto/basexx.git,,,,,
binaryheap,https://github.com/Tieske/binaryheap.lua,,,,,vcunat
argparse,,,,,,
basexx,,,,,,
binaryheap,,,,,,vcunat
busted,,,,,,
cassowary,,,,,,marsam alerque
cldr,,,,,,alerque
@ -12,8 +12,7 @@ cosmo,,,,,,marsam
coxpcall,,,,1.17.0-1,,
cqueues,,,,,,vcunat
cyan,,,,,,
cyrussasl,https://github.com/JorjBauer/lua-cyrussasl.git,,,,,
digestif,https://github.com/astoff/digestif.git,,,0.2-1,5.3,
digestif,https://github.com/astoff/digestif.git,,,,5.3,
dkjson,,,,,,
fennel,,,,,,misterio77
fifo,,,,,,
@ -24,7 +23,7 @@ http,,,,0.3-0,,vcunat
inspect,,,,,,
jsregexp,,,,,,
ldbus,,,http://luarocks.org/dev,,,
ldoc,https://github.com/stevedonovan/LDoc.git,,,,,
ldoc,,,,,,
lgi,,,,,,
linenoise,https://github.com/hoelzro/lua-linenoise.git,,,,,
ljsyscall,,,,,5.1,lblasc
@ -40,7 +39,7 @@ lrexlib-posix,,,,,,
lua-cjson,,,,,,
lua-cmsgpack,,,,,,
lua-curl,,,,,,
lua-iconv,,,,,,
lua-ffi-zlib,,,,,,
lua-lsp,,,,,,
lua-messagepack,,,,,,
lua-protobuf,,,,,,lockejan
@ -82,30 +81,30 @@ luaunit,,,,,,lockejan
luautf8,,,,,,pstn
luazip,,,,,,
lua-yajl,,,,,,pstn
lua-iconv,,,,7.0.0,,
luuid,,,,,,
luv,,,,1.44.2-1,,
lush.nvim,https://github.com/rktjmp/lush.nvim,,,,,teto
lyaml,,,,,,lblasc
magick,,,,,,donovanglover
magick,,,,,5.1,donovanglover
markdown,,,,,,
mediator_lua,,,,,,
middleclass,,,,,,
mpack,,,,,,
moonscript,https://github.com/leafo/moonscript.git,dev-1,,,,arobyn
nui-nvim,,,,,,mrcjkb
nui.nvim,,,,,,mrcjkb
nvim-client,https://github.com/neovim/lua-client.git,,,,,
nvim-cmp,https://github.com/hrsh7th/nvim-cmp,,,,,
penlight,https://github.com/lunarmodules/Penlight.git,,,,,alerque
plenary.nvim,https://github.com/nvim-lua/plenary.nvim.git,,,,5.1,
rapidjson,https://github.com/xpol/lua-rapidjson.git,,,,,
rest.nvim,,,,,5.1,teto
readline,,,,,,
rustaceanvim,,,,,,mrcjkb
say,https://github.com/Olivine-Labs/say.git,,,,,
serpent,,,,,,lockejan
sqlite,,,,,,
std._debug,https://github.com/lua-stdlib/_debug.git,,,,,
std.normalize,https://github.com/lua-stdlib/normalize.git,,,,,
std.normalize,,,,,,
stdlib,,,,41.2.2,,vyp
teal-language-server,,,http://luarocks.org/dev,,,
telescope.nvim,,,,,5.1,

1 name src ref server version luaversion maintainers
2 alt-getopt arobyn
3 bit32 5.3.0-1 5.1 lblasc
4 argparse https://github.com/luarocks/argparse.git
5 basexx https://github.com/teto/basexx.git
6 binaryheap https://github.com/Tieske/binaryheap.lua vcunat
7 busted
8 cassowary marsam alerque
9 cldr alerque
12 coxpcall 1.17.0-1
13 cqueues vcunat
14 cyan
15 cyrussasl digestif https://github.com/JorjBauer/lua-cyrussasl.git https://github.com/astoff/digestif.git 5.3
digestif https://github.com/astoff/digestif.git 0.2-1 5.3
16 dkjson
17 fennel misterio77
18 fifo
23 inspect
24 jsregexp
25 ldbus http://luarocks.org/dev
26 ldoc https://github.com/stevedonovan/LDoc.git
27 lgi
28 linenoise https://github.com/hoelzro/lua-linenoise.git
29 ljsyscall 5.1 lblasc
39 lua-cjson
40 lua-cmsgpack
41 lua-curl
42 lua-iconv lua-ffi-zlib
43 lua-lsp
44 lua-messagepack
45 lua-protobuf lockejan
81 luautf8 pstn
82 luazip
83 lua-yajl pstn
84 lua-iconv 7.0.0
85 luuid
86 luv 1.44.2-1
87 lush.nvim https://github.com/rktjmp/lush.nvim teto
88 lyaml lblasc
89 magick 5.1 donovanglover
90 markdown
91 mediator_lua
92 middleclass
93 mpack
94 moonscript https://github.com/leafo/moonscript.git dev-1 arobyn
95 nui-nvim nui.nvim mrcjkb
96 nvim-client https://github.com/neovim/lua-client.git
97 nvim-cmp https://github.com/hrsh7th/nvim-cmp
98 penlight https://github.com/lunarmodules/Penlight.git alerque
99 plenary.nvim https://github.com/nvim-lua/plenary.nvim.git 5.1
100 rapidjson https://github.com/xpol/lua-rapidjson.git
101 rest.nvim 5.1 teto
readline
102 rustaceanvim mrcjkb
103 say https://github.com/Olivine-Labs/say.git
104 serpent lockejan
105 sqlite
106 std._debug https://github.com/lua-stdlib/_debug.git
107 std.normalize https://github.com/lua-stdlib/normalize.git
108 stdlib 41.2.2 vyp
109 teal-language-server http://luarocks.org/dev
110 telescope.nvim 5.1

View File

@ -103,7 +103,7 @@ class LuaEditor(pluginupdate.Editor):
header2 = textwrap.dedent(
# header2 = inspect.cleandoc(
"""
{ self, stdenv, lib, fetchurl, fetchgit, callPackage, ... } @ args:
{ stdenv, lib, fetchurl, fetchgit, callPackage, ... }:
final: prev:
{
"""

View File

@ -244,6 +244,18 @@
- `fileSystems.<name>.autoResize` now uses `systemd-growfs` to resize the file system online in stage 2. This means that `f2fs` and `ext2` can no longer be auto resized, while `xfs` and `btrfs` now can be.
- `fuse3` has been updated from 3.11.0 to 3.16.2; see [ChangeLog.rst](https://github.com/libfuse/libfuse/blob/fuse-3.16.2/ChangeLog.rst#libfuse-3162-2023-10-10) for an overview of the changes.
Unsupported mount options are no longer silently accepted [(since 3.15.0)](https://github.com/libfuse/libfuse/blob/fuse-3.16.2/ChangeLog.rst#libfuse-3150-2023-06-09). The [affected mount options](https://github.com/libfuse/libfuse/commit/dba6b3983af34f30de01cf532dff0b66f0ed6045) are: `atime`, `diratime`, `lazytime`, `nolazytime`, `relatime`, `norelatime`, `strictatime`.
For example,
```bash
$ sshfs 127.0.0.1:/home/test/testdir /home/test/sshfs_mnt -o atime`
```
would previously terminate successfully with the mount point established, now it outputs the error message ``fuse: unknown option(s): `-o atime'`` and terminates with exit status 1.
- `nixos-rebuild {switch,boot,test,dry-activate}` now runs the system activation inside `systemd-run`, creating an ephemeral systemd service and protecting the system switch against issues like network disconnections during remote (e.g. SSH) sessions. This has the side effect of running the switch in an isolated environment, that could possible break post-switch scripts that depends on things like environment variables being set. If you want to opt-out from this behavior for now, you may set the `NIXOS_SWITCH_USE_DIRTY_ENV` environment variable before running `nixos-rebuild`. However, keep in mind that this option will be removed in the future.
- The `services.vaultwarden.config` option default value was changed to make Vaultwarden only listen on localhost, following the [secure defaults for most NixOS services](https://github.com/NixOS/nixpkgs/issues/100192).

View File

@ -257,6 +257,7 @@ foreach my $path (glob "/sys/class/{block,mmc_host}/*") {
# Add bcache module, if needed.
my @bcacheDevices = glob("/dev/bcache*");
@bcacheDevices = grep(!qr#dev/bcachefs.*#, @bcacheDevices);
if (scalar @bcacheDevices > 0) {
push @initrdAvailableKernelModules, "bcache";
}
@ -467,6 +468,19 @@ EOF
# boot.tmp.useTmpfs option in configuration.nix (managed declaratively).
next if ($mountPoint eq "/tmp" && $fsType eq "tmpfs");
# This should work for single and multi-device systems.
# still needs subvolume support
if ($fsType eq "bcachefs") {
my ($status, @info) = runCommand("bcachefs fs usage $rootDir$mountPoint");
my $UUID = $info[0];
if ($status == 0 && $UUID =~ /^Filesystem:[ \t\n]*([0-9a-z-]+)/) {
$stableDevPath = "UUID=$1";
} else {
print STDERR "warning: can't find bcachefs mount UUID falling back to device-path";
}
}
# Emit the filesystem.
$fileSystems .= <<EOF;
fileSystems.\"$mountPoint\" =

View File

@ -115,8 +115,7 @@ in {
environment.systemPackages = [ cfg.package ]
++ lib.optional cfg.jack.enable jack-libs;
systemd.packages = [ cfg.package ]
++ lib.optional cfg.pulse.enable cfg.package.pulse;
systemd.packages = [ cfg.package ];
# PipeWire depends on DBUS but doesn't list it. Without this booting
# into a terminal results in the service crashing with an error.
@ -130,9 +129,13 @@ in {
systemd.user.sockets.pipewire.enable = !cfg.systemWide;
systemd.user.services.pipewire.enable = !cfg.systemWide;
# Mask pw-pulse if it's not wanted
systemd.user.services.pipewire-pulse.enable = cfg.pulse.enable;
systemd.user.sockets.pipewire-pulse.enable = cfg.pulse.enable;
systemd.sockets.pipewire.wantedBy = lib.mkIf cfg.socketActivation [ "sockets.target" ];
systemd.user.sockets.pipewire.wantedBy = lib.mkIf cfg.socketActivation [ "sockets.target" ];
systemd.user.sockets.pipewire-pulse.wantedBy = lib.mkIf (cfg.socketActivation && cfg.pulse.enable) ["sockets.target"];
systemd.user.sockets.pipewire-pulse.wantedBy = lib.mkIf cfg.socketActivation [ "sockets.target" ];
services.udev.packages = [ cfg.package ];
@ -140,14 +143,14 @@ in {
environment.etc."alsa/conf.d/49-pipewire-modules.conf" = mkIf cfg.alsa.enable {
text = ''
pcm_type.pipewire {
libs.native = ${cfg.package.lib}/lib/alsa-lib/libasound_module_pcm_pipewire.so ;
libs.native = ${cfg.package}/lib/alsa-lib/libasound_module_pcm_pipewire.so ;
${optionalString enable32BitAlsaPlugins
"libs.32Bit = ${pkgs.pkgsi686Linux.pipewire.lib}/lib/alsa-lib/libasound_module_pcm_pipewire.so ;"}
"libs.32Bit = ${pkgs.pkgsi686Linux.pipewire}/lib/alsa-lib/libasound_module_pcm_pipewire.so ;"}
}
ctl_type.pipewire {
libs.native = ${cfg.package.lib}/lib/alsa-lib/libasound_module_ctl_pipewire.so ;
libs.native = ${cfg.package}/lib/alsa-lib/libasound_module_ctl_pipewire.so ;
${optionalString enable32BitAlsaPlugins
"libs.32Bit = ${pkgs.pkgsi686Linux.pipewire.lib}/lib/alsa-lib/libasound_module_ctl_pipewire.so ;"}
"libs.32Bit = ${pkgs.pkgsi686Linux.pipewire}/lib/alsa-lib/libasound_module_ctl_pipewire.so ;"}
}
'';
};

View File

@ -1,4 +1,4 @@
if [ -e .attrs.sh ]; then source .attrs.sh; fi
if [ -e "$NIX_ATTRS_SH_FILE" ]; then . "$NIX_ATTRS_SH_FILE"; elif [ -f .attrs.sh ]; then . .attrs.sh; fi
source $stdenv/setup
doSub() {

View File

@ -1,6 +1,6 @@
set -e
if [ -e .attrs.sh ]; then source .attrs.sh; fi
if [ -e "$NIX_ATTRS_SH_FILE" ]; then . "$NIX_ATTRS_SH_FILE"; elif [ -f .attrs.sh ]; then . .attrs.sh; fi
source $stdenv/setup
mkdir -p $out/bin

View File

@ -6,23 +6,39 @@ let
bootFs = filterAttrs (n: fs: (fs.fsType == "bcachefs") && (utils.fsNeededForBoot fs)) config.fileSystems;
mountCommand = pkgs.runCommand "mount.bcachefs" {} ''
mkdir -p $out/bin
cat > $out/bin/mount.bcachefs <<EOF
#!/bin/sh
exec "/bin/bcachefs" mount "\$@"
EOF
chmod +x $out/bin/mount.bcachefs
'';
commonFunctions = ''
prompt() {
local name="$1"
printf "enter passphrase for $name: "
}
tryUnlock() {
local name="$1"
local path="$2"
local success=false
local target
local uuid=$(echo -n $path | sed -e 's,UUID=\(.*\),\1,g')
printf "waiting for device to appear $path"
for try in $(seq 10); do
if [ -e $path ]; then
success=true
break
else
target=$(blkid --uuid $uuid)
if [ $? == 0 ]; then
success=true
break
fi
fi
echo -n "."
sleep 1
done
printf "\n"
if [ $success == true ]; then
path=$target
fi
if bcachefs unlock -c $path > /dev/null 2> /dev/null; then # test for encryption
prompt $name
until bcachefs unlock $path 2> /dev/null; do # repeat until successfully unlocked
@ -30,6 +46,8 @@ let
prompt $name
done
printf "unlocking successful.\n"
else
echo "Cannot unlock device $uuid with path $path" >&2
fi
}
'';
@ -51,28 +69,25 @@ in
{
config = mkIf (elem "bcachefs" config.boot.supportedFilesystems) (mkMerge [
{
# We do not want to include bachefs in the fsPackages for systemd-initrd
# because we provide the unwrapped version of mount.bcachefs
# through the extraBin option, which will make it available for use.
system.fsPackages = lib.optional (!config.boot.initrd.systemd.enable) pkgs.bcachefs-tools;
environment.systemPackages = lib.optional (config.boot.initrd.systemd.enable) pkgs.bcachefs-tools;
# needed for systemd-remount-fs
system.fsPackages = [ pkgs.bcachefs-tools ];
# use kernel package with bcachefs support until it's in mainline
# TODO replace with requireKernelConfig
boot.kernelPackages = pkgs.linuxPackages_testing_bcachefs;
}
(mkIf ((elem "bcachefs" config.boot.initrd.supportedFilesystems) || (bootFs != {})) {
# chacha20 and poly1305 are required only for decryption attempts
boot.initrd.availableKernelModules = [ "bcachefs" "sha256" "chacha20" "poly1305" ];
boot.initrd.systemd.extraBin = {
# do we need this? boot/systemd.nix:566 & boot/systemd/initrd.nix:357
"bcachefs" = "${pkgs.bcachefs-tools}/bin/bcachefs";
"mount.bcachefs" = "${mountCommand}/bin/mount.bcachefs";
"mount.bcachefs" = "${pkgs.bcachefs-tools}/bin/mount.bcachefs";
};
boot.initrd.extraUtilsCommands = lib.mkIf (!config.boot.initrd.systemd.enable) ''
copy_bin_and_libs ${pkgs.bcachefs-tools}/bin/bcachefs
copy_bin_and_libs ${mountCommand}/bin/mount.bcachefs
copy_bin_and_libs ${pkgs.bcachefs-tools}/bin/mount.bcachefs
'';
boot.initrd.extraUtilsCommandsTest = ''
$out/bin/bcachefs version

View File

@ -1,29 +1,19 @@
{ stdenv, lib, fetchFromGitHub, fetchpatch, buildPackages, pkg-config, cmake
{ stdenv, lib, fetchFromGitHub, buildPackages, pkg-config, cmake
, alsa-lib, glib, libjack2, libsndfile, libpulseaudio
, AppKit, AudioUnit, CoreAudio, CoreMIDI, CoreServices
}:
stdenv.mkDerivation rec {
pname = "fluidsynth";
version = "2.3.3";
version = "2.3.4";
src = fetchFromGitHub {
owner = "FluidSynth";
repo = "fluidsynth";
rev = "v${version}";
sha256 = "sha256-RqhlpvMbRSwdcY2uuFAdJnihN3aObcLVMuvCZ294dgo=";
hash = "sha256-3qLmo9Ibl44v6Jj5Ix17ixwqfPt3ITTXUqBETF5pzE4=";
};
patches = [
# Fixes bad CMAKE_INSTALL_PREFIX + CMAKE_INSTALL_LIBDIR concatenation for Darwin install name dir
# Remove when PR merged & in release
(fetchpatch {
name = "0001-Fix-incorrect-way-of-turning-CMAKE_INSTALL_LIBDIR-absolute.patch";
url = "https://github.com/FluidSynth/fluidsynth/pull/1261/commits/03cd38dd909fc24aa39553d869afbb4024416de8.patch";
hash = "sha256-nV+MbFttnbNBO4zWnPLpnnEuoiESkV9BGFlUS9tQQfk=";
})
];
outputs = [ "out" "dev" "man" ];
nativeBuildInputs = [ buildPackages.stdenv.cc pkg-config cmake ];

View File

@ -6,6 +6,7 @@
, automake
, gnome2
, gtk2
, libGL
, libjack2
, libtool
, libxml2
@ -27,6 +28,7 @@ stdenv.mkDerivation rec {
audiofile
gnome2.gtkglext
gtk2
libGL
libjack2
libtool
libxml2

View File

@ -1,5 +1,5 @@
{ lib, stdenv, fetchFromGitHub, faust, meson, ninja, pkg-config
, boost, cairo, fftw, ladspa-sdk, libxcb, lv2, xcbutilwm
, boost, cairo, fftw, ladspa-sdk, libxcb, lv2, xcbutilwm, xorg
, zita-convolver, zita-resampler
}:
@ -29,6 +29,7 @@ stdenv.mkDerivation rec {
libxcb
lv2
xcbutilwm
xorg.xcbutil
zita-convolver
zita-resampler
];

View File

@ -21,11 +21,11 @@ assert withConplay -> !libOnly;
stdenv.mkDerivation rec {
pname = "${lib.optionalString libOnly "lib"}mpg123";
version = "1.31.3";
version = "1.32.3";
src = fetchurl {
url = "mirror://sourceforge/mpg123/mpg123-${version}.tar.bz2";
hash = "sha256-HKd9Omml/4RbegU294P+5VThBBE5prl49q/hT1gUrRo=";
hash = "sha256-LZkTpX1O6PSXoYLG6CWCYCQJeCpPtIHpif7r9ENYZ7Q=";
};
outputs = [ "out" "dev" "man" ] ++ lib.optional withConplay "conplay";

View File

@ -30,8 +30,9 @@ stdenv.mkDerivation {
];
patches = [
# https://github.com/paulnasca/paulstretch_cpp/pull/12
(fetchpatch {
url = "https://github.com/paulnasca/paulstretch_cpp/pull/12.patch";
url = "https://github.com/paulnasca/paulstretch_cpp/commit/d8671b36135fe66839b11eadcacb474cc8dae0d1.patch";
sha256 = "0lx1rfrs53afkiz1drp456asqgj5yv6hx3lkc01165cv1jsbw6q4";
})
];

View File

@ -1,4 +1,4 @@
{ lib, stdenv, fetchFromGitHub, xorg, cairo, lv2, libjack2, mesa, pkg-config }:
{ lib, stdenv, fetchFromGitHub, xorg, cairo, libGL, lv2, libjack2, mesa, pkg-config }:
stdenv.mkDerivation rec {
pname = "stone-phaser";
@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ pkg-config ];
buildInputs = [
xorg.libX11 cairo lv2 libjack2 mesa
xorg.libX11 cairo libGL lv2 libjack2 mesa
];
postPatch = ''

View File

@ -1,4 +1,4 @@
{ lib, stdenv, fetchFromGitHub, boost, cairo, lv2, pkg-config }:
{ lib, stdenv, fetchFromGitHub, boost, cairo, libGL, lv2, pkg-config }:
stdenv.mkDerivation rec {
pname = "string-machine";
@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ pkg-config ];
buildInputs = [
boost cairo lv2
boost cairo libGL lv2
];
makeFlags = [

View File

@ -212,7 +212,7 @@ rec {
# having no RC generated should autodisable init.vim wrapping
nvim_autowrap = runTest nvim_via_override ''
! grep "-u" ${nvimShouldntWrap}/bin/nvim
! grep ${nvimShouldntWrap}/bin/nvim
'';

View File

@ -7,8 +7,10 @@
, neovimUtils
, vimUtils
, perl
, lndir
}:
neovim:
neovim-unwrapped:
let
wrapper = {
@ -62,7 +64,7 @@ let
# wrapper with most arguments we need, excluding those that cause problems to
# generate rplugin.vim, but still required for the final wrapper.
finalMakeWrapperArgs =
[ "${neovim}/bin/nvim" "${placeholder "out"}/bin/nvim" ]
[ "${neovim-unwrapped}/bin/nvim" "${placeholder "out"}/bin/nvim" ]
++ [ "--set" "NVIM_SYSTEM_RPLUGIN_MANIFEST" "${placeholder "out"}/rplugin.vim" ]
++ lib.optionals wrapRc [ "--add-flags" "-u ${writeText "init.vim" neovimRcContent}" ]
++ commonWrapperArgs
@ -72,36 +74,45 @@ let
in
assert withPython2 -> throw "Python2 support has been removed from the neovim wrapper, please remove withPython2 and python2Env.";
symlinkJoin {
name = "neovim-${lib.getVersion neovim}${extraName}";
stdenv.mkDerivation (finalAttrs: {
name = "neovim-${lib.getVersion neovim-unwrapped}${extraName}";
__structuredAttrs = true;
dontUnpack = true;
inherit viAlias vimAlias withNodeJs withPython3 withPerl;
inherit wrapRc providerLuaRc packpathDirs;
inherit python3Env rubyEnv;
withRuby = rubyEnv != null;
inherit wrapperArgs;
# Remove the symlinks created by symlinkJoin which we need to perform
# extra actions upon
postBuild = lib.optionalString stdenv.isLinux ''
rm $out/share/applications/nvim.desktop
substitute ${neovim}/share/applications/nvim.desktop $out/share/applications/nvim.desktop \
substitute ${neovim-unwrapped}/share/applications/nvim.desktop $out/share/applications/nvim.desktop \
--replace 'Name=Neovim' 'Name=Neovim wrapper'
''
+ lib.optionalString withPython3 ''
+ lib.optionalString finalAttrs.withPython3 ''
makeWrapper ${python3Env.interpreter} $out/bin/nvim-python3 --unset PYTHONPATH
''
+ lib.optionalString (rubyEnv != null) ''
ln -s ${rubyEnv}/bin/neovim-ruby-host $out/bin/nvim-ruby
+ lib.optionalString (finalAttrs.rubyEnv != null) ''
ln -s ${finalAttrs.rubyEnv}/bin/neovim-ruby-host $out/bin/nvim-ruby
''
+ lib.optionalString withNodeJs ''
+ lib.optionalString finalAttrs.withNodeJs ''
ln -s ${nodePackages.neovim}/bin/neovim-node-host $out/bin/nvim-node
''
+ lib.optionalString withPerl ''
+ lib.optionalString finalAttrs.withPerl ''
ln -s ${perlEnv}/bin/perl $out/bin/nvim-perl
''
+ lib.optionalString vimAlias ''
+ lib.optionalString finalAttrs.vimAlias ''
ln -s $out/bin/nvim $out/bin/vim
''
+ lib.optionalString viAlias ''
+ lib.optionalString finalAttrs.viAlias ''
ln -s $out/bin/nvim $out/bin/vi
''
+ lib.optionalString (manifestRc != null) (let
manifestWrapperArgs =
[ "${neovim}/bin/nvim" "${placeholder "out"}/bin/nvim-wrapper" ] ++ commonWrapperArgs;
[ "${neovim-unwrapped}/bin/nvim" "${placeholder "out"}/bin/nvim-wrapper" ] ++ commonWrapperArgs;
in ''
echo "Generating remote plugin manifest"
export NVIM_RPLUGIN_MANIFEST=$out/rplugin.vim
@ -139,26 +150,33 @@ let
makeWrapper ${lib.escapeShellArgs finalMakeWrapperArgs} ${wrapperArgsStr}
'';
paths = [ neovim ];
buildPhase = ''
runHook preBuild
mkdir -p $out
for i in ${neovim-unwrapped}; do
lndir -silent $i $out
done
runHook postBuild
'';
preferLocalBuild = true;
nativeBuildInputs = [ makeWrapper ];
nativeBuildInputs = [ makeWrapper lndir ];
passthru = {
inherit providerLuaRc packpathDirs;
unwrapped = neovim;
unwrapped = neovim-unwrapped;
initRc = neovimRcContent;
tests = callPackage ./tests {
};
};
meta = neovim.meta // {
meta = neovim-unwrapped.meta // {
# To prevent builds on hydra
hydraPlatforms = [];
# prefer wrapper over the package
priority = (neovim.meta.priority or 0) - 1;
};
priority = (neovim-unwrapped.meta.priority or 0) - 1;
};
});
in
lib.makeOverridable wrapper

View File

@ -1,12 +1,12 @@
{ lib, fetchFromGitHub }:
rec {
version = "9.0.1897";
version = "9.0.2048";
src = fetchFromGitHub {
owner = "vim";
repo = "vim";
rev = "v${version}";
hash = "sha256-ywxJ9evXWbqZ6o6EqDIQWK16J05McAdvPl0Y9cW5Zvc=";
hash = "sha256-zR2iPiD4/gf5BnxYoe3cx2ebGWE1P2bY4Cg15gveFgg=";
};
enableParallelBuilding = true;

View File

@ -26,8 +26,9 @@ stdenv.mkDerivation rec {
patches = [
(fetchpatch {
# https://github.com/autotrace/autotrace/pull/105
name = "imagemagick7-support.patch";
url = "https://github.com/autotrace/autotrace/pull/105.patch";
url = "https://github.com/autotrace/autotrace/compare/170488e1871d50aad7a800b901e33ded7d31773a...c26a2a059926c595a00839c8d9961e9381206579.patch";
hash = "sha256-Q82LRF/BsJ/Ii2s+7yaYHs9agMKYVYIMnbwqz8P92s0=";
})
];

View File

@ -1,6 +1,7 @@
{ lib
, stdenv
, fetchurl
, libGL
, libjpeg
, libexif
, giflib
@ -17,6 +18,7 @@
, sane-backends
, libXpm
, libepoxy
, pixman
, poppler
, mesa
, lirc
@ -42,6 +44,7 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ pkg-config which ];
buildInputs = [
libGL
libexif
libjpeg
libpng
@ -56,6 +59,7 @@ stdenv.mkDerivation rec {
libdrm
libXpm
libepoxy
pixman
poppler
lirc
mesa

View File

@ -2,7 +2,7 @@
, extra-cmake-modules, kdoctools
, qtscript, qtsvg, qtquickcontrols, qtwebengine
, krunner, shared-mime-info, kparts, knewstuff
, gpsd, perl, protobuf3_21
, gpsd, perl, protobuf_21
}:
mkDerivation {
@ -15,7 +15,7 @@ mkDerivation {
outputs = [ "out" "dev" ];
nativeBuildInputs = [ extra-cmake-modules kdoctools perl ];
propagatedBuildInputs = [
protobuf3_21 qtscript qtsvg qtquickcontrols qtwebengine shared-mime-info krunner kparts
protobuf_21 qtscript qtsvg qtquickcontrols qtwebengine shared-mime-info krunner kparts
knewstuff gpsd
];
preConfigure = ''

View File

@ -1,4 +1,4 @@
if [ -e .attrs.sh ]; then source .attrs.sh; fi
if [ -e "$NIX_ATTRS_SH_FILE" ]; then . "$NIX_ATTRS_SH_FILE"; elif [ -f .attrs.sh ]; then . .attrs.sh; fi
source $stdenv/setup
echo "unpacking $src..."

View File

@ -23,6 +23,7 @@
, glib
, graphene
, gtk4
, libGL
, libadwaita
, libdrm
, mesa
@ -92,6 +93,7 @@ stdenv.mkDerivation rec {
glib
graphene
gtk4
libGL
libadwaita
libdrm
mesa

View File

@ -17,7 +17,7 @@ stdenv.mkDerivation {
# Fix dbus interface headers. See
# https://github.com/davidbrazdil/volnoti/pull/10
(fetchpatch {
url = "https://github.com/davidbrazdil/volnoti/pull/10.patch";
url = "https://github.com/davidbrazdil/volnoti/commit/623ad8ea5c3ac8720d00a2ced4b6163aae38c119.patch";
sha256 = "046zfdjmvhb7jrsgh04vfgi35sgy1zkrhd3bzdby3nvds1wslfam";
})
];

View File

@ -20,7 +20,6 @@
, runtimeShell
, systemLocale ? config.i18n.defaultLocale or "en_US"
, patchelfUnstable # have to use patchelfUnstable to support --no-clobber-old-sections
, makeWrapper
}:
let
@ -58,20 +57,6 @@ let
source = lib.findFirst (sourceMatches mozLocale) defaultSource sources;
pname = "firefox-${channel}-bin-unwrapped";
# FIXME: workaround for not being able to pass flags to patchelf
# Remove after https://github.com/NixOS/nixpkgs/pull/256525
wrappedPatchelf = stdenv.mkDerivation {
pname = "patchelf-wrapped";
inherit (patchelfUnstable) version;
nativeBuildInputs = [ makeWrapper ];
buildCommand = ''
mkdir -p $out/bin
makeWrapper ${patchelfUnstable}/bin/patchelf $out/bin/patchelf --append-flags "--no-clobber-old-sections"
'';
};
in
stdenv.mkDerivation {
@ -79,7 +64,7 @@ stdenv.mkDerivation {
src = fetchurl { inherit (source) url sha256; };
nativeBuildInputs = [ wrapGAppsHook autoPatchelfHook wrappedPatchelf ];
nativeBuildInputs = [ wrapGAppsHook autoPatchelfHook patchelfUnstable ];
buildInputs = [
gtk3
adwaita-icon-theme
@ -93,8 +78,10 @@ stdenv.mkDerivation {
pciutils
];
appendRunpaths = [
"${pipewire.lib}/lib"
"${pipewire}/lib"
];
# Firefox uses "relrhack" to manually process relocations from a fixed offset
patchelfFlags = [ "--no-clobber-old-sections" ];
installPhase =
''

View File

@ -3,14 +3,14 @@
, fetchFromGitHub
, cmake
, openssl
, protobuf3_21
, protobuf_21
, catch2
, boost181
, icu
}:
let
boost = boost181.override { enableStatic = true; };
protobuf = protobuf3_21.override { enableShared = false; };
protobuf = protobuf_21.override { enableShared = false; };
in
stdenv.mkDerivation (finalAttrs: {
pname = "localproxy";

View File

@ -20,8 +20,9 @@ stdenv.mkDerivation rec {
# https://github.com/neomutt/neomutt/issues/3773#issuecomment-1493295144
./fix-open-very-large-mailbox.patch
(fetchpatch {
# https://github.com/neomutt/neomutt/pull/3933
name = "disable-incorrect-tests.patch";
url = "https://github.com/neomutt/neomutt/pull/3933.patch";
url = "https://github.com/neomutt/neomutt/compare/f624551b86cdb53224b5b48304a808ca2815111e...a9a1d99e6c0fdf367188125451300fa89d3e801a.patch";
hash = "sha256-Plei063T8XyXF4/7/nAb6/4OyXz72vBAXHwls9WL1vM=";
excludes = [".github/workflows/macos.yml"];
})

View File

@ -16,8 +16,9 @@ let
patches = [
# gradle 7 support
# https://github.com/freenet/fred/pull/827
(fetchpatch {
url = "https://github.com/freenet/fred/pull/827.patch";
url = "https://github.com/freenet/fred/commit/8991303493f2c0d9933f645337f0a7a5a979e70a.patch";
sha256 = "sha256-T1zymxRTADVhhwp2TyB+BC/J4gZsT/CUuMrT4COlpTY=";
})
];

View File

@ -12,7 +12,7 @@
zlibSupport ? true, zlib,
libuniqueSupport ? true, libunique,
libpngSupport ? true, libpng,
openglSupport ? !stdenv.isDarwin
openglSupport ? !stdenv.isDarwin, libGL
}:
let
@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
buildInputs = with lib;
[ gtk2 fftw ] ++
optional openglSupport gnome2.gtkglext ++
optionals openglSupport [ gnome2.gtkglext libGL ] ++
optional openexrSupport openexr ++
optional libXmuSupport xorg.libXmu ++
optional fitsSupport cfitsio ++

View File

@ -19,13 +19,13 @@ stdenv.mkDerivation rec {
# https://github.com/vprover/vampire/pull/54
(fetchpatch {
name = "fix-apple-cygwin-defines.patch";
url = "https://github.com/vprover/vampire/pull/54.patch";
url = "https://github.com/vprover/vampire/commit/b4bddd3bcac6a7688742da75c369b7b3213f6d1c.patch";
sha256 = "0i6nrc50wlg1dqxq38lkpx4rmfb3lf7s8f95l4jkvqp0nxa20cza";
})
# https://github.com/vprover/vampire/pull/55
(fetchpatch {
name = "fix-wait-any.patch";
url = "https://github.com/vprover/vampire/pull/55.patch";
url = "https://github.com/vprover/vampire/commit/6da10eabb333aec54cdf13833ea33cb851159543.patch";
sha256 = "1pwfpwpl23bqsgkmmvw6bnniyvp5j9v8l3z9s9pllfabnfcrcz9l";
})
];

View File

@ -4,14 +4,14 @@
stdenv.mkDerivation rec {
pname = "xterm";
version = "384";
version = "388";
src = fetchurl {
urls = [
"ftp://ftp.invisible-island.net/xterm/${pname}-${version}.tgz"
"https://invisible-mirror.net/archives/xterm/${pname}-${version}.tgz"
];
hash = "sha256-Me+HB0DOrgIMPEtKlgHH9Hv9RmcsGq8tITpWXWTLw3M=";
hash = "sha256-rEKTReb5N6WUWonUJaJl/ubCFfxmnb3GoDJuIfTF9nQ=";
};
strictDeps = true;

View File

@ -23,13 +23,15 @@ buildGoModule rec {
patches = [
# Fix `fish` completions
# https://github.com/github/hub/pull/3036
(fetchpatch {
url = "https://github.com/github/hub/pull/3036.patch";
url = "https://github.com/github/hub/commit/439b7699e79471fc789929bcdea2f30bd719963e.patch";
hash = "sha256-pR/OkGa2ICR4n1pLNx8E2UTtLeDwFtXxeeTB94KFjC4=";
})
# Fix `bash` completions
# https://github.com/github/hub/pull/2948
(fetchpatch {
url = "https://github.com/github/hub/pull/2948.patch";
url = "https://github.com/github/hub/commit/64b291006f208fc7db1d5be96ff7db5535f1d853.patch";
hash = "sha256-jGFFIvSKEIpTQY0Wz63cqciUk25MzPHv5Z1ox8l7wmo=";
})
];

View File

@ -17,6 +17,7 @@
, gjs
, gtk4
, gst_all_1
, libGL
, libadwaita
, appstream-glib
, libsoup
@ -55,6 +56,7 @@ stdenv.mkDerivation rec {
gst_all_1.gst-plugins-bad
gst_all_1.gst-plugins-ugly
gtk4
libGL
libadwaita
libsoup
wayland

View File

@ -116,7 +116,7 @@ in stdenv.mkDerivation {
# Remove with the next release: https://github.com/xbmc/xbmc/pull/23453
(fetchpatch {
name = "Fix fmt10 compat";
url = "https://github.com/xbmc/xbmc/pull/23453.patch";
url = "https://github.com/xbmc/xbmc/compare/acca69baa2eae65123e78ee2f77249181725ef5d...26c164a28cfd18ceef7a1f2bbba5bf8a4a5a750c.patch";
hash = "sha256-zMUparbQ8gfgeXj8W3MDmPi5OgLNz/zGCJINU7H6Rx0=";
})
];

View File

@ -10,6 +10,7 @@
, git
, hyprland-protocols
, jq
, libGL
, libdrm
, libexecinfo
, libinput
@ -88,6 +89,7 @@ stdenv.mkDerivation (finalAttrs: {
cairo
git
hyprland-protocols
libGL
libdrm
libinput
libxkbcommon

View File

@ -3,6 +3,7 @@
, fetchFromGitHub
, cmake
, file
, libGL
, libjpeg
, mesa
, pango
@ -31,6 +32,7 @@ stdenv.mkDerivation (finalAttrs: {
buildInputs = [
file
libGL
libjpeg
mesa
pango

View File

@ -6,6 +6,7 @@
, ninja
, cairo
, fribidi
, libGL
, libdatrie
, libjpeg
, libselinux
@ -43,6 +44,7 @@ stdenv.mkDerivation (finalAttrs: {
buildInputs = [
cairo
fribidi
libGL
libdatrie
libjpeg
libselinux

View File

@ -1,4 +1,4 @@
{ i3lock-color, lib, stdenv, fetchFromGitHub, fetchpatch }:
{ i3lock-color, lib, stdenv, fetchFromGitHub, fetchpatch, libGL }:
i3lock-color.overrideAttrs (oldAttrs : rec {
pname = "i3lock-blur";
@ -21,6 +21,8 @@ i3lock-color.overrideAttrs (oldAttrs : rec {
})
];
buildInputs = oldAttrs.buildInputs ++ [ libGL ];
meta = with lib; {
description = "An improved screenlocker based upon XCB and PAM with background blurring filter";
homepage = "https://github.com/karulont/i3lock-blur/";

View File

@ -1,6 +1,6 @@
{ lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config, libxcb,
xcbutilkeysyms , xcbutilimage, pam, libX11, libev, cairo, libxkbcommon,
libxkbfile, libjpeg_turbo, xcbutilxrm
libxkbfile, libjpeg_turbo, xcbutilxrm, xorg
}:
stdenv.mkDerivation rec {
@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ autoreconfHook pkg-config ];
buildInputs = [ libxcb xcbutilkeysyms xcbutilimage pam libX11
libev cairo libxkbcommon libxkbfile libjpeg_turbo xcbutilxrm ];
libev cairo libxkbcommon libxkbfile libjpeg_turbo xcbutilxrm xorg.xcbutil ];
makeFlags = [ "all" ];
preInstall = ''

View File

@ -1,5 +1,5 @@
{ stdenv, lib, fetchFromGitHub, meson, ninja, pkg-config, libxcb, xcbutilkeysyms, xcbutilimage,
xcbutilxrm, pam, libX11, libev, cairo, libxkbcommon, libxkbfile }:
xcbutilxrm, pam, libX11, libev, cairo, libxkbcommon, libxkbfile, xorg }:
stdenv.mkDerivation rec {
pname = "i3lock";
@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ meson ninja pkg-config ];
buildInputs = [ libxcb xcbutilkeysyms xcbutilimage xcbutilxrm
pam libX11 libev cairo libxkbcommon libxkbfile ];
pam libX11 libev cairo libxkbcommon libxkbfile xorg.xcbutil ];
meta = with lib; {
description = "A simple screen locker like slock";

View File

@ -1,5 +1,5 @@
{ lib, fetchFromGitHub, rustPlatform
, xorg, python3, pkg-config, cairo, libxkbcommon }:
, xorg, python3, pkg-config, cairo, expat, libxkbcommon }:
rustPlatform.buildRustPackage rec {
pname = "wmfocus";
@ -15,7 +15,7 @@ rustPlatform.buildRustPackage rec {
cargoHash = "sha256-4eoV/viI7Q7I7mIqcHVAyPf/y2RWaWX0B+mLZWMEbcI=";
nativeBuildInputs = [ python3 pkg-config ];
buildInputs = [ cairo libxkbcommon xorg.xcbutilkeysyms ];
buildInputs = [ cairo expat libxkbcommon xorg.xcbutilkeysyms ];
# For now, this is the only available featureset. This is also why the file is
# in the i3 folder, even though it might be useful for more than just i3

View File

@ -1,6 +1,7 @@
{ lib
, rustPlatform
, fetchFromGitHub
, libGL
, libinput
, libxkbcommon
, mesa
@ -22,6 +23,7 @@ rustPlatform.buildRustPackage rec {
cargoSha256 = "sha256-zSq6YBlm6gJXGlF9xZ8gWSTMewdNqrJzwP58a0x8QIU=";
buildInputs = [
libGL
libxkbcommon
mesa
pango

View File

@ -1,6 +1,6 @@
{ lib, stdenv, fetchFromGitHub, fetchpatch, substituteAll, swaybg
, meson, ninja, pkg-config, wayland-scanner, scdoc
, wayland, libxkbcommon, pcre2, json_c, libevdev
, libGL, wayland, libxkbcommon, pcre2, json_c, libevdev
, pango, cairo, libinput, gdk-pixbuf, librsvg
, wlroots, wayland-protocols, libdrm
, nixosTests
@ -58,7 +58,7 @@ stdenv.mkDerivation (finalAttrs: {
];
buildInputs = [
wayland libxkbcommon pcre2 json_c libevdev
libGL wayland libxkbcommon pcre2 json_c libevdev
pango cairo libinput gdk-pixbuf librsvg
wayland-protocols libdrm
(wlroots.override { inherit (finalAttrs) enableXWayland; })

View File

@ -8,6 +8,7 @@
, wf-config
, cairo
, doctest
, libGL
, libdrm
, libexecinfo
, libevdev
@ -44,6 +45,7 @@ stdenv.mkDerivation (finalAttrs: {
buildInputs = [
wf-config
libGL
libdrm
libexecinfo
libevdev

View File

@ -1,6 +1,6 @@
{ lib, stdenv, fetchurl, fetchpatch2
, meson, ninja, pkg-config, python3, wayland-scanner
, cairo, libdrm, libevdev, libinput, libxkbcommon, mesa, seatd, wayland
, cairo, libGL, libdrm, libevdev, libinput, libxkbcommon, mesa, seatd, wayland
, wayland-protocols, xcbutilcursor
, demoSupport ? true
@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
depsBuildBuild = [ pkg-config ];
nativeBuildInputs = [ meson ninja pkg-config python3 wayland-scanner ];
buildInputs = [
cairo libdrm libevdev libinput libxkbcommon mesa seatd wayland
cairo libGL libdrm libevdev libinput libxkbcommon mesa seatd wayland
wayland-protocols
] ++ lib.optional hdrSupport libdisplay-info
++ lib.optional jpegSupport libjpeg

View File

@ -1,4 +1,4 @@
{ lib, stdenv, buildPackages }:
{ lib, stdenv, coreutils, jq, python3, nix, xz }:
# This function is for creating a flat-file binary cache, i.e. the kind created by
# nix copy --to file:///some/path and usable as a substituter (with the file:// prefix).
@ -19,15 +19,10 @@ stdenv.mkDerivation {
preferLocalBuild = true;
PATH = lib.makeBinPath (with buildPackages; [ coreutils jq python3 nix xz ]);
nativeBuildInputs = [ coreutils jq python3 nix xz ];
builder = builtins.toFile "builder" ''
. .attrs.sh
export out=''${outputs[out]}
mkdir $out
mkdir $out/nar
buildCommand = ''
mkdir -p $out/nar
python ${./make-binary-cache.py}

View File

@ -3,7 +3,7 @@ import json
import os
import subprocess
with open(".attrs.json", "r") as f:
with open(os.environ["NIX_ATTRS_JSON_FILE"], "r") as f:
closures = json.load(f)["closure"]
os.chdir(os.environ["out"])

View File

@ -10,6 +10,13 @@ for flag in ${NIX_HARDENING_ENABLE_@suffixSalt@-}; do
hardeningEnableMap["$flag"]=1
done
# fortify3 implies fortify enablement - make explicit before
# we filter unsupported flags because unsupporting fortify3
# doesn't mean we should unsupport fortify too
if [[ -n "${hardeningEnableMap[fortify3]-}" ]]; then
hardeningEnableMap["fortify"]=1
fi
# Remove unsupported flags.
for flag in @hardening_unsupported_flags@; do
unset -v "hardeningEnableMap[$flag]"
@ -19,7 +26,7 @@ for flag in @hardening_unsupported_flags@; do
fi
done
# make fortify and fortify3 mutually exclusive
# now make fortify and fortify3 mutually exclusive
if [[ -n "${hardeningEnableMap[fortify3]-}" ]]; then
unset -v "hardeningEnableMap['fortify']"
fi

View File

@ -246,7 +246,7 @@ if [[ -e @out@/nix-support/cc-wrapper-hook ]]; then
fi
if (( "${NIX_CC_USE_RESPONSE_FILE:-@use_response_file_by_default@}" >= 1 )); then
responseFile=$(mktemp --tmpdir cc-params.XXXXXX)
responseFile=$(mktemp "${TMPDIR:-/tmp}/cc-params.XXXXXX")
trap 'rm -f -- "$responseFile"' EXIT
printf "%q\n" \
${extraBefore+"${extraBefore[@]}"} \

View File

@ -4,7 +4,7 @@
# "nix-store --load-db" and "nix-store --register-validity
# --hash-given".
{ stdenv, buildPackages }:
{ stdenv, coreutils, jq }:
{ rootPaths }:
@ -19,18 +19,16 @@ stdenv.mkDerivation {
preferLocalBuild = true;
PATH = "${buildPackages.coreutils}/bin:${buildPackages.jq}/bin";
nativeBuildInputs = [ coreutils jq ];
builder = builtins.toFile "builder"
buildCommand =
''
. .attrs.sh
out=''${outputs[out]}
mkdir $out
jq -r ".closure | map(.narSize) | add" < .attrs.json > $out/total-nar-size
jq -r '.closure | map([.path, .narHash, .narSize, "", (.references | length)] + .references) | add | map("\(.)\n") | add' < .attrs.json | head -n -1 > $out/registration
jq -r .closure[].path < .attrs.json > $out/store-paths
jq -r ".closure | map(.narSize) | add" < "$NIX_ATTRS_JSON_FILE" > $out/total-nar-size
jq -r '.closure | map([.path, .narHash, .narSize, "", (.references | length)] + .references) | add | map("\(.)\n") | add' < "$NIX_ATTRS_JSON_FILE" | head -n -1 > $out/registration
jq -r '.closure[].path' < "$NIX_ATTRS_JSON_FILE" > $out/store-paths
'';
}

View File

@ -1,4 +1,4 @@
if [ -e .attrs.sh ]; then source .attrs.sh; fi
if [ -e "$NIX_ATTRS_SH_FILE" ]; then . "$NIX_ATTRS_SH_FILE"; elif [ -f .attrs.sh ]; then . .attrs.sh; fi
source "$stdenv/setup"
echo "exporting \`$url' (revision $rev) into \`$out'"

View File

@ -1,4 +1,4 @@
if [ -e .attrs.sh ]; then source .attrs.sh; fi
if [ -e "$NIX_ATTRS_SH_FILE" ]; then . "$NIX_ATTRS_SH_FILE"; elif [ -f .attrs.sh ]; then . .attrs.sh; fi
source $stdenv/setup
(echo "#!$SHELL"; \

View File

@ -1,4 +1,4 @@
if [ -e .attrs.sh ]; then source .attrs.sh; fi
if [ -e "$NIX_ATTRS_SH_FILE" ]; then . "$NIX_ATTRS_SH_FILE"; elif [ -f .attrs.sh ]; then . .attrs.sh; fi
source $stdenv/setup
tagtext=""

View File

@ -1,4 +1,4 @@
if [ -e .attrs.sh ]; then source .attrs.sh; fi
if [ -e "$NIX_ATTRS_SH_FILE" ]; then . "$NIX_ATTRS_SH_FILE"; elif [ -f .attrs.sh ]; then . .attrs.sh; fi
source "${stdenv}/setup"
echo "exporting ${repository}/${imageName} (tag: ${tag}) into ${out}"
mkdir -p "${out}"

View File

@ -1,4 +1,4 @@
if [ -e .attrs.sh ]; then source .attrs.sh; fi
if [ -e "$NIX_ATTRS_SH_FILE" ]; then . "$NIX_ATTRS_SH_FILE"; elif [ -f .attrs.sh ]; then . .attrs.sh; fi
source $stdenv/setup
echo "Cloning Fossil $url [$rev] into $out"

View File

@ -3,7 +3,7 @@
# - revision specified and remote has a HEAD
# - revision specified and remote without HEAD
#
if [ -e .attrs.sh ]; then source .attrs.sh; fi
if [ -e "$NIX_ATTRS_SH_FILE" ]; then . "$NIX_ATTRS_SH_FILE"; elif [ -f .attrs.sh ]; then . .attrs.sh; fi
source $stdenv/setup
echo "exporting $url (rev $rev) into $out"

View File

@ -1,4 +1,4 @@
if [ -e .attrs.sh ]; then source .attrs.sh; fi
if [ -e "$NIX_ATTRS_SH_FILE" ]; then . "$NIX_ATTRS_SH_FILE"; elif [ -f .attrs.sh ]; then . .attrs.sh; fi
source $stdenv/setup
echo "getting $url${rev:+ ($rev)} into $out"

View File

@ -1,4 +1,4 @@
if [ -e .attrs.sh ]; then source .attrs.sh; fi
if [ -e "$NIX_ATTRS_SH_FILE" ]; then . "$NIX_ATTRS_SH_FILE"; elif [ -f .attrs.sh ]; then . .attrs.sh; fi
source $stdenv/setup
# Curl flags to handle redirects, not use EPSV, handle cookies for

View File

@ -1,4 +1,4 @@
if [ -e .attrs.sh ]; then source .attrs.sh; fi
if [ -e "$NIX_ATTRS_SH_FILE" ]; then . "$NIX_ATTRS_SH_FILE"; elif [ -f .attrs.sh ]; then . .attrs.sh; fi
source $stdenv/setup
set -x

View File

@ -1,4 +1,4 @@
if [ -e .attrs.sh ]; then source .attrs.sh; fi
if [ -e "$NIX_ATTRS_SH_FILE" ]; then . "$NIX_ATTRS_SH_FILE"; elif [ -f .attrs.sh ]; then . .attrs.sh; fi
source $stdenv/setup
echo "exporting $url (r$rev) into $out"

View File

@ -1,4 +1,4 @@
if [ -e .attrs.sh ]; then source .attrs.sh; fi
if [ -e "$NIX_ATTRS_SH_FILE" ]; then . "$NIX_ATTRS_SH_FILE"; elif [ -f .attrs.sh ]; then . .attrs.sh; fi
source $stdenv/setup
echo "exporting $url (r$rev) into $out"

View File

@ -1,4 +1,4 @@
if [ -e .attrs.sh ]; then source .attrs.sh; fi
if [ -e "$NIX_ATTRS_SH_FILE" ]; then . "$NIX_ATTRS_SH_FILE"; elif [ -f .attrs.sh ]; then . .attrs.sh; fi
source $stdenv/setup
source $mirrorsFile

View File

@ -6,11 +6,8 @@ path: runCommand "closure-paths"
exportReferencesGraph.graph = path;
__structuredAttrs = true;
preferLocalBuild = true;
PATH = "${coreutils}/bin:${python3}/bin";
builder = builtins.toFile "builder"
''
. .attrs.sh
python3 ${./closure-graph.py} .attrs.json graph > ''${outputs[out]}
'';
nativeBuildInputs = [ coreutils python3 ];
}
""
''
python3 ${./closure-graph.py} "$NIX_ATTRS_JSON_FILE" graph > ''${outputs[out]}
''

View File

@ -156,7 +156,8 @@ stdenv.mkDerivation ((removeAttrs args [ "depsExtraArgs" "cargoUpdateHook" "carg
# Platforms without host tools from
# https://doc.rust-lang.org/nightly/rustc/platform-support.html
"armv7a-darwin"
"armv5tel-linux" "armv7a-linux" "m68k-linux" "riscv32-linux"
"armv5tel-linux" "armv7a-linux" "m68k-linux" "mipsel-linux"
"mips64el-linux" "riscv32-linux"
"armv6l-netbsd"
"x86_64-redox"
"wasm32-wasi"

View File

@ -174,7 +174,7 @@ class Dependency:
found: bool = False # Whether it was found somewhere
def auto_patchelf_file(path: Path, runtime_deps: list[Path], append_rpaths: List[Path] = []) -> list[Dependency]:
def auto_patchelf_file(path: Path, runtime_deps: list[Path], append_rpaths: List[Path] = [], extra_args: List[str] = []) -> list[Dependency]:
try:
with open_elf(path) as elf:
@ -213,7 +213,7 @@ def auto_patchelf_file(path: Path, runtime_deps: list[Path], append_rpaths: List
if file_is_dynamic_executable:
print("setting interpreter of", path)
subprocess.run(
["patchelf", "--set-interpreter", interpreter_path.as_posix(), path.as_posix()],
["patchelf", "--set-interpreter", interpreter_path.as_posix(), path.as_posix()] + extra_args,
check=True)
rpath += runtime_deps
@ -250,7 +250,7 @@ def auto_patchelf_file(path: Path, runtime_deps: list[Path], append_rpaths: List
if rpath:
print("setting RPATH to:", rpath_str)
subprocess.run(
["patchelf", "--set-rpath", rpath_str, path.as_posix()],
["patchelf", "--set-rpath", rpath_str, path.as_posix()] + extra_args,
check=True)
return dependencies
@ -262,7 +262,8 @@ def auto_patchelf(
runtime_deps: List[Path],
recursive: bool = True,
ignore_missing: List[str] = [],
append_rpaths: List[Path] = []) -> None:
append_rpaths: List[Path] = [],
extra_args: List[str] = []) -> None:
if not paths_to_patch:
sys.exit("No paths to patch, stopping.")
@ -275,7 +276,7 @@ def auto_patchelf(
dependencies = []
for path in chain.from_iterable(glob(p, '*', recursive) for p in paths_to_patch):
if not path.is_symlink() and path.is_file():
dependencies += auto_patchelf_file(path, runtime_deps, append_rpaths)
dependencies += auto_patchelf_file(path, runtime_deps, append_rpaths, extra_args)
missing = [dep for dep in dependencies if not dep.found]
@ -333,6 +334,12 @@ def main() -> None:
type=Path,
help="Paths to append to all runtime paths unconditionally",
)
parser.add_argument(
"--extra-args",
nargs="*",
type=str,
help="Extra arguments to pass to patchelf"
)
print("automatically fixing dependencies for ELF files")
args = parser.parse_args()
@ -344,7 +351,8 @@ def main() -> None:
args.runtime_dependencies,
args.recursive,
args.ignore_missing,
append_rpaths=args.append_rpaths)
append_rpaths=args.append_rpaths,
extra_args=args.extra_args)
interpreter_path: Path = None # type: ignore

View File

@ -63,6 +63,7 @@ autoPatchelf() {
local appendRunpathsArray=($appendRunpaths)
local runtimeDependenciesArray=($runtimeDependencies)
local patchelfFlagsArray=($patchelfFlags)
@pythonInterpreter@ @autoPatchelfScript@ \
${norecurse:+--no-recurse} \
--ignore-missing "${ignoreMissingDepsArray[@]}" \
@ -70,7 +71,8 @@ autoPatchelf() {
--libs "${autoPatchelfLibs[@]}" \
"${extraAutoPatchelfLibs[@]}" \
--runtime-dependencies "${runtimeDependenciesArray[@]/%//lib}" \
--append-rpaths "${appendRunpathsArray[@]}"
--append-rpaths "${appendRunpathsArray[@]}" \
--extra-args "${patchelfFlagsArray[@]}"
}
# XXX: This should ultimately use fixupOutputHooks but we currently don't have

View File

@ -21,7 +21,8 @@ buildNpmPackage {
# Remove after next release
patches = [
(fetchpatch {
url = "https://github.com/OpenAsar/arrpc/pull/50.patch";
# https://github.com/OpenAsar/arrpc/pull/50
url = "https://github.com/OpenAsar/arrpc/commit/7fa6c90204450eb3952ce9cddfecb0a5ba5e4313.patch";
hash = "sha256-qFlrbe2a4x811wpmWUcGDe2CPlt9x3HI+/t0P2v4kPc=";
})
];

View File

@ -5,6 +5,7 @@
, desktop-file-utils
, glib
, gtk4
, libGL
, libepoxy
, libadwaita
, meson
@ -40,6 +41,7 @@ stdenv.mkDerivation (finalAttrs: {
buildInputs = [
glib
gtk4
libGL
libadwaita
libepoxy
mpv

View File

@ -11,7 +11,7 @@
openssl,
pkg-config,
protobuf3_23,
protobuf_23,
grpc,
pandoc,
python3,
@ -87,14 +87,14 @@ stdenv.mkDerivation rec {
# For future updates: The currently used version can be found in the file
# etc/repos.json: https://github.com/just-buildsystem/justbuild/blob/master/etc/repos.json
# under the key .repositories.protobuf
protobuf3_23
protobuf_23
python3
];
postPatch = ''
sed -ie 's|\./bin/just-mr.py|${python3}/bin/python3 ./bin/just-mr.py|' bin/bootstrap.py
sed -ie 's|#!/usr/bin/env python3|#!${python3}/bin/python3|' bin/parallel-bootstrap-traverser.py
jq '.repositories.protobuf.pkg_bootstrap.local_path = "${protobuf3_23}"' etc/repos.json > etc/repos.json.patched
jq '.repositories.protobuf.pkg_bootstrap.local_path = "${protobuf_23}"' etc/repos.json > etc/repos.json.patched
mv etc/repos.json.patched etc/repos.json
jq '.repositories.com_github_grpc_grpc.pkg_bootstrap.local_path = "${grpc}"' etc/repos.json > etc/repos.json.patched
mv etc/repos.json.patched etc/repos.json

View File

@ -0,0 +1,28 @@
{ lib
, stdenv
, fetchFromGitHub
, cmake
}:
stdenv.mkDerivation rec {
pname = "valijson";
version = "1.0.1";
src = fetchFromGitHub {
owner = "tristanpenman";
repo = "valijson";
rev = "v${version}";
hash = "sha256-COVFBZtuTd1nyI/25feUYCurBwPlQV3qbxSSkn6aLl4=";
};
nativeBuildInputs = [
cmake
];
meta = with lib; {
description = "Header-only C++ library for JSON Schema validation, with support for many popular parsers";
homepage = "https://github.com/tristanpenman/valijson";
license = licenses.bsd2;
platforms = platforms.all;
};
}

View File

@ -14,7 +14,7 @@
stdenv.mkDerivation rec {
pname = "shared-mime-info";
version = "2.2";
version = "2.3";
outputs = [ "out" "dev" ];
@ -23,9 +23,15 @@ stdenv.mkDerivation rec {
owner = "xdg";
repo = pname;
rev = version;
sha256 = "sha256-QrRe/DcjpTMejHXDSOLbjpJywod8qIjP6/leTZ21rhE=";
sha256 = "sha256-cEfknRVtOJykEO9Iqlb0UoiayYtu+ugvmmZqAD5cGnE=";
};
patches = [
# Submitted upstream at
# https://gitlab.freedesktop.org/xdg/shared-mime-info/-/issues/211
./fix-clang-warnings.patch
];
nativeBuildInputs = [
meson
ninja

View File

@ -0,0 +1,31 @@
diff --git a/meson.build b/meson.build
index 1780c44..7998a51 100644
--- a/meson.build
+++ b/meson.build
@@ -49,12 +49,7 @@ endif
###############################################################################
# Dependencies
-check_functions = [
- 'fdatasync',
-]
-foreach function : check_functions
- config.set('HAVE_'+function.to_upper(), cc.has_function(function))
-endforeach
+config.set('HAVE_FDATASYNC', cc.has_function('fdatasync', prefix: '#include <unistd.h>'))
if get_option('build-translations')
diff --git a/src/update-mime-database.cpp b/src/update-mime-database.cpp
index 733ba06..4ca6d06 100644
--- a/src/update-mime-database.cpp
+++ b/src/update-mime-database.cpp
@@ -2158,7 +2158,7 @@ static void check_in_path_xdg_data(const char *mime_path)
env = getenv("XDG_DATA_DIRS");
if (!env)
- env = "/usr/local/share/"PATH_SEPARATOR"/usr/share/";
+ env = "/usr/local/share/" PATH_SEPARATOR "/usr/share/";
dirs = g_strsplit(env, PATH_SEPARATOR, 0);
g_return_if_fail(dirs != NULL);
for (n = 0; dirs[n]; n++)

View File

@ -1,4 +1,4 @@
if [ -e .attrs.sh ]; then source .attrs.sh; fi
if [ -e "$NIX_ATTRS_SH_FILE" ]; then . "$NIX_ATTRS_SH_FILE"; elif [ -f .attrs.sh ]; then . .attrs.sh; fi
source $stdenv/setup
providedPreConfigure="$preConfigure";

View File

@ -1,4 +1,4 @@
if [ -e .attrs.sh ]; then source .attrs.sh; fi
if [ -e "$NIX_ATTRS_SH_FILE" ]; then . "$NIX_ATTRS_SH_FILE"; elif [ -f .attrs.sh ]; then . .attrs.sh; fi
source $stdenv/setup
export JAVA_HOME=$jre

View File

@ -4,13 +4,13 @@
stdenv.mkDerivation rec {
pname = "binaryen";
version = "114";
version = "116";
src = fetchFromGitHub {
owner = "WebAssembly";
repo = "binaryen";
rev = "version_${version}";
hash = "sha256-bzHNIQy0AN8mIFGG+638p/MBSqlkWuaOzKGSsMDAPH4=";
hash = "sha256-gMwbWiP+YDCVafQMBWhTuJGWmkYtnhEdn/oofKaUT08=";
};
nativeBuildInputs = [ cmake python3 ];

View File

@ -1,4 +1,4 @@
if [ -e .attrs.sh ]; then source .attrs.sh; fi
if [ -e "$NIX_ATTRS_SH_FILE" ]; then . "$NIX_ATTRS_SH_FILE"; elif [ -f .attrs.sh ]; then . .attrs.sh; fi
source $stdenv/setup
echo "exporting egg ${eggName} (version $version) into $out"

View File

@ -8,7 +8,7 @@
stdenv.mkDerivation rec {
pname = "emscripten";
version = "3.1.45";
version = "3.1.47";
llvmEnv = symlinkJoin {
name = "emscripten-llvm-${version}";
@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
name = "emscripten-node-modules-${version}";
inherit pname version src;
npmDepsHash = "sha256-kcWAio1fKuwqFCFlupX9KevjWPbv9W/Z/5EPrihQ6ms=";
npmDepsHash = "sha256-Qft+//za5ed6Oquxtcdpv7g5oOc2WmWuRJ/CDe+FEiI=";
dontBuild = true;
@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
src = fetchFromGitHub {
owner = "emscripten-core";
repo = "emscripten";
hash = "sha256-yf0Yb/UjaBQpIEPZzzjaUmR+JzKPSJHMkrYLHxDXwOg=";
hash = "sha256-cRNkQ+7vUqJLNlf5dieeDcyT1jlBUeVxO8avoUvOPHI=";
rev = version;
};
@ -85,6 +85,9 @@ stdenv.mkDerivation rec {
cp -r . $appdir
chmod -R +w $appdir
mkdir -p $appdir/node_modules
cp -r ${nodeModules}/* $appdir/node_modules
mkdir -p $out/bin
for b in em++ em-config emar embuilder.py emcc emcmake emconfigure emmake emranlib emrun emscons emsize; do
makeWrapper $appdir/$b $out/bin/$b \

View File

@ -1,4 +1,4 @@
if [ -e .attrs.sh ]; then source .attrs.sh; fi
if [ -e "$NIX_ATTRS_SH_FILE" ]; then . "$NIX_ATTRS_SH_FILE"; elif [ -f .attrs.sh ]; then . .attrs.sh; fi
source $stdenv/setup
pkgdir=$(pwd)/pkg

View File

@ -1,4 +1,4 @@
if [ -e .attrs.sh ]; then source .attrs.sh; fi
if [ -e "$NIX_ATTRS_SH_FILE" ]; then . "$NIX_ATTRS_SH_FILE"; elif [ -f .attrs.sh ]; then . .attrs.sh; fi
source $stdenv/setup
tar xf $src

View File

@ -0,0 +1,85 @@
From b10785c1be469319a09b10bc69db21159b0599ee Mon Sep 17 00:00:00 2001
From: Sergei Trofimovich <siarheit@google.com>
Date: Fri, 22 Sep 2023 22:41:49 +0100
Subject: [PATCH] gcc/file-prefix-map.cc: always mangle __FILE__ into invalid
store path
Without the change `__FILE__` used in static inline functions in headers
embed paths to header files into executable images. For local headers
it's not a problem, but for headers in `/nix/store` this causes `-dev`
inputs to be retained in runtime closure.
Typical examples are `nix` -> `nlohmann_json` and `pipewire` ->
`lttng-ust.dev`.
Ideally we would like to use `-fmacro-prefix-map=` feature of `gcc` as:
-fmacro-prefix-map=/nix/store/$hash1-nlohmann-json-ver=/nix/store/eeee.eee-nlohmann-json-ver
-fmacro-prefix-map=/nix/...
In practice it quickly exhausts argument lengtth limit due to `gcc`
deficiency: https://gcc.gnu.org/PR111527
Until it;s fixed let's hardcode header mangling if $NIX_STORE variable
is present in the environment.
Tested as:
$ printf "# 0 \"/nix/store/01234567890123456789012345678901-pppppp-vvvvvvv\" \nconst char * f(void) { return __FILE__; }" | NIX_STORE=/nix/store ./gcc/xgcc -Bgcc -x c - -S -o -
...
.string "/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-pppppp-vvvvvvv"
...
Mangled successfully.
--- a/gcc/file-prefix-map.cc
+++ b/gcc/file-prefix-map.cc
@@ -60,6 +60,9 @@ add_prefix_map (file_prefix_map *&maps, const char *arg, const char *opt)
maps = map;
}
+/* Forward declaration for a $NIX_STORE remap hack below. */
+static file_prefix_map *macro_prefix_maps; /* -fmacro-prefix-map */
+
/* Perform user-specified mapping of filename prefixes. Return the
GC-allocated new name corresponding to FILENAME or FILENAME if no
remapping was performed. */
@@ -76,7 +79,30 @@ remap_filename (file_prefix_map *maps, const char *filename)
if (filename_ncmp (filename, map->old_prefix, map->old_len) == 0)
break;
if (!map)
- return filename;
+ {
+ if (maps == macro_prefix_maps)
+ {
+ /* Remap all fo $NIX_STORE/.{32} paths to
+ * equivalent $NIX_STORE/e{32}.
+ *
+ * That way we avoid argument parameters explosion
+ * and still avoid embedding headers into runtime closure:
+ * https://gcc.gnu.org/PR111527
+ */
+ char * nix_store = getenv("NIX_STORE");
+ size_t nix_store_len = nix_store ? strlen(nix_store) : 0;
+ const char * name = filename;
+ size_t name_len = strlen(name);
+ if (nix_store && name_len >= nix_store_len + 1 + 32 && memcmp(name, nix_store, nix_store_len) == 0)
+ {
+ s = (char *) ggc_alloc_atomic (name_len + 1);
+ memcpy(s, name, name_len + 1);
+ memset(s + nix_store_len + 1, 'e', 32);
+ return s;
+ }
+ }
+ return filename;
+ }
name = filename + map->old_len;
name_len = strlen (name) + 1;
@@ -90,7 +116,6 @@ remap_filename (file_prefix_map *maps, const char *filename)
ignore it in DW_AT_producer (dwarf2out.cc). */
/* Linked lists of file_prefix_map structures. */
-static file_prefix_map *macro_prefix_maps; /* -fmacro-prefix-map */
static file_prefix_map *debug_prefix_maps; /* -fdebug-prefix-map */
static file_prefix_map *profile_prefix_maps; /* -fprofile-prefix-map */

View File

@ -0,0 +1,84 @@
From b10785c1be469319a09b10bc69db21159b0599ee Mon Sep 17 00:00:00 2001
From: Sergei Trofimovich <siarheit@google.com>
Date: Fri, 22 Sep 2023 22:41:49 +0100
Subject: [PATCH] gcc/file-prefix-map.cc: always mangle __FILE__ into invalid
store path
Without the change `__FILE__` used in static inline functions in headers
embed paths to header files into executable images. For local headers
it's not a problem, but for headers in `/nix/store` this causes `-dev`
inputs to be retained in runtime closure.
Typical examples are `nix` -> `nlohmann_json` and `pipewire` ->
`lttng-ust.dev`.
Ideally we would like to use `-fmacro-prefix-map=` feature of `gcc` as:
-fmacro-prefix-map=/nix/store/$hash1-nlohmann-json-ver=/nix/store/eeee.eee-nlohmann-json-ver
-fmacro-prefix-map=/nix/...
In practice it quickly exhausts argument lengtth limit due to `gcc`
deficiency: https://gcc.gnu.org/PR111527
Until it;s fixed let's hardcode header mangling if $NIX_STORE variable
is present in the environment.
Tested as:
$ printf "# 0 \"/nix/store/01234567890123456789012345678901-pppppp-vvvvvvv\" \nconst char * f(void) { return __FILE__; }" | NIX_STORE=/nix/store ./gcc/xgcc -Bgcc -x c - -S -o -
...
.string "/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-pppppp-vvvvvvv"
...
Mangled successfully.
--- a/gcc/file-prefix-map.cc
+++ b/gcc/file-prefix-map.cc
@@ -69,6 +69,9 @@ add_prefix_map (file_prefix_map *&maps, const char *arg, const char *opt)
maps = map;
}
+/* Forward declaration for a $NIX_STORE remap hack below. */
+static file_prefix_map *macro_prefix_maps; /* -fmacro-prefix-map */
+
/* Perform user-specified mapping of filename prefixes. Return the
GC-allocated new name corresponding to FILENAME or FILENAME if no
remapping was performed. */
@@ -102,6 +105,29 @@ remap_filename (file_prefix_map *maps, const char *filename)
break;
if (!map)
{
+ if (maps == macro_prefix_maps)
+ {
+ /* Remap all fo $NIX_STORE/.{32} paths to
+ * equivalent $NIX_STORE/e{32}.
+ *
+ * That way we avoid argument parameters explosion
+ * and still avoid embedding headers into runtime closure:
+ * https://gcc.gnu.org/PR111527
+ */
+ char * nix_store = getenv("NIX_STORE");
+ size_t nix_store_len = nix_store ? strlen(nix_store) : 0;
+ const char * name = realname ? realname : filename;
+ size_t name_len = strlen(name);
+ if (nix_store && name_len >= nix_store_len + 1 + 32 && memcmp(name, nix_store, nix_store_len) == 0)
+ {
+ s = (char *) ggc_alloc_atomic (name_len + 1);
+ memcpy(s, name, name_len + 1);
+ memset(s + nix_store_len + 1, 'e', 32);
+ if (realname != filename)
+ free (const_cast <char *> (realname));
+ return s;
+ }
+ }
if (realname != filename)
free (const_cast <char *> (realname));
return filename;
@@ -124,7 +150,6 @@ remap_filename (file_prefix_map *maps, const char *filename)
ignore it in DW_AT_producer (gen_command_line_string in opts.cc). */
/* Linked lists of file_prefix_map structures. */
-static file_prefix_map *macro_prefix_maps; /* -fmacro-prefix-map */
static file_prefix_map *debug_prefix_maps; /* -fdebug-prefix-map */
static file_prefix_map *profile_prefix_maps; /* -fprofile-prefix-map */

View File

@ -63,8 +63,8 @@ in
++ optionals (noSysDirs) (
[(if atLeast12 then ./gcc-12-no-sys-dirs.patch else ./no-sys-dirs.patch)] ++
({
"13" = [ ./13/no-sys-dirs-riscv.patch ];
"12" = [ ./no-sys-dirs-riscv.patch ];
"13" = [ ./13/no-sys-dirs-riscv.patch ./13/mangle-NIX_STORE-in-__FILE__.patch ];
"12" = [ ./no-sys-dirs-riscv.patch ./12/mangle-NIX_STORE-in-__FILE__.patch ];
"11" = [ ./no-sys-dirs-riscv.patch ];
"10" = [ ./no-sys-dirs-riscv.patch ];
"9" = [ ./no-sys-dirs-riscv-gcc9.patch ];

View File

@ -9,13 +9,13 @@
}:
stdenv.mkDerivation rec {
pname = "glslang";
version = "12.3.1";
version = "13.1.1";
src = fetchFromGitHub {
owner = "KhronosGroup";
repo = "glslang";
rev = version;
hash = "sha256-NP5ph598YSPbpzJJUR2r+EkqFmuItxgvOSDgDaN+Swg=";
hash = "sha256-fuzNsVYdnThMzd4tLN/sTbCBXg6qXKLDJRziOKyOBGg=";
};
# These get set at all-packages, keep onto them for child drvs

View File

@ -1,5 +1,5 @@
# -*- shell-script -*-
if [ -e .attrs.sh ]; then source .attrs.sh; fi
if [ -e "$NIX_ATTRS_SH_FILE" ]; then . "$NIX_ATTRS_SH_FILE"; elif [ -f .attrs.sh ]; then . .attrs.sh; fi
source $stdenv/setup
function extract

View File

@ -0,0 +1,190 @@
From 93adcb770b99351b18553089c164fe3ef2119699 Mon Sep 17 00:00:00 2001
From: Sam Clegg <sbc@chromium.org>
Date: Fri, 25 Aug 2023 13:56:16 -0700
Subject: [PATCH] [lld][WebAssembly] Add `--table-base` setting
This is similar to `--global-base` but determines where to place the
table segments rather than that data segments.
See https://github.com/emscripten-core/emscripten/issues/20097
Differential Revision: https://reviews.llvm.org/D158892
---
test/wasm/table-base.s | 72 ++++++++++++++++++++++++++++++++++++++
wasm/Driver.cpp | 19 ++++++++--
wasm/Options.td | 5 ++-
wasm/Writer.cpp | 8 -----
4 files changed, 93 insertions(+), 11 deletions(-)
create mode 100644 test/wasm/table-base.s
diff --git a/test/wasm/table-base.s b/test/wasm/table-base.s
new file mode 100644
index 000000000000000..56fff414fd31d96
--- /dev/null
+++ b/test/wasm/table-base.s
@@ -0,0 +1,72 @@
+# RUN: llvm-mc -filetype=obj -triple=wasm32-unknown-unknown %s -o %t.o
+
+# RUN: wasm-ld --export=__table_base -o %t.wasm %t.o
+# RUN: obj2yaml %t.wasm | FileCheck %s -check-prefix=CHECK-DEFAULT
+
+# RUN: wasm-ld --table-base=100 --export=__table_base -o %t.wasm %t.o
+# RUN: obj2yaml %t.wasm | FileCheck %s -check-prefix=CHECK-100
+
+.globl _start
+_start:
+ .functype _start () -> ()
+ i32.const _start
+ drop
+ end_function
+
+# CHECK-DEFAULT: - Type: TABLE
+# CHECK-DEFAULT-NEXT: Tables:
+# CHECK-DEFAULT-NEXT: - Index: 0
+# CHECK-DEFAULT-NEXT: ElemType: FUNCREF
+# CHECK-DEFAULT-NEXT: Limits:
+# CHECK-DEFAULT-NEXT: Flags: [ HAS_MAX ]
+# CHECK-DEFAULT-NEXT: Minimum: 0x2
+# CHECK-DEFAULT-NEXT: Maximum: 0x2
+
+# CHECK-DEFAULT: - Type: GLOBAL
+# CHECK-DEFAULT-NEXT: Globals:
+# CHECK-DEFAULT-NEXT: - Index: 0
+# CHECK-DEFAULT-NEXT: Type: I32
+# CHECK-DEFAULT-NEXT: Mutable: true
+# CHECK-DEFAULT-NEXT: InitExpr:
+# CHECK-DEFAULT-NEXT: Opcode: I32_CONST
+# CHECK-DEFAULT-NEXT: Value: 66560
+# CHECK-DEFAULT-NEXT: - Index: 1
+# CHECK-DEFAULT-NEXT: Type: I32
+# CHECK-DEFAULT-NEXT: Mutable: false
+# CHECK-DEFAULT-NEXT: InitExpr:
+# CHECK-DEFAULT-NEXT: Opcode: I32_CONST
+# CHECK-DEFAULT-NEXT: Value: 1
+
+# CHECK-DEFAULT: - Type: EXPORT
+# CHECK-DEFAULT: - Name: __table_base
+# CHECK-DEFAULT-NEXT: Kind: GLOBAL
+# CHECK-DEFAULT-NEXT: Index: 1
+
+# CHECK-100: - Type: TABLE
+# CHECK-100-NEXT: Tables:
+# CHECK-100-NEXT: - Index: 0
+# CHECK-100-NEXT: ElemType: FUNCREF
+# CHECK-100-NEXT: Limits:
+# CHECK-100-NEXT: Flags: [ HAS_MAX ]
+# CHECK-100-NEXT: Minimum: 0x65
+# CHECK-100-NEXT: Maximum: 0x65
+
+# CHECK-100: - Type: GLOBAL
+# CHECK-100-NEXT: Globals:
+# CHECK-100-NEXT: - Index: 0
+# CHECK-100-NEXT: Type: I32
+# CHECK-100-NEXT: Mutable: true
+# CHECK-100-NEXT: InitExpr:
+# CHECK-100-NEXT: Opcode: I32_CONST
+# CHECK-100-NEXT: Value: 66560
+# CHECK-100-NEXT: - Index: 1
+# CHECK-100-NEXT: Type: I32
+# CHECK-100-NEXT: Mutable: false
+# CHECK-100-NEXT: InitExpr:
+# CHECK-100-NEXT: Opcode: I32_CONST
+# CHECK-100-NEXT: Value: 100
+
+# CHECK-100: - Type: EXPORT
+# CHECK-100: - Name: __table_base
+# CHECK-100-NEXT: Kind: GLOBAL
+# CHECK-100-NEXT: Index: 1
diff --git a/wasm/Driver.cpp b/wasm/Driver.cpp
index 84304881f5ca34e..c2f5f0185781f36 100644
--- a/wasm/Driver.cpp
+++ b/wasm/Driver.cpp
@@ -502,6 +502,7 @@ static void readConfigs(opt::InputArgList &args) {
config->initialMemory = args::getInteger(args, OPT_initial_memory, 0);
config->globalBase = args::getInteger(args, OPT_global_base, 0);
+ config->tableBase = args::getInteger(args, OPT_table_base, 0);
config->maxMemory = args::getInteger(args, OPT_max_memory, 0);
config->zStackSize =
args::getZOptionValue(args, OPT_z, "stack-size", WasmPageSize);
@@ -573,6 +574,17 @@ static void setConfigs() {
if (config->exportTable)
error("-shared/-pie is incompatible with --export-table");
config->importTable = true;
+ } else {
+ // Default table base. Defaults to 1, reserving 0 for the NULL function
+ // pointer.
+ if (!config->tableBase)
+ config->tableBase = 1;
+ // The default offset for static/global data, for when --global-base is
+ // not specified on the command line. The precise value of 1024 is
+ // somewhat arbitrary, and pre-dates wasm-ld (Its the value that
+ // emscripten used prior to wasm-ld).
+ if (!config->globalBase && !config->relocatable && !config->stackFirst)
+ config->globalBase = 1024;
}
if (config->relocatable) {
@@ -666,8 +678,11 @@ static void checkOptions(opt::InputArgList &args) {
warn("-Bsymbolic is only meaningful when combined with -shared");
}
- if (config->globalBase && config->isPic) {
- error("--global-base may not be used with -shared/-pie");
+ if (config->isPic) {
+ if (config->globalBase)
+ error("--global-base may not be used with -shared/-pie");
+ if (config->tableBase)
+ error("--table-base may not be used with -shared/-pie");
}
}
diff --git a/wasm/Options.td b/wasm/Options.td
index 50417d2928e0a34..bb764396bf4df14 100644
--- a/wasm/Options.td
+++ b/wasm/Options.td
@@ -191,7 +191,7 @@ def growable_table: FF<"growable-table">,
HelpText<"Remove maximum size from function table, allowing table to grow">;
def global_base: JJ<"global-base=">,
- HelpText<"Where to start to place global data">;
+ HelpText<"Memory offset at which to place global data (Defaults to 1024)">;
def import_memory: FF<"import-memory">,
HelpText<"Import the module's memory from the default module of \"env\" with the name \"memory\".">;
@@ -224,6 +224,9 @@ def no_entry: FF<"no-entry">,
def stack_first: FF<"stack-first">,
HelpText<"Place stack at start of linear memory rather than after data">;
+def table_base: JJ<"table-base=">,
+ HelpText<"Table offset at which to place address taken functions (Defaults to 1)">;
+
defm whole_archive: B<"whole-archive",
"Force load of all members in a static library",
"Do not force load of all members in a static library (default)">;
diff --git a/wasm/Writer.cpp b/wasm/Writer.cpp
index f25d358dc5bae6f..0576bf2907e49c4 100644
--- a/wasm/Writer.cpp
+++ b/wasm/Writer.cpp
@@ -358,13 +358,6 @@ void Writer::layoutMemory() {
memoryPtr = config->globalBase;
}
} else {
- if (!config->globalBase && !config->relocatable && !config->isPic) {
- // The default offset for static/global data, for when --global-base is
- // not specified on the command line. The precise value of 1024 is
- // somewhat arbitrary, and pre-dates wasm-ld (Its the value that
- // emscripten used prior to wasm-ld).
- config->globalBase = 1024;
- }
memoryPtr = config->globalBase;
}
@@ -1685,7 +1678,6 @@ void Writer::run() {
// For PIC code the table base is assigned dynamically by the loader.
// For non-PIC, we start at 1 so that accessing table index 0 always traps.
if (!config->isPic) {
- config->tableBase = 1;
if (WasmSym::definedTableBase)
WasmSym::definedTableBase->setVA(config->tableBase);
if (WasmSym::definedTableBase32)

View File

@ -26,6 +26,7 @@ stdenv.mkDerivation rec {
patches = [
./gnu-install-dirs.patch
./add-table-base.patch
];
nativeBuildInputs = [ cmake ninja ];

View File

@ -1,4 +1,4 @@
if [ -e .attrs.sh ]; then source .attrs.sh; fi
if [ -e "$NIX_ATTRS_SH_FILE" ]; then . "$NIX_ATTRS_SH_FILE"; elif [ -f .attrs.sh ]; then . .attrs.sh; fi
source $stdenv/setup
configureFlags="-prefix $out $configureFlags"

View File

@ -20,8 +20,8 @@
} @ args:
import ./default.nix {
rustcVersion = "1.72.1";
rustcSha256 = "sha256-f0iEX2pSzbtdY/sFKP1fUg60QydbVfmOMoFZ+GVo+JU=";
rustcVersion = "1.73.0";
rustcSha256 = "sha256-ltYubR8tId96yKyzuYgkEfnnxwNhc/fy7enh8faxuzo=";
llvmSharedForBuild = pkgsBuildBuild.llvmPackages_16.libllvm.override { enableSharedLibraries = true; };
llvmSharedForHost = pkgsBuildHost.llvmPackages_16.libllvm.override { enableSharedLibraries = true; };
@ -35,25 +35,24 @@ import ./default.nix {
# Note: the version MUST be one version prior to the version we're
# building
bootstrapVersion = "1.71.1";
bootstrapVersion = "1.72.1";
# fetch hashes by running `print-hashes.sh ${bootstrapVersion}`
bootstrapHashes = {
i686-unknown-linux-gnu = "ea544e213cdf65194d9650df9d521dd2ed63251e2abe89c8123e336dfe580b21";
x86_64-unknown-linux-gnu = "34778d1cda674990dfc0537bc600066046ae9cb5d65a07809f7e7da31d4689c4";
x86_64-unknown-linux-musl = "67acc1744293e52f4b49231f3c503e8ad187c477e7b567e27925ec792d946a01";
arm-unknown-linux-gnueabihf = "4c88b32849132504fce5b93bebf06dd0fa17988340c7fe97afa661e038dfa258";
armv7-unknown-linux-gnueabihf = "8f8556dbd8b0350364c7dc8fda57549934bf3c26c65498dda5842087f5c90d60";
aarch64-unknown-linux-gnu = "c7cf230c740a62ea1ca6a4304d955c286aea44e3c6fc960b986a8c2eeea4ec3f";
aarch64-unknown-linux-musl = "da87f4ca2534886f1006b2e8abb0dda8db231ce82cc67b4857233ad48a21c87c";
x86_64-apple-darwin = "916056603da88336aba68bbeab49711cc8fdb9cfb46a49b04850c0c09761f58c";
aarch64-apple-darwin = "f4061b65b31ac75b9b5384c1f518e555f3da23f93bcf64dce252461ee65e9351";
powerpc64le-unknown-linux-gnu = "bac57066882366e4628d1ed2bbe4ab19c0b373aaf45582c2da9f639f2f6ea537";
riscv64gc-unknown-linux-gnu = "fcb67647b764669f3b4e61235fbdc0eca287229adf9aed8c41ce20ffaad4a3ea";
mips64el-unknown-linux-gnuabi64 = "6523efea9cd48c0375bd621460d890c65457a5534fafb2d8b69a37ee1e2a39ed";
i686-unknown-linux-gnu = "a2a849a701dfd6643aaaa27e1ed5ac56aea00f7dee26c00d81c520808efd8911";
x86_64-unknown-linux-gnu = "4fbd8df2000cf73c632d67a219a7fc153537ceffa2e6474491e3db71fdd5a410";
x86_64-unknown-linux-musl = "94eddc044868a944a887d0b0375e393cb3acc6ebc034e3eac2ef2890ec7c0eac";
arm-unknown-linux-gnueabihf = "a4d90538882181722d3e7cb8d7f021770e29e6b6d28375452e31a98049600110";
armv7-unknown-linux-gnueabihf = "4c8e6b3c705a84d17894d3a1cfe744fb6083dd57c61868e67aac8b8512640ecb";
aarch64-unknown-linux-gnu = "190d0473cbe619f163d33a6c4e2ef982abdd4178f73abc3194631cd2d5c8ed8b";
aarch64-unknown-linux-musl = "c83778d1a95f6604bc3610a9070e8a8435c60a8bca5117aad71ffab36dea020f";
x86_64-apple-darwin = "d01e7e9a7482f88a51b4fd888f06234274b49f51b5476c2d14fd46fd6e99ba9e";
aarch64-apple-darwin = "42b0aaf269b6d9c60db13a64a920336d6064ab11d0c7043c9deeb9d4f67b3983";
powerpc64le-unknown-linux-gnu = "9310df247efc072f2ca27354a875c4989cf3c29c9e545255a7472895d830163c";
riscv64gc-unknown-linux-gnu = "1e08cd3ecd29d5bf247e3f7f4bc97318b439f0443dd9c99c36edcfa717d55101";
};
selectRustPackage = pkgs: pkgs.rust_1_72;
selectRustPackage = pkgs: pkgs.rust_1_73;
rustcPatches = [ ];
}

View File

@ -19,7 +19,6 @@ PLATFORMS=(
aarch64-apple-darwin
powerpc64le-unknown-linux-gnu
riscv64gc-unknown-linux-gnu
mips64el-unknown-linux-gnuabi64
)
BASEURL=https://static.rust-lang.org/dist
VERSION=${1:-}

View File

@ -66,15 +66,18 @@ in stdenv.mkDerivation rec {
# We need rust to build rust. If we don't provide it, configure will try to download it.
# Reference: https://github.com/rust-lang/rust/blob/master/src/bootstrap/configure.py
configureFlags = let
prefixForStdenv = stdenv: "${stdenv.cc}/bin/${stdenv.cc.targetPrefix}";
ccPrefixForStdenv = stdenv: "${prefixForStdenv stdenv}${if (stdenv.cc.isClang or false) then "clang" else "cc"}";
cxxPrefixForStdenv = stdenv: "${prefixForStdenv stdenv}${if (stdenv.cc.isClang or false) then "clang++" else "c++"}";
setBuild = "--set=target.${rust.toRustTarget stdenv.buildPlatform}";
setHost = "--set=target.${rust.toRustTarget stdenv.hostPlatform}";
setTarget = "--set=target.${rust.toRustTarget stdenv.targetPlatform}";
ccForBuild = "${pkgsBuildBuild.targetPackages.stdenv.cc}/bin/${pkgsBuildBuild.targetPackages.stdenv.cc.targetPrefix}cc";
cxxForBuild = "${pkgsBuildBuild.targetPackages.stdenv.cc}/bin/${pkgsBuildBuild.targetPackages.stdenv.cc.targetPrefix}c++";
ccForHost = "${pkgsBuildHost.targetPackages.stdenv.cc}/bin/${pkgsBuildHost.targetPackages.stdenv.cc.targetPrefix}cc";
cxxForHost = "${pkgsBuildHost.targetPackages.stdenv.cc}/bin/${pkgsBuildHost.targetPackages.stdenv.cc.targetPrefix}c++";
ccForTarget = "${pkgsBuildTarget.targetPackages.stdenv.cc}/bin/${pkgsBuildTarget.targetPackages.stdenv.cc.targetPrefix}cc";
cxxForTarget = "${pkgsBuildTarget.targetPackages.stdenv.cc}/bin/${pkgsBuildTarget.targetPackages.stdenv.cc.targetPrefix}c++";
ccForBuild = ccPrefixForStdenv pkgsBuildBuild.targetPackages.stdenv;
cxxForBuild = cxxPrefixForStdenv pkgsBuildBuild.targetPackages.stdenv;
ccForHost = ccPrefixForStdenv pkgsBuildHost.targetPackages.stdenv;
cxxForHost = cxxPrefixForStdenv pkgsBuildHost.targetPackages.stdenv;
ccForTarget = ccPrefixForStdenv pkgsBuildTarget.targetPackages.stdenv;
cxxForTarget = cxxPrefixForStdenv pkgsBuildTarget.targetPackages.stdenv;
in [
"--release-channel=stable"
"--set=build.rustc=${rustc}/bin/rustc"
@ -272,9 +275,8 @@ in stdenv.mkDerivation rec {
"i686-freebsd13" "x86_64-freebsd13"
"x86_64-solaris"
"aarch64-linux" "armv6l-linux" "armv7l-linux" "i686-linux"
"loongarch64-linux" "mipsel-linux" "mips64el-linux"
"powerpc64-linux" "powerpc64le-linux" "riscv64-linux"
"s390x-linux" "x86_64-linux"
"loongarch64-linux" "powerpc64-linux" "powerpc64le-linux"
"riscv64-linux" "s390x-linux" "x86_64-linux"
"aarch64-netbsd" "armv7l-netbsd" "i686-netbsd" "powerpc-netbsd"
"x86_64-netbsd"
"i686-openbsd" "x86_64-openbsd"

View File

@ -1,8 +1,8 @@
{ lib, stdenv, fetchFromGitHub, fetchurl, fetchzip
, autoconf, automake, autoreconfHook, clang, dos2unix, file, perl
, pkg-config
, alsa-lib, coreutils, freetype, glib, glibc, gnugrep, libpulseaudio, libtool
, libuuid, openssl, pango, xorg
, alsa-lib, coreutils, freetype, glib, glibc, gnugrep, libGL, libpulseaudio
, libtool, libuuid, openssl, pango, xorg
, squeakImageHash ? null, squeakSourcesHash ? null, squeakSourcesVersion ? null
, squeakVersion ? null, squeakVmCommitHash ? null, squeakVmCommitHashHash ? null
, squeakVmVersion ? null
@ -88,6 +88,7 @@ in stdenv.mkDerivation {
glib
glibc
gnugrep
libGL
libpulseaudio
libtool
libuuid

View File

@ -245,7 +245,9 @@ self: super: {
# Fix ghc-9.6.x build errors.
libmpd = appendPatch
(pkgs.fetchpatch { url = "https://github.com/vimus/libmpd-haskell/pull/138.patch";
# https://github.com/vimus/libmpd-haskell/pull/138
(pkgs.fetchpatch { url = "https://github.com/vimus/libmpd-haskell/compare/95d3b3bab5858d6d1f0e079d0ab7c2d182336acb...5737096a339edc265a663f51ad9d29baee262694.patch";
name = "vimus-libmpd-haskell-pull-138.patch";
sha256 = "sha256-CvvylXyRmoCoRJP2MzRwL0SBbrEzDGqAjXS+4LsLutQ=";
})
super.libmpd;
@ -255,8 +257,9 @@ self: super: {
editedCabalFile = null;
buildDepends = drv.buildDepends or [] ++ [ self.HUnit ];
patches = [(pkgs.fetchpatch {
# https://github.com/jgoerzen/configfile/pull/12
name = "ConfigFile-pr-12.patch";
url = "https://github.com/jgoerzen/configfile/pull/12.patch";
url = "https://github.com/jgoerzen/configfile/compare/d0a2e654be0b73eadbf2a50661d00574ad7b6f87...83ee30b43f74d2b6781269072cf5ed0f0e00012f.patch";
sha256 = "sha256-b7u9GiIAd2xpOrM0MfILHNb6Nt7070lNRIadn2l3DfQ=";
})];
}) super.ConfigFile;

View File

@ -34,9 +34,9 @@ builder rec {
outputs = [ "out" "dev" "info" ];
setOutputFlags = false; # $dev gets into the library otherwise
depsBuildBuild = if stdenv.buildPlatform.isDarwin
then [ buildPackages.darwin.apple_sdk_11_0.stdenv.cc ]
else [ buildPackages.stdenv.cc ]
depsBuildBuild = [
buildPackages.stdenv.cc
]
++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform)
pkgsBuildBuild.guile_2_2;
nativeBuildInputs = [

View File

@ -36,10 +36,9 @@ builder rec {
outputs = [ "out" "dev" "info" ];
setOutputFlags = false; # $dev gets into the library otherwise
depsBuildBuild = if stdenv.buildPlatform.isDarwin
then [ buildPackages.darwin.apple_sdk_11_0.stdenv.cc ]
else [ buildPackages.stdenv.cc ]
++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform)
depsBuildBuild = [
buildPackages.stdenv.cc
] ++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform)
pkgsBuildBuild.guile_3_0;
nativeBuildInputs = [
makeWrapper

View File

@ -2,13 +2,13 @@
stdenv.mkDerivation {
pname = "nelua";
version = "unstable-2023-01-21";
version = "unstable-2023-09-16";
src = fetchFromGitHub {
owner = "edubart";
repo = "nelua-lang";
rev = "d10cc61bc54050b07874a8597f8df20534885105";
hash = "sha256-HyNYqhPCQVBJqEcAUUXfvycXE8tWIMIUJJMTIV48ne8=";
rev = "596fcca5c77932da8a07c249de59a9dff3099495";
hash = "sha256-gXTlAxW7s3VBiC1fGU0aUlGspHlvyY7FC5KLeU2FyGQ=";
};
makeFlags = [ "PREFIX=$(out)" ];

View File

@ -30,10 +30,10 @@
sourceVersion = {
major = "3";
minor = "11";
patch = "5";
patch = "6";
suffix = "";
};
hash = "sha256-hc0S6c8dbVpF8X96/hzr5+5ijTKCKBxJLoat9jbe+j8=";
hash = "sha256-D6t4+n8TP084IQxiYNkNfA1ccZhEZBnOBX7HrC5vXzg=";
};
};

View File

@ -227,6 +227,9 @@ in {
sphinxHook = callPackage ({ makePythonHook, installShellFiles }:
makePythonHook {
name = "python${python.pythonVersion}-sphinx-hook";
propagatedBuildInputs = [ pythonForBuild.pkgs.sphinx installShellFiles ];
propagatedBuildInputs = [ installShellFiles ];
substitutions = {
sphinxBuild = "${pythonForBuild.pkgs.sphinx}/bin/sphinx-build";
};
} ./sphinx-hook.sh) {};
}

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