Project import generated by Copybara.

GitOrigin-RevId: a371c1071161104d329f6a85d922fd92b7cbab63
This commit is contained in:
Default email 2020-11-12 09:05:59 +00:00
parent 727493fff0
commit 7cbac10661
620 changed files with 6824 additions and 3305 deletions

View file

@ -76,10 +76,12 @@ trim_trailing_whitespace = unset
[pkgs/build-support/dotnetenv/Wrapper/**] [pkgs/build-support/dotnetenv/Wrapper/**]
end_of_line = unset end_of_line = unset
indent_style = unset
insert_final_newline = unset insert_final_newline = unset
trim_trailing_whitespace = unset trim_trailing_whitespace = unset
[pkgs/build-support/upstream-updater/**] [pkgs/build-support/upstream-updater/**]
indent_style = unset
trim_trailing_whitespace = unset trim_trailing_whitespace = unset
[pkgs/development/compilers/elm/registry.dat] [pkgs/development/compilers/elm/registry.dat]
@ -96,6 +98,9 @@ trim_trailing_whitespace = unset
[pkgs/development/node-packages/composition.nix] [pkgs/development/node-packages/composition.nix]
insert_final_newline = unset insert_final_newline = unset
[pkgs/development/{perl-modules,ocaml-modules,tools/ocaml}/**]
indent_style = unset
[pkgs/servers/dict/wordnet_structures.py] [pkgs/servers/dict/wordnet_structures.py]
trim_trailing_whitespace = unset trim_trailing_whitespace = unset

View file

@ -2,6 +2,8 @@ name: "Checking EditorConfig"
on: on:
pull_request: pull_request:
branches-ignore:
- 'release-**'
jobs: jobs:
tests: tests:
@ -23,5 +25,5 @@ jobs:
- name: Checking EditorConfig - name: Checking EditorConfig
if: env.GIT_DIFF if: env.GIT_DIFF
run: | run: |
./bin/editorconfig-checker -disable-indentation \ ./bin/editorconfig-checker -disable-indent-size \
${{ env.GIT_DIFF }} ${{ env.GIT_DIFF }}

View file

@ -7,8 +7,8 @@
<warning> <warning>
<para> <para>
The following section is a draft, and the policy for reviewing is still being discussed in issues such as <link The following section is a draft, and the policy for reviewing is still being discussed in issues such as <link
xlink:href="https://github.com/NixOS/nixpkgs/issues/11166">#11166 </link> and <link xlink:href="https://github.com/NixOS/nixpkgs/issues/11166">#11166 </link> and <link
xlink:href="https://github.com/NixOS/nixpkgs/issues/20836">#20836 </link>. xlink:href="https://github.com/NixOS/nixpkgs/issues/20836">#20836 </link>.
</para> </para>
</warning> </warning>
<para> <para>

View file

@ -64,9 +64,9 @@ $ dotnet --info
The `dotnetCorePackages.sdk_X_Y` is preferred over the old dotnet-sdk as both major and minor version are very important for a dotnet environment. If a given minor version isn't present (or was changed), then this will likely break your ability to build a project. The `dotnetCorePackages.sdk_X_Y` is preferred over the old dotnet-sdk as both major and minor version are very important for a dotnet environment. If a given minor version isn't present (or was changed), then this will likely break your ability to build a project.
## dotnetCorePackages.sdk vs dotnetCorePackages.netcore vs dotnetCorePackages.aspnetcore ## dotnetCorePackages.sdk vs vs dotnetCorePackages.net vs dotnetCorePackages.netcore vs dotnetCorePackages.aspnetcore
The `dotnetCorePackages.sdk` contains both a runtime and the full sdk of a given version. The `netcore` and `aspnetcore` packages are meant to serve as minimal runtimes to deploy alongside already built applications. The `dotnetCorePackages.sdk` contains both a runtime and the full sdk of a given version. The `net`, `netcore` and `aspnetcore` packages are meant to serve as minimal runtimes to deploy alongside already built applications. For runtime versions >= .NET 5 `net` is used while `netcore` is used for older .NET Core runtime version.
## Packaging a Dotnet Application ## Packaging a Dotnet Application

View file

@ -189,8 +189,7 @@ hello-2.3 A program that produces a familiar, friendly greeting
</term> </term>
<listitem> <listitem>
<para> <para>
A list of names and e-mail addresses of the maintainers of this Nix expression. If you would like to be a maintainer of a package, you may want to add yourself to <link A list of the maintainers of this Nix expression. Maintainers are defined in <link xlink:href="https://github.com/NixOS/nixpkgs/blob/master/maintainers/maintainer-list.nix"><filename>nixpkgs/maintainers/maintainer-list.nix</filename></link>. There is no restriction to becoming a maintainer, just add yourself to that list in a separate commit titled 'maintainers: add alice', and reference maintainers with <literal>maintainers = with lib.maintainers; [ alice bob ]</literal>.
xlink:href="https://github.com/NixOS/nixpkgs/blob/master/maintainers/maintainer-list.nix"><filename>nixpkgs/maintainers/maintainer-list.nix</filename></link> and write something like <literal>[ stdenv.lib.maintainers.alice stdenv.lib.maintainers.bob ]</literal>.
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>

View file

@ -561,7 +561,9 @@ rec {
enableFeature false "shared" enableFeature false "shared"
=> "--disable-shared" => "--disable-shared"
*/ */
enableFeature = enable: feat: "--${if enable then "enable" else "disable"}-${feat}"; enableFeature = enable: feat:
assert isString feat; # e.g. passing openssl instead of "openssl"
"--${if enable then "enable" else "disable"}-${feat}";
/* Create an --{enable-<feat>=<value>,disable-<feat>} string that can be passed to /* Create an --{enable-<feat>=<value>,disable-<feat>} string that can be passed to
standard GNU Autoconf scripts. standard GNU Autoconf scripts.
@ -583,7 +585,9 @@ rec {
withFeature false "shared" withFeature false "shared"
=> "--without-shared" => "--without-shared"
*/ */
withFeature = with_: feat: "--${if with_ then "with" else "without"}-${feat}"; withFeature = with_: feat:
assert isString feat; # e.g. passing openssl instead of "openssl"
"--${if with_ then "with" else "without"}-${feat}";
/* Create an --{with-<feat>=<value>,without-<feat>} string that can be passed to /* Create an --{with-<feat>=<value>,without-<feat>} string that can be passed to
standard GNU Autoconf scripts. standard GNU Autoconf scripts.

View file

@ -1272,6 +1272,12 @@
githubId = 7214361; githubId = 7214361;
name = "Roman Gerasimenko"; name = "Roman Gerasimenko";
}; };
bburdette = {
email = "bburdette@protonmail.com";
github = "bburdette";
githubId = 157330;
name = "Ben Burdette";
};
bzizou = { bzizou = {
email = "Bruno@bzizou.net"; email = "Bruno@bzizou.net";
github = "bzizou"; github = "bzizou";
@ -2833,6 +2839,12 @@
fingerprint = "50B7 11F4 3DFD 2018 DCE6 E8D0 8A52 A140 BEBF 7D2C"; fingerprint = "50B7 11F4 3DFD 2018 DCE6 E8D0 8A52 A140 BEBF 7D2C";
}]; }];
}; };
fabianhjr = {
email = "fabianhjr@protonmail.com";
github = "fabianhjr";
githubId = 303897;
name = "Fabián Heredia Montiel";
};
fadenb = { fadenb = {
email = "tristan.helmich+nixos@gmail.com"; email = "tristan.helmich+nixos@gmail.com";
github = "fadenb"; github = "fadenb";
@ -3871,6 +3883,8 @@
}; };
jcumming = { jcumming = {
email = "jack@mudshark.org"; email = "jack@mudshark.org";
github = "jcumming";
githubId = 1982341;
name = "Jack Cummings"; name = "Jack Cummings";
}; };
jD91mZM2 = { jD91mZM2 = {
@ -9958,4 +9972,10 @@
githubId = 19290397; githubId = 19290397;
name = "Tunc Uzlu"; name = "Tunc Uzlu";
}; };
pulsation = {
name = "Philippe Sam-Long";
email = "1838397+pulsation@users.noreply.github.com";
github = "pulsation";
githubId = 1838397;
};
} }

View file

@ -65,16 +65,16 @@ Platform Vendor Advanced Micro Devices, Inc.</screen>
<title>AMD</title> <title>AMD</title>
<para> <para>
Modern AMD <link Modern AMD <link
xlink:href="https://en.wikipedia.org/wiki/Graphics_Core_Next">Graphics xlink:href="https://en.wikipedia.org/wiki/Graphics_Core_Next">Graphics
Core Next</link> (GCN) GPUs are supported through the Core Next</link> (GCN) GPUs are supported through the
<package>rocm-opencl-icd</package> package. Adding this package to <package>rocm-opencl-icd</package> package. Adding this package to
<xref linkend="opt-hardware.opengl.extraPackages"/> enables OpenCL <xref linkend="opt-hardware.opengl.extraPackages"/> enables OpenCL
support: support:
<programlisting><xref linkend="opt-hardware.opengl.extraPackages"/> = [ <programlisting><xref linkend="opt-hardware.opengl.extraPackages"/> = [
rocm-opencl-icd rocm-opencl-icd
];</programlisting> ];</programlisting>
</para> </para>
</section> </section>
@ -100,9 +100,9 @@ Platform Vendor Advanced Micro Devices, Inc.</screen>
support. For example, for Gen8 and later GPUs, the following support. For example, for Gen8 and later GPUs, the following
configuration can be used: configuration can be used:
<programlisting><xref linkend="opt-hardware.opengl.extraPackages"/> = [ <programlisting><xref linkend="opt-hardware.opengl.extraPackages"/> = [
intel-compute-runtime intel-compute-runtime
];</programlisting> ];</programlisting>
</para> </para>
</section> </section>
@ -173,31 +173,31 @@ GPU1:
<title>AMD</title> <title>AMD</title>
<para> <para>
Modern AMD <link Modern AMD <link
xlink:href="https://en.wikipedia.org/wiki/Graphics_Core_Next">Graphics xlink:href="https://en.wikipedia.org/wiki/Graphics_Core_Next">Graphics
Core Next</link> (GCN) GPUs are supported through either radv, which is Core Next</link> (GCN) GPUs are supported through either radv, which is
part of <package>mesa</package>, or the <package>amdvlk</package> package. part of <package>mesa</package>, or the <package>amdvlk</package> package.
Adding the <package>amdvlk</package> package to Adding the <package>amdvlk</package> package to
<xref linkend="opt-hardware.opengl.extraPackages"/> makes both drivers <xref linkend="opt-hardware.opengl.extraPackages"/> makes both drivers
available for applications and lets them choose. A specific driver can available for applications and lets them choose. A specific driver can
be forced as follows: be forced as follows:
<programlisting><xref linkend="opt-hardware.opengl.extraPackages"/> = [ <programlisting><xref linkend="opt-hardware.opengl.extraPackages"/> = [
pkgs.<package>amdvlk</package> pkgs.<package>amdvlk</package>
]; ];
# To enable Vulkan support for 32-bit applications, also add: # To enable Vulkan support for 32-bit applications, also add:
<xref linkend="opt-hardware.opengl.extraPackages32"/> = [ <xref linkend="opt-hardware.opengl.extraPackages32"/> = [
pkgs.driversi686Linux.<package>amdvlk</package> pkgs.driversi686Linux.<package>amdvlk</package>
]; ];
# For amdvlk # For amdvlk
<xref linkend="opt-environment.variables"/>.VK_ICD_FILENAMES = <xref linkend="opt-environment.variables"/>.VK_ICD_FILENAMES =
"/run/opengl-driver/share/vulkan/icd.d/amd_icd64.json"; "/run/opengl-driver/share/vulkan/icd.d/amd_icd64.json";
# For radv # For radv
<xref linkend="opt-environment.variables"/>.VK_ICD_FILENAMES = <xref linkend="opt-environment.variables"/>.VK_ICD_FILENAMES =
"/run/opengl-driver/share/vulkan/icd.d/radeon_icd.x86_64.json"; "/run/opengl-driver/share/vulkan/icd.d/radeon_icd.x86_64.json";
</programlisting> </programlisting>
</para> </para>
</section> </section>
</section> </section>

View file

@ -12,7 +12,7 @@ xlink:href="https://github.com/NixOS/nixpkgs">Nixpkgs</link> repository.
You can quickly check your edits with the following: You can quickly check your edits with the following:
</para> </para>
<screen> <screen>
<prompt>$ </prompt>cd /path/to/nixpkgs/nixos/doc/manual <prompt>$ </prompt>cd /path/to/nixpkgs
<prompt>$ </prompt>nix-build nixos/release.nix -A manual.x86_64-linux <prompt>$ </prompt>nix-build nixos/release.nix -A manual.x86_64-linux
</screen> </screen>
<para> <para>

View file

@ -1593,30 +1593,30 @@ services.transmission.settings.rpc-bind-address = "0.0.0.0";
<para> <para>
Agda has been heavily reworked. Agda has been heavily reworked.
<itemizedlist> <itemizedlist>
<listitem> <listitem>
<para> <para>
<literal>agda.mkDerivation</literal> has been heavily changed and <literal>agda.mkDerivation</literal> has been heavily changed and
is now located at <package>agdaPackages.mkDerivation</package>. is now located at <package>agdaPackages.mkDerivation</package>.
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
New top-level packages <package>agda</package> and New top-level packages <package>agda</package> and
<literal>agda.withPackages</literal> have been added, the second <literal>agda.withPackages</literal> have been added, the second
of which sets up agda with access to chosen libraries. of which sets up agda with access to chosen libraries.
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
All agda libraries now live under All agda libraries now live under
<literal>agdaPackages</literal>. <literal>agdaPackages</literal>.
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Many broken libraries have been removed. Many broken libraries have been removed.
</para> </para>
</listitem> </listitem>
</itemizedlist> </itemizedlist>
See the <link See the <link
xlink:href="https://nixos.org/nixpkgs/manual/#agda">new xlink:href="https://nixos.org/nixpkgs/manual/#agda">new

View file

@ -23,6 +23,9 @@
Support is planned until the end of October 2021, handing over to 21.09. Support is planned until the end of October 2021, handing over to 21.09.
</para> </para>
</listitem> </listitem>
<listitem>
<para>GNOME desktop environment was upgraded to 3.38, see its <link xlink:href="https://help.gnome.org/misc/release-notes/3.38/">release notes</link>.</para>
</listitem>
</itemizedlist> </itemizedlist>
</section> </section>
@ -143,6 +146,20 @@
<link xlink:href="http://www.mutt.org/relnotes/2.0/">release notes for Mutt 2.0</link>. <link xlink:href="http://www.mutt.org/relnotes/2.0/">release notes for Mutt 2.0</link>.
</para> </para>
</listitem> </listitem>
<listitem>
<para>
<literal>vim</literal> switched to Python 3, dropping all Python 2 support.
</para>
</listitem>
<listitem>
<para>
<link linkend="opt-boot.zfs.forceImportAll">boot.zfs.forceImportAll</link>
previously did nothing, but has been fixed. However its default has been
changed to <literal>false</literal> to preserve the existing default
behaviour. If you have this explicitly set to <literal>true</literal>,
please note that your non-root pools will now be forcibly imported.
</para>
</listitem>
</itemizedlist> </itemizedlist>
</section> </section>

View file

@ -15,8 +15,8 @@ require "rexml/document"
include REXML include REXML
if ARGV.length < 1 then if ARGV.length < 1 then
$stderr.puts "Needs a filename." $stderr.puts "Needs a filename."
exit 1 exit 1
end end
filename = ARGV.shift filename = ARGV.shift
@ -51,17 +51,17 @@ $touched = false
# Generates: --optionnamevalue # Generates: --optionnamevalue
# ^^ ^^ # ^^ ^^
doc.elements.each("//varlistentry/term") do |term| doc.elements.each("//varlistentry/term") do |term|
["varname", "function", "option", "replaceable"].each do |prev_name| ["varname", "function", "option", "replaceable"].each do |prev_name|
term.elements.each(prev_name) do |el| term.elements.each(prev_name) do |el|
if el.next_element and if el.next_element and
el.next_element.name == "replaceable" and el.next_element.name == "replaceable" and
el.next_sibling_node.class == Element el.next_sibling_node.class == Element
then then
$touched = true $touched = true
term.insert_after(el, Text.new(" ")) term.insert_after(el, Text.new(" "))
end end
end end
end end
end end
@ -75,17 +75,17 @@ end
# Generates: -Ipath # Generates: -Ipath
# ^^ # ^^
doc.elements.each("//cmdsynopsis/arg") do |term| doc.elements.each("//cmdsynopsis/arg") do |term|
["option", "replaceable"].each do |prev_name| ["option", "replaceable"].each do |prev_name|
term.elements.each(prev_name) do |el| term.elements.each(prev_name) do |el|
if el.next_element and if el.next_element and
el.next_element.name == "replaceable" and el.next_element.name == "replaceable" and
el.next_sibling_node.class == Element el.next_sibling_node.class == Element
then then
$touched = true $touched = true
term.insert_after(el, Text.new(" ")) term.insert_after(el, Text.new(" "))
end end
end end
end end
end end
# <cmdsynopsis> # <cmdsynopsis>
@ -104,21 +104,21 @@ end
# Generates: [{--profile-name | -p }name] # Generates: [{--profile-name | -p }name]
# ^^^^ # ^^^^
doc.elements.each("//cmdsynopsis/arg") do |term| doc.elements.each("//cmdsynopsis/arg") do |term|
["group"].each do |prev_name| ["group"].each do |prev_name|
term.elements.each(prev_name) do |el| term.elements.each(prev_name) do |el|
if el.next_element and if el.next_element and
el.next_element.name == "replaceable" and el.next_element.name == "replaceable" and
el.next_sibling_node.class == Element el.next_sibling_node.class == Element
then then
$touched = true $touched = true
term.insert_after(el, Text.new(" ")) term.insert_after(el, Text.new(" "))
end end
end end
end end
end end
if $touched then if $touched then
doc.context[:attribute_quote] = :quote doc.context[:attribute_quote] = :quote
doc.write(output: File.open(filename, "w")) doc.write(output: File.open(filename, "w"))
end end

View file

@ -36,6 +36,8 @@ let
${addModuleIf cfg.zeroconf.discovery.enable "module-zeroconf-discover"} ${addModuleIf cfg.zeroconf.discovery.enable "module-zeroconf-discover"}
${addModuleIf cfg.tcp.enable (concatStringsSep " " ${addModuleIf cfg.tcp.enable (concatStringsSep " "
([ "module-native-protocol-tcp" ] ++ allAnon ++ ipAnon))} ([ "module-native-protocol-tcp" ] ++ allAnon ++ ipAnon))}
${addModuleIf config.services.jack.jackd.enable "module-jack-sink"}
${addModuleIf config.services.jack.jackd.enable "module-jack-source"}
${cfg.extraConfig} ${cfg.extraConfig}
''; '';
}; };
@ -144,7 +146,9 @@ in {
package = mkOption { package = mkOption {
type = types.package; type = types.package;
default = pkgs.pulseaudio; default = if config.services.jack.jackd.enable
then pkgs.pulseaudioFull
else pkgs.pulseaudio;
defaultText = "pkgs.pulseaudio"; defaultText = "pkgs.pulseaudio";
example = literalExample "pkgs.pulseaudioFull"; example = literalExample "pkgs.pulseaudioFull";
description = '' description = ''
@ -259,7 +263,7 @@ in {
(drv: drv.override { pulseaudio = overriddenPackage; }) (drv: drv.override { pulseaudio = overriddenPackage; })
cfg.extraModules; cfg.extraModules;
modulePaths = builtins.map modulePaths = builtins.map
(drv: "${drv}/lib/pulse-${overriddenPackage.version}/modules") (drv: "${drv}/${overriddenPackage.pulseDir}/modules")
# User-provided extra modules take precedence # User-provided extra modules take precedence
(overriddenModules ++ [ overriddenPackage ]); (overriddenModules ++ [ overriddenPackage ]);
in lib.concatStringsSep ":" modulePaths; in lib.concatStringsSep ":" modulePaths;
@ -284,6 +288,8 @@ in {
RestartSec = "500ms"; RestartSec = "500ms";
PassEnvironment = "DISPLAY"; PassEnvironment = "DISPLAY";
}; };
} // optionalAttrs config.services.jack.jackd.enable {
environment.JACK_PROMISCUOUS_SERVER = "jackaudio";
}; };
sockets.pulseaudio = { sockets.pulseaudio = {
wantedBy = [ "sockets.target" ]; wantedBy = [ "sockets.target" ];

View file

@ -19,6 +19,7 @@ in
}; };
config = mkIf cfg.enable { config = mkIf cfg.enable {
environment.systemPackages = with pkgs; [ acpilight ];
services.udev.packages = with pkgs; [ acpilight ]; services.udev.packages = with pkgs; [ acpilight ];
}; };
} }

View file

@ -542,6 +542,7 @@
./services/monitoring/kapacitor.nix ./services/monitoring/kapacitor.nix
./services/monitoring/loki.nix ./services/monitoring/loki.nix
./services/monitoring/longview.nix ./services/monitoring/longview.nix
./services/monitoring/mackerel-agent.nix
./services/monitoring/monit.nix ./services/monitoring/monit.nix
./services/monitoring/munin.nix ./services/monitoring/munin.nix
./services/monitoring/nagios.nix ./services/monitoring/nagios.nix

View file

@ -142,6 +142,13 @@ in
config = mkIf cfg.enable { config = mkIf cfg.enable {
assertions = [
{
assertion = cfg.useSTARTTLS -> cfg.useTLS;
message = "services.ssmtp.useSTARTTLS has no effect without services.ssmtp.useTLS";
}
];
services.ssmtp.settings = mkMerge [ services.ssmtp.settings = mkMerge [
({ ({
MailHub = cfg.hostName; MailHub = cfg.hostName;

View file

@ -246,6 +246,9 @@ in {
description = "JACK Audio Connection Kit"; description = "JACK Audio Connection Kit";
serviceConfig = { serviceConfig = {
User = "jackaudio"; User = "jackaudio";
SupplementaryGroups = lib.optional
(config.hardware.pulseaudio.enable
&& !config.hardware.pulseaudio.systemWide) "users";
ExecStart = "${cfg.jackd.package}/bin/jackd ${lib.escapeShellArgs cfg.jackd.extraOptions}"; ExecStart = "${cfg.jackd.package}/bin/jackd ${lib.escapeShellArgs cfg.jackd.extraOptions}";
LimitRTPRIO = 99; LimitRTPRIO = 99;
LimitMEMLOCK = "infinity"; LimitMEMLOCK = "infinity";

View file

@ -38,6 +38,11 @@ with lib;
services.dbus.packages = [ pkgs.telepathy-mission-control ]; services.dbus.packages = [ pkgs.telepathy-mission-control ];
# Enable runtime optional telepathy in gnome-shell
services.xserver.desktopManager.gnome3.sessionPath = with pkgs; [
telepathy-glib
telepathy-logger
];
}; };
} }

View file

@ -15,6 +15,8 @@ in {
hardware.bluetooth = { hardware.bluetooth = {
enable = mkEnableOption "support for Bluetooth"; enable = mkEnableOption "support for Bluetooth";
hsphfpd.enable = mkEnableOption "support for hsphfpd[-prototype] implementation";
powerOnBoot = mkOption { powerOnBoot = mkOption {
type = types.bool; type = types.bool;
default = true; default = true;
@ -72,7 +74,8 @@ in {
}; };
}; };
environment.systemPackages = [ bluez-bluetooth ]; environment.systemPackages = [ bluez-bluetooth ]
++ optionals cfg.hsphfpd.enable [ pkgs.hsphfpd ];
environment.etc."bluetooth/main.conf"= { environment.etc."bluetooth/main.conf"= {
source = pkgs.writeText "main.conf" source = pkgs.writeText "main.conf"
@ -80,7 +83,8 @@ in {
}; };
services.udev.packages = [ bluez-bluetooth ]; services.udev.packages = [ bluez-bluetooth ];
services.dbus.packages = [ bluez-bluetooth ]; services.dbus.packages = [ bluez-bluetooth ]
++ optionals cfg.hsphfpd.enable [ pkgs.hsphfpd ];
systemd.packages = [ bluez-bluetooth ]; systemd.packages = [ bluez-bluetooth ];
systemd.services = { systemd.services = {
@ -90,11 +94,31 @@ in {
# restarting can leave people without a mouse/keyboard # restarting can leave people without a mouse/keyboard
unitConfig.X-RestartIfChanged = false; unitConfig.X-RestartIfChanged = false;
}; };
}; }
// (optionalAttrs cfg.hsphfpd.enable {
hsphfpd = {
after = [ "bluetooth.service" ];
requires = [ "bluetooth.service" ];
wantedBy = [ "multi-user.target" ];
description = "A prototype implementation used for connecting HSP/HFP Bluetooth devices";
serviceConfig.ExecStart = "${pkgs.hsphfpd}/bin/hsphfpd.pl";
};
})
;
systemd.user.services = { systemd.user.services = {
obex.aliases = [ "dbus-org.bluez.obex.service" ]; obex.aliases = [ "dbus-org.bluez.obex.service" ];
}; }
// (optionalAttrs cfg.hsphfpd.enable {
telephony_client = {
wantedBy = [ "default.target"];
description = "telephony_client for hsphfpd";
serviceConfig.ExecStart = "${pkgs.hsphfpd}/bin/telephony_client.pl";
};
})
;
}; };

View file

@ -11,8 +11,8 @@ let
"fwupd/daemon.conf" = { "fwupd/daemon.conf" = {
source = pkgs.writeText "daemon.conf" '' source = pkgs.writeText "daemon.conf" ''
[fwupd] [fwupd]
BlacklistDevices=${lib.concatStringsSep ";" cfg.blacklistDevices} DisabledDevices=${lib.concatStringsSep ";" cfg.disabledDevices}
BlacklistPlugins=${lib.concatStringsSep ";" cfg.blacklistPlugins} DisabledPlugins=${lib.concatStringsSep ";" cfg.disabledPlugins}
''; '';
}; };
"fwupd/uefi.conf" = { "fwupd/uefi.conf" = {
@ -59,21 +59,21 @@ in {
''; '';
}; };
blacklistDevices = mkOption { disabledDevices = mkOption {
type = types.listOf types.str; type = types.listOf types.str;
default = []; default = [];
example = [ "2082b5e0-7a64-478a-b1b2-e3404fab6dad" ]; example = [ "2082b5e0-7a64-478a-b1b2-e3404fab6dad" ];
description = '' description = ''
Allow blacklisting specific devices by their GUID Allow disabling specific devices by their GUID
''; '';
}; };
blacklistPlugins = mkOption { disabledPlugins = mkOption {
type = types.listOf types.str; type = types.listOf types.str;
default = []; default = [];
example = [ "udev" ]; example = [ "udev" ];
description = '' description = ''
Allow blacklisting specific plugins Allow disabling specific plugins
''; '';
}; };
@ -105,11 +105,15 @@ in {
}; };
}; };
imports = [
(mkRenamedOptionModule [ "services" "fwupd" "blacklistDevices"] [ "services" "fwupd" "disabledDevices" ])
(mkRenamedOptionModule [ "services" "fwupd" "blacklistPlugins"] [ "services" "fwupd" "disabledPlugins" ])
];
###### implementation ###### implementation
config = mkIf cfg.enable { config = mkIf cfg.enable {
# Disable test related plug-ins implicitly so that users do not have to care about them. # Disable test related plug-ins implicitly so that users do not have to care about them.
services.fwupd.blacklistPlugins = cfg.package.defaultBlacklistedPlugins; services.fwupd.disabledPlugins = cfg.package.defaultDisabledPlugins;
environment.systemPackages = [ cfg.package ]; environment.systemPackages = [ cfg.package ];

View file

@ -6,25 +6,14 @@ let
echo '${builtins.toJSON conf}' | ${pkgs.buildPackages.jq}/bin/jq 'del(._module)' > $out echo '${builtins.toJSON conf}' | ${pkgs.buildPackages.jq}/bin/jq 'del(._module)' > $out
''; '';
allowSystemdJournal = cfg.configuration ? scrape_configs && lib.any (v: v ? journal) cfg.configuration.scrape_configs;
in { in {
options.services.promtail = with types; { options.services.promtail = with types; {
enable = mkEnableOption "the Promtail ingresser"; enable = mkEnableOption "the Promtail ingresser";
configuration = mkOption { configuration = mkOption {
type = with lib.types; let type = (pkgs.formats.json {}).type;
valueType = nullOr (oneOf [
bool
int
float
str
(lazyAttrsOf valueType)
(listOf valueType)
]) // {
description = "JSON value";
emptyValue.value = {};
deprecationMessage = null;
};
in valueType;
description = '' description = ''
Specify the configuration for Promtail in Nix. Specify the configuration for Promtail in Nix.
''; '';
@ -80,6 +69,8 @@ in {
RestrictRealtime = true; RestrictRealtime = true;
MemoryDenyWriteExecute = true; MemoryDenyWriteExecute = true;
PrivateUsers = true; PrivateUsers = true;
SupplementaryGroups = lib.optional (allowSystemdJournal) "systemd-journal";
} // (optionalAttrs (!pkgs.stdenv.isAarch64) { # FIXME: figure out why this breaks on aarch64 } // (optionalAttrs (!pkgs.stdenv.isAarch64) { # FIXME: figure out why this breaks on aarch64
SystemCallFilter = "@system-service"; SystemCallFilter = "@system-service";
}); });

View file

@ -6,6 +6,12 @@ let
cfg = config.services.cfdyndns; cfg = config.services.cfdyndns;
in in
{ {
imports = [
(mkRemovedOptionModule
[ "services" "cfdyndns" "apikey" ]
"Use services.cfdyndns.apikeyFile instead.")
];
options = { options = {
services.cfdyndns = { services.cfdyndns = {
enable = mkEnableOption "Cloudflare Dynamic DNS Client"; enable = mkEnableOption "Cloudflare Dynamic DNS Client";
@ -17,10 +23,12 @@ in
''; '';
}; };
apikey = mkOption { apikeyFile = mkOption {
type = types.str; default = null;
type = types.nullOr types.str;
description = '' description = ''
The API Key to use to authenticate to CloudFlare. The path to a file containing the API Key
used to authenticate with CloudFlare.
''; '';
}; };
@ -45,13 +53,17 @@ in
Type = "simple"; Type = "simple";
User = config.ids.uids.cfdyndns; User = config.ids.uids.cfdyndns;
Group = config.ids.gids.cfdyndns; Group = config.ids.gids.cfdyndns;
ExecStart = "/bin/sh -c '${pkgs.cfdyndns}/bin/cfdyndns'";
}; };
environment = { environment = {
CLOUDFLARE_EMAIL="${cfg.email}"; CLOUDFLARE_EMAIL="${cfg.email}";
CLOUDFLARE_APIKEY="${cfg.apikey}";
CLOUDFLARE_RECORDS="${concatStringsSep "," cfg.records}"; CLOUDFLARE_RECORDS="${concatStringsSep "," cfg.records}";
}; };
script = ''
${optionalString (cfg.apikeyFile != null) ''
export CLOUDFLARE_APIKEY="$(cat ${escapeShellArg cfg.apikeyFile})"
''}
${pkgs.cfdyndns}/bin/cfdyndns
'';
}; };
users.users = { users.users = {

View file

@ -39,7 +39,7 @@ in {
}; };
configuration = mkOption { configuration = mkOption {
type = types.attrs; type = (pkgs.formats.json {}).type;
default = {}; default = {};
description = '' description = ''
Specify the configuration for Loki in Nix. Specify the configuration for Loki in Nix.
@ -78,6 +78,8 @@ in {
''; '';
}]; }];
environment.systemPackages = [ pkgs.grafana-loki ]; # logcli
users.groups.${cfg.group} = { }; users.groups.${cfg.group} = { };
users.users.${cfg.user} = { users.users.${cfg.user} = {
description = "Loki Service User"; description = "Loki Service User";

View file

@ -0,0 +1,111 @@
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.services.mackerel-agent;
settingsFmt = pkgs.formats.toml {};
in {
options.services.mackerel-agent = {
enable = mkEnableOption "mackerel.io agent";
# the upstream package runs as root, but doesn't seem to be strictly
# necessary for basic functionality
runAsRoot = mkEnableOption "Whether to run as root.";
autoRetirement = mkEnableOption ''
Whether to automatically retire the host upon OS shutdown.
'';
apiKeyFile = mkOption {
type = types.path;
default = "";
example = "/run/keys/mackerel-api-key";
description = ''
Path to file containing the Mackerel API key. The file should contain a
single line of the following form:
<literallayout>apikey = "EXAMPLE_API_KEY"</literallayout>
'';
};
settings = mkOption {
description = ''
Options for mackerel-agent.conf.
Documentation:
<link xlink:href="https://mackerel.io/docs/entry/spec/agent"/>
'';
default = {};
example = {
verbose = false;
silent = false;
};
type = types.submodule {
freeformType = settingsFmt.type;
options.host_status = {
on_start = mkOption {
type = types.enum [ "working" "standby" "maintenance" "poweroff" ];
description = "Host status after agent startup.";
default = "working";
};
on_stop = mkOption {
type = types.enum [ "working" "standby" "maintenance" "poweroff" ];
description = "Host status after agent shutdown.";
default = "poweroff";
};
};
options.diagnostic =
mkEnableOption "Collect memory usage for the agent itself";
};
};
};
config = mkIf cfg.enable {
environment.systemPackages = with pkgs; [ mackerel-agent ];
environment.etc = {
"mackerel-agent/mackerel-agent.conf".source =
settingsFmt.generate "mackerel-agent.conf" cfg.settings;
"mackerel-agent/conf.d/api-key.conf".source = cfg.apiKeyFile;
};
services.mackerel-agent.settings = {
root = mkDefault "/var/lib/mackerel-agent";
pidfile = mkDefault "/run/mackerel-agent/mackerel-agent.pid";
# conf.d stores the symlink to cfg.apiKeyFile
include = mkDefault "/etc/mackerel-agent/conf.d/*.conf";
};
# upstream service file in https://git.io/JUt4Q
systemd.services.mackerel-agent = {
description = "mackerel.io agent";
after = [ "network-online.target" "nss-lookup.target" ];
wantedBy = [ "multi-user.target" ];
environment = {
MACKEREL_PLUGIN_WORKDIR = mkDefault "%C/mackerel-agent";
};
serviceConfig = {
DynamicUser = !cfg.runAsRoot;
PrivateTmp = mkDefault true;
CacheDirectory = "mackerel-agent";
ConfigurationDirectory = "mackerel-agent";
RuntimeDirectory = "mackerel-agent";
StateDirectory = "mackerel-agent";
ExecStart = "${pkgs.mackerel-agent}/bin/mackerel-agent supervise";
ExecStopPost = mkIf cfg.autoRetirement "${pkg.mackerel-agent}/bin/mackerel-agent retire -force";
ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
LimitNOFILE = mkDefault 65536;
LimitNPROC = mkDefault 65536;
};
restartTriggers = [
config.environment.etc."mackerel-agent/mackerel-agent.conf".source
];
};
};
}

View file

@ -73,6 +73,7 @@ in
core-os-services.enable = mkEnableOption "essential services for GNOME3"; core-os-services.enable = mkEnableOption "essential services for GNOME3";
core-shell.enable = mkEnableOption "GNOME Shell services"; core-shell.enable = mkEnableOption "GNOME Shell services";
core-utilities.enable = mkEnableOption "GNOME core utilities"; core-utilities.enable = mkEnableOption "GNOME core utilities";
core-developer-tools.enable = mkEnableOption "GNOME core developer tools";
games.enable = mkEnableOption "GNOME games"; games.enable = mkEnableOption "GNOME games";
experimental-features = { experimental-features = {
@ -322,6 +323,12 @@ in
gnome-shell gnome-shell
]; ];
services.udev.packages = with pkgs.gnome3; [
# Force enable KMS modifiers for devices that require them.
# https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1443
mutter
];
services.avahi.enable = mkDefault true; services.avahi.enable = mkDefault true;
xdg.portal.extraPortals = [ xdg.portal.extraPortals = [
@ -351,7 +358,7 @@ in
source-sans-pro source-sans-pro
]; ];
# Adapt from https://gitlab.gnome.org/GNOME/gnome-build-meta/blob/gnome-3-36/elements/core/meta-gnome-core-shell.bst # Adapt from https://gitlab.gnome.org/GNOME/gnome-build-meta/blob/gnome-3-38/elements/core/meta-gnome-core-shell.bst
environment.systemPackages = with pkgs.gnome3; [ environment.systemPackages = with pkgs.gnome3; [
adwaita-icon-theme adwaita-icon-theme
gnome-backgrounds gnome-backgrounds
@ -396,7 +403,7 @@ in
}; };
}) })
# Adapt from https://gitlab.gnome.org/GNOME/gnome-build-meta/blob/gnome-3-36/elements/core/meta-gnome-core-utilities.bst # Adapt from https://gitlab.gnome.org/GNOME/gnome-build-meta/blob/gnome-3-38/elements/core/meta-gnome-core-utilities.bst
(mkIf serviceCfg.core-utilities.enable { (mkIf serviceCfg.core-utilities.enable {
environment.systemPackages = (with pkgs.gnome3; removePackagesByName [ environment.systemPackages = (with pkgs.gnome3; removePackagesByName [
baobab baobab
@ -415,16 +422,15 @@ in
gnome-logs gnome-logs
gnome-maps gnome-maps
gnome-music gnome-music
gnome-photos pkgs.gnome-photos
gnome-screenshot gnome-screenshot
gnome-system-monitor gnome-system-monitor
gnome-weather gnome-weather
nautilus nautilus
pkgs.gnome-connections
simple-scan simple-scan
totem totem
yelp yelp
# Unsure if sensible for NixOS
/* gnome-boxes */
] config.environment.gnome3.excludePackages); ] config.environment.gnome3.excludePackages);
# Enable default program modules # Enable default program modules
@ -453,12 +459,43 @@ in
(mkIf serviceCfg.games.enable { (mkIf serviceCfg.games.enable {
environment.systemPackages = (with pkgs.gnome3; removePackagesByName [ environment.systemPackages = (with pkgs.gnome3; removePackagesByName [
aisleriot atomix five-or-more four-in-a-row gnome-chess gnome-klotski aisleriot
gnome-mahjongg gnome-mines gnome-nibbles gnome-robots gnome-sudoku atomix
gnome-taquin gnome-tetravex hitori iagno lightsoff quadrapassel five-or-more
swell-foop tali four-in-a-row
gnome-chess
gnome-klotski
gnome-mahjongg
gnome-mines
gnome-nibbles
gnome-robots
gnome-sudoku
gnome-taquin
gnome-tetravex
hitori
iagno
lightsoff
quadrapassel
swell-foop
tali
] config.environment.gnome3.excludePackages); ] config.environment.gnome3.excludePackages);
}) })
# Adapt from https://gitlab.gnome.org/GNOME/gnome-build-meta/-/blob/3.38.0/elements/core/meta-gnome-core-developer-tools.bst
(mkIf serviceCfg.core-developer-tools.enable {
environment.systemPackages = (with pkgs.gnome3; removePackagesByName [
dconf-editor
devhelp
pkgs.gnome-builder
# boxes would make sense in this option, however
# it doesn't function well enough to be included
# in default configurations.
# https://github.com/NixOS/nixpkgs/issues/60908
/* gnome-boxes */
] config.environment.gnome3.excludePackages);
services.sysprof.enable = true;
})
]; ];
} }

