Merge master into staging-next
This commit is contained in:
commit
9e56e764cd
7
.github/workflows/nixos-manual.yml
vendored
7
.github/workflows/nixos-manual.yml
vendored
@ -1,7 +1,9 @@
|
||||
name: NixOS manual checks
|
||||
|
||||
permissions: read-all
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
pull_request_target:
|
||||
branches-ignore:
|
||||
- 'release-**'
|
||||
paths:
|
||||
@ -14,6 +16,9 @@ jobs:
|
||||
if: github.repository_owner == 'NixOS'
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
# pull_request_target checks out the base branch by default
|
||||
ref: refs/pull/${{ github.event.pull_request.number }}/merge
|
||||
- uses: cachix/install-nix-action@v12
|
||||
- name: Check DocBook files generated from Markdown are consistent
|
||||
run: |
|
||||
|
@ -3037,6 +3037,16 @@
|
||||
githubId = 147284;
|
||||
name = "Jason Felice";
|
||||
};
|
||||
erdnaxe = {
|
||||
email = "erdnaxe@crans.org";
|
||||
github = "erdnaxe";
|
||||
githubId = 2663216;
|
||||
name = "Alexandre Iooss";
|
||||
keys = [{
|
||||
longkeyid = "rsa4096/0x6C79278F3FCDCC02";
|
||||
fingerprint = "2D37 1AD2 7E2B BC77 97E1 B759 6C79 278F 3FCD CC02";
|
||||
}];
|
||||
};
|
||||
ericbmerritt = {
|
||||
email = "eric@afiniate.com";
|
||||
github = "ericbmerritt";
|
||||
|
@ -947,6 +947,7 @@
|
||||
./services/web-apps/nextcloud.nix
|
||||
./services/web-apps/nexus.nix
|
||||
./services/web-apps/plantuml-server.nix
|
||||
./services/web-apps/plausible.nix
|
||||
./services/web-apps/pgpkeyserver-lite.nix
|
||||
./services/web-apps/matomo.nix
|
||||
./services/web-apps/moinmoin.nix
|
||||
|
273
nixos/modules/services/web-apps/plausible.nix
Normal file
273
nixos/modules/services/web-apps/plausible.nix
Normal file
@ -0,0 +1,273 @@
|
||||
{ lib, pkgs, config, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.services.plausible;
|
||||
|
||||
# FIXME consider using LoadCredential as soon as it actually works.
|
||||
envSecrets = ''
|
||||
export ADMIN_USER_PWD="$(<${cfg.adminUser.passwordFile})"
|
||||
export SECRET_KEY_BASE="$(<${cfg.server.secretKeybaseFile})"
|
||||
${optionalString (cfg.mail.smtp.passwordFile != null) ''
|
||||
export SMTP_USER_PWD="$(<${cfg.mail.smtp.passwordFile})"
|
||||
''}
|
||||
'';
|
||||
in {
|
||||
options.services.plausible = {
|
||||
enable = mkEnableOption "plausible";
|
||||
|
||||
adminUser = {
|
||||
name = mkOption {
|
||||
default = "admin";
|
||||
type = types.str;
|
||||
description = ''
|
||||
Name of the admin user that plausible will created on initial startup.
|
||||
'';
|
||||
};
|
||||
|
||||
email = mkOption {
|
||||
type = types.str;
|
||||
example = "admin@localhost";
|
||||
description = ''
|
||||
Email-address of the admin-user.
|
||||
'';
|
||||
};
|
||||
|
||||
passwordFile = mkOption {
|
||||
type = types.either types.str types.path;
|
||||
description = ''
|
||||
Path to the file which contains the password of the admin user.
|
||||
'';
|
||||
};
|
||||
|
||||
activate = mkEnableOption "activating the freshly created admin-user";
|
||||
};
|
||||
|
||||
database = {
|
||||
clickhouse = {
|
||||
setup = mkEnableOption "creating a clickhouse instance" // { default = true; };
|
||||
url = mkOption {
|
||||
default = "http://localhost:8123/default";
|
||||
type = types.str;
|
||||
description = ''
|
||||
The URL to be used to connect to <package>clickhouse</package>.
|
||||
'';
|
||||
};
|
||||
};
|
||||
postgres = {
|
||||
setup = mkEnableOption "creating a postgresql instance" // { default = true; };
|
||||
dbname = mkOption {
|
||||
default = "plausible";
|
||||
type = types.str;
|
||||
description = ''
|
||||
Name of the database to use.
|
||||
'';
|
||||
};
|
||||
socket = mkOption {
|
||||
default = "/run/postgresql";
|
||||
type = types.str;
|
||||
description = ''
|
||||
Path to the UNIX domain-socket to communicate with <package>postgres</package>.
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
server = {
|
||||
disableRegistration = mkOption {
|
||||
default = true;
|
||||
type = types.bool;
|
||||
description = ''
|
||||
Whether to prohibit creating an account in plausible's UI.
|
||||
'';
|
||||
};
|
||||
secretKeybaseFile = mkOption {
|
||||
type = types.either types.path types.str;
|
||||
description = ''
|
||||
Path to the secret used by the <literal>phoenix</literal>-framework. Instructions
|
||||
how to generate one are documented in the
|
||||
<link xlink:href="https://hexdocs.pm/phoenix/Mix.Tasks.Phx.Gen.Secret.html#content">
|
||||
framework docs</link>.
|
||||
'';
|
||||
};
|
||||
port = mkOption {
|
||||
default = 8000;
|
||||
type = types.port;
|
||||
description = ''
|
||||
Port where the service should be available.
|
||||
'';
|
||||
};
|
||||
baseUrl = mkOption {
|
||||
type = types.str;
|
||||
description = ''
|
||||
Public URL where plausible is available.
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
mail = {
|
||||
email = mkOption {
|
||||
default = "hello@plausible.local";
|
||||
type = types.str;
|
||||
description = ''
|
||||
The email id to use for as <emphasis>from</emphasis> address of all communications
|
||||
from Plausible.
|
||||
'';
|
||||
};
|
||||
smtp = {
|
||||
hostAddr = mkOption {
|
||||
default = "localhost";
|
||||
type = types.str;
|
||||
description = ''
|
||||
The host address of your smtp server.
|
||||
'';
|
||||
};
|
||||
hostPort = mkOption {
|
||||
default = 25;
|
||||
type = types.port;
|
||||
description = ''
|
||||
The port of your smtp server.
|
||||
'';
|
||||
};
|
||||
user = mkOption {
|
||||
default = null;
|
||||
type = types.nullOr types.str;
|
||||
description = ''
|
||||
The username/email in case SMTP auth is enabled.
|
||||
'';
|
||||
};
|
||||
passwordFile = mkOption {
|
||||
default = null;
|
||||
type = with types; nullOr (either str path);
|
||||
description = ''
|
||||
The path to the file with the password in case SMTP auth is enabled.
|
||||
'';
|
||||
};
|
||||
enableSSL = mkEnableOption "SSL when connecting to the SMTP server";
|
||||
retries = mkOption {
|
||||
type = types.ints.unsigned;
|
||||
default = 2;
|
||||
description = ''
|
||||
Number of retries to make until mailer gives up.
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
assertions = [
|
||||
{ assertion = cfg.adminUser.activate -> cfg.database.postgres.setup;
|
||||
message = ''
|
||||
Unable to automatically activate the admin-user if no locally managed DB for
|
||||
postgres (`services.plausible.database.postgres.setup') is enabled!
|
||||
'';
|
||||
}
|
||||
];
|
||||
|
||||
services.postgresql = mkIf cfg.database.postgres.setup {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
services.clickhouse = mkIf cfg.database.clickhouse.setup {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
systemd.services = mkMerge [
|
||||
{
|
||||
plausible = {
|
||||
inherit (pkgs.plausible.meta) description;
|
||||
documentation = [ "https://plausible.io/docs/self-hosting" ];
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
after = optional cfg.database.postgres.setup "plausible-postgres.service";
|
||||
requires = optional cfg.database.clickhouse.setup "clickhouse.service"
|
||||
++ optionals cfg.database.postgres.setup [
|
||||
"postgresql.service"
|
||||
"plausible-postgres.service"
|
||||
];
|
||||
|
||||
environment = {
|
||||
# NixOS specific option to avoid that it's trying to write into its store-path.
|
||||
# See also https://github.com/lau/tzdata#data-directory-and-releases
|
||||
TZDATA_DIR = "/var/lib/plausible/elixir_tzdata";
|
||||
|
||||
# Configuration options from
|
||||
# https://plausible.io/docs/self-hosting-configuration
|
||||
PORT = toString cfg.server.port;
|
||||
DISABLE_REGISTRATION = boolToString cfg.server.disableRegistration;
|
||||
|
||||
RELEASE_TMP = "/var/lib/plausible/tmp";
|
||||
|
||||
ADMIN_USER_NAME = cfg.adminUser.name;
|
||||
ADMIN_USER_EMAIL = cfg.adminUser.email;
|
||||
|
||||
DATABASE_SOCKET_DIR = cfg.database.postgres.socket;
|
||||
DATABASE_NAME = cfg.database.postgres.dbname;
|
||||
CLICKHOUSE_DATABASE_URL = cfg.database.clickhouse.url;
|
||||
|
||||
BASE_URL = cfg.server.baseUrl;
|
||||
|
||||
MAILER_EMAIL = cfg.mail.email;
|
||||
SMTP_HOST_ADDR = cfg.mail.smtp.hostAddr;
|
||||
SMTP_HOST_PORT = toString cfg.mail.smtp.hostPort;
|
||||
SMTP_RETRIES = toString cfg.mail.smtp.retries;
|
||||
SMTP_HOST_SSL_ENABLED = boolToString cfg.mail.smtp.enableSSL;
|
||||
|
||||
SELFHOST = "true";
|
||||
} // (optionalAttrs (cfg.mail.smtp.user != null) {
|
||||
SMTP_USER_NAME = cfg.mail.smtp.user;
|
||||
});
|
||||
|
||||
path = [ pkgs.plausible ]
|
||||
++ optional cfg.database.postgres.setup config.services.postgresql.package;
|
||||
|
||||
serviceConfig = {
|
||||
DynamicUser = true;
|
||||
PrivateTmp = true;
|
||||
WorkingDirectory = "/var/lib/plausible";
|
||||
StateDirectory = "plausible";
|
||||
ExecStartPre = "@${pkgs.writeShellScript "plausible-setup" ''
|
||||
${envSecrets}
|
||||
${pkgs.plausible}/createdb.sh
|
||||
${pkgs.plausible}/migrate.sh
|
||||
${optionalString cfg.adminUser.activate ''
|
||||
if ! ${pkgs.plausible}/init-admin.sh | grep 'already exists'; then
|
||||
psql -d plausible <<< "UPDATE users SET email_verified=true;"
|
||||
fi
|
||||
''}
|
||||
''} plausible-setup";
|
||||
ExecStart = "@${pkgs.writeShellScript "plausible" ''
|
||||
${envSecrets}
|
||||
plausible start
|
||||
''} plausible";
|
||||
};
|
||||
};
|
||||
}
|
||||
(mkIf cfg.database.postgres.setup {
|
||||
# `plausible' requires the `citext'-extension.
|
||||
plausible-postgres = {
|
||||
after = [ "postgresql.service" ];
|
||||
bindsTo = [ "postgresql.service" ];
|
||||
requiredBy = [ "plausible.service" ];
|
||||
partOf = [ "plausible.service" ];
|
||||
serviceConfig.Type = "oneshot";
|
||||
unitConfig.ConditionPathExists = "!/var/lib/plausible/.db-setup";
|
||||
script = ''
|
||||
mkdir -p /var/lib/plausible/
|
||||
PSQL() {
|
||||
/run/wrappers/bin/sudo -Hu postgres ${config.services.postgresql.package}/bin/psql --port=5432 "$@"
|
||||
}
|
||||
PSQL -tAc "CREATE ROLE plausible WITH LOGIN;"
|
||||
PSQL -tAc "CREATE DATABASE plausible WITH OWNER plausible;"
|
||||
PSQL -d plausible -tAc "CREATE EXTENSION IF NOT EXISTS citext;"
|
||||
touch /var/lib/plausible/.db-setup
|
||||
'';
|
||||
};
|
||||
})
|
||||
];
|
||||
};
|
||||
|
||||
meta.maintainers = with maintainers; [ ma27 ];
|
||||
meta.doc = ./plausible.xml;
|
||||
}
|
51
nixos/modules/services/web-apps/plausible.xml
Normal file
51
nixos/modules/services/web-apps/plausible.xml
Normal file
@ -0,0 +1,51 @@
|
||||
<chapter xmlns="http://docbook.org/ns/docbook"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:xi="http://www.w3.org/2001/XInclude"
|
||||
version="5.0"
|
||||
xml:id="module-services-plausible">
|
||||
<title>Plausible</title>
|
||||
<para>
|
||||
<link xlink:href="https://plausible.io/">Plausible</link> is a privacy-friendly alternative to
|
||||
Google analytics.
|
||||
</para>
|
||||
<section xml:id="module-services-plausible-basic-usage">
|
||||
<title>Basic Usage</title>
|
||||
<para>
|
||||
At first, a secret key is needed to be generated. This can be done with e.g.
|
||||
<screen><prompt>$ </prompt>openssl rand -base64 64</screen>
|
||||
</para>
|
||||
<para>
|
||||
After that, <package>plausible</package> can be deployed like this:
|
||||
<programlisting>{
|
||||
services.plausible = {
|
||||
<link linkend="opt-services.plausible.enable">enable</link> = true;
|
||||
adminUser = {
|
||||
<link linkend="opt-services.plausible.adminUser.activate">activate</link> = true; <co xml:id='ex-plausible-cfg-activate' />
|
||||
<link linkend="opt-services.plausible.adminUser.email">email</link> = "admin@localhost";
|
||||
<link linkend="opt-services.plausible.adminUser.passwordFile">passwordFile</link> = "/run/secrets/plausible-admin-pwd";
|
||||
};
|
||||
server = {
|
||||
<link linkend="opt-services.plausible.server.baseUrl">baseUrl</link> = "http://analytics.example.org";
|
||||
<link linkend="opt-services.plausible.server.secretKeybaseFile">secretKeybaseFile</link> = "/run/secrets/plausible-secret-key-base"; <co xml:id='ex-plausible-cfg-secretbase' />
|
||||
};
|
||||
};
|
||||
}</programlisting>
|
||||
<calloutlist>
|
||||
<callout arearefs='ex-plausible-cfg-activate'>
|
||||
<para>
|
||||
<varname>activate</varname> is used to skip the email verification of the admin-user that's
|
||||
automatically created by <package>plausible</package>. This is only supported if
|
||||
<package>postgresql</package> is configured by the module. This is done by default, but
|
||||
can be turned off with <xref linkend="opt-services.plausible.database.postgres.setup" />.
|
||||
</para>
|
||||
</callout>
|
||||
<callout arearefs='ex-plausible-cfg-secretbase'>
|
||||
<para>
|
||||
<varname>secretKeybaseFile</varname> is a path to the file which contains the secret generated
|
||||
with <package>openssl</package> as described above.
|
||||
</para>
|
||||
</callout>
|
||||
</calloutlist>
|
||||
</para>
|
||||
</section>
|
||||
</chapter>
|
@ -65,6 +65,12 @@ in
|
||||
'';
|
||||
};
|
||||
|
||||
storage.settings = mkOption {
|
||||
type = toml.type;
|
||||
default = {};
|
||||
description = "storage.conf configuration";
|
||||
};
|
||||
|
||||
registries = {
|
||||
search = mkOption {
|
||||
type = types.listOf types.str;
|
||||
@ -129,6 +135,9 @@ in
|
||||
environment.etc."containers/containers.conf".source =
|
||||
toml.generate "containers.conf" cfg.containersConf.settings;
|
||||
|
||||
environment.etc."containers/storage.conf".source =
|
||||
toml.generate "storage.conf" cfg.storage.settings;
|
||||
|
||||
environment.etc."containers/registries.conf".source = toml.generate "registries.conf" {
|
||||
registries = lib.mapAttrs (n: v: { registries = v; }) cfg.registries;
|
||||
};
|
||||
|
@ -330,6 +330,7 @@ in
|
||||
php80 = handleTest ./php { php = pkgs.php80; };
|
||||
pinnwand = handleTest ./pinnwand.nix {};
|
||||
plasma5 = handleTest ./plasma5.nix {};
|
||||
plausible = handleTest ./plausible.nix {};
|
||||
pleroma = handleTestOn [ "x86_64-linux" "aarch64-linux" ] ./pleroma.nix {};
|
||||
plikd = handleTest ./plikd.nix {};
|
||||
plotinus = handleTest ./plotinus.nix {};
|
||||
|
46
nixos/tests/plausible.nix
Normal file
46
nixos/tests/plausible.nix
Normal file
@ -0,0 +1,46 @@
|
||||
import ./make-test-python.nix ({ pkgs, lib, ... }: {
|
||||
name = "plausible";
|
||||
meta = with lib.maintainers; {
|
||||
maintainers = [ ma27 ];
|
||||
};
|
||||
|
||||
machine = { pkgs, ... }: {
|
||||
virtualisation.memorySize = 4096;
|
||||
services.plausible = {
|
||||
enable = true;
|
||||
adminUser = {
|
||||
email = "admin@example.org";
|
||||
passwordFile = "${pkgs.writeText "pwd" "foobar"}";
|
||||
activate = true;
|
||||
};
|
||||
server = {
|
||||
baseUrl = "http://localhost:8000";
|
||||
secretKeybaseFile = "${pkgs.writeText "dont-try-this-at-home" "nannannannannannannannannannannannannannannannannannannan_batman!"}";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
testScript = ''
|
||||
start_all()
|
||||
machine.wait_for_unit("plausible.service")
|
||||
machine.wait_for_open_port(8000)
|
||||
|
||||
machine.succeed("curl -f localhost:8000 >&2")
|
||||
|
||||
csrf_token = machine.succeed(
|
||||
"curl -c /tmp/cookies localhost:8000/login | grep '_csrf_token' | sed -E 's,.*value=\"(.*)\".*,\\1,g'"
|
||||
)
|
||||
|
||||
machine.succeed(
|
||||
f"curl -b /tmp/cookies -f -X POST localhost:8000/login -F email=admin@example.org -F password=foobar -F _csrf_token={csrf_token.strip()} -D headers"
|
||||
)
|
||||
|
||||
# By ensuring that the user is redirected to the dashboard after login, we
|
||||
# also make sure that the automatic verification of the module works.
|
||||
machine.succeed(
|
||||
"[[ $(grep 'location: ' headers | cut -d: -f2- | xargs echo) == /sites* ]]"
|
||||
)
|
||||
|
||||
machine.shutdown()
|
||||
'';
|
||||
})
|
@ -1,6 +1,7 @@
|
||||
{ lib, stdenv, fetchFromGitHub, libpng, python3
|
||||
, libGLU, libGL, qtbase, wrapQtAppsHook, ncurses
|
||||
, cmake, flex, lemon
|
||||
, makeDesktopItem, copyDesktopItems
|
||||
}:
|
||||
|
||||
let
|
||||
@ -27,12 +28,35 @@ in
|
||||
sed -i "s,python3,${python3.executable}," CMakeLists.txt
|
||||
'';
|
||||
|
||||
postInstall = lib.optionalString stdenv.isLinux ''
|
||||
install -Dm644 $src/deploy/icon.svg $out/share/icons/hicolor/scalable/apps/antimony.svg
|
||||
install -Dm644 ${./mimetype.xml} $out/share/mime/packages/antimony.xml
|
||||
'';
|
||||
|
||||
buildInputs = [
|
||||
libpng python3 python3.pkgs.boost
|
||||
libGLU libGL qtbase ncurses
|
||||
];
|
||||
|
||||
nativeBuildInputs = [ cmake flex lemon wrapQtAppsHook ];
|
||||
nativeBuildInputs = [ cmake flex lemon wrapQtAppsHook copyDesktopItems ];
|
||||
|
||||
desktopItems = [
|
||||
(makeDesktopItem {
|
||||
name = "antimony";
|
||||
desktopName = "Antimony";
|
||||
comment="Tree-based Modeler";
|
||||
genericName = "CAD Application";
|
||||
exec = "antimony %f";
|
||||
icon = "antimony";
|
||||
terminal = "false";
|
||||
categories = "Graphics;Science;Engineering";
|
||||
mimeType = "application/x-extension-sb;application/x-antimony;";
|
||||
extraEntries = ''
|
||||
StartupWMClass=antimony
|
||||
Version=1.0
|
||||
'';
|
||||
})
|
||||
];
|
||||
|
||||
cmakeFlags= [
|
||||
"-DGITREV=${gitRev}"
|
||||
|
7
pkgs/applications/graphics/antimony/mimetype.xml
Normal file
7
pkgs/applications/graphics/antimony/mimetype.xml
Normal file
@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
|
||||
<mime-type type="application/x-antimony">
|
||||
<comment xml:lang="en">Antimony model</comment>
|
||||
<glob pattern="*.sb"/>
|
||||
</mime-type>
|
||||
</mime-info>
|
@ -31,9 +31,9 @@
|
||||
}
|
||||
},
|
||||
"dev": {
|
||||
"version": "92.0.4515.20",
|
||||
"sha256": "0xmpmjpxr4bgy62d71ky9asxwbgnx60mrp9f1dxm9nm92dv6w0ac",
|
||||
"sha256bin64": "1la5mrh33izl7nf1rr899ljh448ckpqz2bp0vac83vb8952krm05",
|
||||
"version": "92.0.4515.40",
|
||||
"sha256": "1v0vmnzdqq7d2rqp1sam8nk7z20xg5l9lnlpqjxj30y8k37gzh8p",
|
||||
"sha256bin64": "12kfzgg0fhlrvr3ci1gzsn5rzdwr4dc2k3sj45j4dn7wnrjlpmbx",
|
||||
"deps": {
|
||||
"gn": {
|
||||
"version": "2021-05-07",
|
||||
|
@ -31,12 +31,12 @@ let
|
||||
|
||||
in mkDerivationWith python3Packages.buildPythonApplication rec {
|
||||
pname = "qutebrowser";
|
||||
version = "2.2.2";
|
||||
version = "2.2.3";
|
||||
|
||||
# the release tarballs are different from the git checkout!
|
||||
src = fetchurl {
|
||||
url = "https://github.com/qutebrowser/qutebrowser/releases/download/v${version}/${pname}-${version}.tar.gz";
|
||||
sha256 = "11vjp20gzmdjj09b7wxzn7ar6viih0bk76y618yqsyqqkffylmbq";
|
||||
sha256 = "sha256-BoP168jxj94nvkrcgC83fPw/TPRsI2PbCooqzWNF62I=";
|
||||
};
|
||||
|
||||
# Needs tox
|
||||
|
@ -1,30 +1,59 @@
|
||||
{ lib, buildPythonApplication, fetchFromGitHub, pythonOlder
|
||||
, pytest, aiodns, slixmpp, pyinotify, potr, mpd2, cffi, pkg-config, setuptools }:
|
||||
{ lib
|
||||
, aiodns
|
||||
, buildPythonApplication
|
||||
, cffi
|
||||
, fetchFromGitHub
|
||||
, mpd2
|
||||
, pkg-config
|
||||
, potr
|
||||
, pyasn1
|
||||
, pyasn1-modules
|
||||
, pyinotify
|
||||
, pytestCheckHook
|
||||
, pythonOlder
|
||||
, setuptools
|
||||
, slixmpp
|
||||
, typing-extensions
|
||||
}:
|
||||
|
||||
buildPythonApplication rec {
|
||||
pname = "poezio";
|
||||
version = "0.13.1";
|
||||
pname = "poezio";
|
||||
version = "0.13.1";
|
||||
disabled = pythonOlder "3.4";
|
||||
|
||||
disabled = pythonOlder "3.4";
|
||||
src = fetchFromGitHub {
|
||||
owner = pname;
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "041y61pcbdb86s04qwp8s1g6bp84yskc7vdizwpi2hz18y01x5fy";
|
||||
};
|
||||
|
||||
checkInputs = [ pytest ];
|
||||
propagatedBuildInputs = [ aiodns slixmpp pyinotify potr mpd2 cffi setuptools ];
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
];
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = pname;
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "041y61pcbdb86s04qwp8s1g6bp84yskc7vdizwpi2hz18y01x5fy";
|
||||
};
|
||||
propagatedBuildInputs = [
|
||||
aiodns
|
||||
cffi
|
||||
mpd2
|
||||
potr
|
||||
pyasn1
|
||||
pyasn1-modules
|
||||
pyinotify
|
||||
setuptools
|
||||
slixmpp
|
||||
] ++ lib.optionals (pythonOlder "3.7") [
|
||||
typing-extensions
|
||||
];
|
||||
|
||||
checkPhase = ''
|
||||
pytest
|
||||
'';
|
||||
checkInputs = [
|
||||
pytestCheckHook
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Free console XMPP client";
|
||||
homepage = "https://poez.io";
|
||||
license = licenses.mit;
|
||||
maintainers = [ maintainers.lsix ];
|
||||
};
|
||||
}
|
||||
meta = with lib; {
|
||||
description = "Free console XMPP client";
|
||||
homepage = "https://poez.io";
|
||||
license = licenses.zlib;
|
||||
maintainers = [ maintainers.lsix ];
|
||||
};
|
||||
}
|
||||
|
@ -12,14 +12,14 @@ let packages = [
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
# LAMMPS has weird versioning converted to ISO 8601 format
|
||||
version = "stable_22Aug2018";
|
||||
version = "stable_29Oct2020";
|
||||
pname = "lammps";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "lammps";
|
||||
repo = "lammps";
|
||||
rev = version;
|
||||
sha256 = "1dlifm9wm1jcw2zwal3fnzzl41ng08c7v48w6hx2mz84zljg1nsj";
|
||||
sha256 = "1rmi9r5wj2z49wg43xyhqn9sm37n95cyli3g7vrqk3ww35mmh21q";
|
||||
};
|
||||
|
||||
passthru = {
|
||||
@ -59,8 +59,8 @@ stdenv.mkDerivation rec {
|
||||
funding from the DOE. It is an open-source code, distributed freely
|
||||
under the terms of the GNU Public License (GPL).
|
||||
'';
|
||||
homepage = "http://lammps.sandia.gov";
|
||||
license = licenses.gpl2;
|
||||
homepage = "https://lammps.sandia.gov";
|
||||
license = licenses.gpl2Plus;
|
||||
platforms = platforms.linux;
|
||||
maintainers = [ maintainers.costrouc ];
|
||||
};
|
||||
|
39
pkgs/applications/video/obs-studio/plugins/obs-websocket.nix
Normal file
39
pkgs/applications/video/obs-studio/plugins/obs-websocket.nix
Normal file
@ -0,0 +1,39 @@
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, fetchpatch
|
||||
, cmake
|
||||
, qtbase
|
||||
, obs-studio
|
||||
, asio_1_10
|
||||
, websocketpp
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "obs-websocket";
|
||||
version = "4.9.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Palakis";
|
||||
repo = "obs-websocket";
|
||||
rev = version;
|
||||
sha256 = "1dxih5czcfs1vczbq48784jvmgs8awbsrwk8mdfi4pg8n577cr1w";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
buildInputs = [ qtbase obs-studio asio_1_10 websocketpp ];
|
||||
|
||||
dontWrapQtApps = true;
|
||||
|
||||
cmakeFlags = [
|
||||
"-DLIBOBS_INCLUDE_DIR=${obs-studio.src}/libobs"
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Remote-control OBS Studio through WebSockets";
|
||||
homepage = "https://github.com/Palakis/obs-websocket";
|
||||
maintainers = with maintainers; [ erdnaxe ];
|
||||
license = licenses.gpl2Plus;
|
||||
platforms = [ "x86_64-linux" "i686-linux" ];
|
||||
};
|
||||
}
|
@ -38,13 +38,13 @@ let
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "crun";
|
||||
version = "0.19.1";
|
||||
version = "0.20";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "containers";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "sha256-v5uESTEspIc8rhZXrQqLEVMDvvPcfHuFoj6lI4M5z70=";
|
||||
sha256 = "sha256-NlpgdRizQFt5T3CRxt0DVXTVPUbge9uPc9B7LuR3o1k=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
|
@ -7,6 +7,7 @@
|
||||
, mixEnv ? "prod"
|
||||
, debug ? false
|
||||
, meta ? { }
|
||||
, patches ? []
|
||||
, ...
|
||||
}@attrs:
|
||||
|
||||
@ -36,6 +37,8 @@ stdenvNoCC.mkDerivation (attrs // {
|
||||
runHook postConfigure
|
||||
'';
|
||||
|
||||
inherit patches;
|
||||
|
||||
dontBuild = true;
|
||||
|
||||
installPhase = attrs.installPhase or ''
|
||||
|
@ -1,33 +0,0 @@
|
||||
{ fetchPypi, buildPythonPackage, lib
|
||||
, requests, beautifulsoup4, six, lxml
|
||||
, pytestrunner, requests-mock, pytestcov, pytest
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "MechanicalSoup";
|
||||
version = "1.0.0";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "37d3b15c1957917d3ae171561e77f4dd4c08c35eb4500b8781f6e7e1bb6c4d07";
|
||||
};
|
||||
|
||||
checkInputs = [ pytest pytestrunner requests-mock pytestcov ];
|
||||
|
||||
propagatedBuildInputs = [ lxml requests beautifulsoup4 six ];
|
||||
|
||||
# Requires network
|
||||
doCheck = false;
|
||||
|
||||
postPatch = ''
|
||||
# Is in setup_requires but not used in setup.py...
|
||||
substituteInPlace setup.py --replace "'pytest-runner'" ""
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "A Python library for automating interaction with websites";
|
||||
homepage = "https://github.com/hickford/MechanicalSoup";
|
||||
license = licenses.mit;
|
||||
maintainers = [ maintainers.jgillich ];
|
||||
};
|
||||
}
|
@ -8,6 +8,7 @@
|
||||
, openssl
|
||||
, publicsuffix-list
|
||||
, isPy27
|
||||
, libiconv
|
||||
, CoreFoundation
|
||||
, Security
|
||||
}:
|
||||
@ -37,7 +38,7 @@ buildPythonPackage rec {
|
||||
++ (with rustPlatform; [ cargoSetupHook maturinBuildHook ]);
|
||||
|
||||
buildInputs = [ openssl ]
|
||||
++ lib.optionals stdenv.isDarwin [ CoreFoundation Security ];
|
||||
++ lib.optionals stdenv.isDarwin [ libiconv CoreFoundation Security ];
|
||||
|
||||
PSL_PATH = "${publicsuffix-list}/share/publicsuffix/public_suffix_list.dat";
|
||||
|
||||
@ -49,7 +50,7 @@ buildPythonPackage rec {
|
||||
meta = with lib; {
|
||||
description = "Python wrapper for Brave's adblocking library, which is written in Rust";
|
||||
homepage = "https://github.com/ArniDagur/python-adblock/";
|
||||
maintainers = with maintainers; [ petabyteboy ];
|
||||
maintainers = with maintainers; [ petabyteboy dotlambda ];
|
||||
license = with licenses; [ asl20 mit ];
|
||||
};
|
||||
}
|
||||
|
@ -1,19 +1,24 @@
|
||||
{ lib
|
||||
, buildPythonPackage
|
||||
, fetchPypi
|
||||
, fetchFromGitHub
|
||||
, setuptools-scm
|
||||
, alarmdecoder
|
||||
, pytestCheckHook
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "adext";
|
||||
version = "0.4.1";
|
||||
version = "0.4.2";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "1yz1rpfvhbf7kfjck5vadbj9rd3bkx5248whaa3impdrjh7vs03x";
|
||||
src = fetchFromGitHub {
|
||||
owner = "ajschmidt8";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "0h5k9kzms2f0r48pdhsgv8pimk0vsxw8vs0k6880mank8ij914wr";
|
||||
};
|
||||
|
||||
SETUPTOOLS_SCM_PRETEND_VERSION = version;
|
||||
|
||||
nativeBuildInputs = [
|
||||
setuptools-scm
|
||||
];
|
||||
@ -22,8 +27,10 @@ buildPythonPackage rec {
|
||||
alarmdecoder
|
||||
];
|
||||
|
||||
# Tests are not published yet
|
||||
doCheck = false;
|
||||
checkInputs = [
|
||||
pytestCheckHook
|
||||
];
|
||||
|
||||
pythonImportsCheck = [ "adext" ];
|
||||
|
||||
meta = with lib; {
|
||||
|
@ -1,27 +1,35 @@
|
||||
{ lib, fetchPypi, buildPythonPackage, python, isPy3k, glibcLocales }:
|
||||
{ lib
|
||||
, buildPythonPackage
|
||||
, fetchPypi
|
||||
, isPy3k
|
||||
, pyparsing
|
||||
, python
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "aenum";
|
||||
version = "3.0.0";
|
||||
version = "3.1.0";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "17cd8cfed1ee4b617198c9fabbabd70ebd8f01e54ac29cd6c3a92df14bd86656";
|
||||
sha256 = "sha256-h/Dp70+ChXirBq8w5NeUQEO/Ts0/S3vRy+N+IXPN6Uo=";
|
||||
};
|
||||
|
||||
# For Python 3, locale has to be set to en_US.UTF-8 for
|
||||
# tests to pass
|
||||
checkInputs = if isPy3k then [ glibcLocales ] else [];
|
||||
checkInputs = [
|
||||
pyparsing
|
||||
] ;
|
||||
|
||||
# py2 likes to reorder tests
|
||||
doCheck = isPy3k;
|
||||
|
||||
checkPhase = ''
|
||||
runHook preCheck
|
||||
${if isPy3k then "export LC_ALL=en_US.UTF-8" else ""}
|
||||
PYTHONPATH=`pwd` ${python.interpreter} aenum/test.py
|
||||
runHook postCheck
|
||||
runHook preCheck
|
||||
${python.interpreter} aenum/test.py
|
||||
runHook postCheck
|
||||
'';
|
||||
|
||||
pythonImportsCheck = [ "aenum" ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Advanced Enumerations (compatible with Python's stdlib Enum), NamedTuples, and NamedConstants";
|
||||
maintainers = with maintainers; [ vrthra ];
|
||||
|
@ -1,30 +1,38 @@
|
||||
{ lib, buildPythonPackage, fetchPypi, pythonOlder
|
||||
, python, pycares, typing ? null
|
||||
{ lib
|
||||
, buildPythonPackage
|
||||
, fetchFromGitHub
|
||||
, pycares
|
||||
, pythonOlder
|
||||
, typing
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "aiodns";
|
||||
version = "2.0.0";
|
||||
disabled = pythonOlder "3.5";
|
||||
version = "3.0.0";
|
||||
disabled = pythonOlder "3.6";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "815fdef4607474295d68da46978a54481dd1e7be153c7d60f9e72773cd38d77d";
|
||||
src = fetchFromGitHub {
|
||||
owner = "saghul";
|
||||
repo = pname;
|
||||
rev = "aiodns-${version}";
|
||||
sha256 = "1i91a43gsq222r8212jn4m6bxc3fl04z1mf2h7s39nqywxkggvlp";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [ pycares ]
|
||||
++ lib.optional (pythonOlder "3.7") typing;
|
||||
propagatedBuildInputs = [
|
||||
pycares
|
||||
] ++ lib.optional (pythonOlder "3.7") [
|
||||
typing
|
||||
];
|
||||
|
||||
checkPhase = ''
|
||||
${python.interpreter} tests.py
|
||||
'';
|
||||
|
||||
# 'Could not contact DNS servers'
|
||||
# Could not contact DNS servers
|
||||
doCheck = false;
|
||||
|
||||
pythonImportsCheck = [ "aiodns" ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Simple DNS resolver for asyncio";
|
||||
homepage = "https://github.com/saghul/aiodns";
|
||||
license = licenses.mit;
|
||||
description = "Simple DNS resolver for asyncio";
|
||||
maintainers = with maintainers; [ fab ];
|
||||
};
|
||||
}
|
||||
|
@ -3,7 +3,7 @@
|
||||
, asynctest
|
||||
, buildPythonPackage
|
||||
, fetchFromGitHub
|
||||
, poetry
|
||||
, poetry-core
|
||||
, pytest-aiohttp
|
||||
, pytest-asyncio
|
||||
, pytest-sugar
|
||||
@ -12,19 +12,23 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "aioswitcher";
|
||||
version = "1.2.2";
|
||||
version = "1.2.3";
|
||||
format = "pyproject";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "TomerFi";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "0wvca1jbyj4bwrpkpklbxnkvdp9zs7mrvg5b9vkx2hpyr81vyxam";
|
||||
sha256 = "sha256-Qp5iVk71JxhPVrytWuXkzpqPNPmMQubO0t9sgeQfO8c=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ poetry ];
|
||||
nativeBuildInputs = [
|
||||
poetry-core
|
||||
];
|
||||
|
||||
propagatedBuildInputs = [ aiohttp ];
|
||||
propagatedBuildInputs = [
|
||||
aiohttp
|
||||
];
|
||||
|
||||
checkInputs = [
|
||||
asynctest
|
||||
|
@ -1,28 +1,51 @@
|
||||
{ lib, buildPythonPackage, fetchFromGitHub, pyserial, pyftdi, pyusb
|
||||
, pyopenssl, nose, isPy3k, pythonOlder, mock }:
|
||||
{ lib
|
||||
, buildPythonPackage
|
||||
, fetchFromGitHub
|
||||
, mock
|
||||
, pyftdi
|
||||
, pyopenssl
|
||||
, pyserial
|
||||
, pytestCheckHook
|
||||
, pythonOlder
|
||||
, pyusb
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "alarmdecoder";
|
||||
version = "1.13.10";
|
||||
version = "1.13.11";
|
||||
disabled = pythonOlder "3.6";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "nutechsoftware";
|
||||
repo = "alarmdecoder";
|
||||
rev = version;
|
||||
sha256 = "05581j78181p6mwbfpbkp5irnrzsvps1lslgqrh7xbdcmz5b2nxd";
|
||||
sha256 = "sha256-q2s+wngDKtWm5mxGHNAc63Ed6tiQD9gLHVoQZNWFB0w=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [ pyserial pyftdi pyusb pyopenssl ];
|
||||
propagatedBuildInputs = [
|
||||
pyftdi
|
||||
pyopenssl
|
||||
pyserial
|
||||
pyusb
|
||||
];
|
||||
|
||||
checkInputs = [
|
||||
mock
|
||||
pytestCheckHook
|
||||
];
|
||||
|
||||
disabledTests = [
|
||||
# Socket issue, https://github.com/nutechsoftware/alarmdecoder/issues/45
|
||||
"test_ssl"
|
||||
"test_ssl_exception"
|
||||
];
|
||||
|
||||
doCheck = !isPy3k;
|
||||
checkInputs = [ nose mock ];
|
||||
pythonImportsCheck = [ "alarmdecoder" ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Python interface for the Alarm Decoder (AD2USB, AD2SERIAL and AD2PI) devices";
|
||||
homepage = "https://github.com/nutechsoftware/alarmdecoder";
|
||||
description =
|
||||
"Python interface for the Alarm Decoder (AD2) family of alarm devices. (AD2USB, AD2SERIAL and AD2PI)";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ fab ];
|
||||
};
|
||||
}
|
||||
|
53
pkgs/development/python-modules/mechanicalsoup/default.nix
Normal file
53
pkgs/development/python-modules/mechanicalsoup/default.nix
Normal file
@ -0,0 +1,53 @@
|
||||
{ lib
|
||||
, beautifulsoup4
|
||||
, buildPythonPackage
|
||||
, fetchFromGitHub
|
||||
, lxml
|
||||
, pytest-httpbin
|
||||
, pytest-mock
|
||||
, pytestCheckHook
|
||||
, requests
|
||||
, requests-mock
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "mechanicalsoup";
|
||||
version = "1.1.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "MechanicalSoup";
|
||||
repo = "MechanicalSoup";
|
||||
rev = "v${version}";
|
||||
sha256 = "1mly0ivai3rx64frk7a7ra6abhdxm9x3l6s6x7sgrl9qx1z8zsp3";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
beautifulsoup4
|
||||
lxml
|
||||
requests
|
||||
];
|
||||
|
||||
checkInputs = [
|
||||
pytest-httpbin
|
||||
pytest-mock
|
||||
pytestCheckHook
|
||||
requests-mock
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
# Is in setup_requires but not used in setup.py
|
||||
substituteInPlace setup.py \
|
||||
--replace "'pytest-runner'" ""
|
||||
substituteInPlace setup.cfg \
|
||||
--replace " --cov --cov-config .coveragerc --flake8" ""
|
||||
'';
|
||||
|
||||
pythonImportsCheck = [ "mechanicalsoup" ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Python library for automating interaction with websites";
|
||||
homepage = "https://github.com/hickford/MechanicalSoup";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ jgillich fab ];
|
||||
};
|
||||
}
|
@ -1,35 +1,38 @@
|
||||
{ lib
|
||||
, buildPythonPackage
|
||||
, fetchPypi
|
||||
, python
|
||||
, c-ares
|
||||
, cffi
|
||||
, fetchPypi
|
||||
, idna
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "pycares";
|
||||
version = "3.1.1";
|
||||
version = "4.0.0";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "18dfd4fd300f570d6c4536c1d987b7b7673b2a9d14346592c5d6ed716df0d104";
|
||||
sha256 = "sha256-0BVPxXU7CIdY++ybwTfhsku4T8DGoJclyLrCWjQjEc0=";
|
||||
};
|
||||
|
||||
buildInputs = [ c-ares ];
|
||||
buildInputs = [
|
||||
c-ares
|
||||
];
|
||||
|
||||
propagatedBuildInputs = [ cffi ];
|
||||
propagatedBuildInputs = [
|
||||
cffi
|
||||
idna
|
||||
];
|
||||
|
||||
checkPhase = ''
|
||||
${python.interpreter} tests/tests.py
|
||||
'';
|
||||
|
||||
# requires network access
|
||||
# Requires network access
|
||||
doCheck = false;
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/saghul/pycares";
|
||||
description = "Interface for c-ares";
|
||||
license = licenses.mit;
|
||||
};
|
||||
pythonImportsCheck = [ "pycares" ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Python interface for c-ares";
|
||||
homepage = "https://github.com/saghul/pycares";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ fab ];
|
||||
};
|
||||
}
|
||||
|
@ -12,7 +12,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "pyiqvia";
|
||||
version = "0.3.3";
|
||||
version = "1.0.0";
|
||||
format = "pyproject";
|
||||
|
||||
disabled = pythonOlder "3.6";
|
||||
@ -21,7 +21,7 @@ buildPythonPackage rec {
|
||||
owner = "bachya";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "sha256-XYWoHKa/yq7MtGVM6eVgLtR2E3VmqsjX3TNcQcd7dEQ=";
|
||||
sha256 = "sha256-6BbJgRpn2hivm4N3Zpll9NACMSNlIhxj8CF2iVduIro=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ poetry-core ];
|
||||
|
@ -2,20 +2,19 @@
|
||||
, buildPythonPackage
|
||||
, fetchFromGitHub
|
||||
, pyserial
|
||||
, pytestCheckHook
|
||||
, pythonOlder
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "pymata-express";
|
||||
version = "1.19";
|
||||
version = "1.20";
|
||||
disabled = pythonOlder "3.7";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "MrYsLab";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "0gfjmqcxwsnfjgll6ql5xd1n3xp4klf4fcaajaivh053i02p0a79";
|
||||
sha256 = "sha256-spYmd+Cb7Ej5FmniuJYAVVmq0mhOz5fu4+2UUXctRWs=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [ pyserial ];
|
||||
|
@ -11,14 +11,14 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "xknx";
|
||||
version = "0.18.2";
|
||||
version = "0.18.3";
|
||||
disabled = pythonOlder "3.7";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "XKNX";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "sha256-7jfZtncjcYaAS/7N06FWXh4qSTH6y+VdFx3kKyQxIbM=";
|
||||
sha256 = "sha256-IXzmVAxxFOfU8ptixZLeyM64Fm1xSIlEDbR09f77JKM=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
@ -62,7 +62,7 @@ in rec {
|
||||
];
|
||||
|
||||
mkYarnModules = {
|
||||
name, # safe name and version, e.g. testcompany-one-modules-1.0.0
|
||||
name ? "${pname}-${version}", # safe name and version, e.g. testcompany-one-modules-1.0.0
|
||||
pname, # original name, e.g @testcompany/one
|
||||
version,
|
||||
packageJSON,
|
||||
|
@ -135,6 +135,18 @@ let
|
||||
};
|
||||
};
|
||||
|
||||
bodil.file-browser = buildVscodeMarketplaceExtension {
|
||||
mktplcRef = {
|
||||
name = "file-browser";
|
||||
publisher = "bodil";
|
||||
version = "0.2.10";
|
||||
sha256 = "sha256-RW4vm0Hum9AeN4Rq7MSJOIHnALU0L1tBLKjaRLA2hL8=";
|
||||
};
|
||||
meta = with lib; {
|
||||
license = licenses.mit;
|
||||
};
|
||||
};
|
||||
|
||||
bradlc.vscode-tailwindcss = buildVscodeMarketplaceExtension {
|
||||
mktplcRef = {
|
||||
name = "vscode-tailwindcss";
|
||||
@ -595,6 +607,18 @@ let
|
||||
};
|
||||
};
|
||||
|
||||
JakeBecker.elixir-ls = buildVscodeMarketplaceExtension {
|
||||
mktplcRef = {
|
||||
name = "elixir-ls";
|
||||
publisher = "JakeBecker";
|
||||
version = "0.7.0";
|
||||
sha256 = "sha256-kFrkElD7qC1SpOx1rpcHW1D2hybHCf7cqvIO7JfPuMc=";
|
||||
};
|
||||
meta = with lib; {
|
||||
license = licenses.mit;
|
||||
};
|
||||
};
|
||||
|
||||
james-yu.latex-workshop = buildVscodeMarketplaceExtension {
|
||||
mktplcRef = {
|
||||
name = "latex-workshop";
|
||||
@ -660,6 +684,18 @@ let
|
||||
};
|
||||
};
|
||||
|
||||
kahole.magit = buildVscodeMarketplaceExtension {
|
||||
mktplcRef = {
|
||||
name = "magit";
|
||||
publisher = "kahole";
|
||||
version = "0.6.13";
|
||||
sha256 = "sha256-/SeGQV0UEqBk69cAmUXFc/OfPxNssvzZqa7NmAMQD1k=";
|
||||
};
|
||||
meta = {
|
||||
license = lib.licenses.mit;
|
||||
};
|
||||
};
|
||||
|
||||
mikestead.dotenv = buildVscodeMarketplaceExtension {
|
||||
mktplcRef = {
|
||||
name = "dotenv";
|
||||
@ -1016,6 +1052,19 @@ let
|
||||
};
|
||||
};
|
||||
|
||||
tiehuis.zig = buildVscodeMarketplaceExtension {
|
||||
mktplcRef = {
|
||||
name = "zig";
|
||||
publisher = "tiehuis";
|
||||
version = "0.2.5";
|
||||
sha256 = "sha256-P8Sep0OtdchTfnudxFNvIK+SW++TyibGVI9zd+B5tu4=";
|
||||
};
|
||||
meta = {
|
||||
license = lib.licenses.mit;
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
timonwong.shellcheck = buildVscodeMarketplaceExtension {
|
||||
mktplcRef = {
|
||||
name = "shellcheck";
|
||||
@ -1092,6 +1141,30 @@ let
|
||||
};
|
||||
};
|
||||
|
||||
VSpaceCode.vspacecode = buildVscodeMarketplaceExtension {
|
||||
mktplcRef = {
|
||||
name = "vspacecode";
|
||||
publisher = "VSpaceCode";
|
||||
version = "0.9.1";
|
||||
sha256 = "sha256-/qJKYXR0DznqwF7XuJsz+OghIBzdWjm6dAlaRX4wdRU=";
|
||||
};
|
||||
meta = {
|
||||
license = lib.licenses.mit;
|
||||
};
|
||||
};
|
||||
|
||||
VSpaceCode.whichkey = buildVscodeMarketplaceExtension {
|
||||
mktplcRef = {
|
||||
name = "whichkey";
|
||||
publisher = "VSpaceCode";
|
||||
version = "0.8.5";
|
||||
sha256 = "sha256-p5fukIfk/tZFQrkf6VuT4fjmeGtKAqHDh6r6ky847ks=";
|
||||
};
|
||||
meta = {
|
||||
license = lib.licenses.mit;
|
||||
};
|
||||
};
|
||||
|
||||
xaver.clang-format = buildVscodeMarketplaceExtension {
|
||||
mktplcRef = {
|
||||
name = "clang-format";
|
||||
|
@ -5,16 +5,16 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "gotty";
|
||||
version = "1.2.0";
|
||||
version = "1.3.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "sorenisanerd";
|
||||
repo = "gotty";
|
||||
rev = "v${version}";
|
||||
sha256 = "06ngxnblwkmiln9bxikg9q2wdlh45481pnz87bpsw2r7hc69bv9n";
|
||||
sha256 = "sha256-KkFnZ0j6rrzX2M+C0nVdSdta34B9rvL7cC0TOL38lGQ=";
|
||||
};
|
||||
|
||||
vendorSha256 = "0mzf5209r3fzqf9q98j3b2cdzvfa3kg62xn0spx5zr6nabmhaa79";
|
||||
vendorSha256 = "sha256-6SgF61LW5F/61cB2Yd4cyu3fmFhDooSTw9+NnIAo7lc=";
|
||||
|
||||
# upstream did not update the tests, so they are broken now
|
||||
# https://github.com/sorenisanerd/gotty/issues/13
|
||||
|
@ -1,18 +1,18 @@
|
||||
{ lib, buildGoModule, fetchurl }:
|
||||
{ lib, buildGoModule, fetchFromGitHub }:
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "matterbridge";
|
||||
version = "1.22.1";
|
||||
version = "1.22.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "42wim";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-H6Cy6yvX57QLNfZPeansZv6IJ4uQVqr0h24QsAlrLx8=";
|
||||
};
|
||||
|
||||
vendorSha256 = null;
|
||||
|
||||
doCheck = false;
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/42wim/matterbridge/archive/v${version}.tar.gz";
|
||||
sha256 = "sha256-yV805OWFNOxKIGd6t2kRcUzdB8xYWYHFK+W2u/QPTXg=";
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "Simple bridge between Mattermost, IRC, XMPP, Gitter, Slack, Discord, Telegram, Rocket.Chat, Hipchat(via xmpp), Matrix and Steam";
|
||||
homepage = "https://github.com/42wim/matterbridge";
|
||||
|
92
pkgs/servers/web-apps/plausible/default.nix
Normal file
92
pkgs/servers/web-apps/plausible/default.nix
Normal file
@ -0,0 +1,92 @@
|
||||
{ lib
|
||||
, stdenv
|
||||
, beamPackages
|
||||
, fetchFromGitHub
|
||||
, glibcLocales
|
||||
, cacert
|
||||
, mkYarnModules
|
||||
, nodejs
|
||||
, fetchpatch
|
||||
, nixosTests
|
||||
}:
|
||||
|
||||
let
|
||||
pname = "plausible";
|
||||
version = "1.3.0";
|
||||
name = "${pname}-${version}";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "plausible";
|
||||
repo = "analytics";
|
||||
rev = "v${version}";
|
||||
sha256 = "03lm1f29gwwixnhgjish5bhi3m73qyp71ns2sczdnwnbhrw61zps";
|
||||
};
|
||||
|
||||
# TODO consider using `mix2nix` as soon as it supports git dependencies.
|
||||
mixFodDeps = beamPackages.fetchMixDeps {
|
||||
pname = "${pname}-deps";
|
||||
inherit src version;
|
||||
sha256 = "18h3hs69nw06msvs3nnymf6p94qd3x1f4d2zawqriy9fr5fz7zx6";
|
||||
|
||||
# We need ecto 3.6 as this version checks whether the database exists before
|
||||
# trying to create it. The creation attempt would always require super-user privileges
|
||||
# and since 3.6 this isn't the case anymore.
|
||||
patches = [ ./ecto_sql-fix.patch ];
|
||||
};
|
||||
|
||||
yarnDeps = mkYarnModules {
|
||||
pname = "${pname}-yarn-deps";
|
||||
inherit version;
|
||||
packageJSON = ./package.json;
|
||||
yarnNix = ./yarn.nix;
|
||||
yarnLock = ./yarn.lock;
|
||||
preBuild = ''
|
||||
mkdir -p tmp/deps
|
||||
cp -r ${mixFodDeps}/phoenix tmp/deps/phoenix
|
||||
cp -r ${mixFodDeps}/phoenix_html tmp/deps/phoenix_html
|
||||
'';
|
||||
postBuild = ''
|
||||
echo 'module.exports = {}' > $out/node_modules/flatpickr/dist/postcss.config.js
|
||||
'';
|
||||
};
|
||||
in
|
||||
beamPackages.mixRelease {
|
||||
inherit pname version src mixFodDeps;
|
||||
|
||||
nativeBuildInputs = [ nodejs ];
|
||||
|
||||
patches = [
|
||||
# Allow socket-authentication against postgresql. Upstream PR is
|
||||
# https://github.com/plausible/analytics/pull/1052
|
||||
(fetchpatch {
|
||||
url = "https://github.com/Ma27/analytics/commit/f2ee5892a6c3e1a861d69ed30cac43e05e9cd36f.patch";
|
||||
sha256 = "sha256-JvJ7xlGw+tHtWje+jiQChVC4KTyqqdq2q+MIcOv/k1o=";
|
||||
})
|
||||
|
||||
# Ensure that `tzdata` doesn't write into its store-path
|
||||
# https://github.com/plausible/analytics/pull/1096, but rebased onto 1.3.0
|
||||
./tzdata-rebased.patch
|
||||
];
|
||||
|
||||
passthru = {
|
||||
tests = { inherit (nixosTests) plausible; };
|
||||
updateScript = ./update.sh;
|
||||
};
|
||||
|
||||
postBuild = ''
|
||||
ln -sf ${yarnDeps}/node_modules assets/node_modules
|
||||
npm run deploy --prefix ./assets
|
||||
|
||||
# for external task you need a workaround for the no deps check flag
|
||||
# https://github.com/phoenixframework/phoenix/issues/2690
|
||||
mix do deps.loadpaths --no-deps-check, phx.digest
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
license = licenses.agpl3Plus;
|
||||
homepage = "https://plausible.io/";
|
||||
description = " Simple, open-source, lightweight (< 1 KB) and privacy-friendly web analytics alternative to Google Analytics.";
|
||||
maintainers = with maintainers; [ ma27 ];
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
}
|
13
pkgs/servers/web-apps/plausible/ecto_sql-fix.patch
Normal file
13
pkgs/servers/web-apps/plausible/ecto_sql-fix.patch
Normal file
@ -0,0 +1,13 @@
|
||||
diff --git a/mix.exs b/mix.exs
|
||||
index f6e3b9a..67687d1 100644
|
||||
--- a/mix.exs
|
||||
+++ b/mix.exs
|
||||
@@ -52,7 +52,7 @@ defmodule Plausible.MixProject do
|
||||
[
|
||||
{:bcrypt_elixir, "~> 2.0"},
|
||||
{:cors_plug, "~> 1.5"},
|
||||
- {:ecto_sql, "~> 3.0"},
|
||||
+ {:ecto_sql, "~> 3.6"},
|
||||
{:elixir_uuid, "~> 1.2"},
|
||||
{:gettext, "~> 0.11"},
|
||||
{:jason, "~> 1.0"},
|
57
pkgs/servers/web-apps/plausible/package.json
Normal file
57
pkgs/servers/web-apps/plausible/package.json
Normal file
@ -0,0 +1,57 @@
|
||||
{
|
||||
"repository": {},
|
||||
"license": "MIT",
|
||||
"scripts": {
|
||||
"deploy": "$(npm bin)/webpack --mode production",
|
||||
"watch": "$(npm bin)/webpack --mode development --watch"
|
||||
},
|
||||
"dependencies": {
|
||||
"@babel/core": "^7.11.1",
|
||||
"@babel/preset-env": "^7.11.0",
|
||||
"@babel/preset-react": "^7.10.4",
|
||||
"@tailwindcss/aspect-ratio": "^0.2.0",
|
||||
"@tailwindcss/forms": "^0.2.1",
|
||||
"@tailwindcss/typography": "^0.3.1",
|
||||
"abortcontroller-polyfill": "^1.5.0",
|
||||
"alpinejs": "^2.7.3",
|
||||
"autoprefixer": "^9.8.6",
|
||||
"babel-loader": "^8.1.0",
|
||||
"chart.js": "^2.9.3",
|
||||
"copy-webpack-plugin": "^6.0.3",
|
||||
"css-loader": "^3.6.0",
|
||||
"datamaps": "^0.5.9",
|
||||
"iframe-resizer": "^4.3.1",
|
||||
"mini-css-extract-plugin": "^0.8.2",
|
||||
"optimize-css-assets-webpack-plugin": "^5.0.3",
|
||||
"phoenix": "file:../../tmp/deps/phoenix",
|
||||
"phoenix_html": "file:../../tmp/deps/phoenix_html",
|
||||
"postcss": "^7.0.35",
|
||||
"postcss-loader": "^4.0.4",
|
||||
"react": "^16.13.1",
|
||||
"react-dom": "^16.13.1",
|
||||
"react-flatpickr": "^3.10.5",
|
||||
"react-flip-move": "^3.0.4",
|
||||
"react-router-dom": "^5.2.0",
|
||||
"react-transition-group": "^4.4.1",
|
||||
"tailwindcss": "2.0.1-compat",
|
||||
"terser-webpack-plugin": "^4.2.3",
|
||||
"url-search-params-polyfill": "^8.0.0",
|
||||
"webpack": "4.39.2",
|
||||
"webpack-cli": "^3.3.12"
|
||||
},
|
||||
"devDependencies": {
|
||||
"eslint": "^7.2.0",
|
||||
"eslint-config-airbnb": "^18.2.0",
|
||||
"eslint-config-prettier": "^7.0.0",
|
||||
"eslint-plugin-import": "^2.22.1",
|
||||
"eslint-plugin-jsx-a11y": "^6.4.1",
|
||||
"eslint-plugin-prettier": "^3.3.0",
|
||||
"eslint-plugin-react": "^7.21.5",
|
||||
"eslint-plugin-react-hooks": "^4.2.0",
|
||||
"stylelint": "^13.8.0",
|
||||
"stylelint-config-prettier": "^8.0.2",
|
||||
"stylelint-config-standard": "^20.0.0"
|
||||
},
|
||||
"name": "plausible",
|
||||
"version": "v1.3.0"
|
||||
}
|
21
pkgs/servers/web-apps/plausible/tzdata-rebased.patch
Normal file
21
pkgs/servers/web-apps/plausible/tzdata-rebased.patch
Normal file
@ -0,0 +1,21 @@
|
||||
diff --git a/config/runtime.exs b/config/runtime.exs
|
||||
index 7c9cc14..8facd05 100644
|
||||
--- a/config/runtime.exs
|
||||
+++ b/config/runtime.exs
|
||||
@@ -15,9 +15,7 @@ end
|
||||
base_url = URI.parse(base_url)
|
||||
|
||||
if base_url.scheme not in ["http", "https"] do
|
||||
- raise "BASE_URL must start with `http` or `https`. Currently configured as `#{
|
||||
- System.get_env("BASE_URL")
|
||||
- }`"
|
||||
+ raise "BASE_URL must start with `http` or `https`. Currently configured as `#{System.get_env("BASE_URL")}`"
|
||||
end
|
||||
|
||||
secret_key_base =
|
||||
@@ -300,3 +298,5 @@ if appsignal_api_key do
|
||||
env: env,
|
||||
active: true
|
||||
end
|
||||
+
|
||||
+config :tzdata, :data_dir, System.get_env("TZDATA_DIR", "priv")
|
67
pkgs/servers/web-apps/plausible/update.sh
Executable file
67
pkgs/servers/web-apps/plausible/update.sh
Executable file
@ -0,0 +1,67 @@
|
||||
#!/usr/bin/env nix-shell
|
||||
#!nix-shell -i bash -p jq nix-prefetch-github yarn yarn2nix-moretea.yarn2nix moreutils
|
||||
|
||||
# NOTE: please check on new releases which steps aren't necessary anymore!
|
||||
# Currently the following things are done:
|
||||
#
|
||||
# * Add correct `name`/`version` field to `package.json`, otherwise `yarn2nix` fails to
|
||||
# find required dependencies.
|
||||
# * Keep `tailwindcss` on version 2.0.1-compat (on `yarn` it will be upgraded due to the `^`).
|
||||
# This is needed to make sure the entire build still works with `postcss-7` (needed
|
||||
# by plausible).
|
||||
# * Adjust `file:`-dependencies a bit for the structure inside a Nix build.
|
||||
# * Update hashes for the tarball & the fixed-output drv with all `mix`-dependencies.
|
||||
# * Generate `yarn.lock` & `yarn.nix` in a temporary directory.
|
||||
|
||||
set -euxo pipefail
|
||||
|
||||
dir="$(realpath $(dirname "$0"))"
|
||||
export latest="$(curl -q https://api.github.com/repos/plausible/analytics/releases/latest \
|
||||
| jq -r '.tag_name')"
|
||||
nix_version="$(cut -c2- <<< "$latest")"
|
||||
|
||||
if [[ "$(nix-instantiate -A plausible.version --eval --json | jq -r)" = "$nix_version" ]];
|
||||
then
|
||||
echo "Already using version $latest, skipping"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
SRC="https://raw.githubusercontent.com/plausible/analytics/${latest}"
|
||||
|
||||
package_json="$(curl -qf "$SRC/assets/package.json")"
|
||||
export fixed_tailwind_version="$(jq '.dependencies.tailwindcss' -r <<< "$package_json" | sed -e 's,^^,,g')"
|
||||
|
||||
echo "$package_json" \
|
||||
| jq '. + {"name":"plausible","version": $ENV.latest} | .dependencies.tailwindcss = $ENV.fixed_tailwind_version' \
|
||||
| sed -e 's,../deps/,../../tmp/deps/,g' \
|
||||
> $dir/package.json
|
||||
|
||||
tarball_meta="$(nix-prefetch-github plausible analytics --rev "$latest")"
|
||||
tarball_hash="$(nix to-base32 sha256-$(jq -r '.sha256' <<< "$tarball_meta"))"
|
||||
tarball_path="$(nix-build -E 'with import ./. {}; { p }: fetchFromGitHub (builtins.fromJSON p)' --argstr p "$tarball_meta")"
|
||||
fake_hash="$(nix-instantiate --eval -A lib.fakeSha256 | xargs echo)"
|
||||
|
||||
sed -i "$dir/default.nix" \
|
||||
-e 's,version = ".*",version = "'"$nix_version"'",' \
|
||||
-e '/^ src = fetchFromGitHub/,+4{;s/sha256 = "\(.*\)"/sha256 = "'"$tarball_hash"'"/}' \
|
||||
-e '/^ mixFodDeps =/,+3{;s/sha256 = "\(.*\)"/sha256 = "'"$fake_hash"'"/}'
|
||||
|
||||
mix_hash="$(nix to-base32 $(nix-build -A plausible.mixFodDeps 2>&1 | tail -n3 | grep 'got:' | cut -d: -f2- | xargs echo || true))"
|
||||
|
||||
sed -i "$dir/default.nix" -e '/^ mixFodDeps =/,+3{;s/sha256 = "\(.*\)"/sha256 = "'"$mix_hash"'"/}'
|
||||
|
||||
tmp_setup_dir="$(mktemp -d)"
|
||||
trap "rm -rf $tmp_setup_dir" EXIT
|
||||
|
||||
cp -r $tarball_path/* $tmp_setup_dir/
|
||||
cp -r "$(nix-build -A plausible.mixFodDeps)" "$tmp_setup_dir/deps"
|
||||
chmod -R u+rwx "$tmp_setup_dir"
|
||||
|
||||
pushd $tmp_setup_dir/assets
|
||||
jq < package.json '.dependencies.tailwindcss = "'"$fixed_tailwind_version"'"' | sponge package.json
|
||||
yarn
|
||||
yarn2nix > "$dir/yarn.nix"
|
||||
cp yarn.lock "$dir/yarn.lock"
|
||||
popd
|
||||
|
||||
nix-build -A plausible
|
7731
pkgs/servers/web-apps/plausible/yarn.lock
Normal file
7731
pkgs/servers/web-apps/plausible/yarn.lock
Normal file
File diff suppressed because it is too large
Load Diff
8278
pkgs/servers/web-apps/plausible/yarn.nix
Normal file
8278
pkgs/servers/web-apps/plausible/yarn.nix
Normal file
File diff suppressed because it is too large
Load Diff
@ -1,33 +1,38 @@
|
||||
{ lib
|
||||
, localSystem, crossSystem, config, overlays, crossOverlays ? []
|
||||
# Allow passing in bootstrap files directly so we can test the stdenv bootstrap process when changing the bootstrap tools
|
||||
, bootstrapFiles ?
|
||||
if localSystem.isAarch64 then
|
||||
, localSystem
|
||||
, crossSystem
|
||||
, config
|
||||
, overlays
|
||||
, crossOverlays ? [ ]
|
||||
# Allow passing in bootstrap files directly so we can test the stdenv bootstrap process when changing the bootstrap tools
|
||||
, bootstrapFiles ? if localSystem.isAarch64 then
|
||||
let
|
||||
fetch = { file, sha256, executable ? true }: import <nix/fetchurl.nix> {
|
||||
url = "http://tarballs.nixos.org/stdenv-darwin/aarch64/20acd4c4f14040485f40e55c0a76c186aa8ca4f3/${file}";
|
||||
inherit (localSystem) system;
|
||||
inherit sha256 executable;
|
||||
}; in {
|
||||
sh = fetch { file = "sh"; sha256 = "17m3xrlbl99j3vm7rzz3ghb47094dyddrbvs2a6jalczvmx7spnj"; };
|
||||
bzip2 = fetch { file = "bzip2"; sha256 = "1khs8s5klf76plhlvlc1ma838r8pc1qigk9f5bdycwgbn0nx240q"; };
|
||||
mkdir = fetch { file = "mkdir"; sha256 = "1m9nk90paazl93v43myv2ay68c1arz39pqr7lk5ddbgb177hgg8a"; };
|
||||
cpio = fetch { file = "cpio"; sha256 = "17pxq61yjjvyd738fy9f392hc9cfzkl612sdr9rxr3v0dgvm8y09"; };
|
||||
tarball = fetch { file = "bootstrap-tools.cpio.bz2"; sha256 = "1v2332k33akm6mrm4bj749rxnnmc2pkbgcslmd0bbkf76bz2ildy"; executable = false; };
|
||||
}
|
||||
}; in
|
||||
{
|
||||
sh = fetch { file = "sh"; sha256 = "17m3xrlbl99j3vm7rzz3ghb47094dyddrbvs2a6jalczvmx7spnj"; };
|
||||
bzip2 = fetch { file = "bzip2"; sha256 = "1khs8s5klf76plhlvlc1ma838r8pc1qigk9f5bdycwgbn0nx240q"; };
|
||||
mkdir = fetch { file = "mkdir"; sha256 = "1m9nk90paazl93v43myv2ay68c1arz39pqr7lk5ddbgb177hgg8a"; };
|
||||
cpio = fetch { file = "cpio"; sha256 = "17pxq61yjjvyd738fy9f392hc9cfzkl612sdr9rxr3v0dgvm8y09"; };
|
||||
tarball = fetch { file = "bootstrap-tools.cpio.bz2"; sha256 = "1v2332k33akm6mrm4bj749rxnnmc2pkbgcslmd0bbkf76bz2ildy"; executable = false; };
|
||||
}
|
||||
else
|
||||
let
|
||||
fetch = { file, sha256, executable ? true }: import <nix/fetchurl.nix> {
|
||||
url = "http://tarballs.nixos.org/stdenv-darwin/x86_64/5ab5783e4f46c373c6de84deac9ad59b608bb2e6/${file}";
|
||||
inherit (localSystem) system;
|
||||
inherit sha256 executable;
|
||||
}; in {
|
||||
sh = fetch { file = "sh"; sha256 = "sha256-nbb4XEk3go7ttiWrQyKQMLzPr+qUnwnHkWMtVCZsMCs="; };
|
||||
bzip2 = fetch { file = "bzip2"; sha256 = "sha256-ybnA+JWrKhXSfn20+GVKXkHFTp2Zt79hat8hAVmsUOc="; };
|
||||
mkdir = fetch { file = "mkdir"; sha256 = "sha256-nmvMxmfcY41/60Z/E8L9u0vgePW5l30Dqw1z+Nr02Hk="; };
|
||||
cpio = fetch { file = "cpio"; sha256 = "sha256-cB36rN3NLj19Tk37Kc5bodMFMO+mCpEQkKKo0AEMkaU="; };
|
||||
tarball = fetch { file = "bootstrap-tools.cpio.bz2"; sha256 = "sha256-kh2vKmjCr/HvR06czZbxUxV5KDRxSF27M6nN3cyofRI="; executable = false; };
|
||||
}
|
||||
}; in
|
||||
{
|
||||
sh = fetch { file = "sh"; sha256 = "sha256-nbb4XEk3go7ttiWrQyKQMLzPr+qUnwnHkWMtVCZsMCs="; };
|
||||
bzip2 = fetch { file = "bzip2"; sha256 = "sha256-ybnA+JWrKhXSfn20+GVKXkHFTp2Zt79hat8hAVmsUOc="; };
|
||||
mkdir = fetch { file = "mkdir"; sha256 = "sha256-nmvMxmfcY41/60Z/E8L9u0vgePW5l30Dqw1z+Nr02Hk="; };
|
||||
cpio = fetch { file = "cpio"; sha256 = "sha256-cB36rN3NLj19Tk37Kc5bodMFMO+mCpEQkKKo0AEMkaU="; };
|
||||
tarball = fetch { file = "bootstrap-tools.cpio.bz2"; sha256 = "sha256-kh2vKmjCr/HvR06czZbxUxV5KDRxSF27M6nN3cyofRI="; executable = false; };
|
||||
}
|
||||
}:
|
||||
|
||||
assert crossSystem == localSystem;
|
||||
@ -51,7 +56,8 @@ let
|
||||
"/usr/lib/system/libunc.dylib" # This dependency is "hidden", so our scanning code doesn't pick it up
|
||||
];
|
||||
|
||||
in rec {
|
||||
in
|
||||
rec {
|
||||
commonPreHook = ''
|
||||
export NIX_ENFORCE_NO_NATIVE=''${NIX_ENFORCE_NO_NATIVE-1}
|
||||
export NIX_ENFORCE_PURITY=''${NIX_ENFORCE_PURITY-1}
|
||||
@ -67,9 +73,9 @@ in rec {
|
||||
bootstrapTools = derivation ({
|
||||
inherit system;
|
||||
|
||||
name = "bootstrap-tools";
|
||||
name = "bootstrap-tools";
|
||||
builder = bootstrapFiles.sh; # Not a filename! Attribute 'sh' on bootstrapFiles
|
||||
args = if localSystem.isAarch64 then [ ./unpack-bootstrap-tools-aarch64.sh ] else [ ./unpack-bootstrap-tools.sh ];
|
||||
args = if localSystem.isAarch64 then [ ./unpack-bootstrap-tools-aarch64.sh ] else [ ./unpack-bootstrap-tools.sh ];
|
||||
|
||||
inherit (bootstrapFiles) mkdir bzip2 cpio tarball;
|
||||
|
||||
@ -80,13 +86,14 @@ in rec {
|
||||
outputHashMode = "recursive";
|
||||
});
|
||||
|
||||
stageFun = step: last: {shell ? "${bootstrapTools}/bin/bash",
|
||||
overrides ? (self: super: {}),
|
||||
extraPreHook ? "",
|
||||
extraNativeBuildInputs,
|
||||
extraBuildInputs,
|
||||
libcxx,
|
||||
allowedRequisites ? null}:
|
||||
stageFun = step: last: { shell ? "${bootstrapTools}/bin/bash"
|
||||
, overrides ? (self: super: { })
|
||||
, extraPreHook ? ""
|
||||
, extraNativeBuildInputs
|
||||
, extraBuildInputs
|
||||
, libcxx
|
||||
, allowedRequisites ? null
|
||||
}:
|
||||
let
|
||||
name = "bootstrap-stage${toString step}";
|
||||
|
||||
@ -110,17 +117,19 @@ in rec {
|
||||
inherit lib shell;
|
||||
inherit (last) stdenvNoCC;
|
||||
|
||||
nativeTools = false;
|
||||
nativeLibc = false;
|
||||
nativeTools = false;
|
||||
nativeLibc = false;
|
||||
inherit buildPackages libcxx;
|
||||
inherit (last.pkgs) coreutils gnugrep;
|
||||
bintools = last.pkgs.darwin.binutils;
|
||||
libc = last.pkgs.darwin.Libsystem;
|
||||
isClang = true;
|
||||
cc = last.pkgs."${finalLlvmPackages}".clang-unwrapped;
|
||||
}; in args // (overrides args));
|
||||
bintools = last.pkgs.darwin.binutils;
|
||||
libc = last.pkgs.darwin.Libsystem;
|
||||
isClang = true;
|
||||
cc = last.pkgs."${finalLlvmPackages}".clang-unwrapped;
|
||||
}; in args // (overrides args)
|
||||
);
|
||||
|
||||
cc = if last == null then "/dev/null" else mkCC ({ cc, ... }: {
|
||||
cc = if last == null then "/dev/null" else
|
||||
mkCC ({ cc, ... }: {
|
||||
extraPackages = [
|
||||
last.pkgs."${finalLlvmPackages}".libcxxabi
|
||||
last.pkgs."${finalLlvmPackages}".compiler-rt
|
||||
@ -128,7 +137,8 @@ in rec {
|
||||
extraBuildCommands = mkExtraBuildCommands cc;
|
||||
});
|
||||
|
||||
ccNoLibcxx = if last == null then "/dev/null" else mkCC ({ cc, ... }: {
|
||||
ccNoLibcxx = if last == null then "/dev/null" else
|
||||
mkCC ({ cc, ... }: {
|
||||
libcxx = null;
|
||||
extraPackages = [
|
||||
last.pkgs."${finalLlvmPackages}".compiler-rt
|
||||
@ -146,13 +156,16 @@ in rec {
|
||||
inherit config shell extraBuildInputs;
|
||||
|
||||
extraNativeBuildInputs = extraNativeBuildInputs ++ lib.optionals doUpdateAutoTools [
|
||||
last.pkgs.updateAutotoolsGnuConfigScriptsHook last.pkgs.gnu-config
|
||||
last.pkgs.updateAutotoolsGnuConfigScriptsHook
|
||||
last.pkgs.gnu-config
|
||||
];
|
||||
|
||||
allowedRequisites = if allowedRequisites == null then null else allowedRequisites ++ [
|
||||
cc.expand-response-params cc.bintools
|
||||
cc.expand-response-params
|
||||
cc.bintools
|
||||
] ++ lib.optionals doUpdateAutoTools [
|
||||
last.pkgs.updateAutotoolsGnuConfigScriptsHook last.pkgs.gnu-config
|
||||
last.pkgs.updateAutotoolsGnuConfigScriptsHook
|
||||
last.pkgs.gnu-config
|
||||
] ++ lib.optionals doSign [
|
||||
last.pkgs.darwin.postLinkSignHook
|
||||
last.pkgs.darwin.sigtool
|
||||
@ -173,7 +186,7 @@ in rec {
|
||||
${commonPreHook}
|
||||
${extraPreHook}
|
||||
'';
|
||||
initialPath = [ bootstrapTools ];
|
||||
initialPath = [ bootstrapTools ];
|
||||
|
||||
fetchurlBoot = import ../../build-support/fetchurl {
|
||||
inherit lib;
|
||||
@ -185,13 +198,14 @@ in rec {
|
||||
__stdenvImpureHostDeps = commonImpureHostDeps;
|
||||
__extraImpureHostDeps = commonImpureHostDeps;
|
||||
|
||||
overrides = self: super: (overrides self super) // {
|
||||
overrides = self: super: (overrides self super) // {
|
||||
inherit ccNoLibcxx;
|
||||
fetchurl = thisStdenv.fetchurlBoot;
|
||||
};
|
||||
};
|
||||
|
||||
in {
|
||||
in
|
||||
{
|
||||
inherit config overlays;
|
||||
stdenv = thisStdenv;
|
||||
};
|
||||
@ -289,11 +303,11 @@ in rec {
|
||||
inherit lib;
|
||||
inherit (self) stdenvNoCC;
|
||||
|
||||
nativeTools = false;
|
||||
nativeLibc = false;
|
||||
nativeTools = false;
|
||||
nativeLibc = false;
|
||||
inherit (self) buildPackages coreutils gnugrep;
|
||||
libc = selfDarwin.Libsystem;
|
||||
bintools = selfDarwin.binutils-unwrapped;
|
||||
libc = selfDarwin.Libsystem;
|
||||
bintools = selfDarwin.binutils-unwrapped;
|
||||
inherit (selfDarwin) postLinkSignHook signingUtils;
|
||||
};
|
||||
} // lib.optionalAttrs (! useAppleSDKLibs) {
|
||||
@ -374,317 +388,419 @@ in rec {
|
||||
};
|
||||
};
|
||||
|
||||
extraNativeBuildInputs = [];
|
||||
extraBuildInputs = [];
|
||||
extraNativeBuildInputs = [ ];
|
||||
extraBuildInputs = [ ];
|
||||
libcxx = null;
|
||||
};
|
||||
|
||||
stage1 = prevStage: let
|
||||
persistent = self: super: with prevStage; {
|
||||
cmake = super.cmakeMinimal;
|
||||
stage1 = prevStage:
|
||||
let
|
||||
persistent = self: super: with prevStage; {
|
||||
cmake = super.cmakeMinimal;
|
||||
|
||||
inherit pbzx cpio;
|
||||
inherit pbzx cpio;
|
||||
|
||||
python3 = super.python3Minimal;
|
||||
python3 = super.python3Minimal;
|
||||
|
||||
ninja = super.ninja.override { buildDocs = false; };
|
||||
ninja = super.ninja.override { buildDocs = false; };
|
||||
|
||||
"${finalLlvmPackages}" = super."${finalLlvmPackages}" // (let
|
||||
tools = super."${finalLlvmPackages}".tools.extend (_: _: {
|
||||
inherit (pkgs."${finalLlvmPackages}") clang-unwrapped;
|
||||
});
|
||||
libraries = super."${finalLlvmPackages}".libraries.extend (_: _: {
|
||||
inherit (pkgs."${finalLlvmPackages}") compiler-rt libcxx libcxxabi;
|
||||
});
|
||||
in { inherit tools libraries; } // tools // libraries);
|
||||
"${finalLlvmPackages}" = super."${finalLlvmPackages}" // (
|
||||
let
|
||||
tools = super."${finalLlvmPackages}".tools.extend (_: _: {
|
||||
inherit (pkgs."${finalLlvmPackages}") clang-unwrapped;
|
||||
});
|
||||
libraries = super."${finalLlvmPackages}".libraries.extend (_: _: {
|
||||
inherit (pkgs."${finalLlvmPackages}") compiler-rt libcxx libcxxabi;
|
||||
});
|
||||
in
|
||||
{ inherit tools libraries; } // tools // libraries
|
||||
);
|
||||
|
||||
darwin = super.darwin.overrideScope (selfDarwin: _: {
|
||||
inherit (darwin) rewrite-tbd binutils-unwrapped;
|
||||
darwin = super.darwin.overrideScope (selfDarwin: _: {
|
||||
inherit (darwin) rewrite-tbd binutils-unwrapped;
|
||||
|
||||
signingUtils = darwin.signingUtils.override {
|
||||
inherit (selfDarwin) sigtool;
|
||||
};
|
||||
|
||||
binutils = darwin.binutils.override {
|
||||
coreutils = self.coreutils;
|
||||
libc = selfDarwin.Libsystem;
|
||||
inherit (selfDarwin) postLinkSignHook signingUtils;
|
||||
};
|
||||
});
|
||||
};
|
||||
in with prevStage; stageFun 1 prevStage {
|
||||
extraPreHook = "export NIX_CFLAGS_COMPILE+=\" -F${bootstrapTools}/Library/Frameworks\"";
|
||||
extraNativeBuildInputs = [];
|
||||
extraBuildInputs = [ pkgs.darwin.CF ];
|
||||
libcxx = pkgs."${finalLlvmPackages}".libcxx;
|
||||
|
||||
allowedRequisites =
|
||||
[ bootstrapTools ] ++
|
||||
(with pkgs; [ coreutils gnugrep ]) ++
|
||||
(with pkgs."${finalLlvmPackages}"; [ libcxx libcxxabi compiler-rt clang-unwrapped ]) ++
|
||||
(with pkgs.darwin; [ Libsystem CF ] ++ lib.optional useAppleSDKLibs objc4);
|
||||
|
||||
overrides = persistent;
|
||||
};
|
||||
|
||||
stage2 = prevStage: let
|
||||
persistent = self: super: with prevStage; {
|
||||
inherit
|
||||
zlib patchutils m4 scons flex perl bison unifdef unzip openssl python3
|
||||
libxml2 gettext sharutils gmp libarchive ncurses pkg-config libedit groff
|
||||
openssh sqlite sed serf openldap db cyrus-sasl expat apr-util subversion xz
|
||||
findfreetype libssh curl cmake autoconf automake libtool ed cpio coreutils
|
||||
libssh2 nghttp2 libkrb5 ninja brotli;
|
||||
|
||||
"${finalLlvmPackages}" = super."${finalLlvmPackages}" // (let
|
||||
tools = super."${finalLlvmPackages}".tools.extend (_: _: {
|
||||
inherit (pkgs."${finalLlvmPackages}") clang-unwrapped;
|
||||
});
|
||||
libraries = super."${finalLlvmPackages}".libraries.extend (_: libSuper: {
|
||||
inherit (pkgs."${finalLlvmPackages}") compiler-rt;
|
||||
libcxx = libSuper.libcxx.override {
|
||||
stdenv = overrideCC self.stdenv self.ccNoLibcxx;
|
||||
signingUtils = darwin.signingUtils.override {
|
||||
inherit (selfDarwin) sigtool;
|
||||
};
|
||||
libcxxabi = libSuper.libcxxabi.override ({
|
||||
stdenv = overrideCC self.stdenv self.ccNoLibcxx;
|
||||
} // lib.optionalAttrs (finalLlvmVersion == "7") {
|
||||
# TODO: the bootstrapping of llvm packages isn't consistent.
|
||||
# `standalone` may be redundant if darwin behaves like useLLVM (or
|
||||
# has useLLVM = true).
|
||||
standalone = true;
|
||||
});
|
||||
});
|
||||
in { inherit tools libraries; } // tools // libraries);
|
||||
|
||||
darwin = super.darwin.overrideScope (_: _: {
|
||||
inherit (darwin)
|
||||
binutils dyld Libsystem xnu configd ICU libdispatch libclosure
|
||||
launchd CF objc4 darwin-stubs sigtool postLinkSignHook signingUtils;
|
||||
});
|
||||
binutils = darwin.binutils.override {
|
||||
coreutils = self.coreutils;
|
||||
libc = selfDarwin.Libsystem;
|
||||
inherit (selfDarwin) postLinkSignHook signingUtils;
|
||||
};
|
||||
});
|
||||
};
|
||||
in
|
||||
with prevStage; stageFun 1 prevStage {
|
||||
extraPreHook = "export NIX_CFLAGS_COMPILE+=\" -F${bootstrapTools}/Library/Frameworks\"";
|
||||
extraNativeBuildInputs = [ ];
|
||||
extraBuildInputs = [ pkgs.darwin.CF ];
|
||||
libcxx = pkgs."${finalLlvmPackages}".libcxx;
|
||||
|
||||
allowedRequisites =
|
||||
[ bootstrapTools ] ++
|
||||
(with pkgs; [ coreutils gnugrep ]) ++
|
||||
(with pkgs."${finalLlvmPackages}"; [ libcxx libcxxabi compiler-rt clang-unwrapped ]) ++
|
||||
(with pkgs.darwin; [ Libsystem CF ] ++ lib.optional useAppleSDKLibs objc4);
|
||||
|
||||
overrides = persistent;
|
||||
};
|
||||
in with prevStage; stageFun 2 prevStage {
|
||||
extraPreHook = ''
|
||||
export PATH_LOCALE=${pkgs.darwin.locale}/share/locale
|
||||
'';
|
||||
|
||||
extraNativeBuildInputs = [ pkgs.xz ];
|
||||
extraBuildInputs = [ pkgs.darwin.CF ];
|
||||
libcxx = pkgs."${finalLlvmPackages}".libcxx;
|
||||
stage2 = prevStage:
|
||||
let
|
||||
persistent = self: super: with prevStage; {
|
||||
inherit
|
||||
zlib patchutils m4 scons flex perl bison unifdef unzip openssl python3
|
||||
libxml2 gettext sharutils gmp libarchive ncurses pkg-config libedit groff
|
||||
openssh sqlite sed serf openldap db cyrus-sasl expat apr-util subversion xz
|
||||
findfreetype libssh curl cmake autoconf automake libtool ed cpio coreutils
|
||||
libssh2 nghttp2 libkrb5 ninja brotli;
|
||||
|
||||
allowedRequisites =
|
||||
[ bootstrapTools ] ++
|
||||
(with pkgs; [
|
||||
xz.bin xz.out zlib libxml2.out curl.out openssl.out libssh2.out
|
||||
nghttp2.lib coreutils gnugrep pcre.out gmp libiconv brotli.lib
|
||||
] ++ lib.optional haveKRB5 libkrb5) ++
|
||||
(with pkgs."${finalLlvmPackages}"; [
|
||||
libcxx libcxxabi compiler-rt clang-unwrapped
|
||||
]) ++
|
||||
(with pkgs.darwin; [ dyld Libsystem CF ICU locale ] ++ lib.optional useAppleSDKLibs objc4);
|
||||
"${finalLlvmPackages}" = super."${finalLlvmPackages}" // (
|
||||
let
|
||||
tools = super."${finalLlvmPackages}".tools.extend (_: _: {
|
||||
inherit (pkgs."${finalLlvmPackages}") clang-unwrapped;
|
||||
});
|
||||
libraries = super."${finalLlvmPackages}".libraries.extend (_: libSuper: {
|
||||
inherit (pkgs."${finalLlvmPackages}") compiler-rt;
|
||||
libcxx = libSuper.libcxx.override {
|
||||
stdenv = overrideCC self.stdenv self.ccNoLibcxx;
|
||||
};
|
||||
libcxxabi = libSuper.libcxxabi.override ({
|
||||
stdenv = overrideCC self.stdenv self.ccNoLibcxx;
|
||||
} // lib.optionalAttrs (finalLlvmVersion == "7") {
|
||||
# TODO: the bootstrapping of llvm packages isn't consistent.
|
||||
# `standalone` may be redundant if darwin behaves like useLLVM (or
|
||||
# has useLLVM = true).
|
||||
standalone = true;
|
||||
});
|
||||
});
|
||||
in
|
||||
{ inherit tools libraries; } // tools // libraries
|
||||
);
|
||||
|
||||
overrides = persistent;
|
||||
};
|
||||
|
||||
stage3 = prevStage: let
|
||||
persistent = self: super: with prevStage; {
|
||||
inherit
|
||||
patchutils m4 scons flex perl bison unifdef unzip openssl python3
|
||||
gettext sharutils libarchive pkg-config groff bash subversion
|
||||
openssh sqlite sed serf openldap db cyrus-sasl expat apr-util
|
||||
findfreetype libssh curl cmake autoconf automake libtool cpio
|
||||
libssh2 nghttp2 libkrb5 ninja;
|
||||
|
||||
# Avoid pulling in a full python and its extra dependencies for the llvm/clang builds.
|
||||
libxml2 = super.libxml2.override { pythonSupport = false; };
|
||||
|
||||
"${finalLlvmPackages}" = super."${finalLlvmPackages}" // (let
|
||||
libraries = super."${finalLlvmPackages}".libraries.extend (_: _: {
|
||||
inherit (pkgs."${finalLlvmPackages}") libcxx libcxxabi;
|
||||
darwin = super.darwin.overrideScope (_: _: {
|
||||
inherit (darwin)
|
||||
binutils dyld Libsystem xnu configd ICU libdispatch libclosure
|
||||
launchd CF objc4 darwin-stubs sigtool postLinkSignHook signingUtils;
|
||||
});
|
||||
in { inherit libraries; } // libraries);
|
||||
};
|
||||
in
|
||||
with prevStage; stageFun 2 prevStage {
|
||||
extraPreHook = ''
|
||||
export PATH_LOCALE=${pkgs.darwin.locale}/share/locale
|
||||
'';
|
||||
|
||||
darwin = super.darwin.overrideScope (_: _: {
|
||||
inherit (darwin)
|
||||
dyld Libsystem xnu configd libdispatch libclosure launchd libiconv
|
||||
locale darwin-stubs sigtool;
|
||||
});
|
||||
extraNativeBuildInputs = [ pkgs.xz ];
|
||||
extraBuildInputs = [ pkgs.darwin.CF ];
|
||||
libcxx = pkgs."${finalLlvmPackages}".libcxx;
|
||||
|
||||
allowedRequisites =
|
||||
[ bootstrapTools ] ++
|
||||
(with pkgs; [
|
||||
xz.bin
|
||||
xz.out
|
||||
zlib
|
||||
libxml2.out
|
||||
curl.out
|
||||
openssl.out
|
||||
libssh2.out
|
||||
nghttp2.lib
|
||||
coreutils
|
||||
gnugrep
|
||||
pcre.out
|
||||
gmp
|
||||
libiconv
|
||||
brotli.lib
|
||||
] ++ lib.optional haveKRB5 libkrb5) ++
|
||||
(with pkgs."${finalLlvmPackages}"; [
|
||||
libcxx
|
||||
libcxxabi
|
||||
compiler-rt
|
||||
clang-unwrapped
|
||||
]) ++
|
||||
(with pkgs.darwin; [ dyld Libsystem CF ICU locale ] ++ lib.optional useAppleSDKLibs objc4);
|
||||
|
||||
overrides = persistent;
|
||||
};
|
||||
in with prevStage; stageFun 3 prevStage {
|
||||
shell = "${pkgs.bash}/bin/bash";
|
||||
|
||||
# We have a valid shell here (this one has no bootstrap-tools runtime deps) so stageFun
|
||||
# enables patchShebangs above. Unfortunately, patchShebangs ignores our $SHELL setting
|
||||
# and instead goes by $PATH, which happens to contain bootstrapTools. So it goes and
|
||||
# patches our shebangs back to point at bootstrapTools. This makes sure bash comes first.
|
||||
extraNativeBuildInputs = with pkgs; [ xz ];
|
||||
extraBuildInputs = [ pkgs.darwin.CF pkgs.bash ];
|
||||
libcxx = pkgs."${finalLlvmPackages}".libcxx;
|
||||
stage3 = prevStage:
|
||||
let
|
||||
persistent = self: super: with prevStage; {
|
||||
inherit
|
||||
patchutils m4 scons flex perl bison unifdef unzip openssl python3
|
||||
gettext sharutils libarchive pkg-config groff bash subversion
|
||||
openssh sqlite sed serf openldap db cyrus-sasl expat apr-util
|
||||
findfreetype libssh curl cmake autoconf automake libtool cpio
|
||||
libssh2 nghttp2 libkrb5 ninja;
|
||||
|
||||
extraPreHook = ''
|
||||
export PATH=${pkgs.bash}/bin:$PATH
|
||||
export PATH_LOCALE=${pkgs.darwin.locale}/share/locale
|
||||
'';
|
||||
# Avoid pulling in a full python and its extra dependencies for the llvm/clang builds.
|
||||
libxml2 = super.libxml2.override { pythonSupport = false; };
|
||||
|
||||
allowedRequisites =
|
||||
[ bootstrapTools ] ++
|
||||
(with pkgs; [
|
||||
xz.bin xz.out bash zlib libxml2.out curl.out openssl.out libssh2.out
|
||||
nghttp2.lib coreutils gnugrep pcre.out gmp libiconv brotli.lib
|
||||
] ++ lib.optional haveKRB5 libkrb5) ++
|
||||
(with pkgs."${finalLlvmPackages}"; [
|
||||
libcxx libcxx.dev libcxxabi libcxxabi.dev compiler-rt clang-unwrapped
|
||||
]) ++
|
||||
(with pkgs.darwin; [ dyld ICU Libsystem locale ] ++ lib.optional useAppleSDKLibs objc4);
|
||||
"${finalLlvmPackages}" = super."${finalLlvmPackages}" // (
|
||||
let
|
||||
libraries = super."${finalLlvmPackages}".libraries.extend (_: _: {
|
||||
inherit (pkgs."${finalLlvmPackages}") libcxx libcxxabi;
|
||||
});
|
||||
in
|
||||
{ inherit libraries; } // libraries
|
||||
);
|
||||
|
||||
overrides = persistent;
|
||||
};
|
||||
|
||||
stage4 = prevStage: let
|
||||
persistent = self: super: with prevStage; {
|
||||
inherit
|
||||
gnumake gzip gnused bzip2 gawk ed xz patch bash python3
|
||||
ncurses libffi zlib gmp pcre gnugrep cmake
|
||||
coreutils findutils diffutils patchutils ninja libxml2;
|
||||
|
||||
# Hack to make sure we don't link ncurses in bootstrap tools. The proper
|
||||
# solution is to avoid passing -L/nix-store/...-bootstrap-tools/lib,
|
||||
# quite a sledgehammer just to get the C runtime.
|
||||
gettext = super.gettext.overrideAttrs (drv: {
|
||||
configureFlags = drv.configureFlags ++ [
|
||||
"--disable-curses"
|
||||
];
|
||||
});
|
||||
|
||||
"${finalLlvmPackages}" = super."${finalLlvmPackages}" // (let
|
||||
tools = super."${finalLlvmPackages}".tools.extend (llvmSelf: _: {
|
||||
clang-unwrapped-all-outputs = pkgs."${finalLlvmPackages}".clang-unwrapped-all-outputs.override { llvm = llvmSelf.llvm; };
|
||||
libllvm = pkgs."${finalLlvmPackages}".libllvm.override { inherit libxml2; };
|
||||
darwin = super.darwin.overrideScope (_: _: {
|
||||
inherit (darwin)
|
||||
dyld Libsystem xnu configd libdispatch libclosure launchd libiconv
|
||||
locale darwin-stubs sigtool;
|
||||
});
|
||||
libraries = super."${finalLlvmPackages}".libraries.extend (llvmSelf: _: {
|
||||
inherit (pkgs."${finalLlvmPackages}") libcxx libcxxabi compiler-rt;
|
||||
});
|
||||
in { inherit tools libraries; } // tools // libraries);
|
||||
};
|
||||
in
|
||||
with prevStage; stageFun 3 prevStage {
|
||||
shell = "${pkgs.bash}/bin/bash";
|
||||
|
||||
darwin = super.darwin.overrideScope (_: superDarwin: {
|
||||
inherit (darwin) dyld Libsystem libiconv locale darwin-stubs;
|
||||
# We have a valid shell here (this one has no bootstrap-tools runtime deps) so stageFun
|
||||
# enables patchShebangs above. Unfortunately, patchShebangs ignores our $SHELL setting
|
||||
# and instead goes by $PATH, which happens to contain bootstrapTools. So it goes and
|
||||
# patches our shebangs back to point at bootstrapTools. This makes sure bash comes first.
|
||||
extraNativeBuildInputs = with pkgs; [ xz ];
|
||||
extraBuildInputs = [ pkgs.darwin.CF pkgs.bash ];
|
||||
libcxx = pkgs."${finalLlvmPackages}".libcxx;
|
||||
|
||||
# See useAppleSDKLibs in darwin-packages.nix
|
||||
CF = if useAppleSDKLibs then super.darwin.CF else superDarwin.CF.override {
|
||||
inherit libxml2;
|
||||
python3 = prevStage.python3;
|
||||
};
|
||||
});
|
||||
extraPreHook = ''
|
||||
export PATH=${pkgs.bash}/bin:$PATH
|
||||
export PATH_LOCALE=${pkgs.darwin.locale}/share/locale
|
||||
'';
|
||||
|
||||
allowedRequisites =
|
||||
[ bootstrapTools ] ++
|
||||
(with pkgs; [
|
||||
xz.bin
|
||||
xz.out
|
||||
bash
|
||||
zlib
|
||||
libxml2.out
|
||||
curl.out
|
||||
openssl.out
|
||||
libssh2.out
|
||||
nghttp2.lib
|
||||
coreutils
|
||||
gnugrep
|
||||
pcre.out
|
||||
gmp
|
||||
libiconv
|
||||
brotli.lib
|
||||
] ++ lib.optional haveKRB5 libkrb5) ++
|
||||
(with pkgs."${finalLlvmPackages}"; [
|
||||
libcxx
|
||||
libcxx.dev
|
||||
libcxxabi
|
||||
libcxxabi.dev
|
||||
compiler-rt
|
||||
clang-unwrapped
|
||||
]) ++
|
||||
(with pkgs.darwin; [ dyld ICU Libsystem locale ] ++ lib.optional useAppleSDKLibs objc4);
|
||||
|
||||
overrides = persistent;
|
||||
};
|
||||
in with prevStage; stageFun 4 prevStage {
|
||||
shell = "${pkgs.bash}/bin/bash";
|
||||
extraNativeBuildInputs = with pkgs; [ xz ];
|
||||
extraBuildInputs = [ pkgs.darwin.CF pkgs.bash ];
|
||||
libcxx = pkgs."${finalLlvmPackages}".libcxx;
|
||||
|
||||
extraPreHook = ''
|
||||
export PATH_LOCALE=${pkgs.darwin.locale}/share/locale
|
||||
'';
|
||||
overrides = persistent;
|
||||
};
|
||||
stage4 = prevStage:
|
||||
let
|
||||
persistent = self: super: with prevStage; {
|
||||
inherit
|
||||
gnumake gzip gnused bzip2 gawk ed xz patch bash python3
|
||||
ncurses libffi zlib gmp pcre gnugrep cmake
|
||||
coreutils findutils diffutils patchutils ninja libxml2;
|
||||
|
||||
stdenvDarwin = prevStage: let
|
||||
doSign = localSystem.isAarch64;
|
||||
pkgs = prevStage;
|
||||
persistent = self: super: with prevStage; {
|
||||
inherit
|
||||
gnumake gzip gnused bzip2 gawk ed xz patch bash
|
||||
ncurses libffi zlib gmp pcre gnugrep
|
||||
coreutils findutils diffutils patchutils pbzx;
|
||||
# Hack to make sure we don't link ncurses in bootstrap tools. The proper
|
||||
# solution is to avoid passing -L/nix-store/...-bootstrap-tools/lib,
|
||||
# quite a sledgehammer just to get the C runtime.
|
||||
gettext = super.gettext.overrideAttrs (drv: {
|
||||
configureFlags = drv.configureFlags ++ [
|
||||
"--disable-curses"
|
||||
];
|
||||
});
|
||||
|
||||
darwin = super.darwin.overrideScope (_: _: {
|
||||
inherit (darwin) dyld ICU Libsystem Csu libiconv rewrite-tbd;
|
||||
"${finalLlvmPackages}" = super."${finalLlvmPackages}" // (
|
||||
let
|
||||
tools = super."${finalLlvmPackages}".tools.extend (llvmSelf: _: {
|
||||
clang-unwrapped-all-outputs = pkgs."${finalLlvmPackages}".clang-unwrapped-all-outputs.override { llvm = llvmSelf.llvm; };
|
||||
libllvm = pkgs."${finalLlvmPackages}".libllvm.override { inherit libxml2; };
|
||||
});
|
||||
libraries = super."${finalLlvmPackages}".libraries.extend (llvmSelf: _: {
|
||||
inherit (pkgs."${finalLlvmPackages}") libcxx libcxxabi compiler-rt;
|
||||
});
|
||||
in
|
||||
{ inherit tools libraries; } // tools // libraries
|
||||
);
|
||||
|
||||
darwin = super.darwin.overrideScope (_: superDarwin: {
|
||||
inherit (darwin) dyld Libsystem libiconv locale darwin-stubs;
|
||||
|
||||
# See useAppleSDKLibs in darwin-packages.nix
|
||||
CF = if useAppleSDKLibs then super.darwin.CF else
|
||||
superDarwin.CF.override {
|
||||
inherit libxml2;
|
||||
python3 = prevStage.python3;
|
||||
};
|
||||
});
|
||||
};
|
||||
in
|
||||
with prevStage; stageFun 4 prevStage {
|
||||
shell = "${pkgs.bash}/bin/bash";
|
||||
extraNativeBuildInputs = with pkgs; [ xz ];
|
||||
extraBuildInputs = [ pkgs.darwin.CF pkgs.bash ];
|
||||
libcxx = pkgs."${finalLlvmPackages}".libcxx;
|
||||
|
||||
extraPreHook = ''
|
||||
export PATH_LOCALE=${pkgs.darwin.locale}/share/locale
|
||||
'';
|
||||
overrides = persistent;
|
||||
};
|
||||
|
||||
stdenvDarwin = prevStage:
|
||||
let
|
||||
doSign = localSystem.isAarch64;
|
||||
pkgs = prevStage;
|
||||
persistent = self: super: with prevStage; {
|
||||
inherit
|
||||
gnumake gzip gnused bzip2 gawk ed xz patch bash
|
||||
ncurses libffi zlib gmp pcre gnugrep
|
||||
coreutils findutils diffutils patchutils pbzx;
|
||||
|
||||
darwin = super.darwin.overrideScope (_: _: {
|
||||
inherit (darwin) dyld ICU Libsystem Csu libiconv rewrite-tbd;
|
||||
} // lib.optionalAttrs (super.stdenv.targetPlatform == localSystem) {
|
||||
inherit (darwin) binutils binutils-unwrapped cctools;
|
||||
});
|
||||
} // lib.optionalAttrs (super.stdenv.targetPlatform == localSystem) {
|
||||
inherit (darwin) binutils binutils-unwrapped cctools;
|
||||
});
|
||||
} // lib.optionalAttrs (super.stdenv.targetPlatform == localSystem) {
|
||||
inherit llvm;
|
||||
inherit llvm;
|
||||
|
||||
# Need to get rid of these when cross-compiling.
|
||||
"${finalLlvmPackages}" = super."${finalLlvmPackages}" // (let
|
||||
tools = super."${finalLlvmPackages}".tools.extend (_: super: {
|
||||
inherit (pkgs."${finalLlvmPackages}") llvm clang-unwrapped;
|
||||
# Need to get rid of these when cross-compiling.
|
||||
"${finalLlvmPackages}" = super."${finalLlvmPackages}" // (
|
||||
let
|
||||
tools = super."${finalLlvmPackages}".tools.extend (_: super: {
|
||||
inherit (pkgs."${finalLlvmPackages}") llvm clang-unwrapped;
|
||||
});
|
||||
libraries = super."${finalLlvmPackages}".libraries.extend (_: _: {
|
||||
inherit (pkgs."${finalLlvmPackages}") compiler-rt libcxx libcxxabi;
|
||||
});
|
||||
in
|
||||
{ inherit tools libraries; } // tools // libraries
|
||||
);
|
||||
|
||||
inherit binutils binutils-unwrapped;
|
||||
};
|
||||
in
|
||||
import ../generic rec {
|
||||
name = "stdenv-darwin";
|
||||
|
||||
inherit config;
|
||||
inherit (pkgs.stdenv) fetchurlBoot;
|
||||
|
||||
buildPlatform = localSystem;
|
||||
hostPlatform = localSystem;
|
||||
targetPlatform = localSystem;
|
||||
|
||||
preHook = commonPreHook + ''
|
||||
export NIX_COREFOUNDATION_RPATH=${pkgs.darwin.CF}/Library/Frameworks
|
||||
export PATH_LOCALE=${pkgs.darwin.locale}/share/locale
|
||||
'';
|
||||
|
||||
__stdenvImpureHostDeps = commonImpureHostDeps;
|
||||
__extraImpureHostDeps = commonImpureHostDeps;
|
||||
|
||||
initialPath = import ../common-path.nix { inherit pkgs; };
|
||||
shell = "${pkgs.bash}/bin/bash";
|
||||
|
||||
cc = pkgs."${finalLlvmPackages}".libcxxClang;
|
||||
|
||||
extraNativeBuildInputs = lib.optionals localSystem.isAarch64 [
|
||||
pkgs.updateAutotoolsGnuConfigScriptsHook
|
||||
];
|
||||
|
||||
extraBuildInputs = [ pkgs.darwin.CF ];
|
||||
|
||||
extraAttrs = {
|
||||
libc = pkgs.darwin.Libsystem;
|
||||
shellPackage = pkgs.bash;
|
||||
inherit bootstrapTools;
|
||||
};
|
||||
|
||||
allowedRequisites = (with pkgs; [
|
||||
xz.out
|
||||
xz.bin
|
||||
gmp.out
|
||||
gnumake
|
||||
findutils
|
||||
bzip2.out
|
||||
bzip2.bin
|
||||
zlib.out
|
||||
zlib.dev
|
||||
libffi.out
|
||||
coreutils
|
||||
ed
|
||||
diffutils
|
||||
gnutar
|
||||
gzip
|
||||
ncurses.out
|
||||
ncurses.dev
|
||||
ncurses.man
|
||||
gnused
|
||||
bash
|
||||
gawk
|
||||
gnugrep
|
||||
patch
|
||||
pcre.out
|
||||
gettext
|
||||
binutils.bintools
|
||||
darwin.binutils
|
||||
darwin.binutils.bintools
|
||||
curl.out
|
||||
openssl.out
|
||||
libssh2.out
|
||||
nghttp2.lib
|
||||
brotli.lib
|
||||
cc.expand-response-params
|
||||
libxml2.out
|
||||
] ++ lib.optional haveKRB5 libkrb5
|
||||
++ lib.optionals localSystem.isAarch64 [
|
||||
pkgs.updateAutotoolsGnuConfigScriptsHook
|
||||
pkgs.gnu-config
|
||||
])
|
||||
++ (with pkgs."${finalLlvmPackages}"; [
|
||||
libcxx
|
||||
libcxx.dev
|
||||
libcxxabi
|
||||
libcxxabi.dev
|
||||
llvm
|
||||
llvm.lib
|
||||
compiler-rt
|
||||
compiler-rt.dev
|
||||
clang-unwrapped
|
||||
libclang.dev
|
||||
libclang.lib
|
||||
])
|
||||
++ (with pkgs.darwin; [
|
||||
dyld
|
||||
Libsystem
|
||||
CF
|
||||
cctools
|
||||
ICU
|
||||
libiconv
|
||||
locale
|
||||
libtapi
|
||||
] ++ lib.optional useAppleSDKLibs objc4
|
||||
++ lib.optionals doSign [ postLinkSignHook sigtool signingUtils ]);
|
||||
|
||||
overrides = lib.composeExtensions persistent (self: super: {
|
||||
darwin = super.darwin.overrideScope (_: superDarwin: {
|
||||
inherit (prevStage.darwin) CF darwin-stubs;
|
||||
xnu = superDarwin.xnu.override { inherit (prevStage) python3; };
|
||||
});
|
||||
libraries = super."${finalLlvmPackages}".libraries.extend (_: _: {
|
||||
inherit (pkgs."${finalLlvmPackages}") compiler-rt libcxx libcxxabi;
|
||||
});
|
||||
in { inherit tools libraries; } // tools // libraries);
|
||||
|
||||
inherit binutils binutils-unwrapped;
|
||||
};
|
||||
in import ../generic rec {
|
||||
name = "stdenv-darwin";
|
||||
|
||||
inherit config;
|
||||
inherit (pkgs.stdenv) fetchurlBoot;
|
||||
|
||||
buildPlatform = localSystem;
|
||||
hostPlatform = localSystem;
|
||||
targetPlatform = localSystem;
|
||||
|
||||
preHook = commonPreHook + ''
|
||||
export NIX_COREFOUNDATION_RPATH=${pkgs.darwin.CF}/Library/Frameworks
|
||||
export PATH_LOCALE=${pkgs.darwin.locale}/share/locale
|
||||
'';
|
||||
|
||||
__stdenvImpureHostDeps = commonImpureHostDeps;
|
||||
__extraImpureHostDeps = commonImpureHostDeps;
|
||||
|
||||
initialPath = import ../common-path.nix { inherit pkgs; };
|
||||
shell = "${pkgs.bash}/bin/bash";
|
||||
|
||||
cc = pkgs."${finalLlvmPackages}".libcxxClang;
|
||||
|
||||
extraNativeBuildInputs = lib.optionals localSystem.isAarch64 [
|
||||
pkgs.updateAutotoolsGnuConfigScriptsHook
|
||||
];
|
||||
|
||||
extraBuildInputs = [ pkgs.darwin.CF ];
|
||||
|
||||
extraAttrs = {
|
||||
libc = pkgs.darwin.Libsystem;
|
||||
shellPackage = pkgs.bash;
|
||||
inherit bootstrapTools;
|
||||
};
|
||||
|
||||
allowedRequisites = (with pkgs; [
|
||||
xz.out xz.bin gmp.out gnumake findutils bzip2.out
|
||||
bzip2.bin
|
||||
zlib.out zlib.dev libffi.out coreutils ed diffutils gnutar
|
||||
gzip ncurses.out ncurses.dev ncurses.man gnused bash gawk
|
||||
gnugrep patch pcre.out gettext
|
||||
binutils.bintools darwin.binutils darwin.binutils.bintools
|
||||
curl.out openssl.out libssh2.out nghttp2.lib brotli.lib
|
||||
cc.expand-response-params libxml2.out
|
||||
] ++ lib.optional haveKRB5 libkrb5
|
||||
++ lib.optionals localSystem.isAarch64 [
|
||||
pkgs.updateAutotoolsGnuConfigScriptsHook pkgs.gnu-config
|
||||
])
|
||||
++ (with pkgs."${finalLlvmPackages}"; [
|
||||
libcxx libcxx.dev libcxxabi libcxxabi.dev
|
||||
llvm llvm.lib compiler-rt compiler-rt.dev
|
||||
clang-unwrapped libclang.dev libclang.lib
|
||||
])
|
||||
++ (with pkgs.darwin; [
|
||||
dyld Libsystem CF cctools ICU libiconv locale libtapi
|
||||
] ++ lib.optional useAppleSDKLibs objc4
|
||||
++ lib.optionals doSign [ postLinkSignHook sigtool signingUtils ]);
|
||||
|
||||
overrides = lib.composeExtensions persistent (self: super: {
|
||||
darwin = super.darwin.overrideScope (_: superDarwin: {
|
||||
inherit (prevStage.darwin) CF darwin-stubs;
|
||||
xnu = superDarwin.xnu.override { inherit (prevStage) python3; };
|
||||
} // lib.optionalAttrs (super.stdenv.targetPlatform == localSystem) {
|
||||
clang = cc;
|
||||
llvmPackages = super.llvmPackages // { clang = cc; };
|
||||
inherit cc;
|
||||
});
|
||||
} // lib.optionalAttrs (super.stdenv.targetPlatform == localSystem) {
|
||||
clang = cc;
|
||||
llvmPackages = super.llvmPackages // { clang = cc; };
|
||||
inherit cc;
|
||||
});
|
||||
};
|
||||
};
|
||||
|
||||
stagesDarwin = [
|
||||
({}: stage0)
|
||||
|
@ -1,24 +1,24 @@
|
||||
{ lib, buildGoModule, fetchFromGitHub, brotli }:
|
||||
{ lib, buildGoModule, fetchFromGitHub, brotli, libsodium }:
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "wal-g";
|
||||
version = "0.2.21";
|
||||
version = "1.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "wal-g";
|
||||
repo = "wal-g";
|
||||
rev = "v${version}";
|
||||
sha256 = "0pinvi2b3vi6lvw3im8w6vcjm1qg2kbf6ydf1h72xjz5933yrjy4";
|
||||
sha256 = "0al8xg57fh3zqwgmm6lkcnpnisividhqld9jry3sqk2k45856y8j";
|
||||
};
|
||||
|
||||
vendorSha256 = "0qzw0lr0x6kqlpa4kghrfl2271752sr7idk6n4hkhk6q0kghcsnk";
|
||||
vendorSha256 = "0n0ymgcgkjlp0indih8h55jjj6372rdfcq717kwln6sxm4r9mb17";
|
||||
|
||||
buildInputs = [ brotli ];
|
||||
buildInputs = [ brotli libsodium ];
|
||||
|
||||
subPackages = [ "main/pg" ];
|
||||
|
||||
buildFlagsArray = [
|
||||
"-tags=brotli"
|
||||
"-tags=brotli libsodium"
|
||||
"-ldflags=-s -w -X github.com/wal-g/wal-g/cmd/pg.WalgVersion=${version} -X github.com/wal-g/wal-g/cmd/pg.GitRevision=${src.rev}"
|
||||
];
|
||||
|
||||
|
@ -2,16 +2,16 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "goreleaser";
|
||||
version = "0.166.0";
|
||||
version = "0.166.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "goreleaser";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-4D8KiTGuiJ0y1w3NdWcOs5q61kuIIZ49ys18wMb3fXI=";
|
||||
sha256 = "sha256-+8hh4BR6sTpQyNeiaXgcp/ezPptvbZESky6VAAg1dfI=";
|
||||
};
|
||||
|
||||
vendorSha256 = "sha256-UI/cz9xZYi6BU/4MK/Qup55Kc1yv6DQHCEJM/I5oMec=";
|
||||
vendorSha256 = "sha256-PkSvdpP9SuftxdcZMA5xG1zSb87e1Ui/oX+HdLBEW0E=";
|
||||
|
||||
buildFlagsArray = [
|
||||
"-ldflags="
|
||||
|
25
pkgs/tools/networking/mubeng/default.nix
Normal file
25
pkgs/tools/networking/mubeng/default.nix
Normal file
@ -0,0 +1,25 @@
|
||||
{ lib
|
||||
, buildGoModule
|
||||
, fetchFromGitHub
|
||||
}:
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "mubeng";
|
||||
version = "0.4.5";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "kitabisa";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "03hm4wqlvsbi06g0ijrhvbk9i2ahmd1m8l80wbcijznhbdl5msl8";
|
||||
};
|
||||
|
||||
vendorSha256 = "1qcxix6724ly0klsr8bw3nv6pxn0wixqiqcgqkcp6sia4dxbbg14";
|
||||
|
||||
meta = with lib; {
|
||||
description = "Proxy checker and IP rotator";
|
||||
homepage = "https://github.com/kitabisa/mubeng";
|
||||
license = with licenses; [ asl20 ];
|
||||
maintainers = with maintainers; [ fab ];
|
||||
};
|
||||
}
|
@ -1,53 +1,57 @@
|
||||
GEM
|
||||
remote: https://rubygems.org/
|
||||
specs:
|
||||
activesupport (6.0.1)
|
||||
activesupport (6.1.3.2)
|
||||
concurrent-ruby (~> 1.0, >= 1.0.2)
|
||||
i18n (>= 0.7, < 2)
|
||||
minitest (~> 5.1)
|
||||
tzinfo (~> 1.1)
|
||||
zeitwerk (~> 2.2)
|
||||
i18n (>= 1.6, < 2)
|
||||
minitest (>= 5.1)
|
||||
tzinfo (~> 2.0)
|
||||
zeitwerk (~> 2.3)
|
||||
addressable (2.7.0)
|
||||
public_suffix (>= 2.0.2, < 5.0)
|
||||
cms_scanner (0.7.1)
|
||||
cms_scanner (0.13.4)
|
||||
ethon (~> 0.14.0)
|
||||
get_process_mem (~> 0.2.5)
|
||||
nokogiri (~> 1.10.4)
|
||||
opt_parse_validator (~> 1.8.1)
|
||||
public_suffix (>= 3.0, < 4.1)
|
||||
ruby-progressbar (~> 1.10.0)
|
||||
nokogiri (~> 1.11.0)
|
||||
opt_parse_validator (~> 1.9.4)
|
||||
public_suffix (~> 4.0.3)
|
||||
ruby-progressbar (>= 1.10, < 1.12)
|
||||
sys-proctable (~> 1.2.2)
|
||||
typhoeus (~> 1.3.0)
|
||||
typhoeus (>= 1.3, < 1.5)
|
||||
xmlrpc (~> 0.3)
|
||||
yajl-ruby (~> 1.4.1)
|
||||
concurrent-ruby (1.1.5)
|
||||
ethon (0.12.0)
|
||||
ffi (>= 1.3.0)
|
||||
ffi (1.11.3)
|
||||
get_process_mem (0.2.5)
|
||||
concurrent-ruby (1.1.8)
|
||||
ethon (0.14.0)
|
||||
ffi (>= 1.15.0)
|
||||
ffi (1.15.1)
|
||||
get_process_mem (0.2.7)
|
||||
ffi (~> 1.0)
|
||||
i18n (1.7.0)
|
||||
i18n (1.8.10)
|
||||
concurrent-ruby (~> 1.0)
|
||||
mini_portile2 (2.4.0)
|
||||
minitest (5.13.0)
|
||||
nokogiri (1.10.7)
|
||||
mini_portile2 (~> 2.4.0)
|
||||
opt_parse_validator (1.8.1)
|
||||
activesupport (> 4.2, < 6.1.0)
|
||||
mini_portile2 (2.5.3)
|
||||
minitest (5.14.4)
|
||||
nokogiri (1.11.6)
|
||||
mini_portile2 (~> 2.5.0)
|
||||
racc (~> 1.4)
|
||||
opt_parse_validator (1.9.4)
|
||||
activesupport (>= 5.2, < 6.2.0)
|
||||
addressable (>= 2.5, < 2.8)
|
||||
public_suffix (4.0.1)
|
||||
ruby-progressbar (1.10.1)
|
||||
sys-proctable (1.2.2)
|
||||
public_suffix (4.0.6)
|
||||
racc (1.5.2)
|
||||
ruby-progressbar (1.11.0)
|
||||
sys-proctable (1.2.6)
|
||||
ffi
|
||||
thread_safe (0.3.6)
|
||||
typhoeus (1.3.1)
|
||||
typhoeus (1.4.0)
|
||||
ethon (>= 0.9.0)
|
||||
tzinfo (1.2.5)
|
||||
thread_safe (~> 0.1)
|
||||
wpscan (3.7.5)
|
||||
cms_scanner (~> 0.7.1)
|
||||
xmlrpc (0.3.0)
|
||||
tzinfo (2.0.4)
|
||||
concurrent-ruby (~> 1.0)
|
||||
webrick (1.7.0)
|
||||
wpscan (3.8.17)
|
||||
cms_scanner (~> 0.13.3)
|
||||
xmlrpc (0.3.2)
|
||||
webrick
|
||||
yajl-ruby (1.4.1)
|
||||
zeitwerk (2.2.2)
|
||||
zeitwerk (2.4.2)
|
||||
|
||||
PLATFORMS
|
||||
ruby
|
||||
|
@ -5,10 +5,10 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "190xv21yz03zz8nlfly557ir859jr5zkwi89naziy65hskdnkw1s";
|
||||
sha256 = "1csxddyhl6k773ycxjvmyshyr4g9jb1icbs3pnm7crnavqs4h1yr";
|
||||
type = "gem";
|
||||
};
|
||||
version = "6.0.1";
|
||||
version = "6.1.3.2";
|
||||
};
|
||||
addressable = {
|
||||
dependencies = ["public_suffix"];
|
||||
@ -22,25 +22,25 @@
|
||||
version = "2.7.0";
|
||||
};
|
||||
cms_scanner = {
|
||||
dependencies = ["get_process_mem" "nokogiri" "opt_parse_validator" "public_suffix" "ruby-progressbar" "sys-proctable" "typhoeus" "xmlrpc" "yajl-ruby"];
|
||||
dependencies = ["ethon" "get_process_mem" "nokogiri" "opt_parse_validator" "public_suffix" "ruby-progressbar" "sys-proctable" "typhoeus" "xmlrpc" "yajl-ruby"];
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "14xmsigczibihlziisdgabsaz9lm2v31snlkc8kmza73pv8a61r4";
|
||||
sha256 = "1xzkbk6a93sdhshzlkx1dcpln3fcw2apccb7g6jha0g1im7yhgcj";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.7.1";
|
||||
version = "0.13.4";
|
||||
};
|
||||
concurrent-ruby = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1x07r23s7836cpp5z9yrlbpljcxpax14yw4fy4bnp6crhr6x24an";
|
||||
sha256 = "0mr23wq0szj52xnj0zcn1k0c7j4v79wlwbijkpfcscqww3l6jlg3";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.1.5";
|
||||
version = "1.1.8";
|
||||
};
|
||||
ethon = {
|
||||
dependencies = ["ffi"];
|
||||
@ -48,20 +48,20 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0gggrgkcq839mamx7a8jbnp2h7x2ykfn34ixwskwb0lzx2ak17g9";
|
||||
sha256 = "1bby4hbq96vnzcdbbybcbddin8dxdnj1ns758kcr4akykningqhh";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.12.0";
|
||||
version = "0.14.0";
|
||||
};
|
||||
ffi = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "10ay35dm0lkcqprsiya6q2kwvyid884102ryipr4vrk790yfp8kd";
|
||||
sha256 = "15nn2v70rql15vb0pm9cg0f3xsaslwjkv6xgz0k5jh48idmfw9fi";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.11.3";
|
||||
version = "1.15.1";
|
||||
};
|
||||
get_process_mem = {
|
||||
dependencies = ["ffi"];
|
||||
@ -69,10 +69,10 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1q7pivp9z9pdxc2ha32q7x9zgqy8m9jf87g6n5mvi5l6knxya8sh";
|
||||
sha256 = "1fkyyyxjcx4iigm8vhraa629k2lxa1npsv4015y82snx84v3rzaa";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.2.5";
|
||||
version = "0.2.7";
|
||||
};
|
||||
i18n = {
|
||||
dependencies = ["concurrent-ruby"];
|
||||
@ -80,41 +80,41 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0hmypvx9iyc0b4hski7aic2xzm09cg1c7q1qlpnk3k8s5acxzyhl";
|
||||
sha256 = "0g2fnag935zn2ggm5cn6k4s4xvv53v2givj1j90szmvavlpya96a";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.7.0";
|
||||
version = "1.8.10";
|
||||
};
|
||||
mini_portile2 = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "15zplpfw3knqifj9bpf604rb3wc1vhq6363pd6lvhayng8wql5vy";
|
||||
sha256 = "1ad0mli9rc0f17zw4ibp24dbj1y39zkykijsjmnzl4gwpg5s0j6k";
|
||||
type = "gem";
|
||||
};
|
||||
version = "2.4.0";
|
||||
version = "2.5.3";
|
||||
};
|
||||
minitest = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0w16p7cvslh3hxd3cia8jg4pd85z7rz7xqb16vh42gj4rijn8rmi";
|
||||
sha256 = "19z7wkhg59y8abginfrm2wzplz7py3va8fyngiigngqvsws6cwgl";
|
||||
type = "gem";
|
||||
};
|
||||
version = "5.13.0";
|
||||
version = "5.14.4";
|
||||
};
|
||||
nokogiri = {
|
||||
dependencies = ["mini_portile2"];
|
||||
dependencies = ["mini_portile2" "racc"];
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0r0qpgf80h764k176yr63gqbs2z0xbsp8vlvs2a79d5r9vs83kln";
|
||||
sha256 = "1z4x366icbl9w13pk50vxx5kywlksvhxqxrpv8f5xpjxfl3jl64z";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.10.7";
|
||||
version = "1.11.6";
|
||||
};
|
||||
opt_parse_validator = {
|
||||
dependencies = ["activesupport" "addressable"];
|
||||
@ -122,30 +122,40 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "19rm44ww3zfb440kqpdprwb7y2d0gcm4znhv4kfs8dkhz8k1k5vy";
|
||||
sha256 = "1n297vrxq7r1fsh0x8yf1nhgdawmcl0sq04l468gwrd4y754rjyx";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.8.1";
|
||||
version = "1.9.4";
|
||||
};
|
||||
public_suffix = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0xnfv2j2bqgdpg2yq9i2rxby0w2sc9h5iyjkpaas2xknwrgmhdb0";
|
||||
sha256 = "1xqcgkl7bwws1qrlnmxgh8g4g9m10vg60bhlw40fplninb3ng6d9";
|
||||
type = "gem";
|
||||
};
|
||||
version = "4.0.1";
|
||||
version = "4.0.6";
|
||||
};
|
||||
racc = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "178k7r0xn689spviqzhvazzvxfq6fyjldxb3ywjbgipbfi4s8j1g";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.5.2";
|
||||
};
|
||||
ruby-progressbar = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1k77i0d4wsn23ggdd2msrcwfy0i376cglfqypkk2q77r2l3408zf";
|
||||
sha256 = "02nmaw7yx9kl7rbaan5pl8x5nn0y4j5954mzrkzi9i3dhsrps4nc";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.10.1";
|
||||
version = "1.11.0";
|
||||
};
|
||||
sys-proctable = {
|
||||
dependencies = ["ffi"];
|
||||
@ -153,20 +163,10 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0ndk34ipd4v96v5cbvj0kbkhnssi4nqrzd7sifyg3bavi1jrw3w8";
|
||||
sha256 = "17zzb1slwhq0j42qh8ywnh4c5ww2wwskl9362ayxf0am86b02zsb";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.2.2";
|
||||
};
|
||||
thread_safe = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0nmhcgq6cgz44srylra07bmaw99f5271l0dpsvl5f75m44l0gmwy";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.3.6";
|
||||
version = "1.2.6";
|
||||
};
|
||||
typhoeus = {
|
||||
dependencies = ["ethon"];
|
||||
@ -174,21 +174,31 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0cni8b1idcp0dk8kybmxydadhfpaj3lbs99w5kjibv8bsmip2zi5";
|
||||
sha256 = "1m22yrkmbj81rzhlny81j427qdvz57yk5wbcf3km0nf3bl6qiygz";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.3.1";
|
||||
version = "1.4.0";
|
||||
};
|
||||
tzinfo = {
|
||||
dependencies = ["thread_safe"];
|
||||
dependencies = ["concurrent-ruby"];
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1fjx9j327xpkkdlxwmkl3a8wqj7i4l4jwlrv3z13mg95z9wl253z";
|
||||
sha256 = "10qp5x7f9hvlc0psv9gsfbxg4a7s0485wsbq1kljkxq94in91l4z";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.2.5";
|
||||
version = "2.0.4";
|
||||
};
|
||||
webrick = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1d4cvgmxhfczxiq5fr534lmizkhigd15bsx5719r5ds7k7ivisc7";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.7.0";
|
||||
};
|
||||
wpscan = {
|
||||
dependencies = ["cms_scanner"];
|
||||
@ -196,20 +206,21 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0vn6i48msxhj8g769vn2s3siv98cnqchblw69ldk1mr85lw4jci6";
|
||||
sha256 = "0jdn2v5cmxlzq9nkzh5lqnqr0mbiyn87g6bfc0074m19m38g19r9";
|
||||
type = "gem";
|
||||
};
|
||||
version = "3.7.5";
|
||||
version = "3.8.17";
|
||||
};
|
||||
xmlrpc = {
|
||||
dependencies = ["webrick"];
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1s744iwblw262gj357pky3d9fcx9hisvla7rnw29ysn5zsb6i683";
|
||||
sha256 = "1xa79ry3976ylap38cr5g6q3m81plm611flqd3dwgnmgbkycb6jp";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.3.0";
|
||||
version = "0.3.2";
|
||||
};
|
||||
yajl-ruby = {
|
||||
groups = ["default"];
|
||||
@ -226,9 +237,9 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0jywi63w1m2b2w9fj9rjb9n3imf6p5bfijfmml1xzdnsrdrjz0x1";
|
||||
sha256 = "1746czsjarixq0x05f7p3hpzi38ldg6wxnxxw74kbjzh1sdjgmpl";
|
||||
type = "gem";
|
||||
};
|
||||
version = "2.2.2";
|
||||
version = "2.4.2";
|
||||
};
|
||||
}
|
||||
|
@ -1655,6 +1655,8 @@ in
|
||||
|
||||
play-with-mpv = callPackage ../tools/video/play-with-mpv { };
|
||||
|
||||
plausible = callPackage ../servers/web-apps/plausible { };
|
||||
|
||||
reattach-to-user-namespace = callPackage ../os-specific/darwin/reattach-to-user-namespace {};
|
||||
|
||||
skhd = callPackage ../os-specific/darwin/skhd {
|
||||
@ -6948,6 +6950,8 @@ in
|
||||
|
||||
mt-st = callPackage ../tools/backup/mt-st {};
|
||||
|
||||
mubeng = callPackage ../tools/networking/mubeng { };
|
||||
|
||||
multitime = callPackage ../tools/misc/multitime { };
|
||||
|
||||
sta = callPackage ../tools/misc/sta {};
|
||||
|
@ -4,6 +4,7 @@
|
||||
|
||||
{ nixpkgs
|
||||
, officialRelease
|
||||
, supportedSystems
|
||||
, pkgs ? import nixpkgs.outPath {}
|
||||
, nix ? pkgs.nix
|
||||
, lib-tests ? import ../../lib/tests/release.nix { inherit pkgs; }
|
||||
@ -66,7 +67,7 @@ releaseTools.sourceTarball {
|
||||
fi
|
||||
|
||||
# Check that all-packages.nix evaluates on a number of platforms without any warnings.
|
||||
for platform in i686-linux x86_64-linux x86_64-darwin; do
|
||||
for platform in ${pkgs.lib.concatStringsSep " " supportedSystems}; do
|
||||
header "checking Nixpkgs on $platform"
|
||||
|
||||
nix-env -f . \
|
||||
|
@ -36,4 +36,5 @@ mapAliases ({
|
||||
smart_open = smart-open; # added 2021-03-14
|
||||
google_api_python_client = google-api-python-client; # added 2021-03-19
|
||||
googleapis_common_protos = googleapis-common-protos; # added 2021-03-19
|
||||
mechanicalsoup = MechanicalSoup; # added 2021-06-01
|
||||
})
|
||||
|
@ -4219,7 +4219,7 @@ in {
|
||||
|
||||
mecab-python3 = callPackage ../development/python-modules/mecab-python3 { };
|
||||
|
||||
MechanicalSoup = callPackage ../development/python-modules/MechanicalSoup { };
|
||||
mechanicalsoup = callPackage ../development/python-modules/mechanicalsoup { };
|
||||
|
||||
mechanize = callPackage ../development/python-modules/mechanize { };
|
||||
|
||||
|
@ -12,7 +12,7 @@ with import ./release-lib.nix { inherit supportedSystems nixpkgsArgs; };
|
||||
{
|
||||
|
||||
tarball = import ./make-tarball.nix {
|
||||
inherit nixpkgs;
|
||||
inherit nixpkgs supportedSystems;
|
||||
officialRelease = false;
|
||||
};
|
||||
|
||||
|
@ -28,7 +28,7 @@ let
|
||||
supportDarwin = builtins.elem "x86_64-darwin" systemsWithAnySupport;
|
||||
|
||||
jobs =
|
||||
{ tarball = import ./make-tarball.nix { inherit pkgs nixpkgs officialRelease; };
|
||||
{ tarball = import ./make-tarball.nix { inherit pkgs nixpkgs officialRelease supportedSystems; };
|
||||
|
||||
metrics = import ./metrics.nix { inherit pkgs nixpkgs; };
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user