Merge master into staging-next

This commit is contained in:
github-actions[bot] 2022-07-07 12:01:23 +00:00 committed by GitHub
commit 312ad6d25c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
26 changed files with 325 additions and 93 deletions

View file

@ -20,7 +20,12 @@ buildImage {
fromImageName = null; fromImageName = null;
fromImageTag = "latest"; fromImageTag = "latest";
contents = pkgs.redis; copyToRoot = pkgs.buildEnv {
name = "image-root";
paths = [ pkgs.redis ];
pathsToLink = [ "/bin" ];
};
runAsRoot = '' runAsRoot = ''
#!${pkgs.runtimeShell} #!${pkgs.runtimeShell}
mkdir -p /data mkdir -p /data
@ -46,7 +51,7 @@ The above example will build a Docker image `redis/latest` from the given base i
- `fromImageTag` can be used to further specify the tag of the base image within the repository, in case an image contains multiple tags. By default it's `null`, in which case `buildImage` will peek the first tag available for the base image. - `fromImageTag` can be used to further specify the tag of the base image within the repository, in case an image contains multiple tags. By default it's `null`, in which case `buildImage` will peek the first tag available for the base image.
- `contents` is a derivation that will be copied in the new layer of the resulting image. This can be similarly seen as `ADD contents/ /` in a `Dockerfile`. By default it's `null`. - `copyToRoot` is a derivation that will be copied in the new layer of the resulting image. This can be similarly seen as `ADD contents/ /` in a `Dockerfile`. By default it's `null`.
- `runAsRoot` is a bash script that will run as root in an environment that overlays the existing layers of the base image with the new resulting layer, including the previously copied `contents` derivation. This can be similarly seen as `RUN ...` in a `Dockerfile`. - `runAsRoot` is a bash script that will run as root in an environment that overlays the existing layers of the base image with the new resulting layer, including the previously copied `contents` derivation. This can be similarly seen as `RUN ...` in a `Dockerfile`.
@ -81,7 +86,11 @@ pkgs.dockerTools.buildImage {
name = "hello"; name = "hello";
tag = "latest"; tag = "latest";
created = "now"; created = "now";
contents = pkgs.hello; copyToRoot = pkgs.buildEnv {
name = "image-root";
paths = [ pkgs.hello ];
pathsToLink = [ "/bin" ];
};
config.Cmd = [ "/bin/hello" ]; config.Cmd = [ "/bin/hello" ];
} }

View file

@ -303,6 +303,15 @@
and require manual remediation. and require manual remediation.
</para> </para>
</listitem> </listitem>
<listitem>
<para>
<literal>dockerTools.buildImage</literal> deprecates the
misunderstood <literal>contents</literal> parameter, in favor
of <literal>copyToRoot</literal>. Use
<literal>copyToRoot = buildEnv { ... };</literal> or similar
if you intend to add packages to <literal>/bin</literal>.
</para>
</listitem>
<listitem> <listitem>
<para> <para>
memtest86+ was updated from 5.00-coreboot-002 to 6.00-beta2. memtest86+ was updated from 5.00-coreboot-002 to 6.00-beta2.

View file

@ -114,6 +114,9 @@ Use `configure.packages` instead.
- Matrix Synapse now requires entries in the `state_group_edges` table to be unique, in order to prevent accidentally introducing duplicate information (for example, because a database backup was restored multiple times). If your Synapse database already has duplicate rows in this table, this could fail with an error and require manual remediation. - Matrix Synapse now requires entries in the `state_group_edges` table to be unique, in order to prevent accidentally introducing duplicate information (for example, because a database backup was restored multiple times). If your Synapse database already has duplicate rows in this table, this could fail with an error and require manual remediation.
- `dockerTools.buildImage` deprecates the misunderstood `contents` parameter, in favor of `copyToRoot`.
Use `copyToRoot = buildEnv { ... };` or similar if you intend to add packages to `/bin`.
- memtest86+ was updated from 5.00-coreboot-002 to 6.00-beta2. It is now the upstream version from https://www.memtest.org/, as coreboot's fork is no longer available. - memtest86+ was updated from 5.00-coreboot-002 to 6.00-beta2. It is now the upstream version from https://www.memtest.org/, as coreboot's fork is no longer available.
- Add udev rules for the Teensy family of microcontrollers. - Add udev rules for the Teensy family of microcontrollers.

View file