View file

@ -367,7 +367,7 @@ in
security.pam.services.sddm.enableKwallet = true; security.pam.services.sddm.enableKwallet = true;
xdg.portal.enable = true; xdg.portal.enable = true;
xdg.portal.extraPortals = [ pkgs.xdg-desktop-portal-kde ]; xdg.portal.extraPortals = [ plasma5.xdg-desktop-portal-kde ];
# Update the start menu for each user that is currently logged in # Update the start menu for each user that is currently logged in
system.userActivationScripts.plasmaSetup = activationScript; system.userActivationScripts.plasmaSetup = activationScript;

View file

@ -160,7 +160,7 @@ in
]; ];
# Otherwise GDM will not be able to start correctly and display Wayland sessions # Otherwise GDM will not be able to start correctly and display Wayland sessions
systemd.packages = with pkgs.gnome3; [ gnome-session gnome-shell ]; systemd.packages = with pkgs.gnome3; [ gdm gnome-session gnome-shell ];
environment.systemPackages = [ pkgs.gnome3.adwaita-icon-theme ]; environment.systemPackages = [ pkgs.gnome3.adwaita-icon-theme ];
systemd.services.display-manager.wants = [ systemd.services.display-manager.wants = [

View file

@ -28,6 +28,20 @@ let
utillinux # needed for mount and mountpoint utillinux # needed for mount and mountpoint
]; ];
scriptType = with types;
let scriptOptions =
{ deps = mkOption
{ type = types.listOf types.str;
default = [ ];
description = "List of dependencies. The script will run after these.";
};
text = mkOption
{ type = types.lines;
description = "The content of the script.";
};
};
in either str (submodule { options = scriptOptions; });
in in
{ {
@ -40,16 +54,14 @@ in
default = {}; default = {};
example = literalExample '' example = literalExample ''
{ stdio = { { stdio.text =
text = ''' '''
# Needed by some programs. # Needed by some programs.
ln -sfn /proc/self/fd /dev/fd ln -sfn /proc/self/fd /dev/fd
ln -sfn /proc/self/fd/0 /dev/stdin ln -sfn /proc/self/fd/0 /dev/stdin
ln -sfn /proc/self/fd/1 /dev/stdout ln -sfn /proc/self/fd/1 /dev/stdout
ln -sfn /proc/self/fd/2 /dev/stderr ln -sfn /proc/self/fd/2 /dev/stderr
'''; ''';
deps = [];
};
} }
''; '';
@ -62,7 +74,7 @@ in
idempotent and fast. idempotent and fast.
''; '';
type = types.attrsOf types.unspecified; # FIXME type = types.attrsOf scriptType;
apply = set: { apply = set: {
script = script =
@ -125,7 +137,7 @@ in
idempotent and fast. idempotent and fast.
''; '';
type = types.attrsOf types.unspecified; type = with types; attrsOf scriptType;
apply = set: { apply = set: {
script = '' script = ''

View file

@ -9,7 +9,7 @@ let
cfg = config.boot.plymouth; cfg = config.boot.plymouth;
nixosBreezePlymouth = pkgs.breeze-plymouth.override { nixosBreezePlymouth = pkgs.plasma5.breeze-plymouth.override {
logoFile = cfg.logo; logoFile = cfg.logo;
logoName = "nixos"; logoName = "nixos";
osName = "NixOS"; osName = "NixOS";

View file

@ -175,14 +175,10 @@ in
forceImportAll = mkOption { forceImportAll = mkOption {
type = types.bool; type = types.bool;
default = true; default = false;
description = '' description = ''
Forcibly import all ZFS pool(s). Forcibly import all ZFS pool(s).
This is enabled by default for backwards compatibility purposes, but it is highly
recommended to disable this option, as it bypasses some of the safeguards ZFS uses
to protect your ZFS pools.
If you set this option to <literal>false</literal> and NixOS subsequently fails to If you set this option to <literal>false</literal> and NixOS subsequently fails to
import your non-root ZFS pool(s), you should manually import each pool with import your non-root ZFS pool(s), you should manually import each pool with
"zpool import -f &lt;pool-name&gt;", and then reboot. You should only need to do "zpool import -f &lt;pool-name&gt;", and then reboot. You should only need to do
@ -507,6 +503,7 @@ in
Type = "oneshot"; Type = "oneshot";
RemainAfterExit = true; RemainAfterExit = true;
}; };
environment.ZFS_FORCE = optionalString cfgZfs.forceImportAll "-f";
script = (importLib { script = (importLib {
# See comments at importLib definition. # See comments at importLib definition.
zpoolCmd="${packages.zfsUser}/sbin/zpool"; zpoolCmd="${packages.zfsUser}/sbin/zpool";

View file

@ -744,16 +744,19 @@ in
(isEnabled "VIRTIO_PCI") (isEnabled "VIRTIO_PCI")
(isEnabled "VIRTIO_NET") (isEnabled "VIRTIO_NET")
(isEnabled "EXT4_FS") (isEnabled "EXT4_FS")
(isEnabled "NET_9P_VIRTIO")
(isEnabled "9P_FS")
(isYes "BLK_DEV") (isYes "BLK_DEV")
(isYes "PCI") (isYes "PCI")
(isYes "EXPERIMENTAL")
(isYes "NETDEVICES") (isYes "NETDEVICES")
(isYes "NET_CORE") (isYes "NET_CORE")
(isYes "INET") (isYes "INET")
(isYes "NETWORK_FILESYSTEMS") (isYes "NETWORK_FILESYSTEMS")
] ++ optional (!cfg.graphics) [ ] ++ optionals (!cfg.graphics) [
(isYes "SERIAL_8250_CONSOLE") (isYes "SERIAL_8250_CONSOLE")
(isYes "SERIAL_8250") (isYes "SERIAL_8250")
] ++ optionals (cfg.writableStore) [
(isEnabled "OVERLAY_FS")
]; ];
}; };

View file

@ -315,6 +315,7 @@ in
samba = handleTest ./samba.nix {}; samba = handleTest ./samba.nix {};
sanoid = handleTest ./sanoid.nix {}; sanoid = handleTest ./sanoid.nix {};
sbt = handleTest ./sbt.nix {}; sbt = handleTest ./sbt.nix {};
sbt-extras = handleTest ./sbt-extras.nix {};
scala = handleTest ./scala.nix {}; scala = handleTest ./scala.nix {};
sddm = handleTest ./sddm.nix {}; sddm = handleTest ./sddm.nix {};
service-runner = handleTest ./service-runner.nix {}; service-runner = handleTest ./service-runner.nix {};
@ -347,6 +348,7 @@ in
systemd-binfmt = handleTestOn ["x86_64-linux"] ./systemd-binfmt.nix {}; systemd-binfmt = handleTestOn ["x86_64-linux"] ./systemd-binfmt.nix {};
systemd-boot = handleTest ./systemd-boot.nix {}; systemd-boot = handleTest ./systemd-boot.nix {};
systemd-confinement = handleTest ./systemd-confinement.nix {}; systemd-confinement = handleTest ./systemd-confinement.nix {};
systemd-journal = handleTest ./systemd-journal.nix {};
systemd-timesyncd = handleTest ./systemd-timesyncd.nix {}; systemd-timesyncd = handleTest ./systemd-timesyncd.nix {};
systemd-networkd-vrf = handleTest ./systemd-networkd-vrf.nix {}; systemd-networkd-vrf = handleTest ./systemd-networkd-vrf.nix {};
systemd-networkd = handleTest ./systemd-networkd.nix {}; systemd-networkd = handleTest ./systemd-networkd.nix {};

View file

@ -94,6 +94,7 @@ in
glib-networking = callInstalledTest ./glib-networking.nix {}; glib-networking = callInstalledTest ./glib-networking.nix {};
gnome-photos = callInstalledTest ./gnome-photos.nix {}; gnome-photos = callInstalledTest ./gnome-photos.nix {};
graphene = callInstalledTest ./graphene.nix {}; graphene = callInstalledTest ./graphene.nix {};
gsconnect = callInstalledTest ./gsconnect.nix {};
ibus = callInstalledTest ./ibus.nix {}; ibus = callInstalledTest ./ibus.nix {};
libgdata = callInstalledTest ./libgdata.nix {}; libgdata = callInstalledTest ./libgdata.nix {};
glib-testing = callInstalledTest ./glib-testing.nix {}; glib-testing = callInstalledTest ./glib-testing.nix {};

View file

@ -5,7 +5,7 @@ makeInstalledTest {
testConfig = { testConfig = {
services.fwupd.enable = true; services.fwupd.enable = true;
services.fwupd.blacklistPlugins = lib.mkForce []; # don't blacklist test plugin services.fwupd.disabledPlugins = lib.mkForce []; # don't disable test plugin
services.fwupd.enableTestRemote = true; services.fwupd.enableTestRemote = true;
virtualisation.memorySize = 768; virtualisation.memorySize = 768;
}; };

View file

@ -0,0 +1,7 @@
{ pkgs, makeInstalledTest, ... }:
makeInstalledTest {
tested = pkgs.gnomeExtensions.gsconnect;
withX11 = true;
}

View file

@ -45,6 +45,8 @@ import ./make-test-python.nix ({ lib, pkgs, ... }:
machine.wait_for_open_port(3100) machine.wait_for_open_port(3100)
machine.wait_for_open_port(9080) machine.wait_for_open_port(9080)
machine.succeed("echo 'Loki Ingestion Test' > /var/log/testlog") machine.succeed("echo 'Loki Ingestion Test' > /var/log/testlog")
# should not have access to journal unless specified
machine.fail("systemctl show --property=SupplementaryGroups promtail | grep -q systemd-journal")
machine.wait_until_succeeds( machine.wait_until_succeeds(
"${pkgs.grafana-loki}/bin/logcli --addr='http://localhost:3100' query --no-labels '{job=\"varlogs\",filename=\"/var/log/testlog\"}' | grep -q 'Loki Ingestion Test'" "${pkgs.grafana-loki}/bin/logcli --addr='http://localhost:3100' query --no-labels '{job=\"varlogs\",filename=\"/var/log/testlog\"}' | grep -q 'Loki Ingestion Test'"
) )

View file

@ -0,0 +1,16 @@
import ./make-test-python.nix ({ pkgs, ...} : {
name = "sbt-extras";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ nequissimus ];
};
machine = { pkgs, ... }:
{
environment.systemPackages = [ pkgs.sbt-extras ];
};
testScript =
''
machine.succeed("(sbt -h)")
'';
})

View file

@ -0,0 +1,20 @@
import ./make-test-python.nix ({ pkgs, ... }:
{
name = "systemd-journal";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ lewo ];
};
machine = { pkgs, lib, ... }: {
services.journald.enableHttpGateway = true;
};
testScript = ''
machine.wait_for_unit("multi-user.target")
machine.succeed(
"${pkgs.curl}/bin/curl -s localhost:19531/machine | ${pkgs.jq}/bin/jq -e '.hostname == \"machine\"'"
)
'';
})

View file

@ -18,7 +18,7 @@ let
maintainers = [ adisbladis ]; maintainers = [ adisbladis ];
}; };
machine = { pkgs, ... }: { machine = { pkgs, lib, ... }: {
virtualisation.emptyDiskImages = [ 4096 ]; virtualisation.emptyDiskImages = [ 4096 ];
networking.hostId = "deadbeef"; networking.hostId = "deadbeef";
boot.kernelPackages = kernelPackage; boot.kernelPackages = kernelPackage;
@ -26,6 +26,24 @@ let
boot.zfs.enableUnstable = enableUnstable; boot.zfs.enableUnstable = enableUnstable;
environment.systemPackages = [ pkgs.parted ]; environment.systemPackages = [ pkgs.parted ];
# Setup regular fileSystems machinery to ensure forceImportAll can be
# tested via the regular service units.
fileSystems = lib.mkVMOverride {
"/forcepool" = {
device = "forcepool";
fsType = "zfs";
options = [ "noauto" ];
};
};
# forcepool doesn't exist at first boot, and we need to manually test
# the import after tweaking the hostId.
systemd.services.zfs-import-forcepool.wantedBy = lib.mkVMOverride [];
systemd.targets.zfs.wantedBy = lib.mkVMOverride [];
boot.zfs.forceImportAll = true;
# /dev/disk/by-id doesn't get populated in the NixOS test framework
boot.zfs.devNodes = "/dev/disk/by-uuid";
}; };
testScript = '' testScript = ''
@ -57,6 +75,21 @@ let
"zpool destroy rpool", "zpool destroy rpool",
"udevadm settle", "udevadm settle",
) )
with subtest("boot.zfs.forceImportAll works"):
machine.succeed(
"rm /etc/hostid",
"zgenhostid deadcafe",
"zpool create forcepool /dev/vdb1 -O mountpoint=legacy",
)
machine.shutdown()
machine.start()
machine.succeed("udevadm settle")
machine.fail("zpool import forcepool")
machine.succeed(
"systemctl start zfs-import-forcepool.service",
"mount -t zfs forcepool /tmp/mnt",
)
'' + extraTest; '' + extraTest;
}; };

