Merge staging-next into staging

This commit is contained in:
github-actions[bot] 2021-02-12 18:16:50 +00:00 committed by GitHub
commit 0667f269fc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
71 changed files with 16848 additions and 304 deletions

View File

@ -15,7 +15,7 @@ in pkgs.stdenv.mkDerivation {
xmlformat
];
src = ./.;
src = lib.cleanSource ./.;
makeFlags = [
"PANDOC_LUA_FILTERS_DIR=${pkgs.pandoc-lua-filters}/share/pandoc/filters"

View File

@ -236,10 +236,11 @@ self: super:
{
blas = super.blas.override {
blasProvider = self.mkl;
}
};
lapack = super.lapack.override {
lapackProvider = self.mkl;
}
};
}
</programlisting>
<para>

View File

@ -3615,6 +3615,12 @@
githubId = 5317234;
name = "Raphael Megzari";
};
happy-river = {
email = "happyriver93@runbox.com";
github = "happy-river";
githubId = 54728477;
name = "Happy River";
};
haslersn = {
email = "haslersn@fius.informatik.uni-stuttgart.de";
github = "haslersn";

View File

@ -891,6 +891,7 @@
./services/web-apps/jitsi-meet.nix
./services/web-apps/keycloak.nix
./services/web-apps/limesurvey.nix
./services/web-apps/mastodon.nix
./services/web-apps/mattermost.nix
./services/web-apps/mediawiki.nix
./services/web-apps/miniflux.nix

View File

@ -0,0 +1,541 @@
{ config, lib, pkgs, ... }:
let
cfg = config.services.mastodon;
# We only want to create a database if we're actually going to connect to it.
databaseActuallyCreateLocally = cfg.database.createLocally && cfg.database.host == "/run/postgresql";
env = {
RAILS_ENV = "production";
NODE_ENV = "production";
DB_USER = cfg.database.user;
REDIS_HOST = cfg.redis.host;
REDIS_PORT = toString(cfg.redis.port);
DB_HOST = cfg.database.host;
DB_PORT = toString(cfg.database.port);
DB_NAME = cfg.database.name;
LOCAL_DOMAIN = cfg.localDomain;
SMTP_SERVER = cfg.smtp.host;
SMTP_PORT = toString(cfg.smtp.port);
SMTP_FROM_ADDRESS = cfg.smtp.fromAddress;
PAPERCLIP_ROOT_PATH = "/var/lib/mastodon/public-system";
PAPERCLIP_ROOT_URL = "/system";
ES_ENABLED = if (cfg.elasticsearch.host != null) then "true" else "false";
ES_HOST = cfg.elasticsearch.host;
ES_PORT = toString(cfg.elasticsearch.port);
}
// (if cfg.smtp.authenticate then { SMTP_LOGIN = cfg.smtp.user; } else {})
// cfg.extraConfig;
envFile = pkgs.writeText "mastodon.env" (lib.concatMapStrings (s: s + "\n") (
(lib.concatLists (lib.mapAttrsToList (name: value:
if value != null then [
"${name}=\"${toString value}\""
] else []
) env))));
mastodonEnv = pkgs.writeShellScriptBin "mastodon-env" ''
set -a
source "${envFile}"
source /var/lib/mastodon/.secrets_env
eval -- "\$@"
'';
in {
options = {
services.mastodon = {
enable = lib.mkEnableOption "Mastodon, a federated social network server";
configureNginx = lib.mkOption {
description = ''
Configure nginx as a reverse proxy for mastodon.
Note that this makes some assumptions on your setup, and sets settings that will
affect other virtualHosts running on your nginx instance, if any.
Alternatively you can configure a reverse-proxy of your choice to serve these paths:
<code>/ -> $(nix-instantiate --eval '&lt;nixpkgs&gt;' -A mastodon.outPath)/public</code>
<code>/ -> 127.0.0.1:{{ webPort }} </code>(If there was no file in the directory above.)
<code>/system/ -> /var/lib/mastodon/public-system/</code>
<code>/api/v1/streaming/ -> 127.0.0.1:{{ streamingPort }}</code>
Make sure that websockets are forwarded properly. You might want to set up caching
of some requests. Take a look at mastodon's provided nginx configuration at
<code>https://github.com/tootsuite/mastodon/blob/master/dist/nginx.conf</code>.
'';
type = lib.types.bool;
default = false;
};
user = lib.mkOption {
description = ''
User under which mastodon runs. If it is set to "mastodon",
that user will be created, otherwise it should be set to the
name of a user created elsewhere. In both cases,
<package>mastodon</package> and a package containing only
the shell script <code>mastodon-env</code> will be added to
the user's package set. To run a command from
<package>mastodon</package> such as <code>tootctl</code>
with the environment configured by this module use
<code>mastodon-env</code>, as in:
<code>mastodon-env tootctl accounts create newuser --email newuser@example.com</code>
'';
type = lib.types.str;
default = "mastodon";
};
group = lib.mkOption {
description = ''
Group under which mastodon runs.
If it is set to "mastodon", a group will be created.
'';
type = lib.types.str;
default = "mastodon";
};
streamingPort = lib.mkOption {
description = "TCP port used by the mastodon-streaming service.";
type = lib.types.port;
default = 55000;
};
webPort = lib.mkOption {
description = "TCP port used by the mastodon-web service.";
type = lib.types.port;
default = 55001;
};
sidekiqPort = lib.mkOption {
description = "TCP port used by the mastodon-sidekiq service";
type = lib.types.port;
default = 55002;
};
vapidPublicKeyFile = lib.mkOption {
description = ''
Path to file containing the public key used for Web Push
Voluntary Application Server Identification. A new keypair can
be generated by running:
<code>nix build -f '&lt;nixpkgs&gt;' mastodon; cd result; bin/rake webpush:generate_keys</code>
If <option>mastodon.vapidPrivateKeyFile</option>does not
exist, it and this file will be created with a new keypair.
'';
default = "/var/lib/mastodon/secrets/vapid-public-key";
type = lib.types.str;
};
localDomain = lib.mkOption {
description = "The domain serving your Mastodon instance.";
example = "social.example.org";
type = lib.types.str;
};
secretKeyBaseFile = lib.mkOption {
description = ''
Path to file containing the secret key base.
A new secret key base can be generated by running:
<code>nix build -f '&lt;nixpkgs&gt;' mastodon; cd result; bin/rake secret</code>
If this file does not exist, it will be created with a new secret key base.
'';
default = "/var/lib/mastodon/secrets/secret-key-base";
type = lib.types.str;
};
otpSecretFile = lib.mkOption {
description = ''
Path to file containing the OTP secret.
A new OTP secret can be generated by running:
<code>nix build -f '&lt;nixpkgs&gt;' mastodon; cd result; bin/rake secret</code>
If this file does not exist, it will be created with a new OTP secret.
'';
default = "/var/lib/mastodon/secrets/otp-secret";
type = lib.types.str;
};
vapidPrivateKeyFile = lib.mkOption {
description = ''
Path to file containing the private key used for Web Push
Voluntary Application Server Identification. A new keypair can
be generated by running:
<code>nix build -f '&lt;nixpkgs&gt;' mastodon; cd result; bin/rake webpush:generate_keys</code>
If this file does not exist, it will be created with a new
private key.
'';
default = "/var/lib/mastodon/secrets/vapid-private-key";
type = lib.types.str;
};
redis = {
createLocally = lib.mkOption {
description = "Configure local Redis server for Mastodon.";
type = lib.types.bool;
default = true;
};
host = lib.mkOption {
description = "Redis host.";
type = lib.types.str;
default = "127.0.0.1";
};
port = lib.mkOption {
description = "Redis port.";
type = lib.types.port;
default = 6379;
};
};
database = {
createLocally = lib.mkOption {
description = "Configure local PostgreSQL database server for Mastodon.";
type = lib.types.bool;
default = true;
};
host = lib.mkOption {
type = lib.types.str;
default = "/run/postgresql";
example = "192.168.23.42";
description = "Database host address or unix socket.";
};
port = lib.mkOption {
type = lib.types.int;
default = 5432;
description = "Database host port.";
};
name = lib.mkOption {
type = lib.types.str;
default = "mastodon";
description = "Database name.";
};
user = lib.mkOption {
type = lib.types.str;
default = "mastodon";
description = "Database user.";
};
passwordFile = lib.mkOption {
type = lib.types.nullOr lib.types.path;
default = "/var/lib/mastodon/secrets/db-password";
example = "/run/keys/mastodon-db-password";
description = ''
A file containing the password corresponding to
<option>database.user</option>.
'';
};
};
smtp = {
createLocally = lib.mkOption {
description = "Configure local Postfix SMTP server for Mastodon.";
type = lib.types.bool;
default = true;
};
authenticate = lib.mkOption {
description = "Authenticate with the SMTP server using username and password.";
type = lib.types.bool;
default = true;
};
host = lib.mkOption {
description = "SMTP host used when sending emails to users.";
type = lib.types.str;
default = "127.0.0.1";
};
port = lib.mkOption {
description = "SMTP port used when sending emails to users.";
type = lib.types.port;
default = 25;
};
fromAddress = lib.mkOption {
description = ''"From" address used when sending Emails to users.'';
type = lib.types.str;
};
user = lib.mkOption {
description = "SMTP login name.";
type = lib.types.str;
};
passwordFile = lib.mkOption {
description = ''
Path to file containing the SMTP password.
'';
default = "/var/lib/mastodon/secrets/smtp-password";
example = "/run/keys/mastodon-smtp-password";
type = lib.types.str;
};
};
elasticsearch = {
host = lib.mkOption {
description = ''
Elasticsearch host.
If it is not null, Elasticsearch full text search will be enabled.
'';
type = lib.types.nullOr lib.types.str;
default = null;
};
port = lib.mkOption {
description = "Elasticsearch port.";
type = lib.types.port;
default = 9200;
};
};
package = lib.mkOption {
type = lib.types.package;
default = pkgs.mastodon;
defaultText = "pkgs.mastodon";
description = "Mastodon package to use.";
};
extraConfig = lib.mkOption {
type = lib.types.attrs;
default = {};
description = ''
Extra environment variables to pass to all mastodon services.
'';
};
automaticMigrations = lib.mkOption {
type = lib.types.bool;
default = true;
description = ''
Do automatic database migrations.
'';
};
};
};
config = lib.mkIf cfg.enable {
assertions = [
{
assertion = databaseActuallyCreateLocally -> (cfg.user == cfg.database.user);
message = ''For local automatic database provisioning (services.mastodon.database.createLocally == true) with peer authentication (services.mastodon.database.host == "/run/postgresql") to work services.mastodon.user and services.mastodon.database.user must be identical.'';
}
];
systemd.services.mastodon-init-dirs = {
script = ''
umask 077
if ! test -f ${cfg.secretKeyBaseFile}; then
mkdir -p $(dirname ${cfg.secretKeyBaseFile})
bin/rake secret > ${cfg.secretKeyBaseFile}
fi
if ! test -f ${cfg.otpSecretFile}; then
mkdir -p $(dirname ${cfg.otpSecretFile})
bin/rake secret > ${cfg.otpSecretFile}
fi
if ! test -f ${cfg.vapidPrivateKeyFile}; then
mkdir -p $(dirname ${cfg.vapidPrivateKeyFile}) $(dirname ${cfg.vapidPublicKeyFile})
keypair=$(bin/rake webpush:generate_keys)
echo $keypair | grep --only-matching "Private -> [^ ]\+" | sed 's/^Private -> //' > ${cfg.vapidPrivateKeyFile}
echo $keypair | grep --only-matching "Public -> [^ ]\+" | sed 's/^Public -> //' > ${cfg.vapidPublicKeyFile}
fi
cat > /var/lib/mastodon/.secrets_env <<EOF
SECRET_KEY_BASE="$(cat ${cfg.secretKeyBaseFile})"
OTP_SECRET="$(cat ${cfg.otpSecretFile})"
VAPID_PRIVATE_KEY="$(cat ${cfg.vapidPrivateKeyFile})"
VAPID_PUBLIC_KEY="$(cat ${cfg.vapidPublicKeyFile})"
DB_PASS="$(cat ${cfg.database.passwordFile})"
'' + (if cfg.smtp.authenticate then ''
SMTP_PASSWORD="$(cat ${cfg.smtp.passwordFile})"
'' else "") + ''
EOF
'';
serviceConfig = {
Type = "oneshot";
User = cfg.user;
Group = cfg.group;
WorkingDirectory = cfg.package;
LogsDirectory = "mastodon";
StateDirectory = "mastodon";
};
after = [ "network.target" ];
wantedBy = [ "multi-user.target" ];
};
systemd.services.mastodon-init-db = lib.mkIf cfg.automaticMigrations {
script = ''
if [ `psql mastodon -c \
"select count(*) from pg_class c \
join pg_namespace s on s.oid = c.relnamespace \
where s.nspname not in ('pg_catalog', 'pg_toast', 'information_schema') \
and s.nspname not like 'pg_temp%';" | sed -n 3p` -eq 0 ]; then
SAFETY_ASSURED=1 rake db:schema:load
rake db:seed
else
rake db:migrate
fi
'';
path = [ cfg.package pkgs.postgresql ];
environment = env;
serviceConfig = {
Type = "oneshot";
User = cfg.user;
Group = cfg.group;
EnvironmentFile = "/var/lib/mastodon/.secrets_env";
PrivateTmp = true;
LogsDirectory = "mastodon";
StateDirectory = "mastodon";
WorkingDirectory = cfg.package;
};
after = [ "mastodon-init-dirs.service" "network.target" ] ++ (if databaseActuallyCreateLocally then [ "postgresql.service" ] else []);
wantedBy = [ "multi-user.target" ];
};
systemd.services.mastodon-streaming = {
after = [ "network.target" ]
++ (if databaseActuallyCreateLocally then [ "postgresql.service" ] else [])
++ (if cfg.automaticMigrations then [ "mastodon-init-db.service" ] else [ "mastodon-init-dirs.service" ]);
description = "Mastodon streaming";
wantedBy = [ "multi-user.target" ];
environment = env // {
PORT = toString(cfg.streamingPort);
};
serviceConfig = {
ExecStart = "${pkgs.nodejs-slim}/bin/node streaming";
Restart = "always";
RestartSec = 20;
User = cfg.user;
Group = cfg.group;
WorkingDirectory = cfg.package;
EnvironmentFile = "/var/lib/mastodon/.secrets_env";
PrivateTmp = true;
LogsDirectory = "mastodon";
StateDirectory = "mastodon";
};
};
systemd.services.mastodon-web = {
after = [ "network.target" ]
++ (if databaseActuallyCreateLocally then [ "postgresql.service" ] else [])
++ (if cfg.automaticMigrations then [ "mastodon-init-db.service" ] else [ "mastodon-init-dirs.service" ]);
description = "Mastodon web";
wantedBy = [ "multi-user.target" ];
environment = env // {
PORT = toString(cfg.webPort);
};
serviceConfig = {
ExecStart = "${cfg.package}/bin/puma -C config/puma.rb";
Restart = "always";
RestartSec = 20;
User = cfg.user;
Group = cfg.group;
WorkingDirectory = cfg.package;
EnvironmentFile = "/var/lib/mastodon/.secrets_env";
PrivateTmp = true;
LogsDirectory = "mastodon";
StateDirectory = "mastodon";
};
path = with pkgs; [ file imagemagick ffmpeg ];
};
systemd.services.mastodon-sidekiq = {
after = [ "network.target" ]
++ (if databaseActuallyCreateLocally then [ "postgresql.service" ] else [])
++ (if cfg.automaticMigrations then [ "mastodon-init-db.service" ] else [ "mastodon-init-dirs.service" ]);
description = "Mastodon sidekiq";
wantedBy = [ "multi-user.target" ];
environment = env // {
PORT = toString(cfg.sidekiqPort);
};
serviceConfig = {
ExecStart = "${cfg.package}/bin/sidekiq -c 25 -r ${cfg.package}";
Restart = "always";
RestartSec = 20;
User = cfg.user;
Group = cfg.group;
WorkingDirectory = cfg.package;
EnvironmentFile = "/var/lib/mastodon/.secrets_env";
PrivateTmp = true;
LogsDirectory = "mastodon";
StateDirectory = "mastodon";
};
path = with pkgs; [ file imagemagick ffmpeg ];
};
services.nginx = lib.mkIf cfg.configureNginx {
enable = true;
recommendedProxySettings = true; # required for redirections to work
virtualHosts."${cfg.localDomain}" = {
root = "${cfg.package}/public/";
forceSSL = true; # mastodon only supports https
enableACME = true;
locations."/system/".alias = "/var/lib/mastodon/public-system/";
locations."/" = {
tryFiles = "$uri @proxy";
};
locations."@proxy" = {
proxyPass = "http://127.0.0.1:${toString(cfg.webPort)}";
proxyWebsockets = true;
};
locations."/api/v1/streaming/" = {
proxyPass = "http://127.0.0.1:${toString(cfg.streamingPort)}/";
proxyWebsockets = true;
};
};
};
services.postfix = lib.mkIf (cfg.smtp.createLocally && cfg.smtp.host == "127.0.0.1") {
enable = true;
};
services.redis = lib.mkIf (cfg.redis.createLocally && cfg.redis.host == "127.0.0.1") {
enable = true;
};
services.postgresql = lib.mkIf databaseActuallyCreateLocally {
enable = true;
ensureUsers = [
{
name = cfg.database.user;
ensurePermissions."DATABASE ${cfg.database.name}" = "ALL PRIVILEGES";
}
];
ensureDatabases = [ cfg.database.name ];
};
users.users = lib.mkMerge [
(lib.mkIf (cfg.user == "mastodon") {
mastodon = {
isSystemUser = true;
home = cfg.package;
inherit (cfg) group;
};
})
(lib.attrsets.setAttrByPath [ cfg.user "packages" ] [ cfg.package mastodonEnv ])
];
users.groups.mastodon = lib.mkIf (cfg.group == "mastodon") { };
};
meta.maintainers = with lib.maintainers; [ happy-river erictapen ];
}

