Project import generated by Copybara.

GitOrigin-RevId: f5e8bdd07d1afaabf6b37afc5497b1e498b8046f
This commit is contained in:
Default email 2021-03-19 18:17:44 +01:00
parent 787b04737e
commit 07d6a74cbb
839 changed files with 11177 additions and 5190 deletions

View file

@ -68,8 +68,9 @@
Security fixes are submitted in the same way as other changes and thus the same guidelines apply.
If the security fix comes in the form of a patch and a CVE is available, then the name of the patch should be the CVE identifier, so e.g. `CVE-2019-13636.patch` in the case of a patch that is included in the Nixpkgs tree. If a patch is fetched the name needs to be set as well, e.g.:
- If a new version fixing the vulnerability has been released, update the package;
- If the security fix comes in the form of a patch and a CVE is available, then add the patch to the Nixpkgs tree, and apply it to the package.
The name of the patch should be the CVE identifier, so e.g. `CVE-2019-13636.patch`; If a patch is fetched the name needs to be set as well, e.g.:
```nix
(fetchpatch {
name = "CVE-2019-11068.patch";

View file

@ -0,0 +1,45 @@
# Vulnerability Roundup {#chap-vulnerability-roundup}
## Issues {#vulnerability-roundup-issues}
Vulnerable packages in Nixpkgs are managed using issues.
Currently opened ones can be found using the following:
[github.com/NixOS/nixpkgs/issues?q=is:issue+is:open+"Vulnerability+roundup"](https://github.com/NixOS/nixpkgs/issues?q=is%3Aissue+is%3Aopen+%22Vulnerability+roundup%22)
Each issue correspond to a vulnerable version of a package; As a consequence:
- One issue can contain several CVEs;
- One CVE can be shared across several issues;
- A single package can be concerned by several issues.
A "Vulnerability roundup" issue usually respects the following format:
```txt
<link to relevant package search on search.nix.gsc.io>, <link to relevant files in Nixpkgs on GitHub>
<list of related CVEs, their CVSS score, and the impacted NixOS version>
<list of the scanned Nixpkgs versions>
<list of relevant contributors>
```
Note that there can be an extra comment containing links to previously reported (and still open) issues for the same package.
## Triaging and Fixing {#vulnerability-roundup-triaging-and-fixing}
**Note**: An issue can be a "false positive" (i.e. automatically opened, but without the package it refers to being actually vulnerable).
If you find such a "false positive", comment on the issue an explanation of why it falls into this category, linking as much information as the necessary to help maintainers double check.
If you are investigating a "true positive":
- Find the earliest patched version or a code patch in the CVE details;
- Is the issue already patched (version up-to-date or patch applied manually) in Nixpkgs's `master` branch?
- **No**:
- [Submit a security fix](#submitting-changes-submitting-security-fixes);
- Once the fix is merged into `master`, [submit the change to the vulnerable release branch(es)](https://nixos.org/manual/nixpkgs/stable/#submitting-changes-stable-release-branches);
- **Yes**: [Backport the change to the vulnerable release branch(es)](https://nixos.org/manual/nixpkgs/stable/#submitting-changes-stable-release-branches).
- When the patch has made it into all the relevant branches (`master`, and the vulnerable releases), close the relevant issue(s).

View file

@ -72,8 +72,8 @@ For `cargoHash` you can use:
Per the instructions in the [Cargo Book](https://doc.rust-lang.org/cargo/guide/cargo-toml-vs-cargo-lock.html)
best practices guide, Rust applications should always commit the `Cargo.lock`
file in git to ensure a reproducible build. However, a few packages do not, and
Nix depends on this file, so if it missing you can use `cargoPatches` to apply
it in the `patchPhase`. Consider sending a PR upstream with a note to the
Nix depends on this file, so if it is missing you can use `cargoPatches` to
apply it in the `patchPhase`. Consider sending a PR upstream with a note to the
maintainer describing why it's important to include in the application.
The fetcher will verify that the `Cargo.lock` file is in sync with the `src`
@ -146,6 +146,7 @@ where they are known to differ. But there are ways to customize the argument:
rustc.platform = { foo = ""; bar = ""; };
};
}
```
will result in:
```shell
--target /nix/store/asdfasdfsadf-thumb-crazy.json # contains {"foo":"","bar":""}
@ -156,7 +157,7 @@ path) can be passed directly to `buildRustPackage`:
```nix
pkgs.rustPlatform.buildRustPackage {
(...)
/* ... */
target = "x86_64-fortanix-unknown-sgx";
}
```
@ -191,6 +192,13 @@ rustPlatform.buildRustPackage {
Please note that the code will be compiled twice here: once in `release` mode
for the `buildPhase`, and again in `debug` mode for the `checkPhase`.
Test flags, e.g., `--features xxx/yyy`, can be passed to `cargo test` via the
`cargoTestFlags` attribute.
Another attribute, called `checkFlags`, is used to pass arguments to the test
binary itself, as stated
(here)[https://doc.rust-lang.org/cargo/commands/cargo-test.html].
#### Tests relying on the structure of the `target/` directory
Some tests may rely on the structure of the `target/` directory. Those tests
@ -320,9 +328,10 @@ attributes can also be used:
variable `buildAndTestSubdir` can be used to build a crate in a
Cargo workspace. Additional maturin flags can be passed through
`maturinBuildFlags`.
* `cargoCheckHook`: run tests using Cargo. Additional flags can be
passed to Cargo using `checkFlags` and `checkFlagsArray`. By
default, tests are run in parallel. This can be disabled by setting
* `cargoCheckHook`: run tests using Cargo. The build type for checks
can be set using `cargoCheckType`. Additional flags can be passed to
the tests using `checkFlags` and `checkFlagsArray`. By default,
tests are run in parallel. This can be disabled by setting
`dontUseCargoParallelTests`.
* `cargoInstallHook`: install binaries and static/shared libraries
that were built using `cargoBuildHook`.

View file

@ -35,6 +35,7 @@
<xi:include href="contributing/quick-start.xml" />
<xi:include href="contributing/coding-conventions.xml" />
<xi:include href="contributing/submitting-changes.chapter.xml" />
<xi:include href="contributing/vulnerability-roundup.chapter.xml" />
<xi:include href="contributing/reviewing-contributions.xml" />
<xi:include href="contributing/contributing-to-documentation.xml" />
</part>

View file

@ -603,6 +603,11 @@ lib.mapAttrs (n: v: v // { shortName = n; }) ({
free = false;
};
odbl = spdx {
spdxId = "ODbL-1.0";
fullName = "Open Data Commons Open Database License v1.0";
};
ofl = spdx {
spdxId = "OFL-1.1";
fullName = "SIL Open Font License 1.1";

View file

@ -107,6 +107,11 @@ rec {
powerpc64le = "ppc64le";
}.${final.parsed.cpu.name} or final.parsed.cpu.name;
darwinArch = {
armv7a = "armv7";
aarch64 = "arm64";
}.${final.parsed.cpu.name} or final.parsed.cpu.name;
emulator = pkgs: let
qemu-user = pkgs.qemu.override {
smartcardSupport = false;

View file

@ -1859,6 +1859,12 @@
fingerprint = "68B8 0D57 B2E5 4AC3 EC1F 49B0 B37E 0F23 7101 6A4C";
}];
};
collares = {
email = "mauricio@collares.org";
github = "collares";
githubId = 244239;
name = "Mauricio Collares";
};
copumpkin = {
email = "pumpkingod@gmail.com";
github = "copumpkin";
@ -2889,6 +2895,12 @@
githubId = 3787281;
name = "Erik Rybakken";
};
erin = {
name = "Erin van der Veen";
email = "erin@erinvanderveen.nl";
github = "ErinvanderVeen";
githubId = 10973664;
};
erosennin = {
email = "ag@sologoc.com";
github = "erosennin";
@ -4153,6 +4165,12 @@
github = "j0hax";
githubId = 3802620;
};
j4m3s = {
name = "James Landrein";
email = "github@j4m3s.eu";
github = "j4m3s-s";
githubId = 9413812;
};
jacg = {
name = "Jacek Generowicz";
email = "jacg@my-post-office.net";
@ -4177,6 +4195,12 @@
githubId = 175537;
name = "Johannes Lötzsch";
};
jackgerrits = {
email = "jack@jackgerrits.com";
github = "jackgerrits";
githubId = 7558482;
name = "Jack Gerrits";
};
jagajaga = {
email = "ars.seroka@gmail.com";
github = "jagajaga";
@ -5530,6 +5554,12 @@
githubId = 7622248;
name = "Sebastian Zivota";
};
locallycompact = {
email = "dan.firth@homotopic.tech";
github = "locallycompact";
githubId = 1267527;
name = "Daniel Firth";
};
lopsided98 = {
email = "benwolsieffer@gmail.com";
github = "lopsided98";
@ -6987,6 +7017,12 @@
githubId = 3359345;
name = "obadz";
};
obsidian-systems-maintenance = {
name = "Obsidian Systems Maintenance";
email = "maintainer@obsidian.systems";
github = "obsidian-systems-maintenance";
githubId = 80847921;
};
odi = {
email = "oliver.dunkl@gmail.com";
github = "odi";

View file

@ -514,7 +514,7 @@ def update_plugins(editor: Editor):
)
for plugin_line in args.add_plugins:
rewrite_input(args.input_fil, editor.deprecated, append=(plugin_line + "\n",))
rewrite_input(args.input_file, editor.deprecated, append=(plugin_line + "\n",))
update()
plugin = fetch_plugin_from_pluginline(plugin_line)
commit(

View file

@ -134,6 +134,7 @@ with lib.maintainers; {
timokau
omasanori
raskin
collares
];
scope = "Maintain SageMath and the dependencies that are likely to break it.";
};

View file

@ -288,7 +288,7 @@ foreach my $u (values %usersOut) {
push @shadowNew, join(":", $u->{name}, $hashedPassword, "1::::::") . "\n";
}
updateFile("/etc/shadow", \@shadowNew, 0600);
updateFile("/etc/shadow", \@shadowNew, 0640);
{
my $uid = getpwnam "root";
my $gid = getgrnam "shadow";

View file

@ -155,6 +155,7 @@
./programs/nm-applet.nix
./programs/npm.nix
./programs/oblogout.nix
./programs/partition-manager.nix
./programs/plotinus.nix
./programs/proxychains.nix
./programs/qt5ct.nix
@ -177,6 +178,7 @@
./programs/tmux.nix
./programs/traceroute.nix
./programs/tsm-client.nix
./programs/turbovnc.nix
./programs/udevil.nix
./programs/usbtop.nix
./programs/vim.nix
@ -882,6 +884,7 @@
./services/web-apps/atlassian/confluence.nix
./services/web-apps/atlassian/crowd.nix
./services/web-apps/atlassian/jira.nix
./services/web-apps/bookstack.nix
./services/web-apps/convos.nix
./services/web-apps/cryptpad.nix
./services/web-apps/documize.nix

View file

@ -0,0 +1,19 @@
{ config, lib, pkgs, ... }:
with lib;
{
meta.maintainers = [ maintainers.oxalica ];
###### interface
options = {
programs.partition-manager.enable = mkEnableOption "KDE Partition Manager";
};
###### implementation
config = mkIf config.programs.partition-manager.enable {
services.dbus.packages = [ pkgs.libsForQt5.kpmcore ];
# `kpmcore` need to be installed to pull in polkit actions.
environment.systemPackages = [ pkgs.libsForQt5.kpmcore pkgs.partition-manager ];
};
}

View file

@ -90,7 +90,7 @@ in {
rxvt-unicode # For backward compatibility (old default terminal)
];
defaultText = literalExample ''
with pkgs; [ swaylock swayidle xwayland rxvt-unicode dmenu ];
with pkgs; [ swaylock swayidle rxvt-unicode alacritty dmenu ];
'';
example = literalExample ''
with pkgs; [

View file

@ -0,0 +1,54 @@
# Global configuration for the SSH client.
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.programs.turbovnc;
in
{
options = {
programs.turbovnc = {
ensureHeadlessSoftwareOpenGL = mkOption {
type = types.bool;
default = false;
description = ''
Whether to set up NixOS such that TurboVNC's built-in software OpenGL
implementation works.
This will enable <option>hardware.opengl.enable</option> so that OpenGL
programs can find Mesa's llvmpipe drivers.
Setting this option to <code>false</code> does not mean that software
OpenGL won't work; it may still work depending on your system
configuration.
This option is also intended to generate warnings if you are using some
configuration that's incompatible with using headless software OpenGL
in TurboVNC.
'';
};
};
};
config = mkIf cfg.ensureHeadlessSoftwareOpenGL {
# TurboVNC has builtin support for Mesa llvmpipe's `swrast`
# software rendering to implemnt GLX (OpenGL on Xorg).
# However, just building TurboVNC with support for that is not enough
# (it only takes care of the X server side part of OpenGL);
# the indiviudual applications (e.g. `glxgears`) also need to directly load
# the OpenGL libs.
# Thus, this creates `/run/opengl-driver` populated by Mesa so that the applications
# can find the llvmpipe `swrast.so` software rendering DRI lib via `libglvnd`.
# This comment exists to explain why `hardware.` is involved,
# even though 100% software rendering is used.
hardware.opengl.enable = true;
};
}

View file

@ -274,6 +274,15 @@ in
'';
};
etcSlurm = mkOption {
type = types.path;
internal = true;
default = etcSlurm;
description = ''
Path to directory with slurm config files. This option is set by default from the
Slurm module and is meant to make the Slurm config file available to other modules.
'';
};
};
@ -308,7 +317,7 @@ in
#!/bin/sh
if [ -z "$SLURM_CONF" ]
then
SLURM_CONF="${etcSlurm}/slurm.conf" "$EXE" "\$@"
SLURM_CONF="${cfg.etcSlurm}/slurm.conf" "$EXE" "\$@"
else
"$EXE" "\$0"
fi

View file

@ -28,7 +28,7 @@ let
unpack = id: (name: source:
pkgs.stdenv.mkDerivation {
name = "redmine-${id}-${name}";
buildInputs = [ pkgs.unzip ];
nativeBuildInputs = [ pkgs.unzip ];
buildCommand = ''
mkdir -p $out
cd $out

View file

@ -30,12 +30,49 @@ in
Whether to run the exporter as the local 'postgres' super user.
'';
};
# TODO perhaps LoadCredential would be more appropriate
environmentFile = mkOption {
type = types.nullOr types.path;
default = null;
example = "/root/prometheus-postgres-exporter.env";
description = ''
Environment file as defined in <citerefentry>
<refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum>
</citerefentry>.
Secrets may be passed to the service without adding them to the
world-readable Nix store, by specifying placeholder variables as
the option value in Nix and setting these variables accordingly in the
environment file.
Environment variables from this file will be interpolated into the
config file using envsubst with this syntax:
<literal>$ENVIRONMENT ''${VARIABLE}</literal>
The main use is to set the DATA_SOURCE_NAME that contains the
postgres password
note that contents from this file will override dataSourceName
if you have set it from nix.
<programlisting>
# Content of the environment file
DATA_SOURCE_NAME=postgresql://username:password@localhost:5432/postgres?sslmode=disable
</programlisting>
Note that this file needs to be available on the host on which
this exporter is running.
'';
};
};
serviceOpts = {
environment.DATA_SOURCE_NAME = cfg.dataSourceName;
serviceConfig = {
DynamicUser = false;
User = mkIf cfg.runAsLocalSuperUser (mkForce "postgres");
EnvironmentFile = mkIf (cfg.environmentFile != null) [ cfg.environmentFile ];
ExecStart = ''
${pkgs.prometheus-postgres-exporter}/bin/postgres_exporter \
--web.listen-address ${cfg.listenAddress}:${toString cfg.port} \

View file

@ -29,15 +29,14 @@ in {
};
};
# We use the 'out' output, since localtime has its 'bin' output
# first, so that is what we get if we use the derivation bare.
# Install the polkit rules.
environment.systemPackages = [ pkgs.localtime.out ];
environment.systemPackages = [ pkgs.localtime ];
# Install the systemd unit.
systemd.packages = [ pkgs.localtime.out ];
systemd.packages = [ pkgs.localtime ];
users.users.localtimed = {
description = "Taskserver user";
description = "localtime daemon";
isSystemUser = true;
};
systemd.services.localtime = {

View file

@ -0,0 +1,365 @@
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.services.bookstack;
bookstack = pkgs.bookstack.override {
dataDir = cfg.dataDir;
};
db = cfg.database;
mail = cfg.mail;
user = cfg.user;
group = cfg.group;
# shell script for local administration
artisan = pkgs.writeScriptBin "bookstack" ''
#! ${pkgs.runtimeShell}
cd ${bookstack}
sudo=exec
if [[ "$USER" != ${user} ]]; then
sudo='exec /run/wrappers/bin/sudo -u ${user}'
fi
$sudo ${pkgs.php}/bin/php artisan $*
'';
in {
options.services.bookstack = {
enable = mkEnableOption "BookStack";
user = mkOption {
default = "bookstack";
description = "User bookstack runs as.";
type = types.str;
};
group = mkOption {
default = "bookstack";
description = "Group bookstack runs as.";
type = types.str;
};
appKeyFile = mkOption {
description = ''
A file containing the AppKey.
Used for encryption where needed. Can be generated with <code>head -c 32 /dev/urandom| base64</code> and must be prefixed with <literal>base64:</literal>.
'';
example = "/run/keys/bookstack-appkey";
type = types.path;
};
appURL = mkOption {
description = ''
The root URL that you want to host BookStack on. All URLs in BookStack will be generated using this value.
If you change this in the future you may need to run a command to update stored URLs in the database. Command example: <code>php artisan bookstack:update-url https://old.example.com https://new.example.com</code>
'';
example = "https://example.com";
type = types.str;
};
cacheDir = mkOption {
description = "BookStack cache directory";
default = "/var/cache/bookstack";
type = types.path;
};
dataDir = mkOption {
description = "BookStack data directory";
default = "/var/lib/bookstack";
type = types.path;
};
database = {
host = mkOption {
type = types.str;
default = "localhost";
description = "Database host address.";
};
port = mkOption {
type = types.port;
default = 3306;
description = "Database host port.";
};
name = mkOption {
type = types.str;
default = "bookstack";
description = "Database name.";
};
user = mkOption {
type = types.str;
default = user;
defaultText = "\${user}";
description = "Database username.";
};
passwordFile = mkOption {
type = with types; nullOr path;
default = null;
example = "/run/keys/bookstack-dbpassword";
description = ''
A file containing the password corresponding to
<option>database.user</option>.
'';
};
createLocally = mkOption {
type = types.bool;
default = false;
description = "Create the database and database user locally.";
};
};
mail = {
driver = mkOption {
type = types.enum [ "smtp" "sendmail" ];
default = "smtp";
description = "Mail driver to use.";
};
host = mkOption {
type = types.str;
default = "localhost";
description = "Mail host address.";
};
port = mkOption {
type = types.port;
default = 1025;
description = "Mail host port.";
};
fromName = mkOption {
type = types.str;
default = "BookStack";
description = "Mail \"from\" name.";
};
from = mkOption {
type = types.str;
default = "mail@bookstackapp.com";
description = "Mail \"from\" email.";
};
user = mkOption {
type = with types; nullOr str;
default = null;
example = "bookstack";
description = "Mail username.";
};
passwordFile = mkOption {
type = with types; nullOr path;
default = null;
example = "/run/keys/bookstack-mailpassword";
description = ''
A file containing the password corresponding to
<option>mail.user</option>.
'';
};
encryption = mkOption {
type = with types; nullOr (enum [ "tls" ]);
default = null;
description = "SMTP encryption mechanism to use.";
};
};
maxUploadSize = mkOption {
type = types.str;
default = "18M";
example = "1G";
description = "The maximum size for uploads (e.g. images).";
};
poolConfig = mkOption {
type = with types; attrsOf (oneOf [ str int bool ]);
default = {
"pm" = "dynamic";
"pm.max_children" = 32;
"pm.start_servers" = 2;
"pm.min_spare_servers" = 2;
"pm.max_spare_servers" = 4;
"pm.max_requests" = 500;
};
description = ''
Options for the bookstack PHP pool. See the documentation on <literal>php-fpm.conf</literal>
for details on configuration directives.
'';
};
nginx = mkOption {
type = types.submodule (
recursiveUpdate
(import ../web-servers/nginx/vhost-options.nix { inherit config lib; }) {}
);
default = {};
example = {
serverAliases = [
"bookstack.\${config.networking.domain}"
];
# To enable encryption and let let's encrypt take care of certificate
forceSSL = true;
enableACME = true;
};
description = ''
With this option, you can customize the nginx virtualHost settings.
'';
};
extraConfig = mkOption {
type = types.nullOr types.lines;
default = null;
example = ''
ALLOWED_IFRAME_HOSTS="https://example.com"
WKHTMLTOPDF=/home/user/bins/wkhtmltopdf
'';
description = ''
Lines to be appended verbatim to the BookStack configuration.
Refer to <link xlink:href="https://www.bookstackapp.com/docs/"/> for details on supported values.
'';
};
};
config = mkIf cfg.enable {
assertions = [
{ assertion = db.createLocally -> db.user == user;
message = "services.bookstack.database.user must be set to ${user} if services.mediawiki.database.createLocally is set true.";
}
{ assertion = db.createLocally -> db.passwordFile == null;
message = "services.bookstack.database.passwordFile cannot be specified if services.bookstack.database.createLocally is set to true.";
}
];
environment.systemPackages = [ artisan ];
services.mysql = mkIf db.createLocally {
enable = true;
package = mkDefault pkgs.mariadb;
ensureDatabases = [ db.name ];
ensureUsers = [
{ name = db.user;
ensurePermissions = { "${db.name}.*" = "ALL PRIVILEGES"; };
}
];
};
services.phpfpm.pools.bookstack = {
inherit user;
inherit group;
phpOptions = ''
log_errors = on
post_max_size = ${cfg.maxUploadSize}
upload_max_filesize = ${cfg.maxUploadSize}
'';
settings = {
"listen.mode" = "0660";
"listen.owner" = user;
"listen.group" = group;
} // cfg.poolConfig;
};
services.nginx = {
enable = mkDefault true;
virtualHosts.bookstack = mkMerge [ cfg.nginx {
root = mkForce "${bookstack}/public";
extraConfig = optionalString (cfg.nginx.addSSL || cfg.nginx.forceSSL || cfg.nginx.onlySSL || cfg.nginx.enableACME) "fastcgi_param HTTPS on;";
locations = {
"/" = {
index = "index.php";
extraConfig = ''try_files $uri $uri/ /index.php?$query_string;'';
};
"~ \.php$" = {
extraConfig = ''
try_files $uri $uri/ /index.php?$query_string;
include ${pkgs.nginx}/conf/fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param REDIRECT_STATUS 200;
fastcgi_pass unix:${config.services.phpfpm.pools."bookstack".socket};
${optionalString (cfg.nginx.addSSL || cfg.nginx.forceSSL || cfg.nginx.onlySSL || cfg.nginx.enableACME) "fastcgi_param HTTPS on;"}
'';
};
"~ \.(js|css|gif|png|ico|jpg|jpeg)$" = {
extraConfig = "expires 365d;";
};
};
}];
};
systemd.services.bookstack-setup = {
description = "Preperation tasks for BookStack";
before = [ "phpfpm-bookstack.service" ];
after = optional db.createLocally "mysql.service";
wantedBy = [ "multi-user.target" ];
serviceConfig = {
Type = "oneshot";
User = user;
WorkingDirectory = "${bookstack}";
};
script = ''
# create .env file
echo "
APP_KEY=base64:$(head -n1 ${cfg.appKeyFile})
APP_URL=${cfg.appURL}
DB_HOST=${db.host}
DB_PORT=${toString db.port}
DB_DATABASE=${db.name}
DB_USERNAME=${db.user}
MAIL_DRIVER=${mail.driver}
MAIL_FROM_NAME=\"${mail.fromName}\"
MAIL_FROM=${mail.from}
MAIL_HOST=${mail.host}
MAIL_PORT=${toString mail.port}
${optionalString (mail.user != null) "MAIL_USERNAME=${mail.user};"}
${optionalString (mail.encryption != null) "MAIL_ENCRYPTION=${mail.encryption};"}
${optionalString (db.passwordFile != null) "DB_PASSWORD=$(head -n1 ${db.passwordFile})"}
${optionalString (mail.passwordFile != null) "MAIL_PASSWORD=$(head -n1 ${mail.passwordFile})"}
APP_SERVICES_CACHE=${cfg.cacheDir}/services.php
APP_PACKAGES_CACHE=${cfg.cacheDir}/packages.php
APP_CONFIG_CACHE=${cfg.cacheDir}/config.php
APP_ROUTES_CACHE=${cfg.cacheDir}/routes-v7.php
APP_EVENTS_CACHE=${cfg.cacheDir}/events.php
${optionalString (cfg.nginx.addSSL || cfg.nginx.forceSSL || cfg.nginx.onlySSL || cfg.nginx.enableACME) "SESSION_SECURE_COOKIE=true"}
${toString cfg.extraConfig}
" > "${cfg.dataDir}/.env"
# set permissions
chmod 700 "${cfg.dataDir}/.env"
# migrate db
${pkgs.php}/bin/php artisan migrate --force
# create caches
${pkgs.php}/bin/php artisan config:cache
${pkgs.php}/bin/php artisan route:cache
${pkgs.php}/bin/php artisan view:cache
'';
};
systemd.tmpfiles.rules = [
"d ${cfg.cacheDir} 0700 ${user} ${group} - -"
"d ${cfg.dataDir} 0710 ${user} ${group} - -"
"d ${cfg.dataDir}/public 0750 ${user} ${group} - -"
"d ${cfg.dataDir}/public/uploads 0750 ${user} ${group} - -"
"d ${cfg.dataDir}/storage 0700 ${user} ${group} - -"
"d ${cfg.dataDir}/storage/app 0700 ${user} ${group} - -"
"d ${cfg.dataDir}/storage/fonts 0700 ${user} ${group} - -"
"d ${cfg.dataDir}/storage/framework 0700 ${user} ${group} - -"
"d ${cfg.dataDir}/storage/framework/cache 0700 ${user} ${group} - -"
"d ${cfg.dataDir}/storage/framework/sessions 0700 ${user} ${group} - -"
"d ${cfg.dataDir}/storage/framework/views 0700 ${user} ${group} - -"
"d ${cfg.dataDir}/storage/logs 0700 ${user} ${group} - -"
"d ${cfg.dataDir}/storage/uploads 0700 ${user} ${group} - -"
];
users = {
users = mkIf (user == "bookstack") {
bookstack = {
inherit group;
isSystemUser = true;
};
"${config.services.nginx.user}".extraGroups = [ group ];
};
groups = mkIf (group == "bookstack") {
bookstack = {};
};
};
};
meta.maintainers = with maintainers; [ ymarkus ];
}

View file

@ -193,7 +193,7 @@ let
};
sourceRoot = ".";
# We need unzip to build this package
buildInputs = [ pkgs.unzip ];
nativeBuildInputs = [ pkgs.unzip ];
# Installing simply means copying all files to the output directory
installPhase = "mkdir -p $out; cp -R * $out/";
};
@ -220,7 +220,7 @@ let
sha256 = "4de5ff31d54dd61bbccaf092c9e74c1af3a4c53e07aa59f60457a8f00cfb23a6";
};
# We need unzip to build this package
buildInputs = [ pkgs.unzip ];
nativeBuildInputs = [ pkgs.unzip ];
# Installing simply means copying all files to the output directory
installPhase = "mkdir -p $out; cp -R * $out/";
};

View file

@ -109,7 +109,7 @@ let
sha256 = "1rhba5h5fjlhy8p05zf0p14c9iagfh96y91r36ni0rmk6y891lyd";
};
# We need unzip to build this package
buildInputs = [ pkgs.unzip ];
nativeBuildInputs = [ pkgs.unzip ];
# Installing simply means copying all files to the output directory
installPhase = "mkdir -p $out; cp -R * $out/";
};
@ -136,7 +136,7 @@ let
sha256 = "0rjwm811f4aa4q43r77zxlpklyb85q08f9c8ns2akcarrvj5ydx3";
};
# We need unzip to build this package
buildInputs = [ pkgs.unzip ];
nativeBuildInputs = [ pkgs.unzip ];
# Installing simply means copying all files to the output directory
installPhase = "mkdir -p $out; cp -R * $out/";
};

View file

@ -804,7 +804,7 @@ in
ProtectControlGroups = true;
RestrictAddressFamilies = [ "AF_UNIX" "AF_INET" "AF_INET6" ];
LockPersonality = true;
MemoryDenyWriteExecute = !(builtins.any (mod: (mod.allowMemoryWriteExecute or false)) cfg.package.modules);
MemoryDenyWriteExecute = !(builtins.any (mod: (mod.allowMemoryWriteExecute or false)) (optionals (cfg.package ? modules) cfg.package.modules));
RestrictRealtime = true;
RestrictSUIDSGID = true;
PrivateMounts = true;

View file

@ -408,6 +408,7 @@ in
trickster = handleTest ./trickster.nix {};
trilium-server = handleTestOn ["x86_64-linux"] ./trilium-server.nix {};
tuptime = handleTest ./tuptime.nix {};
turbovnc-headless-server = handleTest ./turbovnc-headless-server.nix {};
ucg = handleTest ./ucg.nix {};
udisks2 = handleTest ./udisks2.nix {};
unbound = handleTest ./unbound.nix {};

View file

@ -9,7 +9,7 @@ let
sha256 = "4de5ff31d54dd61bbccaf092c9e74c1af3a4c53e07aa59f60457a8f00cfb23a6";
};
# We need unzip to build this package
buildInputs = [ pkgs.unzip ];
nativeBuildInputs = [ pkgs.unzip ];
# Installing simply means copying all files to the output directory
installPhase = "mkdir -p $out; cp -R * $out/";
};
@ -24,7 +24,7 @@ let
sha256 = "e40ed7dd6bbe7fe3363bbbecb4de481d5e42385b5a0f62f6a6ce6bf3a1f9dfa8";
};
# We need unzip to build this package
buildInputs = [ pkgs.unzip ];
nativeBuildInputs = [ pkgs.unzip ];
sourceRoot = ".";
# Installing simply means copying all files to the output directory
installPhase = "mkdir -p $out; cp -R * $out/";

View file

@ -0,0 +1,171 @@
import ./make-test-python.nix ({ pkgs, lib, ... }: {
name = "turbovnc-headless-server";
meta = {
maintainers = with lib.maintainers; [ nh2 ];
};
machine = { pkgs, ... }: {
environment.systemPackages = with pkgs; [
glxinfo
procps # for `pkill`, `pidof` in the test
scrot # for screenshotting Xorg
turbovnc
];
programs.turbovnc.ensureHeadlessSoftwareOpenGL = true;
networking.firewall = {
# Reject instead of drop, for failures instead of hangs.
rejectPackets = true;
allowedTCPPorts = [
5900 # VNC :0, for seeing what's going on in the server
];
};
# So that we can ssh into the VM, see e.g.
# http://blog.patapon.info/nixos-local-vm/#accessing-the-vm-with-ssh
services.openssh.enable = true;
services.openssh.permitRootLogin = "yes";
users.extraUsers.root.password = "";
users.mutableUsers = false;
};
testScript = ''
def wait_until_terminated_or_succeeds(
termination_check_shell_command,
success_check_shell_command,
get_detail_message_fn,
retries=60,
retry_sleep=0.5,
):
def check_success():
command_exit_code, _output = machine.execute(success_check_shell_command)
return command_exit_code == 0
for _ in range(retries):
exit_check_exit_code, _output = machine.execute(termination_check_shell_command)
is_terminated = exit_check_exit_code != 0
if is_terminated:
if check_success():
return
else:
details = get_detail_message_fn()
raise Exception(
f"termination check ({termination_check_shell_command}) triggered without command succeeding ({success_check_shell_command}); details: {details}"
)
else:
if check_success():
return
time.sleep(retry_sleep)
if not check_success():
details = get_detail_message_fn()
raise Exception(
f"action timed out ({success_check_shell_command}); details: {details}"
)
# Below we use the pattern:
# (cmd | tee stdout.log) 3>&1 1>&2 2>&3 | tee stderr.log
# to capture both stderr and stdout while also teeing them, see:
# https://unix.stackexchange.com/questions/6430/how-to-redirect-stderr-and-stdout-to-different-files-and-also-display-in-termina/6431#6431
# Starts headless VNC server, backgrounding it.
def start_xvnc():
xvnc_command = " ".join(
[
"Xvnc",
":0",
"-iglx",
"-auth /root/.Xauthority",
"-geometry 1240x900",
"-depth 24",
"-rfbwait 5000",
"-deferupdate 1",
"-verbose",
"-securitytypes none",
# We don't enforce localhost listening such that we
# can connect from outside the VM using
# env QEMU_NET_OPTS=hostfwd=tcp::5900-:5900 $(nix-build nixos/tests/turbovnc-headless-server.nix -A driver)/bin/nixos-test-driver
# for testing purposes, and so that we can in the future
# add another test case that connects the TurboVNC client.
# "-localhost",
]
)
machine.execute(
# Note trailing & for backgrounding.
f"({xvnc_command} | tee /tmp/Xvnc.stdout) 3>&1 1>&2 2>&3 | tee /tmp/Xvnc.stderr &",
)
# Waits until the server log message that tells us that GLX is ready
# (requires `-verbose` above), avoiding screenshoting racing below.
def wait_until_xvnc_glx_ready():
machine.wait_until_succeeds("test -f /tmp/Xvnc.stderr")
wait_until_terminated_or_succeeds(
termination_check_shell_command="pidof Xvnc",
success_check_shell_command="grep 'GLX: Initialized DRISWRAST' /tmp/Xvnc.stderr",
get_detail_message_fn=lambda: "Contents of /tmp/Xvnc.stderr:\n"
+ machine.succeed("cat /tmp/Xvnc.stderr"),
)
# Checks that we detect glxgears failing when
# `LIBGL_DRIVERS_PATH=/nonexistent` is set
# (in which case software rendering should not work).
def test_glxgears_failing_with_bad_driver_path():
machine.execute(
# Note trailing & for backgrounding.
"(env DISPLAY=:0 LIBGL_DRIVERS_PATH=/nonexistent glxgears -info | tee /tmp/glxgears-should-fail.stdout) 3>&1 1>&2 2>&3 | tee /tmp/glxgears-should-fail.stderr &"
)
machine.wait_until_succeeds("test -f /tmp/glxgears-should-fail.stderr")
wait_until_terminated_or_succeeds(
termination_check_shell_command="pidof glxgears",
success_check_shell_command="grep 'libGL error: failed to load driver: swrast' /tmp/glxgears-should-fail.stderr",
get_detail_message_fn=lambda: "Contents of /tmp/glxgears-should-fail.stderr:\n"
+ machine.succeed("cat /tmp/glxgears-should-fail.stderr"),
)
machine.wait_until_fails("pidof glxgears")
# Starts glxgears, backgrounding it. Waits until it prints the `GL_RENDERER`.
# Does not quit glxgears.
def test_glxgears_prints_renderer():
machine.execute(
# Note trailing & for backgrounding.
"(env DISPLAY=:0 glxgears -info | tee /tmp/glxgears.stdout) 3>&1 1>&2 2>&3 | tee /tmp/glxgears.stderr &"
)
machine.wait_until_succeeds("test -f /tmp/glxgears.stderr")
wait_until_terminated_or_succeeds(
termination_check_shell_command="pidof glxgears",
success_check_shell_command="grep 'GL_RENDERER' /tmp/glxgears.stdout",
get_detail_message_fn=lambda: "Contents of /tmp/glxgears.stderr:\n"
+ machine.succeed("cat /tmp/glxgears.stderr"),
)
with subtest("Start Xvnc"):
start_xvnc()
wait_until_xvnc_glx_ready()
with subtest("Ensure bad driver path makes glxgears fail"):
test_glxgears_failing_with_bad_driver_path()
with subtest("Run 3D application (glxgears)"):
test_glxgears_prints_renderer()
# Take screenshot; should display the glxgears.
machine.succeed("scrot --display :0 /tmp/glxgears.png")
# Copy files down.
machine.copy_from_vm("/tmp/glxgears.png")
machine.copy_from_vm("/tmp/glxgears.stdout")
machine.copy_from_vm("/tmp/glxgears-should-fail.stdout")
machine.copy_from_vm("/tmp/glxgears-should-fail.stderr")
machine.copy_from_vm("/tmp/Xvnc.stdout")
machine.copy_from_vm("/tmp/Xvnc.stderr")
'';
})

View file

@ -0,0 +1,70 @@
{ lib
, stdenv
, fetchFromGitLab
, meson
, ninja
, pkg-config
, gnome3
, glib
, gtk3
, wayland
, wayland-protocols
, libxml2
, libxkbcommon
, rustPlatform
, feedbackd
, wrapGAppsHook
}:
stdenv.mkDerivation rec {
pname = "squeekboard";
version = "unstable-2021-03-09";
src = fetchFromGitLab {
domain = "source.puri.sm";
owner = "Librem5";
repo = pname;
rev = "bffd212e102bf71a94c599aac0359a8d30d19008";
sha256 = "1j10zhyb8wyrcbryfj6f3drn9b0l9x0l7hnhy2imnjbfbnwwm4w7";
};
cargoDeps = rustPlatform.fetchCargoTarball {
inherit src;
cargoUpdateHook = ''
cat Cargo.toml.in Cargo.deps > Cargo.toml
'';
name = "${pname}-${version}";
sha256 = "1qaqiaxqc4x2x5bd31na4c49vbjwrmz5clmgli7733dv55rxxias";
};
nativeBuildInputs = [
meson
ninja
pkg-config
glib
wayland
wrapGAppsHook
] ++ (with rustPlatform; [
cargoSetupHook
rust.cargo
rust.rustc
]);
buildInputs = [
gtk3
gnome3.gnome-desktop
wayland
wayland-protocols
libxml2
libxkbcommon
feedbackd
];
meta = with lib; {
description = "A virtual keyboard supporting Wayland";
homepage = "https://source.puri.sm/Librem5/squeekboard";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ artturin ];
platforms = platforms.linux;
};
}

View file

@ -8,7 +8,6 @@
, doxygen
, fftwSinglePrec
, flac
, glibc
, glibmm
, graphviz
, gtkmm2

View file

@ -11,14 +11,14 @@
stdenv.mkDerivation rec {
pname = "callaudiod";
version = "0.0.4";
version = "0.1.0";
src = fetchFromGitLab {
domain = "gitlab.com";
owner = "mobian1";
repo = pname;
rev = version;
sha256 = "07k7xp5a9c4d4lq7amaj6cg6b3gsd77x9wvf7nzcf4vpaph4yiyj";
sha256 = "087589z45xvldn2m1g79y0xbwzylwkjmfk83s5xjixyq0wqmfppd";
};
nativeBuildInputs = [

View file

@ -8,13 +8,13 @@
}:
stdenv.mkDerivation rec {
pname = "cheesecutter";
version = "unstable-2020-04-03";
version = "unstable-2021-02-27";
src = fetchFromGitHub {
owner = "theyamo";
repo = "CheeseCutter";
rev = "68d6518f0e6249a2a5d122fc80201578337c1277";
sha256 = "0xspzjhc6cp3m0yd0mwxncg8n1wklizamxvidrnn21jgj3mnaq2q";
rev = "84450d3614b8fb2cabda87033baab7bedd5a5c98";
sha256 = "sha256:0q4a791nayya6n01l0f4kk497rdq6kiq0n72fqdpwqy138pfwydn";
};
patches = [

View file

@ -8,7 +8,8 @@ stdenv.mkDerivation rec {
sha256 = "0n86gwh9pw0jqqpdz7mxggllfr8k0r7pc67ayy7w5z6z79kig6mz";
};
buildInputs = [ unzip portaudio ];
nativeBuildInputs = [ unzip ];
buildInputs = [ portaudio ];
patches = [
./gcc6.patch

View file

@ -8,8 +8,8 @@ stdenv.mkDerivation rec {
sha256 = "0x8s7vpb7rw5x37yjzy1f98m4f2csdg89libb74fm36gn8ly0hli";
};
nativeBuildInputs = [ pkg-config ];
buildInputs = [ unzip portaudio wxGTK ];
nativeBuildInputs = [ pkg-config unzip ];
buildInputs = [ portaudio wxGTK ];
# TODO:
# Uhm, seems like espeakedit still wants espeak-data/ in $HOME, even thought

View file

@ -75,5 +75,7 @@ stdenv.mkDerivation rec {
license = licenses.gpl3Plus;
maintainers = teams.gnome.members;
platforms = platforms.unix;
# couldn't read /build/source/build/podcasts-gtk/resources/resources.gresource: No such file or directory (os error 2)
broken = true;
};
}

View file

@ -7,7 +7,8 @@ stdenv.mkDerivation {
sha256 = "0varr6y7k8zarr56b42r0ad9g3brhn5vv3xjg1c0v19jxwr4gh2w";
};
buildInputs = [ unzip mpg123 ];
nativeBuildInputs = [ unzip ];
buildInputs = [ mpg123 ];
sourceRoot = ".";

View file

@ -7,11 +7,11 @@
}:
stdenv.mkDerivation rec {
name = "mpg123-1.26.3";
name = "mpg123-1.26.4";
src = fetchurl {
url = "mirror://sourceforge/mpg123/${name}.tar.bz2";
sha256 = "0vkcfdx0mqq6lmpczsmpa2jsb0s6dryx3i7gvr32i3w9b9w9ij9h";
sha256 = "sha256-CBmRVA33pmaykEmthw8pPPoohjs2SIq01Yzqp7WEZFQ=";
};
outputs = [ "out" "conplay" ];

View file

@ -10,7 +10,8 @@ stdenv.mkDerivation {
sha256 = "0h1fj7lmvq9j6rmw33rb8k0byxb898bi2xhcwkqalb84avhywgvs";
};
buildInputs = [ unzip puredata ];
nativeBuildInputs = [ unzip ];
buildInputs = [ puredata ];
unpackPhase = ''
unzip $src

View file

@ -10,7 +10,8 @@ stdenv.mkDerivation rec {
sha256 = "1h7qgqd8srrxw2y1rkdw5js4k6f5vc8x6nlm2mq9mq9vjck7n1j7";
};
buildInputs = [ unzip puredata ];
nativeBuildInputs = [ unzip ];
buildInputs = [ puredata ];
unpackPhase = ''
unzip $src

View file

@ -9,7 +9,8 @@ stdenv.mkDerivation rec {
sha256 = "14k2xk5zrzrw1zprdbwx45hrlc7ck8vq4drpd3l455i5r8yk4y6b";
};
buildInputs = [ unzip puredata fftw ];
nativeBuildInputs = [ unzip ];
buildInputs = [ puredata fftw ];
unpackPhase = ''
mkdir source

View file

@ -2,13 +2,13 @@
let
pname = "plexamp";
version = "3.4.3";
version = "3.4.4";
name = "${pname}-${version}";
src = fetchurl {
url = "https://plexamp.plex.tv/plexamp.plex.tv/desktop/Plexamp-${version}.AppImage";
name="${pname}-${version}.AppImage";
sha256 = "1rzhrc5yr5f6bxydgmcjwrg85vkbkn6lqj72512lyhq5gg7zmm1w";
sha256 = "1iz6qi12ljafb49l73rba5rwi5sdbd8ck5h2r6jiy260lgr2iiyk";
};
appimageContents = appimageTools.extractType2 {
@ -32,7 +32,7 @@ in appimageTools.wrapType2 {
meta = with lib; {
description = "A beautiful Plex music player for audiophiles, curators, and hipsters";
homepage = "https://plexamp.com/";
changelog = "https://forums.plex.tv/t/plexamp-release-notes/221280/25";
changelog = "https://forums.plex.tv/t/plexamp-release-notes/221280/26";
license = licenses.unfree;
maintainers = with maintainers; [ killercup synthetica ];
platforms = [ "x86_64-linux" ];

View file

@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
}
else
releasePath
else throw "Platform is not supported by Renoise";
else throw "Platform is not supported. Use instalation native to your platform https://www.renoise.com/";
buildInputs = [ alsaLib libjack2 libX11 libXcursor libXext libXrandr ];
@ -47,6 +47,16 @@ stdenv.mkDerivation rec {
mkdir $out/bin
ln -s $out/renoise $out/bin/renoise
# Desktop item
mkdir -p $out/share/applications
cp -r Installer/renoise.desktop $out/share/applications/renoise.desktop
# Desktop item icons
mkdir -p $out/share/icons/hicolor/{48x48,64x64,128x128}/apps
cp Installer/renoise-48.png $out/share/icons/hicolor/48x48/apps/renoise.png
cp Installer/renoise-64.png $out/share/icons/hicolor/64x64/apps/renoise.png
cp Installer/renoise-128.png $out/share/icons/hicolor/128x128/apps/renoise.png
'';
postFixup = ''
@ -61,6 +71,9 @@ stdenv.mkDerivation rec {
--set-rpath $out/lib \
$path
done
substituteInPlace $out/share/applications/renoise.desktop \
--replace Exec=renoise Exec=$out/bin/renoise
'';
meta = {

View file

@ -5,11 +5,11 @@
mkDerivation rec {
pname = "samplv1";
version = "0.9.18";
version = "0.9.20";
src = fetchurl {
url = "mirror://sourceforge/samplv1/${pname}-${version}.tar.gz";
sha256 = "ePhM9OTLJp1Wa2D9Y1Dqq/69WlEhEp3ih9yNUIJU5Y4=";
sha256 = "sha256-9tm72lV9i/155TVweNwO2jpPsCJkh6r82g7Z1wCI1ho=";
};
nativeBuildInputs = [ qttools pkg-config ];

View file

@ -35,13 +35,13 @@
mkDerivation rec {
pname = "strawberry";
version = "0.8.5";
version = "0.9.1";
src = fetchFromGitHub {
owner = "jonaski";
repo = pname;
rev = version;
sha256 = "sha256-+ZQ80J94Teqt4Gy6fw/pS7FwILK/TPehtJDy72Bdy1E=";
sha256 = "sha256-1aXHMvjLK5WiE0mut/a3ynuMfNHgPbUzAZdmaVJBDXQ=";
};
buildInputs = [

View file

@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
sha256 = "0lqzr68n2c6aifw2vbyars91wn1chmgb9xfdk463g4vjqiava3ih";
};
buildInputs = [ unzip ];
nativeBuildInputs = [ unzip ];
unpackPhase = "unzip $src";
@ -44,5 +44,7 @@ stdenv.mkDerivation rec {
homepage = "http://www.warmplace.ru/soft/sunvox/";
maintainers = with maintainers; [ puffnfresh ];
platforms = [ "i686-linux" "x86_64-linux" ];
# hash mismatch
broken = true;
};
}

View file

@ -4,13 +4,13 @@
stdenv.mkDerivation rec {
pname = "surge";
version = "1.7.1";
version = "1.8.1";
src = fetchFromGitHub {
owner = "surge-synthesizer";
repo = pname;
rev = "release_${version}";
sha256 = "1b3ccc78vrpzy18w7070zfa250dnd1bww147xxcnj457vd6n065s";
sha256 = "0lla860g7zgn9n1zgy14g4j72d5n5y7isyxz2w5xy2fzdpdg24ql";
leaveDotGit = true; # for SURGE_VERSION
fetchSubmodules = true;
};
@ -20,9 +20,10 @@ stdenv.mkDerivation rec {
postPatch = ''
substituteInPlace src/common/SurgeStorage.cpp --replace "/usr/share/Surge" "$out/share/surge"
substituteInPlace src/common/gui/PopupEditorDialog.cpp --replace '"zenity' '"${zenity}/bin/zenity'
substituteInPlace src/linux/UserInteractionsLinux.cpp --replace '"zenity' '"${zenity}/bin/zenity'
substituteInPlace vstgui.surge/vstgui/lib/platform/linux/x11fileselector.cpp --replace /usr/bin/zenity ${zenity}/bin/zenity
patchShebangs scripts/linux/emit-vector-piggy
patchShebangs scripts/linux/generate-lv2-ttl
'';
installPhase = ''

View file

@ -2,12 +2,12 @@
let
pname = "ledger-live-desktop";
version = "2.23.0";
version = "2.24.0";
name = "${pname}-${version}";
src = fetchurl {
url = "https://github.com/LedgerHQ/${pname}/releases/download/v${version}/${pname}-${version}-linux-x86_64.AppImage";
sha256 = "0id9zbpfq3knv8qwkhplbl9pwrvdkn212pafwh4vpjbbp4yimhq5";
sha256 = "1xdqj825vwh3kg35v7568zr1jhvldb4wcazzgzcaawkr4qzfdb2n";
};
appimageContents = appimageTools.extractType2 {

View file

@ -10,15 +10,13 @@
, randomx, zeromq, libgcrypt, libgpgerror
, hidapi, rapidjson, quirc
, trezorSupport ? true
, libusb1 ? null
, protobuf ? null
, python3 ? null
, libusb1
, protobuf
, python3
}:
with lib;
assert trezorSupport -> all (x: x!=null) [ libusb1 protobuf python3 ];
let
arch = if stdenv.isx86_64 then "x86-64"
else if stdenv.isi686 then "i686"

View file

@ -65,9 +65,9 @@ let
sha256 = sha256Hash;
};
nativeBuildInputs = [ unzip ];
buildInputs = [
makeWrapper
unzip
];
installPhase = ''
cp -r . $out

View file

@ -9,18 +9,18 @@ let
inherit buildFHSUserEnv;
};
stableVersion = {
version = "4.1.2.0"; # "Android Studio 4.1.2"
build = "201.7042882";
sha256Hash = "1f9bclvyvm3sg9an7wxlfwd8jwnb9cl726dvggmysa6r7shc7xw9";
version = "4.1.3.0"; # "Android Studio 4.1.3"
build = "201.7199119";
sha256Hash = "06xwgk7bwcmljka8xa56cfwwg858r0bl0xp2jb9hdnkwljf796gm";
};
betaVersion = {
version = "4.2.0.21"; # "Android Studio 4.2 Beta 5"
build = "202.7141121";
sha256Hash = "05610xf9zz3yxarx6fv83fynlvqw9jl7h2a40yj3xx5kb7mzdnf2";
version = "4.2.0.22"; # "Android Studio 4.2 Beta 6"
build = "202.7188722";
sha256Hash = "0mzwkx1csx194wzg7dc1cii3c16wbmlbq1jdv9ly4nmdxlvc2rxb";
};
latestVersion = { # canary & dev
version = "2020.3.1.7"; # "Android Studio Arctic Fox (2020.3.1) Canary 7"
sha256Hash = "03gq4s8rmg7si0r2y1w26v9bjwhj6gzmrdny5z3j5pq8xsfjfqiw";
version = "2020.3.1.10"; # "Android Studio Arctic Fox (2020.3.1) Canary 10"
sha256Hash = "15xxyjjjy5pnimc66dcwnqb7z4lq7ll4fl401a3br5ca4d1hpgsj";
};
in {
# Attributes are named by their corresponding release channels

View file

@ -2,39 +2,39 @@
stdenv.mkDerivation {
pname = "edit-nightly";
version = "20160425";
version = "20180228";
src = fetchgit {
url = "git://c9x.me/ed.git";
rev = "323d49b68c5e804ed3b8cada0e2274f1589b3484";
sha256 = "0wv8i3ii7cd9bqhjpahwp2g5fcmyk365nc7ncmvl79cxbz3f7y8v";
rev = "77d96145b163d79186c722a7ffccfff57601157c";
sha256 = "0rsmp7ydmrq3xx5q19566is9a2v2w5yfsphivfc7j4ljp32jlyyy";
};
buildInputs = [
nativeBuildInputs = [
unzip
pkg-config
ncurses
libX11
libXft
cwebbin
];
buildPhase = ''
buildInputs = [
ncurses
libX11
libXft
];
preBuild = ''
ctangle *.w
make
'';
installPhase = ''
mkdir -p $out/bin/
cp obj/edit $out/bin/edit
install -Dm755 obj/edit -t $out/bin
'';
meta = with lib; {
description = "A relaxing mix of Vi and ACME";
homepage = "http://c9x.me/edit";
homepage = "https://c9x.me/edit";
license = licenses.publicDomain;
maintainers = [ maintainers.vrthra ];
platforms = platforms.linux;
platforms = platforms.all;
};
}

View file

@ -3,7 +3,8 @@
stdenv.mkDerivation rec {
name = "fte-0.50.02";
buildInputs = [ unzip perl libX11 libXpm gpm ncurses slang ];
nativeBuildInputs = [ unzip ];
buildInputs = [ perl libX11 libXpm gpm ncurses slang ];
ftesrc = fetchurl {
url = "mirror://sourceforge/fte/fte-20110708-src.zip";

View file

@ -337,7 +337,7 @@ in
name = "mps-${version}";
version = "2020.3.1"; /* updated by script */
description = "Create your own domain-specific language";
license = lib.licenses.unfree;
license = lib.licenses.asl20;
src = fetchurl {
url = "https://download.jetbrains.com/mps/2020.3/MPS-${version}.tar.gz";
sha256 = "0qvl724mm53rxfhafl6561rhpwppcadmwr9sh0hpsfgsprh2xznv"; /* updated by script */

View file

@ -1,5 +1,5 @@
#!/usr/bin/env nix-shell
#!nix-shell -i perl -p perl perlPackages.LWPProtocolhttps perlPackages.FileSlurp
#!nix-shell -i perl -p perl perlPackages.LWPProtocolHttps perlPackages.FileSlurp
use strict;
use List::Util qw(reduce);

View file

@ -34,10 +34,10 @@ stdenv.mkDerivation rec {
patchFlags = [ "-p2" ];
patches = [ ./git-revert-12d610fb3f6dce121df538e36f21d8c2eeb0a6e3.patch ];
nativeBuildInputs = [ pkg-config ];
nativeBuildInputs = [ pkg-config unzip ];
buildInputs = [
autoconf automake shared-mime-info intltool
mono gtk-sharp-2_0 gnome-sharp unzip
mono gtk-sharp-2_0 gnome-sharp
dotnetPackages.NUnit
dotnetPackages.NUnitRunners
dotnetPackages.Nuget

View file

@ -56,8 +56,8 @@ stdenv.mkDerivation {
ln -s ${desktopItem}/share/applications/* $out/share/applications
'';
nativeBuildInputs = [ makeWrapper ];
buildInputs = [ perl python unzip libicns imagemagick ];
nativeBuildInputs = [ makeWrapper unzip ];
buildInputs = [ perl python libicns imagemagick ];
meta = {
description = "An integrated development environment for Java, C, C++ and PHP";

View file

@ -4,9 +4,9 @@ stdenv.mkDerivation rec {
version = "10.8";
pname = "textadept";
nativeBuildInputs = [ pkg-config ];
nativeBuildInputs = [ pkg-config unzip ];
buildInputs = [
gtk2 ncurses glib unzip zip
gtk2 ncurses glib zip
];
src = fetchhg {

View file

@ -4,9 +4,9 @@ stdenv.mkDerivation rec {
version = "11.0_beta";
pname = "textadept11";
nativeBuildInputs = [ pkg-config ];
nativeBuildInputs = [ pkg-config unzip ];
buildInputs = [
gtk2 ncurses glib unzip zip
gtk2 ncurses glib zip
];
src = fetchFromGitHub {

View file

@ -1,5 +1,5 @@
{ stdenv, lib, makeDesktopItem
, unzip, libsecret, libXScrnSaver, wrapGAppsHook
, unzip, libsecret, libXScrnSaver, libxshmfence, wrapGAppsHook
, gtk2, atomEnv, at-spi2-atk, autoPatchelfHook
, systemd, fontconfig, libdbusmenu
@ -60,14 +60,12 @@ in
'';
};
buildInputs = (if stdenv.isDarwin
then [ unzip ]
else [ gtk2 at-spi2-atk wrapGAppsHook ] ++ atomEnv.packages)
++ [ libsecret libXScrnSaver ];
buildInputs = [ libsecret libXScrnSaver libxshmfence ]
++ lib.optionals (!stdenv.isDarwin) ([ gtk2 at-spi2-atk wrapGAppsHook ] ++ atomEnv.packages);
runtimeDependencies = lib.optional (stdenv.isLinux) [ (lib.getLib systemd) fontconfig.lib libdbusmenu ];
nativeBuildInputs = lib.optional (!stdenv.isDarwin) autoPatchelfHook;
nativeBuildInputs = [unzip] ++ lib.optional (!stdenv.isDarwin) autoPatchelfHook;
dontBuild = true;
dontConfigure = true;

View file

@ -58,8 +58,8 @@ stdenv.mkDerivation rec {
comment = "The bridge between designers and developers";
};
nativeBuildInputs = [makeWrapper wrapGAppsHook];
buildInputs = [ unzip gtk3 gnome3.adwaita-icon-theme ];
nativeBuildInputs = [makeWrapper wrapGAppsHook unzip];
buildInputs = [ gtk3 gnome3.adwaita-icon-theme ];
# src is producing multiple folder on unzip so we must
# override unpackCmd to extract it into newly created folder

View file

@ -21,13 +21,13 @@
stdenv.mkDerivation rec {
pname = "fondo";
version = "1.5.1";
version = "1.5.2";
src = fetchFromGitHub {
owner = "calo001";
repo = pname;
rev = version;
sha256 = "sha256-eGHgZm9Q6JnY6OQNAyrFvRsuyuFnruMJNckOCCiO4Ug=";
sha256 = "sha256-EATZRmYSGUzWYaPqFT4mLTGGvwUp+Mn93yMF2JsPaYo=";
};
nativeBuildInputs = [

View file

@ -1,48 +1,114 @@
{ lib, mkDerivation, fetchFromGitHub, fetchpatch, cmake, ninja, coin3d,
xercesc, ode, eigen, qtbase, qttools, qtwebengine, qtxmlpatterns, wrapQtAppsHook,
opencascade-occt, gts, hdf5, vtk, medfile, zlib, python3Packages, swig,
gfortran, libXmu, soqt, libf2c, libGLU, makeWrapper, pkg-config, mpi,
spaceNavSupport ? true, libspnav, qtx11extras }:
{ lib
, mkDerivation
, fetchFromGitHub
, fetchpatch
, cmake
, ninja
, GitPython
, boost
, coin3d
, eigen
, gfortran
, gts
, hdf5
, libGLU
, libXmu
, libf2c
, libspnav
, matplotlib
, medfile
, mpi
, ode
, opencascade-occt
, pivy
, pkg-config
, pycollada
, pyside2
, pyside2-tools
, python
, pyyaml
, qtbase
, qttools
, qtwebengine
, qtx11extras
, qtxmlpatterns
, scipy
, shiboken2
, soqt
, spaceNavSupport ? true
, swig
, vtk
, wrapQtAppsHook
, xercesc
, zlib
}:
let
pythonPackages = python3Packages;
in mkDerivation rec {
pname = "freecad-unstable";
version = "2020-12-08";
mkDerivation rec {
pname = "freecad";
version = "0.19.1";
src = fetchFromGitHub {
owner = "FreeCAD";
repo = "FreeCAD";
rev = "daea30341ea2d5eaf2bfb65614128a5fa2abc8b7";
sha256 = "1fza64lygqq35v7kzgqmiq5dvl5rpgkhlzv06f9dszdz44hznina";
rev = version;
hash = "sha256-itIrO+/mKXOPNs+2POKT8u4YZuqx/QAwVBWrHgKP1qQ=";
};
nativeBuildInputs = [
cmake
ninja
pkg-config
pythonPackages.pyside2-tools
pyside2-tools
wrapQtAppsHook
];
buildInputs = [
coin3d xercesc ode eigen opencascade-occt gts
zlib swig gfortran soqt libf2c makeWrapper mpi vtk hdf5 medfile
libGLU libXmu qtbase qttools qtwebengine qtxmlpatterns
] ++ (with pythonPackages; [
matplotlib pycollada shiboken2 pyside2 pyside2-tools pivy python boost
GitPython # for addon manager
scipy pyyaml # (at least for) PyrateWorkbench
]) ++ lib.optionals spaceNavSupport [ libspnav qtx11extras ];
boost
coin3d
eigen
gfortran
gts
hdf5
libGLU
libXmu
libf2c
matplotlib
medfile
mpi
ode
opencascade-occt
pivy
pycollada
pyside2
pyside2-tools
python
pyyaml # (at least for) PyrateWorkbench
qtbase
qttools
qtwebengine
qtxmlpatterns
scipy
shiboken2
soqt
swig
vtk
xercesc
zlib
] ++ lib.optionals spaceNavSupport [
libspnav
qtx11extras
];
cmakeFlags = [
"-DBUILD_FLAT_MESH:BOOL=ON"
"-DBUILD_QT5=ON"
"-DSHIBOKEN_INCLUDE_DIR=${pythonPackages.shiboken2}/include"
"-DSHIBOKEN_INCLUDE_DIR=${shiboken2}/include"
"-DSHIBOKEN_LIBRARY=Shiboken2::libshiboken"
("-DPYSIDE_INCLUDE_DIR=${pythonPackages.pyside2}/include"
+ ";${pythonPackages.pyside2}/include/PySide2/QtCore"
+ ";${pythonPackages.pyside2}/include/PySide2/QtWidgets"
+ ";${pythonPackages.pyside2}/include/PySide2/QtGui"
("-DPYSIDE_INCLUDE_DIR=${pyside2}/include"
+ ";${pyside2}/include/PySide2/QtCore"
+ ";${pyside2}/include/PySide2/QtWidgets"
+ ";${pyside2}/include/PySide2/QtGui"
)
"-DPYSIDE_LIBRARY=PySide2::pyside2"
];
@ -65,13 +131,31 @@ in mkDerivation rec {
postFixup = ''
mv $out/share/doc $out
ln -s $out/bin/FreeCAD $out/bin/freecad
ln -s $out/bin/FreeCADCmd $out/bin/freecadcmd
'';
meta = with lib; {
description = "General purpose Open Source 3D CAD/MCAD/CAx/CAE/PLM modeler";
homepage = "https://www.freecadweb.org/";
description = "General purpose Open Source 3D CAD/MCAD/CAx/CAE/PLM modeler";
longDescription = ''
FreeCAD is an open-source parametric 3D modeler made primarily to design
real-life objects of any size. Parametric modeling allows you to easily
modify your design by going back into your model history and changing its
parameters.
FreeCAD allows you to sketch geometry constrained 2D shapes and use them
as a base to build other objects. It contains many components to adjust
dimensions or extract design details from 3D models to create high quality
production ready drawings.
FreeCAD is designed to fit a wide range of uses including product design,
mechanical engineering and architecture. Whether you are a hobbyist, a
programmer, an experienced CAD user, a student or a teacher, you will feel
right at home with FreeCAD.
'';
license = licenses.lgpl2Plus;
maintainers = with maintainers; [ viric gebner ];
maintainers = with maintainers; [ viric gebner AndersonTorres ];
platforms = platforms.linux;
};
}

View file

@ -1,6 +1,7 @@
{ stdenv
, lib
, fetchurl
, fetchpatch
, substituteAll
, autoreconfHook
, pkg-config
@ -72,6 +73,12 @@ in stdenv.mkDerivation rec {
# Use absolute paths instead of relying on PATH
# to make sure plug-ins are loaded by the correct interpreter.
./hardcode-plugin-interpreters.patch
# Fix crash without dot.
(fetchpatch {
url = "https://gitlab.gnome.org/GNOME/gimp/-/commit/f83fd22c4b8701ffc4ce14383e5e22756a4bce04.patch";
sha256 = "POuvBhOSStO7hBGp4HgNx5F9pElFRoqN3W+i3u4zOnk=";
})
];
nativeBuildInputs = [

View file

@ -15,8 +15,7 @@ let
url = "https://wsr.imagej.net/distros/cross-platform/ij150.zip";
sha256 = "97aba6fc5eb908f5160243aebcdc4965726693cb1353d9c0d71b8f5dd832cb7b";
};
nativeBuildInputs = [ makeWrapper ];
buildInputs = [ unzip ];
nativeBuildInputs = [ makeWrapper unzip ];
inherit jre;
# JAR files that are intended to be used by other packages

View file

@ -1,31 +1,53 @@
{ lib
, mkDerivation
, fetchFromGitHub
, fetchurl
, qmake
, qttools
, zlib
}:
/*
To use aditional parts libraries
set the variable LEOCAD_LIB=/path/to/libs/ or use option -l /path/to/libs/
*/
{ lib, stdenv, fetchFromGitHub, qt4, qmake4Hook, zlib }:
let
parts = fetchurl {
url = "https://web.archive.org/web/20190715142541/https://www.ldraw.org/library/updates/complete.zip";
sha256 = "sha256-PW3XCbFwRaNkx4EgCnl2rXH7QgmpNgjTi17kZ5bladA=";
};
stdenv.mkDerivation rec {
in
mkDerivation rec {
pname = "leocad";
version = "19.07.1";
version = "21.03";
src = fetchFromGitHub {
owner = "leozide";
repo = "leocad";
rev = "v${version}";
sha256 = "02kv1m18g6s4dady9jv4sjivfkrp192bmdw2a3d9lzlp60zks0p2";
sha256 = "sha256-69Ocfk5dBXwcRqAZWEP9Xg41o/tAQo76dIOk9oYhCUE=";
};
nativeBuildInputs = [ qmake4Hook ];
buildInputs = [ qt4 zlib ];
postPatch = ''
export qmakeFlags="$qmakeFlags INSTALL_PREFIX=$out"
'';
nativeBuildInputs = [ qmake qttools ];
buildInputs = [ zlib ];
qmakeFlags = [
"INSTALL_PREFIX=${placeholder "out"}"
"DISABLE_UPDATE_CHECK=1"
];
qtWrapperArgs = [
"--set-default LEOCAD_LIB ${parts}"
];
meta = with lib; {
description = "CAD program for creating virtual LEGO models";
homepage = "https://www.leocad.org/";
license = licenses.gpl2;
license = licenses.gpl2Only;
maintainers = with maintainers; [ peterhoeg ];
platforms = platforms.linux;
};
}

View file

@ -6,7 +6,8 @@ stdenv.mkDerivation rec {
url = "mirror://sourceforge/zvtm/${pname}/${version}/${pname}-${version}.zip";
sha256 = "1yg2rck81sqqrgfi5kn6c1bz42dr7d0zqpcsdjhicssi1y159f23";
};
buildInputs = [jre unzip];
nativeBuildInputs = [ unzip ];
buildInputs = [jre];
buildPhase = "";
installPhase = ''
mkdir -p "$out"/{bin,share/java/zvtm/plugins,share/doc/zvtm}

View file

@ -1 +1 @@
WGET_ARGS=( http://download.kde.org/stable/release-service/20.12.1/src -A '*.tar.xz' )
WGET_ARGS=( http://download.kde.org/stable/release-service/20.12.2/src -A '*.tar.xz' )

File diff suppressed because it is too large Load diff

View file

@ -8,11 +8,11 @@
stdenv.mkDerivation rec {
pname = "1password";
version = "8.0.27";
version = "8.0.28";
src = fetchurl {
url = "https://onepassword.s3.amazonaws.com/linux/appimage/${pname}-${version}.AppImage";
hash = "sha256-qzZXs7ak4052Igq+YWuzgDqJ7143q5qw5P3b3eN3NkU=";
hash = "sha256-okLeyok/5rihGXaQaUR06dGkpuqqW02qJ6q6VVLtZsE=";
};
nativeBuildInputs = [ makeWrapper ];

View file

@ -0,0 +1,79 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Misty De Meo <mistydemeo@gmail.com>
Date: Tue, 15 Sep 2020 16:57:26 -0700
Subject: [PATCH] Check for __arm64__, not just __arm__
On at least one 64-bit ARM processor I've tested (Apple Silicon on macOS),
__arm__ isn't defined but __arm64__ is. As a result, some of the
ARM-specific macros are missing and calls to them fail.
---
src/cr-core.c | 2 +-
src/dev32s.h | 2 +-
src/pffft-wrap.c | 2 +-
src/pffft.c | 4 ++--
4 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/src/cr-core.c b/src/cr-core.c
index 159a5d9..fe5ea8a 100644
--- a/src/cr-core.c
+++ b/src/cr-core.c
@@ -80,7 +80,7 @@ static void cubic_stage_fn(stage_t * p, fifo_t * output_fifo)
#define DEFINED_X86 0
#endif
-#if defined __arm__
+#if defined(__arm__) || defined(__arm64__)
#define DEFINED_ARM 1
#else
#define DEFINED_ARM 0
diff --git a/src/dev32s.h b/src/dev32s.h
index 7edae86..a14d7ad 100644
--- a/src/dev32s.h
+++ b/src/dev32s.h
@@ -31,7 +31,7 @@ SIMD_INLINE(void) vStorSum(float * a, v4_t b) {
v4_t t = vAdd(_mm_movehl_ps(b, b), b);
_mm_store_ss(a, vAdd(t, _mm_shuffle_ps(t,t,1)));}
-#elif defined __arm__
+#elif defined(__arm__) || defined(__arm64__)
#include <arm_neon.h>
diff --git a/src/pffft-wrap.c b/src/pffft-wrap.c
index c920f06..1641fc4 100644
--- a/src/pffft-wrap.c
+++ b/src/pffft-wrap.c
@@ -40,7 +40,7 @@ static void pffft_zconvolve(PFFFT_Setup *s, const float *a, const float *b, floa
float ar, ai, br, bi;
-#ifdef __arm__
+#if defined(__arm__) || defined(__arm64__)
__builtin_prefetch(va);
__builtin_prefetch(vb);
__builtin_prefetch(va+2);
diff --git a/src/pffft.c b/src/pffft.c
index 46c841e..8c775a9 100644
--- a/src/pffft.c
+++ b/src/pffft.c
@@ -157,7 +157,7 @@ typedef __m128 v4sf;
/*
ARM NEON support macros
*/
-#elif !defined(PFFFT_SIMD_DISABLE) && defined(__arm__)
+#elif !defined(PFFFT_SIMD_DISABLE) && (defined(__arm__) || defined(__arm64__))
# include <arm_neon.h>
typedef float32x4_t v4sf;
# define SIMD_SZ 4
@@ -1732,7 +1732,7 @@ void pffft_zconvolve_accumulate(PFFFT_Setup *s, const float *a, const float *b,
const v4sf * RESTRICT vb = (const v4sf*)b;
v4sf * RESTRICT vab = (v4sf*)ab;
-#ifdef __arm__
+#if defined(__arm__) || defined(__arm64__)
__builtin_prefetch(va);
__builtin_prefetch(vb);
__builtin_prefetch(vab);
--
2.30.1

View file

@ -8,6 +8,11 @@ stdenv.mkDerivation rec {
sha256 = "12aql6svkplxq5fjycar18863hcq84c5kx8g6f4rj0lcvigw24di";
};
patches = [
# Remove once https://sourceforge.net/p/soxr/code/merge-requests/5/ is merged.
./arm64-check.patch
];
outputs = [ "out" "doc" ]; # headers are just two and very small
preConfigure = if stdenv.isDarwin then ''

View file

@ -8,7 +8,7 @@ stdenv.mkDerivation {
sha256 = "18llpvjsfhypzijrvfbzmcg3g141f307mzsrg11wcdxh9syxqak6";
};
buildInputs = [ unzip ];
nativeBuildInputs = [ unzip ];
phases = [ "buildPhase" ];

View file

@ -2,12 +2,12 @@
, pango, fribidi, harfbuzz, pcre, pkg-config
, ncursesSupport ? true, ncurses ? null
, waylandSupport ? true, wayland ? null, wayland-protocols ? null
, x11Support ? true, xlibs ? null, xorg ? null
, x11Support ? true, xorg ? null
}:
assert ncursesSupport -> ncurses != null;
assert waylandSupport -> ! lib.elem null [wayland wayland-protocols];
assert x11Support -> xlibs != null && xorg != null;
assert x11Support -> xorg != null;
stdenv.mkDerivation rec {
pname = "bemenu";
@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
] ++ optional ncursesSupport ncurses
++ optionals waylandSupport [ wayland wayland-protocols ]
++ optionals x11Support [
xlibs.libX11 xlibs.libXinerama xlibs.libXft
xorg.libX11 xorg.libXinerama xorg.libXft
xorg.libXdmcp xorg.libpthreadstubs xorg.libxcb
];

View file

@ -36,11 +36,15 @@ mkDerivation rec {
--subst-var-by qttranslations ${qttranslations}
'';
# Wayland support is broken.
# https://github.com/gyunaev/birdtray/issues/113#issuecomment-621742315
qtWrapperArgs = [ "--set QT_QPA_PLATFORM xcb" ];
meta = with lib; {
description = "Mail system tray notification icon for Thunderbird";
homepage = "https://github.com/gyunaev/birdtray";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ Flakebi ];
maintainers = with maintainers; [ Flakebi oxalica ];
platforms = platforms.linux;
};
}

View file

@ -5,7 +5,7 @@
let
perlDeps =
[ perlPackages.MIMEtools perlPackages.HTMLParser ]
[ perlPackages.MIMETools perlPackages.HTMLParser ]
++ lib.optional cursesSupport perlPackages.CursesUI
++ lib.optional uriFindSupport perlPackages.URIFind;

View file

@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
JSON
ImageExifTool
librelative
LWPUserAgent
LWP
LWPProtocolHttps
MP3Info
MP3Tag

View file

@ -18,14 +18,14 @@
buildPythonApplication rec {
pname = "jrnl";
version = "2.7";
version = "2.7.1";
format = "pyproject";
src = fetchFromGitHub {
owner = "jrnl-org";
repo = pname;
rev = "v${version}";
sha256 = "1hyjjw9mxy73n3pkliaaif135h2sd4iy43pw9d5zynid5abnr3yz";
sha256 = "1m1shgnvwzzs0g6ph7rprwxd7w8zj0x4sbgiqsv9z41k6li7xj4r";
};
nativeBuildInputs = [ poetry ];

View file

@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
};
dontStrip = true;
buildInputs = [ unzip ];
nativeBuildInputs = [ unzip ];
phases = "unpackPhase installPhase";
unpackPhase = "mkdir ${pname}-${version} && cd ${pname}-${version} && unzip -qq ${src}";

View file

@ -12,8 +12,8 @@ with builtins; buildDotnetPackage rec {
sourceRoot = ".";
nativeBuildInputs = [ makeWrapper ];
buildInputs = [ unzip icoutils ];
nativeBuildInputs = [ makeWrapper unzip ];
buildInputs = [ icoutils ];
patches = [
(substituteAll {

View file

@ -3,12 +3,12 @@
}:
mkDerivation rec {
version = "2.3.6";
version = "2.3.6.1";
pname = "lyx";
src = fetchurl {
url = "ftp://ftp.lyx.org/pub/lyx/stable/2.3.x/${pname}-${version}.tar.xz";
sha256 = "160whjwwrmxizdakjlkf9xc86bhqfnslw47fixgqq4qhbapcxxkg";
sha256 = "sha256-xr7SYzQZiY4Bp8w1AxDX2TS/WRyrcln8JYGqTADq+ng=";
};
# LaTeX is used from $PATH, as people often want to have it with extra pkgs

View file

@ -25,7 +25,7 @@ appimageTools.wrapType2 rec {
multiPkgs = null; # no 32bit needed
extraPkgs = p: (appimageTools.defaultFhsEnvArgs.multiPkgs p) ++ [
p.libsecret
p.xlibs.libxkbfile
p.xorg.libxkbfile
];
# Strip version from binary name.

View file

@ -38,7 +38,7 @@ mkDerivation rec {
};
nativeBuildInputs =
[ autoconf automake doxygen lsb-release pkg-config qttools swig ];
[ autoconf automake doxygen lsb-release pkg-config qttools swig unzip ];
buildInputs = [
c-ares
cryptopp
@ -53,7 +53,6 @@ mkDerivation rec {
qtbase
qtx11extras
sqlite
unzip
wget
];

View file

@ -0,0 +1,61 @@
{ lib
, python3
, fetchFromGitLab
, appstream
, desktop-file-utils
, glib
, gobject-introspection
, gtk3
, libhandy
, librsvg
, meson
, ninja
, pkg-config
, poppler_gi
, wrapGAppsHook
}:
python3.pkgs.buildPythonApplication rec {
pname = "metadata-cleaner";
version = "1.0.3";
format = "other";
src = fetchFromGitLab {
owner = "rmnvgr";
repo = "metadata-cleaner";
rev = "v${version}";
sha256 = "06dzfcnjb1xd8lk0r7bi4i784gfj8r7habbjbk2c4vn2847v71lf";
};
nativeBuildInputs = [
appstream
desktop-file-utils
glib
gtk3
meson
ninja
pkg-config
wrapGAppsHook
];
buildInputs = [
gobject-introspection
gtk3
libhandy
librsvg
poppler_gi
];
propagatedBuildInputs = with python3.pkgs; [
mat2
pygobject3
];
meta = with lib; {
description = "Python GTK application to view and clean metadata in files, using mat2";
homepage = "https://gitlab.com/rmnvgr/metadata-cleaner";
license = with licenses; [ gpl3Plus cc-by-sa-40 ];
maintainers = with maintainers; [ dotlambda ];
};
}

View file

@ -22,10 +22,9 @@ stdenv.mkDerivation {
cp bin/milu $out/bin
'';
nativeBuildInputs = [ pkg-config ];
nativeBuildInputs = [ pkg-config unzip ];
buildInputs = [
glib
unzip
llvmPackages.libclang
];

View file

@ -7,13 +7,13 @@ assert withNerdIcons -> withIcons == false;
stdenv.mkDerivation rec {
pname = "nnn";
version = "3.5";
version = "3.6";
src = fetchFromGitHub {
owner = "jarun";
repo = pname;
rev = "v${version}";
sha256 = "1fa7cmwrzn6kx87kms8i98p9azdlwyh2gnif29l340syl9hkr5qy";
sha256 = "1hwv7ncp8pmzdir30877ni4qlmczmb3yjdkbfd1pssr08y1srsc7";
};
configFile = lib.optionalString (conf != null) (builtins.toFile "nnn.h" conf);
@ -22,10 +22,8 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ pkg-config ];
buildInputs = [ readline ncurses ];
makeFlags = [
"DESTDIR=${placeholder "out"}"
"PREFIX="
] ++ lib.optional withIcons [ "O_ICONS=1" ]
makeFlags = [ "PREFIX=$(out)" ]
++ lib.optional withIcons [ "O_ICONS=1" ]
++ lib.optional withNerdIcons [ "O_NERD=1" ];
# shell completions
@ -38,6 +36,7 @@ stdenv.mkDerivation rec {
meta = with lib; {
description = "Small ncurses-based file browser forked from noice";
homepage = "https://github.com/jarun/nnn";
changelog = "https://github.com/jarun/nnn/blob/v${version}/CHANGELOG";
license = licenses.bsd2;
platforms = platforms.all;
maintainers = with maintainers; [ jfrankenau Br1ght0ne ];

View file

@ -9,8 +9,7 @@ stdenv.mkDerivation {
sha256 = "0axz7r30p34z5hgvdglznc82g7yvm3g56dv5190jixskx6ba58rs";
};
nativeBuildInputs = [ makeWrapper ];
buildInputs = [ unzip ];
nativeBuildInputs = [ makeWrapper unzip ];
unpackCmd = "unzip -o $curSrc"; # tries to go interactive without -o

View file

@ -18,8 +18,7 @@ stdenv.mkDerivation {
cd $out; unzip $src
'';
nativeBuildInputs = [ makeWrapper ];
buildInputs = [ unzip ];
nativeBuildInputs = [ makeWrapper unzip ];
installPhase = ''
dir=$(echo $out/OpenJUMP-*)

View file

@ -0,0 +1,48 @@
{ lib
, stdenv
, fetchFromGitHub
, cmake
, gettext
, intltool
, pkg-config
, wrapGAppsHook
, gtkmm3
, libuuid
, poppler
, qpdf
}:
stdenv.mkDerivation rec {
pname = "pdfslicer";
version = "1.8.8";
src = fetchFromGitHub {
owner = "junrrein";
repo = "pdfslicer";
rev = "v${version}";
fetchSubmodules = true;
sha256 = "0sja0ddd9c8wjjpzk2ag8q1lxpj09adgmhd7wnsylincqnj2jyls";
};
nativeBuildInputs = [
cmake
gettext
intltool
pkg-config
wrapGAppsHook
];
buildInputs = [
gtkmm3
libuuid
poppler
qpdf
];
meta = with lib; {
description = "A simple application to extract, merge, rotate and reorder pages of PDF documents";
homepage = "https://junrrein.github.io/pdfslicer/";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ dotlambda ];
};
}

View file

@ -15,16 +15,17 @@
mkDerivationWith stdenv.mkDerivation rec {
pname = "qcad";
version = "3.25.2.0";
version = "3.26.0.1";
src = fetchFromGitHub {
owner = "qcad";
repo = "qcad";
rev = "v${version}";
sha256 = "1lz6q9n2p0l7k8rwqsdj6av9p3426423g5avc4y6s7nbk36280mz";
sha256 = "sha256-V+QlwM8BWmcarwZtqJfc+MYHOZgIH1W5R8m2EHhNJls=";
};
patches = [
# Patch directory lookup, remove __DATE__ and executable name
./application-dir.patch
];
@ -90,12 +91,10 @@ mkDerivationWith stdenv.mkDerivation rec {
qttools
];
enableParallelBuilding = true;
meta = with lib; {
description = "2D CAD package based on Qt";
homepage = "https://qcad.org";
license = licenses.gpl3;
license = licenses.gpl3Only;
maintainers = with maintainers; [ yvesf ];
platforms = qtbase.meta.platforms;
};

View file

@ -8,22 +8,22 @@
rustPlatform.buildRustPackage rec {
pname = "reddsaver";
version = "0.3.1";
version = "0.3.2";
src = fetchFromGitHub {
owner = "manojkarthick";
repo = "reddsaver";
rev = "v${version}";
sha256 = "0kww3abgvxr7azr7yb8aiw28fz13qb4sn3x7nnz1ihmd4yczi9fg";
sha256 = "0ffci3as50f55n1v36hji4n0b3lkch5ylc75awjz65jz2gd2y2j4";
};
cargoSha256 = "09xm22vgmd3dc0wr6n3jczxvhwpcsijwfbv50dz1lnsx57g8mgmd";
cargoSha256 = "1cx3sqr7zb1vlfdvbcxp0yva9xh654qczpy8s09c8cviy8hac5sr";
nativeBuildInputs = [ pkg-config ];
buildInputs = [ openssl ]
++ lib.optional stdenv.isDarwin Security;
# package does not contain tests as of v0.3.1
# package does not contain tests as of v0.3.2
docCheck = false;
meta = with lib; {

View file

@ -6,7 +6,7 @@
, pkg-config
, glib
, gtk3
, gnome3
, libgee
, meson
, ninja
, gobject-introspection
@ -40,7 +40,7 @@ stdenv.mkDerivation rec {
pantheon.elementary-icon-theme
pantheon.granite
glib
gnome3.libgee
libgee
gsettings-desktop-schemas
gtk3
];

View file

@ -2,16 +2,16 @@
rustPlatform.buildRustPackage rec {
pname = "tickrs";
version = "0.14.2";
version = "0.14.3";
src = fetchFromGitHub {
owner = "tarkah";
repo = pname;
rev = "v${version}";
sha256 = "sha256-8m4mIXTqc6rDMIjODbHJL7ipH5Y4WwgsWcSmw/SaiIo=";
sha256 = "sha256-mHMBhYI9pJkuK/6tCg1fXPjTfGFe0gkMzplesuFvl5M=";
};
cargoSha256 = "sha256-ZcRFQT2CxqpO35UqK79g2Jq5SPOLZ88WiG36issC5kY=";
cargoSha256 = "sha256-XmLobbVTYO8dA8YVtI/ntlD1RB9sO3poP6NBdDOPIlE=";
nativeBuildInputs = [ perl ];

View file

@ -6,7 +6,7 @@
, jbig2dec
, libjpeg
, mupdf
, openjpeg_2
, openjpeg
, pkg-config
, zathura_core
}:
@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
jbig2dec
libjpeg
mupdf
openjpeg_2
openjpeg
zathura_core
] ++ lib.optional stdenv.isDarwin gtk-mac-integration;

View file

@ -90,11 +90,11 @@ in
stdenv.mkDerivation rec {
pname = "brave";
version = "1.21.76";
version = "1.21.77";
src = fetchurl {
url = "https://github.com/brave/brave-browser/releases/download/v${version}/brave-browser_${version}_amd64.deb";
sha256 = "JFZaPS9NmwZeyEdDqOrKG9VEQP7wIyqkR/Sk44GVxps=";
sha256 = "Q7paeGAvdmc4+FP28ASLlJhN1ui7M5fDpxnrh+gbEm4=";
};
dontConfigure = true;

View file

@ -89,5 +89,6 @@ mkChromiumDerivation (base: rec {
then ["aarch64-linux" "x86_64-linux"]
else [];
timeout = 172800; # 48 hours (increased from the Hydra default of 10h)
broken = elem channel [ "beta" "dev" ]; # Build requires LLVM 12
};
})

View file

@ -18,9 +18,9 @@
}
},
"beta": {
"version": "90.0.4430.19",
"sha256": "174isyx4g62d8ggn9imp41dfklcbxi3y5nfprm4jbjmn5cb7v8xa",
"sha256bin64": "0z665iykdsmjrjbijsrcq80y2anvcfykasznf8w4brg9l9k59wv8",
"version": "90.0.4430.30",
"sha256": "01b6naziii72pvw35wphfqz3inih75is038yf1mdp1847jbvxpwp",
"sha256bin64": "0k48mfzmyjb0w75fkm2j7ll340qgmzvmskz12awc2l19hgnw1s8p",
"deps": {
"gn": {
"version": "2021-02-09",
@ -31,15 +31,15 @@
}
},
"dev": {
"version": "91.0.4442.4",
"sha256": "0cmm2pimkghb6s956bkqf2k77lj69dz51nlydgkqbvw0sc8n784k",
"sha256bin64": "1hbfx8n51p7dwwz1vbp94jdmlb96vvxrbql2af4kmvx1bmzr2ism",
"version": "91.0.4449.6",
"sha256": "1y6z7p64fi4dxyrxrnlmg0wwczgw58cinrsywhnrpl2wp2y3v6m3",
"sha256bin64": "1baxra0hg981awinyyvm1x46rlskjmhs2m1h0zf72l11y1jyj5vc",
"deps": {
"gn": {
"version": "2021-02-09",
"version": "2021-03-12",
"url": "https://gn.googlesource.com/gn",
"rev": "dfcbc6fed0a8352696f92d67ccad54048ad182b3",
"sha256": "1941bzg37c4dpsk3sh6ga3696gpq6vjzpcw9rsnf6kdr9mcgdxvn"
"rev": "64b3b9401c1c3ed5f3c43c1cac00b91f83597ab8",
"sha256": "14whk4gyx21cqxy1560xm8p1mc1581dh9g7xy120g8vvcylknjlm"
}
}
},

View file

@ -161,7 +161,7 @@ buildStdenv.mkDerivation ({
xorg.libX11 xorg.libXrender xorg.libXft xorg.libXt file
xorg.pixman yasm libGLU libGL
xorg.xorgproto
xorg.libXext unzip makeWrapper
xorg.libXext makeWrapper
libevent libstartup_notification /* cairo */
libpng jemalloc glib
nasm icu67 libvpx_1_8
@ -222,6 +222,7 @@ buildStdenv.mkDerivation ({
rust-cbindgen
rustc
which
unzip
]
++ lib.optional gtk3Support wrapGAppsHook
++ lib.optionals buildStdenv.isDarwin [ xcbuild rsync ]

View file

@ -43,14 +43,14 @@ in stdenv.mkDerivation rec {
'';
nativeBuildInputs = [
desktop-file-utils file gnum4 perl pkg-config python2 wget which wrapGAppsHook
desktop-file-utils file gnum4 perl pkg-config python2 wget which wrapGAppsHook unzip
];
buildInputs = [
alsaLib bzip2 cairo dbus dbus-glib ffmpeg fontconfig freetype
gnome2.GConf gtk2 hunspell libevent libjpeg libnotify
libstartup_notification libGLU libGL
libpulseaudio unzip yasm zip zlib
libpulseaudio yasm zip zlib
]
++ (with xorg; [
libX11 libXext libXft libXi libXrender libXScrnSaver

View file

@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
sha256 = "0l743f2yyaq1vvc3iicajgnfpjxjsfvjcqvanndbxs23skgjcv6r";
};
buildInputs = [ unzip ];
nativeBuildInputs = [ unzip ];
unpackPhase = ''
unzip $src

View file

@ -41,12 +41,12 @@ in stdenv.mkDerivation rec {
};
nativeBuildInputs = [
gnum4 makeWrapper perl pkg-config python2
gnum4 makeWrapper perl pkg-config python2 unzip
];
buildInputs = [
alsaLib dbus dbus-glib ffmpeg fontconfig freetype yasm zip jack2 gtk2
unzip gnome2.GConf xorg.libXt
gnome2.GConf xorg.libXt
];
enableParallelBuilding = true;

View file

@ -3,7 +3,6 @@
, fetchFromGitLab
, meson
, ninja
, cmake
, pkg-config
, libhandy
, modemmanager
@ -13,35 +12,46 @@
, feedbackd
, callaudiod
, evolution-data-server
, glib
, folks
, desktop-file-utils
, appstream-glib
, libpeas
, dbus
, vala
, wrapGAppsHook
, xvfb_run
, gtk-doc
, docbook-xsl-nons
, docbook_xml_dtd_43
, gobject-introspection
}:
stdenv.mkDerivation rec {
pname = "calls";
version = "0.2.0";
version = "0.3.1";
src = fetchFromGitLab {
domain = "source.puri.sm";
owner = "Librem5";
repo = pname;
rev = "v${version}";
sha256 = "1qmjdhnr95dawccw1ss8hc3lk0cypj86xg2amjq7avzn86ryd76l";
sha256 = "0igap5ynq269xqaky6fqhdg2dpsvxa008z953ywa4s5b5g5dk3dd";
};
outputs = [ "out" "devdoc" ];
nativeBuildInputs = [
meson
ninja
pkg-config
desktop-file-utils
appstream-glib
vala
cmake
wrapGAppsHook
gtk-doc
docbook-xsl-nons
docbook_xml_dtd_43
];
buildInputs = [
@ -62,10 +72,10 @@ stdenv.mkDerivation rec {
xvfb_run
];
NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0";
mesonFlags = [
# docs fail to build
# https://source.puri.sm/Librem5/calls/issues/99
"-Dgtk_doc=false"
"-Dgtk_doc=true"
];
doCheck = true;
@ -73,6 +83,7 @@ stdenv.mkDerivation rec {
checkPhase = ''
runHook preCheck
NO_AT_BRIDGE=1 \
XDG_DATA_DIRS=${folks}/share/gsettings-schemas/${folks.name} \
xvfb-run -s '-screen 0 800x600x24' dbus-run-session \
--config-file=${dbus.daemon}/share/dbus-1/session.conf \
meson test --print-errorlogs

View file

@ -2,16 +2,16 @@
buildGoModule rec {
pname = "fluxctl";
version = "1.21.2";
version = "1.22.0";
src = fetchFromGitHub {
owner = "weaveworks";
repo = "flux";
rev = version;
sha256 = "sha256-pI/LGAjTWFXiDKSV+dZl0wXK/TZmN9DuWf5Nu8EYNYc=";
sha256 = "sha256-7uS8704YZ7lQTSSnbVvc6T5iadl02TeVpwVPf2uS9L4=";
};
vendorSha256 = "sha256-Q8gIhJSZqdjBXrIcJfCd25BniDScwVzUwZ9Vc8p/z3c=";
vendorSha256 = "sha256-oqfJaQA8ybh0UNWYJ2ukoWkwdgORwvXzRCquGstwA4M=";
nativeBuildInputs = [ installShellFiles ];

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