Merge remote-tracking branch 'nixpkgs/staging-next' into staging

Conflicts:
	nixos/doc/manual/from_md/release-notes/rl-2111.section.xml
	nixos/doc/manual/release-notes/rl-2111.section.md
This commit is contained in:
Alyssa Ross 2021-10-28 16:07:38 +00:00
commit 3f01b576af
No known key found for this signature in database
GPG Key ID: F9DBED4859B271C0
276 changed files with 2174 additions and 1658 deletions

View File

@ -181,7 +181,7 @@
rev = "${version}";
```
- Filling lists condionally _should_ be done with `lib.optional(s)` instead of using `if cond then [ ... ] else null` or `if cond then [ ... ] else [ ]`.
- Building lists conditionally _should_ be done with `lib.optional(s)` instead of using `if cond then [ ... ] else null` or `if cond then [ ... ] else [ ]`.
```nix
buildInputs = lib.optional stdenv.isDarwin iconv;

View File

@ -12955,6 +12955,12 @@
fingerprint = "61AE D40F 368B 6F26 9DAE 3892 6861 6B2D 8AC4 DCC5";
}];
};
zbioe = {
name = "Iury Fukuda";
email = "zbioe@protonmail.com";
github = "zbioe";
githubId = 7332055;
};
zenithal = {
name = "zenithal";
email = "i@zenithal.me";

View File

@ -1192,6 +1192,19 @@ Superuser created successfully.
<literal>fluidsynth</literal> unchanged.
</para>
</listitem>
<listitem>
<para>
Nextcloud 20 (<literal>pkgs.nextcloud20</literal>) has been
dropped because it was EOLed by upstream in 2021-10.
</para>
</listitem>
<listitem>
<para>
The <literal>virtualisation.pathsInNixDB</literal> option was
renamed
<link xlink:href="options.html#opt-virtualisation.additionalPaths"><literal>virtualisation.additionalPaths</literal></link>.
</para>
</listitem>
</itemizedlist>
</section>
<section xml:id="sec-release-21.11-notable-changes">
@ -1215,25 +1228,31 @@ Superuser created successfully.
<para>
In NixOS virtual machines (QEMU), the
<literal>virtualisation</literal> module has been updated with
new options to configure:
new options:
</para>
<itemizedlist spacing="compact">
<listitem>
<para>
IPv4 port forwarding
(<link xlink:href="options.html#opt-virtualisation.forwardPorts"><literal>virtualisation.forwardPorts</literal></link>),
<link xlink:href="options.html#opt-virtualisation.forwardPorts"><literal>forwardPorts</literal></link>
to configure IPv4 port forwarding,
</para>
</listitem>
<listitem>
<para>
shared host directories
(<link xlink:href="options.html#opt-virtualisation.sharedDirectories"><literal>virtualisation.sharedDirectories</literal></link>),
<link xlink:href="options.html#opt-virtualisation.sharedDirectories"><literal>sharedDirectories</literal></link>
to set up shared host directories,
</para>
</listitem>
<listitem>
<para>
screen resolution
(<link xlink:href="options.html#opt-virtualisation.resolution"><literal>virtualisation.resolution</literal></link>).
<link xlink:href="options.html#opt-virtualisation.resolution"><literal>resolution</literal></link>
to set the screen resolution,
</para>
</listitem>
<listitem>
<para>
<link xlink:href="options.html#opt-virtualisation.useNixStoreImage"><literal>useNixStoreImage</literal></link>
to use a disk image for the Nix store instead of 9P.
</para>
</listitem>
</itemizedlist>

View File

@ -366,16 +366,22 @@ In addition to numerous new and upgraded packages, this release has the followin
- The `fluidsynth_1` attribute has been removed, as this legacy version is no longer needed in nixpkgs. The actively maintained 2.x series is available as `fluidsynth` unchanged.
- Nextcloud 20 (`pkgs.nextcloud20`) has been dropped because it was EOLed by upstream in 2021-10.
- The `virtualisation.pathsInNixDB` option was renamed
[`virtualisation.additionalPaths`](options.html#opt-virtualisation.additionalPaths).
## Other Notable Changes {#sec-release-21.11-notable-changes}
- The linux kernel package infrastructure was moved out of `all-packages.nix`, and restructured. Linux related functions and attributes now live under the `pkgs.linuxKernel` attribute set.
In particular the versioned `linuxPackages_*` package sets (such as `linuxPackages_5_4`) and kernels from `pkgs` were moved there and now live under `pkgs.linuxKernel.packages.*`. The unversioned ones (such as `linuxPackages_latest`) remain untouched.
- In NixOS virtual machines (QEMU), the `virtualisation` module has been updated with new options to configure:
- IPv4 port forwarding ([`virtualisation.forwardPorts`](options.html#opt-virtualisation.forwardPorts)),
- shared host directories ([`virtualisation.sharedDirectories`](options.html#opt-virtualisation.sharedDirectories)),
- screen resolution ([`virtualisation.resolution`](options.html#opt-virtualisation.resolution)).
- In NixOS virtual machines (QEMU), the `virtualisation` module has been updated with new options:
- [`forwardPorts`](options.html#opt-virtualisation.forwardPorts) to configure IPv4 port forwarding,
- [`sharedDirectories`](options.html#opt-virtualisation.sharedDirectories) to set up shared host directories,
- [`resolution`](options.html#opt-virtualisation.resolution) to set the screen resolution,
- [`useNixStoreImage`](options.html#opt-virtualisation.useNixStoreImage) to use a disk image for the Nix store instead of 9P.
In addition, the default [`msize`](options.html#opt-virtualisation.msize) parameter in 9P filesystems (including /nix/store and all shared directories) has been increased to 16K for improved performance.

View File

@ -44,11 +44,14 @@
# most likely fails as GRUB will probably refuse to install.
partitionTableType ? "legacy"
, # Whether to invoke `switch-to-configuration boot` during image creation
installBootLoader ? true
, # The root file system type.
fsType ? "ext4"
, # Filesystem label
label ? "nixos"
label ? if onlyNixStore then "nix-store" else "nixos"
, # The initial NixOS configuration file to be copied to
# /etc/nixos/configuration.nix.
@ -57,10 +60,24 @@
, # Shell code executed after the VM has finished.
postVM ? ""
, # Copy the contents of the Nix store to the root of the image and
# skip further setup. Incompatible with `contents`,
# `installBootLoader` and `configFile`.
onlyNixStore ? false
, name ? "nixos-disk-image"
, # Disk image format, one of qcow2, qcow2-compressed, vdi, vpc, raw.
format ? "raw"
, # Whether a nix channel based on the current source tree should be
# made available inside the image. Useful for interactive use of nix
# utils, but changes the hash of the image when the sources are
# updated.
copyChannel ? true
, # Additional store paths to copy to the image's store.
additionalPaths ? []
}:
assert partitionTableType == "legacy" || partitionTableType == "legacy+gpt" || partitionTableType == "efi" || partitionTableType == "hybrid" || partitionTableType == "none";
@ -71,6 +88,7 @@ assert lib.all
(attrs: ((attrs.user or null) == null)
== ((attrs.group or null) == null))
contents;
assert onlyNixStore -> contents == [] && configFile == null && !installBootLoader;
with lib;
@ -163,7 +181,14 @@ let format' = format; in let
users = map (x: x.user or "''") contents;
groups = map (x: x.group or "''") contents;
closureInfo = pkgs.closureInfo { rootPaths = [ config.system.build.toplevel channelSources ]; };
basePaths = [ config.system.build.toplevel ]
++ lib.optional copyChannel channelSources;
additionalPaths' = subtractLists basePaths additionalPaths;
closureInfo = pkgs.closureInfo {
rootPaths = basePaths ++ additionalPaths';
};
blockSize = toString (4 * 1024); # ext4fs block size (not block device sector size)
@ -251,7 +276,13 @@ let format' = format; in let
chmod 755 "$TMPDIR"
echo "running nixos-install..."
nixos-install --root $root --no-bootloader --no-root-passwd \
--system ${config.system.build.toplevel} --channel ${channelSources} --substituters ""
--system ${config.system.build.toplevel} \
${if copyChannel then "--channel ${channelSources}" else "--no-channel-copy"} \
--substituters ""
${optionalString (additionalPaths' != []) ''
nix copy --to $root --no-check-sigs ${concatStringsSep " " additionalPaths'}
''}
diskImage=nixos.raw
@ -320,25 +351,29 @@ let format' = format; in let
''}
echo "copying staging root to image..."
cptofs -p ${optionalString (partitionTableType != "none") "-P ${rootPartition}"} -t ${fsType} -i $diskImage $root/* / ||
cptofs -p ${optionalString (partitionTableType != "none") "-P ${rootPartition}"} \
-t ${fsType} \
-i $diskImage \
$root${optionalString onlyNixStore builtins.storeDir}/* / ||
(echo >&2 "ERROR: cptofs failed. diskSize might be too small for closure."; exit 1)
'';
in pkgs.vmTools.runInLinuxVM (
pkgs.runCommand name
{ preVM = prepareImage;
moveOrConvertImage = ''
${if format == "raw" then ''
mv $diskImage $out/${filename}
'' else ''
${pkgs.qemu}/bin/qemu-img convert -f raw -O ${format} ${compress} $diskImage $out/${filename}
''}
diskImage=$out/${filename}
'';
buildImage = pkgs.vmTools.runInLinuxVM (
pkgs.runCommand name {
preVM = prepareImage;
buildInputs = with pkgs; [ util-linux e2fsprogs dosfstools ];
postVM = ''
${if format == "raw" then ''
mv $diskImage $out/${filename}
'' else ''
${pkgs.qemu}/bin/qemu-img convert -f raw -O ${format} ${compress} $diskImage $out/${filename}
''}
diskImage=$out/${filename}
${postVM}
'';
postVM = moveOrConvertImage + postVM;
memSize = 1024;
}
''
} ''
export PATH=${binPath}:$PATH
rootDisk=${if partitionTableType != "none" then "/dev/vda${rootPartition}" else "/dev/vda"}
@ -368,11 +403,13 @@ in pkgs.vmTools.runInLinuxVM (
cp ${configFile} /mnt/etc/nixos/configuration.nix
''}
# Set up core system link, GRUB, etc.
NIXOS_INSTALL_BOOTLOADER=1 nixos-enter --root $mountPoint -- /nix/var/nix/profiles/system/bin/switch-to-configuration boot
${lib.optionalString installBootLoader ''
# Set up core system link, GRUB, etc.
NIXOS_INSTALL_BOOTLOADER=1 nixos-enter --root $mountPoint -- /nix/var/nix/profiles/system/bin/switch-to-configuration boot
# The above scripts will generate a random machine-id and we don't want to bake a single ID into all our images
rm -f $mountPoint/etc/machine-id
# The above scripts will generate a random machine-id and we don't want to bake a single ID into all our images
rm -f $mountPoint/etc/machine-id
''}
# Set the ownerships of the contents. The modes are set in preVM.
# No globbing on targets, so no need to set -f
@ -398,4 +435,9 @@ in pkgs.vmTools.runInLinuxVM (
tune2fs -T now -c 0 -i 0 $rootDisk
''}
''
)
);
in
if onlyNixStore then
pkgs.runCommand name {}
(prepareImage + moveOrConvertImage + postVM)
else buildImage

View File

@ -209,11 +209,30 @@ rec {
let
nodes = qemu_pkg:
let
testScript' =
# Call the test script with the computed nodes.
if lib.isFunction testScript
then testScript { nodes = nodes qemu_pkg; }
else testScript;
build-vms = import ./build-vms.nix {
inherit system lib pkgs minimal specialArgs;
extraConfigurations = extraConfigurations ++ [(
{
virtualisation.qemu.package = qemu_pkg;
# Make sure all derivations referenced by the test
# script are available on the nodes. When the store is
# accessed through 9p, this isn't important, since
# everything in the store is available to the guest,
# but when building a root image it is, as all paths
# that should be available to the guest has to be
# copied to the image.
virtualisation.additionalPaths =
lib.optional
(builtins.hasContext testScript')
(pkgs.writeStringReferencesToFile testScript');
# Ensure we do not use aliases. Ideally this is only set
# when the test framework is used by Nixpkgs NixOS tests.
nixpkgs.config.allowAliases = false;

View File

@ -344,7 +344,7 @@ in {
authenticate = lib.mkOption {
description = "Authenticate with the SMTP server using username and password.";
type = lib.types.bool;
default = true;
default = false;
};
host = lib.mkOption {
@ -596,6 +596,7 @@ in {
services.postfix = lib.mkIf (cfg.smtp.createLocally && cfg.smtp.host == "127.0.0.1") {
enable = true;
hostname = lib.mkDefault "${cfg.localDomain}";
};
services.redis = lib.mkIf (cfg.redis.createLocally && cfg.redis.host == "127.0.0.1") {
enable = true;

View File

@ -153,7 +153,7 @@ in {
package = mkOption {
type = types.package;
description = "Which package to use for the Nextcloud instance.";
relatedPackages = [ "nextcloud20" "nextcloud21" "nextcloud22" ];
relatedPackages = [ "nextcloud21" "nextcloud22" ];
};
phpPackage = mkOption {
type = types.package;
@ -507,13 +507,7 @@ in {
};
config = mkIf cfg.enable (mkMerge [
{ assertions = let acfg = cfg.config; in [
{ assertion = versionOlder cfg.package.version "21" -> cfg.config.defaultPhoneRegion == null;
message = "The `defaultPhoneRegion'-setting is only supported for Nextcloud >=21!";
}
];
warnings = let
{ warnings = let
latest = 22;
upgradeWarning = major: nixos:
''
@ -547,7 +541,6 @@ in {
Using config.services.nextcloud.poolConfig is deprecated and will become unsupported in a future release.
Please migrate your configuration to config.services.nextcloud.poolSettings.
'')
++ (optional (versionOlder cfg.package.version "20") (upgradeWarning 19 "21.05"))
++ (optional (versionOlder cfg.package.version "21") (upgradeWarning 20 "21.05"))
++ (optional (versionOlder cfg.package.version "22") (upgradeWarning 21 "21.11"))
++ (optional isUnsupportedMariadb ''
@ -574,7 +567,11 @@ in {
# This versionOlder statement remains set to 21.03 for backwards compatibility.
# See https://github.com/NixOS/nixpkgs/pull/108899 and
# https://github.com/NixOS/rfcs/blob/master/rfcs/0080-nixos-release-schedule.md.
else if versionOlder stateVersion "21.03" then nextcloud19
# FIXME(@Ma27) remove this else-if as soon as 21.05 is EOL! This is only here
# to ensure that users who are on Nextcloud 19 with a stateVersion <21.05 with
# no explicit services.nextcloud.package don't upgrade to v21 by accident (
# nextcloud20 throws an eval-error because it's dropped).
else if versionOlder stateVersion "21.03" then nextcloud20
else if versionOlder stateVersion "21.11" then nextcloud21
else nextcloud22
);

View File

@ -227,8 +227,10 @@ in
environment.sessionVariables.GTK_CSD = "1";
environment.etc."gtk-3.0/settings.ini".source = "${pkgs.pantheon.elementary-default-settings}/etc/gtk-3.0/settings.ini";
xdg.portal.extraPortals = [
pkgs.pantheon.elementary-files
xdg.portal.extraPortals = with pkgs; [
pantheon.elementary-files
pantheon.elementary-settings-daemon
xdg-desktop-portal-pantheon
];
# Override GSettings schemas

View File

@ -122,6 +122,12 @@ let
TMPDIR=$(mktemp -d nix-vm.XXXXXXXXXX --tmpdir)
fi
${lib.optionalString cfg.useNixStoreImage
''
# Create a writable copy/snapshot of the store image.
${qemu}/bin/qemu-img create -f qcow2 -F qcow2 -b ${storeImage}/nixos.qcow2 "$TMPDIR"/store.img
''}
# Create a directory for exchanging data with the VM.
mkdir -p "$TMPDIR/xchg"
@ -171,7 +177,7 @@ let
'';
regInfo = pkgs.closureInfo { rootPaths = config.virtualisation.pathsInNixDB; };
regInfo = pkgs.closureInfo { rootPaths = config.virtualisation.additionalPaths; };
# Generate a hard disk image containing a /boot partition and GRUB
@ -263,11 +269,24 @@ let
'' # */
);
storeImage = import ../../lib/make-disk-image.nix {
inherit pkgs config lib;
additionalPaths = [ regInfo ];
format = "qcow2";
onlyNixStore = true;
partitionTableType = "none";
installBootLoader = false;
diskSize = "auto";
additionalSpace = "0M";
copyChannel = false;
};
in
{
imports = [
../profiles/qemu-guest.nix
(mkRenamedOptionModule [ "virtualisation" "pathsInNixDB" ] [ "virtualisation" "additionalPaths" ])
];
options = {
@ -399,17 +418,23 @@ in
'';
};
virtualisation.pathsInNixDB =
virtualisation.additionalPaths =
mkOption {
type = types.listOf types.path;
default = [];
description =
''
The list of paths whose closure is registered in the Nix
database in the VM. All other paths in the host Nix store
A list of paths whose closure should be made available to
the VM.
When 9p is used, the closure is registered in the Nix
database in the VM. All other paths in the host Nix store
appear in the guest Nix store as well, but are considered
garbage (because they are not registered in the Nix
database in the guest).
database of the guest).
When <option>virtualisation.useNixStoreImage</option> is
set, the closure is copied to the Nix store image.
'';
};
@ -608,6 +633,20 @@ in
};
};
virtualisation.useNixStoreImage =
mkOption {
type = types.bool;
default = false;
description = ''
Build and use a disk image for the Nix store, instead of
accessing the host's one through 9p.
For applications which do a lot of reads from the store,
this can drastically improve performance, but at the cost of
disk space and image build time.
'';
};
virtualisation.useBootLoader =
mkOption {
type = types.bool;
@ -740,7 +779,7 @@ in
'';
# After booting, register the closure of the paths in
# `virtualisation.pathsInNixDB' in the Nix database in the VM. This
# `virtualisation.additionalPaths' in the Nix database in the VM. This
# allows Nix operations to work in the VM. The path to the
# registration file is passed through the kernel command line to
# allow `system.build.toplevel' to be included. (If we had a direct
@ -759,12 +798,21 @@ in
virtualisation.bootDevice = mkDefault (driveDeviceName 1);
virtualisation.pathsInNixDB = [ config.system.build.toplevel ];
virtualisation.additionalPaths = [ config.system.build.toplevel ];
virtualisation.sharedDirectories = {
nix-store = { source = "/nix/store"; target = "/nix/store"; };
xchg = { source = ''"$TMPDIR"/xchg''; target = "/tmp/xchg"; };
shared = { source = ''"''${SHARED_DIR:-$TMPDIR/xchg}"''; target = "/tmp/shared"; };
nix-store = mkIf (!cfg.useNixStoreImage) {
source = builtins.storeDir;
target = "/nix/store";
};
xchg = {
source = ''"$TMPDIR"/xchg'';
target = "/tmp/xchg";
};
shared = {
source = ''"''${SHARED_DIR:-$TMPDIR/xchg}"'';
target = "/tmp/shared";
};
};
virtualisation.qemu.networkingOptions =
@ -815,6 +863,11 @@ in
driveExtraOpts.cache = "writeback";
driveExtraOpts.werror = "report";
}]
(mkIf cfg.useNixStoreImage [{
name = "nix-store";
file = ''"$TMPDIR"/store.img'';
deviceExtraOpts.bootindex = if cfg.useBootLoader then "3" else "2";
}])
(mkIf cfg.useBootLoader [
# The order of this list determines the device names, see
# note [Disk layout with `useBootLoader`].
@ -865,6 +918,13 @@ in
options = [ "mode=1777" "strictatime" "nosuid" "nodev" "size=${toString config.boot.tmpOnTmpfsSize}" ];
};
"/nix/${if cfg.writableStore then ".ro-store" else "store"}" =
mkIf cfg.useNixStoreImage
{ device = "${lookupDriveDeviceName "nix-store" cfg.qemu.drives}";
neededForBoot = true;
options = [ "ro" ];
};
"/nix/.rw-store" = mkIf (cfg.writableStore && cfg.writableStoreUseTmpfs)
{ fsType = "tmpfs";
options = [ "mode=0755" ];

View File

@ -157,6 +157,7 @@ in
gobgpd = handleTest ./gobgpd.nix {};
gocd-agent = handleTest ./gocd-agent.nix {};
gocd-server = handleTest ./gocd-server.nix {};
google-cloud-sdk = handleTest ./google-cloud-sdk.nix {};
google-oslogin = handleTest ./google-oslogin {};
gotify-server = handleTest ./gotify-server.nix {};
grafana = handleTest ./grafana.nix {};

View File

@ -56,7 +56,7 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
};
virtualisation.pathsInNixDB = [ pkgs.stdenv ];
virtualisation.additionalPaths = [ pkgs.stdenv ];
};
testScript = ''

View File

@ -45,7 +45,7 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
};
};
virtualisation.pathsInNixDB = [ pkgs.stdenv ];
virtualisation.additionalPaths = [ pkgs.stdenv ];
};
testScript =

View File

@ -17,7 +17,7 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
virtualisation.memorySize = 1024;
# Make sure we always have all the required dependencies for creating a
# container available within the VM, because we don't have network access.
virtualisation.pathsInNixDB = let
virtualisation.additionalPaths = let
emptyContainer = import ../lib/eval-config.nix {
inherit (config.nixpkgs.localSystem) system;
modules = lib.singleton {

View File

@ -27,7 +27,7 @@ in import ./make-test-python.nix ({ pkgs, lib, ... }: {
containers.webserver4 = webserverFor "10.231.136.1" "10.231.136.2";
containers.webserver6 = webserverFor "fc00::2" "fc00::1";
virtualisation.pathsInNixDB = [ pkgs.stdenv ];
virtualisation.additionalPaths = [ pkgs.stdenv ];
};
testScript = { nodes, ... }: ''

View File

@ -29,7 +29,7 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
};
};
virtualisation.pathsInNixDB = [ pkgs.stdenv ];
virtualisation.additionalPaths = [ pkgs.stdenv ];
};
testScript =

View File

@ -26,7 +26,7 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
config = { };
};
virtualisation.pathsInNixDB = [ pkgs.stdenv ];
virtualisation.additionalPaths = [ pkgs.stdenv ];
};
testScript = ''

View File

@ -28,6 +28,8 @@ import ./make-test-python.nix (
{ nodes, ... }:
{
virtualisation.memorySize = 2048;
virtualisation.cores = 4;
virtualisation.useNixStoreImage = true;
imports = [ common/user-account.nix ];

View File

@ -14,6 +14,8 @@ import ./make-test-python.nix ({ pkgs, lib, ...} : with lib; {
imports = [ common/user-account.nix ];
virtualisation.memorySize = if pkgs.stdenv.is64bit then 4096 else 2047;
virtualisation.cores = 4;
virtualisation.useNixStoreImage = true;
systemd.services.gitlab.serviceConfig.Restart = mkForce "no";
systemd.services.gitlab-workhorse.serviceConfig.Restart = mkForce "no";
systemd.services.gitaly.serviceConfig.Restart = mkForce "no";

View File

@ -0,0 +1,13 @@
import ./make-test-python.nix ({ pkgs, ... }: {
name = "google-cloud-sdk";
meta = with pkgs.lib.maintainers; { maintainers = [ iammrinal0 ]; };
machine = { pkgs, ... }: {
environment.systemPackages = [ pkgs.google-cloud-sdk ];
};
testScript = ''
import json
assert "${pkgs.google-cloud-sdk.version}" in json.loads(machine.succeed("gcloud version --format json"))["Google Cloud SDK"]
'';
})

View File

@ -68,7 +68,7 @@ in makeTest {
testScript =
''
def create_named_machine(name):
return create_machine(
machine = create_machine(
{
"qemuFlags": "-cpu max ${
if system == "x86_64-linux" then "-m 1024"
@ -78,6 +78,8 @@ in makeTest {
"name": name,
}
)
driver.machines.append(machine)
return machine
# Install NixOS

View File

@ -18,4 +18,4 @@ foldl
};
})
{}
[ 20 21 22 ]
[ 21 22 ]

View File

@ -7,13 +7,13 @@
python3Packages.buildPythonApplication rec {
pname = "mpdevil";
version = "1.3.0";
version = "1.4.0";
src = fetchFromGitHub {
owner = "SoongNoonien";
repo = pname;
rev = "v${version}";
sha256 = "1wa5wkkv8kvzlxrhqmmhjmrzcm5v2dij516dk4vlpv9sazc6gzkm";
sha256 = "1zx129zl6bjb0j3f81yx2641nsj6ck04q5f0v0g8f08xgdwsyv3b";
};
nativeBuildInputs = [

View File

@ -1,60 +1,56 @@
{ stdenv
, dpkg
, lib
, autoPatchelfHook
{ lib
, stdenv
, fetchurl
, gtk3
, glib
, desktop-file-utils
, autoPatchelfHook
, dpkg
, alsa-lib
, libjack2
, harfbuzz
, fribidi
, pango
, freetype
, libglvnd
, curl
, libXcursor
, libXinerama
, libXrandr
, libXrender
, libjack2
}:
stdenv.mkDerivation rec {
pname = "tonelib-jam";
version = "4.6.6";
version = "4.7.0";
src = fetchurl {
url = "https://www.tonelib.net/download/0509/ToneLib-Jam-amd64.deb";
sha256 = "sha256-cizIQgO35CQSLme/LKQqP+WzB/jCTk+fS5Z+EtF7wnQ=";
url = "https://www.tonelib.net/download/0930/ToneLib-Jam-amd64.deb";
sha256 = "sha256-xyBDp3DQVC+nK2WGnvrfUfD+9GvwtbldXgExTMmCGw0=";
};
buildInputs = [
dpkg
gtk3
glib
desktop-file-utils
alsa-lib
libjack2
harfbuzz
fribidi
pango
freetype
];
nativeBuildInputs = [
autoPatchelfHook
dpkg
];
unpackPhase = ''
mkdir -p $TMP/ $out/
dpkg -x $src $TMP
'';
buildInputs = [
stdenv.cc.cc.lib
alsa-lib
freetype
libglvnd
] ++ runtimeDependencies;
runtimeDependencies = map lib.getLib [
curl
libXcursor
libXinerama
libXrandr
libXrender
libjack2
];
unpackCmd = "dpkg -x $curSrc source";
installPhase = ''
cp -R $TMP/usr/* $out/
mv $out/bin/ToneLib-Jam $out/bin/tonelib-jam
mv usr $out
substituteInPlace $out/share/applications/ToneLib-Jam.desktop --replace /usr/ $out/
'';
runtimeDependencies = [
(lib.getLib curl)
];
meta = with lib; {
description = "ToneLib Jam the learning and practice software for guitar players";
homepage = "https://tonelib.net/";

View File

@ -47,6 +47,8 @@ stdenv.mkDerivation {
meta = with lib; {
homepage = "http://www.areca-backup.org/";
description = "An Open Source personal backup solution";
# Builds fine but fails to launch.
broken = true;
license = licenses.gpl2;
maintainers = with maintainers; [ pSub ];
platforms = with platforms; linux;

View File

@ -7,12 +7,12 @@
stdenv.mkDerivation rec {
pname = "eclair";
version = "0.6.1";
revision = "d3ae323";
version = "0.6.2";
revision = "6817d6f";
src = fetchzip {
url = "https://github.com/ACINQ/eclair/releases/download/v${version}/eclair-node-${version}-${revision}-bin.zip";
sha256 = "0hmdssj6pxhvadrgr1svb2lh7hfbd2axr5wsl7glizv1a21g0l2c";
sha256 = "038r9mblm2r8mkxnv65k29r7xj22dff5gmvzv9xiy5zf9i45mmk8";
};
propagatedBuildInputs = [ jq openjdk11 ];
@ -33,6 +33,6 @@ stdenv.mkDerivation rec {
homepage = "https://github.com/ACINQ/eclair";
license = licenses.asl20;
maintainers = with maintainers; [ prusnak ];
platforms = [ "x86_64-linux" "x86_64-darwin" ];
platforms = platforms.unix;
};
}

View File

@ -17,8 +17,8 @@ let
sha256Hash = "1j1fxl4vzq3bln2z9ycxn9imjgy55yd1nbl7ycmsi90bdp96pzj0";
};
latestVersion = { # canary & dev
version = "2021.2.1.1"; # "Android Studio Chipmunk (2021.2.1) Canary 1"
sha256Hash = "1fn0jv6ybgdhgpwhamw16fjqbg2961ir9jhbjzanysi7y3935nbv";
version = "2021.2.1.2"; # "Android Studio Chipmunk (2021.2.1) Canary 2"
sha256Hash = "0xvn9zgn4cc9lhjynhiavmvx8bdzg4kcllmhg7xv18kp6wz4lh6z";
};
in {
# Attributes are named by their corresponding release channels

View File

@ -38,13 +38,13 @@ let
in
stdenv.mkDerivation rec {
pname = "cudatext";
version = "1.146.0";
version = "1.148.0";
src = fetchFromGitHub {
owner = "Alexey-T";
repo = "CudaText";
rev = version;
sha256 = "sha256-YK4nLQvRdgS7hq5a9uVfVjUAgkM/sYXiKjbt0QNzcok=";
sha256 = "sha256-/wvtIPF/1HneW0zuT7+VCixemkw91MdU0S66bz2y48U=";
};
postPatch = ''

View File

@ -11,13 +11,13 @@
},
"ATFlatControls": {
"owner": "Alexey-T",
"rev": "2021.09.14",
"sha256": "sha256-j69UkRNdVdzMITBHMT1QwAsYX9S0fts5/0PCroCGtL8="
"rev": "2021.10.19",
"sha256": "sha256-NO1q4qDXZ0x0G6AtcRP9xnFDWuBzOvxq8G7I76LgaBw="
},
"ATSynEdit": {
"owner": "Alexey-T",
"rev": "2021.10.03",
"sha256": "sha256-JGw/GbQNLAgHhDm/EgCGvzPpd8rqQo2FhmAL51XIekw="
"rev": "2021.10.27",
"sha256": "sha256-7DlnO7IeCFLU1A+HJt4CFXoHWfhAr52tBvfPNHieXMM="
},
"ATSynEdit_Cmp": {
"owner": "Alexey-T",
@ -26,8 +26,8 @@
},
"EControl": {
"owner": "Alexey-T",
"rev": "2021.10.03",
"sha256": "sha256-Kbjzn4Rp+/oTNgFMlzlkQEeob0Z4VidqJ/+wuNHS580="
"rev": "2021.10.21",
"sha256": "sha256-RyRpHihmmr/EeVWk9CR0S3pvKy0FzqLZNGti33+4fkI="
},
"ATSynEdit_Ex": {
"owner": "Alexey-T",
@ -36,8 +36,8 @@
},
"Python-for-Lazarus": {
"owner": "Alexey-T",
"rev": "2021.07.27",
"sha256": "sha256-izCyBNRLRCizSjR7v9RhcLrQ6+aQA4eejCHFUzJ0IpE="
"rev": "2021.10.27",
"sha256": "sha256-ikXdDUMJ9MxRejEVAhwUsXYVh0URVFHzEpnXuN5NGpA="
},
"Emmet-Pascal": {
"owner": "Alexey-T",

View File

@ -1,7 +1,6 @@
{ lib
, mkDerivation
, fetchFromGitHub
, fetchpatch
, cmake
, dxflib
, eigen
@ -20,9 +19,7 @@
mkDerivation rec {
pname = "cloudcompare";
# Released version doesn't work with packaged PCL
# because it's too new. Considering that a release
# is a year ago it's unreasonable to wait for it.
# Released version(v2.11.3) doesn't work with packaged PCL.
version = "unstable-2021-10-14";
src = fetchFromGitHub {

View File

@ -1,4 +1,4 @@
{ stdenv, lib, fetchFromGitHub, makeWrapper
{ stdenv, lib, fetchFromGitHub, makeWrapper, fetchpatch
, pkg-config, which, perl, libXrandr
, cairo, dbus, systemd, gdk-pixbuf, glib, libX11, libXScrnSaver
, wayland, wayland-protocols
@ -16,6 +16,14 @@ stdenv.mkDerivation rec {
sha256 = "sha256-BWbvGetXXCXbfPRY+u6gEfzBmX8PLSnI6a5vfCByiC0=";
};
patches = [
(fetchpatch {
# fixes double free (https://github.com/dunst-project/dunst/issues/957)
url = "https://github.com/dunst-project/dunst/commit/dc8efbbaff0e9ba881fa187a01bfe5c033fbdcf9.patch";
sha256 = "sha256-xuODOFDP9Eqr3g8OtNnaMmTihhurfj2NLeZPr0TF4vY=";
})
];
nativeBuildInputs = [ perl pkg-config which systemd makeWrapper ];
buildInputs = [

View File

@ -2,11 +2,11 @@
buildPythonApplication rec {
pname = "gallery_dl";
version = "1.19.0";
version = "1.19.1";
src = fetchPypi {
inherit pname version;
sha256 = "ceffaa5022d76132165ca9004c1e57d7400b56c9ab3866e3bd139e2ffe38cb72";
sha256 = "ea1a7bf908507a87edffde6d6be93b8859ab0832ca788b61690a13aa5dd52216";
};
propagatedBuildInputs = [ requests ];

View File

@ -14,11 +14,11 @@ let
in
stdenv.mkDerivation rec {
pname = "mkgmap";
version = "4808";
version = "4810";
src = fetchurl {
url = "https://www.mkgmap.org.uk/download/mkgmap-r${version}-src.tar.gz";
sha256 = "ooiXotpxdy99ViUQ0kFp0NoTowGEZjEoD31x+3XrW28=";
sha256 = "j21WTEu+MTmnFrRH5B8Eb1tS2elFR715R8jhgKZ5Gmw=";
};
patches = [

View File

@ -5,7 +5,7 @@
# python deps
, python, buildPythonPackage
, alembic, beautifulsoup4, chardet, lxml, Mako, pyenchant
, pyqt5_with_qtwebkit, pyxdg, sip_4, sqlalchemy, sqlalchemy_migrate
, pyqt5_with_qtwebkit, pyxdg, sip_4, sqlalchemy, sqlalchemy-migrate
}:
buildPythonPackage rec {
@ -43,7 +43,7 @@ buildPythonPackage rec {
pyxdg
sip_4
sqlalchemy
sqlalchemy_migrate
sqlalchemy-migrate
];
prePatch = ''

View File

@ -36,7 +36,7 @@ in python.pkgs.buildPythonApplication rec {
};
propagatedBuildInputs = with python.pkgs; [
sqlalchemy_migrate
sqlalchemy-migrate
python-dateutil
matplotlib
lxml

View File

@ -2,7 +2,7 @@
, fetchFromGitHub
, nix-update-script
, fetchpatch
, vala
, vala_0_52
, meson
, ninja
, pkg-config
@ -35,7 +35,9 @@ stdenv.mkDerivation rec {
ninja
pkg-config
python3
vala
# Does not build with vala 0.54
# https://github.com/bleakgrey/tootle/issues/337
vala_0_52
wrapGAppsHook
];

View File

@ -50,7 +50,7 @@
, ffmpeg
, runtimeShell
, mesa # firefox wants gbm for drm+dmabuf
, systemLocale ? config.i18n.defaultLocale or "en-US"
, systemLocale ? config.i18n.defaultLocale or "en_US"
}:
let
@ -78,7 +78,12 @@ let
defaultSource = lib.findFirst (sourceMatches "en-US") {} sources;
source = lib.findFirst (sourceMatches systemLocale) defaultSource sources;
mozLocale =
if systemLocale == "ca_ES@valencia"
then "ca-valencia"
else lib.replaceStrings ["_"] ["-"] systemLocale;
source = lib.findFirst (sourceMatches mozLocale) defaultSource sources;
pname = "firefox-${channel}-bin-unwrapped";

View File

@ -18,13 +18,13 @@
stdenv.mkDerivation rec {
pname = "lagrange";
version = "1.7.2";
version = "1.7.3";
src = fetchFromGitHub {
owner = "skyjake";
repo = "lagrange";
rev = "v${version}";
sha256 = "sha256-iJ6+tc5nls8E/9/Jp5OS9gfJo8SJ5bN+Im/JzEYEAfI=";
sha256 = "sha256-peBdmz/aucrKO5Vsj8WkHkpGpLm4inQHee133Zph3MM=";
fetchSubmodules = true;
};

View File

@ -0,0 +1,34 @@
{ lib, fetchFromGitHub, buildGoModule }:
buildGoModule rec {
pname = "kumactl";
version = "1.3.1";
src = fetchFromGitHub {
owner = "kumahq";
repo = "kuma";
rev = version;
sha256 = "0b554cngg2j3wnadpqwhq3dv3la8vvvzyww2diw4il4gl4j6xj0j";
};
vendorSha256 = "0r26h4vp11wbl7nk3y7c22p60q7lspy8nr58khxyczdqjk6wrdjp";
subPackages = [ "app/kumactl" ];
ldflags = let
prefix = "github.com/kumahq/kuma/pkg/version";
in [
"-s" "-w"
"-X ${prefix}.version=${version}"
"-X ${prefix}.gitTag=${version}"
"-X ${prefix}.gitCommit=${version}"
"-X ${prefix}.buildDate=${version}"
];
meta = with lib; {
description = "Kuma service mesh controller";
homepage = "https://kuma.io/";
license = licenses.asl20;
maintainers = with maintainers; [ zbioe ];
};
}

View File

@ -1,15 +1,14 @@
{ lib, stdenv, fetchFromGitHub, ... }:
stdenv.mkDerivation rec {
pname = "terranix";
version = "2.3.0";
version = "2.4.0";
src = fetchFromGitHub {
owner = "mrVanDalo";
repo = "terranix";
rev = version;
sha256 = "030067h3gjc02llaa7rx5iml0ikvw6szadm0nrss2sqzshsfimm4";
sha256 = "sha256-3N4a5VhZqIgJW11w8oJKJ9T8mhfwEM33kEwV/zZkCs8=";
};
installPhase = ''

View File

@ -3,16 +3,16 @@
rustPlatform.buildRustPackage rec {
pname = "newsboat";
version = "2.24";
version = "2.25";
src = fetchFromGitHub {
owner = "newsboat";
repo = "newsboat";
rev = "r${version}";
sha256 = "0qb10w7pn9hiczjjpc0xanmc83p22ngcqcrkjwji5rl0sh8v9ii4";
sha256 = "sha256-TAnGDxTKYl4niouS6nYdJDaIngAPsPHr9Bw9L3cR2Xk=";
};
cargoSha256 = "0vhr8qyw4f3lc208mgl1m3z42igkbwly6wcv7g7jrq3c6dcwyhjn";
cargoSha256 = "sha256-MxoyYBLbrCuLVa0p8JrYKSKu2oFPnXMwab42lhhAu48=";
# TODO: Check if that's still needed
postPatch = lib.optionalString stdenv.isDarwin ''

View File

@ -2,14 +2,14 @@
python3Packages.buildPythonApplication rec {
pname = "flexget";
version = "3.1.140";
version = "3.1.148";
# Fetch from GitHub in order to use `requirements.in`
src = fetchFromGitHub {
owner = "flexget";
repo = "flexget";
rev = "v${version}";
sha256 = "15ngmpqqx902l7gxg2lb6h8q8vmjk247jbqhc92l1apr1imjqcc5";
sha256 = "0gf07qa1wsysvl0mckh2r3a40065rxhgszf4767jkbryz8z174bc";
};
postPatch = ''
@ -32,38 +32,36 @@ python3Packages.buildPythonApplication rec {
# See https://github.com/Flexget/Flexget/blob/master/requirements.in
APScheduler
beautifulsoup4
cherrypy
colorama
colorclass
feedparser
flask-compress
flask-cors
flask_login
flask-restful
flask-restx
flask
greenlet
guessit
html5lib
jinja2
jsonschema
loguru
more-itertools
progressbar
psutil
pynzb
pyparsing
PyRSS2Gen
python-dateutil
pyyaml
rebulk
requests
rich
rpyc
sgmllib3k
sqlalchemy
terminaltables
# WebUI requirements
cherrypy
flask-compress
flask-cors
flask_login
flask-restful
flask-restx
flask
pyparsing
zxcvbn
psutil
# plugins
# Plugins requirements
transmission-rpc
];

View File

@ -23,7 +23,7 @@ let
--set LC_MESSAGES "${spellcheckerLanguage}"'');
in stdenv.mkDerivation rec {
pname = "signal-desktop";
version = "5.20.0"; # Please backport all updates to the stable channel.
version = "5.21.0"; # Please backport all updates to the stable channel.
# All releases have a limited lifetime and "expire" 90 days after the release.
# When releases "expire" the application becomes unusable until an update is
# applied. The expiration date for the current release can be extracted with:
@ -33,7 +33,7 @@ in stdenv.mkDerivation rec {
src = fetchurl {
url = "https://updates.signal.org/desktop/apt/pool/main/s/signal-desktop/signal-desktop_${version}_amd64.deb";
sha256 = "0a57gajxjqkp7zcmjc3iiys06b7v53nd81gkwrsfn2gmshihlzkd";
sha256 = "19bp5gjf13n87cyicqaikmz3bdx6szazq1kbp4gkyhq0mw7nah7c";
};
nativeBuildInputs = [

View File

@ -28,11 +28,11 @@
}:
let
version = "5.8.0.16";
version = "5.8.3.145";
srcs = {
x86_64-linux = fetchurl {
url = "https://zoom.us/client/${version}/zoom_x86_64.pkg.tar.xz";
sha256 = "1axnh81bf3ab5gzxxqm172wpqlpfbj9a2h3cry3kyxzmrihzbwdm";
sha256 = "1p4agpbcpk95r04m775dr17fmlm18vxq9mb65pyfbhvsd1ypw6kr";
};
};

View File

@ -5,6 +5,6 @@ set -eu -o pipefail
version="$(curl -Ls https://zoom.us/download\?os\=linux | \
pup '.linux-ver-text text{}' | \
awk -F'[ ().]' '{printf $2"."$3"."$6"."$7"\n"}')"
awk -F'[ ().]' '{printf $2"."$3"."$4"."$6"\n"}')"
update-source-version zoom-us "$version"

View File

@ -7,25 +7,15 @@ python3Packages.buildPythonApplication rec {
pname = "stig";
# This project has a different concept for pre release / alpha,
# Read the project's README for details: https://github.com/rndusr/stig#stig
version = "0.11.2a0";
version = "0.12.2a0";
src = fetchFromGitHub {
owner = "rndusr";
repo = "stig";
rev = "v${version}";
sha256 = "05dn6mr86ly65gdqarl16a2jk1bwiw5xa6r4kyag3s6lqsv66iw8";
sha256 = "0sk4vgj3cn75nyrng2d6q0pj1h968kcmbpr9sv1lj1g8fc7g0n4f";
};
# urwidtrees 1.0.3 is requested by the developer because 1.0.2 (which is packaged
# in nixpkgs) is not uploaded to pypi and 1.0.1 has a problematic `setup.py`.
# As long as we don't have any problems installing it, no special features / specific bugs
# were fixed in 1.0.3 that aren't available in 1.0.2 are used by stig.
# See https://github.com/rndusr/stig/issues/120
postPatch = ''
substituteInPlace setup.py \
--replace "urwidtrees>=1.0.3dev0" "urwidtrees"
'';
propagatedBuildInputs = with python3Packages; [
urwid
urwidtrees
@ -62,7 +52,7 @@ python3Packages.buildPythonApplication rec {
meta = with lib; {
description = "TUI and CLI for the BitTorrent client Transmission";
homepage = "https://github.com/rndusr/stig";
license = licenses.gpl3;
license = licenses.gpl3Plus;
maintainers = with maintainers; [ doronbehar ];
};
}

View File

@ -7,11 +7,11 @@
python3Packages.buildPythonApplication rec {
pname = "zim";
version = "0.73.5";
version = "0.74.2";
src = fetchurl {
url = "https://zim-wiki.org/downloads/zim-${version}.tar.gz";
sha256 = "sha256-o28V2Sw5lMDVWwf4MlOz2LgmvrNxSGXturwU8cyR1jo=";
sha256 = "sha256-tZxBlpps2nLThSOq3WJ42iUQ4NG1Lb463bvDQ+djZJA=";
};
buildInputs = [ gtk3 gobject-introspection wrapGAppsHook gnome.adwaita-icon-theme ];

View File

@ -0,0 +1,32 @@
{ lib, fetchFromGitHub, buildGoModule, icu }:
buildGoModule rec {
pname = "zk";
version = "0.7.0";
src = fetchFromGitHub {
owner = "mickael-menu";
repo = "zk";
rev = "v${version}";
sha256 = "sha256-C3/V4v8lH4F3S51egEw5d51AI0n5xzBQjwhrI64FEGA=";
};
vendorSha256 = "sha256-m7QGv8Vx776TsN7QHXtO+yl3U1D573UMZVyg1B4UeIk=";
doCheck = false;
buildInputs = [ icu ];
CGO_ENABLED = 1;
ldflags = [ "-s" "-w" "-X=main.Build=${version}" ];
tags = [ "fts5" "icu" ];
meta = with lib; {
maintainers = with maintainers; [ pinpox ];
license = licenses.gpl3;
description = "A zettelkasten plain text note-taking assistant";
homepage = "https://github.com/mickael-menu/zk";
};
}

View File

@ -8,6 +8,7 @@
, openssl
, gflags
, gnuradio3_8
, thrift
, libpcap
, orc
, pkg-config
@ -21,6 +22,8 @@
gnuradio3_8.pkgs.mkDerivation rec {
pname = "gnss-sdr";
# There's an issue with cpufeatures on 0.0.15, see:
# https://github.com/NixOS/nixpkgs/pull/142557#issuecomment-950217925
version = "0.0.13";
src = fetchFromGitHub {
@ -56,6 +59,9 @@ gnuradio3_8.pkgs.mkDerivation rec {
protobuf
gnuradio3_8.pkgs.osmosdr
libpcap
] ++ lib.optionals (gnuradio3_8.hasFeature "gr-ctrlport") [
thrift
gnuradio3_8.unwrapped.python.pkgs.thrift
];
cmakeFlags = [

View File

@ -44,8 +44,6 @@
minor = "14";
patch = "0";
}
# We use our build of volk and not the one bundled with the release
, fetchSubmodules ? false
}:
let
@ -213,7 +211,6 @@ let
sourceSha256
overrideSrc
fetchFromGitHub
fetchSubmodules
;
qt = qt4;
gtk = gtk2;
@ -238,34 +235,34 @@ stdenv.mkDerivation rec {
passthru = shared.passthru // {
# Deps that are potentially overriden and are used inside GR plugins - the same version must
inherit boost volk;
} // lib.optionalAttrs (hasFeature "gr-uhd" features) {
} // lib.optionalAttrs (hasFeature "gr-uhd") {
inherit uhd;
};
cmakeFlags = shared.cmakeFlags
# From some reason, if these are not set, libcodec2 and gsm are
# not detected properly (slightly different then what's in
# ./default.nix).
++ lib.optionals (hasFeature "gr-vocoder" features) [
++ lib.optionals (hasFeature "gr-vocoder") [
"-DLIBCODEC2_LIBRARIES=${codec2}/lib/libcodec2.so"
"-DLIBCODEC2_INCLUDE_DIR=${codec2}/include"
"-DLIBGSM_LIBRARIES=${gsm}/lib/libgsm.so"
"-DLIBGSM_INCLUDE_DIR=${gsm}/include/gsm"
]
++ lib.optionals (hasFeature "volk" features && volk != null) [
++ lib.optionals (hasFeature "volk" && volk != null) [
"-DENABLE_INTERNAL_VOLK=OFF"
]
;
stripDebugList = shared.stripDebugList
# gr-fcd feature was dropped in 3.8
++ lib.optionals (hasFeature "gr-fcd" features) [ "share/gnuradio/examples/fcd" ]
++ lib.optionals (hasFeature "gr-fcd") [ "share/gnuradio/examples/fcd" ]
;
preConfigure = ""
# wxgui and pygtk are not looked up properly, so we force them to be
# detected as found, if they are requested by the `features` attrset.
+ lib.optionalString (hasFeature "gr-wxgui" features) ''
+ lib.optionalString (hasFeature "gr-wxgui") ''
sed -i 's/.*wx\.version.*/set(WX_FOUND TRUE)/g' gr-wxgui/CMakeLists.txt
''
+ lib.optionalString (hasFeature "gnuradio-companion" features) ''
+ lib.optionalString (hasFeature "gnuradio-companion") ''
sed -i 's/.*pygtk_version.*/set(PYGTK_FOUND TRUE)/g' grc/CMakeLists.txt
''
;

View File

@ -1,5 +1,6 @@
{ lib, stdenv
, fetchFromGitHub
, fetchpatch
, cmake
# Remove gcc and python references
, removeReferencesTo
@ -15,6 +16,7 @@
, python
, codec2
, gsm
, thrift
, fftwFloat
, alsa-lib
, libjack2
@ -41,15 +43,13 @@
, pname ? "gnuradio"
, versionAttr ? {
major = "3.8";
minor = "3";
patch = "1";
minor = "4";
patch = "0";
}
# We use our build of volk and not the one bundled with the release
, fetchSubmodules ? false
}:
let
sourceSha256 = "0vd39azp8n576dbqsanax7bgsnxwc80riaxid2ihxs4xzyjmbw9r";
sourceSha256 = "sha256-C8S3iF7vj9A8SpxriW9y7idrhXzonvenoQtVAMex+Iw=";
featuresInfo = {
# Needed always
basic = {
@ -65,7 +65,7 @@ let
]
# when gr-qtgui is disabled, icu needs to be included, otherwise
# building with boost 1.7x fails
++ lib.optionals (!(hasFeature "gr-qtgui" features)) [ icu ];
++ lib.optionals (!(hasFeature "gr-qtgui")) [ icu ];
pythonNative = with python.pkgs; [
Mako
six
@ -101,13 +101,19 @@ let
cmakeEnableFlag = "GNURADIO_RUNTIME";
};
gr-ctrlport = {
# Thrift support is not really working well, and even the patch they
# recommend applying on 0.9.2 won't apply. See:
# https://github.com/gnuradio/gnuradio/blob/v3.8.2.0/gnuradio-runtime/lib/controlport/thrift/README
cmakeEnableFlag = "GR_CTRLPORT";
native = [
swig
];
runtime = [
thrift
];
pythonRuntime = with python.pkgs; [
python.pkgs.thrift
# For gr-perf-monitorx
matplotlib
networkx
];
};
gnuradio-companion = {
pythonRuntime = with python.pkgs; [
@ -171,9 +177,14 @@ let
};
gr-utils = {
cmakeEnableFlag = "GR_UTILS";
pythonRuntime = with python.pkgs; [
# For gr_plot
matplotlib
];
};
gr-modtool = {
pythonRuntime = with python.pkgs; [
setuptools
click
click-plugins
];
@ -208,7 +219,6 @@ let
sourceSha256
overrideSrc
fetchFromGitHub
fetchSubmodules
;
qt = qt5;
gtk = gtk3;
@ -230,12 +240,21 @@ stdenv.mkDerivation rec {
dontWrapQtApps
meta
;
patches = [
# Not accepted upstream, see https://github.com/gnuradio/gnuradio/pull/5227
./modtool-newmod-permissions.3_8.patch
(fetchpatch {
# https://github.com/gnuradio/gnuradio/pull/5226
url = "https://github.com/gnuradio/gnuradio/commit/9d7343526dd793120b6425cd9a6969416ed32503.patch";
sha256 = "sha256-usSoRDDuClUfdX4yFbQNu8wDzve6UEhZYTFj1oZbFic=";
})
];
passthru = shared.passthru // {
# Deps that are potentially overriden and are used inside GR plugins - the same version must
inherit boost volk;
} // lib.optionalAttrs (hasFeature "gr-uhd" features) {
} // lib.optionalAttrs (hasFeature "gr-uhd") {
inherit uhd;
} // lib.optionalAttrs (hasFeature "gr-qtgui" features) {
} // lib.optionalAttrs (hasFeature "gr-qtgui") {
inherit (libsForQt5) qwt;
};
cmakeFlags = shared.cmakeFlags
@ -246,7 +265,7 @@ stdenv.mkDerivation rec {
#
# NOTE: qradiolink needs libcodec2 to be detected in
# order to build, see https://github.com/qradiolink/qradiolink/issues/67
++ lib.optionals (hasFeature "gr-vocoder" features) [
++ lib.optionals (hasFeature "gr-vocoder") [
"-DLIBCODEC2_FOUND=TRUE"
"-DLIBCODEC2_LIBRARIES=${codec2}/lib/libcodec2.so"
"-DLIBCODEC2_INCLUDE_DIRS=${codec2}/include"
@ -255,7 +274,7 @@ stdenv.mkDerivation rec {
"-DLIBGSM_LIBRARIES=${gsm}/lib/libgsm.so"
"-DLIBGSM_INCLUDE_DIRS=${gsm}/include/gsm"
]
++ lib.optionals (hasFeature "volk" features && volk != null) [
++ lib.optionals (hasFeature "volk" && volk != null) [
"-DENABLE_INTERNAL_VOLK=OFF"
]
;
@ -263,7 +282,7 @@ stdenv.mkDerivation rec {
postInstall = shared.postInstall
# This is the only python reference worth removing, if needed (3.7 doesn't
# set that reference).
+ lib.optionalString (!hasFeature "python-support" features) ''
+ lib.optionalString (!hasFeature "python-support") ''
${removeReferencesTo}/bin/remove-references-to -t ${python} $out/lib/cmake/gnuradio/GnuradioConfig.cmake
''
;

View File

@ -26,6 +26,7 @@
, libsodium
, libsndfile
, libunwind
, thrift
, cppzmq
, zeromq
# Needed only if qt-gui is disabled, from some reason
@ -45,14 +46,13 @@
, pname ? "gnuradio"
, versionAttr ? {
major = "3.9";
minor = "2";
minor = "3";
patch = "0";
}
, fetchSubmodules ? false
}:
let
sourceSha256 = "01wyqazrpphmb0fl69j93k0w4vm4d1l4177m1fyg7qx8hzia0aaq";
sourceSha256 = "sha256-jVfExv1CcnlOaaj/XtnfhWAHnQsshZJ1l/zXo0uovdo=";
featuresInfo = {
# Needed always
basic = {
@ -69,7 +69,7 @@ let
]
# when gr-qtgui is disabled, icu needs to be included, otherwise
# building with boost 1.7x fails
++ lib.optionals (!(hasFeature "gr-qtgui" features)) [ icu ];
++ lib.optionals (!(hasFeature "gr-qtgui")) [ icu ];
pythonNative = with python.pkgs; [
Mako
six
@ -100,11 +100,15 @@ let
];
};
gr-ctrlport = {
# Thrift support is not really working well, and even the patch they
# recommend applying on 0.9.2 won't apply. See:
# https://github.com/gnuradio/gnuradio/blob/v3.9.0.0/gnuradio-runtime/lib/controlport/thrift/README
runtime = [
libunwind
thrift
];
pythonRuntime = with python.pkgs; [
python.pkgs.thrift
# For gr-perf-monitorx
matplotlib
networkx
];
cmakeEnableFlag = "GR_CTRLPORT";
};
@ -140,6 +144,10 @@ let
gr-filter = {
runtime = [ fftwFloat ];
cmakeEnableFlag = "GR_FILTER";
pythonRuntime = with python.pkgs; [
scipy
pyqtgraph
];
};
gr-analog = {
cmakeEnableFlag = "GR_ANALOG";
@ -174,11 +182,22 @@ let
];
cmakeEnableFlag = "GR_UHD";
};
gr-uhd-rfnoc = {
runtime = [
uhd
];
cmakeEnableFlag = "UHD_RFNOC";
};
gr-utils = {
cmakeEnableFlag = "GR_UTILS";
pythonRuntime = with python.pkgs; [
# For gr_plot
matplotlib
];
};
gr-modtool = {
pythonRuntime = with python.pkgs; [
setuptools
click
click-plugins
];
@ -225,7 +244,6 @@ let
sourceSha256
overrideSrc
fetchFromGitHub
fetchSubmodules
;
qt = qt5;
gtk = gtk3;
@ -248,18 +266,27 @@ stdenv.mkDerivation rec {
dontWrapQtApps
meta
;
patches = [
# Not accepted upstream, see https://github.com/gnuradio/gnuradio/pull/5227
./modtool-newmod-permissions.patch
(fetchpatch {
# https://github.com/gnuradio/gnuradio/pull/5225
url = "https://github.com/gnuradio/gnuradio/commit/4cef46e3ea0faf04e05ca1a5846cd1568fa51bb2.patch";
sha256 = "sha256-6AlGbtD1S0c3I9JSoLTMP4YqwDU17i2j+XRkuR+QTuc=";
})
];
passthru = shared.passthru // {
# Deps that are potentially overriden and are used inside GR plugins - the same version must
inherit boost volk;
} // lib.optionalAttrs (hasFeature "gr-uhd" features) {
} // lib.optionalAttrs (hasFeature "gr-uhd") {
inherit uhd;
} // lib.optionalAttrs (hasFeature "gr-qtgui" features) {
} // lib.optionalAttrs (hasFeature "gr-qtgui") {
inherit (libsForQt5) qwt;
};
postInstall = shared.postInstall
# This is the only python reference worth removing, if needed.
+ lib.optionalString (!hasFeature "python-support" features) ''
+ lib.optionalString (!hasFeature "python-support") ''
${removeReferencesTo}/bin/remove-references-to -t ${python} $out/lib/cmake/gnuradio/GnuradioConfig.cmake
${removeReferencesTo}/bin/remove-references-to -t ${python} $(readlink -f $out/lib/libgnuradio-runtime.so)
${removeReferencesTo}/bin/remove-references-to -t ${python.pkgs.pybind11} $out/lib/cmake/gnuradio/gnuradio-runtimeTargets.cmake

View File

@ -0,0 +1,26 @@
commit bf870157e0a9c3d19e968afb276b4e7d96b4df30
Author: Doron Behar <doron.behar@gmail.com>
Date: Thu Oct 21 13:10:42 2021 +0300
gr-modtool: Don't copy source permissions
This is needed for systems such as NixOS, where the build tree isn't
writable and the files copied should be.
Signed-off-by: Doron Behar <doron.behar@gmail.com>
diff --git a/gr-utils/python/modtool/core/newmod.py b/gr-utils/python/modtool/core/newmod.py
index 123059907..0c734e7ae 100644
--- a/gr-utils/python/modtool/core/newmod.py
+++ b/gr-utils/python/modtool/core/newmod.py
@@ -78,7 +78,9 @@ class ModToolNewModule(ModTool):
self._setup_scm(mode='new')
logger.info("Creating out-of-tree module in {}...".format(self.dir))
try:
- shutil.copytree(self.srcdir, self.dir)
+ # https://stackoverflow.com/a/17022146/4935114
+ shutil.copystat = lambda x, y: x
+ shutil.copytree(self.srcdir, self.dir, copy_function=shutil.copyfile)
os.chdir(self.dir)
except OSError:
raise ModToolException('Could not create directory {}.'.format(self.dir))

View File

@ -0,0 +1,15 @@
diff --git c/gr-utils/modtool/core/newmod.py w/gr-utils/modtool/core/newmod.py
index babebfcde..9a02f663e 100644
--- c/gr-utils/modtool/core/newmod.py
+++ w/gr-utils/modtool/core/newmod.py
@@ -62,7 +62,9 @@ class ModToolNewModule(ModTool):
self._setup_scm(mode='new')
logger.info(f"Creating out-of-tree module in {self.dir}...")
try:
- shutil.copytree(self.srcdir, self.dir)
+ # https://stackoverflow.com/a/17022146/4935114
+ shutil.copystat = lambda x, y: x
+ shutil.copytree(self.srcdir, self.dir, copy_function=shutil.copyfile)
try:
shutil.copyfile(os.path.join(gr.prefix(), 'share', 'gnuradio', 'clang-format.conf'),
os.path.join(self.dir, '.clang-format'))

View File

@ -11,7 +11,6 @@
# the main expressions
, overrideSrc
, fetchFromGitHub
, fetchSubmodules
}:
rec {
@ -26,12 +25,11 @@ rec {
owner = "gnuradio";
rev = "v${version}";
sha256 = sourceSha256;
inherit fetchSubmodules;
}
;
# Check if a feature is enabled, while defaulting to true if feat is not
# specified.
hasFeature = feat: features: (
hasFeature = feat: (
if builtins.hasAttr feat features then
features.${feat}
else
@ -39,7 +37,7 @@ rec {
);
nativeBuildInputs = lib.flatten (lib.mapAttrsToList (
feat: info: (
if hasFeature feat features then
if hasFeature feat then
(if builtins.hasAttr "native" info then info.native else []) ++
(if builtins.hasAttr "pythonNative" info then info.pythonNative else [])
else
@ -48,7 +46,7 @@ rec {
) featuresInfo);
buildInputs = lib.flatten (lib.mapAttrsToList (
feat: info: (
if hasFeature feat features then
if hasFeature feat then
(if builtins.hasAttr "runtime" info then info.runtime else []) ++
(if builtins.hasAttr "pythonRuntime" info then info.pythonRuntime else [])
else
@ -63,7 +61,7 @@ rec {
# satisfied, let only our cmakeFlags decide.
"-DENABLE_DEFAULT=OFF"
else
if hasFeature feat features then
if hasFeature feat then
"-DENABLE_${info.cmakeEnableFlag}=ON"
else
"-DENABLE_${info.cmakeEnableFlag}=OFF"
@ -75,17 +73,17 @@ rec {
stdenv.cc.cc
]
# If python-support is disabled, we probably don't want it referenced
++ lib.optionals (!hasFeature "python-support" features) [ python ]
++ lib.optionals (!hasFeature "python-support") [ python ]
;
# Gcc references from examples
stripDebugList = [ "lib" "bin" ]
++ lib.optionals (hasFeature "gr-audio" features) [ "share/gnuradio/examples/audio" ]
++ lib.optionals (hasFeature "gr-uhd" features) [ "share/gnuradio/examples/uhd" ]
++ lib.optionals (hasFeature "gr-qtgui" features) [ "share/gnuradio/examples/qt-gui" ]
++ lib.optionals (hasFeature "gr-audio") [ "share/gnuradio/examples/audio" ]
++ lib.optionals (hasFeature "gr-uhd") [ "share/gnuradio/examples/uhd" ]
++ lib.optionals (hasFeature "gr-qtgui") [ "share/gnuradio/examples/qt-gui" ]
;
postInstall = ""
# Gcc references
+ lib.optionalString (hasFeature "gnuradio-runtime" features) ''
+ lib.optionalString (hasFeature "gnuradio-runtime") ''
${removeReferencesTo}/bin/remove-references-to -t ${stdenv.cc} $(readlink -f $out/lib/libgnuradio-runtime.so)
''
;
@ -101,9 +99,9 @@ rec {
featuresInfo
python
;
} // lib.optionalAttrs (hasFeature "gr-qtgui" features) {
} // lib.optionalAttrs (hasFeature "gr-qtgui") {
inherit qt;
} // lib.optionalAttrs (hasFeature "gnuradio-companion" features) {
} // lib.optionalAttrs (hasFeature "gnuradio-companion") {
inherit gtk;
};
# Wrapping is done with an external wrapper

View File

@ -33,25 +33,20 @@
}:
let
# We don't check if `python-support` feature is on, as it's unlikely someone
# may wish to wrap GR without python support.
pythonPkgs = extraPythonPackages
++ [ (unwrapped.python.pkgs.toPythonModule unwrapped) ]
# Add the extraPackages as python modules as well
++ (builtins.map unwrapped.python.pkgs.toPythonModule extraPackages)
++ lib.flatten (lib.mapAttrsToList (
feat: info: (
if unwrapped.hasFeature feat unwrapped.features then
if unwrapped.hasFeature feat then
(if builtins.hasAttr "pythonRuntime" info then info.pythonRuntime else [])
else
[]
)
) unwrapped.featuresInfo)
++ lib.optionals
(unwrapped.hasFeature "python-support" unwrapped.features)
(
# Add unwrapped itself as a python module
[ (unwrapped.python.pkgs.toPythonModule unwrapped) ]
# Add all extraPackages as python modules
++ (builtins.map unwrapped.python.pkgs.toPythonModule extraPackages)
)
;
pythonEnv = unwrapped.python.withPackages(ps: pythonPkgs);
@ -60,8 +55,8 @@ let
]
# Emulating wrapGAppsHook & wrapQtAppsHook working together
++ lib.optionals (
(unwrapped.hasFeature "gnuradio-companion" unwrapped.features)
|| (unwrapped.hasFeature "gr-qtgui" unwrapped.features)
(unwrapped.hasFeature "gnuradio-companion")
|| (unwrapped.hasFeature "gr-qtgui")
) [
"--prefix" "XDG_DATA_DIRS" ":" "$out/share"
"--prefix" "XDG_DATA_DIRS" ":" "$out/share/gsettings-schemas/${name}"
@ -71,7 +66,7 @@ let
# https://www.mail-archive.com/debian-bugs-dist@lists.debian.org/msg1764890.html
"--prefix" "PATH" ":" "${lib.getBin glib}/bin"
]
++ lib.optionals (unwrapped.hasFeature "gnuradio-companion" unwrapped.features) [
++ lib.optionals (unwrapped.hasFeature "gnuradio-companion") [
"--set" "GDK_PIXBUF_MODULE_FILE" "${librsvg}/${gdk-pixbuf.moduleDir}.cache"
"--prefix" "GIO_EXTRA_MODULES" ":" "${lib.getLib dconf}/lib/gio/modules"
"--prefix" "XDG_DATA_DIRS" ":" "${unwrapped.gtk}/share"
@ -94,7 +89,7 @@ let
++ lib.optionals (extraPackages != []) [
"--prefix" "GRC_BLOCKS_PATH" ":" "${lib.makeSearchPath "share/gnuradio/grc/blocks" extraPackages}"
]
++ lib.optionals (unwrapped.hasFeature "gr-qtgui" unwrapped.features)
++ lib.optionals (unwrapped.hasFeature "gr-qtgui")
# 3.7 builds with qt4
(if lib.versionAtLeast unwrapped.versionAttr.major "3.8" then
[

View File

@ -4,6 +4,7 @@
, pkg-config
, qt5
, gnuradio3_8Minimal
, thrift
, log4cpp
, mpir
, fftwFloat
@ -45,6 +46,9 @@ gnuradio3_8Minimal.pkgs.mkDerivation rec {
gnuradio3_8Minimal.pkgs.osmosdr
rtl-sdr
hackrf
] ++ lib.optionals (gnuradio3_8Minimal.hasFeature "gr-ctrlport") [
thrift
gnuradio3_8Minimal.unwrapped.python.pkgs.thrift
] ++ lib.optionals pulseaudioSupport [ libpulseaudio ];
postInstall = ''

View File

@ -1,5 +1,6 @@
{ lib
, gnuradio3_8Minimal
, thrift
, fetchFromGitHub
, pkg-config
, cmake
@ -28,6 +29,9 @@ gnuradio3_8Minimal.pkgs.mkDerivation rec {
fftwFloat
liquid-dsp
qt5.qtbase
] ++ lib.optionals (gnuradio3_8Minimal.hasFeature "gr-ctrlport") [
thrift
gnuradio3_8Minimal.unwrapped.python.pkgs.thrift
];
meta = with lib; {

View File

@ -4,6 +4,7 @@
, libconfig
# Needs a gnuradio built with qt gui support
, gnuradio3_8
, thrift
# Not gnuradioPackages'
, codec2
, log4cpp
@ -61,6 +62,9 @@ gnuradio3_8.pkgs.mkDerivation rec {
libftdi
libsndfile
gnuradio3_8.qwt
] ++ lib.optionals (gnuradio3_8.hasFeature "gr-ctrlport") [
thrift
gnuradio3_8.unwrapped.python.pkgs.thrift
];
nativeBuildInputs = [
protobuf

View File

@ -26,6 +26,6 @@ in stdenv.mkDerivation {
description = "SoapySDR plugin for RTL-SDR devices";
license = licenses.mit;
maintainers = with maintainers; [ ragge ];
platforms = platforms.linux;
platforms = platforms.unix;
};
}

View File

@ -19,8 +19,8 @@ stdenv.mkDerivation rec {
meta = with lib; {
homepage = "https://vapier.github.io/pcalc/";
description = "Programmer's calculator";
license = licenses.gpl2;
maintainers = with lib.maintainers; [ ftrvxmtrx ];
platforms = lib.platforms.linux;
license = licenses.gpl2Plus;
maintainers = with maintainers; [ ftrvxmtrx ];
platforms = platforms.unix;
};
}

View File

@ -9,16 +9,16 @@
rustPlatform.buildRustPackage rec {
pname = "delta";
version = "0.8.3";
version = "0.9.1";
src = fetchFromGitHub {
owner = "dandavison";
repo = pname;
rev = version;
sha256 = "sha256-lwdsl3dzqrIL1JoBFmldwsCvNCWUcTlgeoEoCvmlTCQ=";
sha256 = "sha256-LyKkkQlYdCyvlru+o/QeA7CDWYgCRTFKAdAjJxJX+oM=";
};
cargoSha256 = "sha256-7TvxkSJ3iWJnjD3Xe7WDXBNWIyl8U9XTCn9muUG1AmI=";
cargoSha256 = "sha256-+ao2nVRkXNWs00oUiATgzsDTfPo09BV66AioZQqBhGk=";
nativeBuildInputs = [ installShellFiles ];

View File

@ -2,16 +2,16 @@
buildGoModule rec {
pname = "gh";
version = "2.1.0";
version = "2.2.0";
src = fetchFromGitHub {
owner = "cli";
repo = "cli";
rev = "v${version}";
sha256 = "sha256-70FmFN76azRqnAZ9SLgr/V8moqkWoBbDB6IdSXM7Vmg=";
sha256 = "sha256-/czexUqpdsFQAteZ75ur2SFibrtZWffHpPBEPlLQXSY=";
};
vendorSha256 = "sha256-004TspNwjCWnrD86HEf5wGpt8OCP5qIrTwlGWSRNUmg=";
vendorSha256 = "sha256-slMl5dCyyVNBgDbpYECfYUbpJJ7sWuSGSutYR3rTzj0=";
nativeBuildInputs = [ installShellFiles ];

View File

@ -16,12 +16,12 @@ with lib;
buildGoPackage rec {
pname = "gitea";
version = "1.15.5";
version = "1.15.6";
# not fetching directly from the git repo, because that lacks several vendor files for the web UI
src = fetchurl {
url = "https://github.com/go-gitea/gitea/releases/download/v${version}/gitea-src-${version}.tar.gz";
sha256 = "sha256-W+czWzo4keTLRPDLcTeYl3JSccwfq+P6k4ELADO9FVM=";
sha256 = "sha256-FMM/iQAxJcymv4jYBzaBXG0Uy8UxHh9gFWB5gzV9cn0=";
};
unpackPhase = ''

View File

@ -19,11 +19,11 @@
stdenv.mkDerivation rec {
pname = "github-desktop";
version = "2.9.3";
version = "2.9.4";
src = fetchurl {
url = "https://github.com/shiftkey/desktop/releases/download/release-${version}-linux1/GitHubDesktop-linux-${version}-linux1.deb";
sha256 = "sha256-e3XDjVQ5VcsS/MGxNsDs2h77joZAz8mNn+SwrqiUAR0=";
sha256 = "sha256-CcAOATIEcrUKhVQWFr0dMvY9Q5rHWQI9/KdSEZ/ncD4=";
};
nativeBuildInputs = [

View File

@ -11,7 +11,6 @@
, yajl
, nixosTests
, criu
, system
}:
let
@ -52,7 +51,7 @@ stdenv.mkDerivation rec {
buildInputs = [ libcap libseccomp systemd yajl ]
# Criu currently only builds on x86_64-linux
++ lib.optional (lib.elem system criu.meta.platforms) criu;
++ lib.optional (lib.elem stdenv.hostPlatform.system criu.meta.platforms) criu;
enableParallelBuilding = true;

View File

@ -0,0 +1,43 @@
{ lib
, rustPlatform
, fetchFromGitHub
, pkg-config
, gtk3
, withWayland ? false
, gtk-layer-shell
}:
rustPlatform.buildRustPackage rec {
pname = "eww";
version = "0.2.0";
src = fetchFromGitHub {
owner = "elkowar";
repo = pname;
rev = "v${version}";
sha256 = "050zc3w1z9f2vg6sz86mdxf345gd3s3jf09gf4y8y1mqkzs86b8x";
};
cargoSha256 = "sha256-LejnTVv9rhL9CVW1fgj2gFv4amHQeziu5uaH2ae8AAw=";
nativeBuildInputs = [ pkg-config ];
buildInputs = [ gtk3 ] ++ lib.optional withWayland gtk-layer-shell;
cargoBuildFlags = [ "--bin" "eww" ] ++ lib.optionals withWayland [
"--no-default-features"
"--features=wayland"
];
cargoTestFlags = cargoBuildFlags;
# requires unstable rust features
RUSTC_BOOTSTRAP = 1;
meta = with lib; {
description = "ElKowars wacky widgets";
homepage = "https://github.com/elkowar/eww";
license = licenses.mit;
maintainers = with maintainers; [ figsoda legendofmiracles ];
};
}

View File

@ -31,8 +31,6 @@
, writeText
, writeTextDir
, writePython3
, system
, # Note: This is the cross system we're compiling for
}:
let

View File

@ -0,0 +1,9 @@
{ substituteAll, unzip, zip }:
substituteAll {
name = "canonicalize-jar";
src = ./canonicalize-jar.sh;
unzip = "${unzip}/bin/unzip";
zip = "${zip}/bin/zip";
}

View File

@ -0,0 +1,29 @@
# Canonicalize the manifest & repack with deterministic timestamps.
canonicalizeJar() {
local input='' outer=''
input="$(realpath -sm -- "$1")"
outer="$(pwd)"
# -qq: even quieter
@unzip@ -qq "$input" -d "$input-tmp"
canonicalizeJarManifest "$input-tmp/META-INF/MANIFEST.MF"
# Sets all timestamps to Jan 1 1980, the earliest mtime zips support.
find -- "$input-tmp" -exec touch -t 198001010000.00 {} +
rm "$input"
pushd "$input-tmp" 2>/dev/null
# -q|--quiet, -r|--recurse-paths
# -o|--latest-time: canonicalizes overall archive mtime
# -X|--no-extra: don't store platform-specific extra file attribute fields
@zip@ -qroX "$outer/tmp-out.jar" . 2> /dev/null
popd 2>/dev/null
rm -rf "$input-tmp"
mv "$outer/tmp-out.jar" "$input"
}
# See also the Java specification's JAR requirements:
# https://docs.oracle.com/javase/8/docs/technotes/guides/jar/jar.html#Notes_on_Manifest_and_Signature_Files
canonicalizeJarManifest() {
local input=''
input="$(realpath -sm -- "$1")"
(head -n 1 "$input" && tail -n +2 "$input" | sort | grep -v '^\s*$') > "$input-tmp"
mv "$input-tmp" "$input"
}

View File

@ -1,123 +0,0 @@
{ src
, pkgs
, lib
, stdenv ? pkgs.stdenv
, name
, antTargets ? []
, jars ? []
, jarWrappers ? []
, antProperties ? []
, antBuildInputs ? []
, buildfile ? "build.xml"
, ant ? pkgs.ant
, jre ? pkgs.jdk
, hydraAntLogger ? pkgs.hydraAntLogger
, zip ? pkgs.zip
, unzip ? pkgs.unzip
, ... } @ args:
let
antFlags = "-f ${buildfile} " + lib.concatMapStrings ({name, value}: "-D${name}=${value} " ) antProperties ;
in
stdenv.mkDerivation (
{
inherit jre ant;
showBuildStats = true;
postPhases =
["generateWrappersPhase" "finalPhase"];
prePhases =
["antSetupPhase"];
antSetupPhase = with lib; ''
if test "$hydraAntLogger" != "" ; then
export ANT_ARGS="-logger org.hydra.ant.HydraLogger -lib `ls $hydraAntLogger/share/java/*.jar | head -1`"
fi
for abi in ${concatStringsSep " " (map (f: "`find ${f} -name '*.jar'`") antBuildInputs)}; do
export ANT_ARGS="$ANT_ARGS -lib $abi"
done
'';
installPhase = ''
runHook preInstall
mkdir -p $out/share/java
${ if jars == [] then ''
find . -name "*.jar" | xargs -I{} cp -v {} $out/share/java
'' else lib.concatMapStrings (j: ''
cp -v ${j} $out/share/java
'') jars }
. ${./functions.sh}
for j in $out/share/java/*.jar ; do
canonicalizeJar $j
echo file jar $j >> $out/nix-support/hydra-build-products
done
runHook postInstall
'';
generateWrappersPhase =
let
cp = w: "-cp '${lib.optionalString (w ? classPath) w.classPath}${lib.optionalString (w ? mainClass) ":$out/share/java/*"}'";
in
''
header "Generating jar wrappers"
'' + (lib.concatMapStrings (w: ''
mkdir -p $out/bin
cat >> $out/bin/${w.name} <<EOF
#!${pkgs.runtimeShell}
export JAVA_HOME=$jre
$jre/bin/java ${cp w} ${if w ? mainClass then w.mainClass else "-jar ${w.jar}"} \$@
EOF
chmod a+x $out/bin/${w.name} || exit 1
'') jarWrappers) + ''
closeNest
'';
buildPhase = ''
runHook preBuild
'' + (if antTargets == [] then ''
header "Building default ant target"
ant ${antFlags}
closeNest
'' else lib.concatMapStrings (t: ''
header "Building '${t}' target"
ant ${antFlags} ${t}
closeNest
'') antTargets) + ''
runHook postBuild
'';
finalPhase =
''
# Propagate the release name of the source tarball. This is
# to get nice package names in channels.
if test -e $origSrc/nix-support/hydra-release-name; then
cp $origSrc/nix-support/hydra-release-name $out/nix-support/hydra-release-name
fi
'';
}
// removeAttrs args ["antProperties" "buildInputs" "pkgs" "lib" "jarWrappers"] //
{
name = name + (if src ? version then "-" + src.version else "");
nativeBuildInputs = [ unzip ];
buildInputs = [ant jre zip] ++ lib.optional (args ? buildInputs) args.buildInputs ;
postHook = ''
mkdir -p $out/nix-support
echo "$system" > $out/nix-support/system
. ${./functions.sh}
origSrc=$src
src=$(findTarball $src)
'';
}
)

View File

@ -14,10 +14,6 @@ rec {
{ inherit stdenv;
} // args);
antBuild = args: import ./ant-build.nix (
{ inherit lib pkgs;
} // args);
mvnBuild = args: import ./maven-build.nix (
{ inherit stdenv;
} // args);

View File

@ -11,29 +11,6 @@ findTarball() {
fi
}
canonicalizeJarManifest() {
local input=$1
# http://docs.oracle.com/javase/7/docs/technotes/guides/jar/jar.html#Notes_on_Manifest_and_Signature_Files
(head -n 1 $input && tail -n +2 $input | sort | grep -v '^\s*$') > $input-tmp
mv $input-tmp $input
}
# Post-process a jar file to contain canonical timestamps and metadata ordering
canonicalizeJar() {
local input=$1
local outer=$(pwd)
unzip -qq $input -d $input-tmp
canonicalizeJarManifest $input-tmp/META-INF/MANIFEST.MF
# Set all timestamps to Jan 1 1980, which is the earliest date the zip format supports...
find $input-tmp -exec touch -t 198001010000.00 {} +
rm $input
pushd $input-tmp
zip -q -r -o -X $outer/tmp-out.jar . 2> /dev/null
popd
rm -rf $input-tmp
mv $outer/tmp-out.jar $input
}
propagateImageName() {
mkdir -p $out/nix-support
cat "$diskImage"/nix-support/full-name > $out/nix-support/full-name

View File

@ -22,7 +22,11 @@
, clang
, llvmPackages
, linux-pam
, cmake
, glib
, freetype
, rdkafka
, udev
, ...
}:
@ -61,6 +65,10 @@ in
buildInputs = [ dbus ];
};
expat-sys = attrs: {
nativeBuildInputs = [ cmake ];
};
foundationdb-sys = attrs: {
buildInputs = [ foundationdb ];
# needed for 0.4+ release, when the FFI bindings are auto-generated
@ -75,6 +83,16 @@ in
buildInputs = [ foundationdb ];
};
freetype-sys = attrs: {
nativeBuildInputs = [ cmake ];
buildInputs = [ freetype ];
};
glib-sys = attrs: {
nativeBuildInputs = [ pkg-config ];
buildInputs = [ glib ];
};
gobject-sys = attrs: {
buildInputs = [ dbus-glib ];
};
@ -112,6 +130,11 @@ in
buildInputs = [ dbus ];
};
libudev-sys = attrs: {
nativeBuildInputs = [ pkg-config ];
buildInputs = [ udev ];
};
nettle-sys = attrs: {
nativeBuildInputs = [ pkg-config ];
buildInputs = [ nettle clang ];
@ -184,6 +207,11 @@ in
buildInputs = lib.optional stdenv.isDarwin Security;
};
servo-fontconfig-sys = attrs: {
nativeBuildInputs = [ pkg-config ];
buildInputs = [ freetype ];
};
thrussh-libsodium = attrs: {
nativeBuildInputs = [ pkg-config ];
buildInputs = [ libsodium ];

View File

@ -0,0 +1,17 @@
# This setup hook causes the fixup phase to repack all JAR files in a
# canonical & deterministic fashion, e.g. resetting mtimes (like with normal
# store files) and avoiding impure metadata.
fixupOutputHooks+=('if [ -z "$dontCanonicalizeJars" -a -e "$prefix" ]; then canonicalizeJarsIn "$prefix"; fi')
canonicalizeJarsIn() {
local dir="$1"
header "canonicalizing jars in $dir"
dir="$(realpath -sm -- "$dir")"
while IFS= read -rd '' f; do
canonicalizeJar "$f"
done < <(find -- "$dir" -type f -name '*.jar' -print0)
stopNest
}
source @canonicalize_jar@

View File

@ -465,6 +465,88 @@ rec {
'';
/*
* Extract a string's references to derivations and paths (its
* context) and write them to a text file, removing the input string
* itself from the dependency graph. This is useful when you want to
* make a derivation depend on the string's references, but not its
* contents (to avoid unnecessary rebuilds, for example).
*
* Note that this only works as intended on Nix >= 2.3.
*/
writeStringReferencesToFile = string:
/*
* The basic operation this performs is to copy the string context
* from `string' to a second string and wrap that string in a
* derivation. However, that alone is not enough, since nothing in the
* string refers to the output paths of the derivations/paths in its
* context, meaning they'll be considered build-time dependencies and
* removed from the wrapper derivation's closure. Putting the
* necessary output paths in the new string is however not very
* straightforward - the attrset returned by `getContext' contains
* only references to derivations' .drv-paths, not their output
* paths. In order to "convert" them, we try to extract the
* corresponding paths from the original string using regex.
*/
let
# Taken from https://github.com/NixOS/nix/blob/130284b8508dad3c70e8160b15f3d62042fc730a/src/libutil/hash.cc#L84
nixHashChars = "0123456789abcdfghijklmnpqrsvwxyz";
context = builtins.getContext string;
derivations = lib.filterAttrs (n: v: v ? outputs) context;
# Objects copied from outside of the store, such as paths and
# `builtins.fetch*`ed ones
sources = lib.attrNames (lib.filterAttrs (n: v: v ? path) context);
packages =
lib.mapAttrs'
(name: value:
{
inherit value;
name = lib.head (builtins.match "${builtins.storeDir}/[${nixHashChars}]+-(.*)\.drv" name);
})
derivations;
# The syntax of output paths differs between outputs named `out`
# and other, explicitly named ones. For explicitly named ones,
# the output name is suffixed as `-name`, but `out` outputs
# aren't suffixed at all, and thus aren't easily distinguished
# from named output paths. Therefore, we find all the named ones
# first so we can use them to remove false matches when looking
# for `out` outputs (see the definition of `outputPaths`).
namedOutputPaths =
lib.flatten
(lib.mapAttrsToList
(name: value:
(map
(output:
lib.filter
lib.isList
(builtins.split "(${builtins.storeDir}/[${nixHashChars}]+-${name}-${output})" string))
(lib.remove "out" value.outputs)))
packages);
# Only `out` outputs
outputPaths =
lib.flatten
(lib.mapAttrsToList
(name: value:
if lib.elem "out" value.outputs then
lib.filter
(x: lib.isList x &&
# If the matched path is in `namedOutputPaths`,
# it's a partial match of an output path where
# the output name isn't `out`
lib.all (o: !lib.hasPrefix (lib.head x) o) namedOutputPaths)
(builtins.split "(${builtins.storeDir}/[${nixHashChars}]+-${name})" string)
else
[])
packages);
allPaths = lib.concatStringsSep "\n" (lib.unique (sources ++ namedOutputPaths ++ outputPaths));
allPathsWithContext = builtins.appendContext allPaths context;
in
if builtins ? getContext then
writeText "string-references" allPathsWithContext
else
writeDirectReferencesToFile (writeText "string-file" string);
/* Print an error message if the file with the specified name and
* hash doesn't exist in the Nix store. This function should only
* be used by non-redistributable software with an unfree license

View File

@ -38,11 +38,27 @@ nixosTest {
DIRECT_REFS = invokeSamples ./test/invoke-writeDirectReferencesToFile.nix;
};
};
testScript = ''
machine.succeed("""
${./test.sh} 2>/dev/console
""")
'';
testScript =
let
sample = import ./test/sample.nix { inherit pkgs; };
samplePaths = lib.unique (lib.attrValues sample);
sampleText = pkgs.writeText "sample-text" (lib.concatStringsSep "\n" samplePaths);
stringReferencesText =
pkgs.writeStringReferencesToFile
((lib.concatMapStringsSep "fillertext"
(d: "${d}")
(lib.attrValues sample)) + ''
STORE=${builtins.storeDir};\nsystemctl start bar-foo.service
'');
in ''
machine.succeed("""
${./test.sh} 2>/dev/console
""")
machine.succeed("""
echo >&2 Testing string references...
diff -U3 <(sort ${stringReferencesText}) <(sort ${sampleText})
""")
'';
meta = {
license = lib.licenses.mit; # nixpkgs license
maintainers = with lib.maintainers; [

View File

@ -2,6 +2,7 @@
let
inherit (pkgs)
figlet
zlib
hello
writeText
;
@ -9,8 +10,13 @@ in
{
hello = hello;
figlet = figlet;
zlib = zlib;
zlib-dev = zlib.dev;
norefs = writeText "hi" "hello";
norefsDup = writeText "hi" "hello";
helloRef = writeText "hi" "hello ${hello}";
helloRefDup = writeText "hi" "hello ${hello}";
path = ./invoke-writeReferencesToFile.nix;
helloFigletRef = writeText "hi" "hello ${hello} ${figlet}";
inherit (pkgs)
emptyFile

View File

@ -25,7 +25,8 @@ let
in
stdenv.mkDerivation {
name = "corefonts-1";
pname = "corefonts";
version = "1";
exes = map ({name, sha256}: fetchurl {
url = "mirror://sourceforge/corefonts/${name}32.exe";

View File

@ -36,7 +36,7 @@
, xcbutil
, xcbutilwm
, xz
, buildManPages ? true, ruby
, buildManpages ? true, ruby
}:
let
@ -52,21 +52,21 @@ let
in
stdenv.mkDerivation rec {
pname = "arcan";
version = "0.6.1pre1+unstable=2021-09-05";
version = "0.6.1pre1+unstable=2021-10-16";
src = fetchFromGitHub {
owner = "letoram";
repo = "arcan";
rev = "525521177e4458199d7a57f8e6d37d41c04a988d";
hash = "sha256-RsvTHPIvF9TeOfjPGcArptIiF9g42BfZkVMCbjJcXnE=";
rev = "e0182b944152fbcb49f5c16932d38c05a9fb2680";
hash = "sha256-4FodFuO51ehvyjH4YaF/xBY9dwA6cP/e6/BvEsH4w7U=";
};
postUnpack = ''
(
cd $sourceRoot/external/git/
cp -a ${letoram-openal-src}/ openal/
chmod --recursive 744 openal/
)
pushd .
cd $sourceRoot/external/git/
cp -a ${letoram-openal-src}/ openal/
chmod --recursive 744 openal/
popd
'';
# TODO: work with upstream in order to get rid of these hardcoded paths
@ -82,7 +82,7 @@ stdenv.mkDerivation rec {
cmake
makeWrapper
pkg-config
] ++ lib.optionals buildManPages [
] ++ lib.optionals buildManpages [
ruby
];
@ -123,8 +123,11 @@ stdenv.mkDerivation rec {
# INFO: According to the source code, the manpages need to be generated before
# the configure phase
preConfigure = lib.optionalString buildManPages ''
(cd doc; ruby docgen.rb mangen)
preConfigure = lib.optionalString buildManpages ''
pushd .
cd doc
ruby docgen.rb mangen
popd
'';
cmakeFlags = [

View File

@ -9,25 +9,26 @@ rec {
# Arcan
arcan = callPackage ./arcan.nix { };
arcan = callPackage ./arcan { };
arcan-wrapped = callPackage ./wrapper.nix { };
xarcan = callPackage ./xarcan.nix { };
xarcan = callPackage ./xarcan { };
# Appls
durden = callPackage ./durden.nix { };
durden = callPackage ./durden { };
durden-wrapped = callPackage ./wrapper.nix {
name = "durden-wrapped";
appls = [ durden ];
};
pipeworld = callPackage ./pipeworld.nix { };
pipeworld = callPackage ./pipeworld { };
pipeworld-wrapped = callPackage ./wrapper.nix {
name = "pipeworld-wrapped";
appls = [ pipeworld ];
};
prio = callPackage ./prio.nix { };
# Warning: prio is deprecated; however it works and is useful for testing
prio = callPackage ./prio { };
prio-wrapped = callPackage ./wrapper.nix {
name = "prio-wrapped";
appls = [ prio ];

View File

@ -5,13 +5,13 @@
stdenv.mkDerivation rec {
pname = "durden";
version = "0.6.1+unstable=2021-07-11";
version = "0.6.1+unstable=2021-10-15";
src = fetchFromGitHub {
owner = "letoram";
repo = pname;
rev = "8e0a5c07cade9ad9f606781615c9ebae7b28b6d5";
hash = "sha256-4cGuCAeYmmr4ACWt2akVQu2cPqqyE6p+XFaKWcFf3t0=";
rev = "ab6cdaf19e87b74895a9ab5e1d005a07ea9396a6";
hash = "sha256-FxqY1TUgbD/PjQjTZZerb7ngn5nkcqmVwqPvbRAYaqo=";
};
installPhase = ''

View File

@ -24,6 +24,6 @@ symlinkJoin rec {
done
'';
}
# TODO: set ARCAN_FONTPATH to a set of fonts that can be provided in a parameter
# TODO: set ARCAN_STATEBASEPATH to $HOME/.arcan/resources/savestates/ - possibly
# via a suitable script
# TODO: set ARCAN_FONTPATH to a set of default-but-configurable fontset

View File

@ -3,6 +3,7 @@
, ninja
, gettext
, fetchurl
, fetchpatch
, pkg-config
, gtk3
, glib
@ -46,12 +47,30 @@ stdenv.mkDerivation rec {
sha256 = "s50YJUkllbC3TF1qZoaoV/lBnfpMAvgBPCl7yHDibdA=";
};
patches = lib.optionals withPantheon [
# Make this respect dark mode settings from Pantheon
patches = [
# tab-view: Update close button position on startup
# https://gitlab.gnome.org/GNOME/epiphany/-/merge_requests/1025
(fetchpatch {
url = "https://gitlab.gnome.org/GNOME/epiphany/-/commit/6e9d6d3cf7fa7ddf21a70e9816a5cd4767a79523.patch";
sha256 = "sha256-lBVliGCIKwTvsYnWjAcmJxhTg1HS/2x4wlOh+4sx/xQ=";
})
] ++ lib.optionals withPantheon [
# Pantheon specific patches for epiphany
# https://github.com/elementary/browser
# The patch currently differs from upstream (updated for epiphany 40 and 41).
./pantheon-dark-style.patch
./pantheon-navigation-buttons.patch
#
# Make this respect dark mode settings from Pantheon
# https://github.com/elementary/browser/pull/21
# https://github.com/elementary/browser/pull/41
(fetchpatch {
url = "https://raw.githubusercontent.com/elementary/browser/cc17559a7ac6effe593712b4f3d0bbefde6e3b62/dark-style.patch";
sha256 = "sha256-RzMUc9P51UN3tRFefzRtMniXR9duOOmLj5eu5gL2TEQ=";
})
# Patch to unlink nav buttons
# https://github.com/elementary/browser/pull/18
(fetchpatch {
url = "https://raw.githubusercontent.com/elementary/browser/cc17559a7ac6effe593712b4f3d0bbefde6e3b62/navigation-buttons.patch";
sha256 = "sha256-G1/JUjn/8DyO9sgL/5Kq205KbTOs4EMi4Vf3cJ8FHXU=";
})
];
nativeBuildInputs = [

View File

@ -1,76 +0,0 @@
diff --git a/meson.build b/meson.build
index de9cbfa850..647f617605 100644
--- a/meson.build
+++ b/meson.build
@@ -92,6 +92,7 @@ iso_codes_dep = dependency('iso-codes', version: '>= 0.35')
json_glib_dep = dependency('json-glib-1.0', version: '>= 1.6')
libarchive_dep = dependency('libarchive')
libdazzle_dep = dependency('libdazzle-1.0', version: '>= 3.37.1')
+libgranite_dep = dependency('granite', version: '>= 6.0.0')
libhandy_dep = dependency('libhandy-1', version: '>= 1.1.0')
libsecret_dep = dependency('libsecret-1', version: '>= 0.19.0')
libsoup_dep = dependency('libsoup-2.4', version: '>= 2.48.0')
diff --git a/src/ephy-shell.c b/src/ephy-shell.c
index 650531da86..b9d1355e86 100644
--- a/src/ephy-shell.c
+++ b/src/ephy-shell.c
@@ -50,6 +50,7 @@
#include <glib/gi18n.h>
#include <gtk/gtk.h>
+#include <granite.h>
#include <handy.h>
struct _EphyShell {
@@ -483,6 +484,20 @@ run_in_background_set_mapping (const GValue *value,
return g_variant_new_boolean (g_variant_get_boolean (var));
}
+static void
+ephy_shell_set_prefers_color_scheme (EphyShell *shell)
+{
+ GtkSettings* gtk_settings = gtk_settings_get_default ();
+ GraniteSettings* granite_settings = granite_settings_get_default ();
+
+ g_object_set (
+ gtk_settings,
+ "gtk-application-prefer-dark-theme",
+ granite_settings_get_prefers_color_scheme (granite_settings) == GRANITE_SETTINGS_COLOR_SCHEME_DARK,
+ NULL
+ );
+}
+
static void
ephy_shell_startup (GApplication *application)
{
@@ -490,11 +505,18 @@ ephy_shell_startup (GApplication *application)
EphyShell *shell = EPHY_SHELL (application);
EphyEmbedShellMode mode;
GAction *action;
+ GraniteSettings* granite_settings = granite_settings_get_default ();
G_APPLICATION_CLASS (ephy_shell_parent_class)->startup (application);
hdy_init ();
+ ephy_shell_set_prefers_color_scheme (shell);
+
+ g_signal_connect (granite_settings, "notify::prefers-color-scheme",
+ G_CALLBACK (ephy_shell_set_prefers_color_scheme), shell
+ );
+
/* If we are under Pantheon set the icon-theme and cursor-theme accordingly. */
if (is_desktop_pantheon ()) {
GtkSettings *settings = gtk_settings_get_default ();
diff --git a/src/meson.build b/src/meson.build
index 5bf3eb92ec..d17b1b6d93 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -74,6 +74,7 @@ libephymain_deps = [
gdk_dep,
gvdb_dep,
libarchive_dep,
+ libgranite_dep,
libhandy_dep
]

View File

@ -1,12 +0,0 @@
diff --git a/src/resources/gtk/action-bar-start.ui b/src/resources/gtk/action-bar-start.ui
index e604b9601f..2bfe244d53 100644
--- a/src/resources/gtk/action-bar-start.ui
+++ b/src/resources/gtk/action-bar-start.ui
@@ -7,7 +7,6 @@
<property name="visible">True</property>
<property name="orientation">horizontal</property>
<style>
- <class name="linked"/>
<class name="navigation-box"/>
</style>
<child>

View File

@ -2,14 +2,13 @@
stdenv.mkDerivation rec {
pname = "gnome-shell-extension-EasyScreenCast";
version = "unstable-2020-11-25";
version = "1.4.0";
src = fetchFromGitHub {
# To make it work with gnome 3.38, using effectively: https://github.com/EasyScreenCast/EasyScreenCast/pull/276
owner = "Ian2020";
owner = "EasyScreenCast";
repo = "EasyScreenCast";
rev = "b1ab4a999bc7110ecbf68b5fe42c37fa67d7cb0d";
sha256 = "s9b0ITKUzgG6XOd1bK7i3mGxfc+T+UHrTZhBp0Ff8zQ=";
rev = version;
sha256 = "sha256-+lh/hqYC9+DUvLE016KuAY4Ybw8KrqEEG7WG4pUbg2k=";
};
patches = [

View File

@ -91,5 +91,15 @@
"wireguard-indicator@gregos.me",
"wireguard-indicator@atareao.es"
]
},
"41": {
"applications-menu": [
"apps-menu@gnome-shell-extensions.gcampax.github.com",
"Applications_Menu@rmy.pobox.com"
],
"floating-dock": [
"floatingDock@sun.wxg@gmail.com",
"floating-dock@nandoferreira_prof@hotmail.com"
]
}
}

View File

@ -59,8 +59,9 @@ in rec {
gnome38Extensions = mapUuidNames (produceExtensionsList "38");
gnome40Extensions = mapUuidNames (produceExtensionsList "40");
gnome41Extensions = mapUuidNames (produceExtensionsList "41");
gnomeExtensions = lib.trivial.pipe gnome40Extensions [
gnomeExtensions = lib.trivial.pipe (gnome40Extensions // gnome41Extensions) [
# Apply some custom patches for automatically packaged extensions
(callPackage ./extensionOverrides.nix {})
# Add all manually packaged extensions

View File

@ -3,10 +3,21 @@
# - Every item from ./collisions.json (for the respective Shell version) should have an entry in here
# - Set the value to `null` for filtering (duplicate or unmaintained extensions)
# - Sort the entries in order of appearance in the collisions.json
# - Make a separate section for each GNOME version. Collisions will come back eventually
# as the extensions are updated.
{
"apps-menu@gnome-shell-extensions.gcampax.github.com" = "applications-menu";
"Applications_Menu@rmy.pobox.com" = "frippery-applications-menu";
"floatingDock@sun.wxg@gmail.com" = "floating-dock-2";
"floating-dock@nandoferreira_prof@hotmail.com" = "floating-dock";
# ############################################################################
# These are conflicts for older extensions (i.e. they don't support the latest GNOME version).
# Make sure to move them up once they are updated
# ####### GNOME 40 #######
"workspace-indicator@gnome-shell-extensions.gcampax.github.com" = "workspace-indicator";
"horizontal-workspace-indicator@tty2.io" = "workspace-indicator-2";
@ -38,23 +49,14 @@
"extension-list@tu.berry" = "extension-list";
"screen-lock@garciabaameiro.com" = "screen-lock"; # Don't know why they got 'extension-list' as slug
"floatingDock@sun.wxg@gmail.com" = "floating-dock-2";
"floating-dock@nandoferreira_prof@hotmail.com" = "floating-dock";
# ############################################################################
# These are conflicts for 3.38 extensions. They will very probably come back
# once more of them support 40.
# ####### GNOME 3.38 #######
# See https://github.com/pbxqdown/gnome-shell-extension-transparent-window/issues/12#issuecomment-800765381
#"transparent-window@pbxqdown.github.com" = "transparent-window";
#"transparentwindows.mdirshad07" = null;
#"floatingDock@sun.wxg@gmail.com" = "floating-dock";
#"floating-dock@nandoferreira_prof@hotmail.com" = "floating-dock-2";
"transparent-window@pbxqdown.github.com" = "transparent-window";
"transparentwindows.mdirshad07" = null;
# That extension is broken because of https://github.com/NixOS/nixpkgs/issues/118612
#"flypie@schneegans.github.com" = null;
"flypie@schneegans.github.com" = null;
# ############################################################################
# Overrides for extensions that were manually packaged in the past but are gradually

File diff suppressed because one or more lines are too long

View File

@ -17,6 +17,7 @@ import base64
supported_versions = {
"38": "3.38",
"40": "40",
"41": "41",
}

View File

@ -30,13 +30,13 @@
stdenv.mkDerivation rec {
pname = "appcenter";
version = "3.8.0";
version = "3.8.1";
src = fetchFromGitHub {
owner = "elementary";
repo = pname;
rev = version;
sha256 = "07lkdpnjj9pxbq8h794qjiidvnysvzx0132w98r1wg9k7ca170bj";
sha256 = "sha256-d7DGyAC8itBxTfuabDPN16W4S4d42s5UPp8AusZfy5k=";
};
patches = [

View File

@ -1,6 +1,6 @@
From b1e09653d755ca6ffd03a1e3e67750e6bcc2bc6f Mon Sep 17 00:00:00 2001
From c1916699cd388cc8d9968127e43ba955471623bf Mon Sep 17 00:00:00 2001
From: Bobby Rong <rjl931189261@126.com>
Date: Wed, 22 Sep 2021 11:54:48 +0800
Date: Wed, 27 Oct 2021 09:33:15 +0800
Subject: [PATCH 2/2] Drop homepage banner
---
@ -8,7 +8,7 @@ Subject: [PATCH 2/2] Drop homepage banner
1 file changed, 1 insertion(+), 180 deletions(-)
diff --git a/src/Views/Homepage.vala b/src/Views/Homepage.vala
index 576fc02c..80a1d221 100644
index 52cb36cc..80a1d221 100644
--- a/src/Views/Homepage.vala
+++ b/src/Views/Homepage.vala
@@ -31,67 +31,12 @@ public class AppCenter.Homepage : AbstractView {
@ -193,7 +193,7 @@ index 576fc02c..80a1d221 100644
- }
- }
-
- if (!installed && !(package in packages_in_banner) && !package.is_explicit) {
- if (!installed && !(package in packages_in_banner)) {
- var package_row = new AppCenter.Widgets.ListPackageRowGrid (package);
- recently_updated_carousel.add (package_row);
- }

View File

@ -21,7 +21,7 @@
stdenv.mkDerivation rec {
pname = "elementary-calculator";
version = "1.7.0";
version = "1.7.1";
repoName = "calculator";
@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
owner = "elementary";
repo = repoName;
rev = version;
sha256 = "1kl2iximcmbk8inklb2xav7dp08lp5pn9xxa59327zw13gdy8fkf";
sha256 = "sha256-GoQFWhEhUBVLYL1vsIIBMT8pKc0dK/ploiGfUtJAJQU=";
};
passthru = {

View File

@ -28,7 +28,7 @@
stdenv.mkDerivation rec {
pname = "elementary-calendar";
version = "6.0.2";
version = "6.0.3";
repoName = "calendar";
@ -36,13 +36,7 @@ stdenv.mkDerivation rec {
owner = "elementary";
repo = repoName;
rev = version;
sha256 = "16xp8gfgpyz9xpjsxm6jlk4skkknj65g0q4x0qvw9sg9f1p6a514";
};
passthru = {
updateScript = nix-update-script {
attrPath = "pantheon.${pname}";
};
sha256 = "sha256-+RQUiJLuCIbmcbtsOCfF9HYFrxtldZMbg2vg/a/IOaY=";
};
nativeBuildInputs = [
@ -78,6 +72,12 @@ stdenv.mkDerivation rec {
patchShebangs meson/post_install.py
'';
passthru = {
updateScript = nix-update-script {
attrPath = "pantheon.${pname}";
};
};
meta = with lib; {
description = "Desktop calendar app designed for elementary OS";
homepage = "https://github.com/elementary/calendar";

View File

@ -25,7 +25,7 @@
stdenv.mkDerivation rec {
pname = "elementary-camera";
version = "6.0.0";
version = "6.0.1";
repoName = "camera";
@ -33,13 +33,7 @@ stdenv.mkDerivation rec {
owner = "elementary";
repo = repoName;
rev = version;
sha256 = "1z5c6pkc7psglxwzby5idsdxvplpi28ckjxrwdngnr22knfdcgag";
};
passthru = {
updateScript = nix-update-script {
attrPath = "pantheon.${pname}";
};
sha256 = "sha256-OdBinryF6XTcvtY4A1wdDVazjf/VritEGF97ts6d4RY=";
};
nativeBuildInputs = [
@ -75,6 +69,12 @@ stdenv.mkDerivation rec {
patchShebangs meson/post_install.py
'';
passthru = {
updateScript = nix-update-script {
attrPath = "pantheon.${pname}";
};
};
meta = with lib; {
description = "Camera app designed for elementary OS";
homepage = "https://github.com/elementary/camera";

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