View File

@ -1,11 +1,23 @@
{ lib, stdenv, fetchurl, pkg-config, gettext, gtk3, intltool,
wrapGAppsHook, libxml2, curl, mpd_clientlib, dbus-glib,
libsoup, avahi, taglib
{ lib
, stdenv
, fetchurl
, pkg-config
, intltool
, avahi
, curl
, dbus-glib
, gettext
, gtk3
, libmpdclient
, libsoup
, libxml2
, taglib
, wrapGAppsHook
}:
stdenv.mkDerivation rec {
version = "1.6";
pname = "ario";
version = "1.6";
src = fetchurl {
url = "mirror://sourceforge/ario-player/${pname}-${version}.tar.gz";
@ -14,14 +26,21 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ pkg-config gettext intltool wrapGAppsHook ];
buildInputs = [
gtk3 libxml2 curl mpd_clientlib dbus-glib libsoup avahi taglib
avahi
curl
dbus-glib
gtk3
libmpdclient
libsoup
libxml2
taglib
];
meta = {
meta = with lib; {
description = "GTK client for MPD (Music player daemon)";
homepage = "http://ario-player.sourceforge.net/";
license = lib.licenses.gpl2Plus;
maintainers = [ lib.maintainers.garrison ];
platforms = lib.platforms.all;
license = licenses.gpl2Plus;
maintainers = [ maintainers.garrison ];
platforms = platforms.all;
};
}

View File

@ -1,4 +1,12 @@
{ lib, stdenv, fetchFromGitHub, cmake, pkg-config, mpd_clientlib, meson, ninja }:
{ lib
, stdenv
, fetchFromGitHub
, cmake
, pkg-config
, meson
, ninja
, libmpdclient
}:
stdenv.mkDerivation rec {
pname = "ashuffle";
@ -14,7 +22,7 @@ stdenv.mkDerivation rec {
dontUseCmakeConfigure = true;
nativeBuildInputs = [ cmake pkg-config meson ninja ];
buildInputs = [ mpd_clientlib ];
buildInputs = [ libmpdclient ];
meta = with lib; {
homepage = "https://github.com/joshkunz/ashuffle";

View File

@ -1,5 +1,6 @@
{ mkDerivation
, lib
, stdenv
, fetchFromGitHub
, qmake
, pkg-config
@ -20,6 +21,11 @@ mkDerivation rec {
sha256 = "0iddqfw951dw9xpl4w7310sl4z544507ppb12i8g4fzvlxfw2ifc";
};
postPatch = lib.optionalString stdenv.hostPlatform.isDarwin ''
substituteInPlace BambooTracker/BambooTracker.pro \
--replace '# Temporary known-error downgrades here' 'CPP_WARNING_FLAGS += -Wno-missing-braces'
'';
nativeBuildInputs = [ qmake qttools pkg-config ];
buildInputs = [ qtbase rtaudio rtmidi ];

View File

@ -1,24 +1,41 @@
{ lib, stdenv, fetchurl, pkg-config, mpd_clientlib, dbus-glib, audacious, gtk2, gsl
, libaudclient }:
{ lib
, stdenv
, fetchurl
, pkg-config
, dbus-glib
, audacious
, gtk2
, gsl
, libaudclient
, libmpdclient
}:
stdenv.mkDerivation {
name = "gjay-0.3.2";
stdenv.mkDerivation rec {
pname = "gjay";
version = "0.3.2";
src = fetchurl {
url = "mirror://sourceforge/project/gjay/gjay-0.3.2.tar.gz";
url = "mirror://sourceforge/project/gjay/${pname}-${version}.tar.gz";
sha256 = "1a1vv4r0vnxjdyl0jyv7gga3zfd5azxlwjm1l6hjrf71lb228zn8";
};
nativeBuildInputs = [ pkg-config ];
buildInputs = [ mpd_clientlib dbus-glib audacious gtk2 gsl libaudclient ];
buildInputs = [
libmpdclient
dbus-glib
audacious
gtk2
gsl
libaudclient
];
hardeningDisable = [ "format" ];
meta = with lib; {
description = "Generates playlists such that each song sounds good following the previous song";
homepage = "http://gjay.sourceforge.net/";
license = licenses.gpl2;
license = licenses.gpl2Plus;
maintainers = with maintainers; [ pSub ];
platforms = with platforms; linux;
};

View File

@ -1,6 +1,22 @@
{ lib, stdenv, fetchurl, libtool, intltool, pkg-config, glib
, gtk2, curl, mpd_clientlib, libsoup, gob2, vala, libunique
, libSM, libICE, sqlite, hicolor-icon-theme, wrapGAppsHook
{ lib
, stdenv
, fetchurl
, libtool
, intltool
, pkg-config
, glib
, gtk2
, curl
, libmpdclient
, libsoup
, gob2
, vala
, libunique
, libSM
, libICE
, sqlite
, hicolor-icon-theme
, wrapGAppsHook
}:
stdenv.mkDerivation rec {
@ -26,8 +42,17 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ pkg-config libtool intltool gob2 vala wrapGAppsHook ];
buildInputs = [
glib gtk2 curl mpd_clientlib libsoup
libunique libmpd libSM libICE sqlite hicolor-icon-theme
glib
gtk2
curl
libmpdclient
libsoup
libunique
libmpd
libSM
libICE
sqlite
hicolor-icon-theme
];
meta = with lib; {
@ -38,3 +63,4 @@ stdenv.mkDerivation rec {
platforms = platforms.linux;
};
}
# TODO: what is this libmpd derivation embedded above?

View File

@ -1,4 +1,13 @@
{ lib, stdenv, fetchFromGitHub, meson, ninja, pkg-config, mpd_clientlib, sphinx, libiconv }:
{ lib
, stdenv
, fetchFromGitHub
, meson
, ninja
, pkg-config
, libmpdclient
, sphinx
, libiconv
}:
stdenv.mkDerivation rec {
pname = "mpc";
@ -11,7 +20,7 @@ stdenv.mkDerivation rec {
sha256 = "1qbi0i9cq54rj8z2kapk8x8g1jkw2jz781niwb9i7kw4xfhvy5zx";
};
buildInputs = [ mpd_clientlib ] ++ lib.optionals stdenv.isDarwin [ libiconv ];
buildInputs = [ libmpdclient ] ++ lib.optionals stdenv.isDarwin [ libiconv ];
nativeBuildInputs = [ meson ninja pkg-config sphinx ];

View File

@ -1,8 +1,9 @@
{ lib, stdenv
{ lib
, stdenv
, fetchFromGitHub
, cmake
, pkg-config
, mpd_clientlib
, libmpdclient
, openssl
, lua5_3
, libid3tag
@ -21,12 +22,9 @@ stdenv.mkDerivation rec {
sha256 = "sha256-QGJti1tKKJlumLgABPmROplF0UVGMWMnyRXLb2cEieQ=";
};
nativeBuildInputs = [
pkg-config
cmake
];
nativeBuildInputs = [ pkg-config cmake ];
buildInputs = [
mpd_clientlib
libmpdclient
openssl
lua5_3
libid3tag

View File

@ -1,7 +1,15 @@
{ lib, stdenv, fetchFromGitHub, meson, ninja, pkg-config, glib, ncurses
, mpd_clientlib, gettext, boost
, pcreSupport ? false
, pcre ? null
{ lib
, stdenv
, fetchFromGitHub
, meson
, ninja
, pkg-config
, glib
, ncurses
, libmpdclient
, gettext
, boost
, pcreSupport ? false, pcre ? null
}:
with lib;
@ -19,7 +27,7 @@ stdenv.mkDerivation rec {
sha256 = "sha256-Qu41TL8KSKC9L25D6Z8bEbJUJQ9QI08grTGZ+0qGdUQ=";
};
buildInputs = [ glib ncurses mpd_clientlib boost ]
buildInputs = [ glib ncurses libmpdclient boost ]
++ optional pcreSupport pcre;
nativeBuildInputs = [ meson ninja pkg-config gettext ];

View File

@ -1,5 +1,14 @@
{ lib, stdenv, fetchurl, boost, mpd_clientlib, ncurses, pkg-config, readline
, libiconv, icu, curl
{ lib
, stdenv
, fetchurl
, boost
, libmpdclient
, ncurses
, pkg-config
, readline
, libiconv
, icu
, curl
, outputsSupport ? true # outputs screen
, visualizerSupport ? false, fftw ? null # visualizer screen
, clockSupport ? true # clock screen
@ -27,7 +36,7 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ pkg-config ];
buildInputs = [ boost mpd_clientlib ncurses readline libiconv icu curl ]
buildInputs = [ boost libmpdclient ncurses readline libiconv icu curl ]
++ optional visualizerSupport fftw
++ optional taglibSupport taglib;

View File

@ -1,5 +1,14 @@
{ lib, stdenv, fetchFromGitHub, autoreconfHook, mpd_clientlib, ncurses, pcre, pkg-config
, taglib, curl }:
{ lib
, stdenv
, fetchFromGitHub
, autoreconfHook
, libmpdclient
, ncurses
, pcre
, pkg-config
, taglib
, curl
}:
stdenv.mkDerivation rec {
version = "0.09.2";
@ -13,7 +22,7 @@ stdenv.mkDerivation rec {
};
nativeBuildInputs = [ autoreconfHook pkg-config ];
buildInputs = [ mpd_clientlib ncurses pcre taglib curl ];
buildInputs = [ libmpdclient ncurses pcre taglib curl ];
postInstall = ''
mkdir -p $out/etc

View File

@ -1,4 +1,11 @@
{ lib, stdenv, fetchFromGitHub, cmake, pkg-config, mpd_clientlib, openssl }:
{ lib
, stdenv
, fetchFromGitHub
, cmake
, pkg-config
, libmpdclient
, openssl
}:
stdenv.mkDerivation rec {
pname = "ympd";
@ -12,13 +19,13 @@ stdenv.mkDerivation rec {
};
nativeBuildInputs = [ cmake pkg-config ];
buildInputs = [ mpd_clientlib openssl ];
buildInputs = [ libmpdclient openssl ];
meta = {
meta = with lib; {
homepage = "https://www.ympd.org";
description = "Standalone MPD Web GUI written in C, utilizing Websockets and Bootstrap/JS";
maintainers = [ lib.maintainers.siddharthist ];
platforms = lib.platforms.unix;
license = lib.licenses.gpl2;
maintainers = [ maintainers.siddharthist ];
platforms = platforms.unix;
license = licenses.gpl2Plus;
};
}

View File

@ -19,6 +19,7 @@
, withGTK2 ? false, gtk2-x11 ? null
, withGTK3 ? true, gtk3-x11 ? null, gsettings-desktop-schemas ? null
, withXwidgets ? false, webkitgtk ? null, wrapGAppsHook ? null, glib-networking ? null
, withMotif ? false, motif ? null
, withCsrc ? true
, srcRepo ? false, autoreconfHook ? null, texinfo ? null
, siteStart ? ./site-start.el
@ -27,6 +28,7 @@
, toolkit ? (
if withGTK2 then "gtk2"
else if withGTK3 then "gtk3"
else if withMotif then "motif"
else "lucid")
}:
@ -107,6 +109,7 @@ let emacs = stdenv.mkDerivation (lib.optionalAttrs nativeComp {
++ lib.optionals (stdenv.isLinux && withX) [ m17n_lib libotf ]
++ lib.optional (withX && withGTK2) gtk2-x11
++ lib.optionals (withX && withGTK3) [ gtk3-x11 gsettings-desktop-schemas ]
++ lib.optional (withX && withMotif) motif
++ lib.optionals (withX && withXwidgets) [ webkitgtk glib-networking ]
++ lib.optionals withNS [ AppKit GSS ImageIO ]
++ lib.optionals nativeComp [ libgccjit ]

View File

@ -13,10 +13,10 @@ let
archive_fmt = if system == "x86_64-darwin" then "zip" else "tar.gz";
sha256 = {
x86_64-linux = "07wbh4sfvnmvif1a03z8bbqrjmcwmb4q5nn3l2r738i9wrxdxjja";
x86_64-darwin = "0djcx4n17giynckhsqqx8q7j25cxd3xqgjz3jhh8xh54h4fbvmbz";
aarch64-linux = "172x6c2pl994ps4xbrgrkzdb02gmpqag61sbxc7796cx0xk8bjpi";
armv7l-linux = "008bf7iwfizbn67wl1cxahl6h7pg04ms4q2nmr0dndcpxgc1q5gd";
x86_64-linux = "0c0m5qkqv3zhcxmwx72b7z67sjcd1miv8d10kxpk9vffyrxkmj93";
x86_64-darwin = "1spd5rbhra4n38lp0sgxd2cr1bngsmi32a43g02vdmmhkmk0iixc";
aarch64-linux = "1ql3hn6c59g7d0cwhg54ixww2i9jmkjw3nyzz97yw8wk63zwz024";
armv7l-linux = "0pdqcbw7rygvdzys787kf8ag17g9qyv7k33dqhi5h2zc96j867c0";
}.${system};
in
callPackage ./generic.nix rec {
@ -25,7 +25,7 @@ in
# Please backport all compatible updates to the stable release.
# This is important for the extension ecosystem.
version = "1.53.0";
version = "1.53.2";
pname = "vscode";
executableName = "code" + lib.optionalString isInsiders "-insiders";

View File

@ -13,10 +13,10 @@ let
archive_fmt = if system == "x86_64-darwin" then "zip" else "tar.gz";
sha256 = {
x86_64-linux = "1ckg279vvg8h1n8ippa9vlyw4vk3frinb6fvvi47zggs31168m7b";
x86_64-darwin = "168g34v2b8r1pdbnqrs0c0k9aa60n5rspixziywnq7m61i23nlgd";
aarch64-linux = "1cd4sg6k7sqmj3yzmprq1rz928bvc3zrch8agfd8zfap1d6nfaal";
armv7l-linux = "0f8z4lws027dyqhcrkzm9rvifwid5m0icprg0xk01l7y18n3q923";
x86_64-linux = "1b9pzfi034idhi6f3n0sz3fckf95ckf2qx3sgfn9fx2g52r9m9z1";
x86_64-darwin = "1983d8hn04xl5vw7p6842cv5x08q7vilqg7nhvy5yg3lj9q2rpp0";
aarch64-linux = "09l32abkq110ib4hjd0yv9avr8a2vg5vs7w4jpk0p499gzrysh2l";
armv7l-linux = "1s0gbq1fapq2i905c0xxfyh0656qnb7dmg00khlwbplxzd6i6m18";
}.${system};
sourceRoot = {
@ -33,7 +33,7 @@ in
# Please backport all compatible updates to the stable release.
# This is important for the extension ecosystem.
version = "1.52.1";
version = "1.53.2";
pname = "vscodium";
executableName = "codium";

View File

@ -28,7 +28,7 @@ in buildFHSUserEnv {
# DGen // TODO: libarchive is broken
# Dolphin
bluez ffmpeg_3 gettext portaudio wxGTK30 miniupnpc mbedtls lzo sfml gsm
bluez ffmpeg gettext portaudio wxGTK30 miniupnpc mbedtls lzo sfml gsm
wavpack orc nettle gmp pcre vulkan-loader
# DOSBox

View File

@ -1,13 +1,29 @@
{ cairo, cmake, fetchFromGitHub, libXdmcp, libpthreadstubs, libxcb, pcre, pkg-config
, python3, lib, stdenv, xcbproto, xcbutil, xcbutilcursor, xcbutilimage
, xcbutilrenderutil, xcbutilwm, xcbutilxrm, makeWrapper
{ cairo
, cmake
, fetchFromGitHub
, libXdmcp
, libpthreadstubs
, libxcb
, pcre
, pkg-config
, python3
, lib
, stdenv
, xcbproto
, xcbutil
, xcbutilcursor
, xcbutilimage
, xcbutilrenderutil
, xcbutilwm
, xcbutilxrm
, makeWrapper
, removeReferencesTo
# optional packages-- override the variables ending in 'Support' to enable or
# disable modules
, alsaSupport ? true, alsaLib ? null
, githubSupport ? false, curl ? null
, mpdSupport ? false, mpd_clientlib ? null
, mpdSupport ? false, libmpdclient ? null
, pulseSupport ? false, libpulseaudio ? null
, iwSupport ? false, wirelesstools ? null
, nlSupport ? true, libnl ? null
@ -16,7 +32,7 @@
assert alsaSupport -> alsaLib != null;
assert githubSupport -> curl != null;
assert mpdSupport -> mpd_clientlib != null;
assert mpdSupport -> libmpdclient != null;
assert pulseSupport -> libpulseaudio != null;
assert iwSupport -> ! nlSupport && wirelesstools != null;
@ -37,26 +53,24 @@ stdenv.mkDerivation rec {
fetchSubmodules = true;
};
meta = with lib; {
homepage = "https://polybar.github.io/";
description = "A fast and easy-to-use tool for creating status bars";
longDescription = ''
Polybar aims to help users build beautiful and highly customizable
status bars for their desktop environment, without the need of
having a black belt in shell scripting.
'';
license = licenses.mit;
maintainers = with maintainers; [ afldcr Br1ght0ne ];
platforms = platforms.linux;
};
buildInputs = [
cairo libXdmcp libpthreadstubs libxcb pcre python3 xcbproto xcbutil
xcbutilcursor xcbutilimage xcbutilrenderutil xcbutilwm xcbutilxrm
cairo
libXdmcp
libpthreadstubs
libxcb
pcre
python3
xcbproto
xcbutil
xcbutilcursor
xcbutilimage
xcbutilrenderutil
xcbutilwm
xcbutilxrm
(if alsaSupport then alsaLib else null)
(if githubSupport then curl else null)
(if mpdSupport then mpd_clientlib else null)
(if mpdSupport then libmpdclient else null)
(if pulseSupport then libpulseaudio else null)
(if iwSupport then wirelesstools else null)
@ -69,16 +83,36 @@ stdenv.mkDerivation rec {
(if i3Support || i3GapsSupport then makeWrapper else null)
];
postInstall = if (i3Support || i3GapsSupport) then ''
wrapProgram $out/bin/polybar \
--prefix PATH : "${if i3Support then i3 else i3-gaps}/bin"
'' else "";
postInstall = if i3Support
then ''wrapProgram $out/bin/polybar \
--prefix PATH : "${i3}/bin"
''
else if i3GapsSupport
then ''wrapProgram $out/bin/polybar \
--prefix PATH : "${i3-gaps}/bin"
''
else '''';
nativeBuildInputs = [
cmake pkg-config removeReferencesTo
cmake
pkg-config
removeReferencesTo
];
postFixup = ''
remove-references-to -t ${stdenv.cc} $out/bin/polybar
'';
meta = with lib; {
homepage = "https://polybar.github.io/";
description = "A fast and easy-to-use tool for creating status bars";
longDescription = ''
Polybar aims to help users build beautiful and highly customizable
status bars for their desktop environment, without the need of
having a black belt in shell scripting.
'';
license = licenses.mit;
maintainers = with maintainers; [ afldcr Br1ght0ne ];
platforms = platforms.linux;
};
}

View File

@ -1,5 +1,19 @@
{ lib, stdenv, fetchFromGitHub, meson, pkg-config, ninja, wrapGAppsHook
, wayland, wlroots, gtkmm3, libsigcxx, jsoncpp, fmt, scdoc, spdlog, gtk-layer-shell
{ lib
, stdenv
, fetchFromGitHub
, meson
, pkg-config
, ninja
, wrapGAppsHook
, wayland
, wlroots
, gtkmm3
, libsigcxx
, jsoncpp
, fmt
, scdoc
, spdlog
, gtk-layer-shell
, howard-hinnant-date, cmake
, traySupport ? true, libdbusmenu-gtk3
, pulseSupport ? true, libpulseaudio
@ -7,9 +21,10 @@
, nlSupport ? true, libnl
, udevSupport ? true, udev
, swaySupport ? true, sway
, mpdSupport ? true, mpd_clientlib
, mpdSupport ? true, libmpdclient
, withMediaPlayer ? false, glib, gobject-introspection, python3, python38Packages, playerctl
}:
stdenv.mkDerivation rec {
pname = "waybar";
version = "0.9.5";
@ -40,7 +55,7 @@
++ optional nlSupport libnl
++ optional udevSupport udev
++ optional swaySupport sway
++ optional mpdSupport mpd_clientlib;
++ optional mpdSupport libmpdclient;
mesonFlags = (lib.mapAttrsToList
(option: enable: "-D${option}=${if enable then "enabled" else "disabled"}")

View File

@ -2,13 +2,13 @@
buildGoModule rec {
pname = "starboard-octant-plugin";
version = "0.9.0";
version = "0.9.1";
src = fetchFromGitHub {
owner = "aquasecurity";
repo = pname;
rev = "v${version}";
sha256 = "sha256-R6hnAqFpebZ9PV3KAX052wjjCtW5D9hKfj7DdS+3Ibg=";
sha256 = "sha256-u+yxAGVVFsZpiexToNDUfQATsYOkKWHkYF9roK0OInY=";
};
vendorSha256 = "sha256-c5sel3xs4npTENqRQu8d9hUOK1OFQodF3M0ZpUpr1po=";

View File

@ -2,13 +2,13 @@
buildGoModule rec {
pname = "terragrunt";
version = "0.28.3";
version = "0.28.4";
src = fetchFromGitHub {
owner = "gruntwork-io";
repo = pname;
rev = "v${version}";
sha256 = "sha256-ERThySRhTqklZ8sRrlHBiCtPqKMplioOyjuVEN44GvI=";
sha256 = "sha256-LilIwg3Zu7Zi7AhJeW0j2qUmSOGy1HHjvvB07FUcEeI=";
};
vendorSha256 = "sha256-lRJerUYafpkXAGf8MEM8SeG3aB86mlMo7iLpeHFAnd4=";

View File

@ -1,4 +1,4 @@
{ stdenv, lib, makeWrapper, fetchurl, dpkg
{ stdenv, lib, fetchurl, dpkg
, alsaLib, atk, cairo, cups, dbus, expat, fontconfig, freetype
, gdk-pixbuf, glib, gnome2, pango, nspr, nss, gtk3
, xorg, autoPatchelfHook, systemd, libnotify, libappindicator
@ -41,11 +41,11 @@ in
stdenv.mkDerivation rec {
pname = "mullvad-vpn";
version = "2020.7";
version = "2021.1";
src = fetchurl {
url = "https://www.mullvad.net/media/app/MullvadVPN-${version}_amd64.deb";
sha256 = "07vryz1nq8r4m5y9ry0d0v62ykz1cnnsv628x34yvwiyazbav4ri";
sha256 = "1ksa327zaiwmcmzv4n4ycfzc4sqhj2492c5ir0mqlx7x2nnhx6q7";
};
nativeBuildInputs = [
@ -84,9 +84,9 @@ stdenv.mkDerivation rec {
homepage = "https://github.com/mullvad/mullvadvpn-app";
description = "Client for Mullvad VPN";
changelog = "https://github.com/mullvad/mullvadvpn-app/blob/${version}/CHANGELOG.md";
license = licenses.gpl3;
license = licenses.gpl3Only;
platforms = [ "x86_64-linux" ];
maintainers = with maintainers; [ Br1ght0ne ];
maintainers = with maintainers; [ Br1ght0ne ymarkus ];
};
}

View File

@ -16,6 +16,10 @@ buildPythonApplication rec {
gtk3 gobject-introspection
];
# NOTE: gdk-pixbuf setup hook does not run with strictDeps
# https://nixos.org/manual/nixpkgs/stable/#ssec-gnome-hooks-gobject-introspection
strictDeps = false;
preFixup = ''
gappsWrapperArgs+=(--prefix PATH : ${lib.makeBinPath [ ffmpeg_3 ]})
'';

View File

@ -38,13 +38,13 @@
stdenv.mkDerivation rec {
pname = "icewm";
version = "2.1.1";
version = "2.1.2";
src = fetchFromGitHub {
owner = "bbidulock";
repo = pname;
rev = version;
sha256 = "sha256-WVlp8ir7w/wv4CI11dTQZkLcnW8JYLRQ+bbz73KEcWo=";
sha256 = "sha256-n9mLD1WrHsO9W1rxopFQENxQEHp/sxuixV3PxLp2vOY=";
};
nativeBuildInputs = [ cmake pkg-config perl asciidoc ];

View File

@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
pname = "evisum";
version = "0.5.10";
version = "0.5.11";
src = fetchurl {
url = "https://download.enlightenment.org/rel/apps/${pname}/${pname}-${version}.tar.xz";
sha256 = "sha256-kCO55UvQnRQhXLRqeJr6SN9FiTeKkh3P7QFkJe+GXjY=";
sha256 = "sha256-jCOYnG/+xz9qK6npOPT+tw1tp/K0QaFCmsBRO9J4bjE=";
};
nativeBuildInputs = [

View File

@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "cimg";
version = "2.9.4";
version = "2.9.6";
src = fetchFromGitHub {
owner = "dtschump";
repo = "CImg";
rev = "v.${version}";
sha256 = "1sb0z5ryh34y80ghlr2agsl64gayjmxpl96l9fjaylf5k2m3fg2b";
sha256 = "sha256-RdOfog5FOw5XESyDFX68Lb2MUyCeUuPaq/0UVNTjNKo=";
};
installPhase = ''

View File

@ -4,7 +4,7 @@ stdenv.mkDerivation {
name = "gtk-engines-2.20.2";
src = fetchurl {
url = "ftp://ftp.gnome.org/pub/gnome/sources/gtk-engines/2.20/gtk-engines-2.20.2.tar.bz2";
url = "mirror://gnome/sources/gtk-engines/2.20/gtk-engines-2.20.2.tar.bz2";
sha256 = "1db65pb0j0mijmswrvpgkdabilqd23x22d95hp5kwxvcramq1dhm";
};

View File

@ -6,6 +6,8 @@ buildDunePackage rec {
pname = "irmin-watcher";
version = "0.4.1";
useDune2 = true;
src = fetchurl {
url = "https://github.com/mirage/irmin-watcher/releases/download/${version}/irmin-watcher-${version}.tbz";
sha256 = "00d4ph4jbsw6adp3zqdrwi099hfcf7p1xzi0685qr7bgcmandjfv";

View File

@ -4,6 +4,8 @@ buildDunePackage rec {
pname = "lwt-dllist";
version = "1.0.0";
useDune2 = true;
minimumOCamlVersion = "4.03";
src = fetchurl {

View File

@ -1,21 +1,25 @@
{ lib, fetchzip, pkg-config, ncurses, libev, buildDunePackage, ocaml
, cppo, ocaml-migrate-parsetree, ocplib-endian, result
, cppo, dune-configurator, ocaml-migrate-parsetree, ocplib-endian, result
, mmap, seq
, ocaml-syntax-shims
}:
let inherit (lib) optional versionAtLeast; in
buildDunePackage rec {
pname = "lwt";
version = "5.3.0";
version = "5.4.0";
useDune2 = true;
src = fetchzip {
url = "https://github.com/ocsigen/${pname}/archive/${version}.tar.gz";
sha256 = "15hgy3220m2b8imipa514n7l65m1h5lc6l1hanqwwvs7ghh2aqp2";
sha256 = "1ay1zgadnw19r9hl2awfjr22n37l7rzxd9v73pjbahavwm2ay65d";
};
nativeBuildInputs = [ pkg-config ];
buildInputs = [ cppo ocaml-migrate-parsetree ]
buildInputs = [ cppo dune-configurator ocaml-migrate-parsetree ]
++ optional (!versionAtLeast ocaml.version "4.08") ocaml-syntax-shims
++ optional (!versionAtLeast ocaml.version "4.07") ncurses;
propagatedBuildInputs = [ libev mmap ocplib-endian seq result ];

View File

@ -4,6 +4,8 @@ buildDunePackage rec {
pname = "lwt_log";
version = "1.1.1";
useDune2 = true;
minimumOCamlVersion = "4.02";
src = fetchFromGitHub {

View File

@ -6,6 +6,8 @@ buildDunePackage rec {
pname = "mirage-bootvar-unix";
version = "0.1.0";
useDune2 = true;
src = fetchurl {
url = "https://github.com/mirage/mirage-bootvar-unix/releases/download/${version}/mirage-bootvar-unix-${version}.tbz";
sha256 = "0r92s6y7nxg0ci330a7p0hii4if51iq0sixn20cnm5j4a2clprbf";

View File

@ -4,6 +4,8 @@ buildDunePackage rec {
pname = "mirage-device";
version = "2.0.0";
useDune2 = true;
src = fetchurl {
url = "https://github.com/mirage/mirage-device/releases/download/v${version}/mirage-device-v${version}.tbz";
sha256 = "18alxyi6wlxqvb4lajjlbdfkgcajsmklxi9xqmpcz07j51knqa04";

View File

@ -4,6 +4,8 @@ buildDunePackage rec {
version = "1.1";
pname = "resource-pooling";
useDune2 = true;
minimumOCamlVersion = "4.06";
src = fetchFromGitHub {

View File

@ -1,9 +1,12 @@
{ lib, fetchFromGitHub, buildDunePackage, czmq, stdint }:
{ lib, fetchFromGitHub, buildDunePackage, dune-configurator, czmq, stdint }:
buildDunePackage rec {
minimumOCamlVersion = "4.03";
pname = "zmq";
version = "20180726";
useDune2 = true;
src = fetchFromGitHub {
owner = "issuu";
repo = "ocaml-zmq";
@ -11,7 +14,7 @@ buildDunePackage rec {
sha256 = "1f5l4bw78y4drabhyvmpj3z8k30bill33ca7bzhr02m55yf6gqpf";
};
buildInputs = [ czmq ];
buildInputs = [ czmq dune-configurator ];
propagatedBuildInputs = [ stdint ];

View File

@ -2,7 +2,7 @@
buildDunePackage {
pname = "zmq-lwt";
inherit (zmq) version src meta;
inherit (zmq) version src useDune2 meta;
propagatedBuildInputs = [ zmq ocaml_lwt ];
}

View File

@ -7,14 +7,14 @@
buildPythonPackage rec {
pname = "asteval";
version = "0.9.21";
version = "0.9.22";
disabled = pythonOlder "3.6";
src = fetchFromGitHub {
owner = "newville";
repo = pname;
rev = version;
sha256 = "1bhdj7zybsqghgd7qx50il7nwfg79qx9wg03n0z96jgq5gydqd9w";
sha256 = "sha256-93IBv6beYE/VTKJCWUbA1QTRdmQdn2kg35KBw6kmDis=";
};
checkInputs = [ pytestCheckHook ];

View File

@ -4,14 +4,14 @@
buildPythonPackage rec {
pname = "brother";
version = "0.2.0";
version = "0.2.1";
disabled = pythonOlder "3.8";
src = fetchFromGitHub {
owner = "bieniu";
repo = pname;
rev = version;
sha256 = "0d984apw73kzd6bid65bqhp26gvvgqjni56nqr0gnb2sv7mknnm8";
sha256 = "sha256-yOloGkOVhXcTt0PAjf3yWUItN1okO94DndRFsImiuz4=";
};
# pytest-error-for-skips is not packaged

View File

@ -1,40 +1,36 @@
{ lib
, buildPythonPackage
, fetchFromGitHub
, pythonOlder
, pytest
, click
, pytestcov
, isPy27
, mock
, pytestCheckHook
}:
buildPythonPackage rec {
pname = "pytest-click";
version = "0.3";
version = "1.0.2";
disabled = pythonOlder "3.5";
src = fetchFromGitHub {
owner = "Stranger6667";
repo = "pytest-click";
rev = version;
sha256 = "1cd15anw8d4rq6qs03j6ag38199rqw7vp0w0w0fm41mvdzr0lwvz";
rev = "v${version}";
sha256 = "197nvlqlyfrqpy5lrkmfh1ywpr6j9zipxl9d7syg2a2n7jz3a8rj";
};
postConfigure = ''
substituteInPlace setup.py \
--replace "mock==1.0.1" "mock"
'';
propagatedBuildInputs = [
pytest
click
];
checkInputs = [ pytestcov ] ++ lib.optionals isPy27 [ mock ];
checkInputs = [ pytestCheckHook ];
meta = with lib; {
description = "pytest plugin for click";
homepage = "https://github.com/Stranger6667/pytest-click";
changelog = "https://github.com/Stranger6667/pytest-click/releases/tag/v${version}";
license = licenses.mit;
maintainers = [ maintainers.costrouc ];
maintainers = with maintainers; [ costrouc ];
};
}

View File

@ -9,13 +9,13 @@
buildPythonPackage rec {
pname = "pywizlight";
version = "0.4.4";
version = "0.4.5";
src = fetchFromGitHub {
owner = "sbidy";
repo = pname;
rev = "v${version}";
sha256 = "139jnmyyfd8cq0xnxqbffkyjmy79gcpiwqmcn2dy27nz3608c1qv";
sha256 = "sha256-E2rpkdj93LymlkST8HgZ+8VcJFOWwz8787NPfTCSXFY=";
};
propagatedBuildInputs = [

View File

@ -403,6 +403,10 @@ in
] ++ lib.optional stdenv.isDarwin "--with-iconv-dir=${libiconv}";
};
openssl = attrs: {
buildInputs = [ openssl ];
};
opus-ruby = attrs: {
dontBuild = false;
postPatch = ''

View File

@ -1,6 +1,6 @@
{ lib, python37Packages, fetchFromGitHub }:
{ lib, python3Packages, fetchFromGitHub }:
with python37Packages; buildPythonApplication rec {
with python3Packages; buildPythonApplication rec {
pname = "nrfutil";
version = "6.1";

View File

@ -1,26 +1,29 @@
{ lib, stdenv, fetchFromGitHub, rustPlatform, dbus, gmp, openssl, pkg-config
, darwin }:
{ lib
, stdenv
, fetchFromGitHub
, rustPlatform
, pkg-config
, dbus
, Security
}:
let
inherit (darwin.apple_sdk.frameworks) Security;
in rustPlatform.buildRustPackage rec {
name = "maturin-${version}";
rustPlatform.buildRustPackage rec {
pname = "maturin";
version = "0.9.0";
src = fetchFromGitHub {
owner = "PyO3";
repo = "maturin";
rev = "v${version}";
sha256 = "sha256-X5/1zEVhhdTuyXcUwC3jVv9Gblmv8LT+ftsVo8BnnZs=";
hash = "sha256-X5/1zEVhhdTuyXcUwC3jVv9Gblmv8LT+ftsVo8BnnZs=";
};
cargoSha256 = "sha256-PBmuPIpCwC7fr/MKFaeSd/0avoEATlxoeMHisjouAeI=";
cargoHash = "sha256-PBmuPIpCwC7fr/MKFaeSd/0avoEATlxoeMHisjouAeI=";
nativeBuildInputs = [ pkg-config ];
buildInputs = [ gmp openssl ]
++ lib.optional stdenv.isDarwin Security
++ lib.optional stdenv.isLinux dbus;
buildInputs = lib.optional stdenv.isLinux dbus
++ lib.optional stdenv.isDarwin Security;
# Requires network access, fails in sandbox.
doCheck = false;

View File

@ -1,5 +1,6 @@
{ lib, fetchurl, perlPackages, pkg-config, SDL, SDL_mixer, SDL_Pango, glib }:
{ lib, fetchurl, perlPackages, pkg-config, SDL, SDL_mixer, SDL_Pango, glib
, copyDesktopItems, makeDesktopItem
}:
perlPackages.buildPerlModule {
pname = "frozen-bubble";
version = "2.212";
@ -10,13 +11,24 @@ perlPackages.buildPerlModule {
};
patches = [ ./fix-compilation.patch ];
nativeBuildInputs = [ pkg-config ];
nativeBuildInputs = [ copyDesktopItems pkg-config ];
buildInputs = [ glib SDL SDL_mixer SDL_Pango perlPackages.SDL perlPackages.FileSlurp ];
propagatedBuildInputs = with perlPackages; [ AlienSDL CompressBzip2 FileShareDir FileWhich IPCSystemSimple LocaleMaketextLexicon ];
perlPreHook = "export LD=$CC";
desktopItems = [
(makeDesktopItem {
name = "frozen-bubble";
exec = "frozen-bubble";
desktopName = "Frozen Bubble";
genericName = "Frozen Bubble";
comment = "Arcade/reflex colour matching game";
categories = "Game;";
})
];
meta = {
description = "Puzzle with Bubbles";
license = lib.licenses.gpl2;

View File

@ -4,7 +4,7 @@
, pkg-config
, cmake
, bluez
, ffmpeg_3
, ffmpeg
, libao
, gtk2
, glib
@ -76,7 +76,7 @@ stdenv.mkDerivation rec {
buildInputs = [
bluez
ffmpeg_3
ffmpeg
libao
libGLU
libGL

View File

@ -1,5 +1,5 @@
{ lib, stdenv, fetchFromGitHub, makeDesktopItem, pkg-config, cmake
, wrapQtAppsHook, qtbase, bluez, ffmpeg_3, libao, libGLU, libGL, pcre, gettext
, wrapQtAppsHook, qtbase, bluez, ffmpeg, libao, libGLU, libGL, pcre, gettext
, libXrandr, libusb1, lzo, libpthreadstubs, libXext, libXxf86vm, libXinerama
, libSM, libXdmcp, readline, openal, udev, libevdev, portaudio, curl, alsaLib
, miniupnpc, enet, mbedtls, soundtouch, sfml
@ -34,7 +34,7 @@ in stdenv.mkDerivation rec {
++ lib.optional stdenv.isLinux wrapQtAppsHook;
buildInputs = [
curl ffmpeg_3 libao libGLU libGL pcre gettext libpthreadstubs libpulseaudio
curl ffmpeg libao libGLU libGL pcre gettext libpthreadstubs libpulseaudio
libXrandr libXext libXxf86vm libXinerama libSM readline openal libXdmcp lzo
portaudio libusb1 libpng hidapi miniupnpc enet mbedtls soundtouch sfml
qtbase

View File

@ -65,12 +65,12 @@ let
ale = buildVimPluginFrom2Nix {
pname = "ale";
version = "2021-02-10";
version = "2021-02-11";
src = fetchFromGitHub {
owner = "dense-analysis";
repo = "ale";
rev = "1773a496ad39fdd3d904679955b39357f3f38442";
sha256 = "1jzfdbfw333r929l5bl1ca1dv9b6yyhsjhk3gdf7wxklbzcrww3p";
rev = "8cb9f5ef515f73eb3cf3188cc20ff57a51d9217b";
sha256 = "1ml2j5l91n1zwp7zxdg2cny48bbj1gw0dfa223bf5iq472c1ggk2";
};
meta.homepage = "https://github.com/dense-analysis/ale/";
};
@ -389,12 +389,12 @@ let
chadtree = buildVimPluginFrom2Nix {
pname = "chadtree";
version = "2021-02-11";
version = "2021-02-12";
src = fetchFromGitHub {
owner = "ms-jpq";
repo = "chadtree";
rev = "eeaff0c9db2779d93c36ab7266ccfb0129525f55";
sha256 = "1w3dpqs4k8hbzjl9q382wvrwjyk8j6xxq78r852cclnayyx9rw19";
rev = "e3e679e077708ee8a4de6bdcdf4135ac1f1ebd9c";
sha256 = "0i7wznlvamybbrz0qjvynkzk6alcxa327nrlw95la6qbw67vkbsl";
};
meta.homepage = "https://github.com/ms-jpq/chadtree/";
};
@ -618,12 +618,12 @@ let
compe-tabnine = buildVimPluginFrom2Nix {
pname = "compe-tabnine";
version = "2021-02-09";
version = "2021-02-12";
src = fetchFromGitHub {
owner = "tzachar";
repo = "compe-tabnine";
rev = "bdd7ea6c4c542aa606090d512e97eb422402045c";
sha256 = "17r4d1hg8wcbv4wqdqzm3y7xmpn18cvx4kv1kaspxncrppzj06mp";
rev = "ea3e34dcbe09563c986bc60ec7d3c0db18ce9690";
sha256 = "1gsi5ybkqxqv1q3yj2qdv5j2lhkwiabr3mrcj60ah5rb1qjvlmib";
};
meta.homepage = "https://github.com/tzachar/compe-tabnine/";
};
@ -922,8 +922,8 @@ let
src = fetchFromGitHub {
owner = "Shougo";
repo = "denite.nvim";
rev = "b7e15bbf2f6ad83309d9799350b1b16c21faff6b";
sha256 = "1jsh4iphrnmi7nahci5bpzi4zb0g8bmdv5zh12im77jys3q21q6w";
rev = "2ea80dfe51974a21a7ec695c23fe86be3a8b10ac";
sha256 = "0ilqw2jfrjq1h0camgqzf3h0p78gz5k4v8sgsixfbijv0syim2y0";
};
meta.homepage = "https://github.com/Shougo/denite.nvim/";
};
@ -2136,12 +2136,12 @@ let
lf-vim = buildVimPluginFrom2Nix {
pname = "lf-vim";
version = "2021-02-10";
version = "2021-02-12";
src = fetchFromGitHub {
owner = "ptzz";
repo = "lf.vim";
rev = "cf3a56e126a6bf21f9004565d9b5043f1e9a093b";
sha256 = "0vnh5xa5vwchsaz1a215pf0jyfc70sj31kvl1xmi867xks53jdgz";
rev = "3223bccf0ee4168aae6753a5cf0c0aa32a60c586";
sha256 = "1qka3hqm2376wz5pbr8x2c3rqycv392lv34spkqayq0d0fs4sqq0";
};
meta.homepage = "https://github.com/ptzz/lf.vim/";
};
@ -2988,12 +2988,12 @@ let
nvim-hlslens = buildVimPluginFrom2Nix {
pname = "nvim-hlslens";
version = "2021-01-21";
version = "2021-02-11";
src = fetchFromGitHub {
owner = "kevinhwang91";
repo = "nvim-hlslens";
rev = "492c61ccef4562687d319bba48f824426b4613d6";
sha256 = "1587mms2qr8n6igsln54vanpzhhm1s7mhrvr4iyszh47dlhjkvdi";
rev = "90ac936055ba8432b532392835e0fbbd82e60836";
sha256 = "1hfda95gwdglycs00a9rwvfar9w579234zn3sz4pngi5crdamr38";
};
meta.homepage = "https://github.com/kevinhwang91/nvim-hlslens/";
};
@ -3036,12 +3036,12 @@ let
nvim-lspconfig = buildVimPluginFrom2Nix {
pname = "nvim-lspconfig";
version = "2021-02-06";
version = "2021-02-12";
src = fetchFromGitHub {
owner = "neovim";
repo = "nvim-lspconfig";
rev = "041dfd7fb648d24c80cb8829dda2469f66f88490";
sha256 = "105xswyz91sphqr59kzg2df9dhs01d5g2nwmlnnbq0fpbdfjnylb";
rev = "d3c178ac78f8930d4ca094685744f5c705b56b55";
sha256 = "1mj761vxq3dd7m384ig6dhipg43qw1w3cpkkvq9aymnlsvfi5b1d";
};
meta.homepage = "https://github.com/neovim/nvim-lspconfig/";
};
@ -3060,12 +3060,12 @@ let
nvim-peekup = buildVimPluginFrom2Nix {
pname = "nvim-peekup";
version = "2021-02-10";
version = "2021-02-11";
src = fetchFromGitHub {
owner = "gennaro-tedesco";
repo = "nvim-peekup";
rev = "95492e20139dcd911d6a1932bbe435010b87c6e7";
sha256 = "1q1ksr2v17nvar48gmixigc72xw8r5k6gd4q3h002hr8lnhfm1xp";
rev = "d4276b9601c683ad802893fed0cfe12a8631e931";
sha256 = "06sazbjcnv77c11b835b7n8p78vmzw9zl3lkqbfl6yarbbzniisi";
};
meta.homepage = "https://github.com/gennaro-tedesco/nvim-peekup/";
};
@ -3096,24 +3096,24 @@ let
nvim-tree-lua = buildVimPluginFrom2Nix {
pname = "nvim-tree-lua";
version = "2021-01-22";
version = "2021-02-11";
src = fetchFromGitHub {
owner = "kyazdani42";
repo = "nvim-tree.lua";
rev = "b2852578769b53430af678ae7a99482f2a4be0da";
sha256 = "057w9nqn0xc207s7y7fcl84xi14251yhyjd6xsajv9hlh4zcgarv";
rev = "c59831a5d11a35594dc4e379a89d276d5ac83cdf";
sha256 = "0wf36dlg4hq2hfvyvm1i7z83ky1x4rr7vv249sk01clsy84nylql";
};
meta.homepage = "https://github.com/kyazdani42/nvim-tree.lua/";
};
nvim-treesitter = buildVimPluginFrom2Nix {
pname = "nvim-treesitter";
version = "2021-02-11";
version = "2021-02-12";
src = fetchFromGitHub {
owner = "nvim-treesitter";
repo = "nvim-treesitter";
rev = "76a7000384aec0a94c6a4b0031a1bde0909b7ac4";
sha256 = "0fg5mra0c3s3lgk454130b7n8sky48cgnmfdmpz7b4pgsxyx7iw0";
rev = "e5facde11bc8a2577dbfd56e2a4063320b09bc0b";
sha256 = "1i1dn4akszkly6cjf3z9s17y1fdgsgk0fr5i50hs4mlnxy7al01i";
};
meta.homepage = "https://github.com/nvim-treesitter/nvim-treesitter/";
};
@ -3156,24 +3156,24 @@ let
nvim-ts-rainbow = buildVimPluginFrom2Nix {
pname = "nvim-ts-rainbow";
version = "2021-02-06";
version = "2021-02-12";
src = fetchFromGitHub {
owner = "p00f";
repo = "nvim-ts-rainbow";
rev = "eb8c49ee380bcdf477734911fe032fc141606a6b";
sha256 = "0ix27jdh6nvc352wwck8gjn4wsrf1y8ra89mrhf10mgm2ijr2xvs";
rev = "3557b7baa9e773fff378235851cb3caac96fd4b9";
sha256 = "14bz6xwwdypwxfxdxhmbwl0w04ys18l08s1dx40mm5l1627wh465";
};
meta.homepage = "https://github.com/p00f/nvim-ts-rainbow/";
};
nvim-web-devicons = buildVimPluginFrom2Nix {
pname = "nvim-web-devicons";
version = "2020-12-28";
version = "2021-02-11";
src = fetchFromGitHub {
owner = "kyazdani42";
repo = "nvim-web-devicons";
rev = "aaffb87b5a640d15a566d9af9e74baafcf9ec016";
sha256 = "1qk2h8cwcb0v12lxayjdxka6wh5r1phn9cz5xkm5hvm1vcwrvlln";
rev = "cadf0c30659acc8c60fec8100b81ea0fd92a8a9c";
sha256 = "06d32z6rlz153vfbydcjvm6l2qrnjw0d6a60qxjpmbmby66nvcya";
};
meta.homepage = "https://github.com/kyazdani42/nvim-web-devicons/";
};
@ -3288,12 +3288,12 @@ let
packer-nvim = buildVimPluginFrom2Nix {
pname = "packer-nvim";
version = "2021-02-10";
version = "2021-02-12";
src = fetchFromGitHub {
owner = "wbthomason";
repo = "packer.nvim";
rev = "8d220a40b760fea7ee637602ec781bff80df5122";
sha256 = "1l4dwkq1rwb0dwd4xnhz6yisqqfgha9k92kgl73fldnx0pkcycbk";
rev = "75a254198770baffe11ed748338c82f4d2d71e9d";
sha256 = "1vvkcpfvkkf14y7zxlp43ridx075y2hf14kc285mzwdhhb1ygcdi";
};
meta.homepage = "https://github.com/wbthomason/packer.nvim/";
};
@ -4778,6 +4778,18 @@ let
meta.homepage = "https://github.com/bazelbuild/vim-bazel/";
};
vim-bbye = buildVimPluginFrom2Nix {
pname = "vim-bbye";
version = "2018-03-03";
src = fetchFromGitHub {
owner = "moll";
repo = "vim-bbye";
rev = "25ef93ac5a87526111f43e5110675032dbcacf56";
sha256 = "0dlifpbd05fcgndpkgb31ww8p90pwdbizmgkkq00qkmvzm1ik4y4";
};
meta.homepage = "https://github.com/moll/vim-bbye/";
};
vim-beancount = buildVimPluginFrom2Nix {
pname = "vim-beancount";
version = "2020-08-06";
@ -4900,12 +4912,12 @@ let
vim-clap = buildVimPluginFrom2Nix {
pname = "vim-clap";
version = "2021-02-09";
version = "2021-02-12";
src = fetchFromGitHub {
owner = "liuchengxu";
repo = "vim-clap";
rev = "1d25223d6d54b266a3bbe95e33bad845845247e2";
sha256 = "13ii654rp7sgpxqd4vyr61v2868g948cllcnrf8cmf7kwhmhik62";
rev = "2e8538beaf1cef636deab2d40edcb270044485d1";
sha256 = "1ay90j72sknqhp1rdlgzdb5rxs98mwc5ad7q3rgqj8hpsr21x991";
};
meta.homepage = "https://github.com/liuchengxu/vim-clap/";
};
@ -5536,12 +5548,12 @@ let
vim-floaterm = buildVimPluginFrom2Nix {
pname = "vim-floaterm";
version = "2021-02-08";
version = "2021-02-12";
src = fetchFromGitHub {
owner = "voldikss";
repo = "vim-floaterm";
rev = "93083ed4395aaa47e2484947017e7da1ff4fe2fd";
sha256 = "0sb3pz85dy0z3ixv9hqv286dl8hq4ddc4fdgasswz8pq1a3jzrl5";
rev = "bd76979d17c28db94430dbfa4007e5aef667441a";
sha256 = "0ih17mimpjkk9w81cpmzks63rd4k5v32i5y1anykcgn9nmmbp8qm";
};
meta.homepage = "https://github.com/voldikss/vim-floaterm/";
};
@ -5584,12 +5596,12 @@ let
vim-fugitive = buildVimPluginFrom2Nix {
pname = "vim-fugitive";
version = "2021-01-26";
version = "2021-02-11";
src = fetchFromGitHub {
owner = "tpope";
repo = "vim-fugitive";
rev = "8cf0cf5bfb2b858faecf4e0f6c1b8d0948805e5e";
sha256 = "1ka4bbmzpdzaflnywl4pknd0xy1n6mqw3qk4krk92dd6bcya0b1d";
rev = "5c821eb78d4018025a1a9f54a9ef2af2a5ddd365";
sha256 = "0vzhc9dr166pn4xpznzxfyhfibas3m0an0z74gl3vih1qlg59h9y";
};
meta.homepage = "https://github.com/tpope/vim-fugitive/";
};
@ -7183,12 +7195,12 @@ let
vim-rhubarb = buildVimPluginFrom2Nix {
pname = "vim-rhubarb";
version = "2020-12-18";
version = "2021-02-11";
src = fetchFromGitHub {
owner = "tpope";
repo = "vim-rhubarb";
rev = "d865e427d067af57d85cf2b7d2bc1912eb84d0bf";
sha256 = "1gcphxq52jx96fzf6xkq7mxvgyhjn6yzh7l5qc9h18lqmax9gqw2";
rev = "964d48fd11db7c3a3246885993319d544c7c6fd5";
sha256 = "09xpjd96xd0mkzfwyvinjhbza7xp6v66bdrxwkb0j0n1kgfgkx4l";
};
meta.homepage = "https://github.com/tpope/vim-rhubarb/";
};
@ -7952,12 +7964,12 @@ let
vim-visual-multi = buildVimPluginFrom2Nix {
pname = "vim-visual-multi";
version = "2021-01-29";
version = "2021-02-12";
src = fetchFromGitHub {
owner = "mg979";
repo = "vim-visual-multi";
rev = "4ca5978e327a8bc021ffd28fd2328ca8ce353305";
sha256 = "1a2p5ij2gpkcn5jjwg6bna9gxmrdpg49ch6c52grzwzyw2lz2fjw";
rev = "88f934f572efdbc73c7b4b23a9b96f710524a94d";
sha256 = "0pk0vqns7269gi9jd8bdcg1qxlgdm55w9mf3nsrzc9z3d3j3vpw0";
};
meta.homepage = "https://github.com/mg979/vim-visual-multi/";
};
@ -7976,12 +7988,12 @@ let
vim-vsnip = buildVimPluginFrom2Nix {
pname = "vim-vsnip";
version = "2021-02-02";
version = "2021-02-11";
src = fetchFromGitHub {
owner = "hrsh7th";
repo = "vim-vsnip";
rev = "cacfe408e58f9b2cbc6ecd0f1135ff4810e42889";
sha256 = "0cfhrkmss1bzjgr30bn43wa1h4z1ylkh2ixxsdjbchhpqjmzfq1c";
rev = "d840e1af9e680b384e8a28e62b46ad5148907fdd";
sha256 = "0d6gmw38829ln6mvn5j3gyy6by3ks5g62qiyzapz3vw67zyblyjz";
};
meta.homepage = "https://github.com/hrsh7th/vim-vsnip/";
};
@ -8253,12 +8265,12 @@ let
vimtex = buildVimPluginFrom2Nix {
pname = "vimtex";
version = "2021-02-09";
version = "2021-02-11";
src = fetchFromGitHub {
owner = "lervag";
repo = "vimtex";
rev = "3e76c81f329cb13b563b9092fb0e5097151bb08b";
sha256 = "12rrnscqk9s8b6pr7aacjppypd3sl6b10qqyqfl5b9kgc2kic4mp";
rev = "1319bca15f1e25cf8f0ca64818719c860d2d83ac";
sha256 = "043x5x4pxhni2isjxh6x4klldyanhpks3pljc246ybiz9q372bsi";
};
meta.homepage = "https://github.com/lervag/vimtex/";
};
@ -8301,12 +8313,12 @@ let
vista-vim = buildVimPluginFrom2Nix {
pname = "vista-vim";
version = "2021-02-08";
version = "2021-02-12";
src = fetchFromGitHub {
owner = "liuchengxu";
repo = "vista.vim";
rev = "4387164845165634a06941b17c2b4f398cffd193";
sha256 = "0j7cwfkkvf0knni48p14lg0dg1y1xaw6dyz2f3dmn5kvw5fh80vc";
rev = "05d1fb2e333caa2bf2717d4e8ff5ae8c2a1f971d";
sha256 = "0zyq4fgi6i4gdn25ykpxsy7bpyzysny5qkg40r3493yqnp3rvnfw";
};
meta.homepage = "https://github.com/liuchengxu/vista.vim/";
};

View File

@ -658,7 +658,7 @@ self: super: {
});
lf-vim = super.lf-vim.overrideAttrs (old: {
dependencies = with super; [ bclose-vim ];
dependencies = with super; [ vim-bbye ];
});
vim-stylish-haskell = super.vim-stylish-haskell.overrideAttrs (old: {

View File

@ -358,6 +358,7 @@ milkypostman/vim-togglelist
mindriot101/vim-yapf
mk12/vim-lean
mkasa/lushtags
moll/vim-bbye
mopp/sky-color-clock.vim
morhetz/gruvbox
motus/pig.vim

View File

@ -35,6 +35,8 @@ in linux.override {
'';
};
extraMeta.broken = true;
passthru.updateScript = ./update-libre.sh;
maintainers = [ lib.maintainers.qyliss ];

View File

@ -0,0 +1,112 @@
{ lib, stdenv, nodejs-slim, mkYarnPackage, fetchFromGitHub, bundlerEnv
, yarn, callPackage, imagemagick, ffmpeg, file, ruby_2_7
# Allow building a fork or custom version of Mastodon:
, pname ? "mastodon"
, version ? import ./version.nix
, srcOverride ? null
, dependenciesDir ? ./. # Should contain gemset.nix, yarn.nix and package.json.
}:
stdenv.mkDerivation rec {
inherit pname version;
# Using overrideAttrs on src does not build the gems and modules with the overridden src.
# Putting the callPackage up in the arguments list also does not work.
src = if srcOverride != null then srcOverride else callPackage ./source.nix {};
mastodon-gems = bundlerEnv {
name = "${pname}-gems-${version}";
inherit version;
ruby = ruby_2_7;
gemdir = src;
gemset = dependenciesDir + "/gemset.nix";
# This fix (copied from https://github.com/NixOS/nixpkgs/pull/76765) replaces the gem
# symlinks with directories, resolving this error when running rake:
# /nix/store/451rhxkggw53h7253izpbq55nrhs7iv0-mastodon-gems-3.0.1/lib/ruby/gems/2.6.0/gems/bundler-1.17.3/lib/bundler/settings.rb:6:in `<module:Bundler>': uninitialized constant Bundler::Settings (NameError)
postBuild = ''
for gem in "$out"/lib/ruby/gems/*/gems/*; do
cp -a "$gem/" "$gem.new"
rm "$gem"
# needed on macOS, otherwise the mv yields permission denied
chmod +w "$gem.new"
mv "$gem.new" "$gem"
done
'';
};
mastodon-js-modules = mkYarnPackage {
pname = "${pname}-modules";
yarnNix = dependenciesDir + "/yarn.nix";
packageJSON = dependenciesDir + "/package.json";
inherit src version;
};
mastodon-assets = stdenv.mkDerivation {
pname = "${pname}-assets";
inherit src version;
buildInputs = [
mastodon-gems nodejs-slim yarn
];
# FIXME: "production" would require OTP_SECRET to be set, so we use
# development here.
RAILS_ENV = "development";
buildPhase = ''
# Support Mastodon forks which don't call themselves 'mastodon' or which
# omit the organization name from package.json.
if [ "$(ls ${mastodon-js-modules}/libexec/* | grep node_modules)" ]; then
cp -r ${mastodon-js-modules}/libexec/*/node_modules node_modules
else
cp -r ${mastodon-js-modules}/libexec/*/*/node_modules node_modules
fi
chmod -R u+w node_modules
rake webpacker:compile
'';
installPhase = ''
mkdir -p $out/public
cp -r public/assets $out/public
cp -r public/packs $out/public
'';
};
passthru.updateScript = callPackage ./update.nix {};
buildPhase = ''
if [ "$(ls ${mastodon-js-modules}/libexec/* | grep node_modules)" ]; then
ln -s ${mastodon-js-modules}/libexec/*/node_modules node_modules
else
ln -s ${mastodon-js-modules}/libexec/*/*/node_modules node_modules
fi
ln -s ${mastodon-assets}/public/assets public/assets
ln -s ${mastodon-assets}/public/packs public/packs
patchShebangs bin/
for b in $(ls ${mastodon-gems}/bin/)
do
if [ ! -f bin/$b ]; then
ln -s ${mastodon-gems}/bin/$b bin/$b
fi
done
rm -rf log
ln -s /var/log/mastodon log
ln -s /tmp tmp
'';
propagatedBuildInputs = [ imagemagick ffmpeg file mastodon-gems.wrappedRuby ];
installPhase = ''
mkdir -p $out
cp -r * $out/
'';
meta = with lib; {
description = "Self-hosted, globally interconnected microblogging software based on ActivityPub";
homepage = "https://joinmastodon.org";
license = licenses.agpl3Plus;
platforms = [ "x86_64-linux" "i686-linux" ];
maintainers = with maintainers; [ petabyteboy happy-river erictapen ];
};
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,193 @@
{
"version": "3.3.0",
"name": "@tootsuite/mastodon",
"license": "AGPL-3.0-or-later",
"engines": {
"node": ">=10.13"
},
"scripts": {
"postversion": "git push --tags",
"build:development": "cross-env RAILS_ENV=development NODE_ENV=development ./bin/webpack",
"build:production": "cross-env RAILS_ENV=production NODE_ENV=production ./bin/webpack",
"manage:translations": "node ./config/webpack/translationRunner.js",
"start": "node ./streaming/index.js",
"test": "${npm_execpath} run test:lint:js && ${npm_execpath} run test:jest",
"test:lint": "${npm_execpath} run test:lint:js && ${npm_execpath} run test:lint:sass",
"test:lint:js": "eslint --ext=js . --cache",
"test:lint:sass": "sass-lint -v",
"test:jest": "cross-env NODE_ENV=test jest --coverage"
},
"repository": {
"type": "git",
"url": "https://github.com/tootsuite/mastodon.git"
},
"browserslist": [
"last 2 versions",
"IE >= 11",
"iOS >= 9",
"not dead"
],
"jest": {
"projects": [
"<rootDir>/app/javascript/mastodon"
],
"testPathIgnorePatterns": [
"<rootDir>/node_modules/",
"<rootDir>/vendor/",
"<rootDir>/config/",
"<rootDir>/log/",
"<rootDir>/public/",
"<rootDir>/tmp/"
],
"setupFiles": [
"raf/polyfill"
],
"setupFilesAfterEnv": [
"<rootDir>/app/javascript/mastodon/test_setup.js"
],
"collectCoverageFrom": [
"app/javascript/mastodon/**/*.js",
"!app/javascript/mastodon/features/emoji/emoji_compressed.js",
"!app/javascript/mastodon/locales/locale-data/*.js",
"!app/javascript/mastodon/service_worker/entry.js",
"!app/javascript/mastodon/test_setup.js"
],
"coverageDirectory": "<rootDir>/coverage",
"moduleDirectories": [
"<rootDir>/node_modules",
"<rootDir>/app/javascript"
]
},
"private": true,
"dependencies": {
"@babel/core": "^7.12.7",
"@babel/plugin-proposal-class-properties": "^7.8.3",
"@babel/plugin-proposal-decorators": "^7.12.1",
"@babel/plugin-transform-react-inline-elements": "^7.12.1",
"@babel/plugin-transform-runtime": "^7.12.1",
"@babel/preset-env": "^7.12.7",
"@babel/preset-react": "^7.12.7",
"@babel/runtime": "^7.12.5",
"@clusterws/cws": "^3.0.0",
"@gamestdio/websocket": "^0.3.2",
"@github/webauthn-json": "^0.5.7",
"@rails/ujs": "^6.0.3",
"array-includes": "^3.1.1",
"arrow-key-navigation": "^1.2.0",
"autoprefixer": "^9.8.6",
"axios": "^0.21.0",
"babel-loader": "^8.2.1",
"babel-plugin-lodash": "^3.3.4",
"babel-plugin-preval": "^5.0.0",
"babel-plugin-react-intl": "^6.2.0",
"babel-plugin-transform-react-remove-prop-types": "^0.4.24",
"babel-runtime": "^6.26.0",
"blurhash": "^1.1.3",
"classnames": "^2.2.5",
"color-blend": "^3.0.0",
"compression-webpack-plugin": "^6.1.1",
"cross-env": "^7.0.2",
"css-loader": "^5.0.1",
"cssnano": "^4.1.10",
"detect-passive-events": "^2.0.1",
"dotenv": "^8.2.0",
"emoji-mart": "Gargron/emoji-mart#build",
"es6-symbol": "^3.1.3",
"escape-html": "^1.0.3",
"exif-js": "^2.3.0",
"express": "^4.17.1",
"file-loader": "^6.2.0",
"font-awesome": "^4.7.0",
"glob": "^7.1.6",
"history": "^4.10.1",
"http-link-header": "^1.0.3",
"immutable": "^3.8.2",
"imports-loader": "^1.2.0",
"intersection-observer": "^0.11.0",
"intl": "^1.2.5",
"intl-messageformat": "^2.2.0",
"intl-relativeformat": "^6.4.3",
"is-nan": "^1.3.0",
"js-yaml": "^3.13.1",
"lodash": "^4.17.19",
"mark-loader": "^0.1.6",
"marky": "^1.2.1",
"mini-css-extract-plugin": "^1.3.1",
"mkdirp": "^1.0.4",
"npmlog": "^4.1.2",
"object-assign": "^4.1.1",
"object-fit-images": "^3.2.3",
"object.values": "^1.1.1",
"offline-plugin": "^5.0.7",
"path-complete-extname": "^1.0.0",
"pg": "^6.4.0",
"postcss-loader": "^3.0.0",
"postcss-object-fit-images": "^1.1.2",
"promise.prototype.finally": "^3.1.2",
"prop-types": "^15.5.10",
"punycode": "^2.1.0",
"react": "^16.14.0",
"react-dom": "^16.14.0",
"react-hotkeys": "^1.1.4",
"react-immutable-proptypes": "^2.2.0",
"react-immutable-pure-component": "^2.2.2",
"react-intl": "^2.9.0",
"react-masonry-infinite": "^1.2.2",
"react-motion": "^0.5.2",
"react-notification": "^6.8.5",
"react-overlays": "^0.9.2",
"react-redux": "^7.2.2",
"react-redux-loading-bar": "^4.0.8",
"react-router-dom": "^4.1.1",
"react-router-scroll-4": "^1.0.0-beta.1",
"react-select": "^3.1.0",
"react-sparklines": "^1.7.0",
"react-swipeable-views": "^0.13.9",
"react-textarea-autosize": "^8.3.0",
"react-toggle": "^4.1.1",
"redis": "^3.0.2",
"redux": "^4.0.5",
"redux-immutable": "^4.0.0",
"redux-thunk": "^2.2.0",
"regenerator-runtime": "^0.13.7",
"rellax": "^1.12.1",
"requestidlecallback": "^0.3.0",
"reselect": "^4.0.0",
"rimraf": "^3.0.2",
"sass": "^1.29.0",
"sass-loader": "^10.1.0",
"stacktrace-js": "^2.0.2",
"stringz": "^2.1.0",
"substring-trie": "^1.0.2",
"terser-webpack-plugin": "^4.2.3",
"tesseract.js": "^2.1.1",
"throng": "^4.0.0",
"tiny-queue": "^0.2.1",
"uuid": "^8.3.1",
"webpack": "^4.44.2",
"webpack-assets-manifest": "^3.1.1",
"webpack-bundle-analyzer": "^4.1.0",
"webpack-cli": "^3.3.12",
"webpack-merge": "^5.4.0",
"wicg-inert": "^3.1.0",
"kind-of": "^6.0.3"
},
"devDependencies": {
"@testing-library/jest-dom": "^5.11.6",
"@testing-library/react": "^11.2.2",
"babel-eslint": "^10.1.0",
"babel-jest": "^26.6.3",
"eslint": "^7.14.0",
"eslint-plugin-import": "~2.22.1",
"eslint-plugin-jsx-a11y": "~6.4.1",
"eslint-plugin-promise": "~4.2.1",
"eslint-plugin-react": "~7.21.5",
"jest": "^26.6.3",
"raf": "^3.4.1",
"react-intl-translations-manager": "^5.0.3",
"react-test-renderer": "^16.14.0",
"sass-lint": "^1.13.1",
"webpack-dev-server": "^3.11.0",
"yargs": "^16.1.1"
}
}

View File

@ -0,0 +1,67 @@
diff --git a/package.json b/package.json
index 7b8f49dd8..24cdd3498 100644
--- a/package.json
+++ b/package.json
@@ -168,7 +168,8 @@
"webpack-bundle-analyzer": "^4.1.0",
"webpack-cli": "^3.3.12",
"webpack-merge": "^5.4.0",
- "wicg-inert": "^3.1.0"
+ "wicg-inert": "^3.1.0",
+ "kind-of": "^6.0.3"
},
"devDependencies": {
"@testing-library/jest-dom": "^5.11.6",
@@ -187,8 +188,5 @@
"sass-lint": "^1.13.1",
"webpack-dev-server": "^3.11.0",
"yargs": "^16.1.1"
- },
- "resolutions": {
- "kind-of": "^6.0.3"
}
}
diff --git a/yarn.lock b/yarn.lock
index 4aa8f6380..68d2fd8b5 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -5689,6 +5689,11 @@ is-binary-path@~2.1.0:
dependencies:
binary-extensions "^2.0.0"
+is-buffer@^1.1.5:
+ version "1.1.6"
+ resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be"
+ integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==
+
is-callable@^1.1.4, is-callable@^1.2.2:
version "1.2.2"
resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.2.tgz#c7c6715cd22d4ddb48d3e19970223aceabb080d9"
@@ -6639,7 +6644,26 @@ killable@^1.0.1:
resolved "https://registry.yarnpkg.com/killable/-/killable-1.0.1.tgz#4c8ce441187a061c7474fb87ca08e2a638194892"
integrity sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg==
-kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0, kind-of@^4.0.0, kind-of@^5.0.0, kind-of@^6.0.0, kind-of@^6.0.2, kind-of@^6.0.3:
+kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0:
+ version "3.2.2"
+ resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64"
+ integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=
+ dependencies:
+ is-buffer "^1.1.5"
+
+kind-of@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57"
+ integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc=
+ dependencies:
+ is-buffer "^1.1.5"
+
+kind-of@^5.0.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d"
+ integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==
+
+kind-of@^6.0.0, kind-of@^6.0.2, kind-of@^6.0.3:
version "6.0.3"
resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd"
integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==

View File

@ -0,0 +1,11 @@
# This file was generated by pkgs.mastodon.updateScript.
{ fetchgit, applyPatches }: let
src = fetchgit {
url = "https://github.com/tootsuite/mastodon.git";
rev = "v3.3.0";
sha256 = "17wvggvy5mmyf3f1i5v1hgvh6wjdhg9hb3wiyfaydx0slsg03qba";
};
in applyPatches {
inherit src;
patches = [./resolutions.patch ./version.patch ];
}

View File

@ -0,0 +1,21 @@
{ pkgs, stdenv, lib, makeWrapper, yarn2nix, bundix, coreutils,
diffutils, nix-prefetch-github, gnused, jq }:
stdenv.mkDerivation rec {
name = "mastodon-update-script";
installPhase = ''
mkdir -p $out/bin
cp ${./update.sh} $out/bin/update.sh
patchShebangs $out/bin/update.sh
wrapProgram $out/bin/update.sh --prefix PATH : ${lib.makeBinPath buildInputs}
'';
phases = [ "installPhase" ];
nativeBuildInputs = [ makeWrapper ];
buildInputs = [ yarn2nix bundix coreutils diffutils nix-prefetch-github gnused jq ];
meta = {
maintainers = with lib.maintainers; [ happy-river ];
description = "Utility to generate Nix expressions for Mastodon's dependencies";
platforms = lib.platforms.unix;
};
}

121
pkgs/servers/mastodon/update.sh Executable file
View File

@ -0,0 +1,121 @@
#!/usr/bin/env bash
set -e
URL=https://github.com/tootsuite/mastodon.git
POSITIONAL=()
while [[ $# -gt 0 ]]; do
key="$1"
case $key in
--url)
URL="$2"
shift # past argument
shift # past value
;;
--ver)
VERSION="$2"
shift # past argument
shift # past value
;;
--rev)
REVISION="$2"
shift # past argument
shift # past value
;;
--patches)
PATCHES="$2"
shift # past argument
shift # past value
;;
*) # unknown option
POSITIONAL+=("$1")
shift # past argument
;;
esac
done
if [[ -z "$VERSION" || -n "$POSITIONAL" ]]; then
echo "Usage: update.sh [--url URL] --ver VERSION [--rev REVISION] [--patches PATCHES]"
echo "URL may be any path acceptable to 'git clone' and VERSION the"
echo "semantic version number. If VERSION is not a revision acceptable to"
echo "'git checkout', you must provide one in REVISION. If URL is not"
echo "provided, it defaults to https://github.com/tootsuite/mastodon.git."
echo "PATCHES, if provided, should be one or more Nix expressions"
echo "separated by spaces."
exit 1
fi
if [[ -z "$REVISION" ]]; then
REVISION="$VERSION"
fi
rm -f gemset.nix yarn.nix version.nix version.patch source.nix package.json
TARGET_DIR="$PWD"
WORK_DIR=$(mktemp -d)
# Check that working directory was created.
if [[ ! "$WORK_DIR" || ! -d "$WORK_DIR" ]]; then
echo "Could not create temporary directory"
exit 1
fi
# Delete the working directory on exit.
function cleanup {
# Report errors, if any, from nix-prefetch-git
grep "fatal" $WORK_DIR/nix-prefetch-git.out >/dev/stderr || true
rm -rf "$WORK_DIR"
}
trap cleanup EXIT
echo "Fetching source code $REVISION from $URL"
JSON=$(nix-prefetch-git --url "$URL" --rev "$REVISION" 2> $WORK_DIR/nix-prefetch-git.out)
SHA=$(echo $JSON | jq -r .sha256)
FETCHED_SOURCE_DIR=$(grep '^path is' $WORK_DIR/nix-prefetch-git.out | sed 's/^path is //')
echo "Creating version.nix"
echo \"$VERSION\" | sed 's/^"v/"/' > version.nix
echo "Creating source.nix"
# yarn2nix and mkYarnPackage want the version to be present in
# package.json. Mastodon itself does not include the version in
# package.json but at least one fork (Soapbox) does.
if [ $(jq .version $FETCHED_SOURCE_DIR/package.json) == "null" ]; then
mkdir $WORK_DIR/a $WORK_DIR/b
cp $FETCHED_SOURCE_DIR/package.json $WORK_DIR/a
cd $WORK_DIR
jq "{version:$(cat $TARGET_DIR/version.nix)} + ." a/package.json > b/package.json
diff -Naur --label a/package.json --label b/package.json a b > $TARGET_DIR/version.patch || true
rm -rf a b tmp
cd $TARGET_DIR
PATCHES="$PATCHES ./version.patch "
fi
cat > source.nix << EOF
# This file was generated by pkgs.mastodon.updateScript.
{ fetchgit, applyPatches }: let
src = fetchgit {
url = "$URL";
rev = "$REVISION";
sha256 = "$SHA";
};
in applyPatches {
inherit src;
patches = [$PATCHES];
}
EOF
SOURCE_DIR="$(nix-build --no-out-link -E '(import <nixpkgs> {}).callPackage ./source.nix {}')"
echo "Creating gemset.nix"
bundix --lockfile="$SOURCE_DIR/Gemfile.lock" --gemfile="$SOURCE_DIR/Gemfile"
echo "" >> $TARGET_DIR/gemset.nix # Create trailing newline to please EditorConfig checks
echo "Creating yarn.nix"
cp -r $SOURCE_DIR/* $WORK_DIR
chmod -R u+w $WORK_DIR
cd $WORK_DIR
yarn2nix > $TARGET_DIR/yarn.nix
sed "s/https___.*_//g" -i $TARGET_DIR/yarn.nix
cp $WORK_DIR/package.json $TARGET_DIR

View File

@ -0,0 +1 @@
"3.3.0"

View File

@ -0,0 +1,9 @@
diff -Naur --label a/package.json --label b/package.json a/package.json b/package.json
--- a/package.json
+++ b/package.json
@@ -1,4 +1,5 @@
{
+ "version": "3.3.0",
"name": "@tootsuite/mastodon",
"license": "AGPL-3.0-or-later",
"engines": {

12181
pkgs/servers/mastodon/yarn.nix Normal file

File diff suppressed because it is too large Load Diff

View File

@ -15,7 +15,7 @@
# Services
, yajl
# Client support
, mpd_clientlib
, libmpdclient
# Tag support
, libid3tag
, nixosTests
@ -70,7 +70,7 @@ let
soundcloud = [ curl yajl ];
tidal = [ curl yajl ];
# Client support
libmpdclient = [ mpd_clientlib ];
libmpdclient = [ libmpdclient ];
# Tag support
id3tag = [ libid3tag ];
# Misc

View File

@ -2,21 +2,20 @@
buildGoModule rec {
pname = "tailscale";
version = "1.4.2";
tagHash = "f40ccb086c4c3f09b3cc67b7c559bd2c5d3cf953"; # from `git rev-parse v1.4.2`
version = "1.4.4";
src = fetchFromGitHub {
owner = "tailscale";
repo = "tailscale";
rev = "v${version}";
sha256 = "0jc7z6ml59a1xs3c3mskj9s34gw7hmixn8dbz3bi81qv0yi9pvnx";
sha256 = "sha256-zrKkBbsvIqJkPysKx3nJ3EIbePWMZCX9eegekAoqMqk=";
};
nativeBuildInputs = [ makeWrapper ];
CGO_ENABLED = 0;
vendorSha256 = "16aa7jc2h59hnnh0mfmnd0k198dijm9j4c44j80wpzlhf4x27yjs";
vendorSha256 = "sha256-WvojOnGQ/ssBkoQwIlOVsaEUJmi2ugqgtTAVKJg8Spk=";
doCheck = false;
@ -25,7 +24,7 @@ buildGoModule rec {
preBuild = ''
export buildFlagsArray=(
-tags="xversion"
-ldflags="-X tailscale.com/version.Long=${version} -X tailscale.com/version.Short=${version} -X tailscale.com/version.GitCommit=${tagHash}"
-ldflags="-X tailscale.com/version.Long=${version} -X tailscale.com/version.Short=${version}"
)
'';

View File

@ -1,4 +1,10 @@
{ lib, stdenv, fetchFromGitHub, pkg-config, mpd_clientlib, curl }:
{ lib
, stdenv
, fetchFromGitHub
, pkg-config
, libmpdclient
, curl
}:
stdenv.mkDerivation rec {
pname = "mpdas";
@ -13,7 +19,7 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ pkg-config ];
buildInputs = [ mpd_clientlib curl ];
buildInputs = [ libmpdclient curl ];
makeFlags = [ "CONFIG=/etc" "DESTDIR=" "PREFIX=$(out)" ];

View File

@ -1,5 +1,19 @@
{ lib, stdenv, fetchFromGitHub, autoconf, automake, libtool, pkg-config, glib, libdaemon
, mpd_clientlib, curl, sqlite, bundlerEnv, libnotify, pandoc }:
{ lib
, stdenv
, fetchFromGitHub
, autoconf
, automake
, libtool
, pkg-config
, glib
, libdaemon
, libmpdclient
, curl
, sqlite
, bundlerEnv
, libnotify
, pandoc
}:
let
gemEnv = bundlerEnv {
@ -7,8 +21,8 @@ let
gemdir = ./.;
};
in stdenv.mkDerivation {
version = "20161228";
pname = "mpdcron";
version = "20161228";
src = fetchFromGitHub {
owner = "alip";
@ -17,21 +31,33 @@ in stdenv.mkDerivation {
sha256 = "0vdksf6lcgmizqr5mqp0bbci259k0dj7gpmhx32md41jlmw5skaw";
};
meta = with lib; {
description = "A cron like daemon for mpd";
homepage = "http://alip.github.io/mpdcron/";
license = licenses.gpl2;
platforms = platforms.unix;
maintainers = with maintainers; [ lovek323 manveru ];
};
buildInputs =
[ autoconf automake libtool pkg-config glib libdaemon pandoc
mpd_clientlib curl sqlite gemEnv.wrappedRuby libnotify ];
buildInputs = [
autoconf
automake
libtool
pkg-config
glib
libdaemon
pandoc
libmpdclient
curl
sqlite
gemEnv.wrappedRuby
libnotify
];
preConfigure = ''
./autogen.sh
'';
configureFlags = [ "--enable-gmodule" "--with-standard-modules=all" ];
meta = with lib; {
description = "A cron like daemon for mpd";
homepage = "http://alip.github.io/mpdcron/";
license = licenses.gpl2Plus;
platforms = platforms.unix;
maintainers = with maintainers; [ lovek323 manveru ];
};
}
# TODO: autoreconfHook this

View File

@ -1,22 +1,38 @@
{ lib, stdenv, fetchurl, meson, ninja, pkg-config, boost, libgcrypt, systemd, mpd_clientlib, curl }:
{ lib
, stdenv
, fetchurl
, pkg-config
, meson
, ninja
, boost
, curl
, libgcrypt
, libmpdclient
, systemd
}:
stdenv.mkDerivation rec {
pname = "mpdscribble";
version = "0.23";
src = fetchurl {
url =
"https://www.musicpd.org/download/mpdscribble/${version}/mpdscribble-${version}.tar.xz";
url = "https://www.musicpd.org/download/mpdscribble/${version}/mpdscribble-${version}.tar.xz";
sha256 = "0s66zqscb44p88cl3kcv5jkjcqsskcnrv7xgrjhzrchf2kcpwf53";
};
nativeBuildInputs = [ meson ninja pkg-config ];
buildInputs = [ mpd_clientlib curl boost libgcrypt systemd ];
nativeBuildInputs = [ pkg-config meson ninja ];
buildInputs = [
libmpdclient
curl
boost
libgcrypt
systemd
];
meta = with lib; {
description = "A Music Player Daemon (MPD) client which submits information about tracks being played to a scrobbler (e.g. last.fm)";
description = "A MPD client which submits info about tracks being played to a scrobbler";
homepage = "https://www.musicpd.org/clients/mpdscribble/";
license = licenses.gpl2;
license = licenses.gpl2Plus;
maintainers = [ maintainers.sohalt ];
platforms = platforms.linux;
};

View File

@ -2,21 +2,21 @@
rustPlatform.buildRustPackage rec {
pname = "emplace";
version = "0.4.4";
version = "1.0.0";
src = fetchFromGitHub {
owner = "tversteeg";
repo = pname;
rev = "v${version}";
sha256 = "sha256-OKKAYZz2ytiuc/U4fOZepBDvupzQdWC0Wk3wDi+Ih6w=";
sha256 = "sha256-dDFc13IVD4f5UgiHXAcqRKoZEPTn/iBOogT3XfdstK0=";
};
cargoSha256 = "sha256-jEplQ/r/XPvLIQrQAiR1Fde5yfE98UuqDazPcEgvo+w=";
cargoSha256 = "sha256-QsYOR7tk5cRCF0+xkpJ/F+Z3pjBPxTDFvA1gEi82AOQ=";
meta = with lib; {
description = "Mirror installed software on multiple machines";
homepage = "https://github.com/tversteeg/emplace";
license = licenses.agpl3;
license = licenses.agpl3Plus;
maintainers = with maintainers; [ Br1ght0ne ];
};
}

View File

@ -389,6 +389,7 @@ mapAliases ({
mono-zeroconf = throw "mono-zeroconf was deprecated on 2019-09-20: abandoned by upstream.";
mozart = mozart2-binary; # added 2019-09-23
mozart-binary = mozart2-binary; # added 2019-09-23
mpd_clientlib = libmpdclient; # added 2021-02-11
mpich2 = mpich; # added 2018-08-06
msf = metasploit; # added 2018-04-25
libmsgpack = msgpack; # added 2018-08-17

View File

@ -10840,7 +10840,10 @@ in
inherit (darwin.apple_sdk.frameworks) Security;
};
maturin = callPackage ../development/tools/rust/maturin { };
maturin = callPackage ../development/tools/rust/maturin {
inherit (darwin.apple_sdk.frameworks) Security;
};
inherit (rustPackages) rls;
rustfmt = rustPackages.rustfmt;
rustracer = callPackage ../development/tools/rust/racer {
@ -17892,6 +17895,8 @@ in
mailman-web = with python3.pkgs; toPythonApplication mailman-web;
mastodon = callPackage ../servers/mastodon { };
mattermost = callPackage ../servers/mattermost { };
matterircd = callPackage ../servers/mattermost/matterircd.nix { };
matterbridge = callPackage ../servers/matterbridge { };
@ -17929,7 +17934,6 @@ in
inherit (callPackages ../servers/mpd { })
mpd mpd-small mpdWithFeatures;
mpd_clientlib = libmpdclient;
libmpdclient = callPackage ../servers/mpd/libmpdclient.nix { };
mpdscribble = callPackage ../tools/misc/mpdscribble { };