View file

@ -6,7 +6,7 @@
, gettext , gettext
, glib , glib
, gtk3 , gtk3
, libhandy , libhandy_0
, meson , meson
, ninja , ninja
, pango , pango
@ -48,7 +48,7 @@ rustPlatform.buildRustPackage rec {
dbus dbus
glib glib
gtk3 gtk3
libhandy libhandy_0
pango pango
]; ];

View file

@ -9,13 +9,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "ft2-clone"; pname = "ft2-clone";
version = "1.37"; version = "1.39";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "8bitbubsy"; owner = "8bitbubsy";
repo = "ft2-clone"; repo = "ft2-clone";
rev = "v${version}"; rev = "v${version}";
sha256 = "1lhpzd46mpr3bq13qhd0bq724db5fhc8jplfb684c2q7sc4v92nk"; sha256 = "0vc7gni24q649b53flz7rlgnc5xl2dqdklgwc2brj380a5s7g6m7";
}; };
nativeBuildInputs = [ cmake ]; nativeBuildInputs = [ cmake ];

View file

@ -10,7 +10,7 @@
, python3 , python3
, pkgconfig , pkgconfig
, glib , glib
, libhandy , libhandy_0
, gtk3 , gtk3
, dbus , dbus
, openssl , openssl
@ -48,7 +48,7 @@ rustPlatform.buildRustPackage rec {
buildInputs = [ buildInputs = [
glib glib
gtk3 gtk3
libhandy libhandy_0
dbus dbus
openssl openssl
sqlite sqlite

View file

@ -7,6 +7,7 @@
, python3 , python3
, gtk3 , gtk3
, gst_all_1 , gst_all_1
, libhandy
, libsecret , libsecret
, libsoup , libsoup
, appstream-glib , appstream-glib
@ -24,7 +25,7 @@
python3.pkgs.buildPythonApplication rec { python3.pkgs.buildPythonApplication rec {
pname = "lollypop"; pname = "lollypop";
version = "1.3.2"; version = "1.4.5";
format = "other"; format = "other";
doCheck = false; doCheck = false;
@ -33,7 +34,7 @@ python3.pkgs.buildPythonApplication rec {
url = "https://gitlab.gnome.org/World/lollypop"; url = "https://gitlab.gnome.org/World/lollypop";
rev = "refs/tags/${version}"; rev = "refs/tags/${version}";
fetchSubmodules = true; fetchSubmodules = true;
sha256 = "14854j1dhq67s1vzs0lqy345vbl6f5w8nb36n4i33fmpva2flsk3"; sha256 = "1i5qcpp3fpkda08g6nkiiff8lsjmv5xsvpa0512kigq5z0lsagrx";
}; };
nativeBuildInputs = [ nativeBuildInputs = [
@ -57,6 +58,7 @@ python3.pkgs.buildPythonApplication rec {
gst-plugins-ugly gst-plugins-ugly
gstreamer gstreamer
gtk3 gtk3
libhandy
libsoup libsoup
pango pango
totem-pl-parser totem-pl-parser

View file

@ -17,13 +17,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "musikcube"; pname = "musikcube";
version = "0.93.1"; version = "0.94.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "clangen"; owner = "clangen";
repo = pname; repo = pname;
rev = version; rev = version;
sha256 = "05qsxyr7x8l0vlmn4yjg4gglxvcw9raf6vfzvblsl2ngsdsrnizy"; sha256 = "0hifyawsr38vsx12aqw38nms4kzbaghihib1r80x56f1jjsdhww0";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View file

@ -18,8 +18,12 @@
let let
pulseSources = runCommand "pulseaudio-sources" {} '' pulseSources = runCommand "pulseaudio-sources" {} ''
mkdir $out mkdir $out
tar -xf ${pulseaudio.src} if [ -d ${pulseaudio.src} ]; then
mv pulseaudio*/* $out/ ln -s ${pulseaudio.src}/* $out/
else
tar -xf ${pulseaudio.src}
mv pulseaudio*/* $out/
fi
''; '';
in stdenv.mkDerivation rec { in stdenv.mkDerivation rec {
@ -61,7 +65,7 @@ in stdenv.mkDerivation rec {
# Pulseaudio version is detected with a -rebootstrapped suffix which build system assumptions # Pulseaudio version is detected with a -rebootstrapped suffix which build system assumptions
substituteInPlace config.h.in --replace PulseAudio_VERSION ${pulseaudio.version} substituteInPlace config.h.in --replace PulseAudio_VERSION ${pulseaudio.version}
substituteInPlace CMakeLists.txt --replace '${"\${PulseAudio_VERSION}"}' ${pulseaudio.version} substituteInPlace CMakeLists.txt --replace '${"\${PULSE_DIR}"}' ${pulseaudio.pulseDir}
# Fraunhofer recommends to enable afterburner but upstream has it set to false by default # Fraunhofer recommends to enable afterburner but upstream has it set to false by default
substituteInPlace src/modules/bluetooth/a2dp/a2dp_aac.c \ substituteInPlace src/modules/bluetooth/a2dp/a2dp_aac.c \
@ -72,7 +76,7 @@ in stdenv.mkDerivation rec {
for so in $out/lib/pulse-${pulseaudio.version}/modules/*.so; do for so in $out/lib/pulse-${pulseaudio.version}/modules/*.so; do
orig_rpath=$(patchelf --print-rpath "$so") orig_rpath=$(patchelf --print-rpath "$so")
patchelf \ patchelf \
--set-rpath "${ldacbt}/lib:${lib.getLib ffmpeg}/lib:$out/lib/pulse-${pulseaudio.version}/modules:$orig_rpath" \ --set-rpath "${ldacbt}/lib:${lib.getLib ffmpeg}/lib:$out/${pulseaudio.pulseDir}/modules:$orig_rpath" \
"$so" "$so"
done done
''; '';

View file

@ -8,4 +8,4 @@ index 8d20dbf..63fe7ba 100644
module-bluetooth-policy module-bluetooth-policy
- LIBRARY DESTINATION ${PulseAudio_modlibexecdir}) - LIBRARY DESTINATION ${PulseAudio_modlibexecdir})
- -
+ LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX}/lib/pulse-${PulseAudio_VERSION}/modules/) + LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX}/${PULSE_DIR}/modules/)

View file

@ -29,11 +29,11 @@
# handle that. # handle that.
mkDerivation rec { mkDerivation rec {
name = "qmmp-1.4.1"; name = "qmmp-1.4.2";
src = fetchurl { src = fetchurl {
url = "http://qmmp.ylsoftware.com/files/${name}.tar.bz2"; url = "http://qmmp.ylsoftware.com/files/${name}.tar.bz2";
sha256 = "0p18r2ri75vbyjzfa7bcl1dm372m6jvn9zj2p5ia2rh1g77fbm9a"; sha256 = "1kvzw0n90crg3dgy8834qrjv0zb3ia5cny7virax9ax73y653jfa";
}; };
nativeBuildInputs = [ cmake pkgconfig ]; nativeBuildInputs = [ cmake pkgconfig ];

View file

@ -5,11 +5,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "qtractor"; pname = "qtractor";
version = "0.9.15"; version = "0.9.18";
src = fetchurl { src = fetchurl {
url = "mirror://sourceforge/${pname}/${pname}-${version}.tar.gz"; url = "mirror://sourceforge/${pname}/${pname}-${version}.tar.gz";
sha256 = "0k7a6llwrzs07flr9mvzvay9ygc2x64syg8npyabsw5a4d85fwsx"; sha256 = "121vmygdzp37p6f93f8dbbg2m2r55j7amyiapzkqgypgn4vfdbwr";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View file

@ -8,7 +8,7 @@
, glib , glib
, gst_all_1 , gst_all_1
, gtk3 , gtk3
, libhandy , libhandy_0
, meson , meson
, ninja , ninja
, openssl , openssl
@ -53,7 +53,7 @@ rustPlatform.buildRustPackage rec {
gdk-pixbuf gdk-pixbuf
glib glib
gtk3 gtk3
libhandy libhandy_0
openssl openssl
sqlite sqlite
] ++ (with gst_all_1; [ ] ++ (with gst_all_1; [

View file

@ -12,7 +12,7 @@
, coreutils , coreutils
, libsoup , libsoup
, libsecret , libsecret
, libhandy , libhandy_0
, wrapGAppsHook , wrapGAppsHook
, libgpgerror , libgpgerror
, json-glib , json-glib
@ -53,7 +53,7 @@ stdenv.mkDerivation rec {
glib glib
gtk3 gtk3
libsecret libsecret
libhandy libhandy_0
libgpgerror libgpgerror
json-glib json-glib
]; ];

View file

@ -2,11 +2,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "ergo"; pname = "ergo";
version = "3.3.5"; version = "3.3.6";
src = fetchurl { src = fetchurl {
url = "https://github.com/ergoplatform/ergo/releases/download/v${version}/ergo-${version}.jar"; url = "https://github.com/ergoplatform/ergo/releases/download/v${version}/ergo-${version}.jar";
sha256 = "0bxzpwwb42bppqli3zggx3lah7g6kwmy6k6k6dinypj6x0bafqcg"; sha256 = "1zi559ixjxxsrpvvjbxa1d0g96px3h9amjvy149sfhp7b8w5hhk3";
}; };
nativeBuildInputs = [ makeWrapper ]; nativeBuildInputs = [ makeWrapper ];

View file

@ -1,41 +0,0 @@
{ fetchFromGitHub, stdenv, db, boost, gmp, mpfr, qt4, qmake4Hook }:
stdenv.mkDerivation rec {
version = "0.8.6-2";
pname = "freicoin";
src = fetchFromGitHub {
owner = "freicoin";
repo = "freicoin";
rev = "v${version}";
sha256 = "1v1qwv4x5agjba82s1vknmdgq67y26wzdwbmwwqavv7f7y3y860h";
};
enableParallelBuilding = false;
qmakeFlags = ["USE_UPNP=-"];
# I think that openssl and zlib are required, but come through other
# packages
preBuild = "unset AR";
installPhase = ''
mkdir -p $out/bin
cp freicoin-qt $out/bin
'';
nativeBuildInputs = [ qmake4Hook ];
buildInputs = [ db boost gmp mpfr qt4 ];
meta = with stdenv.lib; {
description = "Peer-to-peer currency with demurrage fee";
homepage = "http://freicoi.in/";
license = licenses.mit;
maintainers = [ maintainers.viric ];
platforms = platforms.linux;
# upstream doesn't support newer openssl versions, use 1.0.1 for testing
broken = true;
};
}

View file

@ -5,23 +5,23 @@
, llvmPackages , llvmPackages
, openssl , openssl
, pkg-config , pkg-config
, stdenv
, systemd , systemd
, darwin
}: }:
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "openethereum"; pname = "openethereum";
version = "3.0.1"; version = "3.1.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "openethereum"; owner = "openethereum";
repo = "openethereum"; repo = "openethereum";
rev = "v${version}"; rev = "v${version}";
sha256 = "08dkcrga1x18csh6pw6f54x5xwijppyjhg46cf4p452xc1l3a6ir"; sha256 = "cs84Zz0nhagGDu5sDFTaFZF3SPEgJU8F4vGX7KLihOM=";
}; };
cargoSha256 = "1xliragihwjfc5qmfm0ng519bw8a28m1w1yqcl9mpk8zywiybaah"; cargoSha256 = "6suNkHw1BbISb0MkYkUaD+mpUal+kn3y1SFVqzJFqJc=";
cargoPatches = [ ./lock.patch ];
LIBCLANG_PATH = "${llvmPackages.libclang}/lib"; LIBCLANG_PATH = "${llvmPackages.libclang}/lib";
nativeBuildInputs = [ nativeBuildInputs = [
@ -31,7 +31,9 @@ rustPlatform.buildRustPackage rec {
pkg-config pkg-config
]; ];
buildInputs = [ openssl systemd ]; buildInputs = [ openssl ]
++ stdenv.lib.optionals stdenv.isLinux [ systemd ]
++ stdenv.lib.optionals stdenv.isDarwin [ darwin.Security ];
cargoBuildFlags = [ "--features final" ]; cargoBuildFlags = [ "--features final" ];
@ -43,6 +45,6 @@ rustPlatform.buildRustPackage rec {
homepage = "http://parity.io/ethereum"; homepage = "http://parity.io/ethereum";
license = licenses.gpl3; license = licenses.gpl3;
maintainers = with maintainers; [ akru xrelkd ]; maintainers = with maintainers; [ akru xrelkd ];
platforms = platforms.linux; platforms = stdenv.lib.platforms.unix;
}; };
} }

View file

@ -1,20 +0,0 @@
--- /nix/store/hv764a65zmfzw5scjhz5839agv10da6x-source/Cargo.lock 1969-12-31 16:00:01.000000000 -0800
+++ ./Cargo.lock 2020-07-31 21:30:31.146750066 -0700
@@ -3113,7 +3113,7 @@
[[package]]
name = "openethereum"
-version = "3.0.0"
+version = "3.0.1"
dependencies = [
"ansi_term",
"atty",
@@ -3562,7 +3562,7 @@
[[package]]
name = "parity-version"
-version = "3.0.0"
+version = "3.0.1"
dependencies = [
"parity-bytes",
"rlp",

View file

@ -52,7 +52,7 @@ stdenv.mkDerivation rec {
Zero Knowledge cryptography proofs for industry-leading transaction anonymity. Zero Knowledge cryptography proofs for industry-leading transaction anonymity.
''; '';
license = licenses.mit; license = licenses.mit;
homepage = "https://www.dash.org"; homepage = "https://pivx.org";
maintainers = with maintainers; [ wucke13 ]; maintainers = with maintainers; [ wucke13 ];
platforms = platforms.unix; platforms = platforms.unix;
}; };

View file

@ -7,16 +7,16 @@
}: }:
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "polkadot"; pname = "polkadot";
version = "0.8.26"; version = "0.8.26-1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "paritytech"; owner = "paritytech";
repo = "polkadot"; repo = "polkadot";
rev = "v${version}"; rev = "v${version}";
sha256 = "1bvma6k3gsjqh8w76k4kf52sjg8wxn1b7a409kmnmmvmd9j6z5ia"; sha256 = "17ji1gjrx3gzw4msaz9kgvm132y14wgh8z183l3mfw1cj44a6kqk";
}; };
cargoSha256 = "0pacmmvvjgzmaxgg47qbfhqwl02jxj3i6vnmkjbj9npzqfmqf72d"; cargoSha256 = "07zwlwx02xw1y20br2c4grwv7bprhynqy7gav4qh3vw117ijpiqk";
nativeBuildInputs = [ clang ]; nativeBuildInputs = [ clang ];

View file

@ -0,0 +1,29 @@
{ stdenv, buildGoModule, fetchFromGitHub }:
buildGoModule rec {
pname = "turbo-geth";
version = "2020.11.01";
src = fetchFromGitHub {
owner = "ledgerwatch";
repo = pname;
rev = "v${version}";
sha256 = "0hm8kqd0w231mlclsmsghf15r8pbrs5g064mkpx59qpqzk37lgss";
};
vendorSha256 = "0b7ldrnwkz3r1d4fw95hvvpi3bz56d9v8p2mjzdvlpk5zhl2a37p";
runVend = true;
subPackages = [
"cmd/tg"
"cmd/restapi"
"cmd/rpcdaemon"
];
meta = with stdenv.lib; {
homepage = "https://github.com/ledgerwatch/turbo-geth/";
description = "Ethereum node and geth fork focused on scalability and modularity";
license = with licenses; [ lgpl3 gpl3 ];
maintainers = with maintainers; [ xwvvvvwx ];
};
}

View file

@ -9,9 +9,9 @@ let
inherit buildFHSUserEnv; inherit buildFHSUserEnv;
}; };
stableVersion = { stableVersion = {
version = "4.1.0.19"; # "Android Studio 4.1.0" version = "4.1.1.0"; # "Android Studio 4.1.1"
build = "201.6858069"; build = "201.6953283";
sha256Hash = "sha256-S5Uh/EpjE61l/z4UsPP7UEJ9Rk/hQidVVWX0bg/60gI="; sha256Hash = "sha256-aAMhhJWcVFdvEZt8fI3tF12Eg3TzlU+kUFMNeCYN1os=";
}; };
betaVersion = { betaVersion = {
version = "4.1.0.18"; # "Android Studio 4.1 RC 3" version = "4.1.0.18"; # "Android Studio 4.1 RC 3"

View file

@ -40,11 +40,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "gnome-builder"; pname = "gnome-builder";
version = "3.36.1"; version = "3.38.1";
src = fetchurl { src = fetchurl {
url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "17pvmd5jypar8dkr6w56hvf7jnq4l1wih2wwgkrv7sblr7rkkar2"; sha256 = "06wcyfrwcjyj2vcqyw0z3sy1r4qxpcdpwqq1qmpsaphpz8acycjn";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View file

@ -1,14 +1,14 @@
{ stdenv, fetchurl, wrapGAppsHook, gsettings-desktop-schemas, gspell, gtksourceview4, libgee { stdenv, fetchurl, wrapGAppsHook, gsettings-desktop-schemas, gspell, gtksourceview4, libgee
, tepl, amtk, gnome3, glib, pkgconfig, intltool, itstool, libxml2 }: , tepl, amtk, gnome3, glib, pkgconfig, intltool, itstool, libxml2 }:
let let
version = "3.36.0"; version = "3.38.0";
pname = "gnome-latex"; pname = "gnome-latex";
in stdenv.mkDerivation { in stdenv.mkDerivation {
name = "${pname}-${version}"; name = "${pname}-${version}";
src = fetchurl { src = fetchurl {
url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "1869kr1zhcp04mzbi67lwgk497w840dbbc7427i9yh9b9s7j6mqn"; sha256 = "0xqd49pgi82dygqnxj08i1v22b0vwwhx3zvdinhrx4jny339yam8";
}; };
NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0"; NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0";

View file

@ -1,5 +1,5 @@
{ source ? "default", callPackage, stdenv, ncurses, pkgconfig, gettext { source ? "default", callPackage, stdenv, ncurses, pkgconfig, gettext
, writeText, config, glib, gtk2-x11, gtk3-x11, lua, python, perl, tcl, ruby , writeText, config, glib, gtk2-x11, gtk3-x11, lua, python3, perl, tcl, ruby
, libX11, libXext, libSM, libXpm, libXt, libXaw, libXau, libXmu , libX11, libXext, libSM, libXpm, libXt, libXaw, libXau, libXmu
, libICE , libICE
, vimPlugins , vimPlugins
@ -62,8 +62,6 @@ let
common = callPackage ./common.nix {}; common = callPackage ./common.nix {};
isPython3 = python.isPy3 or false;
in stdenv.mkDerivation rec { in stdenv.mkDerivation rec {
pname = "vim_configurable"; pname = "vim_configurable";
@ -106,9 +104,10 @@ in stdenv.mkDerivation rec {
"--with-luajit" "--with-luajit"
] ]
++ stdenv.lib.optionals pythonSupport [ ++ stdenv.lib.optionals pythonSupport [
"--enable-python${if isPython3 then "3" else ""}interp=yes" "--enable-python3interp=yes"
"--with-python${if isPython3 then "3" else ""}-config-dir=${python}/lib" "--with-python3-config-dir=${python3}/lib"
"--disable-python${if (!isPython3) then "3" else ""}interp" # Disables Python 2
"--disable-pythoninterp"
] ]
++ stdenv.lib.optional nlsSupport "--enable-nls" ++ stdenv.lib.optional nlsSupport "--enable-nls"
++ stdenv.lib.optional perlSupport "--enable-perlinterp" ++ stdenv.lib.optional perlSupport "--enable-perlinterp"
@ -134,7 +133,7 @@ in stdenv.mkDerivation rec {
++ stdenv.lib.optional (guiSupport == "gtk3") gtk3-x11 ++ stdenv.lib.optional (guiSupport == "gtk3") gtk3-x11
++ stdenv.lib.optionals darwinSupport [ CoreServices CoreData Cocoa Foundation libobjc ] ++ stdenv.lib.optionals darwinSupport [ CoreServices CoreData Cocoa Foundation libobjc ]
++ stdenv.lib.optional luaSupport lua ++ stdenv.lib.optional luaSupport lua
++ stdenv.lib.optional pythonSupport python ++ stdenv.lib.optional pythonSupport python3
++ stdenv.lib.optional tclSupport tcl ++ stdenv.lib.optional tclSupport tcl
++ stdenv.lib.optional rubySupport ruby; ++ stdenv.lib.optional rubySupport ruby;
@ -163,7 +162,7 @@ in stdenv.mkDerivation rec {
ln -sfn '${nixosRuntimepath}' "$out"/share/vim/vimrc ln -sfn '${nixosRuntimepath}' "$out"/share/vim/vimrc
'' + stdenv.lib.optionalString wrapPythonDrv '' '' + stdenv.lib.optionalString wrapPythonDrv ''
wrapProgram "$out/bin/vim" --prefix PATH : "${python}/bin" wrapProgram "$out/bin/vim" --prefix PATH : "${python3}/bin"
'' + stdenv.lib.optionalString (guiSupport == "gtk3") '' '' + stdenv.lib.optionalString (guiSupport == "gtk3") ''
rewrap () { rewrap () {

View file

@ -163,8 +163,10 @@ in stdenv.mkDerivation rec {
# The declarations for `gimp-with-plugins` wrapper, # The declarations for `gimp-with-plugins` wrapper,
# used for determining plug-in installation paths # used for determining plug-in installation paths
majorVersion = "${lib.versions.major version}.0"; majorVersion = "${lib.versions.major version}.0";
targetPluginDir = "lib/gimp/${majorVersion}/plug-ins"; targetLibDir = "lib/gimp/${majorVersion}";
targetScriptDir = "share/gimp/${majorVersion}/scripts"; targetDataDir = "share/gimp/${majorVersion}";
targetPluginDir = "${targetLibDir}/plug-ins";
targetScriptDir = "${targetDataDir}/scripts";
# probably its a good idea to use the same gtk in plugins ? # probably its a good idea to use the same gtk in plugins ?
gtk = gtk2; gtk = gtk2;

View file

@ -1,33 +1,51 @@
# install these packages into your profile. Then add # Use `gimp-with-plugins` package for GIMP with all plug-ins.
# ~/.nix-profile/gimp-version-plugins to your plugin list you can find at # If you just want a subset of plug-ins, you can specify them explicitly:
# preferences -> Folders -> Plug-ins # `gimp-with-plugins.override { plugins = with gimpPlugins; [ gap ]; }`.
# same applies for the scripts
{ config, lib, pkgs }:
{ config, pkgs, gimp }:
let let
inherit (pkgs) stdenv fetchurl pkgconfig intltool glib fetchFromGitHub; inherit (pkgs) stdenv fetchurl pkg-config intltool glib fetchFromGitHub;
inherit (gimp) targetPluginDir targetScriptDir; in
pluginDerivation = a: let lib.makeScope pkgs.newScope (self:
name = a.name or "${a.pname}-${a.version}";
let
# Use GIMP from the scope.
inherit (self) gimp;
pluginDerivation = attrs: let
name = attrs.name or "${attrs.pname}-${attrs.version}";
in stdenv.mkDerivation ({ in stdenv.mkDerivation ({
prePhases = "extraLib"; prePhases = "extraLib";
extraLib = '' extraLib = ''
installScripts(){ installScripts(){
mkdir -p $out/${targetScriptDir}/${name}; mkdir -p $out/${gimp.targetScriptDir}/${name};
for p in "$@"; do cp "$p" -r $out/${targetScriptDir}/${name}; done for p in "$@"; do cp "$p" -r $out/${gimp.targetScriptDir}/${name}; done
} }
installPlugins(){ installPlugins(){
mkdir -p $out/${targetPluginDir}/${name}; mkdir -p $out/${gimp.targetPluginDir}/${name};
for p in "$@"; do cp "$p" -r $out/${targetPluginDir}/${name}; done for p in "$@"; do cp "$p" -r $out/${gimp.targetPluginDir}/${name}; done
} }
''; '';
# Override installation paths.
PKG_CONFIG_GIMP_2_0_GIMPLIBDIR = "${placeholder "out"}/${gimp.targetLibDir}";
PKG_CONFIG_GIMP_2_0_GIMPDATADIR = "${placeholder "out"}/${gimp.targetDataDir}";
} }
// a // attrs
// { // {
name = "gimp-plugin-${name}"; name = "gimp-plugin-${name}";
buildInputs = [ gimp gimp.gtk glib ] ++ (a.buildInputs or []); buildInputs = [
nativeBuildInputs = [ pkgconfig intltool ] ++ (a.nativeBuildInputs or []); gimp
gimp.gtk
glib
] ++ (attrs.buildInputs or []);
nativeBuildInputs = [
pkg-config
intltool
] ++ (attrs.nativeBuildInputs or []);
} }
); );
@ -35,10 +53,11 @@ let
phases = [ "extraLib" "installPhase" ]; phases = [ "extraLib" "installPhase" ];
installPhase = "installScripts ${src}"; installPhase = "installScripts ${src}";
} // attrs); } // attrs);
in in
{
# Allow overriding GIMP package in the scope.
inherit (pkgs) gimp;
stdenv.lib.makeScope pkgs.newScope (self: with self; {
gap = pluginDerivation { gap = pluginDerivation {
/* menu: /* menu:
Video Video
@ -49,10 +68,6 @@ stdenv.lib.makeScope pkgs.newScope (self: with self; {
sha256 = "1jic7ixcmsn4kx2cn32nc5087rk6g8xsrz022xy11yfmgvhzb0ql"; sha256 = "1jic7ixcmsn4kx2cn32nc5087rk6g8xsrz022xy11yfmgvhzb0ql";
}; };
NIX_LDFLAGS = "-lm"; NIX_LDFLAGS = "-lm";
patchPhase = ''
sed -e 's,^\(GIMP_PLUGIN_DIR=\).*,\1'"$out/${gimp.name}-plugins", \
-e 's,^\(GIMP_DATA_DIR=\).*,\1'"$out/share/${gimp.name}", -i configure
'';
hardeningDisable = [ "format" ]; hardeningDisable = [ "format" ];
meta = with stdenv.lib; { meta = with stdenv.lib; {
description = "The GIMP Animation Package"; description = "The GIMP Animation Package";
@ -99,7 +114,7 @@ stdenv.lib.makeScope pkgs.newScope (self: with self; {
version = "2.0.3"; version = "2.0.3";
buildInputs = with pkgs; [ fftw ]; buildInputs = with pkgs; [ fftw ];
nativeBuildInputs = with pkgs; [ autoreconfHook ]; nativeBuildInputs = with pkgs; [ autoreconfHook ];
makeFlags = [ "GIMP_LIBDIR=${placeholder "out"}/lib/gimp/2.0" ]; makeFlags = [ "GIMP_LIBDIR=${placeholder "out"}/${gimp.targetLibDir}" ];
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "bootchk"; owner = "bootchk";
repo = "resynthesizer"; repo = "resynthesizer";
@ -127,24 +142,25 @@ stdenv.lib.makeScope pkgs.newScope (self: with self; {
name = "wavelet-sharpen-0.1.2"; name = "wavelet-sharpen-0.1.2";
NIX_LDFLAGS = "-lm"; NIX_LDFLAGS = "-lm";
src = fetchurl { src = fetchurl {
url = "http://registry.gimp.org/files/wavelet-sharpen-0.1.2.tar.gz"; url = "https://github.com/pixlsus/registry.gimp.org_static/raw/master/registry.gimp.org/files/wavelet-sharpen-0.1.2.tar.gz";
sha256 = "0vql1k67i21g5ivaa1jh56rg427m0icrkpryrhg75nscpirfxxqw"; sha256 = "0vql1k67i21g5ivaa1jh56rg427m0icrkpryrhg75nscpirfxxqw";
}; };
installPhase = "installPlugins src/wavelet-sharpen"; # TODO translations are not copied .. How to do this on nix? installPhase = "installPlugins src/wavelet-sharpen"; # TODO translations are not copied .. How to do this on nix?
}; };
lqrPlugin = pluginDerivation { lqrPlugin = pluginDerivation rec {
/* menu: /* menu:
Layer/Liquid Rescale Layer/Liquid Rescale
*/ */
name = "lqr-plugin-0.6.1"; pname = "lqr-plugin";
version = "0.7.2";
buildInputs = with pkgs; [ liblqr1 ]; buildInputs = with pkgs; [ liblqr1 ];
src = fetchurl { src = fetchFromGitHub {
url = "http://registry.gimp.org/files/gimp-lqr-plugin-0.6.1.tar.bz2"; owner = "carlobaldassi";
sha256 = "00hklkpcimcbpjly4rjhfipaw096cpy768g9wixglwrsyqhil7l9"; repo = "gimp-lqr-plugin";
rev = "v${version}";
sha256 = "81ajdZ2zQi/THxnBlSeT36tVTEzrS1YqLGpHMhFTKAo=";
}; };
#postInstall = ''mkdir -p $out/nix-support; echo "${liblqr1}" > "$out/nix-support/propagated-user-env-packages"'';
installPhase = "installPlugins src/gimp-lqr-plugin";
}; };
gmic = pkgs.gmic-qt.override { gmic = pkgs.gmic-qt.override {
@ -196,37 +212,8 @@ stdenv.lib.makeScope pkgs.newScope (self: with self; {
lightning = scriptDerivation { lightning = scriptDerivation {
name = "Lightning"; name = "Lightning";
src = fetchurl { src = fetchurl {
url = "http://registry.gimp.org/files/Lightning.scm"; url = "https://github.com/pixlsus/registry.gimp.org_static/raw/master/registry.gimp.org/files/Lightning.scm";
sha256 = "c14a8f4f709695ede3f77348728a25b3f3ded420da60f3f8de3944b7eae98a49"; sha256 = "c14a8f4f709695ede3f77348728a25b3f3ded420da60f3f8de3944b7eae98a49";
}; };
}; };
/* space in name trouble ?
rainbowPlasma = scriptDerivation {
# http://registry.gimp.org/node/164
name = "rainbow-plasma";
src = fetchurl {
url = "http://registry.gimp.org/files/Rainbow Plasma.scm";
sha256 = "34308d4c9441f9e7bafa118af7ec9540f10ea0df75e812e2f3aa3fd7b5344c23";
name = "Rainbow-Plasma.scm"; # nix doesn't like spaces, does it?
};
};
*/
/* doesn't seem to be working :-(
lightningGate = scriptDerivation {
# http://registry.gimp.org/node/153
name = "lightning-gate";
src = fetchurl {
url = "http://registry.gimp.org/files/LightningGate.scm";
sha256 = "181w1zi9a99kn2mfxjp43wkwcgw5vbb6iqjas7a9mhm8p04csys2";
};
};
*/
} // stdenv.lib.optionalAttrs (config.allowAliases or true) {
resynthesizer2 = resynthesizer;
}) })

View file

@ -2,7 +2,7 @@
let let
allPlugins = lib.filter (pkg: lib.isDerivation pkg && !pkg.meta.broken or false) (lib.attrValues gimpPlugins); allPlugins = lib.filter (pkg: lib.isDerivation pkg && !pkg.meta.broken or false) (lib.attrValues gimpPlugins);
selectedPlugins = if plugins == null then allPlugins else plugins; selectedPlugins = lib.filter (pkg: pkg != gimpPlugins.gimp) (if plugins == null then allPlugins else plugins);
extraArgs = map (x: x.wrapArgs or "") selectedPlugins; extraArgs = map (x: x.wrapArgs or "") selectedPlugins;
versionBranch = stdenv.lib.versions.majorMinor gimp.version; versionBranch = stdenv.lib.versions.majorMinor gimp.version;

View file

@ -1,5 +1,6 @@
{ stdenv { stdenv
, fetchurl , fetchurl
, fetchpatch
, at-spi2-core , at-spi2-core
, babl , babl
, dbus , dbus
@ -35,17 +36,32 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "gnome-photos"; pname = "gnome-photos";
version = "3.34.2"; version = "3.38.0";
outputs = [ "out" "installedTests" ]; outputs = [ "out" "installedTests" ];
src = fetchurl { src = fetchurl {
url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "06ml5sf8xhpan410msqz085hmfc7082d368pb82yq646y9pcfn9w"; sha256 = "1i64w69kk3sdf9vn7npnwrhy8qjwn0vizq200x3pgmbrfm3kjzv6";
}; };
patches = [ patches = [
./installed-tests-path.patch ./installed-tests-path.patch
# Port to Tracker 3
# https://gitlab.gnome.org/GNOME/gnome-photos/-/merge_requests/135
(fetchpatch {
url = "https://gitlab.gnome.org/GNOME/gnome-photos/commit/f39a85bb1a82093f4ba615494ff7e95609674fc2.patch";
sha256 = "M5r5WuB1JpUBVN3KxNvpMiPWj0pIpT+ImQMOiGtUgT4=";
})
(fetchpatch {
url = "https://gitlab.gnome.org/GNOME/gnome-photos/commit/3d847ff80d429cadf0bc59aa50caa37bf27c0201.patch";
sha256 = "zGjSL1qpWVJ/5Ifgh2CbhFSBR/WDAra8F+YUOemyxyU=";
})
(fetchpatch {
url = "https://gitlab.gnome.org/GNOME/gnome-photos/commit/2eb923726147b05c936dee64b205d833525db1df.patch";
sha256 = "vCA6NXHzmNf2GoLqzWwIyziC6puJgJ0QTLeKWsAEFAE=";
})
]; ];
nativeBuildInputs = [ nativeBuildInputs = [

View file

@ -24,10 +24,10 @@ stdenv.mkDerivation rec {
buildInputs = buildInputs =
[ bzip2 freetype ghostscript graphviz libjpeg libpng libtiff libX11 libxml2 [ bzip2 freetype ghostscript graphviz libjpeg libpng libtiff libX11 libxml2
zlib libtool libwebp zlib libtool libwebp
] ];
++ stdenv.lib.optional stdenv.isDarwin fixDarwinDylibNames;
nativeBuildInputs = [ xz ]; nativeBuildInputs = [ xz ]
++ stdenv.lib.optional stdenv.hostPlatform.isDarwin fixDarwinDylibNames;
postInstall = '' postInstall = ''
sed -i 's/-ltiff.*'\'/\'/ $out/bin/* sed -i 's/-ltiff.*'\'/\'/ $out/bin/*

View file

@ -6,7 +6,7 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "lightburn"; pname = "lightburn";
version = "0.9.16"; version = "0.9.18";
nativeBuildInputs = [ nativeBuildInputs = [
p7zip p7zip
@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
src = fetchurl { src = fetchurl {
url = "https://github.com/LightBurnSoftware/deployment/releases/download/${version}/LightBurn-Linux64-v${version}.7z"; url = "https://github.com/LightBurnSoftware/deployment/releases/download/${version}/LightBurn-Linux64-v${version}.7z";
sha256 = "0xmpglfzff3jpxbr304czsa24fbp497b69yd8kjkjdp2cd0l70qc"; sha256 = "0inl6zmc1726gmj85jbvq3ra4zphd2ikhrnqphgy2b0c72yh4pf7";
}; };
buildInputs = [ buildInputs = [

View file

@ -2,16 +2,16 @@
buildGoModule rec { buildGoModule rec {
pname = "pdfcpu"; pname = "pdfcpu";
version = "0.3.6"; version = "0.3.7";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "pdfcpu"; owner = "pdfcpu";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "0cbbbf93gxx768fs6pldy25xk46k7mc8k94r3f7cd83f1qd3s5zn"; sha256 = "13b1ncpx189ca0h70j5cdp0jwlj95kasysryz1l6g13cwn9n6mii";
}; };
vendorSha256 = "1i0w4284icbl40yrjny9qd5iqrq18x63lrs7p1gz58nybc606azx"; vendorSha256 = "11w9i1829hk1qb9w24dyxv1bi49358a274g60x11fp5x5cw7bqa7";
# No tests # No tests
doCheck = false; doCheck = false;

View file

@ -2,13 +2,13 @@
mkDerivation rec { mkDerivation rec {
pname = "qview"; pname = "qview";
version = "3.0"; version = "4.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "jurplel"; owner = "jurplel";
repo = "qView"; repo = "qView";
rev = version; rev = version;
sha256 = "15a91bs3wcqhgf76wzigbn10hayg628j84pq4j2vaxar94ak0vk7"; sha256 = "15n9cq7w3ckinnx38hvncxrbkv4qm4k51sal41q4y0pkvhmafhnr";
}; };
nativeBuildInputs = [ qmake ]; nativeBuildInputs = [ qmake ];

View file

@ -1,8 +1,8 @@
{ buildGoModule, fetchFromGitHub, installShellFiles, stdenv }: { buildGoModule, fetchFromGitHub, installShellFiles, stdenv }:
let let
humioCtlVersion = "0.27.0"; humioCtlVersion = "0.28.1";
sha256 = "1h65g10dxcaw4wk0gyyyqj9f94xlphj30lp9w6rsfrk4pi3irzr4"; sha256 = "0vy07nzafqhc14i179sfrzb795yh4pcyjj3py9fwq0nwnmxndby4";
vendorSha256 = "0anvah2rpqvxgmdrdj73k3vbf8073nmsl3aykgvb1nraf3gz3bpk"; vendorSha256 = "0anvah2rpqvxgmdrdj73k3vbf8073nmsl3aykgvb1nraf3gz3bpk";
in buildGoModule { in buildGoModule {
name = "humioctl-${humioCtlVersion}"; name = "humioctl-${humioCtlVersion}";

View file

@ -3,13 +3,13 @@
buildGoModule rec { buildGoModule rec {
pname = "cheat"; pname = "cheat";
version = "4.1.0"; version = "4.1.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "cheat"; owner = "cheat";
repo = "cheat"; repo = "cheat";
rev = version; rev = version;
sha256 = "0x6msbbqkwxs6msqacpqw4wlw7c9ilf8n6jqmx297ij6isswgksh"; sha256 = "0mraraby0s213ay2ahqsdvnyg76awbqllrkkx17mrx9z3ykba62d";
}; };
subPackages = [ "cmd/cheat" ]; subPackages = [ "cmd/cheat" ];

View file

@ -2,13 +2,13 @@
buildGoModule rec { buildGoModule rec {
pname = "dstask"; pname = "dstask";
version = "0.23"; version = "0.23.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "naggie"; owner = "naggie";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "15hr0ivwvm2lzpi8l5y5a3hya3i7r85pxna961m24gd4f8gs4cjl"; sha256 = "0rfz8jim0xqcwdb5n28942v9r3hbvhjrwdgzvbwc9f9psqg2s8d2";
}; };
# Set vendorSha256 to null because dstask vendors its dependencies (meaning # Set vendorSha256 to null because dstask vendors its dependencies (meaning

View file

@ -19,7 +19,7 @@
}: }:
let let
version = "4.0.3"; version = "4.0.4";
# electrum is not compatible with dnspython 2.0.0 yet # electrum is not compatible with dnspython 2.0.0 yet
# use the latest 1.x release instead # use the latest 1.x release instead
@ -43,7 +43,7 @@ let
owner = "spesmilo"; owner = "spesmilo";
repo = "electrum"; repo = "electrum";
rev = version; rev = version;
sha256 = "1r40i0v7nm35m3pzbd0l5z4qphl13s31l9v5njmyvpfjirdmhjbv"; sha256 = "0bzvyfqnd0r0l8syf95hr3nsh8rmmmcs74bvc7v04v0nm5m0fmf1";
extraPostFetch = '' extraPostFetch = ''
mv $out ./all mv $out ./all
@ -58,7 +58,7 @@ py.pkgs.buildPythonApplication {
src = fetchurl { src = fetchurl {
url = "https://download.electrum.org/${version}/Electrum-${version}.tar.gz"; url = "https://download.electrum.org/${version}/Electrum-${version}.tar.gz";
sha256 = "0q891fgzxvyzjxfczynx92hvclfs8i3nr5nr9sgbvz13hsg4s6lg"; sha256 = "03dc5jwgp18sism5v4lbqfyn2zljchng8j2yi07yf8i01ivy2mmv";
}; };
postUnpack = '' postUnpack = ''

View file

@ -14,15 +14,16 @@
, libdazzle , libdazzle
, gnome3 , gnome3
, tracker , tracker
, libhandy
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "gnome-usage"; pname = "gnome-usage";
version = "3.33.2"; version = "3.38.0";
src = fetchurl { src = fetchurl {
url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "0w3ppfaf15il8mad64qyc9hj1rmlvzs5dyzrxhq7r50k4kyiwmk4"; sha256 = "0mqs39yi2cqwkzlmmgzrszsva5hbdpws6zk4lbi4w2cjzl185mcl";
}; };
nativeBuildInputs = [ nativeBuildInputs = [
@ -43,6 +44,7 @@ stdenv.mkDerivation rec {
libdazzle libdazzle
libgtop libgtop
tracker tracker
libhandy
]; ];
postPatch = '' postPatch = ''

View file

@ -1,4 +1,4 @@
{ stdenv, fetchFromGitHub, gtk3, pythonPackages, intltool, gnome3, { stdenv, fetchFromGitHub, gtk3, pythonPackages, intltool, gexiv2,
pango, gobject-introspection, wrapGAppsHook, gettext, pango, gobject-introspection, wrapGAppsHook, gettext,
# Optional packages: # Optional packages:
enableOSM ? true, osm-gps-map, enableOSM ? true, osm-gps-map,
@ -9,11 +9,11 @@
let let
inherit (pythonPackages) python buildPythonApplication; inherit (pythonPackages) python buildPythonApplication;
in buildPythonApplication rec { in buildPythonApplication rec {
version = "5.0.1"; version = "5.1.3";
pname = "gramps"; pname = "gramps";
nativeBuildInputs = [ wrapGAppsHook gettext ]; nativeBuildInputs = [ wrapGAppsHook gettext ];
buildInputs = [ intltool gtk3 gobject-introspection pango gnome3.gexiv2 ] buildInputs = [ intltool gtk3 gobject-introspection pango gexiv2 ]
# Map support # Map support
++ stdenv.lib.optional enableOSM osm-gps-map ++ stdenv.lib.optional enableOSM osm-gps-map
# Graphviz support # Graphviz support
@ -26,7 +26,7 @@ in buildPythonApplication rec {
owner = "gramps-project"; owner = "gramps-project";
repo = "gramps"; repo = "gramps";
rev = "v${version}"; rev = "v${version}";
sha256 = "1jz1fbjj6byndvir7qxzhd2ryirrd5h2kwndxpp53xdc05z1i8g7"; sha256 = "109dwkswz2h2328xkqk2zj736d117s9pp7rz5cc1qg2vxn1lpm93";
}; };
pythonPath = with pythonPackages; [ bsddb3 PyICU pygobject3 pycairo ]; pythonPath = with pythonPackages; [ bsddb3 PyICU pygobject3 pycairo ];

View file

@ -2,16 +2,16 @@
buildGoModule rec { buildGoModule rec {
pname = "hugo"; pname = "hugo";
version = "0.78.0"; version = "0.78.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "gohugoio"; owner = "gohugoio";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "0la1c6yj9dq9rqxk6m8n8l4cabgzlk0r3was8mvgd80g3x3zn55v"; sha256 = "1rzv6az7fb1xvjxxq31rs42waqpwvks4h03lzjxv0kj8i43z116k";
}; };
vendorSha256 = "09fvvs85rvvh0z4px2bj5908xf1mrcslkzsz09p0gy5i3zaqfnp9"; vendorSha256 = "06cw3qj57nhrxrbbxcyrqn53j6g11rd2q7bxw89fdn901mc26s03";
doCheck = false; doCheck = false;

View file

@ -2,7 +2,7 @@
, cmake, pkgconfig, zlib, libpng, makeWrapper , cmake, pkgconfig, zlib, libpng, makeWrapper
, enableGSL ? true, gsl , enableGSL ? true, gsl
, enableGhostScript ? true, ghostscript , enableGhostScript ? true, ghostscript
, enableMuPDF ? true, mupdf , enableMuPDF ? true, mupdf_1_17
, enableDJVU ? true, djvulibre , enableDJVU ? true, djvulibre
, enableGOCR ? false, gocr # Disabled by default due to crashes , enableGOCR ? false, gocr # Disabled by default due to crashes
, enableTesseract ? true, leptonica, tesseract4 , enableTesseract ? true, leptonica, tesseract4
@ -89,7 +89,7 @@ in stdenv.mkDerivation rec {
cp ${k2pdfopt_src}/mupdf_mod/pdf-* ./source/pdf/ cp ${k2pdfopt_src}/mupdf_mod/pdf-* ./source/pdf/
''; '';
}; };
mupdf_modded = mupdf.overrideAttrs ({ patches ? [], ... }: { mupdf_modded = mupdf_1_17.overrideAttrs ({ patches ? [], ... }: {
patches = patches ++ [ mupdf_patch ]; patches = patches ++ [ mupdf_patch ];
# This function is missing in font.c, see font-win32.c # This function is missing in font.c, see font-win32.c
postPatch = '' postPatch = ''

View file

@ -1,6 +1,6 @@
{ lib, mkDerivation, fetchFromGitHub, fetchpatch { lib, mkDerivation, fetchFromGitHub, fetchpatch
, python, ruby, qtbase, qtmultimedia, qttools, qtxmlpatterns , python, ruby, qtbase, qtmultimedia, qttools, qtxmlpatterns
, which, perl, makeWrapper, fixDarwinDylibNames , which, perl, makeWrapper
}: }:
mkDerivation rec { mkDerivation rec {

View file

@ -1,16 +1,16 @@
{ stdenv, lib, substituteAll, makeWrapper, fetchgit, ocaml, mupdf, libX11, { stdenv, lib, substituteAll, makeWrapper, fetchgit, ocaml, mupdf, libX11, jbig2dec, openjpeg, libjpeg , lcms2, harfbuzz,
libGLU, libGL, freetype, xclip, inotify-tools, procps }: libGLU, libGL, gumbo, freetype, zlib, xclip, inotify-tools, procps }:
assert lib.versionAtLeast (lib.getVersion ocaml) "4.07"; assert lib.versionAtLeast (lib.getVersion ocaml) "4.07";
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "llpp"; pname = "llpp";
version = "32"; version = "33";
src = fetchgit { src = fetchgit {
url = "git://repo.or.cz/llpp.git"; url = "git://repo.or.cz/llpp.git";
rev = "v${version}"; rev = "v${version}";
sha256 = "1h1zysm5cz8laq8li49djl6929cnrjlflag9hw0c1dcr4zaxk32y"; sha256 = "0shqzhaflm2yhkx6c0csq9lxp1s1r7lh5kgpx9q5k06xya2a7yvs";
fetchSubmodules = false; fetchSubmodules = false;
}; };
@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
}); });
nativeBuildInputs = [ makeWrapper ]; nativeBuildInputs = [ makeWrapper ];
buildInputs = [ ocaml mupdf libX11 libGLU libGL freetype ]; buildInputs = [ ocaml mupdf libX11 libGLU libGL freetype zlib gumbo jbig2dec openjpeg libjpeg lcms2 harfbuzz ];
dontStrip = true; dontStrip = true;

View file

@ -1,8 +1,9 @@
diff --git a/build.bash b/build.bash diff --git a/build.bash b/build.bash
index 7c278b6..41494c5 100755 index 7c278b6..41494c5 100755
with manual adjustments
--- a/build.bash --- a/build.bash
+++ b/build.bash +++ b/build.bash
@@ -29,7 +29,6 @@ srcd="$(dirname $0)" @@ -30,7 +30,6 @@ srcd="$(dirname $0)"
mudir=$outd/mupdf mudir=$outd/mupdf
muinc="-I $mudir/include -I $mudir/thirdparty/freetype/include" muinc="-I $mudir/include -I $mudir/thirdparty/freetype/include"
@ -10,25 +11,25 @@ index 7c278b6..41494c5 100755
mkdir -p $outd/{$wsid,lablGL} mkdir -p $outd/{$wsid,lablGL}
:>$outd/ordered :>$outd/ordered
@@ -39,12 +38,6 @@ isfresh() { test -r "$1.past" && . "$1.past" && test "$k" = "$2"; } @@ -41,12 +40,6 @@ isfresh() { test -r "$1.past" && . "$1.past" && test "$k" = "$2"; }
mbt=${mbt:-native} mulibst="$mudir/build/$mbt/libs"
mulibs="$mudir/build/$mbt/libmupdf.a" # $mudir/build/$mbt/libmupdf-third.a mulibs="$mudir/build/$mbt/libmupdf.a $mudir/build/$mbt/libmupdf-third.a"
-keycmd="(cd $mudir && make -q build=$mbt libs && echo); digest $mulibs" -keycmd="(cd $mudir && make -q build=$mbt libs && echo); digest $mulibs"
-isfresh "$mulibs" "$(eval $keycmd)" || ( -isfresh "$mulibst" "$(eval $keycmd)" || (
- make -C "$mudir" build=$mbt -j $mjobs libs - make -C "$mudir" build=$mbt -j $mjobs libs
- eval $keycmd >$mudir/build/$mbt/libmupdf.a.past - eval $keycmd >${mulibst}.past
-) && vecho "fresh mupdf" -) && vecho "fresh mupdf"
- -
oincs() { oincs() {
local i= local i=
local incs1= local incs1=
@@ -89,34 +82,6 @@ mflags() { @@ -100,35 +93,6 @@ mflags() {
} }
overs="$(ocamlc -vnum 2>/dev/null)" || overs="" overs="$(ocamlc -vnum 2>/dev/null)" || overs=""
-test "$overs" = "4.10.0" || { -test "$overs" = "4.11.1" || {
- url=https://caml.inria.fr/pub/distrib/ocaml-4.10/ocaml-4.10.0.tar.xz - url=https://caml.inria.fr/pub/distrib/ocaml-4.11/ocaml-4.11.1.tar.xz
- txz=$outd/$(basename $url) - txz=$outd/$(basename $url)
- keycmd="printf $url; digest $txz;" - keycmd="printf $url; digest $txz;"
- isfresh $txz "$(eval $keycmd)" || { - isfresh $txz "$(eval $keycmd)" || {
@ -48,7 +49,8 @@ index 7c278b6..41494c5 100755
- tar xf $txz -C $outd - tar xf $txz -C $outd
- bn=$(basename $url) - bn=$(basename $url)
- cd $outd/${bn%.tar.xz} - cd $outd/${bn%.tar.xz}
- ./configure --disable-ocamldoc --enable-debugger=no --prefix=$absprefix - ./configure --disable-ocamldoc --disable-ocamltest \
- --enable-debugger=no --prefix=$absprefix
- make -j $mjobs world - make -j $mjobs world
- make install - make install
- eval $keycmd >$absprefix/bin/ocamlc.past - eval $keycmd >$absprefix/bin/ocamlc.past
@ -58,7 +60,7 @@ index 7c278b6..41494c5 100755
ccomp=${LLPP_CC-$(ocamlc -config | grep "^c_compiler: " | \ ccomp=${LLPP_CC-$(ocamlc -config | grep "^c_compiler: " | \
{ read _ c; echo $c; })} { read _ c; echo $c; })}
@@ -230,7 +195,7 @@ bobjc() { @@ -243,7 +208,7 @@ bobjc() {
} && vecho "fresh $o" } && vecho "fresh $o"
} }
@ -67,12 +69,12 @@ index 7c278b6..41494c5 100755
cmd="(. $srcd/genconfstr.sh >$outd/confstruct.ml)" cmd="(. $srcd/genconfstr.sh >$outd/confstruct.ml)"
keycmd="digest $srcd/genconfstr.sh $outd/confstruct.ml" keycmd="digest $srcd/genconfstr.sh $outd/confstruct.ml"
@@ -284,7 +249,7 @@ for m in ml_gl ml_glarray ml_raw; do @@ -291,7 +256,7 @@ for m in ml_gl ml_glarray ml_raw; do
done done
libs="str.cma unix.cma" libs="str.cma unix.cma"
-clibs="-L$mudir/build/$mbt -lmupdf -lmupdf-third -lpthread" -clibs="-L$mudir/build/$mbt -lmupdf -lmupdf-third -lpthread"
+clibs="-lmupdf -lfreetype -lpthread" +clibs="-lmupdf -lmupdf-third -lfreetype -lgumbo -ljpeg -lopenjp2 -ljbig2dec -llcms2 -lharfbuzz -lpthread -lz"
if $darwin; then if $darwin; then
mcomp=$(ocamlc -config | grep bytecomp_c_co | { read _ c; echo $c; }) mcomp=$(ocamlc -config | grep bytecomp_c_co | { read _ c; echo $c; })
clibs="$clibs -framework Cocoa -framework OpenGL" clibs="$clibs -framework Cocoa -framework OpenGL"

View file

@ -0,0 +1,95 @@
{ stdenv, lib, fetchurl, fetchpatch, pkgconfig, freetype, harfbuzz, openjpeg
, jbig2dec, libjpeg , darwin
, enableX11 ? true, libX11, libXext, libXi, libXrandr
, enableCurl ? true, curl, openssl
, enableGL ? true, freeglut, libGLU
}:
let
# OpenJPEG version is hardcoded in package source
openJpegVersion = with stdenv;
lib.versions.majorMinor (lib.getVersion openjpeg);
in stdenv.mkDerivation rec {
version = "1.17.0";
pname = "mupdf";
src = fetchurl {
url = "https://mupdf.com/downloads/archive/${pname}-${version}-source.tar.gz";
sha256 = "13nl9nrcx2awz9l83mlv2psi1lmn3hdnfwxvwgwiwbxlkjl3zqq0";
};
patches =
# Use shared libraries to decrease size
stdenv.lib.optional (!stdenv.isDarwin) ./mupdf-1.14-shared_libs.patch
++ stdenv.lib.optional stdenv.isDarwin ./darwin.patch
;
postPatch = ''
sed -i "s/__OPENJPEG__VERSION__/${openJpegVersion}/" source/fitz/load-jpx.c
'';
makeFlags = [ "prefix=$(out) USE_SYSTEM_LIBS=yes" ];
nativeBuildInputs = [ pkgconfig ];
buildInputs = [ freetype harfbuzz openjpeg jbig2dec libjpeg freeglut libGLU ]
++ lib.optionals enableX11 [ libX11 libXext libXi libXrandr ]
++ lib.optionals enableCurl [ curl openssl ]
++ lib.optionals enableGL (
if stdenv.isDarwin then
with darwin.apple_sdk.frameworks; [ GLUT OpenGL ]
else
[ freeglut libGLU ])
;
outputs = [ "bin" "dev" "out" "man" "doc" ];
preConfigure = ''
# Don't remove mujs because upstream version is incompatible
rm -rf thirdparty/{curl,freetype,glfw,harfbuzz,jbig2dec,libjpeg,openjpeg,zlib}
'';
postInstall = ''
mkdir -p "$out/lib/pkgconfig"
cat >"$out/lib/pkgconfig/mupdf.pc" <<EOF
prefix=$out
libdir=$out/lib
includedir=$out/include
Name: mupdf
Description: Library for rendering PDF documents
Version: ${version}
Libs: -L$out/lib -lmupdf -lmupdf-third
Cflags: -I$dev/include
EOF
moveToOutput "bin" "$bin"
ln -s "$bin/bin/mupdf-x11" "$bin/bin/mupdf"
mkdir -p $bin/share/applications
cat > $bin/share/applications/mupdf.desktop <<EOF
[Desktop Entry]
Type=Application
Version=1.0
Name=mupdf
Comment=PDF viewer
Exec=$bin/bin/mupdf-x11 %f
Terminal=false
MimeType=application/pdf;application/x-pdf;application/x-cbz;application/oxps;application/vnd.ms-xpsdocument;application/epub+zip
EOF
'';
enableParallelBuilding = true;
meta = with stdenv.lib; {
homepage = "https://mupdf.com";
repositories.git = "git://git.ghostscript.com/mupdf.git";
description = "Lightweight PDF, XPS, and E-book viewer and toolkit written in portable C";
license = licenses.agpl3Plus;
maintainers = with maintainers; [ vrthra fpletz ];
platforms = platforms.unix;
knownVulnerabilities = [
"CVE-2020-26519: denial of service when parsing JBIG2"
"CVE-2017-5991: NULL pointer dereference"
];
};
}

View file

@ -1,5 +1,6 @@
{ stdenv, lib, fetchurl, fetchpatch, pkgconfig, freetype, harfbuzz, openjpeg { stdenv, lib, fetchurl, fetchpatch, pkgconfig, freetype, harfbuzz, openjpeg
, jbig2dec, libjpeg , darwin , jbig2dec, libjpeg , darwin
, gumbo
, enableX11 ? true, libX11, libXext, libXi, libXrandr , enableX11 ? true, libX11, libXext, libXi, libXrandr
, enableCurl ? true, curl, openssl , enableCurl ? true, curl, openssl
, enableGL ? true, freeglut, libGLU , enableGL ? true, freeglut, libGLU
@ -13,27 +14,43 @@ let
in stdenv.mkDerivation rec { in stdenv.mkDerivation rec {
version = "1.17.0"; version = "1.18.0";
pname = "mupdf"; pname = "mupdf";
src = fetchurl { src = fetchurl {
url = "https://mupdf.com/downloads/archive/${pname}-${version}-source.tar.gz"; url = "https://mupdf.com/downloads/archive/${pname}-${version}-source.tar.gz";
sha256 = "13nl9nrcx2awz9l83mlv2psi1lmn3hdnfwxvwgwiwbxlkjl3zqq0"; sha256 = "0rljl44y8p8hgaqializlyrgpij1wbnrzyp0ll5kcg7w05nylq48";
}; };
patches = patches =
# Use shared libraries to decrease size stdenv.lib.optional stdenv.isDarwin ./darwin.patch ++ [
stdenv.lib.optional (!stdenv.isDarwin) ./mupdf-1.14-shared_libs.patch (fetchpatch {
++ stdenv.lib.optional stdenv.isDarwin ./darwin.patch name = "pdfocr.patch";
; url = "http://git.ghostscript.com/?p=mupdf.git;a=patch;h=a507b139adf37d2c742e039815601cdc2aa00a84";
sha256 = "1fx6pdgwrbk3bqsx53764d61llfj9s5q8lxqkna7mjnp7mg4krj3";
})
(fetchpatch {
name = "pdf-layer.patch";
url = "http://git.ghostscript.com/?p=mupdf.git;a=patch;h=b82e9b6d6b46877e5c3763cc3bc641c66fa7eb54";
sha256 = "0ma8jq8d9a0mf26qjklgi4gdaflpjik1br1nhafzvjz7ccl56ksm";
})
(fetchpatch {
name = "pixmap.patch";
url = "http://git.ghostscript.com/?p=mupdf.git;a=patch;h=32e4e8b4bcbacbf92af7c88337efae21986d9603";
sha256 = "1zqkxgwrhcwsdya98pcmpq2815jjmv3fwsp0sba9f5nq5xi6whbj";
})
];
postPatch = '' postPatch = ''
sed -i "s/__OPENJPEG__VERSION__/${openJpegVersion}/" source/fitz/load-jpx.c sed -i "s/__OPENJPEG__VERSION__/${openJpegVersion}/" source/fitz/load-jpx.c
''; '';
# Use shared libraries to decrease size
buildFlags = [ "shared" ];
makeFlags = [ "prefix=$(out) USE_SYSTEM_LIBS=yes" ]; makeFlags = [ "prefix=$(out) USE_SYSTEM_LIBS=yes" ];
nativeBuildInputs = [ pkgconfig ]; nativeBuildInputs = [ pkgconfig ];
buildInputs = [ freetype harfbuzz openjpeg jbig2dec libjpeg freeglut libGLU ] buildInputs = [ freetype harfbuzz openjpeg jbig2dec libjpeg freeglut libGLU gumbo ]
++ lib.optionals enableX11 [ libX11 libXext libXi libXrandr ] ++ lib.optionals enableX11 [ libX11 libXext libXi libXrandr ]
++ lib.optionals enableCurl [ curl openssl ] ++ lib.optionals enableCurl [ curl openssl ]
++ lib.optionals enableGL ( ++ lib.optionals enableGL (

View file

@ -35,13 +35,13 @@
buildPythonApplication rec { buildPythonApplication rec {
pname = "orca"; pname = "orca";
version = "3.36.5"; version = "3.38.0";
format = "other"; format = "other";
src = fetchurl { src = fetchurl {
url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "0nyb33p4y6nmln41pi70c8hiyjyasaryy10mazi7b2s6fy9pk25x"; sha256 = "1vkg6p1dlrgx1yyscmy0m58inaq4ljshbdxw0nhi1nwqk3bpjchw";
}; };
patches = [ patches = [

View file

@ -1,6 +1,6 @@
{ stdenv, fetchFromGitHub, pkgs, pythonPackages, wrapGAppsHook}: { stdenv, fetchFromGitHub, pkgs, python3, wrapGAppsHook}:
pythonPackages.buildPythonApplication { python3.pkgs.buildPythonApplication {
pname = "pdf-quench"; pname = "pdf-quench";
version = "1.0.5"; version = "1.0.5";
@ -18,7 +18,7 @@ pythonPackages.buildPythonApplication {
goocanvas2 goocanvas2
poppler_gi poppler_gi
]; ];
propagatedBuildInputs = with pythonPackages; [ pygobject3 pypdf2 ]; propagatedBuildInputs = with python3.pkgs; [ pygobject3 pypdf2 ];
format = "other"; format = "other";
doCheck = false; doCheck = false;

View file

@ -1,5 +1,5 @@
{ stdenv, fetchFromGitHub, cmake, pkgconfig, zip, gettext, perl { stdenv, fetchFromGitHub, cmake, pkgconfig, zip, gettext, perl
, wxGTK31, libXext, libXi, libXt, libXtst, xercesc , wxGTK30, libXext, libXi, libXt, libXtst, xercesc
, qrencode, libuuid, libyubikey, yubikey-personalization , qrencode, libuuid, libyubikey, yubikey-personalization
, curl, openssl, file , curl, openssl, file
}: }:
@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
cmake gettext perl pkgconfig zip cmake gettext perl pkgconfig zip
]; ];
buildInputs = [ buildInputs = [
libXext libXi libXt libXtst wxGTK31 libXext libXi libXt libXtst wxGTK30
curl qrencode libuuid openssl xercesc curl qrencode libuuid openssl xercesc
libyubikey yubikey-personalization libyubikey yubikey-personalization
file file

View file

@ -0,0 +1,32 @@
{ lib, buildGoModule, fetchFromGitHub }:
buildGoModule rec {
pname = "spicetify-cli";
version = "1.1.0";
src = fetchFromGitHub {
owner = "khanhas";
repo = pname;
rev = "v${version}";
sha256 = "08rnwj7ggh114n3mhhm8hb8fm1njgb4j6vba3hynp8x1c2ngidff";
};
vendorSha256 = "0k06c3jw5z8rw8nk4qf794kyfipylmz6x6l126a2snvwi0lmc601";
# used at runtime, but not installed by default
postInstall = ''
cp -r ${src}/jsHelper $out/bin/jsHelper
'';
doInstallCheck = true;
installCheckPhase = ''
$out/bin/spicetify-cli --help > /dev/null
'';
meta = with lib; {
description = "Command-line tool to customize Spotify client";
homepage = "https://github.com/khanhas/spicetify-cli/";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ jonringer ];
};
}

View file

@ -20,14 +20,14 @@
}: }:
mkDerivation rec { mkDerivation rec {
version = "1.0.0"; version = "1.0.1";
pname = "syncthingtray"; pname = "syncthingtray";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "Martchus"; owner = "Martchus";
repo = "syncthingtray"; repo = "syncthingtray";
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-mB23UOUrOfEmbFfVsAXyi3iod0NAfp/sl7Gkklqfmbo="; sha256 = "1dln5gh3p8nz9qmg07cw2s0lpzp3rfhyrwdhczj89g27bwk0lr4k";
}; };
buildInputs = [ qtbase cpp-utilities qtutilities ] buildInputs = [ qtbase cpp-utilities qtutilities ]

View file

@ -2,16 +2,16 @@
buildGoModule rec { buildGoModule rec {
pname = "amfora"; pname = "amfora";
version = "1.5.0"; version = "1.6.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "makeworld-the-better-one"; owner = "makeworld-the-better-one";
repo = "amfora"; repo = "amfora";
rev = "v${version}"; rev = "v${version}";
sha256 = "011h5xzwiafh3fdp9wil8n618p45ph9swa66lw6s82ijpiizz79s"; sha256 = "1f5r12hmdgj26p4ss5pcpfcvqlcn19fr9xvvvk2izckcr48p4fy7";
}; };
vendorSha256 = "10f3bh3r3jc1185r8r1ihg8rprdpl8qwg5b6wqwsda96ydkbpi2b"; vendorSha256 = "0mkk7xxfxxp1w9890mkmag11mzxhy2zmh8v1macpyp1zmzgs21f8";
postInstall = '' postInstall = ''
sed -i "s:amfora:$out/bin/amfora:" amfora.desktop sed -i "s:amfora:$out/bin/amfora:" amfora.desktop

View file

@ -1,8 +1,8 @@
{ {
"stable": { "stable": {
"version": "86.0.4240.183", "version": "86.0.4240.193",
"sha256": "1g39i82js7fm4fqb8i66d6xs0kzqjxzi4vzvvwz5y9rkbikcc4ma", "sha256": "0d55xkw3fygqpa3a5bvz7vqmzb0d9w1kis72h54cnwsqgw4xag90",
"sha256bin64": "1r0dxqsx6j19hgwr3v2sdlb2vd7gb961c4wba4ymd8wy8j8pzly9", "sha256bin64": "1x1f8fv0fi965apk2a5v6jmhz8j5m3rz0k5x5vmkwqprvlblfjpw",
"deps": { "deps": {
"gn": { "gn": {
"version": "2020-08-07", "version": "2020-08-07",
@ -13,9 +13,9 @@
} }
}, },
"beta": { "beta": {
"version": "87.0.4280.40", "version": "87.0.4280.47",
"sha256": "07xh76fl257np68way6i5rf64qbvirkfddy7m5gvqb0fzcqd7dp3", "sha256": "0a3c4kz85857wrbcxqknbqmai250d36nq332l66a83r8sidhbxfq",
"sha256bin64": "1b2z0aqlh28pqrk6dmabxp1d4mvp9iyfmi4kqmns4cdpg0qgaf41", "sha256bin64": "0bjls2airr4p448rx7im1a7gff68yfnfb5vymr4bin4kz0s38mpw",
"deps": { "deps": {
"gn": { "gn": {
"version": "2020-09-09", "version": "2020-09-09",
@ -26,15 +26,15 @@
} }
}, },
"dev": { "dev": {
"version": "88.0.4300.0", "version": "88.0.4315.5",
"sha256": "00cfs2rp4h8ybn2snr1d8ygg635hx7q5gv2aqriy1j6f8a1pgh1b", "sha256": "0k6man2xq8vmnk73dqv3fcc9929agqq8j6s6nvc9z653q4jdphkw",
"sha256bin64": "110r1m14h91212nx6pfhn8wkics7wlwx1608l5cqsxxcpvpzl3pv", "sha256bin64": "0m139w8lwaawridk8in24ss1g1i6ah5298xky226k3vhk5i4mn3j",
"deps": { "deps": {
"gn": { "gn": {
"version": "2020-09-09", "version": "2020-10-21",
"url": "https://gn.googlesource.com/gn", "url": "https://gn.googlesource.com/gn",
"rev": "e002e68a48d1c82648eadde2f6aafa20d08c36f2", "rev": "f5f465b52e5df6d4de9fbe67cc79f1914ba4dbfc",
"sha256": "0x4c7amxwzxs39grqs3dnnz0531mpf1p75niq7zhinyfqm86i4dk" "sha256": "1xb31vsvg27ivvcdyiq93h8wj4d90qdrpagfh1dvm6xszkajsca1"
} }
} }
} }

View file

@ -344,7 +344,12 @@ let
patchelf --set-rpath "${libGL}/lib:$origRpath" "$chromiumBinary" patchelf --set-rpath "${libGL}/lib:$origRpath" "$chromiumBinary"
''; '';
passthru.updateScript = ./update.py; passthru = {
updateScript = ./update.py;
chromiumDeps = {
gn = gnChromium;
};
};
}; };
# Remove some extraAttrs we supplied to the base attributes already. # Remove some extraAttrs we supplied to the base attributes already.

View file

@ -37,26 +37,15 @@ let
inherit channel gnome gnomeSupport gnomeKeyringSupport proprietaryCodecs inherit channel gnome gnomeSupport gnomeKeyringSupport proprietaryCodecs
cupsSupport pulseSupport useOzone; cupsSupport pulseSupport useOzone;
inherit ungoogled; inherit ungoogled;
# TODO: Remove after we can update gn for the stable channel (backward incompatible changes):
gnChromium = gn.overrideAttrs (oldAttrs: { gnChromium = gn.overrideAttrs (oldAttrs: {
version = "2020-07-20"; inherit (upstream-info.deps.gn) version;
src = fetchgit { src = fetchgit {
url = "https://gn.googlesource.com/gn"; inherit (upstream-info.deps.gn) url rev sha256;
rev = "3028c6a426a4aaf6da91c4ebafe716ae370225fe";
sha256 = "0h3wf4152zdvrbb0jbj49q6814lfl3rcy5mj8b2pl9s0ahvkbc6q";
}; };
}); });
} // lib.optionalAttrs (lib.versionAtLeast upstream-info.version "87") { } // lib.optionalAttrs (lib.versionAtLeast upstream-info.version "87") {
useOzone = true; # YAY: https://chromium-review.googlesource.com/c/chromium/src/+/2382834 \o/ useOzone = true; # YAY: https://chromium-review.googlesource.com/c/chromium/src/+/2382834 \o/
useVaapi = !stdenv.isAarch64; # TODO: Might be best to not set use_vaapi anymore (default is fine) useVaapi = !stdenv.isAarch64; # TODO: Might be best to not set use_vaapi anymore (default is fine)
gnChromium = gn.overrideAttrs (oldAttrs: {
version = "2020-08-17";
src = fetchgit {
url = "https://gn.googlesource.com/gn";
rev = "6f13aaac55a977e1948910942675c69f2b4f7a94";
sha256 = "01hpma1sllpdx09mvr4d6073sg6zmk6iv44kd3r28khymcj4s251";
};
});
}); });
browser = callPackage ./browser.nix { inherit channel enableWideVine; }; browser = callPackage ./browser.nix { inherit channel enableWideVine; };

View file

@ -1,6 +1,6 @@
{ {
"86.0.4240.111" = { "86.0.4240.183" = {
rev = "86.0.4240.111-1"; rev = "86.0.4240.183-1";
sha256 = "0fkk0lxbvik8q8d5njxmwiam64qz5g74hlb56w24nh5mh1jm59a8"; sha256 = "0528l2wr5bpl1cwsxzl5zxz1gw91kffkh5j1kzmc5n7m4mscqxyc";
}; };
} }

View file

@ -1,13 +1,15 @@
#! /usr/bin/env nix-shell #! /usr/bin/env nix-shell
#! nix-shell -i python -p python3 nix #! nix-shell -i python -p python3 nix nix-prefetch-git
import csv import csv
import json import json
import re
import subprocess import subprocess
import sys import sys
from codecs import iterdecode from codecs import iterdecode
from collections import OrderedDict from collections import OrderedDict
from datetime import datetime
from os.path import abspath, dirname from os.path import abspath, dirname
from urllib.request import urlopen from urllib.request import urlopen
@ -26,6 +28,30 @@ def nix_prefetch_url(url, algo='sha256'):
out = subprocess.check_output(['nix-prefetch-url', '--type', algo, url]) out = subprocess.check_output(['nix-prefetch-url', '--type', algo, url])
return out.decode('utf-8').rstrip() return out.decode('utf-8').rstrip()
def nix_prefetch_git(url, rev):
print(f'nix-prefetch-git {url} {rev}')
out = subprocess.check_output(['nix-prefetch-git', '--quiet', '--url', url, '--rev', rev])
return json.loads(out)
def get_file_revision(revision, file_path):
url = f'https://raw.githubusercontent.com/chromium/chromium/{revision}/{file_path}'
with urlopen(url) as http_response:
return http_response.read()
def get_channel_dependencies(channel):
deps = get_file_revision(channel['version'], 'DEPS')
gn_pattern = b"'gn_version': 'git_revision:([0-9a-f]{40})'"
gn_commit = re.search(gn_pattern, deps).group(1).decode()
gn = nix_prefetch_git('https://gn.googlesource.com/gn', gn_commit)
return {
'gn': {
'version': datetime.fromisoformat(gn['date']).date().isoformat(),
'url': gn['url'],
'rev': gn['rev'],
'sha256': gn['sha256']
}
}
channels = {} channels = {}
last_channels = load_json(JSON_PATH) last_channels = load_json(JSON_PATH)
@ -58,6 +84,8 @@ with urlopen(HISTORY_URL) as resp:
# the next one. # the next one.
continue continue
channel['deps'] = get_channel_dependencies(channel)
channels[channel_name] = channel channels[channel_name] = channel
with open(JSON_PATH, 'w') as out: with open(JSON_PATH, 'w') as out:

View file

@ -1,17 +1,41 @@
{ {
"stable": { "stable": {
"version": "86.0.4240.111", "version": "86.0.4240.183",
"sha256": "05y7lwr89awkhvgmwkx3br9j4ap2aypg2wsc0nz8mi7kxc1dnyzj", "sha256": "1g39i82js7fm4fqb8i66d6xs0kzqjxzi4vzvvwz5y9rkbikcc4ma",
"sha256bin64": "10aqiiydw4i3jxnw8xxdgkgcqbfqc67n1fbrg40y54kg0v5dz8l6" "sha256bin64": "1r0dxqsx6j19hgwr3v2sdlb2vd7gb961c4wba4ymd8wy8j8pzly9",
"deps": {
"gn": {
"version": "2020-08-07",
"url": "https://gn.googlesource.com/gn",
"rev": "e327ffdc503815916db2543ec000226a8df45163",
"sha256": "0kvlfj3www84zp1vmxh76x8fdjm9hyk8lkh2vdsidafpmm75fphr"
}
}
}, },
"beta": { "beta": {
"version": "87.0.4280.27", "version": "87.0.4280.40",
"sha256": "0w0asxj7jlsw69cssfia8km4q9cx1c2mliks2rmhf4jk0hsghasm", "sha256": "07xh76fl257np68way6i5rf64qbvirkfddy7m5gvqb0fzcqd7dp3",
"sha256bin64": "1lsx4mhy8nachfb8c9f3mrx5nqw2bi046dqirb4lnv7y80jjjs1k" "sha256bin64": "1b2z0aqlh28pqrk6dmabxp1d4mvp9iyfmi4kqmns4cdpg0qgaf41",
"deps": {
"gn": {
"version": "2020-09-09",
"url": "https://gn.googlesource.com/gn",
"rev": "e002e68a48d1c82648eadde2f6aafa20d08c36f2",
"sha256": "0x4c7amxwzxs39grqs3dnnz0531mpf1p75niq7zhinyfqm86i4dk"
}
}
}, },
"dev": { "dev": {
"version": "88.0.4298.4", "version": "88.0.4300.0",
"sha256": "0ka11gmpkyrmifajaxm66c16hrj3xakdvhjqg04slyp2sv0nlhrl", "sha256": "00cfs2rp4h8ybn2snr1d8ygg635hx7q5gv2aqriy1j6f8a1pgh1b",
"sha256bin64": "0768y31jqbl1znp7yp6mvl5j12xl1nwjkh2l8zdga81q0wz52hh6" "sha256bin64": "110r1m14h91212nx6pfhn8wkics7wlwx1608l5cqsxxcpvpzl3pv",
"deps": {
"gn": {
"version": "2020-09-09",
"url": "https://gn.googlesource.com/gn",
"rev": "e002e68a48d1c82648eadde2f6aafa20d08c36f2",
"sha256": "0x4c7amxwzxs39grqs3dnnz0531mpf1p75niq7zhinyfqm86i4dk"
}
}
} }
} }

View file

@ -3,7 +3,7 @@
, meson , meson
, ninja , ninja
, pkgconfig , pkgconfig
, libhandy , libhandy_0
, modemmanager , modemmanager
, gtk3 , gtk3
, gom , gom
@ -43,13 +43,12 @@ stdenv.mkDerivation rec {
buildInputs = [ buildInputs = [
modemmanager modemmanager
libhandy libhandy_0
evolution-data-server evolution-data-server
folks folks
gom gom
gsound gsound
gtk3 gtk3
libhandy
libpeas libpeas
]; ];

View file

@ -19,13 +19,13 @@ let
in in
buildGoModule rec { buildGoModule rec {
pname = "argo"; pname = "argo";
version = "2.11.6"; version = "2.11.7";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "argoproj"; owner = "argoproj";
repo = "argo"; repo = "argo";
rev = "v${version}"; rev = "v${version}";
sha256 = "1vlz1f4hyzgz1x9xgzlmpnbjba8xyhpx9ybia0pwilfg7mwfq92r"; sha256 = "1i7qgghnb39bibnk07f47k64qpkb1k8mi3bbfnx6mxl0jlq335af";
}; };
vendorSha256 = "1ca0ssvbi4vrsn9ljc783hnh9bmf5p8nr1lz5wm8g3gbrrrf1ray"; vendorSha256 = "1ca0ssvbi4vrsn9ljc783hnh9bmf5p8nr1lz5wm8g3gbrrrf1ray";

View file

@ -2,16 +2,16 @@
buildGoModule rec { buildGoModule rec {
pname = "helmfile"; pname = "helmfile";
version = "0.132.1"; version = "0.134.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "roboll"; owner = "roboll";
repo = "helmfile"; repo = "helmfile";
rev = "v${version}"; rev = "v${version}";
sha256 = "03i9pl3iwqk5az73qm9rxdq8c5nd9l4w3c28yk55bfgpwpnxcwjc"; sha256 = "0s64l3dj5ydal7rfyg1avckb2ri7a34y2x7rhbplam8lk0vdzx03";
}; };
vendorSha256 = "0r4p4nwhmxg06qyf86gd2g61l4r1mlpblh4vhsc1shbz9iigykzi"; vendorSha256 = "1p5m5v5lpdyzywq2ybsa9zkygixdkaifn2szxj7v8x162bzf16r5";
doCheck = false; doCheck = false;

View file

@ -2,13 +2,13 @@
buildGoModule rec { buildGoModule rec {
pname = "helmsman"; pname = "helmsman";
version = "3.4.6"; version = "3.5.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "Praqma"; owner = "Praqma";
repo = "helmsman"; repo = "helmsman";
rev = "v${version}"; rev = "v${version}";
sha256 = "018bkl6q6q8njv9qy87affs0g6c716vmhcqv2czv8qz454hn7i5h"; sha256 = "0vng0ra8bjxmfq6xvdxn72f5bcjrv8i72dams80lf0mq3l7wjl7c";
}; };
vendorSha256 = "05vnysr5r3hbayss1pyifgp989kjw81h95iack8ady62k6ys5njl"; vendorSha256 = "05vnysr5r3hbayss1pyifgp989kjw81h95iack8ady62k6ys5njl";

View file

@ -2,13 +2,13 @@
buildGoModule rec { buildGoModule rec {
pname = "k9s"; pname = "k9s";
version = "0.23.3"; version = "0.23.10";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "derailed"; owner = "derailed";
repo = "k9s"; repo = "k9s";
rev = "v${version}"; rev = "v${version}";
sha256 = "0jdrjsv6miprw0bj964rgkbci4xdwfi536z3px93i2n9zrhhawpn"; sha256 = "0nfgi67ja36mymhcyh4902680pkfnk4g8j8nbajksx9nfp53n91v";
}; };
buildFlagsArray = '' buildFlagsArray = ''
@ -18,7 +18,7 @@ buildGoModule rec {
-X github.com/derailed/k9s/cmd.commit=${src.rev} -X github.com/derailed/k9s/cmd.commit=${src.rev}
''; '';
vendorSha256 = "105vmy8agl3ppgi28wg7djx0jrfam7nxfvvlps9ycgyrv2qpjh2n"; vendorSha256 = "116aidry55917ays7rn5r5kj17nbgb9qi16bplml9kxfkjv072kz";
doCheck = false; doCheck = false;

View file

@ -2,7 +2,7 @@
buildGoModule rec { buildGoModule rec {
pname = "kube3d"; pname = "kube3d";
version = "3.1.5"; version = "3.2.0";
k3sVersion = "1.18.9-k3s1"; k3sVersion = "1.18.9-k3s1";
excludedPackages = ''tools''; excludedPackages = ''tools'';
@ -11,7 +11,7 @@ buildGoModule rec {
owner = "rancher"; owner = "rancher";
repo = "k3d"; repo = "k3d";
rev = "v${version}"; rev = "v${version}";
sha256 = "0aspkar9im323d8117k48fvh1yylyspi2p2l2f5rdg1ilpa6hm53"; sha256 = "0jy0l8rvmwi0qznnvv97v50lfkpc2bwjmbnq4pxnmf9ih970wjwh";
}; };
buildFlagsArray = '' buildFlagsArray = ''
@ -23,12 +23,11 @@ buildGoModule rec {
nativeBuildInputs = [ installShellFiles ]; nativeBuildInputs = [ installShellFiles ];
# TODO: Move to enhanced installShellCompletion when in master: PR #83630
postInstall = '' postInstall = ''
$out/bin/k3d completion bash > k3d.bash installShellCompletion --cmd k3d \
$out/bin/k3d completion fish > k3d.fish --bash <($out/bin/k3d completion bash) \
$out/bin/k3d completion zsh > _k3d --fish <($out/bin/k3d completion fish) \
installShellCompletion k3d.{bash,fish} --zsh _k3d --zsh <($out/bin/k3d completion zsh)
''; '';
vendorSha256 = null; vendorSha256 = null;

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