@ -24,7 +24,11 @@ let
hello1 = remoteCrossPkgs.dockerTools.buildImage { hello1 = remoteCrossPkgs.dockerTools.buildImage {
name = "hello1"; name = "hello1";
tag = "latest"; tag = "latest";
contents = remoteCrossPkgs.hello; copyToRoot = remoteCrossPkgs.buildEnv {
name = "image-root";
pathsToLink = [ "/bin" ];
paths = [ remoteCrossPkgs.hello ];
};
}; };
hello2 = remoteCrossPkgs.dockerTools.buildLayeredImage { hello2 = remoteCrossPkgs.dockerTools.buildLayeredImage {

View file

@ -2,13 +2,13 @@
python3Packages.buildPythonApplication rec { python3Packages.buildPythonApplication rec {
pname = "pyradio"; pname = "pyradio";
version = "0.8.9.21"; version = "0.8.9.22";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "coderholic"; owner = "coderholic";
repo = pname; repo = pname;
rev = "refs/tags/${version}"; rev = "refs/tags/${version}";
sha256 = "sha256-uaQG840R4twPkE3GYLpcF0MHVH5JaLn5CSAd1DrNOvQ="; sha256 = "sha256-QBgXg2SNEQX1ngY+cEWqStC0zsFZ0Er81tuhTszbHWM=";
}; };
nativeBuildInputs = [ installShellFiles ]; nativeBuildInputs = [ installShellFiles ];

View file

@ -2,11 +2,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "logseq"; pname = "logseq";
version = "0.7.5"; version = "0.7.6";
src = fetchurl { src = fetchurl {
url = "https://github.com/logseq/logseq/releases/download/${version}/logseq-linux-x64-${version}.AppImage"; url = "https://github.com/logseq/logseq/releases/download/${version}/logseq-linux-x64-${version}.AppImage";
sha256 = "sha256-uMlvpEEzanJ3zTEZKNE2zEfqvGC4IWL97b0AkTfwZeU="; sha256 = "sha256-3YCO0pQT5vUkscQEE4+XrfEkQJro8DpQ5xDLglfqJjI=";
name = "${pname}-${version}.AppImage"; name = "${pname}-${version}.AppImage";
}; };

View file

@ -6,18 +6,18 @@
buildGoModule rec { buildGoModule rec {
pname = "arkade"; pname = "arkade";
version = "0.8.28"; version = "0.8.29";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "alexellis"; owner = "alexellis";
repo = "arkade"; repo = "arkade";
rev = version; rev = version;
sha256 = "sha256-Tw/FxrmBpC+FDvfvDT1xQtcQwlxUpQHDMzTs3TrugYg="; sha256 = "sha256-VCscevLGRpBgqxhRNcvIkCdroE0MawG1fROVOLjZLW0=";
}; };
CGO_ENABLED = 0; CGO_ENABLED = 0;
vendorSha256 = "sha256-E+fjDW7UIAYDiDI8Eb8atAtccEIRcV5hqYdSxRYM9fc="; vendorSha256 = "sha256-CoIlqDMmhZY+B5SEabmnbP2QUu1jkFluCzLp3Y8Z7n0=";
# Exclude pkg/get: tests downloading of binaries which fail when sandbox=true # Exclude pkg/get: tests downloading of binaries which fail when sandbox=true
subPackages = [ subPackages = [

View file

@ -2,13 +2,13 @@
buildGoModule rec { buildGoModule rec {
pname = "cmctl"; pname = "cmctl";
version = "1.8.1"; version = "1.8.2";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "cert-manager"; owner = "cert-manager";
repo = "cert-manager"; repo = "cert-manager";
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-IR+z3+f9Pa7wQAP4EVya7fb7FnndaUY7F2ckTzpEuCA="; sha256 = "sha256-sfC1acnCrcQ4A1tXXcjh47Af6xeJqjdGXy0gK21ZSFg=";
}; };
vendorSha256 = "sha256-UYw9WdQ6VwzuuiOsa1yovkLZG7NmLYSW51p8UhmQMeI="; vendorSha256 = "sha256-UYw9WdQ6VwzuuiOsa1yovkLZG7NmLYSW51p8UhmQMeI=";

View file

@ -22,7 +22,7 @@ python3Packages.buildPythonApplication rec {
# Tests appear to be broken with import errors within the project structure # Tests appear to be broken with import errors within the project structure
doCheck = false; doCheck = false;
nativeBuildInputs = [ wrapGAppsHook ]; nativeBuildInputs = [ wrapGAppsHook gobject-introspection ];
buildInputs = [ buildInputs = [
gobject-introspection gobject-introspection
@ -38,19 +38,9 @@ python3Packages.buildPythonApplication rec {
pygobject3 pygobject3
]; ];
dontWrapGapps = true;
pythonPath = with python3Packages; requiredPythonModules [ dbus-python xlib pygobject3 ];
postInstall = '' postInstall = ''
rm $out/bin/autokey-qt # remove Qt version which we currently do not support
buildPythonPath "$out $pythonPath" rm $out/bin/autokey-qt $out/share/applications/autokey-qt.desktop
makeWrapperArgs+=(
"''${gappsWrapperArgs[@]}"
# for autokey-shell ModuleNotFoundError: No module named 'autokey'
--prefix "PYTHONPATH" ":" "$out/lib/${python3Packages.python.libPrefix}/site-packages"
--prefix "PYTHONPATH" ":" "$program_PYTHONPATH"
)
''; '';
meta = { meta = {

View file

@ -0,0 +1,40 @@
From 69a6ab80cf0908c2a44430c297932ef3659a1655 Mon Sep 17 00:00:00 2001
From: Jiajie Chen <c@jia.je>
Date: Wed, 22 Jun 2022 16:24:10 +0800
Subject: [PATCH 1/2] Fix detection of quartz in gdk-3.0 target
The GTK+3 built by Nix targets ``broadway quartz`` instead of only `quartz`,
thus the target check is wrong. The script is modified to look up `quartz` in a
loop. The variable name is renamed to `targets` in `gdk-3.0.pc` as well.
---
configure | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/configure b/configure
index 628a80f..9cb88d5 100755
--- a/configure
+++ b/configure
@@ -7361,7 +7361,10 @@ $as_echo "yes" >&6; }
fi
GTK_VER=`$PKG_CONFIG gtk+-3.0 --modversion`
- _gdk_tgt=`$PKG_CONFIG --variable=target gdk-3.0`
+ # gdk-3.0 may have multiple targets e.g. "broadway quartz"
+ _gdk_tgts=`$PKG_CONFIG --variable=targets gdk-3.0`
+ for _gdk_tgt in $_gdk_tgts;
+ do
if test "x$_gdk_tgt" = xquartz; then
pkg_failed=no
@@ -7466,6 +7469,7 @@ fi
COCOA_GTK_LDFLAGS="-framework Cocoa -framework ApplicationServices"
fi
+ done
if test x$with_gconf = xyes; then
--
2.36.1

View file

@ -0,0 +1,101 @@
From 6045177a0d4753bb7a6a6ffc3f1a4a3e96129c6d Mon Sep 17 00:00:00 2001
From: Jiajie Chen <c@jia.je>
Date: Wed, 22 Jun 2022 17:03:29 +0800
Subject: [PATCH 2/2] Check GDK_WINDOWING_X11 macro when using GtkPlug
---
src/main.c | 5 +++++
src/twinwave.c | 12 ++++++++++--
2 files changed, 15 insertions(+), 2 deletions(-)
diff --git a/src/main.c b/src/main.c
index 81bf505..b89f629 100644
--- a/src/main.c
+++ b/src/main.c
@@ -2080,10 +2080,15 @@ if(!GLOBALS->socket_xid)
#ifdef WAVE_USE_XID
else
{
+#ifdef GDK_WINDOWING_X11
GLOBALS->mainwindow = gtk_plug_new(GLOBALS->socket_xid);
gtk_widget_show(GLOBALS->mainwindow);
g_signal_connect(XXX_GTK_OBJECT(GLOBALS->mainwindow), "destroy", /* formerly was "destroy" */G_CALLBACK(plug_destroy),"Plug destroy");
+#else
+ fprintf(stderr, "GTKWAVE | GtkPlug widget is unavailable\n");
+ exit(1);
+#endif
}
#endif
}
diff --git a/src/twinwave.c b/src/twinwave.c
index 590c7f6..d5c60f2 100644
--- a/src/twinwave.c
+++ b/src/twinwave.c
@@ -143,15 +143,19 @@ if(GDK_IS_WAYLAND_DISPLAY(gdk_display_get_default()))
use_embedded = 0;
}
#endif
+#if defined(__GTK_SOCKET_H__) && defined(GDK_WINDOWING_X11)
{
xsocket[0] = gtk_socket_new ();
xsocket[1] = gtk_socket_new ();
gtk_widget_show (xsocket[0]);
gtk_widget_show (xsocket[1]);
}
+#endif
+#if defined(__GTK_SOCKET_H__) && defined(GDK_WINDOWING_X11)
if(!twinwayland)
g_signal_connect(XXX_GTK_OBJECT(xsocket[0]), "plug-removed", G_CALLBACK(plug_removed), NULL);
+#endif
#if GTK_CHECK_VERSION(3,0,0)
main_vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 5);
@@ -208,7 +212,7 @@ if(hMapFile != NULL)
memset(&pi, 0, sizeof(PROCESS_INFORMATION));
sprintf(buf, "0+%08X", shmid);
-#ifdef MINGW_USE_XID
+#if defined(MINGW_USE_XID) && defined(__GTK_SOCKET_H__) && defined(GDK_WINDOWING_X11)
sprintf(buf2, "%x", gtk_socket_get_id (GTK_SOCKET(xsocket[0])));
#else
sprintf(buf2, "%x", 0);
@@ -279,7 +283,7 @@ if(hMapFile != NULL)
memset(&pi, 0, sizeof(PROCESS_INFORMATION));
sprintf(buf, "1+%08X", shmid);
-#ifdef MINGW_USE_XID
+#if defined(MINGW_USE_XID) && defined(__GTK_SOCKET_H__) && defined(GDK_WINDOWING_X11)
sprintf(buf2, "%x", gtk_socket_get_id (GTK_SOCKET(xsocket[1])));
#else
sprintf(buf2, "%x", 0);
@@ -429,10 +433,12 @@ if(shmid >=0)
sprintf(buf, "0+%08X", shmid);
if(use_embedded)
{
+#if defined(__GTK_SOCKET_H__) && defined(GDK_WINDOWING_X11)
#ifdef MAC_INTEGRATION
sprintf(buf2, "%x", gtk_socket_get_id (GTK_SOCKET(xsocket[0])));
#else
sprintf(buf2, "%lx", (long)gtk_socket_get_id (GTK_SOCKET(xsocket[0])));
+#endif
#endif
}
else
@@ -467,10 +473,12 @@ if(shmid >=0)
sprintf(buf, "1+%08X", shmid);
if(use_embedded)
{
+#if defined(__GTK_SOCKET_H__) && defined(GDK_WINDOWING_X11)
#ifdef MAC_INTEGRATION
sprintf(buf2, "%x", gtk_socket_get_id (GTK_SOCKET(xsocket[1])));
#else
sprintf(buf2, "%lx", (long)gtk_socket_get_id (GTK_SOCKET(xsocket[1])));
+#endif
#endif
}
else
--
2.36.1

View file

@ -3,6 +3,7 @@
, glib , glib
, gperf , gperf
, gtk3 , gtk3
, gtk-mac-integration
, judy , judy
, lib , lib
, pkg-config , pkg-config
@ -23,7 +24,16 @@ stdenv.mkDerivation rec {
}; };
nativeBuildInputs = [ pkg-config wrapGAppsHook ]; nativeBuildInputs = [ pkg-config wrapGAppsHook ];
buildInputs = [ bzip2 glib gperf gtk3 judy tcl tk xz ]; buildInputs = [ bzip2 glib gperf gtk3 judy tcl tk xz ]
++ lib.optional stdenv.isDarwin gtk-mac-integration;
# fix compilation under Darwin
# remove these patches upon next release
# https://github.com/gtkwave/gtkwave/pull/136
patches = [
./0001-Fix-detection-of-quartz-in-gdk-3.0-target.patch
./0002-Check-GDK_WINDOWING_X11-macro-when-using-GtkPlug.patch
];
configureFlags = [ configureFlags = [
"--with-tcl=${tcl}/lib" "--with-tcl=${tcl}/lib"
@ -36,7 +46,7 @@ stdenv.mkDerivation rec {
description = "VCD/Waveform viewer for Unix and Win32"; description = "VCD/Waveform viewer for Unix and Win32";
homepage = "http://gtkwave.sourceforge.net"; homepage = "http://gtkwave.sourceforge.net";
license = lib.licenses.gpl2Plus; license = lib.licenses.gpl2Plus;
maintainers = with lib.maintainers; [ thoughtpolice ]; maintainers = with lib.maintainers; [ thoughtpolice jiegec ];
platforms = lib.platforms.linux; platforms = lib.platforms.linux ++ lib.platforms.darwin;
}; };
} }

View file

@ -332,7 +332,7 @@ rec {
, # JSON containing configuration and metadata for this layer. , # JSON containing configuration and metadata for this layer.
baseJson baseJson
, # Files to add to the layer. , # Files to add to the layer.
contents ? null copyToRoot ? null
, # When copying the contents into the image, preserve symlinks to , # When copying the contents into the image, preserve symlinks to
# directories (see `rsync -K`). Otherwise, transform those symlinks # directories (see `rsync -K`). Otherwise, transform those symlinks
# into directories. # into directories.
@ -344,7 +344,8 @@ rec {
}: }:
runCommand "docker-layer-${name}" runCommand "docker-layer-${name}"
{ {
inherit baseJson contents extraCommands; inherit baseJson extraCommands;
contents = copyToRoot;
nativeBuildInputs = [ jshon rsync tarsum ]; nativeBuildInputs = [ jshon rsync tarsum ];
} }
'' ''
@ -390,7 +391,8 @@ rec {
, # Script to run as root. Bash. , # Script to run as root. Bash.
runAsRoot runAsRoot
, # Files to add to the layer. If null, an empty layer will be created. , # Files to add to the layer. If null, an empty layer will be created.
contents ? null # To add packages to /bin, use `buildEnv` or similar.
copyToRoot ? null
, # When copying the contents into the image, preserve symlinks to , # When copying the contents into the image, preserve symlinks to
# directories (see `rsync -K`). Otherwise, transform those symlinks # directories (see `rsync -K`). Otherwise, transform those symlinks
# into directories. # into directories.
@ -418,9 +420,9 @@ rec {
inherit fromImage fromImageName fromImageTag diskSize; inherit fromImage fromImageName fromImageTag diskSize;
preMount = lib.optionalString (contents != null && contents != [ ]) '' preMount = lib.optionalString (copyToRoot != null && copyToRoot != [ ]) ''
echo "Adding contents..." echo "Adding contents..."
for item in ${escapeShellArgs (map (c: "${c}") (toList contents))}; do for item in ${escapeShellArgs (map (c: "${c}") (toList copyToRoot))}; do
echo "Adding $item..." echo "Adding $item..."
rsync -a${if keepContentsDirlinks then "K" else "k"} --chown=0:0 $item/ layer/ rsync -a${if keepContentsDirlinks then "K" else "k"} --chown=0:0 $item/ layer/
done done
@ -500,7 +502,7 @@ rec {
, # Tag of the parent image; will be read from the image otherwise. , # Tag of the parent image; will be read from the image otherwise.
fromImageTag ? null fromImageTag ? null
, # Files to put on the image (a nix store path or list of paths). , # Files to put on the image (a nix store path or list of paths).
contents ? null copyToRoot ? null
, # When copying the contents into the image, preserve symlinks to , # When copying the contents into the image, preserve symlinks to
# directories (see `rsync -K`). Otherwise, transform those symlinks # directories (see `rsync -K`). Otherwise, transform those symlinks
# into directories. # into directories.
@ -517,10 +519,20 @@ rec {
diskSize ? 1024 diskSize ? 1024
, # Time of creation of the image. , # Time of creation of the image.
created ? "1970-01-01T00:00:01Z" created ? "1970-01-01T00:00:01Z"
, # Deprecated.
contents ? null
, ,
}: }:
let let
checked =
lib.warnIf (contents != null)
"in docker image ${name}: The contents parameter is deprecated. Change to copyToRoot if the contents are designed to be copied to the root filesystem, such as when you use `buildEnv` or similar between contents and your packages. Use copyToRoot = buildEnv { ... }; or similar if you intend to add packages to /bin."
lib.throwIf (contents != null && copyToRoot != null) "in docker image ${name}: You can not specify both contents and copyToRoot."
;
rootContents = if copyToRoot == null then contents else copyToRoot;
baseName = baseNameOf name; baseName = baseNameOf name;
# Create a JSON blob of the configuration. Set the date to unix zero. # Create a JSON blob of the configuration. Set the date to unix zero.
@ -545,13 +557,15 @@ rec {
mkPureLayer mkPureLayer
{ {
name = baseName; name = baseName;
inherit baseJson contents keepContentsDirlinks extraCommands uid gid; inherit baseJson keepContentsDirlinks extraCommands uid gid;
copyToRoot = rootContents;
} else } else
mkRootLayer { mkRootLayer {
name = baseName; name = baseName;
inherit baseJson fromImage fromImageName fromImageTag inherit baseJson fromImage fromImageName fromImageTag
contents keepContentsDirlinks runAsRoot diskSize keepContentsDirlinks runAsRoot diskSize
extraCommands; extraCommands;
copyToRoot = rootContents;
}; };
result = runCommand "docker-image-${baseName}.tar.gz" result = runCommand "docker-image-${baseName}.tar.gz"
{ {
@ -715,7 +729,7 @@ rec {
''; '';
in in
result; checked result;
# Merge the tarballs of images built with buildImage into a single # Merge the tarballs of images built with buildImage into a single
# tarball that contains all images. Running `docker load` on the resulting # tarball that contains all images. Running `docker load` on the resulting
@ -776,12 +790,14 @@ rec {
# contents. The main purpose is to be able to use nix commands in # contents. The main purpose is to be able to use nix commands in
# the container. # the container.
# Be careful since this doesn't work well with multilayer. # Be careful since this doesn't work well with multilayer.
buildImageWithNixDb = args@{ contents ? null, extraCommands ? "", ... }: ( # TODO: add the dependencies of the config json.
buildImageWithNixDb = args@{ copyToRoot ? contents, contents ? null, extraCommands ? "", ... }: (
buildImage (args // { buildImage (args // {
extraCommands = (mkDbExtraCommand contents) + extraCommands; extraCommands = (mkDbExtraCommand copyToRoot) + extraCommands;
}) })
); );
# TODO: add the dependencies of the config json.
buildLayeredImageWithNixDb = args@{ contents ? null, extraCommands ? "", ... }: ( buildLayeredImageWithNixDb = args@{ contents ? null, extraCommands ? "", ... }: (
buildLayeredImage (args // { buildLayeredImage (args // {
extraCommands = (mkDbExtraCommand contents) + extraCommands; extraCommands = (mkDbExtraCommand contents) + extraCommands;

View file

@ -24,7 +24,11 @@ rec {
bash = buildImage { bash = buildImage {
name = "bash"; name = "bash";
tag = "latest"; tag = "latest";
contents = pkgs.bashInteractive; copyToRoot = pkgs.buildEnv {
name = "image-root";
paths = [ pkgs.bashInteractive ];
pathsToLink = [ "/bin" ];
};
}; };
# 2. service example, layered on another image # 2. service example, layered on another image
@ -36,7 +40,12 @@ rec {
fromImage = bash; fromImage = bash;
# fromImage = debian; # fromImage = debian;
contents = pkgs.redis; copyToRoot = pkgs.buildEnv {
name = "image-root";
paths = [ pkgs.redis ];
pathsToLink = [ "/bin" ];
};
runAsRoot = '' runAsRoot = ''
mkdir -p /data mkdir -p /data
''; '';
@ -118,13 +127,17 @@ rec {
# 5. example of multiple contents, emacs and vi happily coexisting # 5. example of multiple contents, emacs and vi happily coexisting
editors = buildImage { editors = buildImage {
name = "editors"; name = "editors";
contents = [ copyToRoot = pkgs.buildEnv {
pkgs.coreutils name = "image-root";
pkgs.bash pathsToLink = [ "/bin" ];
pkgs.emacs paths = [
pkgs.vim pkgs.coreutils
pkgs.nano pkgs.bash
]; pkgs.emacs
pkgs.vim
pkgs.nano
];
};
}; };
# 6. nix example to play with the container nix store # 6. nix example to play with the container nix store
@ -132,13 +145,17 @@ rec {
nix = buildImageWithNixDb { nix = buildImageWithNixDb {
name = "nix"; name = "nix";
tag = "latest"; tag = "latest";
contents = [ copyToRoot = pkgs.buildEnv {
# nix-store uses cat program to display results as specified by name = "image-root";
# the image env variable NIX_PAGER. pathsToLink = [ "/bin" ];
pkgs.coreutils paths = [
pkgs.nix # nix-store uses cat program to display results as specified by
pkgs.bash # the image env variable NIX_PAGER.
]; pkgs.coreutils
pkgs.nix
pkgs.bash
];
};
config = { config = {
Env = [ Env = [
"NIX_PAGER=cat" "NIX_PAGER=cat"
@ -155,7 +172,11 @@ rec {
name = "onTopOfPulledImage"; name = "onTopOfPulledImage";
tag = "latest"; tag = "latest";
fromImage = nixFromDockerHub; fromImage = nixFromDockerHub;
contents = [ pkgs.hello ]; copyToRoot = pkgs.buildEnv {
name = "image-root";
pathsToLink = [ "/bin" ];
paths = [ pkgs.hello ];
};
}; };
# 8. regression test for erroneous use of eval and string expansion. # 8. regression test for erroneous use of eval and string expansion.
@ -163,7 +184,11 @@ rec {
runAsRootExtraCommands = pkgs.dockerTools.buildImage { runAsRootExtraCommands = pkgs.dockerTools.buildImage {
name = "runAsRootExtraCommands"; name = "runAsRootExtraCommands";
tag = "latest"; tag = "latest";
contents = [ pkgs.coreutils ]; copyToRoot = pkgs.buildEnv {
name = "image-root";
pathsToLink = [ "/bin" ];
paths = [ pkgs.coreutils ];
};
# The parens here are to create problematic bash to embed and eval. In case # The parens here are to create problematic bash to embed and eval. In case
# this is *embedded* into the script (with nix expansion) the initial quotes # this is *embedded* into the script (with nix expansion) the initial quotes
# will close the string and the following parens are unexpected # will close the string and the following parens are unexpected
@ -176,7 +201,11 @@ rec {
unstableDate = pkgs.dockerTools.buildImage { unstableDate = pkgs.dockerTools.buildImage {
name = "unstable-date"; name = "unstable-date";
tag = "latest"; tag = "latest";
contents = [ pkgs.coreutils ]; copyToRoot = pkgs.buildEnv {
name = "image-root";
pathsToLink = [ "/bin" ];
paths = [ pkgs.coreutils ];
};
created = "now"; created = "now";
}; };
@ -265,7 +294,11 @@ rec {
name = "l3"; name = "l3";
fromImage = l2; fromImage = l2;
tag = "latest"; tag = "latest";
contents = [ pkgs.coreutils ]; copyToRoot = pkgs.buildEnv {
name = "image-root";
pathsToLink = [ "/bin" ];
paths = [ pkgs.coreutils ];
};
extraCommands = '' extraCommands = ''
mkdir -p tmp mkdir -p tmp
echo layer3 > tmp/layer3 echo layer3 > tmp/layer3
@ -290,7 +323,11 @@ rec {
name = "child"; name = "child";
fromImage = environmentVariablesParent; fromImage = environmentVariablesParent;
tag = "latest"; tag = "latest";
contents = [ pkgs.coreutils ]; copyToRoot = pkgs.buildEnv {
name = "image-root";
pathsToLink = [ "/bin" ];
paths = [ pkgs.coreutils ];
};
config = { config = {
Env = [ Env = [
"FROM_CHILD=true" "FROM_CHILD=true"
@ -424,7 +461,11 @@ rec {
name = "layers-unpack-order-${layerName}"; name = "layers-unpack-order-${layerName}";
tag = "latest"; tag = "latest";
fromImage = parent; fromImage = parent;
contents = [ pkgs.coreutils ]; copyToRoot = pkgs.buildEnv {
name = "image-root";
pathsToLink = [ "/bin" ];
paths = [ pkgs.coreutils ];
};
runAsRoot = '' runAsRoot = ''
#!${pkgs.runtimeShell} #!${pkgs.runtimeShell}
echo -n "${layerName}" >> /layer-order echo -n "${layerName}" >> /layer-order
@ -441,7 +482,8 @@ rec {
# buildImage without explicit tag # buildImage without explicit tag
bashNoTag = pkgs.dockerTools.buildImage { bashNoTag = pkgs.dockerTools.buildImage {
name = "bash-no-tag"; name = "bash-no-tag";
contents = pkgs.bashInteractive; # Not recommended. Use `buildEnv` between copy and packages to avoid file duplication.
copyToRoot = pkgs.bashInteractive;
}; };
# buildLayeredImage without explicit tag # buildLayeredImage without explicit tag
@ -501,7 +543,11 @@ rec {
in crossPkgs.dockerTools.buildImage { in crossPkgs.dockerTools.buildImage {
name = "hello-cross"; name = "hello-cross";
tag = "latest"; tag = "latest";
contents = crossPkgs.hello; copyToRoot = pkgs.buildEnv {
name = "image-root";
pathsToLink = [ "/bin" ];
paths = [ crossPkgs.hello ];
};
}; };
# layered image where a store path is itself a symlink # layered image where a store path is itself a symlink
@ -643,7 +689,8 @@ rec {
build-image-with-path = buildImage { build-image-with-path = buildImage {
name = "build-image-with-path"; name = "build-image-with-path";
tag = "latest"; tag = "latest";
contents = [ pkgs.bashInteractive ./test-dummy ]; # Not recommended. Use `buildEnv` between copy and packages to avoid file duplication.
copyToRoot = [ pkgs.bashInteractive ./test-dummy ];
}; };
layered-image-with-path = pkgs.dockerTools.streamLayeredImage { layered-image-with-path = pkgs.dockerTools.streamLayeredImage {

View file

@ -2,13 +2,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "elementary-xfce-icon-theme"; pname = "elementary-xfce-icon-theme";
version = "0.16"; version = "0.17";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "shimmerproject"; owner = "shimmerproject";
repo = "elementary-xfce"; repo = "elementary-xfce";
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-p6HQhYf+rw3obrc6e5lYqC02i4dK+5eXGwnTJj0+D+k="; sha256 = "sha256-9WdVUCwHFX6wlu3++QqzV0RgTDYDnUYqK7yUl83liko=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View file

@ -2,11 +2,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "caja"; pname = "caja";
version = "1.26.0"; version = "1.26.1";
src = fetchurl { src = fetchurl {
url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "1m0ai2r8b2mvlr8bqj9n6vg1pwzlwa46fqpq206wgyx5sgxac052"; sha256 = "MP1ubwCjggD24uiYrX+nl4drsGDx0DQd0vc5MnnhTAc=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View file

@ -10,7 +10,7 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "aresponses"; pname = "aresponses";
version = "2.1.5"; version = "2.1.6";
format = "setuptools"; format = "setuptools";
disabled = pythonOlder "3.7"; disabled = pythonOlder "3.7";
@ -19,7 +19,7 @@ buildPythonPackage rec {
owner = "CircleUp"; owner = "CircleUp";
repo = pname; repo = pname;
rev = version; rev = version;
sha256 = "sha256-9ZzIrj87TwxQi0YMlTHFPAp0V1oxfuL0+RMGXxUxFoE="; sha256 = "sha256-Ui9ZpWaVBfCbDlZH3EgHX32FIZtyTHnc/UXqtoEyFcw=";
}; };
propagatedBuildInputs = [ propagatedBuildInputs = [

View file

@ -7,13 +7,13 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "cron_descriptor"; pname = "cron_descriptor";
version = "1.2.27"; version = "1.2.30";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "Salamek"; owner = "Salamek";
repo = "cron-descriptor"; repo = "cron-descriptor";
rev = "refs/tags/${version}"; rev = "refs/tags/${version}";
sha256 = "sha256-ycpBbXVUl7mIPx6p4DoVq51T86Im9bkF6LQFSYUL4uk="; sha256 = "sha256-Qei9f0HlIu5sautMEASvxdUqZyXKvHDWJgd3oST1gJo=";
}; };
# remove tests_require, as we don't do linting anyways # remove tests_require, as we don't do linting anyways

View file

@ -1,12 +1,12 @@
{ lib, stdenv, fetchurl, makeWrapper, jre }: { lib, stdenv, fetchurl, makeWrapper, jre }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
version = "10.3"; version = "10.3.1";
pname = "checkstyle"; pname = "checkstyle";
src = fetchurl { src = fetchurl {
url = "https://github.com/checkstyle/checkstyle/releases/download/checkstyle-${version}/checkstyle-${version}-all.jar"; url = "https://github.com/checkstyle/checkstyle/releases/download/checkstyle-${version}/checkstyle-${version}-all.jar";
sha256 = "sha256-3n5gXGHznrLGL9hudk1nZs1GJ5V2qzqVPCtn1fqujB0="; sha256 = "sha256-mHBCZtBvi2DxzzWckvncCXgRCZirzx1OTtx7m6kRNvc=";
}; };
nativeBuildInputs = [ makeWrapper ]; nativeBuildInputs = [ makeWrapper ];

View file

@ -10,7 +10,7 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "bloop"; pname = "bloop";
version = "1.5.0"; version = "1.5.2";
platform = platform =
if stdenv.isLinux && stdenv.isx86_64 then "x86_64-pc-linux" if stdenv.isLinux && stdenv.isx86_64 then "x86_64-pc-linux"
@ -35,8 +35,8 @@ stdenv.mkDerivation rec {
bloop-binary = fetchurl rec { bloop-binary = fetchurl rec {
url = "https://github.com/scalacenter/bloop/releases/download/v${version}/bloop-${platform}"; url = "https://github.com/scalacenter/bloop/releases/download/v${version}/bloop-${platform}";
sha256 = sha256 =
if stdenv.isLinux && stdenv.isx86_64 then "sha256-jif9z05W17vjFgb146qWC3o44HmbnX05gWPlbXttYsE=" if stdenv.isLinux && stdenv.isx86_64 then "0dizvvkr5dw5xb3ggil2c5xi2vfcqyb46kfxnq8whbrq8pis70pi"
else if stdenv.isDarwin && stdenv.isx86_64 then "sha256-YOnXgKXsGrTu9P4I0NZW6ollZVQUXnbW8WtZTJmy+w0=" else if stdenv.isDarwin && stdenv.isx86_64 then "1a3a90ggyhfjq58wiqlxhz4djjp5crxvl822f8gzm3pjara5xpbc"
else throw "unsupported platform"; else throw "unsupported platform";
}; };

View file

@ -14,13 +14,13 @@
buildGoModule rec { buildGoModule rec {
pname = "buildah"; pname = "buildah";
version = "1.26.1"; version = "1.26.2";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "containers"; owner = "containers";
repo = "buildah"; repo = "buildah";
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-RlDvTabpW2DQHJe4wFYBBuNrkfKTYbyudoX26MyvGBQ="; sha256 = "sha256-FQ0fYiQBz+Ba8Xe8PWIYpIKyWOYa+NlTNJqzBC64O6M=";
}; };
outputs = [ "out" "man" ]; outputs = [ "out" "man" ];

View file

@ -16,11 +16,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "cypress"; pname = "cypress";
version = "10.0.3"; version = "10.2.0";
src = fetchzip { src = fetchzip {
url = "https://cdn.cypress.io/desktop/${version}/linux-x64/cypress.zip"; url = "https://cdn.cypress.io/desktop/${version}/linux-x64/cypress.zip";
sha256 = "0lz9rf58dzn18yxs337sw3fia0xif039dmlmslxhlhn48g9yj67z"; sha256 = "y34EnCoAmV9ib72LpT7D0eUxP1h80h+rKqvrn9TfsQg=";
}; };
# don't remove runtime deps # don't remove runtime deps

View file

@ -16,15 +16,15 @@
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "deno"; pname = "deno";
version = "1.23.2"; version = "1.23.3";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "denoland"; owner = "denoland";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-rygBiDIZ8W51GIu36+g6zFOnIvmGe+HLGZg7x/pRFJ0="; sha256 = "sha256-kxQZDuqVddooYeelW3gJBbU7N/PnARj/IG7eBVJoAJ8=";
}; };
cargoSha256 = "sha256-q7yZZXws58QuEfC0J+fZo8QyYUWx6sOKfphmIurxVkU="; cargoSha256 = "sha256-bQZpE3kBqN5+lPdHWiiUQsWQwuMkvnfHLy3S1HnS4lk=";
postPatch = '' postPatch = ''
# upstream uses lld on aarch64-darwin for faster builds # upstream uses lld on aarch64-darwin for faster builds

View file

@ -17,13 +17,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "dsp"; pname = "dsp";
version = "1.8"; version = "1.9";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "bmc0"; owner = "bmc0";
repo = "dsp"; repo = "dsp";
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-LTgjpzAGi3oL8l5NcJj1ortKFd3vWDfXHr8YyedAxEE="; sha256 = "sha256-S1pzVQ/ceNsx0vGmzdDWw2TjPVLiRgzR4edFblWsekY=";
}; };
nativeBuildInputs = [ pkg-config ]; nativeBuildInputs = [ pkg-config ];

View file

@ -11,20 +11,23 @@ stdenv.mkDerivation rec {
sha256 = "1vf01l18j8cksnavbabcckp9gg692w6v5lg81xrzv6f5v14zp4nr"; sha256 = "1vf01l18j8cksnavbabcckp9gg692w6v5lg81xrzv6f5v14zp4nr";
}; };
sourceRoot = "source/foma"; sourceRoot = "${src.name}/foma";
nativeBuildInputs = [ flex bison ] nativeBuildInputs = [ flex bison ]
++ lib.optional stdenv.isDarwin darwin.cctools; ++ lib.optional stdenv.isDarwin darwin.cctools;
buildInputs = [ zlib readline ]; buildInputs = [ zlib readline ];
makeFlags = [ makeFlags = [
"CC=${stdenv.cc.targetPrefix}cc" "CC:=$(CC)"
"RANLIB:=$(RANLIB)"
"prefix=$(out)"
] ++ lib.optionals (!stdenv.isDarwin) [
"AR:=$(AR)" # libtool is used for darwin
]; ];
patchPhase = '' patchPhase = ''
substituteInPlace Makefile \ substituteInPlace Makefile \
--replace '-ltermcap' ' ' \ --replace '-ltermcap' ' '
--replace '/usr/local' '$(out)'
''; '';
meta = with lib; { meta = with lib; {

View file

@ -8,8 +8,8 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "btop"; pname = "btop";
version = "1.2.7"; version = "1.2.8";
hash = "sha256-zQpt/CEWW3oPqPo6SPuawyfLa50y6M4hL07uRO7YjLo="; hash = "sha256-X+JJXv+8EIh0hjYnKkeQ3+XQ6CerHrEvPCok5DYxcwc=";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "aristocratos"; owner = "aristocratos";