mirror of
https://github.com/SebastianWendel/nixpkgs.git
synced 2024-09-20 12:29:02 +02:00
Merge master into haskell-updates
This commit is contained in:
commit
fe1578be1e
6
.github/CODEOWNERS
vendored
6
.github/CODEOWNERS
vendored
|
@ -61,7 +61,7 @@
|
||||||
/pkgs/build-support/writers @lassulus @Profpatsch
|
/pkgs/build-support/writers @lassulus @Profpatsch
|
||||||
|
|
||||||
# Nixpkgs make-disk-image
|
# Nixpkgs make-disk-image
|
||||||
/doc/builders/images/makediskimage.section.md @raitobezarius
|
/doc/build-helpers/images/makediskimage.section.md @raitobezarius
|
||||||
/nixos/lib/make-disk-image.nix @raitobezarius
|
/nixos/lib/make-disk-image.nix @raitobezarius
|
||||||
|
|
||||||
# Nixpkgs documentation
|
# Nixpkgs documentation
|
||||||
|
@ -219,7 +219,7 @@ pkgs/development/python-modules/buildcatrust/ @ajs124 @lukegb @mweinelt
|
||||||
/nixos/tests/knot.nix @mweinelt
|
/nixos/tests/knot.nix @mweinelt
|
||||||
|
|
||||||
# Web servers
|
# Web servers
|
||||||
/doc/builders/packages/nginx.section.md @raitobezarius
|
/doc/packages/nginx.section.md @raitobezarius
|
||||||
/pkgs/servers/http/nginx/ @raitobezarius
|
/pkgs/servers/http/nginx/ @raitobezarius
|
||||||
/nixos/modules/services/web-servers/nginx/ @raitobezarius
|
/nixos/modules/services/web-servers/nginx/ @raitobezarius
|
||||||
|
|
||||||
|
@ -272,7 +272,7 @@ pkgs/development/python-modules/buildcatrust/ @ajs124 @lukegb @mweinelt
|
||||||
# Docker tools
|
# Docker tools
|
||||||
/pkgs/build-support/docker @roberth
|
/pkgs/build-support/docker @roberth
|
||||||
/nixos/tests/docker-tools* @roberth
|
/nixos/tests/docker-tools* @roberth
|
||||||
/doc/builders/images/dockertools.section.md @roberth
|
/doc/build-helpers/images/dockertools.section.md @roberth
|
||||||
|
|
||||||
# Blockchains
|
# Blockchains
|
||||||
/pkgs/applications/blockchains @mmahut @RaghavSood
|
/pkgs/applications/blockchains @mmahut @RaghavSood
|
||||||
|
|
2
.github/workflows/backport.yml
vendored
2
.github/workflows/backport.yml
vendored
|
@ -24,7 +24,7 @@ jobs:
|
||||||
with:
|
with:
|
||||||
ref: ${{ github.event.pull_request.head.sha }}
|
ref: ${{ github.event.pull_request.head.sha }}
|
||||||
- name: Create backport PRs
|
- name: Create backport PRs
|
||||||
uses: korthout/backport-action@v2.0.0
|
uses: korthout/backport-action@v2.1.0
|
||||||
with:
|
with:
|
||||||
# Config README: https://github.com/korthout/backport-action#backport-action
|
# Config README: https://github.com/korthout/backport-action#backport-action
|
||||||
copy_labels_pattern: 'severity:\ssecurity'
|
copy_labels_pattern: 'severity:\ssecurity'
|
||||||
|
|
28
doc/build-helpers.md
Normal file
28
doc/build-helpers.md
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
# Build helpers {#part-builders}
|
||||||
|
|
||||||
|
A build helper is a function that produces derivations.
|
||||||
|
|
||||||
|
:::{.warning}
|
||||||
|
This is not to be confused with the [`builder` argument of the Nix `derivation` primitive](https://nixos.org/manual/nix/unstable/language/derivations.html), which refers to the executable that produces the build result, or [remote builder](https://nixos.org/manual/nix/stable/advanced-topics/distributed-builds.html), which refers to a remote machine that could run such an executable.
|
||||||
|
:::
|
||||||
|
|
||||||
|
Such a function is usually designed to abstract over a typical workflow for a given programming language or framework.
|
||||||
|
This allows declaring a build recipe by setting a limited number of options relevant to the particular use case instead of using the `derivation` function directly.
|
||||||
|
|
||||||
|
[`stdenv.mkDerivation`](#part-stdenv) is the most widely used build helper, and serves as a basis for many others.
|
||||||
|
In addition, it offers various options to customize parts of the builds.
|
||||||
|
|
||||||
|
There is no uniform interface for build helpers.
|
||||||
|
[Trivial build helpers](#chap-trivial-builders) and [fetchers](#chap-pkgs-fetchers) have various input types for convenience.
|
||||||
|
[Language- or framework-specific build helpers](#chap-language-support) usually follow the style of `stdenv.mkDerivation`, which accepts an attribute set or a fixed-point function taking an attribute set.
|
||||||
|
|
||||||
|
```{=include=} chapters
|
||||||
|
build-helpers/fetchers.chapter.md
|
||||||
|
build-helpers/trivial-build-helpers.chapter.md
|
||||||
|
build-helpers/testers.chapter.md
|
||||||
|
build-helpers/special.md
|
||||||
|
build-helpers/images.md
|
||||||
|
hooks/index.md
|
||||||
|
languages-frameworks/index.md
|
||||||
|
packages/index.md
|
||||||
|
```
|
|
@ -1,11 +1,10 @@
|
||||||
# Special builders {#chap-special}
|
# Special build helpers {#chap-special}
|
||||||
|
|
||||||
This chapter describes several special builders.
|
This chapter describes several special build helpers.
|
||||||
|
|
||||||
```{=include=} sections
|
```{=include=} sections
|
||||||
special/fhs-environments.section.md
|
special/fhs-environments.section.md
|
||||||
special/makesetuphook.section.md
|
special/makesetuphook.section.md
|
||||||
special/mkshell.section.md
|
special/mkshell.section.md
|
||||||
special/darwin-builder.section.md
|
|
||||||
special/vm-tools.section.md
|
special/vm-tools.section.md
|
||||||
```
|
```
|
|
@ -1,6 +1,6 @@
|
||||||
# pkgs.makeSetupHook {#sec-pkgs.makeSetupHook}
|
# pkgs.makeSetupHook {#sec-pkgs.makeSetupHook}
|
||||||
|
|
||||||
`pkgs.makeSetupHook` is a builder that produces hooks that go in to `nativeBuildInputs`
|
`pkgs.makeSetupHook` is a build helper that produces hooks that go in to `nativeBuildInputs`
|
||||||
|
|
||||||
## Usage {#sec-pkgs.makeSetupHook-usage}
|
## Usage {#sec-pkgs.makeSetupHook-usage}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# Trivial builders {#chap-trivial-builders}
|
# Trivial build helpers {#chap-trivial-builders}
|
||||||
|
|
||||||
Nixpkgs provides a couple of functions that help with building derivations. The most important one, `stdenv.mkDerivation`, has already been documented above. The following functions wrap `stdenv.mkDerivation`, making it easier to use in certain cases.
|
Nixpkgs provides a couple of functions that help with building derivations. The most important one, `stdenv.mkDerivation`, has already been documented above. The following functions wrap `stdenv.mkDerivation`, making it easier to use in certain cases.
|
||||||
|
|
|
@ -1,12 +0,0 @@
|
||||||
# Builders {#part-builders}
|
|
||||||
|
|
||||||
```{=include=} chapters
|
|
||||||
builders/fetchers.chapter.md
|
|
||||||
builders/trivial-builders.chapter.md
|
|
||||||
builders/testers.chapter.md
|
|
||||||
builders/special.md
|
|
||||||
builders/images.md
|
|
||||||
hooks/index.md
|
|
||||||
languages-frameworks/index.md
|
|
||||||
builders/packages/index.md
|
|
||||||
```
|
|
|
@ -142,7 +142,7 @@ buildPythonPackage rec {
|
||||||
|
|
||||||
The `buildPythonPackage` mainly does four things:
|
The `buildPythonPackage` mainly does four things:
|
||||||
|
|
||||||
* In the [`buildPhase`](#build-phase), it calls `${python.pythonForBuild.interpreter} setup.py bdist_wheel` to
|
* In the [`buildPhase`](#build-phase), it calls `${python.pythonOnBuildForHost.interpreter} setup.py bdist_wheel` to
|
||||||
build a wheel binary zipfile.
|
build a wheel binary zipfile.
|
||||||
* In the [`installPhase`](#ssec-install-phase), it installs the wheel file using `pip install *.whl`.
|
* In the [`installPhase`](#ssec-install-phase), it installs the wheel file using `pip install *.whl`.
|
||||||
* In the [`postFixup`](#var-stdenv-postFixup) phase, the `wrapPythonPrograms` bash function is called to
|
* In the [`postFixup`](#var-stdenv-postFixup) phase, the `wrapPythonPrograms` bash function is called to
|
||||||
|
@ -1682,7 +1682,7 @@ of such package using the feature is `pkgs/tools/X11/xpra/default.nix`.
|
||||||
As workaround install it as an extra `preInstall` step:
|
As workaround install it as an extra `preInstall` step:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
${python.pythonForBuild.interpreter} setup.py install_data --install-dir=$out --root=$out
|
${python.pythonOnBuildForHost.interpreter} setup.py install_data --install-dir=$out --root=$out
|
||||||
sed -i '/ = data\_files/d' setup.py
|
sed -i '/ = data\_files/d' setup.py
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
|
@ -2,6 +2,46 @@
|
||||||
|
|
||||||
Since release 15.09 there is a new TeX Live packaging that lives entirely under attribute `texlive`.
|
Since release 15.09 there is a new TeX Live packaging that lives entirely under attribute `texlive`.
|
||||||
|
|
||||||
|
## User's guide (experimental new interface) {#sec-language-texlive-user-guide-experimental}
|
||||||
|
|
||||||
|
Release 23.11 ships with a new interface that will eventually replace `texlive.combine`.
|
||||||
|
|
||||||
|
- For basic usage, use some of the prebuilt environments available at the top level, such as `texliveBasic`, `texliveSmall`. For the full list of prebuilt environments, inspect `texlive.schemes`.
|
||||||
|
|
||||||
|
- Packages cannot be used directly but must be assembled in an environment. To create or add packages to an environment, use
|
||||||
|
```nix
|
||||||
|
texliveSmall.withPackages (ps: with ps; [ collection-langkorean algorithms cm-super ])
|
||||||
|
```
|
||||||
|
The function `withPackages` can be called multiple times to add more packages.
|
||||||
|
|
||||||
|
- **Note.** Within Nixpkgs, packages should only use prebuilt environments as inputs, such as `texliveSmall` or `texliveInfraOnly`, and should not depend directly on `texlive`. Further dependencies should be added by calling `withPackages`. This is to ensure that there is a consistent and simple way to override the inputs.
|
||||||
|
|
||||||
|
- `texlive.withPackages` uses the same logic as `buildEnv`. Only parts of a package are installed in an environment: its 'runtime' files (`tex` output), binaries (`out` output), and support files (`tlpkg` output). Moreover, man and info pages are assembled into separate `man` and `info` outputs. To add only the TeX files of a package, or its documentation (`texdoc` output), just specify the outputs:
|
||||||
|
```nix
|
||||||
|
texlive.withPackages (ps: with ps; [
|
||||||
|
texdoc # recommended package to navigate the documentation
|
||||||
|
perlPackages.LaTeXML.tex # tex files of LaTeXML, omit binaries
|
||||||
|
cm-super
|
||||||
|
cm-super.texdoc # documentation of cm-super
|
||||||
|
])
|
||||||
|
```
|
||||||
|
|
||||||
|
- All packages distributed by TeX Live, which contains most of CTAN, are available and can be found under `texlive.pkgs`:
|
||||||
|
```ShellSession
|
||||||
|
$ nix repl
|
||||||
|
nix-repl> :l <nixpkgs>
|
||||||
|
nix-repl> texlive.pkgs.[TAB]
|
||||||
|
```
|
||||||
|
Note that the packages in `texlive.pkgs` are only provided for search purposes and must not be used directly.
|
||||||
|
|
||||||
|
- **Experimental and subject to change without notice:** to add the documentation for all packages in the environment, use
|
||||||
|
```nix
|
||||||
|
texliveSmall.__overrideTeXConfig { withDocs = true; }
|
||||||
|
```
|
||||||
|
This can be applied before or after calling `withPackages`.
|
||||||
|
|
||||||
|
The function currently support the parameters `withDocs`, `withSources`, and `requireTeXPackages`.
|
||||||
|
|
||||||
## User's guide {#sec-language-texlive-user-guide}
|
## User's guide {#sec-language-texlive-user-guide}
|
||||||
|
|
||||||
- For basic usage just pull `texlive.combined.scheme-basic` for an environment with basic LaTeX support.
|
- For basic usage just pull `texlive.combined.scheme-basic` for an environment with basic LaTeX support.
|
||||||
|
|
|
@ -9,7 +9,7 @@ preface.chapter.md
|
||||||
using-nixpkgs.md
|
using-nixpkgs.md
|
||||||
lib.md
|
lib.md
|
||||||
stdenv.md
|
stdenv.md
|
||||||
builders.md
|
build-helpers.md
|
||||||
development.md
|
development.md
|
||||||
contributing.md
|
contributing.md
|
||||||
```
|
```
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
# darwin.linux-builder {#sec-darwin-builder}
|
# darwin.linux-builder {#sec-darwin-builder}
|
||||||
|
|
||||||
`darwin.linux-builder` provides a way to bootstrap a Linux builder on a macOS machine.
|
`darwin.linux-builder` provides a way to bootstrap a Linux remote builder on a macOS machine.
|
||||||
|
|
||||||
This requires macOS version 12.4 or later.
|
This requires macOS version 12.4 or later.
|
||||||
|
|
||||||
The builder runs on host port 31022 by default.
|
The remote builder runs on host port 31022 by default.
|
||||||
You can change it by overriding `virtualisation.darwin-builder.hostPort`.
|
You can change it by overriding `virtualisation.darwin-builder.hostPort`.
|
||||||
See the [example](#sec-darwin-builder-example-flake).
|
See the [example](#sec-darwin-builder-example-flake).
|
||||||
|
|
||||||
|
@ -15,7 +15,7 @@ words, your `/etc/nix/nix.conf` should have something like:
|
||||||
extra-trusted-users = <your username goes here>
|
extra-trusted-users = <your username goes here>
|
||||||
```
|
```
|
||||||
|
|
||||||
To launch the builder, run the following flake:
|
To launch the remote builder, run the following flake:
|
||||||
|
|
||||||
```ShellSession
|
```ShellSession
|
||||||
$ nix run nixpkgs#darwin.linux-builder
|
$ nix run nixpkgs#darwin.linux-builder
|
||||||
|
@ -57,7 +57,7 @@ builders = ssh-ng://builder@linux-builder ${ARCH}-linux /etc/nix/builder_ed25519
|
||||||
builders-use-substitutes = true
|
builders-use-substitutes = true
|
||||||
```
|
```
|
||||||
|
|
||||||
To allow Nix to connect to a builder not running on port 22, you will also need to create a new file at `/etc/ssh/ssh_config.d/100-linux-builder.conf`:
|
To allow Nix to connect to a remote builder not running on port 22, you will also need to create a new file at `/etc/ssh/ssh_config.d/100-linux-builder.conf`:
|
||||||
|
|
||||||
```
|
```
|
||||||
Host linux-builder
|
Host linux-builder
|
||||||
|
@ -130,11 +130,11 @@ $ sudo launchctl kickstart -k system/org.nixos.nix-daemon
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
## Reconfiguring the builder {#sec-darwin-builder-reconfiguring}
|
## Reconfiguring the remote builder {#sec-darwin-builder-reconfiguring}
|
||||||
|
|
||||||
Initially you should not change the builder configuration else you will not be
|
Initially you should not change the remote builder configuration else you will not be
|
||||||
able to use the binary cache. However, after you have the builder running locally
|
able to use the binary cache. However, after you have the remote builder running locally
|
||||||
you may use it to build a modified builder with additional storage or memory.
|
you may use it to build a modified remote builder with additional storage or memory.
|
||||||
|
|
||||||
To do this, you just need to set the `virtualisation.darwin-builder.*` parameters as
|
To do this, you just need to set the `virtualisation.darwin-builder.*` parameters as
|
||||||
in the example below and rebuild.
|
in the example below and rebuild.
|
|
@ -4,6 +4,7 @@ This chapter contains information about how to use and maintain the Nix expressi
|
||||||
|
|
||||||
```{=include=} sections
|
```{=include=} sections
|
||||||
citrix.section.md
|
citrix.section.md
|
||||||
|
darwin-builder.section.md
|
||||||
dlib.section.md
|
dlib.section.md
|
||||||
eclipse.section.md
|
eclipse.section.md
|
||||||
elm.section.md
|
elm.section.md
|
|
@ -528,7 +528,7 @@ If the returned array contains exactly one object (e.g. `[{}]`), all values are
|
||||||
```
|
```
|
||||||
:::
|
:::
|
||||||
|
|
||||||
### Recursive attributes in `mkDerivation` {#mkderivation-recursive-attributes}
|
### Fixed-point arguments of `mkDerivation` {#mkderivation-recursive-attributes}
|
||||||
|
|
||||||
If you pass a function to `mkDerivation`, it will receive as its argument the final arguments, including the overrides when reinvoked via `overrideAttrs`. For example:
|
If you pass a function to `mkDerivation`, it will receive as its argument the final arguments, including the overrides when reinvoked via `overrideAttrs`. For example:
|
||||||
|
|
||||||
|
|
|
@ -144,6 +144,20 @@ rec {
|
||||||
*/
|
*/
|
||||||
concatLines = concatMapStrings (s: s + "\n");
|
concatLines = concatMapStrings (s: s + "\n");
|
||||||
|
|
||||||
|
/*
|
||||||
|
Replicate a string n times,
|
||||||
|
and concatenate the parts into a new string.
|
||||||
|
|
||||||
|
Type: replicate :: int -> string -> string
|
||||||
|
|
||||||
|
Example:
|
||||||
|
replicate 3 "v"
|
||||||
|
=> "vvv"
|
||||||
|
replicate 5 "hello"
|
||||||
|
=> "hellohellohellohellohello"
|
||||||
|
*/
|
||||||
|
replicate = n: s: concatStrings (lib.lists.replicate n s);
|
||||||
|
|
||||||
/* Construct a Unix-style, colon-separated search path consisting of
|
/* Construct a Unix-style, colon-separated search path consisting of
|
||||||
the given `subDir` appended to each of the given paths.
|
the given `subDir` appended to each of the given paths.
|
||||||
|
|
||||||
|
|
|
@ -191,6 +191,11 @@ runTests {
|
||||||
expected = "a\nb\nc\n";
|
expected = "a\nb\nc\n";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
testReplicateString = {
|
||||||
|
expr = strings.replicate 5 "hello";
|
||||||
|
expected = "hellohellohellohellohello";
|
||||||
|
};
|
||||||
|
|
||||||
testSplitStringsSimple = {
|
testSplitStringsSimple = {
|
||||||
expr = strings.splitString "." "a.b.c.d";
|
expr = strings.splitString "." "a.b.c.d";
|
||||||
expected = [ "a" "b" "c" "d" ];
|
expected = [ "a" "b" "c" "d" ];
|
||||||
|
|
|
@ -540,6 +540,12 @@
|
||||||
githubId = 732652;
|
githubId = 732652;
|
||||||
name = "Andreas Herrmann";
|
name = "Andreas Herrmann";
|
||||||
};
|
};
|
||||||
|
ahoneybun = {
|
||||||
|
email = "aaron@system76.com";
|
||||||
|
github = "ahoneybun";
|
||||||
|
githubId = 4884946;
|
||||||
|
name = "Aaron Honeycutt";
|
||||||
|
};
|
||||||
ahrzb = {
|
ahrzb = {
|
||||||
email = "ahrzb5@gmail.com";
|
email = "ahrzb5@gmail.com";
|
||||||
github = "ahrzb";
|
github = "ahrzb";
|
||||||
|
@ -4215,6 +4221,12 @@
|
||||||
githubId = 12224254;
|
githubId = 12224254;
|
||||||
name = "Delta";
|
name = "Delta";
|
||||||
};
|
};
|
||||||
|
delta231 = {
|
||||||
|
email = "swstkbaranwal@gmail.com";
|
||||||
|
github = "Delta456";
|
||||||
|
githubId = 28479139;
|
||||||
|
name = "Swastik Baranwal";
|
||||||
|
};
|
||||||
deltadelta = {
|
deltadelta = {
|
||||||
email = "contact@libellules.eu";
|
email = "contact@libellules.eu";
|
||||||
name = "Dara Ly";
|
name = "Dara Ly";
|
||||||
|
|
|
@ -15,6 +15,8 @@
|
||||||
, volumeLabel
|
, volumeLabel
|
||||||
, uuid ? "44444444-4444-4444-8888-888888888888"
|
, uuid ? "44444444-4444-4444-8888-888888888888"
|
||||||
, btrfs-progs
|
, btrfs-progs
|
||||||
|
, libfaketime
|
||||||
|
, fakeroot
|
||||||
}:
|
}:
|
||||||
|
|
||||||
let
|
let
|
||||||
|
@ -23,7 +25,7 @@ in
|
||||||
pkgs.stdenv.mkDerivation {
|
pkgs.stdenv.mkDerivation {
|
||||||
name = "btrfs-fs.img${lib.optionalString compressImage ".zst"}";
|
name = "btrfs-fs.img${lib.optionalString compressImage ".zst"}";
|
||||||
|
|
||||||
nativeBuildInputs = [ btrfs-progs ] ++ lib.optional compressImage zstd;
|
nativeBuildInputs = [ btrfs-progs libfaketime fakeroot ] ++ lib.optional compressImage zstd;
|
||||||
|
|
||||||
buildCommand =
|
buildCommand =
|
||||||
''
|
''
|
||||||
|
@ -50,7 +52,7 @@ pkgs.stdenv.mkDerivation {
|
||||||
cp ${sdClosureInfo}/registration ./rootImage/nix-path-registration
|
cp ${sdClosureInfo}/registration ./rootImage/nix-path-registration
|
||||||
|
|
||||||
touch $img
|
touch $img
|
||||||
mkfs.btrfs -L ${volumeLabel} -U ${uuid} -r ./rootImage --shrink $img
|
faketime -f "1970-01-01 00:00:01" fakeroot mkfs.btrfs -L ${volumeLabel} -U ${uuid} -r ./rootImage --shrink $img
|
||||||
|
|
||||||
if ! btrfs check $img; then
|
if ! btrfs check $img; then
|
||||||
echo "--- 'btrfs check' failed for BTRFS image ---"
|
echo "--- 'btrfs check' failed for BTRFS image ---"
|
||||||
|
|
|
@ -32,9 +32,6 @@ let
|
||||||
key = "nodes.nix-pkgs";
|
key = "nodes.nix-pkgs";
|
||||||
config = optionalAttrs (!config.node.pkgsReadOnly) (
|
config = optionalAttrs (!config.node.pkgsReadOnly) (
|
||||||
mkIf (!options.nixpkgs.pkgs.isDefined) {
|
mkIf (!options.nixpkgs.pkgs.isDefined) {
|
||||||
# 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;
|
|
||||||
# TODO: switch to nixpkgs.hostPlatform and make sure containers-imperative test still evaluates.
|
# TODO: switch to nixpkgs.hostPlatform and make sure containers-imperative test still evaluates.
|
||||||
nixpkgs.system = hostPkgs.stdenv.hostPlatform.system;
|
nixpkgs.system = hostPkgs.stdenv.hostPlatform.system;
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,29 +18,16 @@ in {
|
||||||
|
|
||||||
options = {
|
options = {
|
||||||
|
|
||||||
hardware.enableAllFirmware = mkOption {
|
hardware.enableAllFirmware = mkEnableOption "all firmware regardless of license";
|
||||||
default = false;
|
|
||||||
type = types.bool;
|
|
||||||
description = lib.mdDoc ''
|
|
||||||
Turn on this option if you want to enable all the firmware.
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
hardware.enableRedistributableFirmware = mkOption {
|
hardware.enableRedistributableFirmware = mkEnableOption "firmware with a license allowing redistribution" // {
|
||||||
default = config.hardware.enableAllFirmware;
|
default = config.hardware.enableAllFirmware;
|
||||||
defaultText = lib.literalExpression "config.hardware.enableAllFirmware";
|
defaultText = lib.literalExpression "config.hardware.enableAllFirmware";
|
||||||
type = types.bool;
|
|
||||||
description = lib.mdDoc ''
|
|
||||||
Turn on this option if you want to enable all the firmware with a license allowing redistribution.
|
|
||||||
'';
|
|
||||||
};
|
};
|
||||||
|
|
||||||
hardware.wirelessRegulatoryDatabase = mkOption {
|
hardware.wirelessRegulatoryDatabase = mkEnableOption "loading the wireless regulatory database at boot" // {
|
||||||
default = false;
|
default = cfg.enableRedistributableFirmware || cfg.enableAllFirmware;
|
||||||
type = types.bool;
|
defaultText = literalMD "Enabled if proprietary firmware is allowed via {option}`enableRedistributableFirmware` or {option}`enableAllFirmware`.";
|
||||||
description = lib.mdDoc ''
|
|
||||||
Load the wireless regulatory database at boot.
|
|
||||||
'';
|
|
||||||
};
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
|
@ -65,7 +52,6 @@ in {
|
||||||
++ optionals (versionOlder config.boot.kernelPackages.kernel.version "4.13") [
|
++ optionals (versionOlder config.boot.kernelPackages.kernel.version "4.13") [
|
||||||
rtl8723bs-firmware
|
rtl8723bs-firmware
|
||||||
];
|
];
|
||||||
hardware.wirelessRegulatoryDatabase = true;
|
|
||||||
})
|
})
|
||||||
(mkIf cfg.enableAllFirmware {
|
(mkIf cfg.enableAllFirmware {
|
||||||
assertions = [{
|
assertions = [{
|
||||||
|
|
|
@ -268,7 +268,7 @@ in
|
||||||
''
|
''
|
||||||
mkdir -p $out
|
mkdir -p $out
|
||||||
if [ -d $package/share/man ]; then
|
if [ -d $package/share/man ]; then
|
||||||
find $package/share/man -type f | xargs ${pkgs.python3.pythonForBuild.interpreter} ${patchedGenerator}/create_manpage_completions.py --directory $out >/dev/null
|
find $package/share/man -type f | xargs ${pkgs.python3.pythonOnBuildForHost.interpreter} ${patchedGenerator}/create_manpage_completions.py --directory $out >/dev/null
|
||||||
fi
|
fi
|
||||||
'';
|
'';
|
||||||
in
|
in
|
||||||
|
|
|
@ -345,7 +345,7 @@ in
|
||||||
} // optionalAttrs (backup.environmentFile != null) {
|
} // optionalAttrs (backup.environmentFile != null) {
|
||||||
EnvironmentFile = backup.environmentFile;
|
EnvironmentFile = backup.environmentFile;
|
||||||
};
|
};
|
||||||
} // optionalAttrs (backup.initialize || backup.dynamicFilesFrom != null || backup.backupPrepareCommand != null) {
|
} // optionalAttrs (backup.initialize || doBackup || backup.backupPrepareCommand != null) {
|
||||||
preStart = ''
|
preStart = ''
|
||||||
${optionalString (backup.backupPrepareCommand != null) ''
|
${optionalString (backup.backupPrepareCommand != null) ''
|
||||||
${pkgs.writeScript "backupPrepareCommand" backup.backupPrepareCommand}
|
${pkgs.writeScript "backupPrepareCommand" backup.backupPrepareCommand}
|
||||||
|
@ -360,12 +360,12 @@ in
|
||||||
${pkgs.writeScript "dynamicFilesFromScript" backup.dynamicFilesFrom} >> ${filesFromTmpFile}
|
${pkgs.writeScript "dynamicFilesFromScript" backup.dynamicFilesFrom} >> ${filesFromTmpFile}
|
||||||
''}
|
''}
|
||||||
'';
|
'';
|
||||||
} // optionalAttrs (backup.dynamicFilesFrom != null || backup.backupCleanupCommand != null) {
|
} // optionalAttrs (doBackup || backup.backupCleanupCommand != null) {
|
||||||
postStop = ''
|
postStop = ''
|
||||||
${optionalString (backup.backupCleanupCommand != null) ''
|
${optionalString (backup.backupCleanupCommand != null) ''
|
||||||
${pkgs.writeScript "backupCleanupCommand" backup.backupCleanupCommand}
|
${pkgs.writeScript "backupCleanupCommand" backup.backupCleanupCommand}
|
||||||
''}
|
''}
|
||||||
${optionalString (backup.dynamicFilesFrom != null) ''
|
${optionalString doBackup ''
|
||||||
rm ${filesFromTmpFile}
|
rm ${filesFromTmpFile}
|
||||||
''}
|
''}
|
||||||
'';
|
'';
|
||||||
|
|
|
@ -19,7 +19,7 @@ let
|
||||||
{
|
{
|
||||||
${pkgs.coreutils}/bin/cat << EOF
|
${pkgs.coreutils}/bin/cat << EOF
|
||||||
From: smartd on ${host} <${nm.sender}>
|
From: smartd on ${host} <${nm.sender}>
|
||||||
To: undisclosed-recipients:;
|
To: ${nm.recipient}
|
||||||
Subject: $SMARTD_SUBJECT
|
Subject: $SMARTD_SUBJECT
|
||||||
|
|
||||||
$SMARTD_FULLMESSAGE
|
$SMARTD_FULLMESSAGE
|
||||||
|
|
|
@ -28,6 +28,15 @@ in {
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
services.journald.storage = mkOption {
|
||||||
|
default = "persistent";
|
||||||
|
type = types.enum [ "persistent" "volatile" "auto" "none" ];
|
||||||
|
description = mdDoc ''
|
||||||
|
Controls where to store journal data. See
|
||||||
|
{manpage}`journald.conf(5)` for further information.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
services.journald.rateLimitBurst = mkOption {
|
services.journald.rateLimitBurst = mkOption {
|
||||||
default = 10000;
|
default = 10000;
|
||||||
type = types.int;
|
type = types.int;
|
||||||
|
@ -100,7 +109,7 @@ in {
|
||||||
environment.etc = {
|
environment.etc = {
|
||||||
"systemd/journald.conf".text = ''
|
"systemd/journald.conf".text = ''
|
||||||
[Journal]
|
[Journal]
|
||||||
Storage=persistent
|
Storage=${cfg.storage}
|
||||||
RateLimitInterval=${cfg.rateLimitInterval}
|
RateLimitInterval=${cfg.rateLimitInterval}
|
||||||
RateLimitBurst=${toString cfg.rateLimitBurst}
|
RateLimitBurst=${toString cfg.rateLimitBurst}
|
||||||
${optionalString (cfg.console != "") ''
|
${optionalString (cfg.console != "") ''
|
||||||
|
|
|
@ -252,11 +252,10 @@ let
|
||||||
text = ''
|
text = ''
|
||||||
${cfg.backend} rm -f ${name} || true
|
${cfg.backend} rm -f ${name} || true
|
||||||
${optionalString (isValidLogin container.login) ''
|
${optionalString (isValidLogin container.login) ''
|
||||||
cat ${container.login.passwordFile} | \
|
|
||||||
${cfg.backend} login \
|
${cfg.backend} login \
|
||||||
${container.login.registry} \
|
${container.login.registry} \
|
||||||
--username ${container.login.username} \
|
--username ${container.login.username} \
|
||||||
--password-stdin
|
--password-stdin < ${container.login.passwordFile}
|
||||||
''}
|
''}
|
||||||
${optionalString (container.imageFile != null) ''
|
${optionalString (container.imageFile != null) ''
|
||||||
${cfg.backend} load -i ${container.imageFile}
|
${cfg.backend} load -i ${container.imageFile}
|
||||||
|
|
|
@ -26,7 +26,7 @@ let
|
||||||
supportedDbTypes = [ "mysql" "postgres" "sqlite3" ];
|
supportedDbTypes = [ "mysql" "postgres" "sqlite3" ];
|
||||||
makeGiteaTest = type: nameValuePair type (makeTest {
|
makeGiteaTest = type: nameValuePair type (makeTest {
|
||||||
name = "${giteaPackage.pname}-${type}";
|
name = "${giteaPackage.pname}-${type}";
|
||||||
meta.maintainers = with maintainers; [ aanderse emilylange kolaente ma27 ];
|
meta.maintainers = with maintainers; [ aanderse kolaente ma27 ];
|
||||||
|
|
||||||
nodes = {
|
nodes = {
|
||||||
server = { config, pkgs, ... }: {
|
server = { config, pkgs, ... }: {
|
||||||
|
|
|
@ -10,7 +10,7 @@ import ./make-test-python.nix ({ lib, ... }:
|
||||||
meta.maintainers = with lib.maintainers; [ minijackson erictapen ];
|
meta.maintainers = with lib.maintainers; [ minijackson erictapen ];
|
||||||
|
|
||||||
nodes.server =
|
nodes.server =
|
||||||
{ ... }:
|
{ pkgs, ... }:
|
||||||
{
|
{
|
||||||
services.mobilizon = {
|
services.mobilizon = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
@ -25,6 +25,8 @@ import ./make-test-python.nix ({ lib, ... }:
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
services.postgresql.package = pkgs.postgresql_14;
|
||||||
|
|
||||||
security.pki.certificateFiles = [ certs.ca.cert ];
|
security.pki.certificateFiles = [ certs.ca.cert ];
|
||||||
|
|
||||||
services.nginx.virtualHosts."${mobilizonDomain}" = {
|
services.nginx.virtualHosts."${mobilizonDomain}" = {
|
||||||
|
|
|
@ -103,7 +103,12 @@ in {
|
||||||
testScript = ''
|
testScript = ''
|
||||||
start_all()
|
start_all()
|
||||||
|
|
||||||
server.wait_for_unit("sshd")
|
server.wait_for_unit("sshd", timeout=30)
|
||||||
|
server_localhost_only.wait_for_unit("sshd", timeout=30)
|
||||||
|
server_match_rule.wait_for_unit("sshd", timeout=30)
|
||||||
|
|
||||||
|
server_lazy.wait_for_unit("sshd.socket", timeout=30)
|
||||||
|
server_localhost_only_lazy.wait_for_unit("sshd.socket", timeout=30)
|
||||||
|
|
||||||
with subtest("manual-authkey"):
|
with subtest("manual-authkey"):
|
||||||
client.succeed("mkdir -m 700 /root/.ssh")
|
client.succeed("mkdir -m 700 /root/.ssh")
|
||||||
|
|
|
@ -4,6 +4,7 @@ import ./make-test-python.nix (
|
||||||
let
|
let
|
||||||
remoteRepository = "/root/restic-backup";
|
remoteRepository = "/root/restic-backup";
|
||||||
remoteFromFileRepository = "/root/restic-backup-from-file";
|
remoteFromFileRepository = "/root/restic-backup-from-file";
|
||||||
|
remoteNoInitRepository = "/root/restic-backup-no-init";
|
||||||
rcloneRepository = "rclone:local:/root/restic-rclone-backup";
|
rcloneRepository = "rclone:local:/root/restic-rclone-backup";
|
||||||
|
|
||||||
backupPrepareCommand = ''
|
backupPrepareCommand = ''
|
||||||
|
@ -64,6 +65,11 @@ import ./make-test-python.nix (
|
||||||
find /opt -mindepth 1 -maxdepth 1 ! -name a_dir # all files in /opt except for a_dir
|
find /opt -mindepth 1 -maxdepth 1 ! -name a_dir # all files in /opt except for a_dir
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
remote-noinit-backup = {
|
||||||
|
inherit passwordFile exclude pruneOpts paths;
|
||||||
|
initialize = false;
|
||||||
|
repository = remoteNoInitRepository;
|
||||||
|
};
|
||||||
rclonebackup = {
|
rclonebackup = {
|
||||||
inherit passwordFile paths exclude pruneOpts;
|
inherit passwordFile paths exclude pruneOpts;
|
||||||
initialize = true;
|
initialize = true;
|
||||||
|
@ -114,6 +120,7 @@ import ./make-test-python.nix (
|
||||||
"cp -rT ${testDir} /opt",
|
"cp -rT ${testDir} /opt",
|
||||||
"touch /opt/excluded_file_1 /opt/excluded_file_2",
|
"touch /opt/excluded_file_1 /opt/excluded_file_2",
|
||||||
"mkdir -p /root/restic-rclone-backup",
|
"mkdir -p /root/restic-rclone-backup",
|
||||||
|
"restic-remote-noinit-backup init",
|
||||||
|
|
||||||
# test that remotebackup runs custom commands and produces a snapshot
|
# test that remotebackup runs custom commands and produces a snapshot
|
||||||
"timedatectl set-time '2016-12-13 13:45'",
|
"timedatectl set-time '2016-12-13 13:45'",
|
||||||
|
@ -130,6 +137,10 @@ import ./make-test-python.nix (
|
||||||
"systemctl start restic-backups-remote-from-file-backup.service",
|
"systemctl start restic-backups-remote-from-file-backup.service",
|
||||||
'restic-remote-from-file-backup snapshots --json | ${pkgs.jq}/bin/jq "length | . == 1"',
|
'restic-remote-from-file-backup snapshots --json | ${pkgs.jq}/bin/jq "length | . == 1"',
|
||||||
|
|
||||||
|
# test that remote-noinit-backup produces a snapshot
|
||||||
|
"systemctl start restic-backups-remote-noinit-backup.service",
|
||||||
|
'restic-remote-noinit-backup snapshots --json | ${pkgs.jq}/bin/jq "length | . == 1"',
|
||||||
|
|
||||||
# test that restoring that snapshot produces the same directory
|
# test that restoring that snapshot produces the same directory
|
||||||
"mkdir /tmp/restore-2",
|
"mkdir /tmp/restore-2",
|
||||||
"${pkgs.restic}/bin/restic -r ${remoteRepository} -p ${passwordFile} restore latest -t /tmp/restore-2",
|
"${pkgs.restic}/bin/restic -r ${remoteRepository} -p ${passwordFile} restore latest -t /tmp/restore-2",
|
||||||
|
|
|
@ -21,9 +21,7 @@ import ./make-test-python.nix ({ pkgs, ... }: {
|
||||||
machine.wait_for_x()
|
machine.wait_for_x()
|
||||||
machine.execute("shattered-pixel-dungeon >&2 &")
|
machine.execute("shattered-pixel-dungeon >&2 &")
|
||||||
machine.wait_for_window(r"Shattered Pixel Dungeon")
|
machine.wait_for_window(r"Shattered Pixel Dungeon")
|
||||||
machine.sleep(5)
|
machine.wait_for_text("Enter")
|
||||||
if "Enter" not in machine.get_screen_text():
|
|
||||||
raise Exception("Program did not start successfully")
|
|
||||||
machine.screenshot("screen")
|
machine.screenshot("screen")
|
||||||
'';
|
'';
|
||||||
})
|
})
|
||||||
|
|
|
@ -54,9 +54,8 @@ let
|
||||||
services.postgresql = {
|
services.postgresql = {
|
||||||
enable = true;
|
enable = true;
|
||||||
initialScript = pkgs.writeText "postgresql-init.sql" ''
|
initialScript = pkgs.writeText "postgresql-init.sql" ''
|
||||||
CREATE DATABASE bitwarden;
|
|
||||||
CREATE USER bitwardenuser WITH PASSWORD '${dbPassword}';
|
CREATE USER bitwardenuser WITH PASSWORD '${dbPassword}';
|
||||||
GRANT ALL PRIVILEGES ON DATABASE bitwarden TO bitwardenuser;
|
CREATE DATABASE bitwarden WITH OWNER bitwardenuser;
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -1,14 +1,14 @@
|
||||||
{ lib, fetchFromGitHub, pythonPackages, mopidy }:
|
{ lib, fetchFromGitHub, pythonPackages, mopidy, unstableGitUpdater }:
|
||||||
|
|
||||||
pythonPackages.buildPythonApplication rec {
|
pythonPackages.buildPythonApplication rec {
|
||||||
pname = "mopidy-spotify";
|
pname = "mopidy-spotify";
|
||||||
version = "unstable-2023-04-21";
|
version = "unstable-2023-11-01";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "mopidy";
|
owner = "mopidy";
|
||||||
repo = "mopidy-spotify";
|
repo = "mopidy-spotify";
|
||||||
rev = "984151ac96c5f9c35892055bff20cc11f46092d5";
|
rev = "48faaaa2642647b0152231798b46ccd9631694f5";
|
||||||
hash = "sha256-4e9Aj0AOFR4/FK54gr1ZyPt0nYZDMrMetV4FPtBxapU=";
|
hash = "sha256-RwkUdcbDU7/ndVnPteG/iXB2dloljvCHQlvPk4tacuA=";
|
||||||
};
|
};
|
||||||
|
|
||||||
propagatedBuildInputs = [
|
propagatedBuildInputs = [
|
||||||
|
@ -22,6 +22,8 @@ pythonPackages.buildPythonApplication rec {
|
||||||
|
|
||||||
pythonImportsCheck = [ "mopidy_spotify" ];
|
pythonImportsCheck = [ "mopidy_spotify" ];
|
||||||
|
|
||||||
|
passthru.updateScript = unstableGitUpdater { };
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
homepage = "https://github.com/mopidy/mopidy-spotify";
|
homepage = "https://github.com/mopidy/mopidy-spotify";
|
||||||
description = "Mopidy extension for playing music from Spotify";
|
description = "Mopidy extension for playing music from Spotify";
|
||||||
|
|
5610
pkgs/applications/editors/cosmic-edit/Cargo.lock
generated
Normal file
5610
pkgs/applications/editors/cosmic-edit/Cargo.lock
generated
Normal file
File diff suppressed because it is too large
Load diff
80
pkgs/applications/editors/cosmic-edit/default.nix
Normal file
80
pkgs/applications/editors/cosmic-edit/default.nix
Normal file
|
@ -0,0 +1,80 @@
|
||||||
|
{ lib
|
||||||
|
, stdenv
|
||||||
|
, fetchFromGitHub
|
||||||
|
, rust
|
||||||
|
, rustPlatform
|
||||||
|
, cmake
|
||||||
|
, makeWrapper
|
||||||
|
, cosmic-icons
|
||||||
|
, just
|
||||||
|
, pkg-config
|
||||||
|
, libxkbcommon
|
||||||
|
, glib
|
||||||
|
, gtk3
|
||||||
|
, libinput
|
||||||
|
, fontconfig
|
||||||
|
, freetype
|
||||||
|
, wayland
|
||||||
|
, expat
|
||||||
|
, udev
|
||||||
|
, which
|
||||||
|
, lld
|
||||||
|
, util-linuxMinimal
|
||||||
|
}:
|
||||||
|
|
||||||
|
rustPlatform.buildRustPackage rec {
|
||||||
|
pname = "cosmic-edit";
|
||||||
|
version = "unstable-2023-11-02";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "pop-os";
|
||||||
|
repo = "cosmic-edit";
|
||||||
|
rev = "ee2dea71e6e21967bc705046f9650407d07cdada";
|
||||||
|
sha256 = "sha256-27j9Imlyzwy2yjpNsWWcX0qW38ZxMDkht1Eaggr4NYY=";
|
||||||
|
};
|
||||||
|
|
||||||
|
cargoLock = {
|
||||||
|
lockFile = ./Cargo.lock;
|
||||||
|
outputHashes = {
|
||||||
|
"accesskit-0.11.0" = "sha256-xVhe6adUb8VmwIKKjHxwCwOo5Y1p3Or3ylcJJdLDrrE=";
|
||||||
|
"cosmic-config-0.1.0" = "sha256-VKvJ7cNwMLLs6ElpgP6xwsBUnD5MDApwWl7rrb/Lr/U=";
|
||||||
|
"cosmic-text-0.10.0" = "sha256-g9y2qZ2ivpDtZAtsXqMXgGjUFi9QZx/weMhk7hmnB3E=";
|
||||||
|
"sctk-adwaita-0.5.4" = "sha256-yK0F2w/0nxyKrSiHZbx7+aPNY2vlFs7s8nu/COp2KqQ=";
|
||||||
|
"smithay-client-toolkit-0.16.1" = "sha256-z7EZThbh7YmKzAACv181zaEZmWxTrMkFRzP0nfsHK6c=";
|
||||||
|
"softbuffer-0.2.0" = "sha256-VD2GmxC58z7Qfu/L+sfENE+T8L40mvUKKSfgLmCTmjY=";
|
||||||
|
"taffy-0.3.11" = "sha256-0hXOEj6IjSW8e1t+rvxBFX6V9XRum3QO2Des1XlHJEw=";
|
||||||
|
"winit-0.28.6" = "sha256-FhW6d2XnXCGJUMoT9EMQew9/OPXiehy/JraeCiVd76M=";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
postPatch = ''
|
||||||
|
substituteInPlace justfile --replace '#!/usr/bin/env' "#!$(command -v env)"
|
||||||
|
'';
|
||||||
|
|
||||||
|
nativeBuildInputs = [ cmake just pkg-config which lld util-linuxMinimal makeWrapper ];
|
||||||
|
buildInputs = [ libxkbcommon libinput fontconfig freetype wayland expat udev glib gtk3 ];
|
||||||
|
|
||||||
|
dontUseJustBuild = true;
|
||||||
|
|
||||||
|
justFlags = [
|
||||||
|
"--set"
|
||||||
|
"prefix"
|
||||||
|
(placeholder "out")
|
||||||
|
"--set"
|
||||||
|
"bin-src"
|
||||||
|
"target/${rust.lib.toRustTargetSpecShort stdenv.hostPlatform}/release/cosmic-edit"
|
||||||
|
];
|
||||||
|
|
||||||
|
postInstall = ''
|
||||||
|
wrapProgram "$out/bin/${pname}" \
|
||||||
|
--suffix XDG_DATA_DIRS : "${cosmic-icons}/share"
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
homepage = "https://github.com/pop-os/cosmic-edit";
|
||||||
|
description = "Text Editor for the COSMIC Desktop Environment";
|
||||||
|
license = licenses.gpl3Only;
|
||||||
|
maintainers = with maintainers; [ ahoneybun ];
|
||||||
|
platforms = platforms.linux;
|
||||||
|
};
|
||||||
|
}
|
|
@ -3,6 +3,8 @@
|
||||||
, fetchFromGitHub
|
, fetchFromGitHub
|
||||||
, pkg-config
|
, pkg-config
|
||||||
, bzip2
|
, bzip2
|
||||||
|
, libgit2
|
||||||
|
, zlib
|
||||||
, zstd
|
, zstd
|
||||||
, zoxide
|
, zoxide
|
||||||
}:
|
}:
|
||||||
|
@ -24,11 +26,17 @@ rustPlatform.buildRustPackage rec {
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
bzip2
|
bzip2
|
||||||
|
libgit2
|
||||||
|
zlib
|
||||||
zstd
|
zstd
|
||||||
];
|
];
|
||||||
|
|
||||||
nativeCheckInputs = [ zoxide ];
|
nativeCheckInputs = [ zoxide ];
|
||||||
|
|
||||||
|
env = {
|
||||||
|
ZSTD_SYS_USE_PKG_CONFIG = true;
|
||||||
|
};
|
||||||
|
|
||||||
buildFeatures = [ "zstd/pkg-config" ];
|
buildFeatures = [ "zstd/pkg-config" ];
|
||||||
|
|
||||||
checkFlags = [
|
checkFlags = [
|
||||||
|
@ -37,11 +45,6 @@ rustPlatform.buildRustPackage rec {
|
||||||
"--skip=state::tests::test_has_write_permission"
|
"--skip=state::tests::test_has_write_permission"
|
||||||
];
|
];
|
||||||
|
|
||||||
# Cargo.lock is outdated
|
|
||||||
postConfigure = ''
|
|
||||||
cargo metadata --offline
|
|
||||||
'';
|
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
description = "A tui file manager with vim-like key mapping";
|
description = "A tui file manager with vim-like key mapping";
|
||||||
homepage = "https://github.com/kyoheiu/felix";
|
homepage = "https://github.com/kyoheiu/felix";
|
||||||
|
|
|
@ -76,14 +76,14 @@ let
|
||||||
urllib3
|
urllib3
|
||||||
];
|
];
|
||||||
in mkDerivation rec {
|
in mkDerivation rec {
|
||||||
version = "3.28.11";
|
version = "3.28.12";
|
||||||
pname = "qgis-ltr-unwrapped";
|
pname = "qgis-ltr-unwrapped";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "qgis";
|
owner = "qgis";
|
||||||
repo = "QGIS";
|
repo = "QGIS";
|
||||||
rev = "final-${lib.replaceStrings [ "." ] [ "_" ] version}";
|
rev = "final-${lib.replaceStrings [ "." ] [ "_" ] version}";
|
||||||
hash = "sha256-3yV47GlIhYGR7+ZlPLQw1vy1x8xuJd5erUJO3Pw7L+g=";
|
hash = "sha256-C80ZrQW7WFXz8UMXSt3FJcK2gDd292H24Ic3pJD/yqI=";
|
||||||
};
|
};
|
||||||
|
|
||||||
passthru = {
|
passthru = {
|
||||||
|
|
|
@ -148,7 +148,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||||
export XDG_DATA_HOME=$out/share
|
export XDG_DATA_HOME=$out/share
|
||||||
export XDG_UTILS_INSTALL_MODE="user"
|
export XDG_UTILS_INSTALL_MODE="user"
|
||||||
|
|
||||||
${python3Packages.python.pythonForBuild.interpreter} setup.py install --root=$out \
|
${python3Packages.python.pythonOnBuildForHost.interpreter} setup.py install --root=$out \
|
||||||
--prefix=$out \
|
--prefix=$out \
|
||||||
--libdir=$out/lib \
|
--libdir=$out/lib \
|
||||||
--staging-root=$out \
|
--staging-root=$out \
|
||||||
|
|
|
@ -9,16 +9,16 @@
|
||||||
|
|
||||||
rustPlatform.buildRustPackage rec {
|
rustPlatform.buildRustPackage rec {
|
||||||
pname = "kbt";
|
pname = "kbt";
|
||||||
version = "1.2.3";
|
version = "2.0.6";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "bloznelis";
|
owner = "bloznelis";
|
||||||
repo = "kbt";
|
repo = "kbt";
|
||||||
rev = version;
|
rev = version;
|
||||||
hash = "sha256-AhMl8UuSVKLiIj+EnnmJX8iURjytLByDRLqDkgHGBr0=";
|
hash = "sha256-G5/Sb/suTUkpR6OGlOawLVGLTthcrp78Y+5mxlndfA4=";
|
||||||
};
|
};
|
||||||
|
|
||||||
cargoHash = "sha256-pgdI+BoYrdSdQpVN0pH4QMcNAKbjbnrUbAmMpmtfd2s=";
|
cargoHash = "sha256-7P93mttZ9W76lpGPKN33cgr4nEaHRlDQWov+TUbDHkM=";
|
||||||
|
|
||||||
nativeBuildInputs = lib.optionals stdenv.isLinux [
|
nativeBuildInputs = lib.optionals stdenv.isLinux [
|
||||||
pkg-config
|
pkg-config
|
||||||
|
|
|
@ -1,19 +1,20 @@
|
||||||
{ lib, appimageTools, fetchurl }:
|
{ lib, appimageTools, fetchurl }:
|
||||||
|
|
||||||
let
|
let
|
||||||
version = "1.7.7";
|
version = "1.7.8";
|
||||||
pname = "lunatask";
|
pname = "lunatask";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://lunatask.app/download/Lunatask-${version}.AppImage";
|
url = "https://lunatask.app/download/Lunatask-${version}.AppImage";
|
||||||
sha256 = "sha256-3WiJR+gwudeLs6Mn75SJP4BZ6utwxvvRLOHe/W+1Pfs=";
|
sha256 = "sha256-DhTWD9uL7zKWiRfeLYKxPtmAy1yR20wjlVA+N33YgpQ=";
|
||||||
};
|
};
|
||||||
|
|
||||||
appimageContents = appimageTools.extractType2 {
|
appimageContents = appimageTools.extractType2 {
|
||||||
inherit pname version src;
|
inherit pname version src;
|
||||||
};
|
};
|
||||||
|
|
||||||
in appimageTools.wrapType2 rec {
|
in
|
||||||
|
appimageTools.wrapType2 rec {
|
||||||
inherit pname version src;
|
inherit pname version src;
|
||||||
|
|
||||||
extraInstallCommands = ''
|
extraInstallCommands = ''
|
||||||
|
|
|
@ -43,7 +43,7 @@ let
|
||||||
"--enable-quartz=${if withQuartz then "yes" else "no"}"
|
"--enable-quartz=${if withQuartz then "yes" else "no"}"
|
||||||
"--enable-corelocation=${if withCoreLocation then "yes" else "no"}"
|
"--enable-corelocation=${if withCoreLocation then "yes" else "no"}"
|
||||||
] ++ lib.optionals (pname == "gammastep") [
|
] ++ lib.optionals (pname == "gammastep") [
|
||||||
"--with-systemduserunitdir=${placeholder "out"}/share/systemd/user/"
|
"--with-systemduserunitdir=${placeholder "out"}/lib/systemd/user/"
|
||||||
"--enable-apparmor"
|
"--enable-apparmor"
|
||||||
];
|
];
|
||||||
|
|
||||||
|
@ -117,6 +117,7 @@ rec {
|
||||||
license = licenses.gpl3Plus;
|
license = licenses.gpl3Plus;
|
||||||
homepage = "http://jonls.dk/redshift";
|
homepage = "http://jonls.dk/redshift";
|
||||||
platforms = platforms.unix;
|
platforms = platforms.unix;
|
||||||
|
mainProgram = "redshift";
|
||||||
maintainers = with maintainers; [ yana ];
|
maintainers = with maintainers; [ yana ];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -137,7 +138,8 @@ rec {
|
||||||
longDescription = "Gammastep"
|
longDescription = "Gammastep"
|
||||||
+ lib.removePrefix "Redshift" redshift.meta.longDescription;
|
+ lib.removePrefix "Redshift" redshift.meta.longDescription;
|
||||||
homepage = "https://gitlab.com/chinstrap/gammastep";
|
homepage = "https://gitlab.com/chinstrap/gammastep";
|
||||||
maintainers = [ lib.maintainers.primeos ] ++ redshift.meta.maintainers;
|
mainProgram = "gammastep";
|
||||||
|
maintainers = (with lib.maintainers; [ eclairevoyant primeos ]) ++ redshift.meta.maintainers;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -26,6 +26,7 @@ rofi-unwrapped.overrideAttrs (oldAttrs: rec {
|
||||||
description = "Window switcher, run dialog and dmenu replacement for Wayland";
|
description = "Window switcher, run dialog and dmenu replacement for Wayland";
|
||||||
homepage = "https://github.com/lbonn/rofi";
|
homepage = "https://github.com/lbonn/rofi";
|
||||||
license = licenses.mit;
|
license = licenses.mit;
|
||||||
|
mainProgram = "rofi";
|
||||||
maintainers = with maintainers; [ bew ];
|
maintainers = with maintainers; [ bew ];
|
||||||
platforms = with platforms; linux;
|
platforms = with platforms; linux;
|
||||||
};
|
};
|
||||||
|
|
|
@ -2,13 +2,13 @@
|
||||||
|
|
||||||
buildGoModule rec {
|
buildGoModule rec {
|
||||||
pname = "spicetify-cli";
|
pname = "spicetify-cli";
|
||||||
version = "2.25.2";
|
version = "2.26.0";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "spicetify";
|
owner = "spicetify";
|
||||||
repo = "spicetify-cli";
|
repo = "spicetify-cli";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
hash = "sha256-llPxR4awKBBv0jiLr5MbE33D5KZx3LmBo5BDwZI8ZM0=";
|
hash = "sha256-3u55Pcd4VNgWGyu/IVsrMqm8E4H9y4Bvt3JMyIL/KXo=";
|
||||||
};
|
};
|
||||||
|
|
||||||
vendorHash = "sha256-VktAO3yKCdm5yz/RRLeLv6zzyGrwuHC/i8WdJtqZoYc=";
|
vendorHash = "sha256-VktAO3yKCdm5yz/RRLeLv6zzyGrwuHC/i8WdJtqZoYc=";
|
||||||
|
|
|
@ -113,8 +113,8 @@ python.pkgs.pythonPackages.buildPythonPackage rec {
|
||||||
touch cookbook/static/themes/bootstrap.min.css.map
|
touch cookbook/static/themes/bootstrap.min.css.map
|
||||||
touch cookbook/static/css/bootstrap-vue.min.css.map
|
touch cookbook/static/css/bootstrap-vue.min.css.map
|
||||||
|
|
||||||
${python.pythonForBuild.interpreter} manage.py collectstatic_js_reverse
|
${python.pythonOnBuildForHost.interpreter} manage.py collectstatic_js_reverse
|
||||||
${python.pythonForBuild.interpreter} manage.py collectstatic
|
${python.pythonOnBuildForHost.interpreter} manage.py collectstatic
|
||||||
|
|
||||||
runHook postBuild
|
runHook postBuild
|
||||||
'';
|
'';
|
||||||
|
|
|
@ -2,13 +2,13 @@
|
||||||
|
|
||||||
stdenv.mkDerivation (finalAttrs: {
|
stdenv.mkDerivation (finalAttrs: {
|
||||||
pname = "tippecanoe";
|
pname = "tippecanoe";
|
||||||
version = "2.19.0";
|
version = "2.35.0";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "felt";
|
owner = "felt";
|
||||||
repo = "tippecanoe";
|
repo = "tippecanoe";
|
||||||
rev = finalAttrs.version;
|
rev = finalAttrs.version;
|
||||||
hash = "sha256-FWdAMIAoj3/+SQLIan++UpmWH1o3v92FsDw//b5RorM=";
|
hash = "sha256-l19p/Ql1gaNJpmDH46jwLgUUmJ5YTYRQi6DdayAd84Q=";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ sqlite zlib ];
|
buildInputs = [ sqlite zlib ];
|
||||||
|
@ -17,7 +17,9 @@ stdenv.mkDerivation (finalAttrs: {
|
||||||
makeFlags = [ "PREFIX=$(out)" ];
|
makeFlags = [ "PREFIX=$(out)" ];
|
||||||
|
|
||||||
enableParallelBuilding = true;
|
enableParallelBuilding = true;
|
||||||
doCheck = true;
|
|
||||||
|
# https://github.com/felt/tippecanoe/issues/148
|
||||||
|
doCheck = false;
|
||||||
|
|
||||||
passthru.tests.version = testers.testVersion {
|
passthru.tests.version = testers.testVersion {
|
||||||
package = finalAttrs.finalPackage;
|
package = finalAttrs.finalPackage;
|
||||||
|
|
|
@ -30,7 +30,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||||
];
|
];
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
meson ninja pkg-config desktop-file-utils python3.pythonForBuild.pkgs.sphinx
|
meson ninja pkg-config desktop-file-utils python3.pythonOnBuildForHost.pkgs.sphinx
|
||||||
gettext wrapGAppsHook libxml2 appstream-glib
|
gettext wrapGAppsHook libxml2 appstream-glib
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
|
@ -62,7 +62,7 @@
|
||||||
buildFun:
|
buildFun:
|
||||||
|
|
||||||
let
|
let
|
||||||
python3WithPackages = python3.pythonForBuild.withPackages(ps: with ps; [
|
python3WithPackages = python3.pythonOnBuildForHost.withPackages(ps: with ps; [
|
||||||
ply jinja2 setuptools
|
ply jinja2 setuptools
|
||||||
]);
|
]);
|
||||||
clangFormatPython3 = fetchurl {
|
clangFormatPython3 = fetchurl {
|
||||||
|
@ -437,7 +437,7 @@ let
|
||||||
|
|
||||||
# This is to ensure expansion of $out.
|
# This is to ensure expansion of $out.
|
||||||
libExecPath="${libExecPath}"
|
libExecPath="${libExecPath}"
|
||||||
${python3.pythonForBuild}/bin/python3 build/linux/unbundle/replace_gn_files.py --system-libraries ${toString gnSystemLibraries}
|
${python3.pythonOnBuildForHost}/bin/python3 build/linux/unbundle/replace_gn_files.py --system-libraries ${toString gnSystemLibraries}
|
||||||
${gnChromium}/bin/gn gen --args=${lib.escapeShellArg gnFlags} out/Release | tee gn-gen-outputs.txt
|
${gnChromium}/bin/gn gen --args=${lib.escapeShellArg gnFlags} out/Release | tee gn-gen-outputs.txt
|
||||||
|
|
||||||
# Fail if `gn gen` contains a WARNING.
|
# Fail if `gn gen` contains a WARNING.
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -3,10 +3,10 @@
|
||||||
{
|
{
|
||||||
firefox = buildMozillaMach rec {
|
firefox = buildMozillaMach rec {
|
||||||
pname = "firefox";
|
pname = "firefox";
|
||||||
version = "119.0";
|
version = "119.0.1";
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.xz";
|
url = "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.xz";
|
||||||
sha512 = "4b555c444add36567fd538752b122f227cf78bb70b72c79e6d8ae8d9c2e61c3cdacfae79c37970753b8b5c7716b28c686071eb7b551773c30a76852f3550676c";
|
sha512 = "4f3201aee10e7b831cc384b2c7430a24f4de81f703115a917f9eb7acecb2ae1725f11af56c41257a056bb9d7a4d749d590cc9baffcd6e13852be45aaecf8163a";
|
||||||
};
|
};
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
|
|
|
@ -10,9 +10,9 @@
|
||||||
, qtwebengine
|
, qtwebengine
|
||||||
, enableWideVine ? false
|
, enableWideVine ? false
|
||||||
, widevine-cdm
|
, widevine-cdm
|
||||||
, enableVulkan ? stdenv.isLinux
|
# can cause issues on some graphics chips
|
||||||
|
, enableVulkan ? false
|
||||||
, vulkan-loader
|
, vulkan-loader
|
||||||
, buildPackages
|
|
||||||
}:
|
}:
|
||||||
|
|
||||||
let
|
let
|
||||||
|
@ -56,10 +56,7 @@ python3.pkgs.buildPythonApplication {
|
||||||
# scripts and userscripts libs
|
# scripts and userscripts libs
|
||||||
tldextract beautifulsoup4
|
tldextract beautifulsoup4
|
||||||
readability-lxml pykeepass
|
readability-lxml pykeepass
|
||||||
] ++ lib.optionals ((builtins.tryEval stem.outPath).success) [
|
|
||||||
# error: stem-1.8.2 not supported for interpreter python3.11
|
|
||||||
stem
|
stem
|
||||||
] ++ [
|
|
||||||
pynacl
|
pynacl
|
||||||
# extensive ad blocking
|
# extensive ad blocking
|
||||||
adblock
|
adblock
|
||||||
|
@ -86,7 +83,7 @@ python3.pkgs.buildPythonApplication {
|
||||||
runHook preInstall
|
runHook preInstall
|
||||||
|
|
||||||
make -f misc/Makefile \
|
make -f misc/Makefile \
|
||||||
PYTHON=${buildPackages.python3}/bin/python3 \
|
PYTHON=${python3.pythonOnBuildForHost.interpreter} \
|
||||||
PREFIX=. \
|
PREFIX=. \
|
||||||
DESTDIR="$out" \
|
DESTDIR="$out" \
|
||||||
DATAROOTDIR=/share \
|
DATAROOTDIR=/share \
|
||||||
|
@ -125,8 +122,10 @@ python3.pkgs.buildPythonApplication {
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
homepage = "https://github.com/qutebrowser/qutebrowser";
|
homepage = "https://github.com/qutebrowser/qutebrowser";
|
||||||
|
changelog = "https://github.com/qutebrowser/qutebrowser/blob/v${version}/doc/changelog.asciidoc";
|
||||||
description = "Keyboard-focused browser with a minimal GUI";
|
description = "Keyboard-focused browser with a minimal GUI";
|
||||||
license = licenses.gpl3Plus;
|
license = licenses.gpl3Plus;
|
||||||
|
mainProgram = "qutebrowser";
|
||||||
platforms = if enableWideVine then [ "x86_64-linux" ] else qtwebengine.meta.platforms;
|
platforms = if enableWideVine then [ "x86_64-linux" ] else qtwebengine.meta.platforms;
|
||||||
maintainers = with maintainers; [ jagajaga rnhmjoj ebzzry dotlambda nrdxp ];
|
maintainers = with maintainers; [ jagajaga rnhmjoj ebzzry dotlambda nrdxp ];
|
||||||
};
|
};
|
||||||
|
|
|
@ -7,13 +7,13 @@
|
||||||
|
|
||||||
buildGoModule rec {
|
buildGoModule rec {
|
||||||
pname = "cloudflared";
|
pname = "cloudflared";
|
||||||
version = "2023.8.2";
|
version = "2023.10.0";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "cloudflare";
|
owner = "cloudflare";
|
||||||
repo = "cloudflared";
|
repo = "cloudflared";
|
||||||
rev = "refs/tags/${version}";
|
rev = "refs/tags/${version}";
|
||||||
hash = "sha256-8khwpGOBSpbAHnKeKFZUrJoE0dgQB3bN6Y/W2gwRfCM=";
|
hash = "sha256-T+hxNvsckL8PAVb4GjXhnkVi3rXMErTjRgGxCUypwVA=";
|
||||||
};
|
};
|
||||||
|
|
||||||
vendorHash = null;
|
vendorHash = null;
|
||||||
|
|
|
@ -18,6 +18,6 @@ buildGoModule rec {
|
||||||
description = "HyperKit driver for docker-machine";
|
description = "HyperKit driver for docker-machine";
|
||||||
license = licenses.asl20;
|
license = licenses.asl20;
|
||||||
maintainers = with maintainers; [ atkinschang ];
|
maintainers = with maintainers; [ atkinschang ];
|
||||||
platforms = platforms.darwin;
|
platforms = [ "x86_64-darwin" ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,13 +2,13 @@
|
||||||
|
|
||||||
buildGoModule rec {
|
buildGoModule rec {
|
||||||
pname = "hubble";
|
pname = "hubble";
|
||||||
version = "0.12.1";
|
version = "0.12.2";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "cilium";
|
owner = "cilium";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "sha256-YJrL4fLJnTkfzZQp4MzPZL8ZZOGhFbHUzOpvaA5JrOA=";
|
sha256 = "sha256-nnW0dLFPHex4fYJeBPFy8SP7Uc6cs5eN+dv0kIfCUYs=";
|
||||||
};
|
};
|
||||||
|
|
||||||
vendorHash = null;
|
vendorHash = null;
|
||||||
|
|
|
@ -2,13 +2,13 @@
|
||||||
|
|
||||||
buildGoModule rec {
|
buildGoModule rec {
|
||||||
pname = "k9s";
|
pname = "k9s";
|
||||||
version = "0.27.4";
|
version = "0.28.0";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "derailed";
|
owner = "derailed";
|
||||||
repo = "k9s";
|
repo = "k9s";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "sha256-SMdpjeMerIEc0oeNe0SfZyc3yQTq6eif1fDLICNceKY=";
|
sha256 = "sha256-qFZLl37Y9g9LMRnWacwz46cgjVreLg2WyWZrSj3T4ok=";
|
||||||
};
|
};
|
||||||
|
|
||||||
ldflags = [
|
ldflags = [
|
||||||
|
@ -20,7 +20,7 @@ buildGoModule rec {
|
||||||
|
|
||||||
tags = [ "netgo" ];
|
tags = [ "netgo" ];
|
||||||
|
|
||||||
vendorHash = "sha256-wh4WjfDBX9xdtF9fBjSLPBbqb6k8H/LpWO9eTn86le4=";
|
vendorHash = "sha256-TfU1IzTdrWQpK/YjQQImRGeo7byaXUI182xSed+21PU=";
|
||||||
|
|
||||||
# TODO investigate why some config tests are failing
|
# TODO investigate why some config tests are failing
|
||||||
doCheck = !(stdenv.isDarwin && stdenv.isAarch64);
|
doCheck = !(stdenv.isDarwin && stdenv.isAarch64);
|
||||||
|
|
|
@ -2,13 +2,13 @@
|
||||||
|
|
||||||
buildGoModule rec {
|
buildGoModule rec {
|
||||||
pname = "deck";
|
pname = "deck";
|
||||||
version = "1.27.1";
|
version = "1.28.0";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "Kong";
|
owner = "Kong";
|
||||||
repo = "deck";
|
repo = "deck";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
hash = "sha256-9eMcbmRCr92ebJsPTyDFnwGn3gsRpR7aAkzV6Qfntgo=";
|
hash = "sha256-glCZdaIsV8bim3iQuFKlIVmDm/YhDohVC6wIYvQuJAM=";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ installShellFiles ];
|
nativeBuildInputs = [ installShellFiles ];
|
||||||
|
@ -21,7 +21,7 @@ buildGoModule rec {
|
||||||
];
|
];
|
||||||
|
|
||||||
proxyVendor = true; # darwin/linux hash mismatch
|
proxyVendor = true; # darwin/linux hash mismatch
|
||||||
vendorHash = "sha256-ikgD17+lnKpxCzrIkOXOq332X48qEdSWXIIRoq76fB4=";
|
vendorHash = "sha256-tDaFceewyNW19HMmfdDC2qL12hUCw5TUa3TX5TXfvVo=";
|
||||||
|
|
||||||
postInstall = ''
|
postInstall = ''
|
||||||
installShellCompletion --cmd deck \
|
installShellCompletion --cmd deck \
|
||||||
|
|
|
@ -34,7 +34,7 @@ buildPythonApplication rec {
|
||||||
|
|
||||||
cat >test-runner <<EOF
|
cat >test-runner <<EOF
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
${python.pythonForBuild.interpreter} nix_run_setup test
|
${python.pythonOnBuildForHost.interpreter} nix_run_setup test
|
||||||
EOF
|
EOF
|
||||||
chmod +x test-runner
|
chmod +x test-runner
|
||||||
wrapQtApp test-runner --prefix PYTHONPATH : $PYTHONPATH
|
wrapQtApp test-runner --prefix PYTHONPATH : $PYTHONPATH
|
||||||
|
|
4451
pkgs/applications/networking/geph/Cargo.lock
generated
Normal file
4451
pkgs/applications/networking/geph/Cargo.lock
generated
Normal file
File diff suppressed because it is too large
Load diff
|
@ -2,19 +2,23 @@
|
||||||
, stdenvNoCC
|
, stdenvNoCC
|
||||||
, rustPlatform
|
, rustPlatform
|
||||||
, fetchFromGitHub
|
, fetchFromGitHub
|
||||||
, buildNpmPackage
|
, buildGoModule
|
||||||
|
, makeWrapper
|
||||||
|
, nodePackages
|
||||||
|
, esbuild
|
||||||
|
, jq
|
||||||
|
, moreutils
|
||||||
, perl
|
, perl
|
||||||
, pkg-config
|
, pkg-config
|
||||||
, glib
|
, glib
|
||||||
, webkitgtk
|
, webkitgtk
|
||||||
, libappindicator-gtk3
|
|
||||||
, libayatana-appindicator
|
, libayatana-appindicator
|
||||||
, cairo
|
, cairo
|
||||||
, openssl
|
, openssl
|
||||||
}:
|
}:
|
||||||
|
|
||||||
let
|
let
|
||||||
version = "4.7.8";
|
version = "4.10.1";
|
||||||
geph-meta = with lib; {
|
geph-meta = with lib; {
|
||||||
description = "A modular Internet censorship circumvention system designed specifically to deal with national filtering.";
|
description = "A modular Internet censorship circumvention system designed specifically to deal with national filtering.";
|
||||||
homepage = "https://geph.io";
|
homepage = "https://geph.io";
|
||||||
|
@ -31,10 +35,10 @@ in
|
||||||
owner = "geph-official";
|
owner = "geph-official";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
hash = "sha256-DVGbLyFgraQMSIUAqDehF8DqbnvcaeWbuLVgiSQY3KE=";
|
hash = "sha256-e0Pdg4pQ5s1wvTnFm1rKuAwkYtCtu2Uacd7yH3EHeCo=";
|
||||||
};
|
};
|
||||||
|
|
||||||
cargoHash = "sha256-uBq6rjUnKEscwhu60HEZffLvuXcArz+AiR52org+qKw=";
|
cargoHash = "sha256-Kwc+EOH2pJJVvIcTUfL39Xrv/7YmTPUDge7mmjDs9pQ=";
|
||||||
|
|
||||||
nativeBuildInputs = [ perl ];
|
nativeBuildInputs = [ perl ];
|
||||||
|
|
||||||
|
@ -50,52 +54,91 @@ in
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "geph-official";
|
owner = "geph-official";
|
||||||
repo = "gephgui-pkg";
|
repo = "gephgui-pkg";
|
||||||
rev = "85a55bfc2f4314d9c49608f252080696b1f8e2a9";
|
rev = "4163e12188dd679ba548e127fc9771cb5e87bab0";
|
||||||
hash = "sha256-id/sfaQsF480kUXg//O5rBIciuuhDuXY19FQe1E3OQs=";
|
hash = "sha256-wBvhfgp5sZTRCBR9HZqs1G0VaIt9DW2e9CWMAp/T5WI=";
|
||||||
fetchSubmodules = true;
|
fetchSubmodules = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
gephgui = buildNpmPackage {
|
pnpm-deps = stdenvNoCC.mkDerivation {
|
||||||
pname = "gephgui";
|
pname = "${pname}-pnpm-deps";
|
||||||
inherit version src;
|
inherit src version;
|
||||||
|
|
||||||
sourceRoot = "${src.name}/gephgui-wry/gephgui";
|
sourceRoot = "source/gephgui-wry/gephgui";
|
||||||
|
|
||||||
postPatch = "ln -s ${./package-lock.json} ./package-lock.json";
|
nativeBuildInputs = [
|
||||||
|
jq
|
||||||
npmDepsHash = "sha256-5y6zpMF4M56DiWVhMvjJGsYpVdlJSoWoWyPgLc7hJoo=";
|
moreutils
|
||||||
|
nodePackages.pnpm
|
||||||
|
];
|
||||||
|
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
runHook preInstall
|
export HOME=$(mktemp -d)
|
||||||
|
pnpm config set store-dir $out
|
||||||
|
pnpm install --ignore-scripts
|
||||||
|
|
||||||
mkdir -p $out
|
# Remove timestamp and sort the json files
|
||||||
mv dist $out
|
rm -rf $out/v3/tmp
|
||||||
|
for f in $(find $out -name "*.json"); do
|
||||||
runHook postInstall
|
sed -i -E -e 's/"checkedAt":[0-9]+,//g' $f
|
||||||
|
jq --sort-keys . $f | sponge $f
|
||||||
|
done
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
dontFixup = true;
|
||||||
|
outputHashMode = "recursive";
|
||||||
|
outputHash = "sha256-OKPx5xRI7DWd6m31nYx1biP0k6pcZ7fq7dfVlHda4O0=";
|
||||||
};
|
};
|
||||||
|
|
||||||
gephgui-wry = rustPlatform.buildRustPackage rec {
|
gephgui-wry = rustPlatform.buildRustPackage {
|
||||||
pname = "gephgui-wry";
|
pname = "gephgui-wry";
|
||||||
inherit version src;
|
inherit version src;
|
||||||
|
|
||||||
sourceRoot = "${src.name}/gephgui-wry";
|
sourceRoot = "source/gephgui-wry";
|
||||||
|
|
||||||
cargoHash = "sha256-lidlUUfHXKPUlICdaVv/SFlyyWsZ7cYHyTJ3kkMn3L4=";
|
cargoLock = {
|
||||||
|
lockFile = ./Cargo.lock;
|
||||||
|
outputHashes = {
|
||||||
|
"tao-0.5.2" = "sha256-HyQyPRoAHUcgtYgaAW7uqrwEMQ45V+xVSxmlAZJfhv0=";
|
||||||
|
"wry-0.12.2" = "sha256-kTMXvignEF3FlzL0iSlF6zn1YTOCpyRUDN8EHpUS+yI=";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ pkg-config ];
|
nativeBuildInputs = [
|
||||||
|
pkg-config
|
||||||
|
nodePackages.pnpm
|
||||||
|
makeWrapper
|
||||||
|
];
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
glib
|
glib
|
||||||
webkitgtk
|
webkitgtk
|
||||||
libappindicator-gtk3
|
|
||||||
libayatana-appindicator
|
libayatana-appindicator
|
||||||
cairo
|
cairo
|
||||||
openssl
|
openssl
|
||||||
];
|
];
|
||||||
|
|
||||||
|
ESBUILD_BINARY_PATH = "${lib.getExe (esbuild.override {
|
||||||
|
buildGoModule = args: buildGoModule (args // rec {
|
||||||
|
version = "0.15.10";
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "evanw";
|
||||||
|
repo = "esbuild";
|
||||||
|
rev = "v${version}";
|
||||||
|
hash = "sha256-DebmLtgPrla+1UcvOHMnWmxa/ZqrugeRRKXIiJ9LYDk=";
|
||||||
|
};
|
||||||
|
vendorHash = "sha256-+BfxCyg0KkDQpHt/wycy/8CTG6YBA/VJvJFhhzUnSiQ=";
|
||||||
|
});
|
||||||
|
})}";
|
||||||
|
|
||||||
preBuild = ''
|
preBuild = ''
|
||||||
ln -s ${gephgui}/dist ./gephgui
|
cd gephgui
|
||||||
|
export HOME=$(mktemp -d)
|
||||||
|
pnpm config set store-dir ${pnpm-deps}
|
||||||
|
pnpm install --ignore-scripts --offline
|
||||||
|
chmod -R +w node_modules
|
||||||
|
pnpm rebuild
|
||||||
|
pnpm build
|
||||||
|
cd ..
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
3658
pkgs/applications/networking/geph/package-lock.json
generated
3658
pkgs/applications/networking/geph/package-lock.json
generated
File diff suppressed because it is too large
Load diff
|
@ -18,7 +18,7 @@ python3.pkgs.buildPythonApplication rec {
|
||||||
hash = "sha256-1QNhNPa6ZKn0lGQXs/cmfdSFHscwlYwFC/2DpnMoHvY=";
|
hash = "sha256-1QNhNPa6ZKn0lGQXs/cmfdSFHscwlYwFC/2DpnMoHvY=";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = with python3.pythonForBuild.pkgs; [
|
nativeBuildInputs = with python3.pythonOnBuildForHost.pkgs; [
|
||||||
setuptools
|
setuptools
|
||||||
setuptools-scm
|
setuptools-scm
|
||||||
];
|
];
|
||||||
|
|
|
@ -2,13 +2,13 @@
|
||||||
|
|
||||||
(if stdenv.isDarwin then darwin.apple_sdk_11_0.llvmPackages_14.stdenv else stdenv).mkDerivation rec {
|
(if stdenv.isDarwin then darwin.apple_sdk_11_0.llvmPackages_14.stdenv else stdenv).mkDerivation rec {
|
||||||
pname = "signalbackup-tools";
|
pname = "signalbackup-tools";
|
||||||
version = "20231030-1";
|
version = "20231106-1";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "bepaald";
|
owner = "bepaald";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
rev = version;
|
rev = version;
|
||||||
hash = "sha256-xY5UpM1vYAL2hZUkh5O4Z6zJ5HVxXTtvDlXedlsU820=";
|
hash = "sha256-alQOYh1I4t1OppHbjsbDK6wc599Z0uDAyQjCtKM72ak=";
|
||||||
};
|
};
|
||||||
|
|
||||||
postPatch = ''
|
postPatch = ''
|
||||||
|
|
|
@ -53,7 +53,6 @@
|
||||||
, libthai
|
, libthai
|
||||||
, libdatrie
|
, libdatrie
|
||||||
, xdg-utils
|
, xdg-utils
|
||||||
, xorg
|
|
||||||
, libsysprof-capture
|
, libsysprof-capture
|
||||||
, libpsl
|
, libpsl
|
||||||
, brotli
|
, brotli
|
||||||
|
@ -217,7 +216,6 @@ stdenv.mkDerivation rec {
|
||||||
wrapProgram $out/bin/telegram-desktop \
|
wrapProgram $out/bin/telegram-desktop \
|
||||||
"''${gappsWrapperArgs[@]}" \
|
"''${gappsWrapperArgs[@]}" \
|
||||||
"''${qtWrapperArgs[@]}" \
|
"''${qtWrapperArgs[@]}" \
|
||||||
--prefix LD_LIBRARY_PATH : "${xorg.libXcursor}/lib" \
|
|
||||||
--suffix PATH : ${lib.makeBinPath [ xdg-utils ]}
|
--suffix PATH : ${lib.makeBinPath [ xdg-utils ]}
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
|
|
@ -4,6 +4,7 @@
|
||||||
, gtk3
|
, gtk3
|
||||||
, gtk4
|
, gtk4
|
||||||
, libnotify
|
, libnotify
|
||||||
|
, copyDesktopItems
|
||||||
, makeDesktopItem
|
, makeDesktopItem
|
||||||
, makeWrapper
|
, makeWrapper
|
||||||
, mesa
|
, mesa
|
||||||
|
@ -17,32 +18,21 @@
|
||||||
, xorg
|
, xorg
|
||||||
}:
|
}:
|
||||||
|
|
||||||
let
|
stdenv.mkDerivation rec {
|
||||||
version = "10.114.26-2";
|
|
||||||
desktopItem = makeDesktopItem rec {
|
|
||||||
name = "Wavebox";
|
|
||||||
exec = "wavebox";
|
|
||||||
icon = "wavebox";
|
|
||||||
desktopName = name;
|
|
||||||
genericName = name;
|
|
||||||
categories = [ "Network" "WebBrowser" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
tarball = "Wavebox_${version}.tar.gz";
|
|
||||||
|
|
||||||
in
|
|
||||||
stdenv.mkDerivation {
|
|
||||||
pname = "wavebox";
|
pname = "wavebox";
|
||||||
inherit version;
|
version = "10.118.5-2";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://download.wavebox.app/stable/linux/tar/${tarball}";
|
url = "https://download.wavebox.app/stable/linux/tar/Wavebox_${version}.tar.gz";
|
||||||
sha256 = "1yk664zgahjg6n98n3kc9avcay0nqwcyq8wq231p7kvd79zazk0r";
|
sha256 = "sha256-TxMl8pdycCMY6NFi5MSLZg0p/+KmuAPQOm370bPMm/0=";
|
||||||
};
|
};
|
||||||
|
|
||||||
# don't remove runtime deps
|
# don't remove runtime deps
|
||||||
dontPatchELF = true;
|
dontPatchELF = true;
|
||||||
|
# ignore optional Qt 6 shim
|
||||||
|
autoPatchelfIgnoreMissingDeps = [ "libQt6Widgets.so.6" "libQt6Gui.so.6" "libQt6Core.so.6" ];
|
||||||
|
|
||||||
nativeBuildInputs = [ autoPatchelfHook makeWrapper qt5.wrapQtAppsHook ];
|
nativeBuildInputs = [ autoPatchelfHook makeWrapper qt5.wrapQtAppsHook copyDesktopItems ];
|
||||||
|
|
||||||
buildInputs = with xorg; [
|
buildInputs = with xorg; [
|
||||||
libXdmcp
|
libXdmcp
|
||||||
|
@ -62,14 +52,28 @@ stdenv.mkDerivation {
|
||||||
|
|
||||||
runtimeDependencies = [ (lib.getLib udev) libnotify gtk4 ];
|
runtimeDependencies = [ (lib.getLib udev) libnotify gtk4 ];
|
||||||
|
|
||||||
|
desktopItems = [
|
||||||
|
(makeDesktopItem rec {
|
||||||
|
name = "Wavebox";
|
||||||
|
exec = "wavebox";
|
||||||
|
icon = "wavebox";
|
||||||
|
desktopName = name;
|
||||||
|
genericName = name;
|
||||||
|
categories = [ "Network" "WebBrowser" ];
|
||||||
|
})
|
||||||
|
];
|
||||||
|
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
|
runHook preInstall
|
||||||
|
|
||||||
mkdir -p $out/bin $out/opt/wavebox
|
mkdir -p $out/bin $out/opt/wavebox
|
||||||
cp -r * $out/opt/wavebox
|
cp -r * $out/opt/wavebox
|
||||||
|
|
||||||
# provide desktop item and icon
|
# provide icon for desktop item
|
||||||
mkdir -p $out/share/applications $out/share/icons/hicolor/128x128/apps
|
mkdir -p $out/share/icons/hicolor/128x128/apps
|
||||||
ln -s ${desktopItem}/share/applications/* $out/share/applications
|
|
||||||
ln -s $out/opt/wavebox/product_logo_128.png $out/share/icons/hicolor/128x128/apps/wavebox.png
|
ln -s $out/opt/wavebox/product_logo_128.png $out/share/icons/hicolor/128x128/apps/wavebox.png
|
||||||
|
|
||||||
|
runHook postInstall
|
||||||
'';
|
'';
|
||||||
|
|
||||||
postFixup = ''
|
postFixup = ''
|
||||||
|
@ -77,6 +81,8 @@ stdenv.mkDerivation {
|
||||||
--prefix PATH : ${xdg-utils}/bin
|
--prefix PATH : ${xdg-utils}/bin
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
passthru.updateScript = ./update.sh;
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
description = "Wavebox messaging application";
|
description = "Wavebox messaging application";
|
||||||
homepage = "https://wavebox.io";
|
homepage = "https://wavebox.io";
|
||||||
|
|
5
pkgs/applications/networking/instant-messengers/wavebox/update.sh
Executable file
5
pkgs/applications/networking/instant-messengers/wavebox/update.sh
Executable file
|
@ -0,0 +1,5 @@
|
||||||
|
#!/usr/bin/env nix-shell
|
||||||
|
#!nix-shell -i bash -p nix-update curl jq
|
||||||
|
|
||||||
|
version=$(curl "https://download.wavebox.app/stable/linux/latest.json" | jq --raw-output '.["urls"]["tar"] | match("https://download.wavebox.app/stable/linux/tar/Wavebox_(.+).tar.gz").captures[0]["string"]')
|
||||||
|
nix-update wavebox --version "$version"
|
|
@ -26,7 +26,7 @@ python3Packages.buildPythonApplication rec {
|
||||||
outputs = [ "out" "doc" ];
|
outputs = [ "out" "doc" ];
|
||||||
|
|
||||||
postBuild = ''
|
postBuild = ''
|
||||||
${python3Packages.python.pythonForBuild.interpreter} setup.py build_sphinx -b html,man
|
${python3Packages.python.pythonOnBuildForHost.interpreter} setup.py build_sphinx -b html,man
|
||||||
'';
|
'';
|
||||||
|
|
||||||
postInstall = ''
|
postInstall = ''
|
||||||
|
|
|
@ -24,7 +24,7 @@ python3Packages.buildPythonApplication rec {
|
||||||
|
|
||||||
buildPhase = ''
|
buildPhase = ''
|
||||||
runHook preBuild
|
runHook preBuild
|
||||||
${python3Packages.python.pythonForBuild.interpreter} -O -m compileall .
|
${python3Packages.python.pythonOnBuildForHost.interpreter} -O -m compileall .
|
||||||
runHook postBuild
|
runHook postBuild
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
|
|
@ -18,7 +18,7 @@ python3Packages.buildPythonApplication rec {
|
||||||
];
|
];
|
||||||
|
|
||||||
buildPhase = ''
|
buildPhase = ''
|
||||||
${python3Packages.python.pythonForBuild.interpreter} -O -m compileall .
|
${python3Packages.python.pythonOnBuildForHost.interpreter} -O -m compileall .
|
||||||
'';
|
'';
|
||||||
|
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
|
|
|
@ -38,13 +38,13 @@
|
||||||
|
|
||||||
let
|
let
|
||||||
pname = "pcloud";
|
pname = "pcloud";
|
||||||
version = "1.14.1";
|
version = "1.14.2";
|
||||||
code = "XZ5iuiVZQsuexQaMmmLAS7FGWNh1TkXRWJR7";
|
code = "XZAwMrVZidapyDxpd2pCNlGy3BcjdbYCf1Yk";
|
||||||
|
|
||||||
# Archive link's codes: https://www.pcloud.com/release-notes/linux.html
|
# Archive link's codes: https://www.pcloud.com/release-notes/linux.html
|
||||||
src = fetchzip {
|
src = fetchzip {
|
||||||
url = "https://api.pcloud.com/getpubzip?code=${code}&filename=${pname}-${version}.zip";
|
url = "https://api.pcloud.com/getpubzip?code=${code}&filename=${pname}-${version}.zip";
|
||||||
hash = "sha256-6IHt9qxMuDe9f1T+t8JXfPXLUCVe865Od8/ixPR3gso=";
|
hash = "sha256-5dTo0/R+RA+C0PKzaCmcSy7YwzT3Qlwq1xMw6wPJt28=";
|
||||||
};
|
};
|
||||||
|
|
||||||
appimageContents = appimageTools.extractType2 {
|
appimageContents = appimageTools.extractType2 {
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue