mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-12-17 11:13:30 +00:00
Merge master into haskell-updates
This commit is contained in:
commit
c8c04e3808
2
.github/CODEOWNERS
vendored
2
.github/CODEOWNERS
vendored
@ -122,8 +122,6 @@
|
||||
|
||||
# Rust
|
||||
/pkgs/development/compilers/rust @Mic92 @LnL7 @zowoq
|
||||
/pkgs/build-support/rust @zowoq
|
||||
/doc/languages-frameworks/rust.section.md @zowoq
|
||||
|
||||
# C compilers
|
||||
/pkgs/development/compilers/gcc @matthewbauer
|
||||
|
@ -693,6 +693,11 @@ in mkLicense lset) ({
|
||||
fullName = "SIL Open Font License 1.1";
|
||||
};
|
||||
|
||||
oml = {
|
||||
spdxId = "OML";
|
||||
fullName = "Open Market License";
|
||||
};
|
||||
|
||||
openldap = {
|
||||
spdxId = "OLDAP-2.8";
|
||||
fullName = "Open LDAP Public License v2.8";
|
||||
@ -824,6 +829,11 @@ in mkLicense lset) ({
|
||||
fullName = "TCL/TK License";
|
||||
};
|
||||
|
||||
ucd = {
|
||||
fullName = "Unicode Character Database License";
|
||||
url = "https://fedoraproject.org/wiki/Licensing:UCD";
|
||||
};
|
||||
|
||||
ufl = {
|
||||
fullName = "Ubuntu Font License 1.0";
|
||||
url = "https://ubuntu.com/legal/font-licence";
|
||||
|
@ -107,6 +107,7 @@ with lib.maintainers; {
|
||||
|
||||
cinnamon = {
|
||||
members = [
|
||||
bobby285271
|
||||
mkg20001
|
||||
];
|
||||
scope = "Maintain Cinnamon desktop environment and applications made by the LinuxMint team.";
|
||||
|
@ -198,6 +198,13 @@
|
||||
<link xlink:href="options.html#opt-services.kanata.enable">services.kanata</link>.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<link xlink:href="https://www.getoutline.com/">Outline</link>,
|
||||
a wiki and knowledge base similar to Notion. Available as
|
||||
<link linkend="opt-services.outline.enable">services.outline</link>.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<link xlink:href="https://github.com/aiberia/persistent-evdev">persistent-evdev</link>,
|
||||
|
@ -74,6 +74,8 @@ In addition to numerous new and upgraded packages, this release has the followin
|
||||
- [kanata](https://github.com/jtroo/kanata), a tool to improve keyboard comfort and usability with advanced customization.
|
||||
Available as [services.kanata](options.html#opt-services.kanata.enable).
|
||||
|
||||
- [Outline](https://www.getoutline.com/), a wiki and knowledge base similar to Notion. Available as [services.outline](#opt-services.outline.enable).
|
||||
|
||||
- [persistent-evdev](https://github.com/aiberia/persistent-evdev), a daemon to add virtual proxy devices that mirror a physical input device but persist even if the underlying hardware is hot-plugged. Available as [services.persistent-evdev](#opt-services.persistent-evdev.enable).
|
||||
|
||||
- [schleuder](https://schleuder.org/), a mailing list manager with PGP support. Enable using [services.schleuder](#opt-services.schleuder.enable).
|
||||
|
@ -1104,6 +1104,7 @@
|
||||
./services/web-apps/prosody-filer.nix
|
||||
./services/web-apps/matomo.nix
|
||||
./services/web-apps/openwebrx.nix
|
||||
./services/web-apps/outline.nix
|
||||
./services/web-apps/restya-board.nix
|
||||
./services/web-apps/sogo.nix
|
||||
./services/web-apps/rss-bridge.nix
|
||||
|
777
nixos/modules/services/web-apps/outline.nix
Normal file
777
nixos/modules/services/web-apps/outline.nix
Normal file
@ -0,0 +1,777 @@
|
||||
{ config, lib, pkgs, ...}:
|
||||
|
||||
let
|
||||
defaultUser = "outline";
|
||||
cfg = config.services.outline;
|
||||
in
|
||||
{
|
||||
# See here for a reference of all the options:
|
||||
# https://github.com/outline/outline/blob/v0.65.2/.env.sample
|
||||
# https://github.com/outline/outline/blob/v0.65.2/app.json
|
||||
# https://github.com/outline/outline/blob/v0.65.2/server/env.ts
|
||||
# https://github.com/outline/outline/blob/v0.65.2/shared/types.ts
|
||||
# The order is kept the same here to make updating easier.
|
||||
options.services.outline = {
|
||||
enable = lib.mkEnableOption "outline";
|
||||
|
||||
package = lib.mkOption {
|
||||
default = pkgs.outline;
|
||||
defaultText = lib.literalExpression "pkgs.outline";
|
||||
type = lib.types.package;
|
||||
example = lib.literalExpression ''
|
||||
pkgs.outline.overrideAttrs (super: {
|
||||
# Ignore the domain part in emails that come from OIDC. This is might
|
||||
# be helpful if you want multiple users with different email providers
|
||||
# to still land in the same team. Note that this effectively makes
|
||||
# Outline a single-team instance.
|
||||
patchPhase = ${"''"}
|
||||
sed -i 's/const domain = parts\.length && parts\[1\];/const domain = "example.com";/g' server/routes/auth/providers/oidc.ts
|
||||
${"''"};
|
||||
})
|
||||
'';
|
||||
description = "Outline package to use.";
|
||||
};
|
||||
|
||||
user = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = defaultUser;
|
||||
description = ''
|
||||
User under which the service should run. If this is the default value,
|
||||
the user will be created, with the specified group as the primary
|
||||
group.
|
||||
'';
|
||||
};
|
||||
|
||||
group = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = defaultUser;
|
||||
description = ''
|
||||
Group under which the service should run. If this is the default value,
|
||||
the group will be created.
|
||||
'';
|
||||
};
|
||||
|
||||
sequelizeArguments = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "";
|
||||
example = "--env=production-ssl-disabled";
|
||||
description = ''
|
||||
Optional arguments to pass to <literal>sequelize</literal> calls.
|
||||
'';
|
||||
};
|
||||
|
||||
#
|
||||
# Required options
|
||||
#
|
||||
|
||||
secretKeyFile = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "/var/lib/outline/secret_key";
|
||||
description = ''
|
||||
File path that contains the application secret key. It must be 32
|
||||
bytes long and hex-encoded. If the file does not exist, a new key will
|
||||
be generated and saved here.
|
||||
'';
|
||||
};
|
||||
|
||||
utilsSecretFile = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "/var/lib/outline/utils_secret";
|
||||
description = ''
|
||||
File path that contains the utility secret key. If the file does not
|
||||
exist, a new key will be generated and saved here.
|
||||
'';
|
||||
};
|
||||
|
||||
databaseUrl = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "local";
|
||||
description = ''
|
||||
URI to use for the main PostgreSQL database. If this needs to include
|
||||
credentials that shouldn't be world-readable in the Nix store, set an
|
||||
environment file on the systemd service and override the
|
||||
<literal>DATABASE_URL</literal> entry. Pass the string
|
||||
<literal>local</literal> to setup a database on the local server.
|
||||
'';
|
||||
};
|
||||
|
||||
redisUrl = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "local";
|
||||
description = ''
|
||||
Connection to a redis server. If this needs to include credentials
|
||||
that shouldn't be world-readable in the Nix store, set an environment
|
||||
file on the systemd service and override the
|
||||
<literal>REDIS_URL</literal> entry. Pass the string
|
||||
<literal>local</literal> to setup a local Redis database.
|
||||
'';
|
||||
};
|
||||
|
||||
publicUrl = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "http://localhost:3000";
|
||||
description = "The fully qualified, publicly accessible URL";
|
||||
};
|
||||
|
||||
port = lib.mkOption {
|
||||
type = lib.types.port;
|
||||
default = 3000;
|
||||
description = "Listening port.";
|
||||
};
|
||||
|
||||
storage = lib.mkOption {
|
||||
description = ''
|
||||
To support uploading of images for avatars and document attachments an
|
||||
s3-compatible storage must be provided. AWS S3 is recommended for
|
||||
redundency however if you want to keep all file storage local an
|
||||
alternative such as <link xlink:href="https://github.com/minio/minio">minio</link>
|
||||
can be used.
|
||||
|
||||
A more detailed guide on setting up S3 is available
|
||||
<link xlink:href="https://wiki.generaloutline.com/share/125de1cc-9ff6-424b-8415-0d58c809a40f">here</link>.
|
||||
'';
|
||||
example = lib.literalExpression ''
|
||||
{
|
||||
accessKey = "...";
|
||||
secretKeyFile = "/somewhere";
|
||||
uploadBucketUrl = "https://minio.example.com";
|
||||
uploadBucketName = "outline";
|
||||
region = "us-east-1";
|
||||
}
|
||||
'';
|
||||
type = lib.types.submodule {
|
||||
options = {
|
||||
accessKey = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
description = "S3 access key.";
|
||||
};
|
||||
secretKeyFile = lib.mkOption {
|
||||
type = lib.types.path;
|
||||
description = "File path that contains the S3 secret key.";
|
||||
};
|
||||
region = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "xx-xxxx-x";
|
||||
description = "AWS S3 region name.";
|
||||
};
|
||||
uploadBucketUrl = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
description = ''
|
||||
URL endpoint of an S3-compatible API where uploads should be
|
||||
stored.
|
||||
'';
|
||||
};
|
||||
uploadBucketName = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
description = "Name of the bucket where uploads should be stored.";
|
||||
};
|
||||
uploadMaxSize = lib.mkOption {
|
||||
type = lib.types.int;
|
||||
default = 26214400;
|
||||
description = "Maxmium file size for uploads.";
|
||||
};
|
||||
forcePathStyle = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = true;
|
||||
description = "Force S3 path style.";
|
||||
};
|
||||
acl = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "private";
|
||||
description = "ACL setting.";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
#
|
||||
# Authentication
|
||||
#
|
||||
|
||||
slackAuthentication = lib.mkOption {
|
||||
description = ''
|
||||
To configure Slack auth, you'll need to create an Application at
|
||||
https://api.slack.com/apps
|
||||
|
||||
When configuring the Client ID, add a redirect URL under "OAuth & Permissions"
|
||||
to <literal>https://[publicUrl]/auth/slack.callback</literal>.
|
||||
'';
|
||||
default = null;
|
||||
type = lib.types.nullOr (lib.types.submodule {
|
||||
options = {
|
||||
clientId = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
description = "Authentication key.";
|
||||
};
|
||||
secretFile = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
description = "File path containing the authentication secret.";
|
||||
};
|
||||
};
|
||||
});
|
||||
};
|
||||
|
||||
googleAuthentication = lib.mkOption {
|
||||
description = ''
|
||||
To configure Google auth, you'll need to create an OAuth Client ID at
|
||||
https://console.cloud.google.com/apis/credentials
|
||||
|
||||
When configuring the Client ID, add an Authorized redirect URI to
|
||||
<literal>https://[publicUrl]/auth/google.callback</literal>.
|
||||
'';
|
||||
default = null;
|
||||
type = lib.types.nullOr (lib.types.submodule {
|
||||
options = {
|
||||
clientId = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
description = "Authentication client identifier.";
|
||||
};
|
||||
clientSecretFile = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
description = "File path containing the authentication secret.";
|
||||
};
|
||||
};
|
||||
});
|
||||
};
|
||||
|
||||
azureAuthentication = lib.mkOption {
|
||||
description = ''
|
||||
To configure Microsoft/Azure auth, you'll need to create an OAuth
|
||||
Client. See
|
||||
<link xlink:href="https://wiki.generaloutline.com/share/dfa77e56-d4d2-4b51-8ff8-84ea6608faa4">the guide</link>
|
||||
for details on setting up your Azure App.
|
||||
'';
|
||||
default = null;
|
||||
type = lib.types.nullOr (lib.types.submodule {
|
||||
options = {
|
||||
clientId = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
description = "Authentication client identifier.";
|
||||
};
|
||||
clientSecretFile = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
description = "File path containing the authentication secret.";
|
||||
};
|
||||
resourceAppId = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
description = "Authentication application resource ID.";
|
||||
};
|
||||
};
|
||||
});
|
||||
};
|
||||
|
||||
oidcAuthentication = lib.mkOption {
|
||||
description = ''
|
||||
To configure generic OIDC auth, you'll need some kind of identity
|
||||
provider. See the documentation for whichever IdP you use to fill out
|
||||
all the fields. The redirect URL is
|
||||
<literal>https://[publicUrl]/auth/oidc.callback</literal>.
|
||||
'';
|
||||
default = null;
|
||||
type = lib.types.nullOr (lib.types.submodule {
|
||||
options = {
|
||||
clientId = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
description = "Authentication client identifier.";
|
||||
};
|
||||
clientSecretFile = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
description = "File path containing the authentication secret.";
|
||||
};
|
||||
authUrl = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
description = "OIDC authentication URL endpoint.";
|
||||
};
|
||||
tokenUrl = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
description = "OIDC token URL endpoint.";
|
||||
};
|
||||
userinfoUrl = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
description = "OIDC userinfo URL endpoint.";
|
||||
};
|
||||
usernameClaim = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
description = ''
|
||||
Specify which claims to derive user information from. Supports any
|
||||
valid JSON path with the JWT payload
|
||||
'';
|
||||
default = "preferred_username";
|
||||
};
|
||||
displayName = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
description = "Display name for OIDC authentication.";
|
||||
default = "OpenID";
|
||||
};
|
||||
scopes = lib.mkOption {
|
||||
type = lib.types.listOf lib.types.str;
|
||||
description = "OpenID authentication scopes.";
|
||||
default = [ "openid" "profile" "email" ];
|
||||
};
|
||||
};
|
||||
});
|
||||
};
|
||||
|
||||
#
|
||||
# Optional configuration
|
||||
#
|
||||
|
||||
sslKeyFile = lib.mkOption {
|
||||
type = lib.types.nullOr lib.types.str;
|
||||
default = null;
|
||||
description = ''
|
||||
File path that contains the Base64-encoded private key for HTTPS
|
||||
termination. This is only required if you do not use an external reverse
|
||||
proxy. See
|
||||
<link xlink:href="https://wiki.generaloutline.com/share/dfa77e56-d4d2-4b51-8ff8-84ea6608faa4">the documentation</link>.
|
||||
'';
|
||||
};
|
||||
sslCertFile = lib.mkOption {
|
||||
type = lib.types.nullOr lib.types.str;
|
||||
default = null;
|
||||
description = ''
|
||||
File path that contains the Base64-encoded certificate for HTTPS
|
||||
termination. This is only required if you do not use an external reverse
|
||||
proxy. See
|
||||
<link xlink:href="https://wiki.generaloutline.com/share/dfa77e56-d4d2-4b51-8ff8-84ea6608faa4">the documentation</link>.
|
||||
'';
|
||||
};
|
||||
|
||||
cdnUrl = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "";
|
||||
description = ''
|
||||
If using a Cloudfront/Cloudflare distribution or similar it can be set
|
||||
using this option. This will cause paths to JavaScript files,
|
||||
stylesheets and images to be updated to the hostname defined here. In
|
||||
your CDN configuration the origin server should be set to public URL.
|
||||
'';
|
||||
};
|
||||
|
||||
forceHttps = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = true;
|
||||
description = ''
|
||||
Auto-redirect to HTTPS in production. The default is
|
||||
<literal>true</literal> but you may set this to <literal>false</literal>
|
||||
if you can be sure that SSL is terminated at an external loadbalancer.
|
||||
'';
|
||||
};
|
||||
|
||||
enableUpdateCheck = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = false;
|
||||
description = ''
|
||||
Have the installation check for updates by sending anonymized statistics
|
||||
to the maintainers.
|
||||
'';
|
||||
};
|
||||
|
||||
concurrency = lib.mkOption {
|
||||
type = lib.types.int;
|
||||
default = 1;
|
||||
description = ''
|
||||
How many processes should be spawned. For a rough estimate, divide your
|
||||
server's available memory by 512.
|
||||
'';
|
||||
};
|
||||
|
||||
maximumImportSize = lib.mkOption {
|
||||
type = lib.types.int;
|
||||
default = 5120000;
|
||||
description = ''
|
||||
The maximum size of document imports. Overriding this could be required
|
||||
if you have especially large Word documents with embedded imagery.
|
||||
'';
|
||||
};
|
||||
|
||||
debugOutput = lib.mkOption {
|
||||
type = lib.types.nullOr (lib.types.enum [ "http" ]);
|
||||
default = null;
|
||||
description = "Set this to <literal>http</literal> log HTTP requests.";
|
||||
};
|
||||
|
||||
slackIntegration = lib.mkOption {
|
||||
description = ''
|
||||
For a complete Slack integration with search and posting to channels
|
||||
this configuration is also needed. See here for details:
|
||||
https://wiki.generaloutline.com/share/be25efd1-b3ef-4450-b8e5-c4a4fc11e02a
|
||||
'';
|
||||
default = null;
|
||||
type = lib.types.nullOr (lib.types.submodule {
|
||||
options = {
|
||||
verificationTokenFile = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
description = "File path containing the verification token.";
|
||||
};
|
||||
appId = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
description = "Application ID.";
|
||||
};
|
||||
messageActions = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = true;
|
||||
description = "Whether to enable message actions.";
|
||||
};
|
||||
};
|
||||
});
|
||||
};
|
||||
|
||||
googleAnalyticsId = lib.mkOption {
|
||||
type = lib.types.nullOr lib.types.str;
|
||||
default = null;
|
||||
description = ''
|
||||
Optionally enable Google Analytics to track page views in the knowledge
|
||||
base.
|
||||
'';
|
||||
};
|
||||
|
||||
sentryDsn = lib.mkOption {
|
||||
type = lib.types.nullOr lib.types.str;
|
||||
default = null;
|
||||
description = ''
|
||||
Optionally enable <link xlink:href="https://sentry.io/">Sentry</link> to
|
||||
track errors and performance.
|
||||
'';
|
||||
};
|
||||
|
||||
logo = lib.mkOption {
|
||||
type = lib.types.nullOr lib.types.str;
|
||||
default = null;
|
||||
description = ''
|
||||
Custom logo displayed on the authentication screen. This will be scaled
|
||||
to a height of 60px.
|
||||
'';
|
||||
};
|
||||
|
||||
smtp = lib.mkOption {
|
||||
description = ''
|
||||
To support sending outgoing transactional emails such as
|
||||
"document updated" or "you've been invited" you'll need to provide
|
||||
authentication for an SMTP server.
|
||||
'';
|
||||
default = null;
|
||||
type = lib.types.nullOr (lib.types.submodule {
|
||||
options = {
|
||||
host = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
description = "Host name or IP adress of the SMTP server.";
|
||||
};
|
||||
port = lib.mkOption {
|
||||
type = lib.types.port;
|
||||
description = "TCP port of the SMTP server.";
|
||||
};
|
||||
username = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
description = "Username to authenticate with.";
|
||||
};
|
||||
passwordFile = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
description = ''
|
||||
File path containing the password to authenticate with.
|
||||
'';
|
||||
};
|
||||
fromEmail = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
description = "Sender email in outgoing mail.";
|
||||
};
|
||||
replyEmail = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
description = "Reply address in outgoing mail.";
|
||||
};
|
||||
tlsCiphers = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "";
|
||||
description = "Override SMTP cipher configuration.";
|
||||
};
|
||||
secure = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = true;
|
||||
description = "Use a secure SMTP connection.";
|
||||
};
|
||||
};
|
||||
});
|
||||
};
|
||||
|
||||
defaultLanguage = lib.mkOption {
|
||||
type = lib.types.enum [
|
||||
"da_DK"
|
||||
"de_DE"
|
||||
"en_US"
|
||||
"es_ES"
|
||||
"fa_IR"
|
||||
"fr_FR"
|
||||
"it_IT"
|
||||
"ja_JP"
|
||||
"ko_KR"
|
||||
"nl_NL"
|
||||
"pl_PL"
|
||||
"pt_BR"
|
||||
"pt_PT"
|
||||
"ru_RU"
|
||||
"sv_SE"
|
||||
"th_TH"
|
||||
"vi_VN"
|
||||
"zh_CN"
|
||||
"zh_TW"
|
||||
];
|
||||
default = "en_US";
|
||||
description = ''
|
||||
The default interface language. See
|
||||
<link xlink:href="https://translate.getoutline.com/">translate.getoutline.com</link>
|
||||
for a list of available language codes and their rough percentage
|
||||
translated.
|
||||
'';
|
||||
};
|
||||
|
||||
rateLimiter.enable = lib.mkEnableOption "rate limiter for the application web server";
|
||||
rateLimiter.requests = lib.mkOption {
|
||||
type = lib.types.int;
|
||||
default = 5000;
|
||||
description = "Maximum number of requests in a throttling window.";
|
||||
};
|
||||
rateLimiter.durationWindow = lib.mkOption {
|
||||
type = lib.types.int;
|
||||
default = 60;
|
||||
description = "Length of a throttling window.";
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
users.users = lib.optionalAttrs (cfg.user == defaultUser) {
|
||||
${defaultUser} = {
|
||||
isSystemUser = true;
|
||||
group = cfg.group;
|
||||
};
|
||||
};
|
||||
|
||||
users.groups = lib.optionalAttrs (cfg.group == defaultUser) {
|
||||
${defaultUser} = { };
|
||||
};
|
||||
|
||||
systemd.tmpfiles.rules = [
|
||||
"f ${cfg.secretKeyFile} 0600 ${cfg.user} ${cfg.group} -"
|
||||
"f ${cfg.utilsSecretFile} 0600 ${cfg.user} ${cfg.group} -"
|
||||
"f ${cfg.storage.secretKeyFile} 0600 ${cfg.user} ${cfg.group} -"
|
||||
];
|
||||
|
||||
services.postgresql = lib.mkIf (cfg.databaseUrl == "local") {
|
||||
enable = true;
|
||||
ensureUsers = [{
|
||||
name = "outline";
|
||||
ensurePermissions."DATABASE outline" = "ALL PRIVILEGES";
|
||||
}];
|
||||
ensureDatabases = [ "outline" ];
|
||||
};
|
||||
|
||||
services.redis.servers.outline = lib.mkIf (cfg.redisUrl == "local") {
|
||||
enable = true;
|
||||
user = config.services.outline.user;
|
||||
port = 0; # Disable the TCP listener
|
||||
};
|
||||
|
||||
systemd.services.outline = let
|
||||
localRedisUrl = "redis+unix:///run/redis-outline/redis.sock";
|
||||
localPostgresqlUrl = "postgres://localhost/outline?host=/run/postgresql";
|
||||
|
||||
# Create an outline-sequalize wrapper (a wrapper around the wrapper) that
|
||||
# has the config file's path baked in. This is necessary because there is
|
||||
# at least one occurrence of outline calling this from its own code.
|
||||
sequelize = pkgs.writeShellScriptBin "outline-sequelize" ''
|
||||
exec ${cfg.package}/bin/outline-sequelize \
|
||||
--config $RUNTIME_DIRECTORY/database.json \
|
||||
${cfg.sequelizeArguments} \
|
||||
"$@"
|
||||
'';
|
||||
in {
|
||||
description = "Outline wiki and knowledge base";
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
after = [ "networking.target" ]
|
||||
++ lib.optional (cfg.databaseUrl == "local") "postgresql.service"
|
||||
++ lib.optional (cfg.redisUrl == "local") "redis-outline.service";
|
||||
requires = lib.optional (cfg.databaseUrl == "local") "postgresql.service"
|
||||
++ lib.optional (cfg.redisUrl == "local") "redis-outline.service";
|
||||
path = [
|
||||
pkgs.openssl # Required by the preStart script
|
||||
sequelize
|
||||
];
|
||||
|
||||
|
||||
environment = lib.mkMerge [
|
||||
{
|
||||
NODE_ENV = "production";
|
||||
|
||||
REDIS_URL = if cfg.redisUrl == "local" then localRedisUrl else cfg.redisUrl;
|
||||
URL = cfg.publicUrl;
|
||||
PORT = builtins.toString cfg.port;
|
||||
|
||||
AWS_ACCESS_KEY_ID = cfg.storage.accessKey;
|
||||
AWS_REGION = cfg.storage.region;
|
||||
AWS_S3_UPLOAD_BUCKET_URL = cfg.storage.uploadBucketUrl;
|
||||
AWS_S3_UPLOAD_BUCKET_NAME = cfg.storage.uploadBucketName;
|
||||
AWS_S3_UPLOAD_MAX_SIZE = builtins.toString cfg.storage.uploadMaxSize;
|
||||
AWS_S3_FORCE_PATH_STYLE = builtins.toString cfg.storage.forcePathStyle;
|
||||
AWS_S3_ACL = cfg.storage.acl;
|
||||
|
||||
CDN_URL = cfg.cdnUrl;
|
||||
FORCE_HTTPS = builtins.toString cfg.forceHttps;
|
||||
ENABLE_UPDATES = builtins.toString cfg.enableUpdateCheck;
|
||||
WEB_CONCURRENCY = builtins.toString cfg.concurrency;
|
||||
MAXIMUM_IMPORT_SIZE = builtins.toString cfg.maximumImportSize;
|
||||
DEBUG = cfg.debugOutput;
|
||||
GOOGLE_ANALYTICS_ID = lib.optionalString (cfg.googleAnalyticsId != null) cfg.googleAnalyticsId;
|
||||
SENTRY_DSN = lib.optionalString (cfg.sentryDsn != null) cfg.sentryDsn;
|
||||
TEAM_LOGO = lib.optionalString (cfg.logo != null) cfg.logo;
|
||||
DEFAULT_LANGUAGE = cfg.defaultLanguage;
|
||||
|
||||
RATE_LIMITER_ENABLED = builtins.toString cfg.rateLimiter.enable;
|
||||
RATE_LIMITER_REQUESTS = builtins.toString cfg.rateLimiter.requests;
|
||||
RATE_LIMITER_DURATION_WINDOW = builtins.toString cfg.rateLimiter.durationWindow;
|
||||
}
|
||||
|
||||
(lib.mkIf (cfg.slackAuthentication != null) {
|
||||
SLACK_CLIENT_ID = cfg.slackAuthentication.clientId;
|
||||
})
|
||||
|
||||
(lib.mkIf (cfg.googleAuthentication != null) {
|
||||
GOOGLE_CLIENT_ID = cfg.googleAuthentication.clientId;
|
||||
})
|
||||
|
||||
(lib.mkIf (cfg.azureAuthentication != null) {
|
||||
AZURE_CLIENT_ID = cfg.azureAuthentication.clientId;
|
||||
AZURE_RESOURCE_APP_ID = cfg.azureAuthentication.resourceAppId;
|
||||
})
|
||||
|
||||
(lib.mkIf (cfg.oidcAuthentication != null) {
|
||||
OIDC_CLIENT_ID = cfg.oidcAuthentication.clientId;
|
||||
OIDC_AUTH_URI = cfg.oidcAuthentication.authUrl;
|
||||
OIDC_TOKEN_URI = cfg.oidcAuthentication.tokenUrl;
|
||||
OIDC_USERINFO_URI = cfg.oidcAuthentication.userinfoUrl;
|
||||
OIDC_USERNAME_CLAIM = cfg.oidcAuthentication.usernameClaim;
|
||||
OIDC_DISPLAY_NAME = cfg.oidcAuthentication.displayName;
|
||||
OIDC_SCOPES = lib.concatStringsSep " " cfg.oidcAuthentication.scopes;
|
||||
})
|
||||
|
||||
(lib.mkIf (cfg.slackIntegration != null) {
|
||||
SLACK_APP_ID = cfg.slackIntegration.appId;
|
||||
SLACK_MESSAGE_ACTIONS = builtins.toString cfg.slackIntegration.messageActions;
|
||||
})
|
||||
|
||||
(lib.mkIf (cfg.smtp != null) {
|
||||
SMTP_HOST = cfg.smtp.host;
|
||||
SMTP_PORT = builtins.toString cfg.smtp.port;
|
||||
SMTP_USERNAME = cfg.smtp.username;
|
||||
SMTP_FROM_EMAIL = cfg.smtp.fromEmail;
|
||||
SMTP_REPLY_EMAIL = cfg.smtp.replyEmail;
|
||||
SMTP_TLS_CIPHERS = cfg.smtp.tlsCiphers;
|
||||
SMTP_SECURE = builtins.toString cfg.smtp.secure;
|
||||
})
|
||||
];
|
||||
|
||||
preStart = ''
|
||||
if [ ! -s ${lib.escapeShellArg cfg.secretKeyFile} ]; then
|
||||
openssl rand -hex 32 > ${lib.escapeShellArg cfg.secretKeyFile}
|
||||
fi
|
||||
if [ ! -s ${lib.escapeShellArg cfg.utilsSecretFile} ]; then
|
||||
openssl rand -hex 32 > ${lib.escapeShellArg cfg.utilsSecretFile}
|
||||
fi
|
||||
|
||||
# The config file is required for the CLI, the DATABASE_URL environment
|
||||
# variable is read by the app.
|
||||
${if (cfg.databaseUrl == "local") then ''
|
||||
cat <<EOF > $RUNTIME_DIRECTORY/database.json
|
||||
{
|
||||
"production": {
|
||||
"dialect": "postgres",
|
||||
"host": "/run/postgresql",
|
||||
"username": null,
|
||||
"password": null
|
||||
}
|
||||
}
|
||||
EOF
|
||||
export DATABASE_URL=${lib.escapeShellArg localPostgresqlUrl}
|
||||
export PGSSLMODE=disable
|
||||
'' else ''
|
||||
cat <<EOF > $RUNTIME_DIRECTORY/database.json
|
||||
{
|
||||
"production": {
|
||||
"use_env_variable": "DATABASE_URL",
|
||||
"dialect": "postgres",
|
||||
"dialectOptions": {
|
||||
"ssl": {
|
||||
"rejectUnauthorized": false
|
||||
}
|
||||
}
|
||||
},
|
||||
"production-ssl-disabled": {
|
||||
"use_env_variable": "DATABASE_URL",
|
||||
"dialect": "postgres"
|
||||
}
|
||||
}
|
||||
EOF
|
||||
export DATABASE_URL=${lib.escapeShellArg cfg.databaseUrl}
|
||||
''}
|
||||
|
||||
cd $RUNTIME_DIRECTORY
|
||||
${sequelize}/bin/outline-sequelize db:migrate
|
||||
'';
|
||||
|
||||
script = ''
|
||||
export SECRET_KEY="$(head -n1 ${lib.escapeShellArg cfg.secretKeyFile})"
|
||||
export UTILS_SECRET="$(head -n1 ${lib.escapeShellArg cfg.utilsSecretFile})"
|
||||
export AWS_SECRET_ACCESS_KEY="$(head -n1 ${lib.escapeShellArg cfg.storage.secretKeyFile})"
|
||||
${lib.optionalString (cfg.slackAuthentication != null) ''
|
||||
export SLACK_CLIENT_SECRET="$(head -n1 ${lib.escapeShellArg cfg.slackAuthentication.secretFile})"
|
||||
''}
|
||||
${lib.optionalString (cfg.googleAuthentication != null) ''
|
||||
export GOOGLE_CLIENT_SECRET="$(head -n1 ${lib.escapeShellArg cfg.googleAuthentication.clientSecretFile})"
|
||||
''}
|
||||
${lib.optionalString (cfg.azureAuthentication != null) ''
|
||||
export AZURE_CLIENT_SECRET="$(head -n1 ${lib.escapeShellArg cfg.azureAuthentication.clientSecretFile})"
|
||||
''}
|
||||
${lib.optionalString (cfg.oidcAuthentication != null) ''
|
||||
export OIDC_CLIENT_SECRET="$(head -n1 ${lib.escapeShellArg cfg.oidcAuthentication.clientSecretFile})"
|
||||
''}
|
||||
${lib.optionalString (cfg.sslKeyFile != null) ''
|
||||
export SSL_KEY="$(head -n1 ${lib.escapeShellArg cfg.sslKeyFile})"
|
||||
''}
|
||||
${lib.optionalString (cfg.sslCertFile != null) ''
|
||||
export SSL_CERT="$(head -n1 ${lib.escapeShellArg cfg.sslCertFile})"
|
||||
''}
|
||||
${lib.optionalString (cfg.slackIntegration != null) ''
|
||||
export SLACK_VERIFICATION_TOKEN="$(head -n1 ${lib.escapeShellArg cfg.slackIntegration.verificationTokenFile})"
|
||||
''}
|
||||
${lib.optionalString (cfg.smtp != null) ''
|
||||
export SMTP_PASSWORD="$(head -n1 ${lib.escapeShellArg cfg.smtp.passwordFile})"
|
||||
''}
|
||||
|
||||
${if (cfg.databaseUrl == "local") then ''
|
||||
export DATABASE_URL=${lib.escapeShellArg localPostgresqlUrl}
|
||||
export PGSSLMODE=disable
|
||||
'' else ''
|
||||
export DATABASE_URL=${lib.escapeShellArg cfg.databaseUrl}
|
||||
''}
|
||||
|
||||
${cfg.package}/bin/outline-server
|
||||
'';
|
||||
|
||||
serviceConfig = {
|
||||
User = cfg.user;
|
||||
Group = cfg.group;
|
||||
Restart = "always";
|
||||
ProtectSystem = "strict";
|
||||
PrivateHome = true;
|
||||
PrivateTmp = true;
|
||||
UMask = "0007";
|
||||
|
||||
StateDirectory = "outline";
|
||||
StateDirectoryMode = "0750";
|
||||
RuntimeDirectory = "outline";
|
||||
RuntimeDirectoryMode = "0750";
|
||||
# This working directory is required to find stuff like the set of
|
||||
# onboarding files:
|
||||
WorkingDirectory = "${cfg.package}/share/outline/build";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
@ -282,7 +282,7 @@ in
|
||||
setuid = true;
|
||||
owner = "root";
|
||||
group = "root";
|
||||
source = "/run/${dirName}/nix-helpers/qemu-bridge-helper";
|
||||
source = "${cfg.qemu.package}/libexec/qemu-bridge-helper";
|
||||
};
|
||||
|
||||
systemd.packages = [ cfg.package ];
|
||||
@ -308,7 +308,7 @@ in
|
||||
ln -s --force "$emulator" /run/${dirName}/nix-emulators/
|
||||
done
|
||||
|
||||
for helper in libexec/qemu-bridge-helper bin/qemu-pr-helper; do
|
||||
for helper in bin/qemu-pr-helper; do
|
||||
ln -s --force ${cfg.qemu.package}/$helper /run/${dirName}/nix-helpers/
|
||||
done
|
||||
|
||||
|
@ -129,21 +129,16 @@ with lib;
|
||||
# Build qemu with PVE's patch that adds support for the VMA format
|
||||
vma = pkgs.qemu_kvm.overrideAttrs ( super: rec {
|
||||
|
||||
# proxmox's VMA patch doesn't work with qemu 7.0 yet
|
||||
version = "6.2.0";
|
||||
src = pkgs.fetchurl {
|
||||
url= "https://download.qemu.org/qemu-${version}.tar.xz";
|
||||
hash = "sha256-aOFdjkWsVjJuC5pK+otJo9/oq6NIgiHQmMhGmLymW0U=";
|
||||
};
|
||||
|
||||
patches = let
|
||||
rev = "b37b17c286da3d32945fbee8ee4fd97a418a50db";
|
||||
path = "debian/patches/pve/0026-PVE-Backup-add-vma-backup-format-code.patch";
|
||||
vma-patch = pkgs.fetchpatch {
|
||||
url = "https://git.proxmox.com/?p=pve-qemu.git;a=blob_plain;h=${rev};f=${path}";
|
||||
hash = "sha256-siuDWDUnM9Zq0/L2Faww3ELAOUHhVIHu5RAQn6L4Atc=";
|
||||
};
|
||||
in [ vma-patch ];
|
||||
patches = [
|
||||
(pkgs.fetchpatch {
|
||||
url =
|
||||
let
|
||||
rev = "1976ca460796f28447b41e3618e5c1e234035dd5";
|
||||
path = "debian/patches/pve/0026-PVE-Backup-add-vma-backup-format-code.patch";
|
||||
in "https://git.proxmox.com/?p=pve-qemu.git;a=blob_plain;hb=${rev};f=${path}";
|
||||
hash = "sha256-2Dz+ceTwrcyYYxi76RtyY3v15/2pwGcDhFuoZWlgbjc=";
|
||||
})
|
||||
];
|
||||
|
||||
buildInputs = super.buildInputs ++ [ pkgs.libuuid ];
|
||||
|
||||
@ -155,6 +150,9 @@ with lib;
|
||||
rm $diskImage
|
||||
${pkgs.zstd}/bin/zstd "vzdump-qemu-${cfg.filenameSuffix}.vma"
|
||||
mv "vzdump-qemu-${cfg.filenameSuffix}.vma.zst" $out/
|
||||
|
||||
mkdir -p $out/nix-support
|
||||
echo "file vma $out/vzdump-qemu-${cfg.filenameSuffix}.vma.zst" >> $out/nix-support/hydra-build-products
|
||||
'';
|
||||
format = "raw";
|
||||
inherit config lib pkgs;
|
||||
|
@ -284,6 +284,7 @@ in {
|
||||
libreswan = handleTest ./libreswan.nix {};
|
||||
librewolf = handleTest ./firefox.nix { firefoxPackage = pkgs.librewolf; };
|
||||
libuiohook = handleTest ./libuiohook.nix {};
|
||||
libvirtd = handleTest ./libvirtd.nix {};
|
||||
lidarr = handleTest ./lidarr.nix {};
|
||||
lightdm = handleTest ./lightdm.nix {};
|
||||
lighttpd = handleTest ./lighttpd.nix {};
|
||||
|
49
nixos/tests/libvirtd.nix
Normal file
49
nixos/tests/libvirtd.nix
Normal file
@ -0,0 +1,49 @@
|
||||
import ./make-test-python.nix ({ pkgs, ... }: {
|
||||
name = "libvirtd";
|
||||
meta.maintainers = with pkgs.lib.maintainers; [ fpletz ];
|
||||
|
||||
nodes = {
|
||||
virthost =
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
virtualisation = {
|
||||
cores = 2;
|
||||
memorySize = 2048;
|
||||
|
||||
libvirtd.enable = true;
|
||||
};
|
||||
networking.nameservers = [ "192.168.122.1" ];
|
||||
security.polkit.enable = true;
|
||||
environment.systemPackages = with pkgs; [ virt-manager ];
|
||||
};
|
||||
};
|
||||
|
||||
testScript = let
|
||||
nixosInstallISO = (import ../release.nix {}).iso_minimal.${pkgs.hostPlatform.system};
|
||||
virshShutdownCmd = if pkgs.stdenv.isx86_64 then "shutdown" else "destroy";
|
||||
in ''
|
||||
start_all()
|
||||
|
||||
virthost.wait_for_unit("sockets.target")
|
||||
|
||||
with subtest("enable default network"):
|
||||
virthost.succeed("virsh net-start default")
|
||||
virthost.succeed("virsh net-autostart default")
|
||||
virthost.succeed("virsh net-info default")
|
||||
|
||||
with subtest("check if partition disk pools works with parted"):
|
||||
virthost.succeed("fallocate -l100m /tmp/foo; losetup /dev/loop0 /tmp/foo; echo 'label: dos' | sfdisk /dev/loop0")
|
||||
virthost.succeed("virsh pool-create-as foo disk --source-dev /dev/loop0 --target /dev")
|
||||
virthost.succeed("virsh vol-create-as foo loop0p1 25MB")
|
||||
virthost.succeed("virsh vol-create-as foo loop0p2 50MB")
|
||||
|
||||
with subtest("check if nixos install iso boots and network works"):
|
||||
virthost.succeed(
|
||||
"virt-install -n nixos --osinfo=nixos-unstable --ram=1024 --graphics=none --disk=`find ${nixosInstallISO}/iso -type f | head -n1`,readonly=on --import --noautoconsole"
|
||||
)
|
||||
virthost.succeed("virsh domstate nixos | grep running")
|
||||
virthost.wait_until_succeeds("ping -c 1 nixos")
|
||||
virthost.succeed("virsh ${virshShutdownCmd} nixos")
|
||||
virthost.wait_until_succeeds("virsh domstate nixos | grep 'shut off'")
|
||||
'';
|
||||
})
|
@ -7,16 +7,16 @@
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "ncspot";
|
||||
version = "0.10.1";
|
||||
version = "0.11.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "hrkfdn";
|
||||
repo = "ncspot";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-KETLPBMBWGqmuczF5BG7WZ15szWqQHx7uKwDA2KyN/U=";
|
||||
sha256 = "sha256-mtveGRwadcct9R8CxLWCvT9FamK2PnicpeSvL4iT4oE=";
|
||||
};
|
||||
|
||||
cargoSha256 = "sha256-95IFRFZySpyyF3k3RpGeV+sDXkg38kcHyPYxuxTfJJA=";
|
||||
cargoSha256 = "sha256-JqHJY91q2vm0x819zUkBBAObpnXN5aPde8m5UJ2NeNY=";
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
|
||||
|
@ -2,13 +2,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "new-session-manager";
|
||||
version = "1.5.3";
|
||||
version = "1.6.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "linuxaudio";
|
||||
repo = "new-session-manager";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-dQE7kUoxqDtTrk5euHqpMVeApxniecWZWOARcCl573o=";
|
||||
sha256 = "sha256-QVykRYXToeVXr7pYQy2afgEAlXrQnm68+xEUZhd+FkY=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ meson pkg-config ninja ];
|
||||
|
@ -15,13 +15,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "patchage";
|
||||
version = "1.0.4";
|
||||
version = "1.0.6";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
owner = "drobilla";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
hash = "sha256-feQXACsn2i2pJXs0EA9tIbtpl9Lxx5K4G7eG5VWuDV0=";
|
||||
hash = "sha256-LzN6RyF/VT4LUVeR0904BnLuNMFZjFTDu9oDIKYG2Yo=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
|
@ -6,22 +6,24 @@
|
||||
, which
|
||||
, makeWrapper
|
||||
, libao
|
||||
, libbencodetools
|
||||
, bencodetools
|
||||
, sox
|
||||
, lame
|
||||
, flac
|
||||
, vorbis-tools
|
||||
# https://gitlab.com/uade-music-player/uade/-/issues/38
|
||||
, withWriteAudio ? !stdenv.hostPlatform.isDarwin
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "uade123";
|
||||
version = "3.01";
|
||||
pname = "uade";
|
||||
version = "3.02";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
owner = "uade-music-player";
|
||||
repo = "uade";
|
||||
rev = "uade-${version}";
|
||||
sha256 = "0fam3g8mlzrirrac3iwcwsz9jmsqwdy7lkwwdr2q4pkq9cpmh8m5";
|
||||
sha256 = "sha256-skPEXBQwyr326zCmZ2jwGxcBoTt3Y/h2hagDeeqbMpw=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
@ -31,30 +33,41 @@ stdenv.mkDerivation rec {
|
||||
substituteInPlace src/frontends/mod2ogg/mod2ogg2.sh.in \
|
||||
--replace '-e stat' '-n stat' \
|
||||
--replace '/usr/local' "$out"
|
||||
substituteInPlace python/uade/generate_oscilloscope_view.py \
|
||||
--replace "default='uade123'" "default='$out/bin/uade123'"
|
||||
# https://gitlab.com/uade-music-player/uade/-/issues/37
|
||||
substituteInPlace write_audio/Makefile.in \
|
||||
--replace 'g++' '${stdenv.cc.targetPrefix}c++'
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
which
|
||||
makeWrapper
|
||||
] ++ lib.optionals withWriteAudio [
|
||||
python3
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
libao
|
||||
libbencodetools
|
||||
bencodetools
|
||||
sox
|
||||
lame
|
||||
flac
|
||||
vorbis-tools
|
||||
] ++ lib.optionals withWriteAudio [
|
||||
(python3.withPackages (p: with p; [
|
||||
pillow
|
||||
tqdm
|
||||
more-itertools
|
||||
]))
|
||||
];
|
||||
|
||||
configureFlags = [
|
||||
"--bencode-tools-prefix=${libbencodetools}"
|
||||
"--bencode-tools-prefix=${bencodetools}"
|
||||
"--with-text-scope"
|
||||
] ++ lib.optionals (!withWriteAudio) [
|
||||
"--without-write-audio"
|
||||
];
|
||||
|
||||
enableParallelBuilding = true;
|
||||
@ -66,6 +79,7 @@ stdenv.mkDerivation rec {
|
||||
--prefix PATH : $out/bin:${lib.makeBinPath [ sox lame flac vorbis-tools ]}
|
||||
# This is an old script, don't break expectations by renaming it
|
||||
ln -s $out/bin/mod2ogg2{.sh,}
|
||||
'' + lib.optionalString withWriteAudio ''
|
||||
wrapProgram $out/bin/generate_amiga_oscilloscope_view \
|
||||
--prefix PYTHONPATH : "$PYTHONPATH:$out/${python3.sitePackages}"
|
||||
'';
|
||||
@ -79,6 +93,7 @@ stdenv.mkDerivation rec {
|
||||
# Let's make it easy and flag the whole package as unfree.
|
||||
license = licenses.unfree;
|
||||
maintainers = with maintainers; [ OPNA2608 ];
|
||||
mainProgram = "uade123";
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
}
|
@ -2,15 +2,15 @@
|
||||
|
||||
python3.pkgs.buildPythonApplication rec {
|
||||
pname = "unifi-protect-backup";
|
||||
version = "0.7.1";
|
||||
version = "0.7.4";
|
||||
|
||||
format = "pyproject";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ep1cman";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
hash = "sha256-HAiyNFWLs1McrlAB48me/iI15LssO8ec7BiWuJbRlbs=";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-4Kpz89yqKmxHmnaPYpvJ2hx46yfcaCYjOioyya+38vE=";
|
||||
};
|
||||
|
||||
preBuild = ''
|
||||
|
@ -5,23 +5,23 @@
|
||||
}:
|
||||
|
||||
let
|
||||
# Fetched from https://api.yuzu-emu.org/gamedb, last updated 2022-07-14
|
||||
# Mirror of https://api.yuzu-emu.org/gamedb, last updated 2022-08-13
|
||||
# Please make sure to update this when updating yuzu!
|
||||
compat-list = fetchurl {
|
||||
name = "yuzu-compat-list";
|
||||
url = "https://web.archive.org/web/20220714160745/https://api.yuzu-emu.org/gamedb";
|
||||
url = "https://raw.githubusercontent.com/flathub/org.yuzu_emu.yuzu/d83401d2ee3fd5e1922e31baed1f3bdb1c0f036c/compatibility_list.json";
|
||||
sha256 = "sha256-anOmO7NscHDsQxT03+YbJEyBkXjhcSVGgKpDwt//GHw=";
|
||||
};
|
||||
in {
|
||||
mainline = libsForQt5.callPackage ./generic.nix rec {
|
||||
pname = "yuzu-mainline";
|
||||
version = "1131";
|
||||
version = "1137";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "yuzu-emu";
|
||||
repo = "yuzu-mainline";
|
||||
rev = "mainline-0-${version}";
|
||||
sha256 = "0lh8s59hrysfjz69yr0f44s3l4aaznmclq0xfnyblsk0cw9ripf6";
|
||||
sha256 = "sha256-DLU5hmjTnlpRQ6sbcU7as/KeI9dDJAFUzVLciql5niE=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
@ -30,13 +30,13 @@ in {
|
||||
|
||||
early-access = libsForQt5.callPackage ./generic.nix rec {
|
||||
pname = "yuzu-ea";
|
||||
version = "2901";
|
||||
version = "2907";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "pineappleEA";
|
||||
repo = "pineapple-src";
|
||||
rev = "EA-${version}";
|
||||
sha256 = "0jymm9sdsnayjaffmcbpjck4k2yslx8zid2vsm4jfdaajr244q2z";
|
||||
sha256 = "sha256-spPW2/qeVyd1P1/Z2lcuA69igS3xV4KtcJ59yf9X4JI=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
|
@ -45,15 +45,6 @@
|
||||
stdenv.mkDerivation rec {
|
||||
inherit pname version src;
|
||||
|
||||
# Replace icons licensed under CC BY-ND 3.0 with free ones to allow
|
||||
# for binary redistribution: https://github.com/yuzu-emu/yuzu/pull/8104
|
||||
# The patch hosted on GitHub has the binary information in git format, which
|
||||
# can’t be applied with patch(1), so it has been regenerated with
|
||||
# "git format-patch --text --full-index --binary".
|
||||
# Because pineapple strips all files beginning with a dot, the patch needs to
|
||||
# be edited manually afterwards to remove all changes to those.
|
||||
patches = [ ./yuzu-free-icons.patch ];
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
doxygen
|
||||
@ -111,6 +102,13 @@ stdenv.mkDerivation rec {
|
||||
"-DENABLE_COMPATIBILITY_LIST_DOWNLOAD=OFF" # We provide this deterministically
|
||||
];
|
||||
|
||||
qtWrapperArgs = [
|
||||
# Fixes vulkan detection
|
||||
"--prefix LD_LIBRARY_PATH : ${vulkan-loader}/lib"
|
||||
# Without yuzu doesnt start on wayland. See https://github.com/yuzu-emu/yuzu/issues/6088
|
||||
"--set QT_QPA_PLATFORM xcb"
|
||||
];
|
||||
|
||||
preConfigure = ''
|
||||
# This prevents a check for submodule directories.
|
||||
rm -f .gitmodules
|
||||
@ -127,13 +125,6 @@ stdenv.mkDerivation rec {
|
||||
ln -sf ${compat-list} ./dist/compatibility_list/compatibility_list.json
|
||||
'';
|
||||
|
||||
# Fix vulkan detection
|
||||
postFixup = ''
|
||||
for bin in $out/bin/yuzu $out/bin/yuzu-cmd; do
|
||||
wrapProgram $bin --prefix LD_LIBRARY_PATH : ${vulkan-loader}/lib
|
||||
done
|
||||
'';
|
||||
|
||||
passthru.updateScript = runCommandLocal "yuzu-${branch}-updateScript" {
|
||||
script = substituteAll {
|
||||
src = ./update.sh;
|
||||
@ -154,7 +145,7 @@ stdenv.mkDerivation rec {
|
||||
platforms = [ "x86_64-linux" ];
|
||||
license = with licenses; [
|
||||
gpl3Plus
|
||||
# Icons. Note that this would be cc0 and cc-by-nd-30 without the "yuzu-free-icons" patch
|
||||
# Icons
|
||||
asl20 mit cc0
|
||||
];
|
||||
maintainers = with maintainers; [
|
||||
|
@ -1,84 +1,105 @@
|
||||
#! /usr/bin/env nix-shell
|
||||
#! nix-shell -i bash -p nix nix-prefetch-git coreutils curl jq gnused
|
||||
#! nix-shell -I nixpkgs=./. -i bash -p nix nix-prefetch-git coreutils curl jq gnused
|
||||
|
||||
set -e
|
||||
set -euo pipefail
|
||||
|
||||
# Will be replaced with the actual branch when running this from passthru.updateScript
|
||||
BRANCH="@branch@"
|
||||
DEFAULT_NIX="$(dirname "${BASH_SOURCE[@]}")/default.nix"
|
||||
|
||||
if [[ ! "$(basename $PWD)" = "yuzu" ]]; then
|
||||
echo "error: Script must be ran from yuzu's directory!"
|
||||
if [[ "$(basename "$PWD")" = "yuzu" ]]; then
|
||||
echo "error: Script must be ran from nixpkgs's root directory for compatibility with the maintainer script"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
getLocalVersion() {
|
||||
pushd ../../../.. >/dev/null
|
||||
nix eval --raw -f default.nix "$1".version
|
||||
popd >/dev/null
|
||||
}
|
||||
updateBranch() {
|
||||
local branch attribute oldVersion oldHash newVersion newHash
|
||||
branch="$1"
|
||||
attribute="yuzu-$branch"
|
||||
[[ "$branch" = "early-access" ]] && attribute="yuzu-ea" # Attribute path doesnt match the branch name
|
||||
oldVersion="$(nix eval --raw -f "./default.nix" "$attribute".version)"
|
||||
oldHash="$(nix eval --raw -f "./default.nix" "$attribute".src.drvAttrs.outputHash)"
|
||||
|
||||
getLocalHash() {
|
||||
pushd ../../../.. >/dev/null
|
||||
nix eval --raw -f default.nix "$1".src.drvAttrs.outputHash
|
||||
popd >/dev/null
|
||||
}
|
||||
|
||||
updateMainline() {
|
||||
OLD_MAINLINE_VERSION="$(getLocalVersion "yuzu-mainline")"
|
||||
OLD_MAINLINE_HASH="$(getLocalHash "yuzu-mainline")"
|
||||
|
||||
NEW_MAINLINE_VERSION="$(curl -s ${GITHUB_TOKEN:+"-u \":$GITHUB_TOKEN\""} \
|
||||
"https://api.github.com/repos/yuzu-emu/yuzu-mainline/releases?per_page=1" | jq -r '.[0].name' | cut -d" " -f2)"
|
||||
|
||||
if [[ "${OLD_MAINLINE_VERSION}" = "${NEW_MAINLINE_VERSION}" ]]; then
|
||||
echo "yuzu-mainline is already up to date!"
|
||||
|
||||
[ "$KEEP_GOING" ] && return || exit
|
||||
else
|
||||
echo "yuzu-mainline: ${OLD_MAINLINE_VERSION} -> ${NEW_MAINLINE_VERSION}"
|
||||
if [[ "$branch" = "mainline" ]]; then
|
||||
newVersion="$(curl -s ${GITHUB_TOKEN:+"-u \":$GITHUB_TOKEN\""} "https://api.github.com/repos/yuzu-emu/yuzu-mainline/releases?per_page=1" \
|
||||
| jq -r '.[0].name' | cut -d" " -f2)"
|
||||
elif [[ "$branch" = "early-access" ]]; then
|
||||
newVersion="$(curl -s ${GITHUB_TOKEN:+"-u \":$GITHUB_TOKEN\""} "https://api.github.com/repos/pineappleEA/pineapple-src/releases?per_page=2" \
|
||||
| jq -r '.[].tag_name' | grep '^EA-[0-9]*' | head -n1 | cut -d"-" -f2 | cut -d" " -f1)"
|
||||
fi
|
||||
|
||||
echo " Fetching source code..."
|
||||
|
||||
NEW_MAINLINE_HASH="$(nix-prefetch-git --quiet --fetch-submodules --rev "mainline-0-${NEW_MAINLINE_VERSION}" "https://github.com/yuzu-emu/yuzu-mainline" | jq -r '.sha256')"
|
||||
|
||||
echo " Succesfully fetched. hash: ${NEW_MAINLINE_HASH}"
|
||||
|
||||
sed -i "s/${OLD_MAINLINE_VERSION}/${NEW_MAINLINE_VERSION}/" ./default.nix
|
||||
sed -i "s/${OLD_MAINLINE_HASH}/${NEW_MAINLINE_HASH}/" ./default.nix
|
||||
}
|
||||
|
||||
updateEarlyAccess() {
|
||||
OLD_EA_VERSION="$(getLocalVersion "yuzu-ea")"
|
||||
OLD_EA_HASH="$(getLocalHash "yuzu-ea")"
|
||||
|
||||
NEW_EA_VERSION="$(curl -s ${GITHUB_TOKEN:+"-u \":$GITHUB_TOKEN\""} \
|
||||
"https://api.github.com/repos/pineappleEA/pineapple-src/releases?per_page=2" | jq -r '.[].tag_name' | grep '^EA-[0-9]*' | head -n1 | cut -d"-" -f2 | cut -d" " -f1)"
|
||||
|
||||
if [[ "${OLD_EA_VERSION}" = "${NEW_EA_VERSION}" ]]; then
|
||||
echo "yuzu-ea is already up to date!"
|
||||
|
||||
[ "$KEEP_GOING" ] && return || exit
|
||||
if [[ "${oldVersion}" = "${newVersion}" ]]; then
|
||||
echo "$attribute is already up to date."
|
||||
return
|
||||
else
|
||||
echo "yuzu-ea: ${OLD_EA_VERSION} -> ${NEW_EA_VERSION}"
|
||||
echo "$attribute: ${oldVersion} -> ${newVersion}"
|
||||
fi
|
||||
|
||||
echo " Fetching source code..."
|
||||
echo " fetching source code to generate hash..."
|
||||
if [[ "$branch" = "mainline" ]]; then
|
||||
newHash="$(nix-prefetch-git --quiet --fetch-submodules --rev "mainline-0-${newVersion}" "https://github.com/yuzu-emu/yuzu-mainline" | jq -r '.sha256')"
|
||||
elif [[ "$branch" = "early-access" ]]; then
|
||||
newHash="$(nix-prefetch-git --quiet --fetch-submodules --rev "EA-${newVersion}" "https://github.com/pineappleEA/pineapple-src" | jq -r '.sha256')"
|
||||
fi
|
||||
newHash="$(nix hash to-sri --type sha256 "${newHash}")"
|
||||
|
||||
NEW_EA_HASH="$(nix-prefetch-git --quiet --fetch-submodules --rev "EA-${NEW_EA_VERSION}" "https://github.com/pineappleEA/pineapple-src" | jq -r '.sha256')"
|
||||
|
||||
echo " Succesfully fetched. hash: ${NEW_EA_HASH}"
|
||||
|
||||
sed -i "s/${OLD_EA_VERSION}/${NEW_EA_VERSION}/" ./default.nix
|
||||
sed -i "s/${OLD_EA_HASH}/${NEW_EA_HASH}/" ./default.nix
|
||||
sed -i "s,${oldVersion},${newVersion}," "$DEFAULT_NIX"
|
||||
sed -i "s,${oldHash},${newHash},g" "$DEFAULT_NIX"
|
||||
echo " succesfully updated $attribute. new hash: $newHash"
|
||||
}
|
||||
|
||||
if [[ "$BRANCH" = "mainline" ]]; then
|
||||
updateMainline
|
||||
elif [[ "$BRANCH" = "early-access" ]]; then
|
||||
updateEarlyAccess
|
||||
else
|
||||
KEEP_GOING=1
|
||||
updateMainline
|
||||
updateEarlyAccess
|
||||
updateCompatibilityList() {
|
||||
local latestRevision oldUrl newUrl oldHash newHash oldDate newDate
|
||||
latestRevision="$(curl -s ${GITHUB_TOKEN:+"-u \":$GITHUB_TOKEN\""} "https://api.github.com/repos/flathub/org.yuzu_emu.yuzu/commits/master" | jq -r '.sha')"
|
||||
|
||||
oldUrl="$(sed -n '/yuzu-compat-list/,/url/p' "$DEFAULT_NIX" | tail -n1 | cut -d'"' -f2)"
|
||||
newUrl="https://raw.githubusercontent.com/flathub/org.yuzu_emu.yuzu/${latestRevision}/compatibility_list.json"
|
||||
|
||||
oldDate="$(sed -n '/last updated.*/p' "$DEFAULT_NIX" | rev | cut -d' ' -f1 | rev)"
|
||||
newDate="$(curl -s ${GITHUB_TOKEN:+"-u \":$GITHUB_TOKEN\""} "https://api.github.com/repos/flathub/org.yuzu_emu.yuzu/commits/${latestRevision}" \
|
||||
| jq -r '.commit.committer.date' | cut -d'T' -f1)"
|
||||
|
||||
oldHash="$(sed -n '/yuzu-compat-list/,/sha256/p' "$DEFAULT_NIX" | tail -n1 | cut -d'"' -f2)"
|
||||
newHash="$(nix hash to-sri --type sha256 "$(nix-prefetch-url --quiet "$newUrl")")"
|
||||
|
||||
if [[ "$oldHash" = "$newHash" ]]; then
|
||||
echo "compatibility_list is already up to date."
|
||||
return
|
||||
else
|
||||
echo "compatibility_list: $oldDate -> $newDate"
|
||||
fi
|
||||
|
||||
sed -i "s,${oldUrl},${newUrl},g" "$DEFAULT_NIX"
|
||||
sed -i "s,${oldHash},${newHash},g" "$DEFAULT_NIX"
|
||||
sed -i "s,${oldDate},${newDate},g" "$DEFAULT_NIX"
|
||||
echo " succesfully updated compatibility_list. new hash: $newHash"
|
||||
}
|
||||
|
||||
if [[ "$BRANCH" = "mainline" ]] || [[ "$BRANCH" = "early-access" ]]; then
|
||||
updateBranch "$BRANCH"
|
||||
updateCompatibilityList
|
||||
else # Script is not ran from passthru.updateScript
|
||||
if (( $# == 0 )); then
|
||||
updateBranch "mainline"
|
||||
updateBranch "early-access"
|
||||
fi
|
||||
|
||||
while (( "$#" > 0 )); do
|
||||
case "$1" in
|
||||
mainline|yuzu-mainline)
|
||||
updateBranch "mainline"
|
||||
;;
|
||||
early-access|yuzu-early-access|ea|yuzu-ea)
|
||||
updateBranch "early-access"
|
||||
;;
|
||||
*)
|
||||
echo "error: invalid branch: $1."
|
||||
echo "usage: $(basename "$0") [mainline|early-access]"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
updateCompatibilityList
|
||||
fi
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -21,13 +21,13 @@
|
||||
|
||||
mkDerivation rec {
|
||||
pname = "ovito";
|
||||
version = "3.7.1";
|
||||
version = "3.7.7";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
owner = "stuko";
|
||||
repo = "ovito";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-6b/yqfrpeZ6i6DoPe3lcftvuzwvK7rfZhgyHc9GtyBs=";
|
||||
sha256 = "sha256-wKXnb7ZzWOPPrHj3jOeFazRy0PVqcV/OFeaBs6qgF1I=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
@ -20,13 +20,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "moonlight-qt";
|
||||
version = "4.0.0";
|
||||
version = "4.1.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "moonlight-stream";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-CfOphr8QILCZg+UrImp5JO/1DTqoan5EwiQeTKR15Fo=";
|
||||
sha256 = "sha256-/HRmyf4sW8rsNmKMrlgPvq1L8gAEa6VRCyG2w5TfGkI=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
|
@ -2,13 +2,13 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "rmapi";
|
||||
version = "0.0.19";
|
||||
version = "0.0.20";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "juruen";
|
||||
repo = "rmapi";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-HXWE6688jhRQQEiZuPfuJStSQeueqoWwwa+PfneHprw=";
|
||||
sha256 = "sha256-khQ4Q2y/MJdz5EpfTSrLBROCX2QP2+3PXRO+x+FaXro=";
|
||||
};
|
||||
|
||||
vendorSha256 = "sha256-gu+BU2tL/xZ7D6lZ1ueO/9IB9H3NNm4mloCZaGqZskU=";
|
||||
|
@ -9,17 +9,22 @@
|
||||
, openjpeg
|
||||
, pkg-config
|
||||
, zathura_core
|
||||
, tesseract
|
||||
, leptonica
|
||||
, mujs
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "0.3.7";
|
||||
version = "0.3.8";
|
||||
pname = "zathura-pdf-mupdf";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://pwmt.org/projects/${pname}/download/${pname}-${version}.tar.xz";
|
||||
sha256 = "07d2ds9yqfrl20z3yfgc55vwg10mwmcg2yvpr4j66jjd5mlal01g";
|
||||
sha256 = "sha256-wgW0z1ANjP6ezqreVOX6jUzRKYzYXxem9QxkclkRYhc=";
|
||||
};
|
||||
|
||||
patches = [ ./fix-mupdf-1.20.patch ];
|
||||
|
||||
nativeBuildInputs = [ meson ninja pkg-config ];
|
||||
|
||||
buildInputs = [
|
||||
@ -31,15 +36,11 @@ stdenv.mkDerivation rec {
|
||||
mupdf
|
||||
openjpeg
|
||||
zathura_core
|
||||
tesseract
|
||||
leptonica
|
||||
mujs
|
||||
] ++ lib.optional stdenv.isDarwin gtk-mac-integration;
|
||||
|
||||
mesonFlags = [
|
||||
"-Dlink-external=true"
|
||||
];
|
||||
|
||||
# avoid: undefined symbol: gumbo_destroy_output
|
||||
NIX_LDFLAGS = [ "-lgumbo" ];
|
||||
|
||||
PKG_CONFIG_ZATHURA_PLUGINDIR= "lib/zathura";
|
||||
|
||||
meta = with lib; {
|
||||
|
@ -0,0 +1,24 @@
|
||||
From 5a5bb2634812f4c0530f5688a06269aaa4cd11dd Mon Sep 17 00:00:00 2001
|
||||
From: Osama Rebach <osamarebach@gmail.com>
|
||||
Date: Fri, 19 Aug 2022 13:39:49 +0100
|
||||
Subject: [PATCH] fix fz_search_stext_page
|
||||
|
||||
---
|
||||
zathura-pdf-mupdf/search.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/zathura-pdf-mupdf/search.c b/zathura-pdf-mupdf/search.c
|
||||
index f84dea0..419e5f4 100644
|
||||
--- a/zathura-pdf-mupdf/search.c
|
||||
+++ b/zathura-pdf-mupdf/search.c
|
||||
@@ -41,7 +41,7 @@ pdf_page_search_text(zathura_page_t* page, void* data, const char* text, zathura
|
||||
|
||||
fz_quad* hit_bbox = fz_malloc_array(mupdf_page->ctx, N_SEARCH_RESULTS, fz_quad);
|
||||
int num_results = fz_search_stext_page(mupdf_page->ctx, mupdf_page->text,
|
||||
- text, hit_bbox, N_SEARCH_RESULTS);
|
||||
+ text, NULL, hit_bbox, N_SEARCH_RESULTS);
|
||||
|
||||
fz_rect r;
|
||||
for (int i = 0; i < num_results; i++) {
|
||||
--
|
||||
2.37.1
|
@ -1,18 +1,18 @@
|
||||
{ lib, stdenv, fetchFromGitHub, qmake, qtwebengine, qttools, wrapGAppsHook, wrapQtAppsHook }:
|
||||
{ lib, stdenv, fetchFromGitHub, cmake, qtwebengine, qttools, wrapGAppsHook, wrapQtAppsHook }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "rssguard";
|
||||
version = "4.1.2";
|
||||
version = "4.2.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "martinrotter";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "sha256-aG7Wkn2CHe7Dumskd0+DMja95lzvBWnFXACSqfU7Ow0=";
|
||||
sha256 = "sha256-s5SrQgu1PHNuuLeVKhLdFdLkxsPMFXGo09NBPe6/sv0=";
|
||||
};
|
||||
|
||||
buildInputs = [ qtwebengine qttools ];
|
||||
nativeBuildInputs = [ qmake wrapGAppsHook wrapQtAppsHook ];
|
||||
nativeBuildInputs = [ cmake wrapGAppsHook wrapQtAppsHook ];
|
||||
qmakeFlags = [ "CONFIG+=release" ];
|
||||
|
||||
meta = with lib; {
|
||||
|
@ -1,141 +0,0 @@
|
||||
{
|
||||
"name": "element-desktop",
|
||||
"productName": "Element",
|
||||
"main": "lib/electron-main.js",
|
||||
"version": "1.11.0",
|
||||
"description": "A feature-rich client for Matrix.org",
|
||||
"author": "Element",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/vector-im/element-desktop"
|
||||
},
|
||||
"license": "Apache-2.0",
|
||||
"files": [],
|
||||
"scripts": {
|
||||
"i18n": "matrix-gen-i18n",
|
||||
"prunei18n": "matrix-prune-i18n",
|
||||
"diff-i18n": "cp src/i18n/strings/en_EN.json src/i18n/strings/en_EN_orig.json && matrix-gen-i18n && matrix-compare-i18n-files src/i18n/strings/en_EN_orig.json src/i18n/strings/en_EN.json",
|
||||
"mkdirs": "mkdirp packages deploys",
|
||||
"fetch": "yarn run mkdirs && node scripts/fetch-package.js",
|
||||
"asar-webapp": "asar p webapp webapp.asar",
|
||||
"start": "yarn run build:ts && yarn run build:res && electron .",
|
||||
"lint": "yarn lint:types && yarn lint:js",
|
||||
"lint:js": "eslint --max-warnings 0 src scripts hak",
|
||||
"lint:js-fix": "eslint --fix src scripts hak",
|
||||
"lint:types": "tsc --noEmit && tsc -p scripts/hak/tsconfig.json --noEmit && tsc -p hak/tsconfig.json --noEmit",
|
||||
"build:native": "yarn run hak",
|
||||
"build:native:universal": "yarn run hak --target x86_64-apple-darwin fetchandbuild && yarn run hak --target aarch64-apple-darwin fetchandbuild && yarn run hak --target x86_64-apple-darwin --target aarch64-apple-darwin copyandlink",
|
||||
"build:32": "yarn run build:ts && yarn run build:res && electron-builder --ia32",
|
||||
"build:64": "yarn run build:ts && yarn run build:res && electron-builder --x64",
|
||||
"build:universal": "yarn run build:ts && yarn run build:res && electron-builder --universal",
|
||||
"build": "yarn run build:ts && yarn run build:res && electron-builder",
|
||||
"build:ts": "tsc",
|
||||
"build:res": "node scripts/copy-res.js",
|
||||
"docker:setup": "docker build -t element-desktop-dockerbuild dockerbuild",
|
||||
"docker:build:native": "scripts/in-docker.sh yarn run hak",
|
||||
"docker:build": "scripts/in-docker.sh yarn run build",
|
||||
"docker:install": "scripts/in-docker.sh yarn install",
|
||||
"debrepo": "scripts/mkrepo.sh",
|
||||
"clean": "rimraf webapp.asar dist packages deploys lib",
|
||||
"hak": "ts-node scripts/hak/index.ts"
|
||||
},
|
||||
"dependencies": {
|
||||
"auto-launch": "^5.0.5",
|
||||
"counterpart": "^0.18.6",
|
||||
"electron-store": "^6.0.1",
|
||||
"electron-window-state": "^5.0.3",
|
||||
"minimist": "^1.2.6",
|
||||
"png-to-ico": "^2.1.1",
|
||||
"request": "^2.88.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/auto-launch": "^5.0.1",
|
||||
"@types/counterpart": "^0.18.1",
|
||||
"@types/minimist": "^1.2.1",
|
||||
"@types/mkdirp": "^1.0.2",
|
||||
"@types/pacote": "^11.1.1",
|
||||
"@types/rimraf": "^3.0.2",
|
||||
"@typescript-eslint/eslint-plugin": "^5.6.0",
|
||||
"@typescript-eslint/parser": "^5.6.0",
|
||||
"allchange": "^1.0.6",
|
||||
"app-builder-lib": "^22.14.10",
|
||||
"asar": "^2.0.1",
|
||||
"chokidar": "^3.5.2",
|
||||
"detect-libc": "^1.0.3",
|
||||
"electron": "^19",
|
||||
"electron-builder": "22.11.4",
|
||||
"electron-builder-squirrel-windows": "22.11.4",
|
||||
"electron-devtools-installer": "^3.1.1",
|
||||
"electron-notarize": "^1.0.0",
|
||||
"eslint": "7.18.0",
|
||||
"eslint-config-google": "^0.14.0",
|
||||
"eslint-plugin-import": "^2.25.4",
|
||||
"eslint-plugin-matrix-org": "^0.4.0",
|
||||
"find-npm-prefix": "^1.0.2",
|
||||
"fs-extra": "^8.1.0",
|
||||
"glob": "^7.1.6",
|
||||
"matrix-web-i18n": "^1.3.0",
|
||||
"mkdirp": "^1.0.3",
|
||||
"needle": "^2.5.0",
|
||||
"node-pre-gyp": "^0.15.0",
|
||||
"pacote": "^11.3.5",
|
||||
"rimraf": "^3.0.2",
|
||||
"tar": "^6.1.2",
|
||||
"ts-node": "^10.4.0",
|
||||
"typescript": "4.5.5"
|
||||
},
|
||||
"hakDependencies": {
|
||||
"matrix-seshat": "^2.3.3",
|
||||
"keytar": "^7.9.0"
|
||||
},
|
||||
"build": {
|
||||
"appId": "im.riot.app",
|
||||
"asarUnpack": "**/*.node",
|
||||
"files": [
|
||||
"package.json",
|
||||
{
|
||||
"from": ".hak/hakModules",
|
||||
"to": "node_modules"
|
||||
},
|
||||
"lib/**"
|
||||
],
|
||||
"extraResources": [
|
||||
{
|
||||
"from": "res/img",
|
||||
"to": "img"
|
||||
},
|
||||
"webapp.asar"
|
||||
],
|
||||
"linux": {
|
||||
"target": "deb",
|
||||
"category": "Network;InstantMessaging;Chat",
|
||||
"maintainer": "support@element.io",
|
||||
"desktop": {
|
||||
"StartupWMClass": "element"
|
||||
}
|
||||
},
|
||||
"mac": {
|
||||
"category": "public.app-category.social-networking",
|
||||
"darkModeSupport": true
|
||||
},
|
||||
"win": {
|
||||
"target": {
|
||||
"target": "squirrel"
|
||||
},
|
||||
"sign": "scripts/electron_winSign"
|
||||
},
|
||||
"directories": {
|
||||
"output": "dist"
|
||||
},
|
||||
"afterPack": "scripts/electron_afterPack",
|
||||
"afterSign": "scripts/electron_afterSign",
|
||||
"protocols": [
|
||||
{
|
||||
"name": "element",
|
||||
"schemes": [
|
||||
"element"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
@ -3,7 +3,9 @@
|
||||
, fetchFromGitHub
|
||||
, makeWrapper
|
||||
, makeDesktopItem
|
||||
, mkYarnPackage
|
||||
, fixup_yarn_lock
|
||||
, yarn
|
||||
, nodejs
|
||||
, fetchYarnDeps
|
||||
, electron
|
||||
, element-web
|
||||
@ -22,7 +24,7 @@ let
|
||||
keytar = callPackage ./keytar { inherit Security AppKit; };
|
||||
seshat = callPackage ./seshat { inherit CoreServices; };
|
||||
in
|
||||
mkYarnPackage rec {
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "element-desktop";
|
||||
inherit (pinData) version;
|
||||
name = "${pname}-${version}";
|
||||
@ -33,27 +35,39 @@ mkYarnPackage rec {
|
||||
sha256 = pinData.desktopSrcHash;
|
||||
};
|
||||
|
||||
packageJSON = ./element-desktop-package.json;
|
||||
offlineCache = fetchYarnDeps {
|
||||
yarnLock = src + "/yarn.lock";
|
||||
sha256 = pinData.desktopYarnHash;
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ] ++ lib.optionals stdenv.isDarwin [ desktopToDarwinBundle ];
|
||||
nativeBuildInputs = [ yarn fixup_yarn_lock nodejs makeWrapper ]
|
||||
++ lib.optionals stdenv.isDarwin [ desktopToDarwinBundle ];
|
||||
|
||||
inherit seshat;
|
||||
|
||||
configurePhase = ''
|
||||
runHook preConfigure
|
||||
|
||||
export HOME=$(mktemp -d)
|
||||
yarn config --offline set yarn-offline-mirror $offlineCache
|
||||
fixup_yarn_lock yarn.lock
|
||||
yarn install --offline --frozen-lockfile --ignore-platform --ignore-scripts --no-progress --non-interactive
|
||||
patchShebangs node_modules/
|
||||
|
||||
runHook postConfigure
|
||||
'';
|
||||
|
||||
buildPhase = ''
|
||||
runHook preBuild
|
||||
export HOME=$(mktemp -d)
|
||||
pushd deps/element-desktop/
|
||||
yarn run build:ts
|
||||
yarn run i18n
|
||||
yarn run build:res
|
||||
popd
|
||||
|
||||
yarn --offline run build:ts
|
||||
yarn --offline run i18n
|
||||
yarn --offline run build:res
|
||||
|
||||
rm -rf node_modules/matrix-seshat node_modules/keytar
|
||||
${lib.optionalString useKeytar "ln -s ${keytar} node_modules/keytar"}
|
||||
ln -s $seshat node_modules/matrix-seshat
|
||||
|
||||
runHook postBuild
|
||||
'';
|
||||
|
||||
@ -63,9 +77,9 @@ mkYarnPackage rec {
|
||||
# resources
|
||||
mkdir -p "$out/share/element"
|
||||
ln -s '${element-web}' "$out/share/element/webapp"
|
||||
cp -r './deps/element-desktop' "$out/share/element/electron"
|
||||
cp -r './deps/element-desktop/res/img' "$out/share/element"
|
||||
rm "$out/share/element/electron/node_modules"
|
||||
cp -r '.' "$out/share/element/electron"
|
||||
cp -r './res/img' "$out/share/element"
|
||||
rm -rf "$out/share/element/electron/node_modules"
|
||||
cp -r './node_modules' "$out/share/element/electron"
|
||||
cp $out/share/element/electron/lib/i18n/strings/en_EN.json $out/share/element/electron/lib/i18n/strings/en-us.json
|
||||
ln -s $out/share/element/electron/lib/i18n/strings/en{-us,}.json
|
||||
@ -90,9 +104,6 @@ mkYarnPackage rec {
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
# Do not attempt generating a tarball for element-desktop again.
|
||||
doDist = false;
|
||||
|
||||
# The desktop item properties should be kept in sync with data from upstream:
|
||||
# https://github.com/vector-im/element-desktop/blob/develop/package.json
|
||||
desktopItem = makeDesktopItem {
|
||||
|
@ -1,206 +0,0 @@
|
||||
{
|
||||
"name": "element-web",
|
||||
"version": "1.11.0",
|
||||
"description": "A feature-rich client for Matrix.org",
|
||||
"author": "New Vector Ltd.",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/vector-im/element-web"
|
||||
},
|
||||
"license": "Apache-2.0",
|
||||
"files": [
|
||||
"lib",
|
||||
"res",
|
||||
"src",
|
||||
"webpack.config.js",
|
||||
"scripts",
|
||||
"docs",
|
||||
"release.sh",
|
||||
"deploy",
|
||||
"CHANGELOG.md",
|
||||
"CONTRIBUTING.rst",
|
||||
"LICENSE",
|
||||
"README.md",
|
||||
"AUTHORS.rst",
|
||||
"package.json",
|
||||
"contribute.json"
|
||||
],
|
||||
"style": "bundle.css",
|
||||
"scripts": {
|
||||
"i18n": "matrix-gen-i18n",
|
||||
"prunei18n": "matrix-prune-i18n",
|
||||
"diff-i18n": "cp src/i18n/strings/en_EN.json src/i18n/strings/en_EN_orig.json && matrix-gen-i18n && matrix-compare-i18n-files src/i18n/strings/en_EN_orig.json src/i18n/strings/en_EN.json",
|
||||
"clean": "rimraf lib webapp",
|
||||
"build": "yarn clean && yarn build:genfiles && yarn build:bundle",
|
||||
"build-stats": "yarn clean && yarn build:genfiles && yarn build:bundle-stats",
|
||||
"build:jitsi": "node scripts/build-jitsi.js",
|
||||
"build:res": "node scripts/copy-res.js",
|
||||
"build:genfiles": "yarn build:res && yarn build:jitsi",
|
||||
"build:modernizr": "modernizr -c .modernizr.json -d src/vector/modernizr.js",
|
||||
"build:bundle": "webpack --progress --bail --mode production",
|
||||
"build:bundle-stats": "webpack --progress --bail --mode production --json > webpack-stats.json",
|
||||
"dist": "scripts/package.sh",
|
||||
"start": "concurrently --kill-others-on-fail --prefix \"{time} [{name}]\" -n res,element-js \"yarn start:res\" \"yarn start:js\"",
|
||||
"start:https": "concurrently --kill-others-on-fail --prefix \"{time} [{name}]\" -n res,element-js \"yarn start:res\" \"yarn start:js --https\"",
|
||||
"start:res": "yarn build:jitsi && node scripts/copy-res.js -w",
|
||||
"start:js": "webpack-dev-server --host=0.0.0.0 --output-filename=bundles/_dev_/[name].js --output-chunk-filename=bundles/_dev_/[name].js -w --mode development --disable-host-check --hot",
|
||||
"lint": "yarn lint:types && yarn lint:js && yarn lint:style",
|
||||
"lint:js": "eslint --max-warnings 0 src",
|
||||
"lint:js-fix": "eslint --fix src",
|
||||
"lint:types": "tsc --noEmit --jsx react",
|
||||
"lint:style": "stylelint \"res/css/**/*.scss\"",
|
||||
"test": "jest",
|
||||
"coverage": "yarn test --coverage"
|
||||
},
|
||||
"dependencies": {
|
||||
"@matrix-org/olm": "https://gitlab.matrix.org/api/v4/projects/27/packages/npm/@matrix-org/olm/-/@matrix-org/olm-3.2.8.tgz",
|
||||
"browser-request": "^0.3.3",
|
||||
"gfm.css": "^1.1.2",
|
||||
"jsrsasign": "^10.5.25",
|
||||
"katex": "^0.12.0",
|
||||
"matrix-js-sdk": "19.0.0",
|
||||
"matrix-react-sdk": "3.48.0",
|
||||
"matrix-widget-api": "^0.1.0-beta.18",
|
||||
"prop-types": "^15.7.2",
|
||||
"react": "17.0.2",
|
||||
"react-dom": "17.0.2",
|
||||
"sanitize-html": "^2.3.2",
|
||||
"ua-parser-js": "^0.7.24"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/core": "^7.12.10",
|
||||
"@babel/eslint-parser": "^7.12.10",
|
||||
"@babel/eslint-plugin": "^7.12.10",
|
||||
"@babel/plugin-proposal-class-properties": "^7.12.1",
|
||||
"@babel/plugin-proposal-export-default-from": "^7.12.1",
|
||||
"@babel/plugin-proposal-nullish-coalescing-operator": "^7.12.1",
|
||||
"@babel/plugin-proposal-numeric-separator": "^7.12.7",
|
||||
"@babel/plugin-proposal-object-rest-spread": "^7.12.1",
|
||||
"@babel/plugin-proposal-optional-chaining": "^7.12.7",
|
||||
"@babel/plugin-syntax-dynamic-import": "^7.8.3",
|
||||
"@babel/plugin-transform-runtime": "^7.12.10",
|
||||
"@babel/preset-env": "^7.12.11",
|
||||
"@babel/preset-react": "^7.12.10",
|
||||
"@babel/preset-typescript": "^7.12.7",
|
||||
"@babel/register": "^7.12.10",
|
||||
"@babel/runtime": "^7.12.5",
|
||||
"@principalstudio/html-webpack-inject-preload": "^1.2.7",
|
||||
"@sentry/webpack-plugin": "^1.18.1",
|
||||
"@svgr/webpack": "^5.5.0",
|
||||
"@types/flux": "^3.1.9",
|
||||
"@types/jest": "^27.0.2",
|
||||
"@types/modernizr": "^3.5.3",
|
||||
"@types/node": "^14.14.22",
|
||||
"@types/react": "17.0.14",
|
||||
"@types/react-dom": "17.0.9",
|
||||
"@types/sanitize-html": "^2.3.1",
|
||||
"@types/ua-parser-js": "^0.7.36",
|
||||
"@typescript-eslint/eslint-plugin": "^5.6.0",
|
||||
"@typescript-eslint/parser": "^5.6.0",
|
||||
"allchange": "^1.0.6",
|
||||
"autoprefixer": "^9.8.6",
|
||||
"babel-jest": "^26.6.3",
|
||||
"babel-loader": "^8.2.2",
|
||||
"chokidar": "^3.5.1",
|
||||
"concurrently": "^5.3.0",
|
||||
"cpx": "^1.5.0",
|
||||
"css-loader": "^3.6.0",
|
||||
"dotenv": "^10.0.0",
|
||||
"eslint": "8.9.0",
|
||||
"eslint-config-google": "^0.14.0",
|
||||
"eslint-plugin-import": "^2.25.4",
|
||||
"eslint-plugin-matrix-org": "^0.4.0",
|
||||
"eslint-plugin-react": "^7.28.0",
|
||||
"eslint-plugin-react-hooks": "^4.3.0",
|
||||
"extract-text-webpack-plugin": "^4.0.0-beta.0",
|
||||
"fake-indexeddb": "^3.1.2",
|
||||
"file-loader": "^5.1.0",
|
||||
"fs-extra": "^0.30.0",
|
||||
"html-webpack-plugin": "^4.5.2",
|
||||
"jest": "^26.6.3",
|
||||
"jest-environment-jsdom-sixteen": "^1.0.3",
|
||||
"jest-raw-loader": "^1.0.1",
|
||||
"jest-sonar-reporter": "^2.0.0",
|
||||
"json-loader": "^0.5.7",
|
||||
"loader-utils": "^1.4.0",
|
||||
"matrix-mock-request": "^2.0.0",
|
||||
"matrix-react-test-utils": "^0.2.3",
|
||||
"matrix-web-i18n": "^1.3.0",
|
||||
"mini-css-extract-plugin": "^0.12.0",
|
||||
"minimist": "^1.2.6",
|
||||
"mkdirp": "^1.0.4",
|
||||
"modernizr": "^3.12.0",
|
||||
"node-fetch": "^2.6.7",
|
||||
"optimize-css-assets-webpack-plugin": "^5.0.4",
|
||||
"postcss-easings": "^2.0.0",
|
||||
"postcss-hexrgba": "^2.0.1",
|
||||
"postcss-import": "^12.0.1",
|
||||
"postcss-loader": "^3.0.0",
|
||||
"postcss-mixins": "^6.2.3",
|
||||
"postcss-nested": "^4.2.3",
|
||||
"postcss-preset-env": "^6.7.0",
|
||||
"postcss-scss": "^2.1.1",
|
||||
"postcss-simple-vars": "^5.0.2",
|
||||
"postcss-strip-inline-comments": "^0.1.5",
|
||||
"raw-loader": "^4.0.2",
|
||||
"rimraf": "^3.0.2",
|
||||
"shell-escape": "^0.2.0",
|
||||
"simple-proxy-agent": "^1.1.0",
|
||||
"string-replace-loader": "2",
|
||||
"style-loader": "2",
|
||||
"stylelint": "^13.9.0",
|
||||
"stylelint-config-standard": "^20.0.0",
|
||||
"stylelint-scss": "^3.18.0",
|
||||
"terser-webpack-plugin": "^2.3.8",
|
||||
"typescript": "^4.5.3",
|
||||
"webpack": "^4.46.0",
|
||||
"webpack-cli": "^3.3.12",
|
||||
"webpack-dev-server": "^3.11.2",
|
||||
"worker-loader": "^2.0.0",
|
||||
"worklet-loader": "^2.0.0"
|
||||
},
|
||||
"resolutions": {
|
||||
"@types/react": "17.0.14"
|
||||
},
|
||||
"jest": {
|
||||
"testEnvironment": "jest-environment-jsdom-sixteen",
|
||||
"testMatch": [
|
||||
"<rootDir>/test/**/*-test.[tj]s?(x)"
|
||||
],
|
||||
"setupFilesAfterEnv": [
|
||||
"<rootDir>/node_modules/matrix-react-sdk/test/setupTests.js"
|
||||
],
|
||||
"moduleNameMapper": {
|
||||
"\\.(css|scss)$": "<rootDir>/__mocks__/cssMock.js",
|
||||
"\\.(gif|png|ttf|woff2)$": "<rootDir>/node_modules/matrix-react-sdk/__mocks__/imageMock.js",
|
||||
"\\.svg$": "<rootDir>/node_modules/matrix-react-sdk/__mocks__/svg.js",
|
||||
"\\$webapp/i18n/languages.json": "<rootDir>/node_modules/matrix-react-sdk/__mocks__/languages.json",
|
||||
"^browser-request$": "<rootDir>/node_modules/matrix-react-sdk/__mocks__/browser-request.js",
|
||||
"^react$": "<rootDir>/node_modules/react",
|
||||
"^react-dom$": "<rootDir>/node_modules/react-dom",
|
||||
"^matrix-js-sdk$": "<rootDir>/node_modules/matrix-js-sdk/src",
|
||||
"^matrix-react-sdk$": "<rootDir>/node_modules/matrix-react-sdk/src",
|
||||
"decoderWorker\\.min\\.js": "<rootDir>/node_modules/matrix-react-sdk/__mocks__/empty.js",
|
||||
"decoderWorker\\.min\\.wasm": "<rootDir>/node_modules/matrix-react-sdk/__mocks__/empty.js",
|
||||
"waveWorker\\.min\\.js": "<rootDir>/node_modules/matrix-react-sdk/__mocks__/empty.js",
|
||||
"context-filter-polyfill": "<rootDir>/node_modules/matrix-react-sdk/__mocks__/empty.js",
|
||||
"FontManager.ts": "<rootDir>/node_modules/matrix-react-sdk/__mocks__/FontManager.js",
|
||||
"workers/(.+)\\.worker\\.ts": "<rootDir>/node_modules/matrix-react-sdk/__mocks__/workerMock.js",
|
||||
"^!!raw-loader!.*": "jest-raw-loader",
|
||||
"RecorderWorklet": "<rootDir>/node_modules/matrix-react-sdk/__mocks__/empty.js"
|
||||
},
|
||||
"transformIgnorePatterns": [
|
||||
"/node_modules/(?!matrix-js-sdk).+$",
|
||||
"/node_modules/(?!matrix-react-sdk).+$"
|
||||
],
|
||||
"coverageReporters": [
|
||||
"text-summary",
|
||||
"lcov"
|
||||
],
|
||||
"testResultsProcessor": "jest-sonar-reporter"
|
||||
},
|
||||
"jestSonar": {
|
||||
"reportPath": "coverage",
|
||||
"sonar56x": true
|
||||
}
|
||||
}
|
@ -1,5 +1,5 @@
|
||||
{ lib
|
||||
, mkYarnPackage
|
||||
, stdenv
|
||||
, runCommand
|
||||
, fetchFromGitHub
|
||||
, fetchYarnDeps
|
||||
@ -7,6 +7,7 @@
|
||||
, jq
|
||||
, yarn
|
||||
, fixup_yarn_lock
|
||||
, nodejs
|
||||
, jitsi-meet
|
||||
, conf ? { }
|
||||
}:
|
||||
@ -19,8 +20,7 @@ let
|
||||
};
|
||||
configOverrides = writeText "element-config-overrides.json" (builtins.toJSON (noPhoningHome // conf));
|
||||
|
||||
in
|
||||
mkYarnPackage rec {
|
||||
in stdenv.mkDerivation rec {
|
||||
pname = "element-web";
|
||||
inherit (pinData) version;
|
||||
|
||||
@ -31,23 +31,24 @@ mkYarnPackage rec {
|
||||
sha256 = pinData.webSrcHash;
|
||||
};
|
||||
|
||||
packageJSON = ./element-web-package.json;
|
||||
# Remove the matrix-analytics-events dependency from the matrix-react-sdk
|
||||
# dependencies list. It doesn't seem to be necessary since we already are
|
||||
# installing it individually, and it causes issues with the offline mode.
|
||||
yarnLock = (runCommand "${pname}-modified-lock" {} ''
|
||||
sed '/matrix-analytics-events "github/d' ${src}/yarn.lock > "$out"
|
||||
'');
|
||||
offlineCache = fetchYarnDeps {
|
||||
inherit yarnLock;
|
||||
yarnLock = src + "/yarn.lock";
|
||||
sha256 = pinData.webYarnHash;
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ jq ];
|
||||
nativeBuildInputs = [ yarn fixup_yarn_lock jq nodejs ];
|
||||
|
||||
configurePhase = ''
|
||||
runHook preConfigure
|
||||
ln -s $node_modules node_modules
|
||||
|
||||
export HOME=$PWD/tmp
|
||||
mkdir -p $HOME
|
||||
|
||||
fixup_yarn_lock yarn.lock
|
||||
yarn config --offline set yarn-offline-mirror $offlineCache
|
||||
yarn install --offline --frozen-lockfile --ignore-platform --ignore-scripts --no-progress --non-interactive
|
||||
patchShebangs node_modules
|
||||
|
||||
runHook postConfigure
|
||||
'';
|
||||
|
||||
@ -56,6 +57,7 @@ mkYarnPackage rec {
|
||||
|
||||
export VERSION=${version}
|
||||
yarn build:res --offline
|
||||
yarn build:module_system --offline
|
||||
yarn build:bundle --offline
|
||||
|
||||
runHook postBuild
|
||||
@ -72,9 +74,6 @@ mkYarnPackage rec {
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
# Do not attempt generating a tarball for element-web again.
|
||||
doDist = false;
|
||||
|
||||
meta = {
|
||||
description = "A glossy Matrix collaboration client for the web";
|
||||
homepage = "https://element.io/";
|
||||
|
@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": "1.11.0",
|
||||
"desktopSrcHash": "WYXPsiR3hKj+cPvs5bLzZ301vLISp3ANLf/GgBBMYqM=",
|
||||
"desktopYarnHash": "0v60ak06g87i3q5rqgxy3v3whk3njj0v1ml9rfdab1mbzrj6209c",
|
||||
"webSrcHash": "L6ONDjGy8Uuo7E4O5ajIYdDLYL59JkuUk9hAAlTID1k=",
|
||||
"webYarnHash": "15qhw2z05ylxvidaaifpxxdpd68s7qbwpgx9y95x6v82fcr7xhrz"
|
||||
"version": "1.11.3",
|
||||
"desktopSrcHash": "DJqnMEN7KlRIGefMcZCp27xLnPEoSR8Ml5sN5JfqNSM=",
|
||||
"desktopYarnHash": "15wa3ggw1zcc17lfhzig5qw1bpiph7qd6h53qc5nahmfan4jv06a",
|
||||
"webSrcHash": "D95eVWTAvpStOZK0cjP2V8k1ZTnkGLsA0/woVGqDKEI=",
|
||||
"webYarnHash": "1i0djpnn545n83nmm0hm752b66ai1kh3irkfpvw98300c6q1m7fx"
|
||||
}
|
||||
|
@ -21,21 +21,18 @@ version="${version#v}"
|
||||
# Element Web
|
||||
web_src="https://raw.githubusercontent.com/vector-im/element-web/v$version"
|
||||
web_src_hash=$(nix-prefetch-github vector-im element-web --rev v${version} | jq -r .sha256)
|
||||
wget "$web_src/package.json" -O element-web-package.json
|
||||
|
||||
web_tmpdir=$(mktemp -d)
|
||||
trap 'rm -rf "$web_tmpdir"' EXIT
|
||||
|
||||
pushd $web_tmpdir
|
||||
wget "$web_src/yarn.lock"
|
||||
sed -i '/matrix-analytics-events "github/d' yarn.lock
|
||||
web_yarn_hash=$(prefetch-yarn-deps yarn.lock)
|
||||
popd
|
||||
|
||||
# Element Desktop
|
||||
desktop_src="https://raw.githubusercontent.com/vector-im/element-desktop/v$version"
|
||||
desktop_src_hash=$(nix-prefetch-github vector-im element-desktop --rev v${version} | jq -r .sha256)
|
||||
wget "$desktop_src/package.json" -O element-desktop-package.json
|
||||
|
||||
desktop_tmpdir=$(mktemp -d)
|
||||
trap 'rm -rf "$desktop_tmpdir"' EXIT
|
||||
|
@ -2,16 +2,16 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "juju";
|
||||
version = "2.9.31";
|
||||
version = "2.9.33";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "juju";
|
||||
repo = "juju";
|
||||
rev = "juju-${version}";
|
||||
sha256 = "sha256-vRe7H7wtZUTsAJa6QVP+BTDDkJsfgIlBVpGcvtU1e0g=";
|
||||
sha256 = "sha256-BK5fTPV4glBg4a4QI5L3ZBmWYGrfLDx6hAOzlNbMxJU=";
|
||||
};
|
||||
|
||||
vendorSha256 = "sha256-Tx5RazLrNZ5GMRu4/jKhuNN7m1mQw4V7TBcIed/Gssg=";
|
||||
vendorSha256 = "sha256-xBlGqHmAX08LlHmZ9Vr+j06Cf2soIPDFJKZh36ku8cw=";
|
||||
|
||||
# Disable tests because it attempts to use a mongodb instance
|
||||
doCheck = false;
|
||||
|
@ -8,13 +8,13 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "shellhub-agent";
|
||||
version = "0.9.5";
|
||||
version = "0.9.6";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "shellhub-io";
|
||||
repo = "shellhub";
|
||||
rev = "v${version}";
|
||||
sha256 = "EBtQOli8jh5Ful39tR4U/H3KH517LmoYfqVyydQQTpA=";
|
||||
sha256 = "Ag1rwBWeVUBKxnsIGNDwz9UmHwpklwF6UjM8IPudZTs=";
|
||||
};
|
||||
|
||||
modRoot = "./agent";
|
||||
|
@ -2,13 +2,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "kitsas";
|
||||
version = "3.1.1";
|
||||
version = "3.2.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "artoh";
|
||||
repo = "kitupiikki";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-nmlGLrVsTQawYHNgaax9EiutL4xgFdOD34Q4/rnB/D0=";
|
||||
sha256 = "sha256-1gp6CMoDTAp6ORnuk5wos67zygmE9s2pXwvwcR+Hwgg=";
|
||||
};
|
||||
|
||||
# QList::swapItemsAt was introduced in Qt 5.13
|
||||
|
@ -5,13 +5,13 @@
|
||||
|
||||
mkDerivation rec {
|
||||
pname = "qownnotes";
|
||||
version = "22.8.1";
|
||||
version = "22.8.3";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://download.tuxfamily.org/${pname}/src/${pname}-${version}.tar.xz";
|
||||
# Fetch the checksum of current version with curl:
|
||||
# curl https://download.tuxfamily.org/qownnotes/src/qownnotes-<version>.tar.xz.sha256
|
||||
sha256 = "82b231c53c485671568571e97f34b98887b0cee6e8a336a61e7d490edc605061";
|
||||
sha256 = "sha256-f6/MlgAlJWf8RpKiJNP5gWjesUfkxaabWW4lXQCLtdQ=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ qmake qttools ];
|
||||
|
@ -2,16 +2,16 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "flex-ncat";
|
||||
version = "0.1-20211223.0";
|
||||
version = "0.1-20220505.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "kc2g-flex-tools";
|
||||
repo = "nCAT";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-l5IH6EtWqxMLqUfIYpaKgZE9Jq8q4+WgZIazQ2scyxg=";
|
||||
hash = "sha256-Jqoqy+W5sKfg7U/F2OpK1jAVM8rm1Tbr4RHG/mMVE0g=";
|
||||
};
|
||||
|
||||
vendorSha256 = "sha256-OzYlpC8DZQc3qo7mnl5jHlxaCNxMW+Z3VG535e+G/1o=";
|
||||
vendorSha256 = "sha256-mWZRaPbmSPBUhTCWSkU33zOOq79ylEbnjPG3gLkWeQY=";
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/kc2g-flex-tools/nCAT";
|
||||
|
@ -10,20 +10,20 @@
|
||||
, libconfig
|
||||
, pcsclite
|
||||
, uhd
|
||||
, soapysdr
|
||||
, soapysdr-with-plugins
|
||||
, libbladeRF
|
||||
, zeromq
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "srsran";
|
||||
version = "21.10";
|
||||
version = "22.04.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "srsran";
|
||||
repo = "srsran";
|
||||
rev = "release_${builtins.replaceStrings ["."] ["_"] version}";
|
||||
sha256 = "sha256-uJv8khevp7g2p4zT6bkrut67kvMu+fuL1VHDDit0viw=";
|
||||
sha256 = "sha256-jqaGlMhy6L6lRknl6Ezi0n+vNjMb7C+FN9a+QeOy/RY=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake pkg-config ];
|
||||
@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
|
||||
lksctp-tools
|
||||
pcsclite
|
||||
uhd
|
||||
soapysdr
|
||||
soapysdr-with-plugins
|
||||
libbladeRF
|
||||
zeromq
|
||||
];
|
||||
|
@ -2,7 +2,7 @@ diff --git a/src/elan-dist/src/component/package.rs b/src/elan-dist/src/componen
|
||||
index c51e76d..ae8159e 100644
|
||||
--- a/src/elan-dist/src/component/package.rs
|
||||
+++ b/src/elan-dist/src/component/package.rs
|
||||
@@ -56,6 +56,30 @@ fn unpack_without_first_dir<R: Read>(archive: &mut tar::Archive<R>, path: &Path)
|
||||
@@ -56,6 +56,35 @@ fn unpack_without_first_dir<R: Read>(archive: &mut tar::Archive<R>, path: &Path)
|
||||
entry
|
||||
.unpack(&full_path)
|
||||
.chain_err(|| ErrorKind::ExtractingPackage)?;
|
||||
@ -30,6 +30,11 @@ index c51e76d..ae8159e 100644
|
||||
+LEAN_CC="${{LEAN_CC:-@cc@}}" exec -a "$0" {} "$@" -L {}/lib # use bundled libraries, but not bundled compiler that doesn't know about NIX_LDFLAGS
|
||||
+"#, new_path.to_str().unwrap(), dest_path.parent().unwrap().parent().unwrap().to_str().unwrap()))?;
|
||||
+ ::std::fs::set_permissions(dest_path, ::std::fs::Permissions::from_mode(0o755))?;
|
||||
+ }
|
||||
+
|
||||
+ if dest_path.file_name() == Some(::std::ffi::OsStr::new("llvm-ar")) {
|
||||
+ ::std::fs::remove_file(dest_path)?;
|
||||
+ ::std::os::unix::fs::symlink("@ar@", dest_path)?;
|
||||
}
|
||||
|
||||
Ok(())
|
||||
|
@ -28,6 +28,7 @@ rustPlatform.buildRustPackage rec {
|
||||
(runCommand "0001-dynamically-patchelf-binaries.patch" {
|
||||
CC = stdenv.cc;
|
||||
cc = "${stdenv.cc}/bin/cc";
|
||||
ar = "${stdenv.cc}/bin/ar";
|
||||
patchelf = patchelf;
|
||||
shell = runtimeShell;
|
||||
} ''
|
||||
@ -36,6 +37,7 @@ rustPlatform.buildRustPackage rec {
|
||||
--subst-var patchelf \
|
||||
--subst-var dynamicLinker \
|
||||
--subst-var cc \
|
||||
--subst-var ar \
|
||||
--subst-var shell
|
||||
'')
|
||||
];
|
||||
|
@ -2,13 +2,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "qalculate-gtk";
|
||||
version = "4.2.0";
|
||||
version = "4.3.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "qalculate";
|
||||
repo = "qalculate-gtk";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-SphruQ/b8z5S/wKb9yhbEy9/pwiY+frZltdIYj0CJBM=";
|
||||
sha256 = "sha256-LlE+Wj+Q5of6miU8SLV/EUlcj5eQ6m4ZVtU0JOsz/kM=";
|
||||
};
|
||||
|
||||
hardeningDisable = [ "format" ];
|
||||
|
@ -3,11 +3,11 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "emuflight-configurator";
|
||||
version = "0.4.0";
|
||||
version = "0.4.1";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/emuflight/EmuConfigurator/releases/download/${version}/emuflight-configurator_${version}_linux64.zip";
|
||||
sha256 = "sha256-s5AE+r9Fw6S7IG2cDW2T7vctcYIAY8al7eCFIDjD5oI=";
|
||||
sha256 = "sha256-e4HNg5yr9V5LyT0hYP6gzw0tZm4dLidJg5MQtH3L3JI=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ wrapGAppsHook unzip copyDesktopItems ];
|
||||
|
@ -39,14 +39,14 @@ let
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "${basename}-bin";
|
||||
version = "2.0.0";
|
||||
version = "2.1.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/streamlink/${basename}/releases/download/v${version}/${basename}-v${version}-${arch}.tar.gz";
|
||||
hash =
|
||||
if arch == "linux64"
|
||||
then
|
||||
"sha256-5AgQ+nvv/J493Zi+F+6QRT/DGg8JyusXsP5qVuXtiG4="
|
||||
"sha256-kfCGhIgKMI0siDqnmIHSMk6RMHFlW6uwVsW48aiRua0="
|
||||
else
|
||||
"sha256-+jgTpIYb4BPM7Ixmo+YUeOX5OlQlMaRVEXf3WzS2lAI=";
|
||||
};
|
||||
|
@ -2,13 +2,13 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "docker-buildx";
|
||||
version = "0.9.0";
|
||||
version = "0.9.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "docker";
|
||||
repo = "buildx";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-fWtPoOUI5tgY9Xsf/FAZPlaagC5FR5FBHysWv788Pik=";
|
||||
sha256 = "sha256-nJR+wpWa7y8Mq6WWj1ZH/FRCtar40XP2fwyl1hMgELI=";
|
||||
};
|
||||
|
||||
vendorSha256 = null;
|
||||
|
@ -9,7 +9,6 @@
|
||||
, cjs
|
||||
, clutter
|
||||
, fetchFromGitHub
|
||||
, fetchpatch
|
||||
, gdk-pixbuf
|
||||
, gettext
|
||||
, libgnomekbd
|
||||
@ -55,31 +54,18 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "cinnamon-common";
|
||||
version = "5.4.10";
|
||||
version = "5.4.11";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "linuxmint";
|
||||
repo = "cinnamon";
|
||||
rev = version;
|
||||
hash = "sha256-yNjFP32+0LXqHfJUxm1A+CTuwny5/IxxT08689f7VlE=";
|
||||
hash = "sha256-3uQ4t+WXauCM3jV44pSz1yqLxXwLBWv7xMvP7ug3AY0=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
./use-sane-install-dir.patch
|
||||
./libdir.patch
|
||||
# Re-add libsoup 2.4 as dependency - needed by some applets.
|
||||
# Can be removed on next update.
|
||||
(fetchpatch {
|
||||
url = "https://github.com/linuxmint/cinnamon/commit/76224fe409d074f8a44c70e4fd5e1289f92800b9.patch";
|
||||
sha256 = "sha256-nDt4kkK1kVstxbij63XxTJ2L/TM9Q1P6feok3xlPQOM=";
|
||||
})
|
||||
# keybindings.js: Use bindings.get().
|
||||
# Can be removed on next update.
|
||||
# https://github.com/linuxmint/cinnamon/issues/11055
|
||||
(fetchpatch {
|
||||
url = "https://github.com/linuxmint/cinnamon/commit/7724e4146baf8431bc1fb55dce60984e77adef5a.patch";
|
||||
sha256 = "sha256-idGtkBa13nmoEprtmAr6OssO16wJwBd16r2ZbbhrYDQ=";
|
||||
})
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
|
@ -29,13 +29,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "cinnamon-screensaver";
|
||||
version = "5.4.2";
|
||||
version = "5.4.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "linuxmint";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
hash = "sha256-GRa3ChUCL/AFDg1F01DNwkC4tmrNaOWoOXwFvwpvSck=";
|
||||
hash = "sha256-D+SpAO4i4KGFWJI94LalTMB3j1YPvV63cKb34FDDprk=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
@ -8,14 +8,14 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "mint-themes";
|
||||
version = "2.0.4";
|
||||
version = "2.0.5";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "linuxmint";
|
||||
repo = pname;
|
||||
# they don't exactly do tags, it's just a named commit
|
||||
rev = "73d6cfea807ea84a645f43424c60916cb6214693";
|
||||
hash = "sha256-WyEabE3K7xuBzXuLqJO0N4nxrc67bKT5YD9yn/bELl0=";
|
||||
rev = "3a202e401abca98623cd1dbc412221682081244c";
|
||||
hash = "sha256-OgyLNc6gwMn7dG5/T67Toiqsij1rJYV6k6Un2cgr2oQ=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
@ -35,7 +35,7 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "muffin";
|
||||
version = "5.4.5";
|
||||
version = "5.4.6";
|
||||
|
||||
outputs = [ "out" "dev" "man" ];
|
||||
|
||||
@ -50,7 +50,7 @@ stdenv.mkDerivation rec {
|
||||
owner = "linuxmint";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
hash = "sha256-gtki0MTIMI1JggtVn0dAhkq364hkTuH7Zf7CF32Lc8E=";
|
||||
hash = "sha256-xTpL+o7gFvu8VNbCb8c0Y0Z8ncqb9y2qTiXP3rHAz+M=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
@ -26,13 +26,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "xreader";
|
||||
version = "3.4.4";
|
||||
version = "3.4.5";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "linuxmint";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "sha256-uYnQE1GjkUxYlvXSJNmvr6q4OdvAWgv8HqTXk0KkRQM=";
|
||||
sha256 = "sha256-lRtBxqD45/3Wjp0Sq8A0L3Zmg33Pq6iIsA8jeywnDBc=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
@ -1,8 +1,13 @@
|
||||
packages:
|
||||
{ buildEnv, lib }:
|
||||
{ buildEnv, makeWrapper, lib }:
|
||||
# TODO: Rethink how we determine and/or get the CLI.
|
||||
# Possible options raised in #187118:
|
||||
# 1. A separate argument for the CLI (as suggested by IvarWithoutBones
|
||||
# 2. Use the highest version SDK for the CLI (as suggested by GGG)
|
||||
# 3. Something else?
|
||||
let cli = builtins.head packages;
|
||||
in
|
||||
assert lib.assertMsg ((builtins.length packages) != 0)
|
||||
assert lib.assertMsg ((builtins.length packages) < 1)
|
||||
''You must include at least one package, e.g
|
||||
`with dotnetCorePackages; combinePackages [
|
||||
sdk_3_1 aspnetcore_5_0
|
||||
@ -10,11 +15,20 @@ assert lib.assertMsg ((builtins.length packages) != 0)
|
||||
buildEnv {
|
||||
name = "dotnet-core-combined";
|
||||
paths = packages;
|
||||
pathsToLink = [ "/host" "/packs" "/sdk" "/shared" "/templates" ];
|
||||
pathsToLink = [ "/host" "/packs" "/sdk" "/sdk-manifests" "/shared" "/templates" ];
|
||||
ignoreCollisions = true;
|
||||
nativeBuildInputs = [
|
||||
makeWrapper
|
||||
];
|
||||
postBuild = ''
|
||||
cp ${cli}/dotnet $out/dotnet
|
||||
cp -R ${cli}/{dotnet,LICENSE.txt,nix-support,ThirdPartyNotices.txt} $out/
|
||||
|
||||
mkdir $out/bin
|
||||
ln -s $out/dotnet $out/bin/
|
||||
ln -s $out/dotnet $out/bin/dotnet
|
||||
wrapProgram $out/bin/dotnet \
|
||||
--prefix LD_LIBRARY_PATH : ${cli.icu}/lib
|
||||
'';
|
||||
passthru = {
|
||||
inherit (cli) icu packages;
|
||||
};
|
||||
}
|
||||
|
@ -18,6 +18,7 @@ let
|
||||
dotnet_3_1 = import ./versions/3.1.nix (buildAttrs // { icu = icu70; });
|
||||
dotnet_5_0 = import ./versions/5.0.nix (buildAttrs // { inherit icu; });
|
||||
dotnet_6_0 = import ./versions/6.0.nix (buildAttrs // { inherit icu; });
|
||||
dotnet_7_0 = import ./versions/7.0.nix (buildAttrs // { inherit icu; });
|
||||
in
|
||||
rec {
|
||||
combinePackages = attrs: callPackage (import ./combine-packages.nix attrs) {};
|
||||
@ -26,4 +27,4 @@ rec {
|
||||
sdk_2_1 = throw "Dotnet SDK 2.1 is EOL, please use 3.1 (LTS), 5.0 (Current) or 6.0 (LTS)";
|
||||
sdk_2_2 = throw "Dotnet SDK 2.2 is EOL, please use 3.1 (LTS), 5.0 (Current) or 6.0 (LTS)";
|
||||
sdk_3_0 = throw "Dotnet SDK 3.0 is EOL, please use 3.1 (LTS), 5.0 (Current) or 6.0 (LTS)";
|
||||
} // dotnet_3_1 // dotnet_5_0 // dotnet_6_0
|
||||
} // dotnet_3_1 // dotnet_5_0 // dotnet_6_0 // dotnet_7_0
|
||||
|
@ -51,7 +51,23 @@ platform_sources () {
|
||||
echo " };"
|
||||
}
|
||||
|
||||
sdk_packages () {
|
||||
generate_package_list() {
|
||||
local version pkgs nuget_url
|
||||
version="$1"
|
||||
shift
|
||||
pkgs=( "$@" )
|
||||
|
||||
nuget_url="$(curl -f "https://api.nuget.org/v3/index.json" | jq --raw-output '.resources[] | select(."@type" == "PackageBaseAddress/3.0.0")."@id"')"
|
||||
|
||||
for pkg in "${pkgs[@]}"; do
|
||||
local url hash
|
||||
url="${nuget_url}${pkg,,}/${version,,}/${pkg,,}.${version,,}.nupkg"
|
||||
hash="$(nix-prefetch-url "$url")"
|
||||
echo " (fetchNuGet { pname = \"${pkg}\"; version = \"${version}\"; sha256 = \"${hash}\"; })"
|
||||
done
|
||||
}
|
||||
|
||||
aspnetcore_packages () {
|
||||
local version=$1
|
||||
# These packages are implicitly references by the build process,
|
||||
# based on the specific project configurations (RIDs, used features, etc.)
|
||||
@ -89,6 +105,36 @@ sdk_packages () {
|
||||
"Microsoft.AspNetCore.App.Runtime.win-arm64" \
|
||||
"Microsoft.AspNetCore.App.Runtime.win-x64" \
|
||||
"Microsoft.AspNetCore.App.Runtime.win-x86" \
|
||||
)
|
||||
|
||||
generate_package_list "$version" "${pkgs[@]}"
|
||||
}
|
||||
|
||||
sdk_packages () {
|
||||
local version=$1
|
||||
# These packages are implicitly references by the build process,
|
||||
# based on the specific project configurations (RIDs, used features, etc.)
|
||||
# They are always referenced with the same version as the SDK used for building.
|
||||
# Since we lock nuget dependencies, when these packages are included in the generated
|
||||
# lock files (deps.nix), every update of SDK required those lock files to be
|
||||
# updated to reflect the new versions of these packages - otherwise, the build
|
||||
# would fail due to missing dependencies.
|
||||
#
|
||||
# Moving them to a separate list stored alongside the SDK package definitions,
|
||||
# and implictly including them along in buildDotnetModule allows us
|
||||
# to make updating .NET SDK packages a lot easier - we now just update
|
||||
# the versions of these packages in one place, and all packages that
|
||||
# use buildDotnetModule continue building with the new .NET version without changes.
|
||||
#
|
||||
# Keep in mind that there is no canonical list of these implicitly
|
||||
# referenced packages - this list was created based on looking into
|
||||
# the deps.nix files of existing packages, and which dependencies required
|
||||
# updating after a SDK version bump.
|
||||
#
|
||||
# Due to this, make sure to check if new SDK versions introduce any new packages.
|
||||
# This should not happend in minor or bugfix updates, but probably happens
|
||||
# with every new major .NET release.
|
||||
local pkgs=( \
|
||||
"Microsoft.NETCore.App.Composite" \
|
||||
"Microsoft.NETCore.App.Host.linux-arm" \
|
||||
"Microsoft.NETCore.App.Host.linux-arm64" \
|
||||
@ -109,6 +155,14 @@ sdk_packages () {
|
||||
"Microsoft.NETCore.App.Runtime.linux-musl-arm64" \
|
||||
"Microsoft.NETCore.App.Runtime.linux-musl-x64" \
|
||||
"Microsoft.NETCore.App.Runtime.linux-x64" \
|
||||
"Microsoft.NETCore.App.Runtime.Mono.linux-arm" \
|
||||
"Microsoft.NETCore.App.Runtime.Mono.linux-arm64" \
|
||||
"Microsoft.NETCore.App.Runtime.Mono.linux-musl-x64" \
|
||||
"Microsoft.NETCore.App.Runtime.Mono.linux-x64" \
|
||||
"Microsoft.NETCore.App.Runtime.Mono.osx-arm64" \
|
||||
"Microsoft.NETCore.App.Runtime.Mono.osx-x64" \
|
||||
"Microsoft.NETCore.App.Runtime.Mono.win-x64" \
|
||||
"Microsoft.NETCore.App.Runtime.Mono.win-x86" \
|
||||
"Microsoft.NETCore.App.Runtime.osx-arm64" \
|
||||
"Microsoft.NETCore.App.Runtime.osx-x64" \
|
||||
"Microsoft.NETCore.App.Runtime.win-arm" \
|
||||
@ -169,14 +223,21 @@ sdk_packages () {
|
||||
"runtime.win-x86.Microsoft.NETCore.DotNetHostResolver" \
|
||||
)
|
||||
|
||||
local nuget_url="$(curl -f "https://api.nuget.org/v3/index.json" | jq --raw-output '.resources[] | select(."@type" == "PackageBaseAddress/3.0.0")."@id"')"
|
||||
# Packages that only apply to .NET 7 and up
|
||||
if [[ ! ( "$version" =~ ^[1-6]\. ) ]]; then
|
||||
# ILCompiler requires nixpkgs#181373 to be fixed to work properly
|
||||
pkgs+=( \
|
||||
"runtime.linux-arm64.Microsoft.DotNet.ILCompiler" \
|
||||
"runtime.linux-musl-arm64.Microsoft.DotNet.ILCompiler" \
|
||||
"runtime.linux-musl-x64.Microsoft.DotNet.ILCompiler" \
|
||||
"runtime.linux-x64.Microsoft.DotNet.ILCompiler" \
|
||||
"runtime.osx-x64.Microsoft.DotNet.ILCompiler" \
|
||||
"runtime.win-arm64.Microsoft.DotNet.ILCompiler" \
|
||||
"runtime.win-x64.Microsoft.DotNet.ILCompiler" \
|
||||
)
|
||||
fi
|
||||
|
||||
for pkg in "${pkgs[@]}"; do
|
||||
local url hash
|
||||
url="${nuget_url}${pkg,,}/${version,,}/${pkg,,}.${version,,}.nupkg"
|
||||
hash="$(nix-prefetch-url "$url")"
|
||||
echo " (fetchNuGet { pname = \"${pkg}\"; version = \"${version}\"; sha256 = \"${hash}\"; })"
|
||||
done
|
||||
generate_package_list "$version" "${pkgs[@]}"
|
||||
}
|
||||
|
||||
main () {
|
||||
@ -244,6 +305,7 @@ Examples:
|
||||
version = \"${sdk_version}\";
|
||||
$(platform_sources "$sdk_files")
|
||||
packages = { fetchNuGet }: [
|
||||
$(aspnetcore_packages "${aspnetcore_version}")
|
||||
$(sdk_packages "${runtime_version}")
|
||||
];
|
||||
};
|
||||
|
181
pkgs/development/compilers/dotnet/versions/7.0.nix
Normal file
181
pkgs/development/compilers/dotnet/versions/7.0.nix
Normal file
@ -0,0 +1,181 @@
|
||||
{ buildAspNetCore, buildNetRuntime, buildNetSdk, icu }:
|
||||
|
||||
# v7.0 (preview)
|
||||
{
|
||||
aspnetcore_7_0 = buildAspNetCore {
|
||||
inherit icu;
|
||||
version = "7.0.0-preview.7.22376.6";
|
||||
srcs = {
|
||||
x86_64-linux = {
|
||||
url = "https://download.visualstudio.microsoft.com/download/pr/0dcd6772-e520-4827-92e4-ad840230fe1b/fc025ae94601620a7133f8479e8458ec/aspnetcore-runtime-7.0.0-preview.7.22376.6-linux-x64.tar.gz";
|
||||
sha512 = "7d4861a28a42df31a7e2c740d17e1b0eb78e860a2ccdb25eec754a2098593a3adac00687294209d847a8fa618019a2d1b1d5fdd3f9aea37ffdc19164c862c558";
|
||||
};
|
||||
aarch64-linux = {
|
||||
url = "https://download.visualstudio.microsoft.com/download/pr/d6db9068-b8bf-4148-8c46-b5ee6b5a1a8e/eebc3347e69547e59145094b76efa1f5/aspnetcore-runtime-7.0.0-preview.7.22376.6-linux-arm64.tar.gz";
|
||||
sha512 = "af8d65460bded7a6b1591ecb47ed704cf577f73a83b09ceb5880ec1c90677b1d724e799022854623ac132534e0acd656443b32a49090354a9ef872f2bb0eb441";
|
||||
};
|
||||
x86_64-darwin = {
|
||||
url = "https://download.visualstudio.microsoft.com/download/pr/8a2b2985-e061-44e4-9f9d-915179671a7a/1e4005f1d349063642beb40ee5ac8bf5/aspnetcore-runtime-7.0.0-preview.7.22376.6-osx-x64.tar.gz";
|
||||
sha512 = "52782e60b688a595a31b151b094978afb174df0e823f916b8a1e78b14566822ef22726481846c36dc95178ad5f39caa6832c9b8642b87dbc6998f3a20c18fcaa";
|
||||
};
|
||||
aarch64-darwin = {
|
||||
url = "https://download.visualstudio.microsoft.com/download/pr/8041c215-8bb1-41f1-b550-ca5298ae49c0/4bf353f81b4b4e0d36146794e0121bde/aspnetcore-runtime-7.0.0-preview.7.22376.6-osx-arm64.tar.gz";
|
||||
sha512 = "893a55cd551bf3a490cd0069315cfdc9283fcfc851fab4964a3e6560ce2af6d9c08366f7a1d6a87e2199b29d03c81eed5daabe378d136afaaf467ef137f00c78";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
runtime_7_0 = buildNetRuntime {
|
||||
inherit icu;
|
||||
version = "7.0.0-preview.7.22375.6";
|
||||
srcs = {
|
||||
x86_64-linux = {
|
||||
url = "https://download.visualstudio.microsoft.com/download/pr/57191b50-7af9-40d1-86a6-73dac33795fb/51ccaf67389abbd80249ddeebe7bc3cd/dotnet-runtime-7.0.0-preview.7.22375.6-linux-x64.tar.gz";
|
||||
sha512 = "9814a4e5a55b7137ec27b423ae4a557792af6cced035ab42876de012cb160adabbe054f043b61ed21a8385deb62075ab0a028f6599954ed3519ffe8cf824d30a";
|
||||
};
|
||||
aarch64-linux = {
|
||||
url = "https://download.visualstudio.microsoft.com/download/pr/c09945b9-bc4b-4f81-adf8-01daecbe65fb/7992ad0a8673a56f63261eb6f14e6b1c/dotnet-runtime-7.0.0-preview.7.22375.6-linux-arm64.tar.gz";
|
||||
sha512 = "c9277fb51a2624051b57a59c6f401619a6b0db2a8abce66f8a3a051397cc8222931104fdee480a26b5d65fa8150b0ced700c370ee437efb739edf30a2ad6e993";
|
||||
};
|
||||
x86_64-darwin = {
|
||||
url = "https://download.visualstudio.microsoft.com/download/pr/7bd38473-15b6-4c6e-8bb0-891dbbbd3a45/37442e606ac06e70a2fa477a18995a62/dotnet-runtime-7.0.0-preview.7.22375.6-osx-x64.tar.gz";
|
||||
sha512 = "e6b02eaa8c3d578404d0f6c5e94447ab017397d2dfd71d5712c9089833e70da6294505ff3599929caa1a2c3e2c981d35e9f0343faa15a7dae2f330b09c1e3d20";
|
||||
};
|
||||
aarch64-darwin = {
|
||||
url = "https://download.visualstudio.microsoft.com/download/pr/be63ba3f-9707-448e-8b41-b2b19c7a61ae/b762ab7c0947ab72ea8438809cd95e6c/dotnet-runtime-7.0.0-preview.7.22375.6-osx-arm64.tar.gz";
|
||||
sha512 = "efbbf99de893507e49d5e2e752c1977b5e5bdeba3ddd5184f11e20bfc7ffaf64f0847647974cec78a07daedcba0b5cff78125c647ce133c4183d0821d55a2ade";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
sdk_7_0 = buildNetSdk {
|
||||
inherit icu;
|
||||
version = "7.0.100-preview.7.22377.5";
|
||||
srcs = {
|
||||
x86_64-linux = {
|
||||
url = "https://download.visualstudio.microsoft.com/download/pr/aabf15d3-f201-4a6c-9a7e-def050d054af/0a8eba2d8abcf1c28605744f3a48252f/dotnet-sdk-7.0.100-preview.7.22377.5-linux-x64.tar.gz";
|
||||
sha512 = "c16d452dbe4f097b75d304c8bc19892017847768bf2e8a0a72fafd6d6b46c3dd77e0c251b80c245197f47fdeafc2c18db255af8a1a5c30be982de19129874390";
|
||||
};
|
||||
aarch64-linux = {
|
||||
url = "https://download.visualstudio.microsoft.com/download/pr/261a4c75-3058-4319-98b7-050c1c12f8e8/46d3da56919fb74ef4e1eccdfa24e4e8/dotnet-sdk-7.0.100-preview.7.22377.5-linux-arm64.tar.gz";
|
||||
sha512 = "de43c471794239a06a6bc70df79491e1ea8f717df84e74b91aa8383bc9edc3efd286216a2495d42c60cb18d47ec0442132d3ec2fbad695f62969e7e3f61e61ee";
|
||||
};
|
||||
x86_64-darwin = {
|
||||
url = "https://download.visualstudio.microsoft.com/download/pr/7936e760-5156-45ec-aee6-ab8cdd988a32/5b3b9cc8a843a60fec8e3ac54b4f830e/dotnet-sdk-7.0.100-preview.7.22377.5-osx-x64.tar.gz";
|
||||
sha512 = "9f6fecb00df04f07a6275e202d2f005ab1b8ee471ee1587c7cb362b945658a2b2dcf572c4957a2ff7e95305558429320feabe3062d1d009e8244442ecb88fae4";
|
||||
};
|
||||
aarch64-darwin = {
|
||||
url = "https://download.visualstudio.microsoft.com/download/pr/b3b49061-1894-4454-9976-5ee9f310e3e9/36ad0ad134881d00d4e10144ede8cc36/dotnet-sdk-7.0.100-preview.7.22377.5-osx-arm64.tar.gz";
|
||||
sha512 = "fd3ed7cf1f31b6090a19465932e39a3bccd952d3ec25756f2d9a4246fe7e93588050433a3711e9bfed1765f015e4fa14bdce9534a68f0a3f121eb4424f486f21";
|
||||
};
|
||||
};
|
||||
packages = { fetchNuGet }: [
|
||||
(fetchNuGet { pname = "Microsoft.AspNetCore.App.Ref"; version = "7.0.0-preview.7.22376.6"; sha256 = "0ci1cq4pxgz8pv4gcnmb87mgb1c5gq44s6hxalgwi4fsxk34403f"; })
|
||||
(fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-arm"; version = "7.0.0-preview.7.22376.6"; sha256 = "191gi10dj5lsvnlammh7lya6c51y89sc0njmg2f4cj62vyiij91m"; })
|
||||
(fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-arm64"; version = "7.0.0-preview.7.22376.6"; sha256 = "06p40gdv77n2fz5bgyq69jamlji8b3mr535crf86b3yabgcg54gm"; })
|
||||
(fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-musl-arm"; version = "7.0.0-preview.7.22376.6"; sha256 = "0ls52qpz17s137iy3y5y46ij2a82ri01w9r19qrv3amacm73vn1z"; })
|
||||
(fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-musl-arm64"; version = "7.0.0-preview.7.22376.6"; sha256 = "1qzrvwn0clk7lil8bkpr840pyfgh4hcvsl8sfhmh0mdn3xrzz7nk"; })
|
||||
(fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-musl-x64"; version = "7.0.0-preview.7.22376.6"; sha256 = "1f2c07h7bpjkcz47ay6rpybhpxk6icq9k3x7bfr40573hfqr0nja"; })
|
||||
(fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-x64"; version = "7.0.0-preview.7.22376.6"; sha256 = "1spk1ch75ljbdkjqhad7fp5jp9gzg9iymby7hzzpsbs7zf57abd9"; })
|
||||
(fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-arm64"; version = "7.0.0-preview.7.22376.6"; sha256 = "1fai73xrz03yxpqcl3mqsgrs5hq8nbna9ggn9wc3isgr7i4v3498"; })
|
||||
(fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-x64"; version = "7.0.0-preview.7.22376.6"; sha256 = "1snjfih9x8ai8h5hm60jf93aci27ymvgvbqdpsci885hgxw59lv4"; })
|
||||
(fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-arm"; version = "7.0.0-preview.7.22376.6"; sha256 = "13wdfb7pp9ji114c8cssgmcy3a8si8kd87nklwli6ml7ywnrh2kw"; })
|
||||
(fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-arm64"; version = "7.0.0-preview.7.22376.6"; sha256 = "1nmgfwpjdy3n7b0bn5z48nbk1xpvvgjphm5h04by1y7ii1ca17fg"; })
|
||||
(fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-x64"; version = "7.0.0-preview.7.22376.6"; sha256 = "0zyb761an1i03zmk2d8z9ir86z9dqbdhzr7an31pyf2is9c7wczr"; })
|
||||
(fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-x86"; version = "7.0.0-preview.7.22376.6"; sha256 = "159ipsa7s8wak3y2p40h6f394zg6jyr04p7jwh8vqv6dpn9wbjpi"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Composite"; version = "7.0.0-preview.7.22375.6"; sha256 = "1d02nv8x8pd4j1qmvy9ldn93yyxdzzl9jmgv6gl2aaqd8jvz9zcj"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-arm"; version = "7.0.0-preview.7.22375.6"; sha256 = "1z8p4z4ywmhaa5zz2cvpzrxzixpy7pppy08qzh0sjp6vl4sagnz2"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-arm64"; version = "7.0.0-preview.7.22375.6"; sha256 = "0s2v26rknpk51bc36cfpcpnbillaiigka9lrg9p1xqflpkhk847b"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-musl-arm"; version = "7.0.0-preview.7.22375.6"; sha256 = "0vbhavpp1mljfxl6xgcq4vhl8vyk3r5pdj24zaxqy3a0linxyk0x"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-musl-arm64"; version = "7.0.0-preview.7.22375.6"; sha256 = "1m5fp2qv66zn2rprf9ns8ff6ry81sgmh0rzj572vp5ly2lrxsa09"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-musl-x64"; version = "7.0.0-preview.7.22375.6"; sha256 = "0v3pnal3knb5g3ajz8icja84sgrh5rmbyksy9ydara10f43hga74"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-x64"; version = "7.0.0-preview.7.22375.6"; sha256 = "0zmd5j5ajpl73rkpdnw7c5avp915imvwyfgazi6cxg4bycydxnis"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Host.osx-arm64"; version = "7.0.0-preview.7.22375.6"; sha256 = "1l94sy69xikjmwwql3c2w5m44vylsrp4abhf2r82a4qz2daw4c8p"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Host.osx-x64"; version = "7.0.0-preview.7.22375.6"; sha256 = "0qp0l475iwadn0d1mjlrblj4sqgdc2nbr7zf4plyaam1w0yfcafg"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-arm"; version = "7.0.0-preview.7.22375.6"; sha256 = "0nq91piw11f25zsm5ra8944h88rcvl97qyri5ypd9a2yl4v63c5d"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-arm64"; version = "7.0.0-preview.7.22375.6"; sha256 = "1s0nqr9cydi4z0pafqyi5d5axapawy3l0wrx0xvgrpycsz1nzqfk"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-x64"; version = "7.0.0-preview.7.22375.6"; sha256 = "1w1pqicldr5hdj6c4xik786xn6nklzrcb9n14kl25bagaqbw30lc"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-x86"; version = "7.0.0-preview.7.22375.6"; sha256 = "1zl8f784yqfxpyyvlk966vpm3f7b91l6hanwfasg974rk1cs3v59"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Ref"; version = "7.0.0-preview.7.22375.6"; sha256 = "0c0xqlzpx07s2kppilfkkw1vg856sabac34n0kynadbna7knb2qf"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-arm"; version = "7.0.0-preview.7.22375.6"; sha256 = "0c29mpc7rfyr5zjqr33cf1sn436c9hha9lrfcfiwia8jmybg2616"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-arm64"; version = "7.0.0-preview.7.22375.6"; sha256 = "03ndkii6pslv7h7j074b6da2nk3kz98g2k5kvx4h58px32lx966f"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-musl-arm"; version = "7.0.0-preview.7.22375.6"; sha256 = "02pbiq38dhgvcn21m299v4hvbfz8vj5ns1qfcnr6hlcxxs1d7sjz"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-musl-arm64"; version = "7.0.0-preview.7.22375.6"; sha256 = "0jk73k9xsrm7wp27spl9xw5wfr3i9sn0xrzsy0a6bsksn0yp8lzh"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-musl-x64"; version = "7.0.0-preview.7.22375.6"; sha256 = "0cc8yg8yv5r4dm8irlgp8kqp05cadm3hg94la1arka54sfaas51s"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-x64"; version = "7.0.0-preview.7.22375.6"; sha256 = "16cf9sf99izqdmdx7kii7gwmaiwdz75b4wcwc719v1nk6k4zmdax"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.linux-arm"; version = "7.0.0-preview.7.22375.6"; sha256 = "0gjyk0dhg63c9q4k5drarhwcdv8h92hysg5v5w0ib75nvjsyyx59"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.linux-arm64"; version = "7.0.0-preview.7.22375.6"; sha256 = "1pkwk1yrc2pqjs4lwmzp4mmm46sc6ssbkhfr9z3z1l4w0vdzcxis"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.linux-musl-x64"; version = "7.0.0-preview.7.22375.6"; sha256 = "08msq7ymypkki61an5ibiwxsya5cs0wziyl5kdprjzf3qx0lkjsr"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.linux-x64"; version = "7.0.0-preview.7.22375.6"; sha256 = "197iwkl24d7gmj6l3qvblcbl2rynqdpv5c9ahr0kqd2lm9mkkmqx"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.osx-arm64"; version = "7.0.0-preview.7.22375.6"; sha256 = "0bslphbqnrlq5c56qmm7740qw1zjy90qb15vs1579qjxf09p33jc"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.osx-x64"; version = "7.0.0-preview.7.22375.6"; sha256 = "0spqf4vmcdi9bnz6swx96mfmndc6qn18bbxwkr8hs6s8gxsvikaf"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.win-x64"; version = "7.0.0-preview.7.22375.6"; sha256 = "16n0yl888ip43167cxz3583cvdyzlw4a5c43xds6nakarkcda6wq"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.win-x86"; version = "7.0.0-preview.7.22375.6"; sha256 = "05y4js5k8mzkkl2glscl941xynx3h9nl5mkn4p7sj0jn93caxsqh"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.osx-arm64"; version = "7.0.0-preview.7.22375.6"; sha256 = "0prkrs8igc2v7rvn2gmq46np009z2cpvnwjyv023plc4l98ql7id"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.osx-x64"; version = "7.0.0-preview.7.22375.6"; sha256 = "10abdfmw8bzm4vz79sabsviwxa0a93payxf6r8jy0c2nv97wq1jy"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-arm"; version = "7.0.0-preview.7.22375.6"; sha256 = "1rj5bnqmwwigh2bais352kqxxiqx9m6zbcrgcirqpx98nj1z6y2l"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-arm64"; version = "7.0.0-preview.7.22375.6"; sha256 = "03fbkp4a4py4s2bqxrrmvig5dxlc2iz41pwxl6ic1q8pgrfhs216"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-x64"; version = "7.0.0-preview.7.22375.6"; sha256 = "00b16rhdwgqxdrs1z9p48wn8yjfnnzjv3kl06nl45z88ry3nfhgn"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-x86"; version = "7.0.0-preview.7.22375.6"; sha256 = "1kv7rfkjhhkjx575xd5ghjyi1xmmzgxxymih7vjny1s4zhbvrj0v"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.DotNetAppHost"; version = "7.0.0-preview.7.22375.6"; sha256 = "08jr5ib1x91hfbwwz9k9885301p7mffw9d3ai7wqm7jgb6zf9zsm"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.DotNetHost"; version = "7.0.0-preview.7.22375.6"; sha256 = "1knwjdjwvw0y7zdwk10vakbkgxzsmssw46v5lcyw8wwcpc8j7spn"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.DotNetHostPolicy"; version = "7.0.0-preview.7.22375.6"; sha256 = "0nw3fij8jmq3slcdj2xcb3dj6vqx85bwzidh6jd3xn5sz9jwsaak"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.DotNetHostResolver"; version = "7.0.0-preview.7.22375.6"; sha256 = "1wlvf7iqcsga3aqas0a9fscv0nrhjjkw0lwqjzvn1bm9cykyxmfl"; })
|
||||
(fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.DotNetAppHost"; version = "7.0.0-preview.7.22375.6"; sha256 = "0ccs9c8j7pr5038ifcppfr59zyfr64pgda937bj33lxh3xjrirbl"; })
|
||||
(fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.DotNetHost"; version = "7.0.0-preview.7.22375.6"; sha256 = "0s3sgla70q2fqdvnxqj3q11bbvj791jk79yyrsc3lvsvna5qqag4"; })
|
||||
(fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.DotNetHostPolicy"; version = "7.0.0-preview.7.22375.6"; sha256 = "0j28x3vdwddb9mw74fawm0kjjmhnsac168ixxdzwkyi140w52dbs"; })
|
||||
(fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.DotNetHostResolver"; version = "7.0.0-preview.7.22375.6"; sha256 = "0yskfi9s2alfackyyz5gji566rlivml1vqipl29wkahavlfzv4g4"; })
|
||||
(fetchNuGet { pname = "runtime.linux-arm.Microsoft.NETCore.DotNetAppHost"; version = "7.0.0-preview.7.22375.6"; sha256 = "04as4f8y0d69i8j81s2wxskcidq0b9fmagfs042h8ihaxgrszk85"; })
|
||||
(fetchNuGet { pname = "runtime.linux-arm.Microsoft.NETCore.DotNetHost"; version = "7.0.0-preview.7.22375.6"; sha256 = "1s3zvyq8pgsyqs07s2i9clgn9ny9akqcwpw2crxjzg8d7dicxph0"; })
|
||||
(fetchNuGet { pname = "runtime.linux-arm.Microsoft.NETCore.DotNetHostPolicy"; version = "7.0.0-preview.7.22375.6"; sha256 = "087ikb0q3ibvh6j5l72gvf8qcs5w0m6f0gwlylwshr2a5qxhbjmn"; })
|
||||
(fetchNuGet { pname = "runtime.linux-arm.Microsoft.NETCore.DotNetHostResolver"; version = "7.0.0-preview.7.22375.6"; sha256 = "0y41qxarl2zhr4hji9yz8kydfkzqh46p86yvnmxjqybx26axci3q"; })
|
||||
(fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.NETCore.DotNetAppHost"; version = "7.0.0-preview.7.22375.6"; sha256 = "0anqqlrp3whwv2fka9nv6l24k7933fcanfjriyqhvjsg73vm5k2b"; })
|
||||
(fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.NETCore.DotNetHost"; version = "7.0.0-preview.7.22375.6"; sha256 = "0d6larkd121rjd0qfvp3in3hiy4v6x63jarfca780zp6ylh5bxsm"; })
|
||||
(fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.NETCore.DotNetHostPolicy"; version = "7.0.0-preview.7.22375.6"; sha256 = "05k3r9zml71inya44pksp3p0m9aprihvndfx35wa2zidfqi0g0bw"; })
|
||||
(fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.NETCore.DotNetHostResolver"; version = "7.0.0-preview.7.22375.6"; sha256 = "1khg92hngl98y0lcwqv13c13n5sfrbx5fx1sq7x2f18vxp76hb67"; })
|
||||
(fetchNuGet { pname = "runtime.linux-musl-arm.Microsoft.NETCore.DotNetAppHost"; version = "7.0.0-preview.7.22375.6"; sha256 = "0lflk05jmsx0sw8m6sfl1q1dvxyx4xcxn33rq2bdd22zgd0ypqr1"; })
|
||||
(fetchNuGet { pname = "runtime.linux-musl-arm.Microsoft.NETCore.DotNetHost"; version = "7.0.0-preview.7.22375.6"; sha256 = "0h3v9wn4fbaalrda8d39kjyh9r7glifcnbv0ii9b2philq7h2zib"; })
|
||||
(fetchNuGet { pname = "runtime.linux-musl-arm.Microsoft.NETCore.DotNetHostPolicy"; version = "7.0.0-preview.7.22375.6"; sha256 = "1l9z6h76kb6pas743adyw69zrckx5lrh9gqh0cmcrfxlyafqm9l9"; })
|
||||
(fetchNuGet { pname = "runtime.linux-musl-arm.Microsoft.NETCore.DotNetHostResolver"; version = "7.0.0-preview.7.22375.6"; sha256 = "05s171k78f1j5lfd685nqvjazypxxaxawswpiz8f95g01wjga6r2"; })
|
||||
(fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.NETCore.DotNetAppHost"; version = "7.0.0-preview.7.22375.6"; sha256 = "0w756yahm0xw4cpyp1zyqm8awba4b9i5c47bvc1jsjq0kyag5fi5"; })
|
||||
(fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.NETCore.DotNetHost"; version = "7.0.0-preview.7.22375.6"; sha256 = "09ip5yiv1dwsmg4agcx89f5s75q3gy6klm0vbninv1qds0addlz0"; })
|
||||
(fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.NETCore.DotNetHostPolicy"; version = "7.0.0-preview.7.22375.6"; sha256 = "09mkr3w2gdyp5lzslhfc3f9nrz5l7hk9zwfc82dr1b8wd5ka4j05"; })
|
||||
(fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.NETCore.DotNetHostResolver"; version = "7.0.0-preview.7.22375.6"; sha256 = "0pycdqs617nlha22ky27kq7p8b0jcsammqf6pcakgzj0h0lzk85w"; })
|
||||
(fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.DotNetAppHost"; version = "7.0.0-preview.7.22375.6"; sha256 = "0yh03hqpmw48nllhkqmva1c0qbhizarh55mh68mw2gx0xj8jwxkc"; })
|
||||
(fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.DotNetHost"; version = "7.0.0-preview.7.22375.6"; sha256 = "1p5wd5s526fpqc5vc1j7d4fmi58bazqmb21liayxl1rg18gpmrs0"; })
|
||||
(fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.DotNetHostPolicy"; version = "7.0.0-preview.7.22375.6"; sha256 = "0rpxvnr9l24s1xm41shiwwpx03137p9isvv77rvfmv32426id8xd"; })
|
||||
(fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.DotNetHostResolver"; version = "7.0.0-preview.7.22375.6"; sha256 = "04h88hqmrkf0ypniam1kp0ci04yc3w35pxgfnyn2d5s5rn9hvvy9"; })
|
||||
(fetchNuGet { pname = "runtime.osx-arm64.Microsoft.NETCore.DotNetAppHost"; version = "7.0.0-preview.7.22375.6"; sha256 = "14bbp79lbdy67i638aml3wrxp79pa1lywxnsifd0p5fx3spfl872"; })
|
||||
(fetchNuGet { pname = "runtime.osx-arm64.Microsoft.NETCore.DotNetHost"; version = "7.0.0-preview.7.22375.6"; sha256 = "0ib2aq98zn15gr211p4232yhv00bdfnhpzzpy18cyjcdld7kr5rz"; })
|
||||
(fetchNuGet { pname = "runtime.osx-arm64.Microsoft.NETCore.DotNetHostPolicy"; version = "7.0.0-preview.7.22375.6"; sha256 = "0drm3sc16h08hqpxlj14bcc3y22505jnz85la83ciyzjlgd08iw7"; })
|
||||
(fetchNuGet { pname = "runtime.osx-arm64.Microsoft.NETCore.DotNetHostResolver"; version = "7.0.0-preview.7.22375.6"; sha256 = "1gz1mkagz1qkxd5hyx9s32cwkgn80nyk7kvcsplm0w35v5058f93"; })
|
||||
(fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.DotNetAppHost"; version = "7.0.0-preview.7.22375.6"; sha256 = "072kfmlfq0miays6mzdpzy5021h54l67704h3mwyr0ik0y8i6v1a"; })
|
||||
(fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.DotNetHost"; version = "7.0.0-preview.7.22375.6"; sha256 = "19mhhsb89z0m3hai74n6pfkf0jgxnl7jsfc05pb1dsgiw9hh2lg1"; })
|
||||
(fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.DotNetHostPolicy"; version = "7.0.0-preview.7.22375.6"; sha256 = "0aia62qm0ka0j15j7ly9jph41yjbyqyw87d825mq6icja5lybvp0"; })
|
||||
(fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.DotNetHostResolver"; version = "7.0.0-preview.7.22375.6"; sha256 = "08d7697p6vnmhaymiz3bm6yb4h1894b2d9xc28ckgra7gpfbx4ax"; })
|
||||
(fetchNuGet { pname = "runtime.win-arm64.Microsoft.NETCore.DotNetAppHost"; version = "7.0.0-preview.7.22375.6"; sha256 = "1g2rzj9fxwa5p0ym9sd5p7qrmjrba67fmbv72yc9cnbic6clb3rh"; })
|
||||
(fetchNuGet { pname = "runtime.win-arm64.Microsoft.NETCore.DotNetHost"; version = "7.0.0-preview.7.22375.6"; sha256 = "0nphm54hm803qs2sy183rp97qk0wxzmzm7lhw4msymnahkn4wm4n"; })
|
||||
(fetchNuGet { pname = "runtime.win-arm64.Microsoft.NETCore.DotNetHostPolicy"; version = "7.0.0-preview.7.22375.6"; sha256 = "17x30zj75ijxj7j9zxsk9z4f9jmny3jv7rx6hrc413bgs2s0r4gv"; })
|
||||
(fetchNuGet { pname = "runtime.win-arm64.Microsoft.NETCore.DotNetHostResolver"; version = "7.0.0-preview.7.22375.6"; sha256 = "0fqp4a54czcmlz5rkl3a7431bgccgmqqbvqsryhszrk5z1s5q9jb"; })
|
||||
(fetchNuGet { pname = "runtime.win-arm.Microsoft.NETCore.DotNetAppHost"; version = "7.0.0-preview.7.22375.6"; sha256 = "0l0pka55nvjy6jgby43kakdi1xkhkqcyk3amldwj4pw61vry9s0c"; })
|
||||
(fetchNuGet { pname = "runtime.win-arm.Microsoft.NETCore.DotNetHost"; version = "7.0.0-preview.7.22375.6"; sha256 = "11h9769nrs07a4l9lwbic2qbl85121pj4c10cd3rgfr5p58q18hc"; })
|
||||
(fetchNuGet { pname = "runtime.win-arm.Microsoft.NETCore.DotNetHostPolicy"; version = "7.0.0-preview.7.22375.6"; sha256 = "1hgw4dvc5s4axr0c2xvmmj78lwr5ljyhxfcrn59bmcky8alpm774"; })
|
||||
(fetchNuGet { pname = "runtime.win-arm.Microsoft.NETCore.DotNetHostResolver"; version = "7.0.0-preview.7.22375.6"; sha256 = "015f8k3xhxba9dpflv9985by4r9s5hr9hzmc7nc3yn3b4w4975l8"; })
|
||||
(fetchNuGet { pname = "runtime.win-x64.Microsoft.NETCore.DotNetAppHost"; version = "7.0.0-preview.7.22375.6"; sha256 = "1jd0cmkhv4n48xwn7a3myyraixpmb1mnw2x0mrb438kbf6yrac02"; })
|
||||
(fetchNuGet { pname = "runtime.win-x64.Microsoft.NETCore.DotNetHost"; version = "7.0.0-preview.7.22375.6"; sha256 = "0y7q3hzhk39p9r8js9p84y6v83mvnr2dqsbllfkzas912h4lwxh7"; })
|
||||
(fetchNuGet { pname = "runtime.win-x64.Microsoft.NETCore.DotNetHostPolicy"; version = "7.0.0-preview.7.22375.6"; sha256 = "09d1faksns1cv588aqqpc0wnkn0a0yclhh2padww7kcg8aqyx1qk"; })
|
||||
(fetchNuGet { pname = "runtime.win-x64.Microsoft.NETCore.DotNetHostResolver"; version = "7.0.0-preview.7.22375.6"; sha256 = "1cca36xppd44krfs5wmk9grdk74qy3yrl62dykmxvzbh7qjd3wwq"; })
|
||||
(fetchNuGet { pname = "runtime.win-x86.Microsoft.NETCore.DotNetAppHost"; version = "7.0.0-preview.7.22375.6"; sha256 = "1cmgscq2znig10cqw8zbfxfd3h6274pd45y048bq0zwnav833bk3"; })
|
||||
(fetchNuGet { pname = "runtime.win-x86.Microsoft.NETCore.DotNetHost"; version = "7.0.0-preview.7.22375.6"; sha256 = "0b4j1w5g1lzmdb08cxq07w3x3srqcx6f3gw1dmqpp7qr65iyay4c"; })
|
||||
(fetchNuGet { pname = "runtime.win-x86.Microsoft.NETCore.DotNetHostPolicy"; version = "7.0.0-preview.7.22375.6"; sha256 = "0pp3w2ix5x5pb8y86k6h6j89svkwbly8f924qbhyjfhb8m2fx21w"; })
|
||||
(fetchNuGet { pname = "runtime.win-x86.Microsoft.NETCore.DotNetHostResolver"; version = "7.0.0-preview.7.22375.6"; sha256 = "02vr9ylyfcrdhm4ypjf4swg5g0d1b9bs3c37z19bnjrmgwrnsd2x"; })
|
||||
(fetchNuGet { pname = "runtime.linux-arm64.Microsoft.DotNet.ILCompiler"; version = "7.0.0-preview.7.22375.6"; sha256 = "0qqg76s2kdaj7bbriir4b0b6ham0rg1ws6b49n2v3llrg6mmml8m"; })
|
||||
(fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.DotNet.ILCompiler"; version = "7.0.0-preview.7.22375.6"; sha256 = "00padnxadhsmrrbdasnp1dmywr4xf4n18za7006acq5jn89qqppl"; })
|
||||
(fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.DotNet.ILCompiler"; version = "7.0.0-preview.7.22375.6"; sha256 = "0pb3kpzsixklap4d2dgr3x9m47cfgydxz4sk71j3zy3d6fgqc3l1"; })
|
||||
(fetchNuGet { pname = "runtime.linux-x64.Microsoft.DotNet.ILCompiler"; version = "7.0.0-preview.7.22375.6"; sha256 = "1f5lml0bp65f2vpvmzdw714dq0wwbz29kfxcd6d7ypphb0rr1dpr"; })
|
||||
(fetchNuGet { pname = "runtime.osx-x64.Microsoft.DotNet.ILCompiler"; version = "7.0.0-preview.7.22375.6"; sha256 = "0k4swyrsn9hjbbxn12hkl5d44wvr2ssvkl8zkigl180j8fjbgjb5"; })
|
||||
(fetchNuGet { pname = "runtime.win-arm64.Microsoft.DotNet.ILCompiler"; version = "7.0.0-preview.7.22375.6"; sha256 = "0dd8wy9plw8fh3rgcmgkqgml5zfwrw4c8zda5q6cpswpqwswqm82"; })
|
||||
(fetchNuGet { pname = "runtime.win-x64.Microsoft.DotNet.ILCompiler"; version = "7.0.0-preview.7.22375.6"; sha256 = "18ijc7h5sji53ck3r2hyhn9x54mqbzq69lpnp4vbgn9i2vw98kdr"; })
|
||||
];
|
||||
};
|
||||
}
|
@ -27,13 +27,13 @@ let
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "p4c";
|
||||
version = "1.2.2.1";
|
||||
version = "1.2.3.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "p4lang";
|
||||
repo = "p4c";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-XIZ7Cm5zfr5XA+s0aSG1WwWHCPjAYv/YoBWTRaXi9rQ=";
|
||||
sha256 = "sha256-LwRfLvnn1JAvSXPTkVcIB4PbPrrVweIv72Xk5g015ck=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
|
@ -9,13 +9,13 @@
|
||||
}:
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "nmrpflash";
|
||||
version = "0.9.16";
|
||||
version = "0.9.18.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "jclehner";
|
||||
repo = "nmrpflash";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-0nqdbXf1syUe7o5hoNIKLruKxkNaUsGolfZzoQY15j4==";
|
||||
sha256 = "sha256-hKE9FEBkbN39zBRSoy3Ntq/fziizskJXNBcwQZX9igE=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
|
@ -9,11 +9,11 @@ let
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "stm32cubemx";
|
||||
version = "6.5.0";
|
||||
version = "6.6.1";
|
||||
|
||||
src = fetchzip {
|
||||
url = "https://sw-center.st.com/packs/resource/library/stm32cube_mx_v${builtins.replaceStrings ["."] [""] version}-lin.zip";
|
||||
sha256 = "sha256-19RG+bJCmkaytMtDpDLbDvfKo27Z+Mo/sOrs8lOVV44=";
|
||||
sha256 = "sha256-NfJMXHQ7JXzRSdOAYfx2t0xsi/w2S5FK3NovcsDOi+E=";
|
||||
stripRoot = false;
|
||||
};
|
||||
|
||||
|
@ -12,11 +12,11 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "nextflow";
|
||||
version = "21.10.6";
|
||||
version = "22.04.5";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/nextflow-io/nextflow/releases/download/v${version}/nextflow-${version}-all";
|
||||
sha256 = "0l9hi51vrhvfx3px2pxw7lp4h21n8ks50x4icfk3hbgl2hwf7fvx";
|
||||
sha256 = "sha256-Lpxb0lGR/oiPzj6j+lySZwiRgkRgPgyjK7FX0BSejm4=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
|
@ -1,4 +1,4 @@
|
||||
{ rustPlatform, fetchFromGitHub, lib }:
|
||||
{ rustPlatform, fetchFromGitHub, lib, stdenv }:
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "wasmtime";
|
||||
@ -14,7 +14,13 @@ rustPlatform.buildRustPackage rec {
|
||||
|
||||
cargoSha256 = "sha256-DnThste0SbBdpGAUYhmwbdQFNEB3LozyDf0X8r2A90Q=";
|
||||
|
||||
doCheck = true;
|
||||
# We disable tests on x86_64-darwin because Hydra runners do not
|
||||
# support SSE3, SSSE3, SSE4.1 and SSE4.2 at this time. This is
|
||||
# required by wasmtime. Given this is very specific to Hydra
|
||||
# runners, just disable tests on this platform, so we don't get
|
||||
# false positives of this package being broken due to failed runs on
|
||||
# Hydra (e.g. https://hydra.nixos.org/build/187667794/)
|
||||
doCheck = (stdenv.system != "x86_64-darwin");
|
||||
checkFlags = [
|
||||
"--skip=cli_tests::run_cwasm"
|
||||
"--skip=commands::compile::test::test_unsupported_flags_compile"
|
||||
|
@ -5,7 +5,7 @@
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "libbencodetools";
|
||||
pname = "bencodetools";
|
||||
version = "unstable-2022-05-11";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
@ -27,6 +27,10 @@ stdenv.mkDerivation rec {
|
||||
python3
|
||||
];
|
||||
|
||||
# installCheck instead of check due to -install_name'd library on Darwin
|
||||
doInstallCheck = stdenv.buildPlatform == stdenv.hostPlatform;
|
||||
installCheckTarget = "check";
|
||||
|
||||
meta = with lib; {
|
||||
description = "Collection of tools for manipulating bencoded data";
|
||||
homepage = "https://gitlab.com/heikkiorsila/bencodetools";
|
@ -8,11 +8,11 @@ assert odbcSupport -> unixODBC != null;
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "freetds";
|
||||
version = "1.3.9";
|
||||
version = "1.3.13";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://www.freetds.org/files/stable/${pname}-${version}.tar.bz2";
|
||||
sha256 = "sha256-qByKmGp6LwuUWZ69eheF1yAX3qbXlqf0S2rGge53wuc=";
|
||||
sha256 = "sha256-1M+QCUFR/c3aEo7RjLCmv2WzCL41K1NEmUO1JJxbSPI=";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
|
@ -2,10 +2,10 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "leatherman";
|
||||
version = "1.12.7";
|
||||
version = "1.12.8";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
sha256 = "sha256-a79/seKO6Efn6g4RWdqsP83pL5AIBAp1InjnMdOs3Qk=";
|
||||
sha256 = "sha256-5xcwktlwgP9Ltild4BliaGJBqlheDLSTKQLZjzK+nGk=";
|
||||
rev = version;
|
||||
repo = "leatherman";
|
||||
owner = "puppetlabs";
|
||||
|
@ -8,13 +8,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "libqalculate";
|
||||
version = "4.2.0";
|
||||
version = "4.3.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "qalculate";
|
||||
repo = "libqalculate";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-mIzHizoDsdSVcepWACeVkCTgt4gxd99WKXrrGi+qASo=";
|
||||
sha256 = "sha256-yQJykD6ew8LzYzuVP7ycPv+wGGe7LWWlgdI6Z2N87go=";
|
||||
};
|
||||
|
||||
outputs = [ "out" "dev" "doc" ];
|
||||
|
@ -36,6 +36,7 @@
|
||||
, xhtml1
|
||||
, yajl
|
||||
, writeScript
|
||||
, nixosTests
|
||||
|
||||
# Linux
|
||||
, acl ? null
|
||||
@ -113,13 +114,13 @@ stdenv.mkDerivation rec {
|
||||
# NOTE: You must also bump:
|
||||
# <nixpkgs/pkgs/development/python-modules/libvirt/default.nix>
|
||||
# SysVirt in <nixpkgs/pkgs/top-level/perl-packages.nix>
|
||||
version = "8.5.0";
|
||||
version = "8.6.0";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
owner = pname;
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-x6TnMFYjcUSdQZd9ctN2hITCAl9TGVb7/qAObGb9xMk=";
|
||||
sha256 = "sha256-bSId7G2o808WfHGt5ioFEIhPyy4+XW+R349UgHKOvQU=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
@ -133,6 +134,10 @@ stdenv.mkDerivation rec {
|
||||
sed -i '/virnetsockettest/d' tests/meson.build
|
||||
# delete only the first occurrence of this
|
||||
sed -i '0,/qemuxml2argvtest/{/qemuxml2argvtest/d;}' tests/meson.build
|
||||
'' + optionalString isLinux ''
|
||||
sed -i 's,define PARTED "parted",define PARTED "${parted}/bin/parted",' \
|
||||
src/storage/storage_backend_disk.c \
|
||||
src/storage/storage_util.c
|
||||
'' + optionalString isDarwin ''
|
||||
sed -i '/qemucapabilitiestest/d' tests/meson.build
|
||||
sed -i '/vircryptotest/d' tests/meson.build
|
||||
@ -345,6 +350,8 @@ stdenv.mkDerivation rec {
|
||||
update-source-version perlPackages.SysVirt "$sysvirtVersion" --file="pkgs/top-level/perl-packages.nix"
|
||||
'';
|
||||
|
||||
passthru.tests.libvirtd = nixosTests.libvirtd;
|
||||
|
||||
meta = {
|
||||
homepage = "https://libvirt.org/";
|
||||
description = ''
|
||||
|
@ -11,13 +11,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "prometheus-cpp";
|
||||
version = "1.0.0";
|
||||
version = "1.0.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "jupp0r";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "L6CXRup3kU1lY5UnwPbaOwEtCeAySNmFCPmHwsk6cRE=";
|
||||
sha256 = "sha256-F8paJhptEcOMtP0FCJ3ragC4kv7XSVPiZheM5UZChno=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
|
@ -2,13 +2,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "qpdf";
|
||||
version = "10.6.2";
|
||||
version = "10.6.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "qpdf";
|
||||
repo = "qpdf";
|
||||
rev = "release-qpdf-${version}";
|
||||
hash = "sha256-+8bH7fKJ5uZRxKX/4nMkoZGFTxm2uJEXkb1wq5FrLWs=";
|
||||
hash = "sha256-SiZA8T7N1SWlbCFosSqFosLDV/3Q7+ywvgq1iB4umdg=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ perl ];
|
||||
|
@ -13,13 +13,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "wxsqlite3";
|
||||
version = "4.7.6";
|
||||
version = "4.8.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "utelle";
|
||||
repo = "wxsqlite3";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-QoICP66eluD5phYVi1iK8tg1FL04EQjY29/4n6SIz3s=";
|
||||
hash = "sha256-YoeCUyWVxpXY1QCTNONpv2QjV3rLZY84P6D3pXiWXo0=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ autoreconfHook ];
|
||||
|
31
pkgs/development/ocaml-modules/ocaml-vdom/default.nix
Normal file
31
pkgs/development/ocaml-modules/ocaml-vdom/default.nix
Normal file
@ -0,0 +1,31 @@
|
||||
{ lib, fetchurl, buildDunePackage, js_of_ocaml-compiler , gen_js_api, ojs }:
|
||||
|
||||
buildDunePackage rec {
|
||||
pname = "ocaml-vdom";
|
||||
version = "0.2";
|
||||
minimalOCamlVersion = "4.08";
|
||||
duneVersion = "3";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/LexiFi/ocaml-vdom/archive/refs/tags/v${version}.tar.gz";
|
||||
sha256 = "sha256-FVR0WubW9VJBGVtVaXdJ+O/ghq0w5+BuItFWXkuVYL8=";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
gen_js_api
|
||||
];
|
||||
|
||||
propagatedBuildInputs = [
|
||||
js_of_ocaml-compiler
|
||||
ojs
|
||||
];
|
||||
|
||||
meta = {
|
||||
homepage = "https://github.com/LexiFi/ocaml-vdom";
|
||||
description = "Elm architecture and (V)DOM for OCaml";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ jayesh-bhoot ];
|
||||
};
|
||||
}
|
||||
|
||||
|
31
pkgs/development/ocaml-modules/promise_jsoo/default.nix
Normal file
31
pkgs/development/ocaml-modules/promise_jsoo/default.nix
Normal file
@ -0,0 +1,31 @@
|
||||
{ lib, fetchurl, buildDunePackage, js_of_ocaml, ppxlib, js_of_ocaml-ppx, gen_js_api, ojs }:
|
||||
|
||||
buildDunePackage rec {
|
||||
pname = "promise_jsoo";
|
||||
version = "0.3.1";
|
||||
minimalOCamlVersion = "4.08";
|
||||
duneVersion = "3";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/mnxn/promise_jsoo/releases/download/v${version}/promise_jsoo-v${version}.tbz";
|
||||
sha256 = "00pjnsbv0yv3hhxbbl8dsljgr95kjgi9w8j1x46gjyxg9zayrxzl";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
ppxlib
|
||||
js_of_ocaml-ppx
|
||||
gen_js_api
|
||||
];
|
||||
|
||||
propagatedBuildInputs = [
|
||||
js_of_ocaml
|
||||
ojs
|
||||
];
|
||||
|
||||
meta = {
|
||||
homepage = "https://github.com/mnxn/promise_jsoo";
|
||||
description = "Js_of_ocaml bindings to JS Promises with supplemental functions";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ jayesh-bhoot ];
|
||||
};
|
||||
}
|
@ -15,9 +15,10 @@ buildPerlPackage {
|
||||
|
||||
doCheck = false; # TODO: almost all tests fail ... is this a real problem?
|
||||
|
||||
meta = with lib; {
|
||||
meta = {
|
||||
description = "MNI MINC perllib (not used much anymore)";
|
||||
homepage = "https://github.com/BIC-MNI/mni-perllib";
|
||||
license = with licenses; [ artistic1 gpl1Plus ];
|
||||
maintainers = with maintainers; [ bcdarwin ];
|
||||
license = with lib.licenses; [ artistic1 gpl1Plus ];
|
||||
maintainers = with lib.maintainers; [ bcdarwin ];
|
||||
};
|
||||
}
|
||||
|
@ -23,10 +23,10 @@ buildPerlPackage rec {
|
||||
shortenPerlShebang $(grep -l "/bin/env perl" $out/bin/*)
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Collection of advanced command-line tools to perform a variety of MySQL and system tasks.";
|
||||
meta = {
|
||||
description = "Collection of advanced command-line tools to perform a variety of MySQL and system tasks";
|
||||
homepage = "https://www.percona.com/software/database-tools/percona-toolkit";
|
||||
license = with licenses; [ gpl2 ];
|
||||
maintainers = with maintainers; [ izorkin ];
|
||||
license = with lib.licenses; [ gpl2Only ];
|
||||
maintainers = with lib.maintainers; [ izorkin ];
|
||||
};
|
||||
}
|
||||
|
@ -30,8 +30,8 @@ buildPerlPackage rec {
|
||||
done
|
||||
'';
|
||||
meta = {
|
||||
homepage = "https://po4a.org/";
|
||||
description = "Tools for helping translation of documentation";
|
||||
license = lib.licenses.gpl2;
|
||||
homepage = "https://po4a.org";
|
||||
license = with lib.licenses; [ gpl2Only ];
|
||||
};
|
||||
}
|
||||
|
@ -34,7 +34,7 @@ buildPerlPackage rec {
|
||||
meta = with lib; {
|
||||
description = "A Perl module for stripping bits of non-deterministic information";
|
||||
homepage = "https://reproducible-builds.org/";
|
||||
license = licenses.gpl3;
|
||||
license = licenses.gpl3Only;
|
||||
maintainers = with maintainers; [ pSub ];
|
||||
};
|
||||
}
|
||||
|
@ -1,14 +1,14 @@
|
||||
{ mkDerivation, fetchurl, makeWrapper, unzip, lib, php }:
|
||||
let
|
||||
pname = "composer";
|
||||
version = "2.4.0";
|
||||
version = "2.4.1";
|
||||
in
|
||||
mkDerivation {
|
||||
inherit pname version;
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://getcomposer.org/download/${version}/composer.phar";
|
||||
sha256 = "HNx090llkI0OmNAP7so3wjuG2lEXCjoRoVONif9E1N0=";
|
||||
sha256 = "sha256-6oz2MI7Hb/lkXDgYhBp1iAlrncJ2c0X71L1JLdim3KY=";
|
||||
};
|
||||
|
||||
dontUnpack = true;
|
||||
|
@ -1,14 +1,14 @@
|
||||
{ mkDerivation, fetchurl, makeWrapper, lib, php }:
|
||||
let
|
||||
pname = "php-cs-fixer";
|
||||
version = "3.9.5";
|
||||
version = "3.10.0";
|
||||
in
|
||||
mkDerivation {
|
||||
inherit pname version;
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/FriendsOfPHP/PHP-CS-Fixer/releases/download/v${version}/php-cs-fixer.phar";
|
||||
sha256 = "sha256-uD8N/fJAb8lvsFvP/zuw9jwV8ng//xWE+oNuOZ553UU=";
|
||||
sha256 = "sha256-dhXktw9wctIwvIlME4c4yBw7qBffetiERt1C6QWCrQo=";
|
||||
};
|
||||
|
||||
dontUnpack = true;
|
||||
|
@ -12,7 +12,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "aioesphomeapi";
|
||||
version = "10.11.0";
|
||||
version = "10.13.0";
|
||||
format = "setuptools";
|
||||
|
||||
disabled = pythonOlder "3.7";
|
||||
@ -21,7 +21,7 @@ buildPythonPackage rec {
|
||||
owner = "esphome";
|
||||
repo = pname;
|
||||
rev = "refs/tags/v${version}";
|
||||
sha256 = "sha256-Wb46t+bdXGDYKzMr73YNWw1ULSLEV1xFcK16jHITnRg=";
|
||||
sha256 = "sha256-ZaNrSkRH9pFhzZncCs37k1M0w5svPfrY0WxePUnUlms=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
@ -12,13 +12,13 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "allure-python-commons-test";
|
||||
version = "2.9.45";
|
||||
version = "2.10.0";
|
||||
|
||||
disabled = pythonOlder "3.4";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "0rn8ccxxrm27skv3avdiw56zc4fk2h7nrk3jamqmx6fnvmshiz5f";
|
||||
sha256 = "sha256-wSISmLO1qE91tO0svQ+Dau35wP8h9hMfFtW5STGX5dg=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
@ -17,7 +17,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "cssutils";
|
||||
version = "2.5.1";
|
||||
version = "2.6.0";
|
||||
|
||||
disabled = pythonOlder "3.7";
|
||||
|
||||
@ -25,7 +25,7 @@ buildPythonPackage rec {
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
hash = "sha256-tKTaWOeDJuyfSp01VQBN33BvPpn3oQJsGIDwk0NiuLQ=";
|
||||
hash = "sha256-99zSPBzskJ/fNjDeNG4UE7eyVVk23sFLouu5kTvwgY4=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
@ -10,7 +10,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "dunamai";
|
||||
version = "1.12.0";
|
||||
version = "1.13.0";
|
||||
format = "pyproject";
|
||||
|
||||
disabled = pythonOlder "3.7";
|
||||
@ -19,7 +19,7 @@ buildPythonPackage rec {
|
||||
owner = "mtkennerly";
|
||||
repo = "dunamai";
|
||||
rev = "refs/tags/v${version}";
|
||||
sha256 = "sha256-SyHml8TIcqU7KQE4IuTZbp+Jktao7ReJHQyHV8wKeWg=";
|
||||
sha256 = "sha256-0x1bwu5X1P8f51NeupEQc0eghaqQIp3jb2uwZ0JDbgQ=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
54
pkgs/development/python-modules/flask-basicauth/default.nix
Normal file
54
pkgs/development/python-modules/flask-basicauth/default.nix
Normal file
@ -0,0 +1,54 @@
|
||||
{ lib
|
||||
, buildPythonPackage
|
||||
, fetchFromGitHub
|
||||
, fetchpatch
|
||||
, flask
|
||||
, python
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "flask-basicauth";
|
||||
version = "0.2.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "jpvanhal";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-han0OjMI1XmuWKHGVpk+xZB+/+cpV1I+659zOG3hcPY=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
(fetchpatch {
|
||||
# The unit tests fail due to an invalid import:
|
||||
# from flask.ext.basicauth import BasicAuth
|
||||
#
|
||||
# This patch replaces it with the correct import:
|
||||
# from flask_basicauth import BasicAuth
|
||||
#
|
||||
# The patch uses the changes from this pull request,
|
||||
# and therefore can be removed once this pull request
|
||||
# has been merged:
|
||||
# https://github.com/jpvanhal/flask-basicauth/pull/29
|
||||
name = "fix-test-flask-ext-imports.patch";
|
||||
url = "https://github.com/jpvanhal/flask-basicauth/commit/23f57dc1c3d85ea6fc7f468e8d8c6f19348a0a81.patch";
|
||||
sha256 = "sha256-njUYjO0TRe3vr5D0XjIfCNcsFlShbGxtFV/DJerAKDE=";
|
||||
})
|
||||
];
|
||||
|
||||
propagatedBuildInputs = [ flask ];
|
||||
|
||||
checkPhase = ''
|
||||
runHook preCheck
|
||||
${python.interpreter} -m unittest discover
|
||||
runHook postCheck
|
||||
'';
|
||||
|
||||
pythonImportsCheck = [ "flask_basicauth" ];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/jpvanhal/flask-basicauth";
|
||||
description = "HTTP basic access authentication for Flask";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ wesnel ];
|
||||
};
|
||||
}
|
@ -1,6 +1,7 @@
|
||||
{ lib
|
||||
, buildPythonPackage
|
||||
, fetchFromGitHub
|
||||
, fetchpatch
|
||||
, pythonOlder
|
||||
, pytestCheckHook
|
||||
, branca
|
||||
@ -27,6 +28,14 @@ buildPythonPackage rec {
|
||||
sha256 = "sha256-4UseN/3ojZdDUopwZLpHZEBon1qDDvCWfdzxodi/BeA=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# Fix test failures with latest branca
|
||||
(fetchpatch {
|
||||
url = "https://github.com/python-visualization/folium/commit/b410ab21cc46ec6756c2f755e5e81dcdca029c53.patch";
|
||||
hash = "sha256-SVN4wKEep+VnAKnkJTf59rhnzHnbk6dV9XL5ntv4bog=";
|
||||
})
|
||||
];
|
||||
|
||||
SETUPTOOLS_SCM_PRETEND_VERSION = "v${version}";
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
@ -18,14 +18,14 @@
|
||||
|
||||
buildPythonApplication rec {
|
||||
pname = "gigalixir";
|
||||
version = "1.2.6";
|
||||
version = "1.3.0";
|
||||
format = "setuptools";
|
||||
|
||||
disabled = pythonOlder "3.7";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
hash = "sha256-a2kU5vUSiOg0yFvGLxE2Edgyrar7psBD4NPEmDsP3IY=";
|
||||
hash = "sha256-kNtybgv8j7t1tl6R5ZuC4vj5fnEcEenuNt0twA1kAh0=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
@ -14,7 +14,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "hahomematic";
|
||||
version = "2022.8.10";
|
||||
version = "2022.8.11";
|
||||
format = "pyproject";
|
||||
|
||||
disabled = pythonOlder "3.9";
|
||||
@ -23,7 +23,7 @@ buildPythonPackage rec {
|
||||
owner = "danielperna84";
|
||||
repo = pname;
|
||||
rev = "refs/tags/${version}";
|
||||
sha256 = "sha256-JyHIX0G6REIRJDxSrGwZr0mMvAE0R1/zkullh/SXAXA=";
|
||||
sha256 = "sha256-hGB9nmMFdn6vdehq/eTexOcuU7aBAe8BhrRpyfqEWtI=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
@ -11,14 +11,14 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "holidays";
|
||||
version = "0.14.2";
|
||||
version = "0.15";
|
||||
format = "setuptools";
|
||||
|
||||
disabled = pythonOlder "3.7";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
hash = "sha256-DnD9F0gErqHIcLFRMZ+uvNXNsNlVt4IwQ04a/Rd4SY4=";
|
||||
hash = "sha256-vfRsiuLvGO9bOoDgoY+OLVxDw0dW6siTDGKNxI1R3g4=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
@ -8,12 +8,12 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "ipympl";
|
||||
version = "0.9.1";
|
||||
version = "0.9.2";
|
||||
format = "wheel";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version format;
|
||||
sha256 = "sha256-NQW0ctQSF4/RFeJVdk0efnYy1sgunebWKyVDijU3RoA=";
|
||||
sha256 = "sha256-ZVYE8L9tJkz1mXZpUKWybiktEHzCPhl1A2R+dUF5gcw=";
|
||||
};
|
||||
|
||||
|
||||
|
@ -13,14 +13,14 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "jedi-language-server";
|
||||
version = "0.36.1";
|
||||
version = "0.37.0";
|
||||
format = "pyproject";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "pappasam";
|
||||
repo = pname;
|
||||
rev = "refs/tags/v${version}";
|
||||
sha256 = "sha256-gwaFveFzdkiMvvmdyLLQ/9JthrM6n/+y1XkDQnYp8Y8=";
|
||||
sha256 = "sha256-5il12WDmUkdud9zTpzTaoSXEqOaK15Ut3/fUAX422fA=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
@ -15,7 +15,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "jira";
|
||||
version = "3.3.0";
|
||||
version = "3.4.0";
|
||||
format = "setuptools";
|
||||
|
||||
disabled = pythonOlder "3.7";
|
||||
@ -24,7 +24,7 @@ buildPythonPackage rec {
|
||||
owner = "pycontribs";
|
||||
repo = pname;
|
||||
rev = "refs/tags/${version}";
|
||||
hash = "sha256-KRfyXWSnWmkt/SYmrpxG60KytEooMWNhHg8TrvFeATc=";
|
||||
hash = "sha256-XyMywnuJOGSXWsMNbwNbMaOeAa9bosBg6rvfNKw77Ik=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
@ -19,7 +19,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "jupytext";
|
||||
version = "1.14.0";
|
||||
version = "1.14.1";
|
||||
format = "pyproject";
|
||||
|
||||
disabled = pythonOlder "3.6";
|
||||
@ -28,7 +28,7 @@ buildPythonPackage rec {
|
||||
owner = "mwouts";
|
||||
repo = pname;
|
||||
rev = "refs/tags/v${version}";
|
||||
sha256 = "sha256-a/dvY7MLCjYGOvsCC5tiIIJpApNriRtBN63VK+McEVw=";
|
||||
sha256 = "sha256-DDF4aTLkhEl4xViYh/E0/y6swcwZ9KbeS0qKm+HdFz8=";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
|
@ -2,13 +2,13 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "libvirt";
|
||||
version = "8.5.0";
|
||||
version = "8.6.0";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
owner = "libvirt";
|
||||
repo = "libvirt-python";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-/OS+qBo0h9jshKDuxKX++cRPAjegImQROb7Uh+imOUA=";
|
||||
sha256 = "sha256-eJ0RPxJ4Gm+VGs6NeTWP2FbvDnJy4mURPlFbgvkSgo0=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
|
@ -0,0 +1,31 @@
|
||||
{ buildPythonPackage
|
||||
, drawio-headless
|
||||
, fetchPypi
|
||||
, isPy3k
|
||||
, lib
|
||||
, mkdocs
|
||||
, beautifulsoup4
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "mkdocs-swagger-ui-tag";
|
||||
version = "0.4.0";
|
||||
|
||||
disabled = !isPy3k;
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-4fPn+WDHMAo3cywrMs/EoSFoBEnMYdofAeAkgwOIAb4=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [ mkdocs beautifulsoup4 ];
|
||||
|
||||
pythonImportsCheck = [ "mkdocs_swagger_ui_tag" ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "A MkDocs plugin supports for add Swagger UI in page.";
|
||||
homepage = "https://github.com/Blueswen/mkdocs-swagger-ui-tag";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ snpschaaf ];
|
||||
};
|
||||
}
|
@ -3,14 +3,14 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "osmnx";
|
||||
version = "1.2.0";
|
||||
version = "1.2.2";
|
||||
disabled = pythonOlder "3.8";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "gboeing";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-HfgMmPEiKstMXV0rtul8QLxB1FY32Ws7IEonBB+qZOc=";
|
||||
sha256 = "sha256-+dUv1QrUmCIOCyUyjYX1kJtZrPuSp3t9xz/sRV7ppgA=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [ geopandas matplotlib networkx numpy pandas requests Rtree shapely folium scikit-learn scipy gdal rasterio ];
|
||||
|
@ -6,13 +6,17 @@
|
||||
, pythonOlder
|
||||
, substituteAll
|
||||
|
||||
# links (libpq)
|
||||
# build
|
||||
, postgresql
|
||||
, setuptools
|
||||
|
||||
# propagates
|
||||
, backports-zoneinfo
|
||||
, typing-extensions
|
||||
|
||||
# psycopg-c
|
||||
, cython_3
|
||||
|
||||
# docs
|
||||
, furo
|
||||
, shapely
|
||||
@ -29,13 +33,6 @@
|
||||
let
|
||||
pname = "psycopg";
|
||||
version = "3.0.16";
|
||||
in
|
||||
|
||||
buildPythonPackage {
|
||||
inherit pname version;
|
||||
format = "pyproject";
|
||||
|
||||
disabled = pythonOlder "3.7";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "psycopg";
|
||||
@ -44,6 +41,80 @@ buildPythonPackage {
|
||||
hash = "sha256-jKhpmCcDi7FyMSpn51eSukFvmu3yacNovmRYG9jnu3g=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
(substituteAll {
|
||||
src = ./libpq.patch;
|
||||
libpq = "${postgresql.lib}/lib/libpq${stdenv.hostPlatform.extensions.sharedLibrary}";
|
||||
})
|
||||
];
|
||||
|
||||
baseMeta = {
|
||||
changelog = "https://github.com/psycopg/psycopg/blob/master/docs/news.rst";
|
||||
homepage = "https://github.com/psycopg/psycopg";
|
||||
license = lib.licenses.lgpl3Plus;
|
||||
maintainers = with lib.maintainers; [ hexa ];
|
||||
};
|
||||
|
||||
psycopg-c = buildPythonPackage {
|
||||
pname = "${pname}-c";
|
||||
inherit version src;
|
||||
format = "pyproject";
|
||||
|
||||
# apply patches to base repo
|
||||
inherit patches;
|
||||
|
||||
# move into source root after patching
|
||||
postPatch = ''
|
||||
cd psycopg_c
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [
|
||||
setuptools
|
||||
cython_3
|
||||
postgresql
|
||||
];
|
||||
|
||||
# tested in psycopg
|
||||
doCheck = false;
|
||||
|
||||
meta = baseMeta // {
|
||||
description = "C optimisation distribution for Psycopg";
|
||||
};
|
||||
};
|
||||
|
||||
psycopg-pool = buildPythonPackage {
|
||||
pname = "${pname}-pool";
|
||||
inherit version src;
|
||||
format = "setuptools";
|
||||
|
||||
# apply patches to base repo
|
||||
inherit patches;
|
||||
|
||||
# move into source root after patching
|
||||
postPatch = ''
|
||||
cd psycopg_pool
|
||||
'';
|
||||
|
||||
propagatedBuildInputs = lib.optionals (pythonOlder "3.10") [
|
||||
typing-extensions
|
||||
];
|
||||
|
||||
# tested in psycopg
|
||||
doCheck = false;
|
||||
|
||||
meta = baseMeta // {
|
||||
description = "Connection Pool for Psycopg";
|
||||
};
|
||||
};
|
||||
|
||||
in
|
||||
|
||||
buildPythonPackage rec {
|
||||
inherit pname version src;
|
||||
format = "pyproject";
|
||||
|
||||
disabled = pythonOlder "3.7";
|
||||
|
||||
outputs = [
|
||||
"out"
|
||||
"doc"
|
||||
@ -57,26 +128,24 @@ buildPythonPackage {
|
||||
hash = "sha256-yn09fR9+7zQni8SvTG7BUmYRD7MK7u2arVAznWz2oAw=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
(substituteAll {
|
||||
src = ./libpq.patch;
|
||||
libpq = "${postgresql.lib}/lib/libpq${stdenv.hostPlatform.extensions.sharedLibrary}";
|
||||
})
|
||||
];
|
||||
inherit patches;
|
||||
|
||||
# only move to sourceRoot after patching, makes patching easier
|
||||
postPatch = ''
|
||||
cd ${pname}
|
||||
cd psycopg
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [
|
||||
furo
|
||||
setuptools
|
||||
shapely
|
||||
sphinxHook
|
||||
sphinx-autodoc-typehints
|
||||
sphinxHook
|
||||
];
|
||||
|
||||
propagatedBuildInputs = lib.optionals (pythonOlder "3.11") [
|
||||
propagatedBuildInputs = [
|
||||
psycopg-c
|
||||
] ++ lib.optionals (pythonOlder "3.11") [
|
||||
typing-extensions
|
||||
] ++ lib.optionals (pythonOlder "3.9") [
|
||||
backports-zoneinfo
|
||||
@ -84,12 +153,13 @@ buildPythonPackage {
|
||||
|
||||
pythonImportsCheck = [
|
||||
"psycopg"
|
||||
"psycopg_c"
|
||||
"psycopg_pool"
|
||||
];
|
||||
|
||||
passthru.optional-dependencies = {
|
||||
# TODO: package remaining variants
|
||||
#c = [ psycopg-c ];
|
||||
#pool = [ psycopg-pool ];
|
||||
c = [ psycopg-c ];
|
||||
pool = [ psycopg-pool ];
|
||||
};
|
||||
|
||||
preCheck = ''
|
||||
@ -102,16 +172,21 @@ buildPythonPackage {
|
||||
pytest-randomly
|
||||
pytestCheckHook
|
||||
postgresql
|
||||
];
|
||||
]
|
||||
++ passthru.optional-dependencies.c
|
||||
++ passthru.optional-dependencies.pool;
|
||||
|
||||
disabledTests = [
|
||||
# linters shouldn't be run in checks
|
||||
# don't depend on mypy for tests
|
||||
"test_version"
|
||||
"test_package_version"
|
||||
] ++ lib.optionals (stdenv.isDarwin) [
|
||||
# racy test
|
||||
"test_sched"
|
||||
"test_sched_error"
|
||||
];
|
||||
|
||||
disabledTestPaths = [
|
||||
# TODO: requires the pooled variant
|
||||
"tests/pool/"
|
||||
# Network access
|
||||
"tests/test_dns.py"
|
||||
"tests/test_dns_srv.py"
|
||||
@ -127,11 +202,12 @@ buildPythonPackage {
|
||||
cd ${pname}
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
changelog = "https://github.com/psycopg/psycopg/blob/master/docs/news.rst";
|
||||
passthru = {
|
||||
c = psycopg-c;
|
||||
pool = psycopg-pool;
|
||||
};
|
||||
|
||||
meta = baseMeta // {
|
||||
description = "PostgreSQL database adapter for Python";
|
||||
homepage = "https://github.com/psycopg/psycopg";
|
||||
license = licenses.lgpl3Plus;
|
||||
maintainers = with maintainers; [ hexa ];
|
||||
};
|
||||
}
|
||||
|
@ -12,7 +12,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "readme-renderer";
|
||||
version = "36.0";
|
||||
version = "37.0";
|
||||
format = "setuptools";
|
||||
|
||||
disabled = pythonOlder "3.6";
|
||||
@ -20,7 +20,7 @@ buildPythonPackage rec {
|
||||
src = fetchPypi {
|
||||
pname = "readme_renderer";
|
||||
inherit version;
|
||||
sha256 = "sha256-9xru+aWI/L7R9MwAG6YRNw6UoM0nx1sRQFN2GOx48KI=";
|
||||
sha256 = "sha256-B7fqI04D5Y93zCIuIG5qu49MBDW+zOUQR5TuWR+TAcU=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
@ -18,7 +18,7 @@ buildPythonPackage rec {
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-K5iWEKrtL9Qtpk9s3FOc8+5wzjcLy6hy23JCGtUV3R4=";
|
||||
hash = "sha256-K5iWEKrtL9Qtpk9s3FOc8+5wzjcLy6hy23JCGtUV3R4=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
@ -36,10 +36,15 @@ buildPythonPackage rec {
|
||||
"restview"
|
||||
];
|
||||
|
||||
meta = {
|
||||
disabledTests = [
|
||||
# Tests are comparing output
|
||||
"rest_to_html"
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "ReStructuredText viewer";
|
||||
homepage = "https://mg.pov.lt/restview/";
|
||||
license = lib.licenses.gpl3Only;
|
||||
maintainers = with lib.maintainers; [ koral ];
|
||||
license = licenses.gpl3Only;
|
||||
maintainers = with maintainers; [ koral ];
|
||||
};
|
||||
}
|
||||
|
@ -10,13 +10,13 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "sphinxcontrib-bibtex";
|
||||
version = "2.4.2";
|
||||
version = "2.5.0";
|
||||
|
||||
disabled = pythonOlder "3.6";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
hash = "sha256-ZbAj7kfzXx8DrE1xyCTmfGJMfsrBuyboNiMnGgH52oY=";
|
||||
hash = "sha256-cbQuXbDi4oTyQ4dTJr+ZNqqadjKCJ311BIgm/vWwDqo=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
@ -2,16 +2,16 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "air";
|
||||
version = "1.29.0";
|
||||
version = "1.40.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "cosmtrek";
|
||||
repo = "air";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-JbFSEfm8SVyJBgZju3kfIv5WK/kFYTqkU0EH5HXl9cc=";
|
||||
hash = "sha256-MipTBepFLcP3TJQtCLi/33D6HCJu4oX48tGnSGG5qho=";
|
||||
};
|
||||
|
||||
vendorSha256 = "sha256-MEIPkron42OJioV7PPhnLWVevjKDs5Bw3jDmvZbac9s=";
|
||||
vendorSha256 = "sha256-+hZpCIDASPerI7Wetpx+ah2H5ODjoeyoqUi+uFwR/9A=";
|
||||
|
||||
subPackages = [ "." ];
|
||||
|
||||
|
@ -2,13 +2,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "lcov";
|
||||
version = "1.15";
|
||||
version = "1.16";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "linux-test-project";
|
||||
repo = "lcov";
|
||||
rev = "v${version}";
|
||||
sha256 = "1kvc7fkp45w48f0bxwbxvxkicnjrrydki0hllg294n1wrp80zzyk";
|
||||
sha256 = "sha256-X1T5OqR6NgTNGedH1on3+XZ7369007By6tRJK8xtmbk=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
|
@ -225,15 +225,21 @@ stdenv.mkDerivation rec {
|
||||
|
||||
# Install the helper scripts to bin/ to resemble the upstream package
|
||||
mkdir -p $out/bin
|
||||
install -m755 src/Misc/layoutbin/runsvc.sh $out/bin/
|
||||
install -m755 src/Misc/layoutbin/RunnerService.js $out/lib/
|
||||
install -m755 src/Misc/layoutroot/run.sh $out/lib/
|
||||
install -m755 src/Misc/layoutroot/config.sh $out/lib/
|
||||
install -m755 src/Misc/layoutroot/env.sh $out/lib/
|
||||
install -m755 src/Misc/layoutbin/runsvc.sh $out/bin/
|
||||
install -m755 src/Misc/layoutbin/RunnerService.js $out/lib/
|
||||
install -m755 src/Misc/layoutroot/run.sh $out/lib/
|
||||
install -m755 src/Misc/layoutroot/run-helper.sh.template $out/lib/run-helper.sh
|
||||
install -m755 src/Misc/layoutroot/config.sh $out/lib/
|
||||
install -m755 src/Misc/layoutroot/env.sh $out/lib/
|
||||
|
||||
# Rewrite reference in helper scripts from bin/ to lib/
|
||||
substituteInPlace $out/lib/run.sh --replace '"$DIR"/bin' "$out/lib"
|
||||
substituteInPlace $out/lib/config.sh --replace './bin' "$out/lib"
|
||||
substituteInPlace $out/lib/run.sh --replace '"$DIR"/bin' '"$DIR"/lib'
|
||||
substituteInPlace $out/lib/config.sh --replace './bin' $out'/lib' \
|
||||
--replace 'source ./env.sh' $out/bin/env.sh
|
||||
|
||||
# Remove uneeded copy for run-helper template
|
||||
substituteInPlace $out/lib/run.sh --replace 'cp -f "$DIR"/run-helper.sh.template "$DIR"/run-helper.sh' ' '
|
||||
substituteInPlace $out/lib/run-helper.sh --replace '"$DIR"/bin/' '"$DIR"/'
|
||||
|
||||
# Make paths absolute
|
||||
substituteInPlace $out/bin/runsvc.sh \
|
||||
@ -269,7 +275,7 @@ stdenv.mkDerivation rec {
|
||||
wrap() {
|
||||
makeWrapper $out/lib/$1 $out/bin/$1 \
|
||||
--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath (buildInputs ++ [ openssl ])} \
|
||||
''${@:2}
|
||||
"''${@:2}"
|
||||
}
|
||||
|
||||
fix_rpath Runner.Listener
|
||||
@ -279,10 +285,13 @@ stdenv.mkDerivation rec {
|
||||
wrap Runner.Listener
|
||||
wrap Runner.PluginHost
|
||||
wrap Runner.Worker
|
||||
wrap run.sh
|
||||
wrap env.sh
|
||||
wrap run.sh --run 'export RUNNER_ROOT=''${RUNNER_ROOT:-$HOME/.github-runner}'
|
||||
wrap env.sh --run 'cd $RUNNER_ROOT'
|
||||
|
||||
wrap config.sh --prefix PATH : ${lib.makeBinPath [ glibc.bin ]}
|
||||
wrap config.sh --run 'export RUNNER_ROOT=''${RUNNER_ROOT:-$HOME/.github-runner}' \
|
||||
--run 'mkdir -p $RUNNER_ROOT' \
|
||||
--prefix PATH : ${lib.makeBinPath [ glibc.bin ]} \
|
||||
--chdir $out
|
||||
'';
|
||||
|
||||
# Script to create deps.nix file for dotnet dependencies. Run it with
|
||||
|
@ -2,13 +2,13 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "json2hcl";
|
||||
version = "0.0.7";
|
||||
version = "0.1.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "kvz";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-H3jDZL/guVwJIZs7PD/rIvH3ZRYQzNTU/iUvy8aXs0o=";
|
||||
sha256 = "sha256-0ku8sON4fzWAirqY+dhYAks2LSyC7OH/LKI0kb+QhpM=";
|
||||
};
|
||||
|
||||
vendorSha256 = "sha256-GxYuFak+5CJyHgC1/RsS0ub84bgmgL+bI4YKFTb+vIY=";
|
||||
|
@ -2,16 +2,16 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "mani";
|
||||
version = "0.12.2";
|
||||
version = "0.21.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "alajmo";
|
||||
repo = "mani";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-sjudHGqSCgwafyT8alrGvTdC3yM2zmbRcYshxSm23Ko=";
|
||||
sha256 = "sha256-eH6V7J0KHGyR//kVr0dOdBYuoR3FDbW/pSh0RhHd4A8=";
|
||||
};
|
||||
|
||||
vendorSha256 = "sha256-NnXQAf8m2cGLvwSOzQWXffiG1zyVqDPQnGAeqe7EUHY=";
|
||||
vendorSha256 = "sha256-g336is8Jjbbzmtsu3suhO9SNq3IJyy1MQ3s8P39MhvU=";
|
||||
|
||||
nativeBuildInputs = [ installShellFiles makeWrapper ];
|
||||
|
||||
|
@ -17,6 +17,11 @@ in rec {
|
||||
cp linux-recordreplay.so $out
|
||||
runHook postInstall
|
||||
'';
|
||||
postFixup = ''
|
||||
patchelf --set-rpath "$(patchelf --print-rpath $out):${
|
||||
lib.makeLibraryPath [ openssl ]
|
||||
}" $out
|
||||
'';
|
||||
meta = with lib; {
|
||||
description = "RecordReplay internal recording library";
|
||||
homepage = "https://www.replay.io/";
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user