Merge branch 'master' of https://github.com/NixOS/nixpkgs
This commit is contained in:
commit
81f0af0274
6
.gitignore
vendored
6
.gitignore
vendored
@ -10,4 +10,8 @@ result-*
|
|||||||
/doc/manual.pdf
|
/doc/manual.pdf
|
||||||
.version-suffix
|
.version-suffix
|
||||||
|
|
||||||
.DS_Store
|
.DS_Store
|
||||||
|
|
||||||
|
/pkgs/applications/kde-apps-*/tmp/
|
||||||
|
/pkgs/development/libraries/kde-frameworks-*/tmp/
|
||||||
|
/pkgs/desktops/plasma-*/tmp/
|
@ -12,6 +12,7 @@
|
|||||||
<xi:include href="introduction.xml" />
|
<xi:include href="introduction.xml" />
|
||||||
<xi:include href="quick-start.xml" />
|
<xi:include href="quick-start.xml" />
|
||||||
<xi:include href="stdenv.xml" />
|
<xi:include href="stdenv.xml" />
|
||||||
|
<xi:include href="packageconfig.xml" />
|
||||||
<xi:include href="meta.xml" />
|
<xi:include href="meta.xml" />
|
||||||
<xi:include href="language-support.xml" />
|
<xi:include href="language-support.xml" />
|
||||||
<xi:include href="package-notes.xml" />
|
<xi:include href="package-notes.xml" />
|
||||||
|
85
doc/packageconfig.xml
Normal file
85
doc/packageconfig.xml
Normal file
@ -0,0 +1,85 @@
|
|||||||
|
<chapter xmlns="http://docbook.org/ns/docbook"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
xml:id="chap-packageconfig">
|
||||||
|
|
||||||
|
<title>nixpkgs global configuration</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Nix packages can be configured to allow or deny certain
|
||||||
|
options.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
To apply the configuration edit <filename>~/.nixpkgs/config.nix</filename>
|
||||||
|
and set it like
|
||||||
|
<programlisting>
|
||||||
|
{
|
||||||
|
allowUnfree = true;
|
||||||
|
}
|
||||||
|
</programlisting>
|
||||||
|
and will allow the Nix package manager to install unfree licensed packages.
|
||||||
|
|
||||||
|
The configuration as listed also applies to NixOS under <option>nixpkgs.config</option> set.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<itemizedlist>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Allow installing of packages that are distributed under unfree license by setting
|
||||||
|
<programlisting>
|
||||||
|
allowUnfree = true;
|
||||||
|
</programlisting>
|
||||||
|
or deny them by setting it to <literal>false</literal>.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
Same can be achieved by setting the environment variable:
|
||||||
|
<programlisting>
|
||||||
|
export NIXPKGS_ALLOW_UNFREE=1
|
||||||
|
</programlisting>
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Whenever unfree packages are not allowed, single packages can
|
||||||
|
still be allowed by a predicate function that accepts package
|
||||||
|
as an argument and should return a boolean:
|
||||||
|
<programlisting>
|
||||||
|
allowUnfreePredicate = (pkg: ...);
|
||||||
|
</programlisting>
|
||||||
|
|
||||||
|
Example to allow flash player only:
|
||||||
|
<programlisting>
|
||||||
|
allowUnfreePredicate = (pkg: pkgs.lib.hasPrefix "flashplayer-" pkg.name);
|
||||||
|
</programlisting>
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Whenever unfree packages are not allowed, packages can still be
|
||||||
|
whitelisted by their license:
|
||||||
|
<programlisting>
|
||||||
|
whitelistedLicenses = with stdenv.lib.licenses; [ amd wtfpl ];
|
||||||
|
</programlisting>
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
In addition to whitelisting licenses which are denied by the
|
||||||
|
<literal>allowUnfree</literal> setting, you can also explicitely
|
||||||
|
deny installation of packages which have a certain license:
|
||||||
|
<programlisting>
|
||||||
|
blacklistedLicenses = with stdenv.lib.licenses; [ agpl3 gpl3 ];
|
||||||
|
</programlisting>
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</itemizedlist>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
A complete list of licenses can be found in the file
|
||||||
|
<filename>lib/licenses.nix</filename> of the nix package tree.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
</chapter>
|
@ -130,6 +130,11 @@ lib.mapAttrs (n: v: v // { shortName = n; }) rec {
|
|||||||
fullName = "Eclipse Public License 1.0";
|
fullName = "Eclipse Public License 1.0";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
fdl12 = spdx {
|
||||||
|
spdxId = "GFDL-1.2";
|
||||||
|
fullName = "GNU Free Documentation License v1.2";
|
||||||
|
};
|
||||||
|
|
||||||
free = {
|
free = {
|
||||||
fullName = "Unspecified free software license";
|
fullName = "Unspecified free software license";
|
||||||
};
|
};
|
||||||
|
@ -106,6 +106,7 @@
|
|||||||
ludo = "Ludovic Courtès <ludo@gnu.org>";
|
ludo = "Ludovic Courtès <ludo@gnu.org>";
|
||||||
madjar = "Georges Dubus <georges.dubus@compiletoi.net>";
|
madjar = "Georges Dubus <georges.dubus@compiletoi.net>";
|
||||||
magnetophon = "Bart Brouns <bart@magnetophon.nl>";
|
magnetophon = "Bart Brouns <bart@magnetophon.nl>";
|
||||||
|
malyn = "Michael Alyn Miller <malyn@strangeGizmo.com>";
|
||||||
manveru = "Michael Fellinger <m.fellinger@gmail.com>";
|
manveru = "Michael Fellinger <m.fellinger@gmail.com>";
|
||||||
marcweber = "Marc Weber <marco-oweber@gmx.de>";
|
marcweber = "Marc Weber <marco-oweber@gmx.de>";
|
||||||
matejc = "Matej Cotman <cotman.matej@gmail.com>";
|
matejc = "Matej Cotman <cotman.matej@gmail.com>";
|
||||||
@ -132,6 +133,7 @@
|
|||||||
phreedom = "Evgeny Egorochkin <phreedom@yandex.ru>";
|
phreedom = "Evgeny Egorochkin <phreedom@yandex.ru>";
|
||||||
pierron = "Nicolas B. Pierron <nixos@nbp.name>";
|
pierron = "Nicolas B. Pierron <nixos@nbp.name>";
|
||||||
piotr = "Piotr Pietraszkiewicz <ppietrasa@gmail.com>";
|
piotr = "Piotr Pietraszkiewicz <ppietrasa@gmail.com>";
|
||||||
|
pjones = "Peter Jones <pjones@devalot.com>";
|
||||||
pkmx = "Chih-Mao Chen <pkmx.tw@gmail.com>";
|
pkmx = "Chih-Mao Chen <pkmx.tw@gmail.com>";
|
||||||
plcplc = "Philip Lykke Carlsen <plcplc@gmail.com>";
|
plcplc = "Philip Lykke Carlsen <plcplc@gmail.com>";
|
||||||
prikhi = "Pavan Rikhi <pavan.rikhi@gmail.com>";
|
prikhi = "Pavan Rikhi <pavan.rikhi@gmail.com>";
|
||||||
|
@ -32,6 +32,7 @@
|
|||||||
<xi:include href="configuration/configuration.xml" />
|
<xi:include href="configuration/configuration.xml" />
|
||||||
<xi:include href="administration/running.xml" />
|
<xi:include href="administration/running.xml" />
|
||||||
<!-- <xi:include href="userconfiguration.xml" /> -->
|
<!-- <xi:include href="userconfiguration.xml" /> -->
|
||||||
|
<xi:include href="development/development.xml" />
|
||||||
<xi:include href="release-notes/release-notes.xml" />
|
<xi:include href="release-notes/release-notes.xml" />
|
||||||
|
|
||||||
<appendix xml:id="ch-options">
|
<appendix xml:id="ch-options">
|
||||||
|
@ -148,9 +148,9 @@ if [ -n "$buildNix" ]; then
|
|||||||
if ! nix-build '<nixpkgs>' -A nix -o $tmpDir/nix "${extraBuildFlags[@]}" > /dev/null; then
|
if ! nix-build '<nixpkgs>' -A nix -o $tmpDir/nix "${extraBuildFlags[@]}" > /dev/null; then
|
||||||
machine="$(uname -m)"
|
machine="$(uname -m)"
|
||||||
if [ "$machine" = x86_64 ]; then
|
if [ "$machine" = x86_64 ]; then
|
||||||
nixStorePath=/nix/store/d34q3q2zj9nriq4ifhn3dnnngqvinjb3-nix-1.7
|
nixStorePath=/nix/store/ffig6yaggbh12dh9y5pnf1grf5lqyipz-nix-1.8
|
||||||
elif [[ "$machine" =~ i.86 ]]; then
|
elif [[ "$machine" =~ i.86 ]]; then
|
||||||
nixStorePath=/nix/store/qlah0darpcn6sf3lr2226rl04l1gn4xz-nix-1.7
|
nixStorePath=/nix/store/lglhfp4mimfa5wzjjf1kqz6f5wlsj2mn-nix-1.8
|
||||||
else
|
else
|
||||||
echo "$0: unsupported platform"
|
echo "$0: unsupported platform"
|
||||||
exit 1
|
exit 1
|
||||||
|
1
nixos/modules/module-list.nix
Executable file → Normal file
1
nixos/modules/module-list.nix
Executable file → Normal file
@ -149,6 +149,7 @@
|
|||||||
./services/hardware/pommed.nix
|
./services/hardware/pommed.nix
|
||||||
./services/hardware/sane.nix
|
./services/hardware/sane.nix
|
||||||
./services/hardware/tcsd.nix
|
./services/hardware/tcsd.nix
|
||||||
|
./services/hardware/tlp.nix
|
||||||
./services/hardware/thinkfan.nix
|
./services/hardware/thinkfan.nix
|
||||||
./services/hardware/udev.nix
|
./services/hardware/udev.nix
|
||||||
./services/hardware/udisks2.nix
|
./services/hardware/udisks2.nix
|
||||||
|
@ -46,12 +46,14 @@ in
|
|||||||
PERL5LIB = [ "/lib/perl5/site_perl" ];
|
PERL5LIB = [ "/lib/perl5/site_perl" ];
|
||||||
KDEDIRS = [ "" ];
|
KDEDIRS = [ "" ];
|
||||||
STRIGI_PLUGIN_PATH = [ "/lib/strigi/" ];
|
STRIGI_PLUGIN_PATH = [ "/lib/strigi/" ];
|
||||||
QT_PLUGIN_PATH = [ "/lib/qt4/plugins" "/lib/kde4/plugins" ];
|
QT_PLUGIN_PATH = [ "/lib/qt4/plugins" "/lib/kde4/plugins" "/lib/qt5/plugins" ];
|
||||||
|
QML2_IMPORT_PATH = [ "/lib/qml" ];
|
||||||
QTWEBKIT_PLUGIN_PATH = [ "/lib/mozilla/plugins/" ];
|
QTWEBKIT_PLUGIN_PATH = [ "/lib/mozilla/plugins/" ];
|
||||||
GTK_PATH = [ "/lib/gtk-2.0" "/lib/gtk-3.0" ];
|
GTK_PATH = [ "/lib/gtk-2.0" "/lib/gtk-3.0" ];
|
||||||
XDG_CONFIG_DIRS = [ "/etc/xdg" ];
|
XDG_CONFIG_DIRS = [ "/etc/xdg" ];
|
||||||
XDG_DATA_DIRS = [ "/share" ];
|
XDG_DATA_DIRS = [ "/share" ];
|
||||||
MOZ_PLUGIN_PATH = [ "/lib/mozilla/plugins" ];
|
MOZ_PLUGIN_PATH = [ "/lib/mozilla/plugins" ];
|
||||||
|
LIBEXEC_PATH = [ "/lib/libexec" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
environment.extraInit =
|
environment.extraInit =
|
||||||
|
@ -31,6 +31,15 @@ in {
|
|||||||
<literal>guest</literal> by default, so you should delete
|
<literal>guest</literal> by default, so you should delete
|
||||||
this user if you intend to allow external access.
|
this user if you intend to allow external access.
|
||||||
'';
|
'';
|
||||||
|
type = types.str;
|
||||||
|
};
|
||||||
|
|
||||||
|
port = mkOption {
|
||||||
|
default = 5672;
|
||||||
|
description = ''
|
||||||
|
Port on which RabbitMQ will listen for AMQP connections.
|
||||||
|
'';
|
||||||
|
type = types.int;
|
||||||
};
|
};
|
||||||
|
|
||||||
dataDir = mkOption {
|
dataDir = mkOption {
|
||||||
@ -77,6 +86,7 @@ in {
|
|||||||
users.extraUsers.rabbitmq = {
|
users.extraUsers.rabbitmq = {
|
||||||
description = "RabbitMQ server user";
|
description = "RabbitMQ server user";
|
||||||
home = "${cfg.dataDir}";
|
home = "${cfg.dataDir}";
|
||||||
|
createHome = true;
|
||||||
group = "rabbitmq";
|
group = "rabbitmq";
|
||||||
uid = config.ids.uids.rabbitmq;
|
uid = config.ids.uids.rabbitmq;
|
||||||
};
|
};
|
||||||
@ -87,14 +97,16 @@ in {
|
|||||||
description = "RabbitMQ Server";
|
description = "RabbitMQ Server";
|
||||||
|
|
||||||
wantedBy = [ "multi-user.target" ];
|
wantedBy = [ "multi-user.target" ];
|
||||||
after = [ "network-interfaces.target" ];
|
after = [ "network.target" ];
|
||||||
|
|
||||||
path = [ pkgs.rabbitmq_server ];
|
path = [ pkgs.rabbitmq_server pkgs.procps ];
|
||||||
|
|
||||||
environment = {
|
environment = {
|
||||||
RABBITMQ_MNESIA_BASE = "${cfg.dataDir}/mnesia";
|
RABBITMQ_MNESIA_BASE = "${cfg.dataDir}/mnesia";
|
||||||
RABBITMQ_NODE_IP_ADDRESS = cfg.listenAddress;
|
RABBITMQ_NODE_IP_ADDRESS = cfg.listenAddress;
|
||||||
|
RABBITMQ_NODE_PORT = toString cfg.port;
|
||||||
RABBITMQ_SERVER_START_ARGS = "-rabbit error_logger tty -rabbit sasl_error_logger false";
|
RABBITMQ_SERVER_START_ARGS = "-rabbit error_logger tty -rabbit sasl_error_logger false";
|
||||||
|
RABBITMQ_PID_FILE = "${cfg.dataDir}/pid";
|
||||||
SYS_PREFIX = "";
|
SYS_PREFIX = "";
|
||||||
RABBITMQ_ENABLED_PLUGINS_FILE = pkgs.writeText "enabled_plugins" ''
|
RABBITMQ_ENABLED_PLUGINS_FILE = pkgs.writeText "enabled_plugins" ''
|
||||||
[ ${concatStringsSep "," cfg.plugins} ].
|
[ ${concatStringsSep "," cfg.plugins} ].
|
||||||
@ -103,26 +115,22 @@ in {
|
|||||||
|
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
ExecStart = "${pkgs.rabbitmq_server}/sbin/rabbitmq-server";
|
ExecStart = "${pkgs.rabbitmq_server}/sbin/rabbitmq-server";
|
||||||
|
ExecStop = "${pkgs.rabbitmq_server}/sbin/rabbitmqctl stop";
|
||||||
User = "rabbitmq";
|
User = "rabbitmq";
|
||||||
Group = "rabbitmq";
|
Group = "rabbitmq";
|
||||||
PermissionsStartOnly = true;
|
WorkingDirectory = cfg.dataDir;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
postStart = ''
|
||||||
|
rabbitmqctl wait ${cfg.dataDir}/pid
|
||||||
|
'';
|
||||||
|
|
||||||
preStart = ''
|
preStart = ''
|
||||||
mkdir -p ${cfg.dataDir} && chmod 0700 ${cfg.dataDir}
|
|
||||||
if [ "$(id -u)" = 0 ]; then chown rabbitmq:rabbitmq ${cfg.dataDir}; fi
|
|
||||||
|
|
||||||
${optionalString (cfg.cookie != "") ''
|
${optionalString (cfg.cookie != "") ''
|
||||||
echo -n ${cfg.cookie} > ${cfg.dataDir}/.erlang.cookie
|
echo -n ${cfg.cookie} > ${cfg.dataDir}/.erlang.cookie
|
||||||
chmod 400 ${cfg.dataDir}/.erlang.cookie
|
chmod 400 ${cfg.dataDir}/.erlang.cookie
|
||||||
chown rabbitmq:rabbitmq ${cfg.dataDir}/.erlang.cookie
|
|
||||||
''}
|
''}
|
||||||
|
|
||||||
mkdir -p /var/log/rabbitmq && chmod 0700 /var/log/rabbitmq
|
|
||||||
chown rabbitmq:rabbitmq /var/log/rabbitmq
|
|
||||||
'';
|
'';
|
||||||
|
|
||||||
postStart = mkBefore "until rabbitmqctl status; do sleep 1; done";
|
|
||||||
};
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
|
@ -20,23 +20,49 @@ in
|
|||||||
services.openldap = {
|
services.openldap = {
|
||||||
|
|
||||||
enable = mkOption {
|
enable = mkOption {
|
||||||
|
type = types.bool;
|
||||||
default = false;
|
default = false;
|
||||||
description = "
|
description = "
|
||||||
Whether to enable the ldap server.
|
Whether to enable the ldap server.
|
||||||
";
|
";
|
||||||
|
example = literalExample ''
|
||||||
|
openldap.enable = true;
|
||||||
|
openldap.extraConfig = '''
|
||||||
|
include ''${pkgs.openldap}/etc/openldap/schema/core.schema
|
||||||
|
include ''${pkgs.openldap}/etc/openldap/schema/cosine.schema
|
||||||
|
include ''${pkgs.openldap}/etc/openldap/schema/inetorgperson.schema
|
||||||
|
include ''${pkgs.openldap}/etc/openldap/schema/nis.schema
|
||||||
|
|
||||||
|
database bdb
|
||||||
|
suffix dc=example,dc=org
|
||||||
|
rootdn cn=admin,dc=example,dc=org
|
||||||
|
# NOTE: change after first start
|
||||||
|
rootpw secret
|
||||||
|
directory /var/db/openldap
|
||||||
|
''';
|
||||||
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
user = mkOption {
|
user = mkOption {
|
||||||
|
type = types.string;
|
||||||
default = "openldap";
|
default = "openldap";
|
||||||
description = "User account under which slapd runs.";
|
description = "User account under which slapd runs.";
|
||||||
};
|
};
|
||||||
|
|
||||||
group = mkOption {
|
group = mkOption {
|
||||||
|
type = types.string;
|
||||||
default = "openldap";
|
default = "openldap";
|
||||||
description = "Group account under which slapd runs.";
|
description = "Group account under which slapd runs.";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
dataDir = mkOption {
|
||||||
|
type = types.string;
|
||||||
|
default = "/var/db/openldap";
|
||||||
|
description = "The database directory.";
|
||||||
|
};
|
||||||
|
|
||||||
extraConfig = mkOption {
|
extraConfig = mkOption {
|
||||||
|
type = types.lines;
|
||||||
default = "";
|
default = "";
|
||||||
description = "
|
description = "
|
||||||
sldapd.conf configuration
|
sldapd.conf configuration
|
||||||
@ -60,22 +86,22 @@ in
|
|||||||
preStart = ''
|
preStart = ''
|
||||||
mkdir -p /var/run/slapd
|
mkdir -p /var/run/slapd
|
||||||
chown -R ${cfg.user}:${cfg.group} /var/run/slapd
|
chown -R ${cfg.user}:${cfg.group} /var/run/slapd
|
||||||
mkdir -p /var/db/openldap
|
mkdir -p ${cfg.dataDir}
|
||||||
chown -R ${cfg.user}:${cfg.group} /var/db/openldap
|
chown -R ${cfg.user}:${cfg.group} ${cfg.dataDir}
|
||||||
'';
|
'';
|
||||||
serviceConfig.ExecStart = "${openldap}/libexec/slapd -u openldap -g openldap -d 0 -f ${configFile}";
|
serviceConfig.ExecStart = "${openldap}/libexec/slapd -u ${cfg.user} -g ${cfg.group} -d 0 -f ${configFile}";
|
||||||
};
|
};
|
||||||
|
|
||||||
users.extraUsers = optionalAttrs (cfg.user == "openldap") (singleton
|
users.extraUsers.openldap =
|
||||||
{ name = "openldap";
|
{ name = cfg.user;
|
||||||
group = cfg.group;
|
group = cfg.group;
|
||||||
uid = config.ids.uids.openldap;
|
uid = config.ids.uids.openldap;
|
||||||
});
|
};
|
||||||
|
|
||||||
users.extraGroups = optionalAttrs (cfg.group == "openldap") (singleton
|
users.extraGroups.openldap =
|
||||||
{ name = "openldap";
|
{ name = cfg.group;
|
||||||
gid = config.ids.gids.openldap;
|
gid = config.ids.gids.openldap;
|
||||||
});
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
93
nixos/modules/services/hardware/tlp.nix
Normal file
93
nixos/modules/services/hardware/tlp.nix
Normal file
@ -0,0 +1,93 @@
|
|||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let
|
||||||
|
|
||||||
|
cfg = config.services.tlp;
|
||||||
|
|
||||||
|
tlp = pkgs.tlp.override { kmod = config.system.sbin.modprobe; };
|
||||||
|
|
||||||
|
confFile = pkgs.writeText "tlp" (builtins.readFile "${tlp}/etc/default/tlp" + cfg.extraConfig);
|
||||||
|
|
||||||
|
in
|
||||||
|
|
||||||
|
{
|
||||||
|
|
||||||
|
###### interface
|
||||||
|
|
||||||
|
options = {
|
||||||
|
|
||||||
|
services.tlp = {
|
||||||
|
|
||||||
|
enable = mkOption {
|
||||||
|
type = types.bool;
|
||||||
|
default = false;
|
||||||
|
description = "Whether to enable the TLP daemon.";
|
||||||
|
};
|
||||||
|
|
||||||
|
extraConfig = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
default = "";
|
||||||
|
description = "Additional configuration variables for TLP";
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
###### implementation
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
|
||||||
|
systemd.services = {
|
||||||
|
tlp = {
|
||||||
|
description = "TLP system startup/shutdown";
|
||||||
|
|
||||||
|
after = [ "multi-user.target" ];
|
||||||
|
wantedBy = [ "multi-user.target" ];
|
||||||
|
before = [ "shutdown.target" ];
|
||||||
|
|
||||||
|
serviceConfig = {
|
||||||
|
Type = "oneshot";
|
||||||
|
RemainAfterExit = true;
|
||||||
|
ExecStart = "${tlp}/bin/tlp init start";
|
||||||
|
ExecStop = "${tlp}/bin/tlp init stop";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
tlp-sleep = {
|
||||||
|
description = "TLP suspend/resume";
|
||||||
|
|
||||||
|
wantedBy = [ "sleep.target" ];
|
||||||
|
before = [ "sleep.target" ];
|
||||||
|
|
||||||
|
unitConfig = {
|
||||||
|
StopWhenUnneeded = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
serviceConfig = {
|
||||||
|
Type = "oneshot";
|
||||||
|
RemainAfterExit = true;
|
||||||
|
ExecStart = "${tlp}/bin/tlp suspend";
|
||||||
|
ExecStop = "${tlp}/bin/tlp resume";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
services.udev.packages = [ tlp ];
|
||||||
|
|
||||||
|
environment.etc = [{ source = confFile;
|
||||||
|
target = "default/tlp";
|
||||||
|
}
|
||||||
|
] ++ optional tlp.enableRDW {
|
||||||
|
source = "${tlp}/etc/NetworkManager/dispatcher.d/99tlp-rdw-nm";
|
||||||
|
target = "NetworkManager/dispatcher.d/99tlp-rdw-nm";
|
||||||
|
};
|
||||||
|
|
||||||
|
environment.systemPackages = [ tlp ];
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
@ -7,8 +7,10 @@ with lib;
|
|||||||
let
|
let
|
||||||
cfg = config.services.gitlab;
|
cfg = config.services.gitlab;
|
||||||
|
|
||||||
ruby = pkgs.ruby;
|
ruby = pkgs.gitlab.ruby;
|
||||||
rubyLibs = pkgs.rubyLibs;
|
bundler = pkgs.bundler;
|
||||||
|
|
||||||
|
gemHome = "${pkgs.gitlab.env}/${ruby.gemPath}";
|
||||||
|
|
||||||
databaseYml = ''
|
databaseYml = ''
|
||||||
production:
|
production:
|
||||||
@ -38,13 +40,14 @@ let
|
|||||||
|
|
||||||
gitlab-runner = pkgs.stdenv.mkDerivation rec {
|
gitlab-runner = pkgs.stdenv.mkDerivation rec {
|
||||||
name = "gitlab-runner";
|
name = "gitlab-runner";
|
||||||
buildInputs = [ pkgs.gitlab pkgs.rubyLibs.bundler pkgs.makeWrapper ];
|
buildInputs = [ pkgs.gitlab pkgs.bundler pkgs.makeWrapper ];
|
||||||
phases = "installPhase fixupPhase";
|
phases = "installPhase fixupPhase";
|
||||||
buildPhase = "";
|
buildPhase = "";
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
mkdir -p $out/bin
|
mkdir -p $out/bin
|
||||||
makeWrapper ${rubyLibs.bundler}/bin/bundle $out/bin/gitlab-runner\
|
makeWrapper ${bundler}/bin/bundle $out/bin/gitlab-runner\
|
||||||
--set RAKEOPT '"-f ${pkgs.gitlab}/share/gitlab/Rakefile"'\
|
--set RAKEOPT '"-f ${pkgs.gitlab}/share/gitlab/Rakefile"'\
|
||||||
|
--set GEM_HOME '${gemHome}'\
|
||||||
--set UNICORN_PATH "${cfg.stateDir}/"\
|
--set UNICORN_PATH "${cfg.stateDir}/"\
|
||||||
--set GITLAB_PATH "${pkgs.gitlab}/share/gitlab/"\
|
--set GITLAB_PATH "${pkgs.gitlab}/share/gitlab/"\
|
||||||
--set GITLAB_APPLICATION_LOG_PATH "${cfg.stateDir}/log/application.log"\
|
--set GITLAB_APPLICATION_LOG_PATH "${cfg.stateDir}/log/application.log"\
|
||||||
@ -172,6 +175,7 @@ in {
|
|||||||
after = [ "network.target" "redis.service" ];
|
after = [ "network.target" "redis.service" ];
|
||||||
wantedBy = [ "multi-user.target" ];
|
wantedBy = [ "multi-user.target" ];
|
||||||
environment.HOME = "${cfg.stateDir}/home";
|
environment.HOME = "${cfg.stateDir}/home";
|
||||||
|
environment.GEM_HOME = gemHome;
|
||||||
environment.UNICORN_PATH = "${cfg.stateDir}/";
|
environment.UNICORN_PATH = "${cfg.stateDir}/";
|
||||||
environment.GITLAB_PATH = "${pkgs.gitlab}/share/gitlab/";
|
environment.GITLAB_PATH = "${pkgs.gitlab}/share/gitlab/";
|
||||||
environment.GITLAB_APPLICATION_LOG_PATH = "${cfg.stateDir}/log/application.log";
|
environment.GITLAB_APPLICATION_LOG_PATH = "${cfg.stateDir}/log/application.log";
|
||||||
@ -201,7 +205,7 @@ in {
|
|||||||
Group = "gitlab";
|
Group = "gitlab";
|
||||||
TimeoutSec = "300";
|
TimeoutSec = "300";
|
||||||
WorkingDirectory = "${pkgs.gitlab}/share/gitlab";
|
WorkingDirectory = "${pkgs.gitlab}/share/gitlab";
|
||||||
ExecStart="${rubyLibs.bundler}/bin/bundle exec \"sidekiq -q post_receive -q mailer -q system_hook -q project_web_hook -q gitlab_shell -q common -q default -e production -P ${cfg.stateDir}/tmp/sidekiq.pid\"";
|
ExecStart="${bundler}/bin/bundle exec \"sidekiq -q post_receive -q mailer -q system_hook -q project_web_hook -q gitlab_shell -q common -q default -e production -P ${cfg.stateDir}/tmp/sidekiq.pid\"";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -209,6 +213,7 @@ in {
|
|||||||
after = [ "network.target" "postgresql.service" "redis.service" ];
|
after = [ "network.target" "postgresql.service" "redis.service" ];
|
||||||
wantedBy = [ "multi-user.target" ];
|
wantedBy = [ "multi-user.target" ];
|
||||||
environment.HOME = "${cfg.stateDir}/home";
|
environment.HOME = "${cfg.stateDir}/home";
|
||||||
|
environment.GEM_HOME = gemHome;
|
||||||
environment.UNICORN_PATH = "${cfg.stateDir}/";
|
environment.UNICORN_PATH = "${cfg.stateDir}/";
|
||||||
environment.GITLAB_PATH = "${pkgs.gitlab}/share/gitlab/";
|
environment.GITLAB_PATH = "${pkgs.gitlab}/share/gitlab/";
|
||||||
environment.GITLAB_APPLICATION_LOG_PATH = "${cfg.stateDir}/log/application.log";
|
environment.GITLAB_APPLICATION_LOG_PATH = "${cfg.stateDir}/log/application.log";
|
||||||
@ -263,7 +268,7 @@ in {
|
|||||||
|
|
||||||
# force=yes disables the manual-interaction yes/no prompt
|
# force=yes disables the manual-interaction yes/no prompt
|
||||||
# which breaks without an stdin.
|
# which breaks without an stdin.
|
||||||
force=yes ${rubyLibs.bundler}/bin/bundle exec rake -f ${pkgs.gitlab}/share/gitlab/Rakefile gitlab:setup RAILS_ENV=production
|
force=yes ${bundler}/bin/bundle exec rake -f ${pkgs.gitlab}/share/gitlab/Rakefile gitlab:setup RAILS_ENV=production
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -285,7 +290,7 @@ in {
|
|||||||
Group = "gitlab";
|
Group = "gitlab";
|
||||||
TimeoutSec = "300";
|
TimeoutSec = "300";
|
||||||
WorkingDirectory = "${pkgs.gitlab}/share/gitlab";
|
WorkingDirectory = "${pkgs.gitlab}/share/gitlab";
|
||||||
ExecStart="${rubyLibs.bundler}/bin/bundle exec \"unicorn -c ${cfg.stateDir}/config/unicorn.rb -E production\"";
|
ExecStart="${bundler}/bin/bundle exec \"unicorn -c ${cfg.stateDir}/config/unicorn.rb -E production\"";
|
||||||
};
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
|
@ -18,8 +18,8 @@ in
|
|||||||
# determines the default: later modules (if enabled) are preferred.
|
# determines the default: later modules (if enabled) are preferred.
|
||||||
# E.g., if KDE is enabled, it supersedes xterm.
|
# E.g., if KDE is enabled, it supersedes xterm.
|
||||||
imports = [
|
imports = [
|
||||||
./none.nix ./xterm.nix ./xfce.nix ./kde4.nix
|
./none.nix ./xterm.nix ./xfce.nix ./kde4.nix ./kde5.nix
|
||||||
./e19.nix ./gnome3.nix ./xbmc.nix
|
./e19.nix ./gnome3.nix ./xbmc.nix ./kodi.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
options = {
|
options = {
|
||||||
|
143
nixos/modules/services/x11/desktop-managers/kde5.nix
Normal file
143
nixos/modules/services/x11/desktop-managers/kde5.nix
Normal file
@ -0,0 +1,143 @@
|
|||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let
|
||||||
|
|
||||||
|
xcfg = config.services.xserver;
|
||||||
|
cfg = xcfg.desktopManager.kde5;
|
||||||
|
xorg = pkgs.xorg;
|
||||||
|
|
||||||
|
phononBackends = {
|
||||||
|
gstreamer = [
|
||||||
|
pkgs.phonon_backend_gstreamer
|
||||||
|
pkgs.gst_all.gstPluginsBase
|
||||||
|
pkgs.gst_all.gstPluginsGood
|
||||||
|
pkgs.gst_all.gstPluginsUgly
|
||||||
|
pkgs.gst_all.gstPluginsBad
|
||||||
|
pkgs.gst_all.gstFfmpeg # for mp3 playback
|
||||||
|
pkgs.phonon_qt5_backend_gstreamer
|
||||||
|
pkgs.gst_all_1.gst-plugins-base
|
||||||
|
pkgs.gst_all_1.gst-plugins-good
|
||||||
|
pkgs.gst_all_1.gst-plugins-ugly
|
||||||
|
pkgs.gst_all_1.gst-plugins-bad
|
||||||
|
pkgs.gst_all_1.gst-libav # for mp3 playback
|
||||||
|
];
|
||||||
|
|
||||||
|
vlc = [
|
||||||
|
pkgs.phonon_qt5_backend_vlc
|
||||||
|
pkgs.phonon_backend_vlc
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
phononBackendPackages = flip concatMap cfg.phononBackends
|
||||||
|
(name: attrByPath [name] (throw "unknown phonon backend `${name}'") phononBackends);
|
||||||
|
|
||||||
|
kf5 = pkgs.kf5_stable;
|
||||||
|
|
||||||
|
plasma5 = pkgs.plasma5_stable;
|
||||||
|
|
||||||
|
kdeApps = pkgs.kdeApps_stable;
|
||||||
|
|
||||||
|
in
|
||||||
|
|
||||||
|
{
|
||||||
|
options = {
|
||||||
|
|
||||||
|
services.xserver.desktopManager.kde5 = {
|
||||||
|
enable = mkOption {
|
||||||
|
type = types.bool;
|
||||||
|
default = false;
|
||||||
|
description = "Enable the Plasma 5 (KDE 5) desktop environment.";
|
||||||
|
};
|
||||||
|
|
||||||
|
phononBackends = mkOption {
|
||||||
|
type = types.listOf types.str;
|
||||||
|
default = ["gstreamer"];
|
||||||
|
example = ["gstreamer" "vlc"];
|
||||||
|
description = ''
|
||||||
|
Phonon backends to use in KDE. Only the VLC and gstreamer backends are
|
||||||
|
available. The VLC backend is preferred by upstream.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
config = mkIf (xcfg.enable && cfg.enable) {
|
||||||
|
|
||||||
|
warnings = optional config.services.xserver.desktopManager.kde4.enable
|
||||||
|
"KDE 4 should not be enabled at the same time as KDE 5";
|
||||||
|
|
||||||
|
services.xserver.desktopManager.session = singleton {
|
||||||
|
name = "kde5";
|
||||||
|
bgSupport = true;
|
||||||
|
start = ''exec ${plasma5.startkde}/bin/startkde;'';
|
||||||
|
};
|
||||||
|
|
||||||
|
security.setuidOwners = singleton {
|
||||||
|
program = "kcheckpass";
|
||||||
|
source = "${plasma5.plasma-workspace}/lib/libexec/kcheckpass";
|
||||||
|
owner = "root";
|
||||||
|
group = "root";
|
||||||
|
setuid = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
environment.systemPackages = with plasma5; with kf5;
|
||||||
|
(builtins.attrValues
|
||||||
|
(removeAttrs plasma5
|
||||||
|
[ "deepOverride" "override" "overrideDerivation"
|
||||||
|
"recurseForDerivations" "scope"
|
||||||
|
]))
|
||||||
|
++
|
||||||
|
(builtins.attrValues
|
||||||
|
(removeAttrs kf5
|
||||||
|
[ "deepOverride" "extra-cmake-modules" "mkDerivation" "override"
|
||||||
|
"overrideDerivation" "recurseForDerivations" "scope"
|
||||||
|
]))
|
||||||
|
++
|
||||||
|
[
|
||||||
|
pkgs.qt4 # qtconfig is the only way to set Qt 4 theme
|
||||||
|
|
||||||
|
kdeApps.kde-baseapps
|
||||||
|
kdeApps.kde-base-artwork
|
||||||
|
kdeApps.kde-workspace
|
||||||
|
kdeApps.kde-runtime
|
||||||
|
kdeApps.kmix
|
||||||
|
kdeApps.konsole
|
||||||
|
kdeApps.oxygen-icons
|
||||||
|
|
||||||
|
pkgs.hicolor_icon_theme
|
||||||
|
|
||||||
|
pkgs.orion # GTK theme, nearly identical to Breeze
|
||||||
|
]
|
||||||
|
++ (optional config.networking.networkmanager.enable plasma-nm)
|
||||||
|
++ phononBackendPackages;
|
||||||
|
|
||||||
|
environment.pathsToLink = [ "/share" ];
|
||||||
|
|
||||||
|
environment.etc = singleton {
|
||||||
|
source = "${pkgs.xkeyboard_config}/etc/X11/xkb";
|
||||||
|
target = "X11/xkb";
|
||||||
|
};
|
||||||
|
|
||||||
|
environment.profileRelativeEnvVars =
|
||||||
|
mkIf (lib.elem "gstreamer" cfg.phononBackends)
|
||||||
|
{
|
||||||
|
GST_PLUGIN_SYSTEM_PATH = [ "/lib/gstreamer-0.10" ];
|
||||||
|
GST_PLUGIN_SYSTEM_PATH_1_0 = [ "/lib/gstreamer-1.0" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
fonts.fonts = [ plasma5.oxygen-fonts ];
|
||||||
|
|
||||||
|
# Enable helpful DBus services.
|
||||||
|
services.udisks2.enable = true;
|
||||||
|
services.upower.enable = config.powerManagement.enable;
|
||||||
|
|
||||||
|
security.pam.services.kde = { allowNullPassword = true; };
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
31
nixos/modules/services/x11/desktop-managers/kodi.nix
Normal file
31
nixos/modules/services/x11/desktop-managers/kodi.nix
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.services.xserver.desktopManager.kodi;
|
||||||
|
in
|
||||||
|
|
||||||
|
{
|
||||||
|
options = {
|
||||||
|
services.xserver.desktopManager.kodi = {
|
||||||
|
enable = mkOption {
|
||||||
|
default = false;
|
||||||
|
example = true;
|
||||||
|
description = "Enable the kodi multimedia center.";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
services.xserver.desktopManager.session = [{
|
||||||
|
name = "kodi";
|
||||||
|
start = ''
|
||||||
|
${pkgs.kodi}/bin/kodi --lircdev /var/run/lirc/lircd --standalone &
|
||||||
|
waitPID=$!
|
||||||
|
'';
|
||||||
|
}];
|
||||||
|
|
||||||
|
environment.systemPackages = [ pkgs.kodi ];
|
||||||
|
};
|
||||||
|
}
|
@ -151,6 +151,9 @@ in
|
|||||||
description = "KDM user";
|
description = "KDM user";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
environment.systemPackages =
|
||||||
|
[ pkgs.kde4.kde_wallpapers ]; # contains kdm's default background
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -10,10 +10,18 @@ with lib;
|
|||||||
|
|
||||||
system.sbin.modprobe = mkOption {
|
system.sbin.modprobe = mkOption {
|
||||||
internal = true;
|
internal = true;
|
||||||
default = pkgs.writeTextFile {
|
default = pkgs.stdenv.mkDerivation {
|
||||||
name = "modprobe";
|
name = "modprobe";
|
||||||
destination = "/sbin/modprobe";
|
buildCommand = ''
|
||||||
executable = true;
|
mkdir -p $out/bin
|
||||||
|
for i in ${pkgs.kmod}/sbin/*; do
|
||||||
|
name=$(basename $i)
|
||||||
|
echo "$text" > $out/bin/$name
|
||||||
|
echo 'exec '$i' "$@"' >> $out/bin/$name
|
||||||
|
chmod +x $out/bin/$name
|
||||||
|
done
|
||||||
|
ln -s bin $out/sbin
|
||||||
|
'';
|
||||||
text =
|
text =
|
||||||
''
|
''
|
||||||
#! ${pkgs.stdenv.shell}
|
#! ${pkgs.stdenv.shell}
|
||||||
@ -26,7 +34,6 @@ with lib;
|
|||||||
MODULE_DIR=/run/booted-system/kernel-modules/lib/modules/
|
MODULE_DIR=/run/booted-system/kernel-modules/lib/modules/
|
||||||
fi
|
fi
|
||||||
|
|
||||||
exec ${pkgs.kmod}/sbin/modprobe "$@"
|
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
description = ''
|
description = ''
|
||||||
|
@ -252,7 +252,7 @@ in rec {
|
|||||||
tests.firefox = callTest tests/firefox.nix {};
|
tests.firefox = callTest tests/firefox.nix {};
|
||||||
tests.firewall = callTest tests/firewall.nix {};
|
tests.firewall = callTest tests/firewall.nix {};
|
||||||
tests.fleet = scrubDrv (import tests/fleet.nix { system = "x86_64-linux"; });
|
tests.fleet = scrubDrv (import tests/fleet.nix { system = "x86_64-linux"; });
|
||||||
tests.gitlab = callTest tests/gitlab.nix {};
|
#tests.gitlab = callTest tests/gitlab.nix {};
|
||||||
tests.gnome3 = callTest tests/gnome3.nix {};
|
tests.gnome3 = callTest tests/gnome3.nix {};
|
||||||
tests.installer.grub1 = forAllSystems (system: scrubDrv (import tests/installer.nix { inherit system; }).grub1.test);
|
tests.installer.grub1 = forAllSystems (system: scrubDrv (import tests/installer.nix { inherit system; }).grub1.test);
|
||||||
tests.installer.lvm = forAllSystems (system: scrubDrv (import tests/installer.nix { inherit system; }).lvm.test);
|
tests.installer.lvm = forAllSystems (system: scrubDrv (import tests/installer.nix { inherit system; }).lvm.test);
|
||||||
|
@ -10,6 +10,7 @@ import ./make-test.nix (
|
|||||||
name = "chromium";
|
name = "chromium";
|
||||||
|
|
||||||
machine.imports = [ ./common/x11.nix ];
|
machine.imports = [ ./common/x11.nix ];
|
||||||
|
machine.virtualisation.memorySize = 1024;
|
||||||
|
|
||||||
startupHTML = pkgs.writeText "chromium-startup.html" ''
|
startupHTML = pkgs.writeText "chromium-startup.html" ''
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
|
@ -1,7 +1,8 @@
|
|||||||
{ stdenv, fetchurl, boost, cmake, gettext, gstreamer, gst_plugins_base
|
{ stdenv, fetchurl, boost, cmake, gettext, gstreamer, gst_plugins_base
|
||||||
|
, gst_plugins_good, gst_plugins_bad, gst_plugins_ugly, gst_ffmpeg
|
||||||
, liblastfm, qt4, taglib, fftw, glew, qjson, sqlite, libgpod, libplist
|
, liblastfm, qt4, taglib, fftw, glew, qjson, sqlite, libgpod, libplist
|
||||||
, usbmuxd, libmtp, gvfs, libcdio, protobuf, libspotify, qca2, pkgconfig
|
, usbmuxd, libmtp, gvfs, libcdio, protobuf, libspotify, qca2, pkgconfig
|
||||||
, sparsehash, config }:
|
, sparsehash, config, makeWrapper }:
|
||||||
|
|
||||||
let withSpotify = config.clementine.spotify or false;
|
let withSpotify = config.clementine.spotify or false;
|
||||||
in
|
in
|
||||||
@ -22,6 +23,9 @@ stdenv.mkDerivation {
|
|||||||
gettext
|
gettext
|
||||||
glew
|
glew
|
||||||
gst_plugins_base
|
gst_plugins_base
|
||||||
|
gst_plugins_good
|
||||||
|
gst_plugins_ugly
|
||||||
|
gst_ffmpeg
|
||||||
gstreamer
|
gstreamer
|
||||||
gvfs
|
gvfs
|
||||||
libcdio
|
libcdio
|
||||||
@ -29,6 +33,7 @@ stdenv.mkDerivation {
|
|||||||
liblastfm
|
liblastfm
|
||||||
libmtp
|
libmtp
|
||||||
libplist
|
libplist
|
||||||
|
makeWrapper
|
||||||
pkgconfig
|
pkgconfig
|
||||||
protobuf
|
protobuf
|
||||||
qca2
|
qca2
|
||||||
@ -42,6 +47,11 @@ stdenv.mkDerivation {
|
|||||||
|
|
||||||
enableParallelBuilding = true;
|
enableParallelBuilding = true;
|
||||||
|
|
||||||
|
postInstall = ''
|
||||||
|
wrapProgram $out/bin/clementine \
|
||||||
|
--set GST_PLUGIN_SYSTEM_PATH "$GST_PLUGIN_SYSTEM_PATH"
|
||||||
|
'';
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
homepage = "http://www.clementine-player.org";
|
homepage = "http://www.clementine-player.org";
|
||||||
description = "A multiplatform music player";
|
description = "A multiplatform music player";
|
||||||
|
@ -2,15 +2,15 @@
|
|||||||
, libxslt, lv2, pkgconfig, premake3, xlibs }:
|
, libxslt, lv2, pkgconfig, premake3, xlibs }:
|
||||||
|
|
||||||
let
|
let
|
||||||
rev = "99efbf0b";
|
rev = "3bfddf7f";
|
||||||
in
|
in
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "distrho-${rev}";
|
name = "distrho-${rev}";
|
||||||
|
|
||||||
src = fetchgit {
|
src = fetchgit {
|
||||||
url = "https://github.com/falkTX/DISTRHO.git";
|
url = "https://github.com/DISTRHO/DISTRHO-Ports.git";
|
||||||
inherit rev;
|
inherit rev;
|
||||||
sha256 = "ed26a6edca19ebb8260b3dc042f69c32162e1d91179fb9d22da42ec7131936f9";
|
sha256 = "55dc52921bb757c3213da5ef6cab40909f39be3e3b41ba4c6cd66ad90bfb2e6c";
|
||||||
};
|
};
|
||||||
|
|
||||||
patchPhase = ''
|
patchPhase = ''
|
||||||
@ -50,5 +50,9 @@ stdenv.mkDerivation rec {
|
|||||||
'';
|
'';
|
||||||
maintainers = [ maintainers.goibhniu ];
|
maintainers = [ maintainers.goibhniu ];
|
||||||
platforms = platforms.linux;
|
platforms = platforms.linux;
|
||||||
|
|
||||||
|
# The old repo was removed and split into multiple repos. More
|
||||||
|
# work is required to get everything to build and work.
|
||||||
|
broken = true;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -2,11 +2,11 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "drumkv1-${version}";
|
name = "drumkv1-${version}";
|
||||||
version = "0.5.1";
|
version = "0.6.0";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://sourceforge/drumkv1/${name}.tar.gz";
|
url = "mirror://sourceforge/drumkv1/${name}.tar.gz";
|
||||||
sha256 = "1cih4f22922ndk8yrcf955fvzkd8mh7qz1xcdyn3xybs7ackgarq";
|
sha256 = "1y3imsh059y9sihr92f3drwmcby4x3krmhly111ahwkydb94kphw";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ jack2 libsndfile lv2 qt4 ];
|
buildInputs = [ jack2 libsndfile lv2 qt4 ];
|
||||||
|
0
pkgs/applications/audio/mpc/default.nix
Executable file → Normal file
0
pkgs/applications/audio/mpc/default.nix
Executable file → Normal file
0
pkgs/applications/audio/ncmpc/default.nix
Executable file → Normal file
0
pkgs/applications/audio/ncmpc/default.nix
Executable file → Normal file
@ -2,11 +2,11 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "samplv1-${version}";
|
name = "samplv1-${version}";
|
||||||
version = "0.5.1";
|
version = "0.6.0";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://sourceforge/samplv1/${name}.tar.gz";
|
url = "mirror://sourceforge/samplv1/${name}.tar.gz";
|
||||||
sha256 = "155qq7gxyqn7sh8bbyhjk40lxl157lb2h539j4gqgv5jphz8g6wy";
|
sha256 = "0fbkdb2dqw7v6n8j1h6pjz2019ylli9rmz8awywv2ycm8blr5pf0";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ jack2 libsndfile lv2 qt4 ];
|
buildInputs = [ jack2 libsndfile lv2 qt4 ];
|
||||||
|
@ -2,11 +2,11 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "synthv1-${version}";
|
name = "synthv1-${version}";
|
||||||
version = "0.5.1";
|
version = "0.6.0";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://sourceforge/synthv1/${name}.tar.gz";
|
url = "mirror://sourceforge/synthv1/${name}.tar.gz";
|
||||||
sha256 = "16wcxrcjwp0qp2xgahhzvcs2k31sr6c9jsxyhivj4famj7a39pfw";
|
sha256 = "07570mi7rjwkkvfzdw1jcbhpkpxpjp69xj7wfzng92rk2gz7yi8m";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ qt4 jack2 lv2 ];
|
buildInputs = [ qt4 jack2 lv2 ];
|
||||||
|
0
pkgs/applications/audio/vimpc/default.nix
Executable file → Normal file
0
pkgs/applications/audio/vimpc/default.nix
Executable file → Normal file
28
pkgs/applications/graphics/leocad/default.nix
Normal file
28
pkgs/applications/graphics/leocad/default.nix
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
/*
|
||||||
|
To use aditional parts libraries
|
||||||
|
set the variable LEOCAD_LIB=/path/to/libs/ or use option -l /path/to/libs/
|
||||||
|
*/
|
||||||
|
|
||||||
|
{ stdenv, fetchsvn, qt4, zlib }:
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
name = "leocad-${version}";
|
||||||
|
version = "0.81";
|
||||||
|
|
||||||
|
src = fetchsvn {
|
||||||
|
url = "http://svn.leocad.org/tags/${name}";
|
||||||
|
sha256 = "1190gb437ls51hhfiwa79fq131026kywpy3j3k4fkdgfr8a9v3q8";
|
||||||
|
};
|
||||||
|
|
||||||
|
buildInputs = [ qt4 zlib ];
|
||||||
|
|
||||||
|
prefixKey="INSTALL_PREFIX=";
|
||||||
|
configureScript = "qmake leocad.pro";
|
||||||
|
|
||||||
|
meta = with stdenv.lib; {
|
||||||
|
description = "CAD program for creating virtual LEGO models";
|
||||||
|
homepage = http://www.leocad.org/;
|
||||||
|
license = licenses.gpl2;
|
||||||
|
inherit (qt4.meta) platforms;
|
||||||
|
};
|
||||||
|
}
|
265
pkgs/applications/kde-apps-14.12/default.nix
Normal file
265
pkgs/applications/kde-apps-14.12/default.nix
Normal file
@ -0,0 +1,265 @@
|
|||||||
|
# Maintainer's Notes:
|
||||||
|
#
|
||||||
|
# Minor updates:
|
||||||
|
# 1. Edit ./manifest.sh to point to the updated URL. Upstream sometimes
|
||||||
|
# releases updates that include only the changed packages; in this case,
|
||||||
|
# multiple URLs can be provided and the results will be merged.
|
||||||
|
# 2. Run ./manifest.sh and ./dependencies.sh.
|
||||||
|
# 3. Build and enjoy.
|
||||||
|
#
|
||||||
|
# Major updates:
|
||||||
|
# We prefer not to immediately overwrite older versions with major updates, so
|
||||||
|
# make a copy of this directory first. After copying, be sure to delete ./tmp
|
||||||
|
# if it exists. Then follow the minor update instructions.
|
||||||
|
|
||||||
|
{ autonix, kde4, kf55, pkgs, qt4, stdenv, debug ? false }:
|
||||||
|
|
||||||
|
with stdenv.lib; with autonix;
|
||||||
|
|
||||||
|
let
|
||||||
|
|
||||||
|
kf5 = kf55.override { inherit debug; };
|
||||||
|
|
||||||
|
mirror = "mirror://kde";
|
||||||
|
|
||||||
|
renames =
|
||||||
|
(builtins.removeAttrs
|
||||||
|
(import ./renames.nix {})
|
||||||
|
["Backend" "CTest"])
|
||||||
|
// {
|
||||||
|
"KDE4" = "kdelibs";
|
||||||
|
"Kexiv2" = "libkexiv2";
|
||||||
|
"Kdcraw" = "libkdcraw";
|
||||||
|
"Kipi" = "libkipi";
|
||||||
|
"LibKMahjongg" = "libkmahjongg";
|
||||||
|
"LibKonq" = "kde-baseapps";
|
||||||
|
};
|
||||||
|
|
||||||
|
scope =
|
||||||
|
# packages in this collection
|
||||||
|
(mapAttrs (dep: name: kdeApps."${name}") renames) //
|
||||||
|
# packages from KDE Frameworks 5
|
||||||
|
kf5.scope //
|
||||||
|
# packages from nixpkgs
|
||||||
|
(with pkgs;
|
||||||
|
{
|
||||||
|
ACL = acl;
|
||||||
|
Akonadi = kde4.akonadi;
|
||||||
|
Alsa = alsaLib;
|
||||||
|
Automoc4 = automoc4;
|
||||||
|
Avahi = avahi;
|
||||||
|
BISON = bison;
|
||||||
|
Baloo = kde4.baloo;
|
||||||
|
Boost = boost156;
|
||||||
|
Canberra = libcanberra;
|
||||||
|
Cdparanoia = cdparanoia;
|
||||||
|
CUPS = cups;
|
||||||
|
DBusMenuQt = libdbusmenu_qt;
|
||||||
|
DjVuLibre = djvulibre;
|
||||||
|
ENCHANT = enchant;
|
||||||
|
EPub = ebook_tools;
|
||||||
|
Eigen2 = eigen2;
|
||||||
|
Eigen3 = eigen;
|
||||||
|
Exiv2 = exiv2;
|
||||||
|
FAM = fam;
|
||||||
|
FFmpeg = ffmpeg;
|
||||||
|
Flac = flac;
|
||||||
|
FLEX = flex;
|
||||||
|
Freetype = freetype;
|
||||||
|
GMP = gmp;
|
||||||
|
Gettext = gettext;
|
||||||
|
Gpgme = gpgme;
|
||||||
|
Gphoto2 = libgphoto2;
|
||||||
|
Grantlee = grantlee;
|
||||||
|
GSL = gsl;
|
||||||
|
HUNSPELL = hunspell;
|
||||||
|
HUpnp = herqq;
|
||||||
|
Jasper = jasper;
|
||||||
|
KActivities = kde4.kactivities;
|
||||||
|
LCMS2 = lcms2;
|
||||||
|
Ldap = openldap;
|
||||||
|
LibAttica = attica;
|
||||||
|
LibGcrypt = libgcrypt;
|
||||||
|
LibSSH = libssh;
|
||||||
|
LibSpectre = libspectre;
|
||||||
|
LibVNCServer = libvncserver;
|
||||||
|
Libical = libical;
|
||||||
|
MusicBrainz3 = libmusicbrainz;
|
||||||
|
NetworkManager = networkmanager;
|
||||||
|
OggVorbis = libvorbis;
|
||||||
|
OpenAL = openal;
|
||||||
|
OpenEXR = openexr;
|
||||||
|
Poppler = poppler.poppler_qt4;
|
||||||
|
Prison = prison;
|
||||||
|
PulseAudio = pulseaudio;
|
||||||
|
PythonLibrary = python;
|
||||||
|
Qalculate = libqalculate;
|
||||||
|
QCA2 = qca2;
|
||||||
|
QImageBlitz = qimageblitz;
|
||||||
|
QJSON = qjson;
|
||||||
|
Qt4 = qt4;
|
||||||
|
Samba = samba;
|
||||||
|
Sasl2 = cyrus_sasl;
|
||||||
|
SharedDesktopOntologies = shared_desktop_ontologies;
|
||||||
|
SndFile = libsndfile;
|
||||||
|
Speechd = speechd;
|
||||||
|
TIFF = libtiff;
|
||||||
|
Taglib = taglib;
|
||||||
|
TelepathyQt4 = telepathy_qt;
|
||||||
|
TunePimp = libtunepimp;
|
||||||
|
UDev = udev;
|
||||||
|
USB = libusb;
|
||||||
|
Xscreensaver = xscreensaver;
|
||||||
|
Xsltproc = libxslt;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
preResolve = super:
|
||||||
|
fold (f: x: f x) super
|
||||||
|
[
|
||||||
|
(userEnvPkg "SharedMimeInfo")
|
||||||
|
(userEnvPkg "SharedDesktopOntologies")
|
||||||
|
(blacklist ["artikulate"]) # build failure, wrong boost?
|
||||||
|
(blacklist ["kde-dev-scripts" "kde-dev-utils"]) # docbook errors
|
||||||
|
(blacklist ["kdewebdev"]) # unknown build failure
|
||||||
|
];
|
||||||
|
|
||||||
|
postResolve = super:
|
||||||
|
super // {
|
||||||
|
|
||||||
|
ark = with pkgs; super.ark // {
|
||||||
|
buildInputs = (super.ark.buildInputs or []) ++ [ makeWrapper ];
|
||||||
|
postInstall = ''
|
||||||
|
wrapProgram $out/bin/ark --prefix PATH : "${unzipNLS}/bin"
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
ffmpegthumbs = with pkgs; super.ffmpegthumbs // {
|
||||||
|
nativeBuildInputs = super.ffmpegthumbs.nativeBuildInputs ++ [pkgconfig];
|
||||||
|
};
|
||||||
|
|
||||||
|
kalzium = with pkgs; super.kalzium // {
|
||||||
|
nativeBuildInputs = super.kalzium.nativeBuildInputs ++ [pkgconfig];
|
||||||
|
};
|
||||||
|
|
||||||
|
kde-runtime = with pkgs; super.kde-runtime // {
|
||||||
|
buildInputs =
|
||||||
|
super.kde-runtime.buildInputs ++ [libcanberra];
|
||||||
|
nativeBuildInputs =
|
||||||
|
super.kde-runtime.nativeBuildInputs ++ [pkgconfig];
|
||||||
|
NIX_CFLAGS_COMPILE =
|
||||||
|
(super.kde-runtime.NIX_CFLAGS_COMPILE or "")
|
||||||
|
+ " -I${ilmbase}/include/OpenEXR";
|
||||||
|
};
|
||||||
|
|
||||||
|
kde-workspace = with pkgs; super.kde-workspace // {
|
||||||
|
buildInputs = with xlibs;
|
||||||
|
super.kde-workspace.buildInputs
|
||||||
|
++
|
||||||
|
[
|
||||||
|
libxkbfile libXcomposite xcbutilimage xcbutilkeysyms
|
||||||
|
xcbutilrenderutil
|
||||||
|
];
|
||||||
|
nativeBuildInputs =
|
||||||
|
super.kde-workspace.nativeBuildInputs
|
||||||
|
++ [ pkgconfig ];
|
||||||
|
};
|
||||||
|
|
||||||
|
kdelibs = with pkgs; super.kdelibs // {
|
||||||
|
buildInputs =
|
||||||
|
super.kdelibs.buildInputs ++ [ attr libxslt polkit_qt4 xz ];
|
||||||
|
|
||||||
|
nativeBuildInputs =
|
||||||
|
super.kdelibs.nativeBuildInputs ++ [ pkgconfig ];
|
||||||
|
|
||||||
|
NIX_CFLAGS_COMPILE = "-I${ilmbase}/include/OpenEXR";
|
||||||
|
|
||||||
|
propagatedBuildInputs =
|
||||||
|
super.kdelibs.propagatedBuildInputs ++ [ qt4 soprano phonon strigi ];
|
||||||
|
|
||||||
|
propagatedNativeBuildInputs =
|
||||||
|
super.kdelibs.propagatedNativeBuildInputs
|
||||||
|
++ [ automoc4 cmake perl shared_mime_info ];
|
||||||
|
|
||||||
|
patches = [ ./kdelibs/polkit-install.patch ];
|
||||||
|
|
||||||
|
cmakeFlags = [
|
||||||
|
"-DDOCBOOKXML_CURRENTDTD_DIR=${docbook_xml_dtd_42}/xml/dtd/docbook"
|
||||||
|
"-DDOCBOOKXSL_DIR=${docbook_xsl}/xml/xsl/docbook"
|
||||||
|
"-DHUPNP_ENABLED=ON"
|
||||||
|
"-DWITH_SOLID_UDISKS2=ON"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
kdepim = with pkgs; super.kdepim // {
|
||||||
|
buildInputs =
|
||||||
|
super.kdepim.buildInputs ++ [ gpgme libassuan ];
|
||||||
|
nativeBuildInputs =
|
||||||
|
super.kdepim.nativeBuildInputs ++ [ pkgconfig ];
|
||||||
|
};
|
||||||
|
|
||||||
|
kdepimlibs = with pkgs; super.kdepimlibs // {
|
||||||
|
nativeBuildInputs =
|
||||||
|
super.kdepimlibs.nativeBuildInputs ++ [ pkgconfig ];
|
||||||
|
};
|
||||||
|
|
||||||
|
kdesdk-thumbnailers = with pkgs; super.kdesdk-thumbnailers // {
|
||||||
|
nativeBuildInputs =
|
||||||
|
super.kdesdk-thumbnailers.nativeBuildInputs
|
||||||
|
++ [gettext];
|
||||||
|
};
|
||||||
|
|
||||||
|
kgpg = with pkgs; super.kgpg // {
|
||||||
|
buildInputs = super.kgpg.buildInputs ++ [boost];
|
||||||
|
};
|
||||||
|
|
||||||
|
kmix = with pkgs; super.kmix // {
|
||||||
|
nativeBuildInputs = super.kmix.nativeBuildInputs ++ [pkgconfig];
|
||||||
|
cmakeFlags = [ "-DKMIX_KF5_BUILD=ON" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
kmousetool = with pkgs; super.kmousetool // {
|
||||||
|
buildInputs = with xlibs;
|
||||||
|
super.kmousetool.buildInputs
|
||||||
|
++ [libXtst libXt];
|
||||||
|
};
|
||||||
|
|
||||||
|
kremotecontrol = with pkgs; super.kremotecontrol // {
|
||||||
|
buildInputs = super.kremotecontrol.buildInputs ++ [xlibs.libXtst];
|
||||||
|
};
|
||||||
|
|
||||||
|
krfb = with pkgs; super.krfb // {
|
||||||
|
buildInputs =
|
||||||
|
super.krfb.buildInputs
|
||||||
|
++ [xlibs.libXtst kde4.telepathy.common_internals];
|
||||||
|
};
|
||||||
|
|
||||||
|
libkdcraw = with pkgs; super.libkdcraw // {
|
||||||
|
buildInputs = super.libkdcraw.buildInputs ++ [scope.KDE4 libraw];
|
||||||
|
nativeBuildInputs = super.libkdcraw.nativeBuildInputs ++ [pkgconfig];
|
||||||
|
};
|
||||||
|
|
||||||
|
libkexiv2 = with pkgs; super.libkexiv2 // {
|
||||||
|
buildInputs = super.libkexiv2.buildInputs ++ [exiv2 scope.KDE4];
|
||||||
|
};
|
||||||
|
|
||||||
|
libkface = with pkgs; super.libkface // {
|
||||||
|
buildInputs = super.libkface.buildInputs ++ [scope.KDE4 opencv];
|
||||||
|
};
|
||||||
|
|
||||||
|
libkipi = with pkgs; super.libkipi // {
|
||||||
|
buildInputs = super.libkipi.buildInputs ++ [scope.KDE4];
|
||||||
|
};
|
||||||
|
|
||||||
|
libksane = with pkgs; super.libksane // {
|
||||||
|
buildInputs = super.libksane.buildInputs ++ [scope.KDE4 saneBackends];
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
kdeApps = generateCollection ./. {
|
||||||
|
inherit (kf5) mkDerivation;
|
||||||
|
inherit mirror preResolve postResolve renames scope;
|
||||||
|
};
|
||||||
|
|
||||||
|
in kdeApps
|
1676
pkgs/applications/kde-apps-14.12/dependencies.nix
Normal file
1676
pkgs/applications/kde-apps-14.12/dependencies.nix
Normal file
File diff suppressed because it is too large
Load Diff
12
pkgs/applications/kde-apps-14.12/dependencies.sh
Executable file
12
pkgs/applications/kde-apps-14.12/dependencies.sh
Executable file
@ -0,0 +1,12 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
manifestXML=$(nix-build -E 'with (import ../../.. {}); autonix.writeManifestXML ./manifest.nix')
|
||||||
|
|
||||||
|
autonixDepsKf5=""
|
||||||
|
if [[ -z $1 ]]; then
|
||||||
|
autonixDepsKF5=$(nix-build ../../.. -A haskellngPackages.autonix-deps-kf5)/bin
|
||||||
|
else
|
||||||
|
autonixDepsKF5="$1/dist/build/kf5-deps"
|
||||||
|
fi
|
||||||
|
|
||||||
|
exec ${autonixDepsKF5}/kf5-deps "${manifestXML}"
|
@ -0,0 +1,12 @@
|
|||||||
|
diff -ru -x '*~' kdelibs-4.6.90-orig/kdecore/auth/ConfigureChecks.cmake kdelibs-4.6.90/kdecore/auth/ConfigureChecks.cmake
|
||||||
|
--- kdelibs-4.6.90-orig/kdecore/auth/ConfigureChecks.cmake 2011-05-20 22:24:54.000000000 +0200
|
||||||
|
+++ kdelibs-4.6.90/kdecore/auth/ConfigureChecks.cmake 2011-07-12 14:03:00.000000000 +0200
|
||||||
|
@@ -139,7 +139,7 @@
|
||||||
|
${CMAKE_INSTALL_PREFIX} _KDE4_AUTH_POLICY_FILES_INSTALL_DIR
|
||||||
|
${POLKITQT-1_POLICY_FILES_INSTALL_DIR})
|
||||||
|
|
||||||
|
- set(KDE4_AUTH_POLICY_FILES_INSTALL_DIR ${_KDE4_AUTH_POLICY_FILES_INSTALL_DIR} CACHE STRING
|
||||||
|
+ set(KDE4_AUTH_POLICY_FILES_INSTALL_DIR "\${CMAKE_INSTALL_PREFIX}/share/polkit-1/actions" CACHE STRING
|
||||||
|
"Where policy files generated by KAuth will be installed" FORCE)
|
||||||
|
elseif(KDE4_AUTH_BACKEND_NAME STREQUAL "FAKE")
|
||||||
|
set (KAUTH_COMPILING_FAKE_BACKEND TRUE)
|
1258
pkgs/applications/kde-apps-14.12/manifest.nix
Normal file
1258
pkgs/applications/kde-apps-14.12/manifest.nix
Normal file
File diff suppressed because it is too large
Load Diff
15
pkgs/applications/kde-apps-14.12/manifest.sh
Executable file
15
pkgs/applications/kde-apps-14.12/manifest.sh
Executable file
@ -0,0 +1,15 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
if [ $# -eq 0 ]; then
|
||||||
|
|
||||||
|
# The extra slash at the end of the URL is necessary to stop wget
|
||||||
|
# from recursing over the whole server! (No, it's not a bug.)
|
||||||
|
$(nix-build ../../.. -A autonix.manifest) \
|
||||||
|
http://download.kde.org/stable/applications/14.12.1/ \
|
||||||
|
-A '*.tar.xz'
|
||||||
|
|
||||||
|
else
|
||||||
|
|
||||||
|
$(nix-build ../../.. -A autonix.manifest) -A '*.tar.xz' "$@"
|
||||||
|
|
||||||
|
fi
|
23
pkgs/applications/kde-apps-14.12/renames.nix
Normal file
23
pkgs/applications/kde-apps-14.12/renames.nix
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
# DO NOT EDIT! This file is generated automatically.
|
||||||
|
{ }:
|
||||||
|
{
|
||||||
|
"Analitza5" = "analitza";
|
||||||
|
"Backend" = "kde-workspace";
|
||||||
|
"CTest" = "sweeper";
|
||||||
|
"ECM" = "extra-cmake-modules";
|
||||||
|
"Gpgmepp" = "kdepimlibs";
|
||||||
|
"JDns" = "kopete";
|
||||||
|
"KDE4Workspace" = "kde-workspace";
|
||||||
|
"KDEGames" = "libkdegames";
|
||||||
|
"KDeclarative" = "kdelibs";
|
||||||
|
"KSane" = "libksane";
|
||||||
|
"KdepimLibs" = "kdepimlibs";
|
||||||
|
"LibKEduVocDocument" = "libkeduvocdocument";
|
||||||
|
"LibKdeEdu" = "libkdeedu";
|
||||||
|
"LibKompareDiff2" = "libkomparediff2";
|
||||||
|
"Libkcddb" = "libkcddb";
|
||||||
|
"Libkcompactdisc" = "libkcompactdisc";
|
||||||
|
"Okular" = "okular";
|
||||||
|
"QJDns" = "kopete";
|
||||||
|
"QMobipocket" = "kdegraphics-mobipocket";
|
||||||
|
}
|
1
pkgs/applications/kde-apps-14.12/setup-hook.sh
Normal file
1
pkgs/applications/kde-apps-14.12/setup-hook.sh
Normal file
@ -0,0 +1 @@
|
|||||||
|
addToSearchPath XDG_DATA_DIRS @out@/share
|
@ -5,11 +5,11 @@
|
|||||||
}:
|
}:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "calibre-2.16.0";
|
name = "calibre-2.17.0";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://sourceforge/calibre/${name}.tar.xz";
|
url = "mirror://sourceforge/calibre/${name}.tar.xz";
|
||||||
sha256 = "1a9s99r92wk09lsbx8kn2kyg1wr7j84j8vjf65zaf5siwxnwy291";
|
sha256 = "0x95w3j443hiy2is8kd8fapkjy1yxdm0kkbalcbf4qcy5hjrgpy2";
|
||||||
};
|
};
|
||||||
|
|
||||||
inherit python;
|
inherit python;
|
||||||
|
@ -23,7 +23,7 @@ assert mercurialSupport -> (mercurial != null);
|
|||||||
|
|
||||||
let
|
let
|
||||||
name = "ikiwiki";
|
name = "ikiwiki";
|
||||||
version = "3.20141016.1";
|
version = "3.20150107";
|
||||||
|
|
||||||
lib = stdenv.lib;
|
lib = stdenv.lib;
|
||||||
in
|
in
|
||||||
@ -32,7 +32,7 @@ stdenv.mkDerivation {
|
|||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://github.com/joeyh/ikiwiki/archive/debian/${version}.tar.gz";
|
url = "https://github.com/joeyh/ikiwiki/archive/debian/${version}.tar.gz";
|
||||||
sha256 = "0ikvxwy06xkwaas7x1ww1s0saar05rj38m5j62sviw3z6fp23naq";
|
sha256 = "12kiqjxrh93gysdp7bhglnks2md9davl8jgzqlj0m8xs5rf1972n";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ perl TextMarkdown URI HTMLParser HTMLScrubber HTMLTemplate
|
buildInputs = [ perl TextMarkdown URI HTMLParser HTMLScrubber HTMLTemplate
|
||||||
|
80
pkgs/applications/misc/pwsafe/default.nix
Normal file
80
pkgs/applications/misc/pwsafe/default.nix
Normal file
@ -0,0 +1,80 @@
|
|||||||
|
{ stdenv, fetchurl, wxGTK, libuuid, xercesc, zip , libXt, libXtst
|
||||||
|
, libXi, xextproto, gettext, perl, pkgconfig, libyubikey, ykpers
|
||||||
|
}:
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
name = "pwsafe-${version}";
|
||||||
|
version = "0.95";
|
||||||
|
|
||||||
|
src = fetchurl {
|
||||||
|
url = "mirror://sourceforge/passwordsafe/pwsafe-${version}BETA-src.tgz";
|
||||||
|
sha256 = "f0b081bc358fee97fce20f352e360960d2813989023b837102b90ba6ed787d46";
|
||||||
|
};
|
||||||
|
|
||||||
|
makefile = "Makefile.linux";
|
||||||
|
makeFlags = "YBPERS_LIBPATH=${ykpers}/lib";
|
||||||
|
|
||||||
|
buildFlags = "unicoderelease";
|
||||||
|
buildInputs = [ wxGTK libuuid gettext perl zip
|
||||||
|
xercesc libXt libXtst libXi xextproto
|
||||||
|
pkgconfig libyubikey ykpers ];
|
||||||
|
|
||||||
|
postPatch = ''
|
||||||
|
# Fix perl scripts used during the build.
|
||||||
|
for f in `find . -type f -name '*.pl'`; do
|
||||||
|
patchShebangs $f
|
||||||
|
done
|
||||||
|
|
||||||
|
# Fix hard coded paths.
|
||||||
|
for f in `grep -Rl /usr/share/ src`; do
|
||||||
|
substituteInPlace $f --replace /usr/share/ $out/share/
|
||||||
|
done
|
||||||
|
|
||||||
|
for f in `grep -Rl /usr/bin/ .`; do
|
||||||
|
substituteInPlace $f --replace /usr/bin/ ""
|
||||||
|
done
|
||||||
|
'';
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out/bin \
|
||||||
|
$out/share/applications \
|
||||||
|
$out/share/pwsafe/xml \
|
||||||
|
$out/share/icons/hicolor/48x48/apps \
|
||||||
|
$out/share/doc/passwordsafe/help \
|
||||||
|
$out/share/man/man1 \
|
||||||
|
$out/share/locale
|
||||||
|
|
||||||
|
(cd help && make -f Makefile.linux)
|
||||||
|
cp help/help.zip $out/share/doc/passwordsafe/help
|
||||||
|
|
||||||
|
(cd src/ui/wxWidgets/I18N && make mos)
|
||||||
|
cp -dr src/ui/wxWidgets/I18N/mos/* $out/share/locale/
|
||||||
|
# */
|
||||||
|
|
||||||
|
cp README.txt docs/ReleaseNotes.txt docs/ChangeLog.txt \
|
||||||
|
LICENSE install/copyright $out/share/doc/passwordsafe
|
||||||
|
|
||||||
|
cp src/ui/wxWidgets/GCCUnicodeRelease/pwsafe $out/bin/
|
||||||
|
cp install/graphics/pwsafe.png $out/share/icons/hicolor/48x48/apps
|
||||||
|
cp docs/pwsafe.1 $out/share/man/man1
|
||||||
|
cp xml/* $out/share/pwsafe/xml
|
||||||
|
# */
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = with stdenv.lib; {
|
||||||
|
description = "Password Safe is a password database utility";
|
||||||
|
|
||||||
|
longDescription = ''
|
||||||
|
Password Safe is a password database utility. Like many other
|
||||||
|
such products, commercial and otherwise, it stores your
|
||||||
|
passwords in an encrypted file, allowing you to remember only
|
||||||
|
one password (the "safe combination"), instead of all the
|
||||||
|
username/password combinations that you use.
|
||||||
|
'';
|
||||||
|
|
||||||
|
homepage = http://passwordsafe.sourceforge.net/;
|
||||||
|
maintainers = with maintainers; [ pjones ];
|
||||||
|
platforms = platforms.linux;
|
||||||
|
license = licenses.artistic2;
|
||||||
|
};
|
||||||
|
}
|
26
pkgs/applications/misc/terminal-notifier/default.nix
Normal file
26
pkgs/applications/misc/terminal-notifier/default.nix
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
{ stdenv, lib, fetchzip }:
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
name = "terminal-notifier-${version}";
|
||||||
|
|
||||||
|
version = "1.5.0";
|
||||||
|
|
||||||
|
src = fetchzip {
|
||||||
|
url = "https://github.com/alloy/terminal-notifier/releases/download/${version}/terminal-notifier-${version}.zip";
|
||||||
|
sha256 = "09x7vl0kddivqq3pyrk6sg1f0sv5l7nj0bmblq222zk3b09bgg8p";
|
||||||
|
};
|
||||||
|
|
||||||
|
buildPhase = "true";
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out/Applications
|
||||||
|
mkdir -p $out/bin
|
||||||
|
cp -r terminal-notifier.app $out/Applications
|
||||||
|
ln -s $out/Applications/terminal-notifier.app/Contents/MacOS/terminal-notifier $out/bin/terminal-notifier
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
maintainers = with maintainers; [ cstrahan ];
|
||||||
|
platforms = with platforms; darwin;
|
||||||
|
};
|
||||||
|
}
|
57
pkgs/applications/misc/xca/0001-Fix-for-openssl-1.0.1i.patch
Normal file
57
pkgs/applications/misc/xca/0001-Fix-for-openssl-1.0.1i.patch
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
From abd9d530776e8bb6d8f05312fc3ae3044796139c Mon Sep 17 00:00:00 2001
|
||||||
|
From: Oliver Winker <oliver@oli1170.net>
|
||||||
|
Date: Tue, 12 Aug 2014 19:08:05 +0200
|
||||||
|
Subject: [PATCH] Fix for openssl 1.0.1i
|
||||||
|
|
||||||
|
Fixes following application error
|
||||||
|
---
|
||||||
|
Errors
|
||||||
|
error:0D0C40D8:asn1 encoding routines:c2i_ASN1_OBJECT:invalid object encoding error:0D08303A:asn1 encoding routines:ASN1_TEMPLATE_NOEXP_D2I:nested asn1 error error:0D0C40D8:asn1 encoding routines:c2i_ASN1_OBJECT:invalid object encoding error:0D08303A:asn1 encoding routines:ASN1_TEMPLATE_NOEXP_D2I:nested asn1 error error:0D0C40D8:asn1 encoding routines:c2i_ASN1_OBJECT:invalid object encoding error:0D08303A:asn1 encoding routines:ASN1_TEMPLATE_NOEXP_D2I:nested asn1 error error:0D0C40D8:asn1 encoding routines:c2i_ASN1_OBJECT:invalid object encoding error:0D08303A:asn1 encoding routines:ASN1_TEMPLATE_NOEXP_D2I:nested asn1 error error:0D0C40D8:asn1 encoding routines:c2i_ASN1_OBJECT:invalid object encoding error:0D08303A:asn1 encoding routines:ASN1_TEMPLATE_NOEXP_D2I:nested asn1 error
|
||||||
|
---
|
||||||
|
|
||||||
|
Due to openssl 1.0.1i change:
|
||||||
|
---
|
||||||
|
commit 03b04ddac162c7b7fa3c57eadccc5a583a00d291
|
||||||
|
Author: Emilia Kasper <emilia@openssl.org>
|
||||||
|
Date: Wed Jul 2 19:02:33 2014 +0200
|
||||||
|
|
||||||
|
Fix OID handling:
|
||||||
|
|
||||||
|
- Upon parsing, reject OIDs with invalid base-128 encoding.
|
||||||
|
- Always NUL-terminate the destination buffer in OBJ_obj2txt printing function.
|
||||||
|
|
||||||
|
CVE-2014-3508
|
||||||
|
|
||||||
|
Reviewed-by: Dr. Stephen Henson <steve@openssl.org>
|
||||||
|
Reviewed-by: Kurt Roeckx <kurt@openssl.org>
|
||||||
|
Reviewed-by: Tim Hudson <tjh@openssl.org>
|
||||||
|
---
|
||||||
|
---
|
||||||
|
lib/x509v3ext.cpp | 4 +++-
|
||||||
|
1 file changed, 3 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/lib/x509v3ext.cpp b/lib/x509v3ext.cpp
|
||||||
|
index cf74c32..d94cbda 100644
|
||||||
|
--- a/lib/x509v3ext.cpp
|
||||||
|
+++ b/lib/x509v3ext.cpp
|
||||||
|
@@ -27,6 +27,8 @@ x509v3ext::x509v3ext(const X509_EXTENSION *n)
|
||||||
|
x509v3ext::x509v3ext(const x509v3ext &n)
|
||||||
|
{
|
||||||
|
ext = NULL;
|
||||||
|
+ if (!n.isValid())
|
||||||
|
+ return;
|
||||||
|
set(n.ext);
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -743,7 +745,7 @@ X509_EXTENSION *x509v3ext::get() const
|
||||||
|
|
||||||
|
bool x509v3ext::isValid() const
|
||||||
|
{
|
||||||
|
- return ext->value->length > 0 &&
|
||||||
|
+ return ext && ext->value && ext->value->length > 0 &&
|
||||||
|
OBJ_obj2nid(ext->object) != NID_undef;
|
||||||
|
}
|
||||||
|
|
||||||
|
--
|
||||||
|
2.0.1
|
||||||
|
|
@ -9,6 +9,8 @@ stdenv.mkDerivation rec {
|
|||||||
sha256 = "1fn6kh8mdy65rrgjif7j9wn3mxg1mrrcnhzpi86hfy24ic6bahk8";
|
sha256 = "1fn6kh8mdy65rrgjif7j9wn3mxg1mrrcnhzpi86hfy24ic6bahk8";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
patches = [ ./0001-Fix-for-openssl-1.0.1i.patch ];
|
||||||
|
|
||||||
configurePhase = ''
|
configurePhase = ''
|
||||||
export PATH=$PATH:${which}/bin
|
export PATH=$PATH:${which}/bin
|
||||||
export QTDIR=${qt4}
|
export QTDIR=${qt4}
|
||||||
|
@ -9,7 +9,7 @@ mkChromiumDerivation (base: rec {
|
|||||||
|
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
mkdir -p "$libExecPath"
|
mkdir -p "$libExecPath"
|
||||||
cp -v "$buildPath/"*.pak "$libExecPath/"
|
cp -v "$buildPath/"*.pak "$buildPath/"*.bin "$libExecPath/"
|
||||||
cp -v "$buildPath/icudtl.dat" "$libExecPath/"
|
cp -v "$buildPath/icudtl.dat" "$libExecPath/"
|
||||||
cp -vLR "$buildPath/locales" "$buildPath/resources" "$libExecPath/"
|
cp -vLR "$buildPath/locales" "$buildPath/resources" "$libExecPath/"
|
||||||
cp -v "$buildPath/libpdf.so" "$buildPath/libffmpegsumo.so" "$libExecPath/"
|
cp -v "$buildPath/libpdf.so" "$buildPath/libffmpegsumo.so" "$libExecPath/"
|
||||||
|
@ -143,6 +143,12 @@ let
|
|||||||
sed -i -e '/module_path *=.*libexif.so/ {
|
sed -i -e '/module_path *=.*libexif.so/ {
|
||||||
s|= [^;]*|= base::FilePath().AppendASCII("${libexif}/lib/libexif.so")|
|
s|= [^;]*|= base::FilePath().AppendASCII("${libexif}/lib/libexif.so")|
|
||||||
}' chrome/utility/media_galleries/image_metadata_extractor.cc
|
}' chrome/utility/media_galleries/image_metadata_extractor.cc
|
||||||
|
|
||||||
|
sed -i -e '/lib_loader.*Load/s!"\(libudev\.so\)!"${udev}/lib/\1!' \
|
||||||
|
device/udev_linux/udev?_loader.cc
|
||||||
|
|
||||||
|
sed -i -e '/libpci_loader.*Load/s!"\(libpci\.so\)!"${pciutils}/lib/\1!' \
|
||||||
|
gpu/config/gpu_info_collector_linux.cc
|
||||||
'';
|
'';
|
||||||
|
|
||||||
gypFlags = mkGypFlags (gypFlagsUseSystemLibs // {
|
gypFlags = mkGypFlags (gypFlagsUseSystemLibs // {
|
||||||
|
@ -66,7 +66,7 @@ let
|
|||||||
in stdenv.mkDerivation {
|
in stdenv.mkDerivation {
|
||||||
name = "chromium${suffix}-${chromium.browser.version}";
|
name = "chromium${suffix}-${chromium.browser.version}";
|
||||||
|
|
||||||
buildInputs = [ makeWrapper ];
|
buildInputs = [ makeWrapper ] ++ chromium.plugins.enabledPlugins;
|
||||||
|
|
||||||
buildCommand = let
|
buildCommand = let
|
||||||
browserBinary = "${chromium.browser}/libexec/chromium/chromium";
|
browserBinary = "${chromium.browser}/libexec/chromium/chromium";
|
||||||
|
@ -21,9 +21,10 @@ let
|
|||||||
chan = if source.channel == "dev" then "chrome-unstable"
|
chan = if source.channel == "dev" then "chrome-unstable"
|
||||||
else if source.channel == "stable" then "chrome"
|
else if source.channel == "stable" then "chrome"
|
||||||
else "chrome-${source.channel}";
|
else "chrome-${source.channel}";
|
||||||
|
cext = if versionOlder source.version "41.0.0.0" then "lzma" else "xz";
|
||||||
in ''
|
in ''
|
||||||
mkdir -p plugins
|
mkdir -p plugins
|
||||||
ar p "$src" data.tar.lzma | tar xJ -C plugins --strip-components=4 \
|
ar p "$src" data.tar.${cext} | tar xJ -C plugins --strip-components=4 \
|
||||||
./opt/google/${chan}/PepperFlash \
|
./opt/google/${chan}/PepperFlash \
|
||||||
./opt/google/${chan}/libwidevinecdm.so \
|
./opt/google/${chan}/libwidevinecdm.so \
|
||||||
./opt/google/${chan}/libwidevinecdmadapter.so
|
./opt/google/${chan}/libwidevinecdmadapter.so
|
||||||
@ -93,6 +94,7 @@ let
|
|||||||
else head (tail v);
|
else head (tail v);
|
||||||
in fold (l: r: zipAttrsWith (_: f) [ l r ]) {};
|
in fold (l: r: zipAttrsWith (_: f) [ l r ]) {};
|
||||||
in {
|
in {
|
||||||
|
inherit enabledPlugins;
|
||||||
settings = mergeAttrsets (map getNix enabledPlugins);
|
settings = mergeAttrsets (map getNix enabledPlugins);
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -1,21 +1,21 @@
|
|||||||
# This file is autogenerated from update.sh in the parent directory.
|
# This file is autogenerated from update.sh in the parent directory.
|
||||||
{
|
{
|
||||||
dev = {
|
dev = {
|
||||||
version = "41.0.2224.3";
|
version = "41.0.2272.16";
|
||||||
sha256 = "04lgklidxx4bryqhnm7kjqbfr12ns8ic9g4yxk3dig71081sas5f";
|
sha256 = "14l3l5gcjqszqjb3zmwxsyfci495fi315sznvm2n2ark24mf03yq";
|
||||||
sha256bin32 = "17fgh57yckk318r7r6qkc934dpq35qa6ps4x5fwscl070rzjf81k";
|
sha256bin32 = "0xqhzlmbyh5w678j7iwssd81z1bpggpzxni1y79xn5lhc26c50jd";
|
||||||
sha256bin64 = "1qsvjm38cxx3inrw0hs4q9f4i9arqfj9cs57xh64wflrnh2z52zf";
|
sha256bin64 = "0c9j75xqv4jx57asiaadarz714h1adscvb4h5ng7mbmr268qp6f2";
|
||||||
};
|
};
|
||||||
beta = {
|
beta = {
|
||||||
version = "40.0.2214.10";
|
version = "41.0.2272.16";
|
||||||
sha256 = "0wxkxgj6z18l2qkm0k16r8bpv9rdxk1g1ias03zzvlbj1bw3brdn";
|
sha256 = "14l3l5gcjqszqjb3zmwxsyfci495fi315sznvm2n2ark24mf03yq";
|
||||||
sha256bin32 = "0wr2vg97d3qrryb5sz31sd3ycb1l17irrs79vfa04ip85jqv89zn";
|
sha256bin32 = "0xqhzlmbyh5w678j7iwssd81z1bpggpzxni1y79xn5lhc26c50jd";
|
||||||
sha256bin64 = "0bclgy386vdmfdf59hwkypcs8wwmlpgl3npp089hmcdvv7dmars8";
|
sha256bin64 = "0c9j75xqv4jx57asiaadarz714h1adscvb4h5ng7mbmr268qp6f2";
|
||||||
};
|
};
|
||||||
stable = {
|
stable = {
|
||||||
version = "39.0.2171.65";
|
version = "40.0.2214.91";
|
||||||
sha256 = "0lglcjvyhgmdm0sd76wv509pgwcfl86rlp9rj83z9giadwqlcmxi";
|
sha256 = "0ja1wvjn0g8xs20j87s3gl9h70yzx8rfa3k126wnl9gay6gxlbzp";
|
||||||
sha256bin32 = "1iqzi462vw8da5f8ysk76q68xhiw5ndqc3hhc6djipsc6h240bji";
|
sha256bin32 = "0mfg66s7fqx6v8n0hilsw40i5ximasbqhrmw4fpnpa0x0i77bphj";
|
||||||
sha256bin64 = "1gxh3sxpnl0167la9ncnz7l85gzi4ax6g5pqni1nma5g5cqqm177";
|
sha256bin64 = "14lqm8m937b9sl5k7sc939aar76ij9790c807yahk6q36mfyd269";
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -15,14 +15,14 @@
|
|||||||
|
|
||||||
assert stdenv.cc ? libc && stdenv.cc.libc != null;
|
assert stdenv.cc ? libc && stdenv.cc.libc != null;
|
||||||
|
|
||||||
let version = "35.0"; in
|
let version = "35.0.1"; in
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "firefox-${version}";
|
name = "firefox-${version}";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/${version}/source/firefox-${version}.source.tar.bz2";
|
url = "http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/${version}/source/firefox-${version}.source.tar.bz2";
|
||||||
sha1 = "52f310f08ab5a52cd9d9be00016f0872a5e81774";
|
sha1 = "cf256ee1491ee502eb4432ade5a879104ebceede";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs =
|
buildInputs =
|
||||||
|
@ -15,6 +15,18 @@ stdenv.mkDerivation {
|
|||||||
desktopName = desktopName;
|
desktopName = desktopName;
|
||||||
genericName = "Web Browser";
|
genericName = "Web Browser";
|
||||||
categories = "Application;Network;WebBrowser;";
|
categories = "Application;Network;WebBrowser;";
|
||||||
|
mimeType = stdenv.lib.concatStringsSep ";" [
|
||||||
|
"text/html"
|
||||||
|
"text/xml"
|
||||||
|
"application/xhtml+xml"
|
||||||
|
"x-scheme-handler/http"
|
||||||
|
"x-scheme-handler/https"
|
||||||
|
"x-scheme-handler/ftp"
|
||||||
|
"x-scheme-handler/mailto"
|
||||||
|
"x-scheme-handler/webcal"
|
||||||
|
"x-scheme-handler/about"
|
||||||
|
"x-scheme-handler/unknown"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [makeWrapper] ++ gst_plugins;
|
buildInputs = [makeWrapper] ++ gst_plugins;
|
||||||
|
@ -36,7 +36,7 @@
|
|||||||
|
|
||||||
let
|
let
|
||||||
# -> http://get.adobe.com/flashplayer/
|
# -> http://get.adobe.com/flashplayer/
|
||||||
version = "11.2.202.438";
|
version = "11.2.202.440";
|
||||||
|
|
||||||
src =
|
src =
|
||||||
if stdenv.system == "x86_64-linux" then
|
if stdenv.system == "x86_64-linux" then
|
||||||
@ -47,7 +47,7 @@ let
|
|||||||
else rec {
|
else rec {
|
||||||
inherit version;
|
inherit version;
|
||||||
url = "http://fpdownload.macromedia.com/get/flashplayer/pdc/${version}/install_flash_player_11_linux.x86_64.tar.gz";
|
url = "http://fpdownload.macromedia.com/get/flashplayer/pdc/${version}/install_flash_player_11_linux.x86_64.tar.gz";
|
||||||
sha256 = "1dha6dhnjs2ybz17a909id7j34cn64f43nk6amxgbnm45jld08xr";
|
sha256 = "1sx17b7w3za274r0jxb80qn3m3hvij6faka45say3a60ps8bihc4";
|
||||||
}
|
}
|
||||||
else if stdenv.system == "i686-linux" then
|
else if stdenv.system == "i686-linux" then
|
||||||
if debug then
|
if debug then
|
||||||
@ -60,7 +60,7 @@ let
|
|||||||
else rec {
|
else rec {
|
||||||
inherit version;
|
inherit version;
|
||||||
url = "http://fpdownload.macromedia.com/get/flashplayer/pdc/${version}/install_flash_player_11_linux.i386.tar.gz";
|
url = "http://fpdownload.macromedia.com/get/flashplayer/pdc/${version}/install_flash_player_11_linux.i386.tar.gz";
|
||||||
sha256 = "0l39pipsyjliabkdg6i0v84253wv0v1acqavk7jjpr7gw00cg9xb";
|
sha256 = "1qn8sg1kk61cv7vrwn6l5sb1mmczfcas1b85cq2mzzjg4af7wcf4";
|
||||||
}
|
}
|
||||||
else throw "Flash Player is not supported on this platform";
|
else throw "Flash Player is not supported on this platform";
|
||||||
|
|
||||||
|
@ -0,0 +1,18 @@
|
|||||||
|
{ stdenv, fetchurl, ocamlPackages, zlib }:
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
name = "google-drive-ocamlfuse-0.5.12";
|
||||||
|
src = fetchurl {
|
||||||
|
url = "https://forge.ocamlcore.org/frs/download.php/1489/${name}.tar.gz";
|
||||||
|
sha256 = "0yfzzrv4h7vplw6qjm9viymy51jaqqari012agar96zwa86fsrdr";
|
||||||
|
};
|
||||||
|
|
||||||
|
buildInputs = [ zlib ] ++ (with ocamlPackages; [ocaml ocamlfuse findlib gapi_ocaml ocaml_sqlite3 camlidl]);
|
||||||
|
configurePhase = "ocaml setup.ml -configure --prefix \"$out\"";
|
||||||
|
buildPhase = "ocaml setup.ml -build";
|
||||||
|
installPhase = "ocaml setup.ml -install";
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
|
||||||
|
};
|
||||||
|
}
|
@ -1,11 +1,11 @@
|
|||||||
{ stdenv, fetchurl, pkgconfig, ncurses, glib, openssl, perl, libintlOrEmpty }:
|
{ stdenv, fetchurl, pkgconfig, ncurses, glib, openssl, perl, libintlOrEmpty }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "irssi-0.8.16";
|
name = "irssi-0.8.17";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "http://irssi.org/files/${name}.tar.bz2";
|
url = "http://irssi.org/files/${name}.tar.bz2";
|
||||||
sha256 = "15wzs4h754jzs1l4z7qzsyjllk9wdx3qfb6gymdiykvmlb9gwyiz";
|
sha256 = "01v82q2pfiimx6lh271kdvgp8hl4pahc3srg04fqzxgdsb5015iw";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ pkgconfig ncurses glib openssl perl libintlOrEmpty ];
|
buildInputs = [ pkgconfig ncurses glib openssl perl libintlOrEmpty ];
|
||||||
|
@ -5,10 +5,14 @@
|
|||||||
, ssl ? true # enable SSL support
|
, ssl ? true # enable SSL support
|
||||||
, previews ? false # enable webpage previews on hovering over URLs
|
, previews ? false # enable webpage previews on hovering over URLs
|
||||||
, tag ? "" # tag added to the package name
|
, tag ? "" # tag added to the package name
|
||||||
, stdenv, fetchurl, cmake, makeWrapper, qt, kdelibs, automoc4, phonon, dconf }:
|
, kdelibs ? null # optional
|
||||||
|
, useQt5 ? false
|
||||||
|
, phonon_qt5, libdbusmenu_qt5
|
||||||
|
, stdenv, fetchurl, cmake, makeWrapper, qt, automoc4, phonon, dconf }:
|
||||||
|
|
||||||
assert monolithic -> !client && !daemon;
|
assert monolithic -> !client && !daemon;
|
||||||
assert client || daemon -> !monolithic;
|
assert client || daemon -> !monolithic;
|
||||||
|
assert withKDE -> kdelibs != null;
|
||||||
|
|
||||||
let
|
let
|
||||||
edf = flag: feature: [("-D" + feature + (if flag then "=ON" else "=OFF"))];
|
edf = flag: feature: [("-D" + feature + (if flag then "=ON" else "=OFF"))];
|
||||||
@ -28,20 +32,19 @@ in with stdenv; mkDerivation rec {
|
|||||||
buildInputs = [ cmake makeWrapper qt ]
|
buildInputs = [ cmake makeWrapper qt ]
|
||||||
++ lib.optional withKDE kdelibs
|
++ lib.optional withKDE kdelibs
|
||||||
++ lib.optional withKDE automoc4
|
++ lib.optional withKDE automoc4
|
||||||
++ lib.optional withKDE phonon;
|
++ lib.optional withKDE phonon
|
||||||
|
++ lib.optional useQt5 phonon_qt5
|
||||||
|
++ lib.optional useQt5 libdbusmenu_qt5;
|
||||||
|
|
||||||
cmakeFlags = [
|
cmakeFlags = [
|
||||||
"-DWITH_DBUS=OFF"
|
|
||||||
"-DWITH_LIBINDICATE=OFF"
|
|
||||||
"-DEMBED_DATA=OFF"
|
"-DEMBED_DATA=OFF"
|
||||||
"-DSTATIC=OFF"
|
"-DSTATIC=OFF" ]
|
||||||
"-DWITH_PHONON=ON" ]
|
|
||||||
++ edf monolithic "WANT_MONO"
|
++ edf monolithic "WANT_MONO"
|
||||||
++ edf daemon "WANT_CORE"
|
++ edf daemon "WANT_CORE"
|
||||||
++ edf client "WANT_QTCLIENT"
|
++ edf client "WANT_QTCLIENT"
|
||||||
++ edf withKDE "WITH_KDE"
|
++ edf withKDE "WITH_KDE"
|
||||||
++ edf ssl "WITH_OPENSSL"
|
++ edf previews "WITH_WEBKIT"
|
||||||
++ edf previews "WITH_WEBKIT" ;
|
++ edf useQt5 "USE_QT5";
|
||||||
|
|
||||||
preFixup =
|
preFixup =
|
||||||
lib.optionalString client ''
|
lib.optionalString client ''
|
||||||
|
@ -0,0 +1,25 @@
|
|||||||
|
*** FreeRDP-1.2.0-beta1+android7-src/winpr/libwinpr/smartcard/smartcard_pcsc.c.orig 2015-01-25 19:10:03.971628580 -0800
|
||||||
|
--- FreeRDP-1.2.0-beta1+android7-src/winpr/libwinpr/smartcard/smartcard_pcsc.c 2015-01-25 19:55:05.453980544 -0800
|
||||||
|
***************
|
||||||
|
*** 2807,2816 ****
|
||||||
|
#ifdef __MACOSX__
|
||||||
|
g_PCSCModule = LoadLibraryA("/System/Library/Frameworks/PCSC.framework/PCSC");
|
||||||
|
#else
|
||||||
|
! g_PCSCModule = LoadLibraryA("libpcsclite.so.1");
|
||||||
|
|
||||||
|
if (!g_PCSCModule)
|
||||||
|
! g_PCSCModule = LoadLibraryA("libpcsclite.so");
|
||||||
|
#endif
|
||||||
|
|
||||||
|
if (!g_PCSCModule)
|
||||||
|
--- 2807,2816 ----
|
||||||
|
#ifdef __MACOSX__
|
||||||
|
g_PCSCModule = LoadLibraryA("/System/Library/Frameworks/PCSC.framework/PCSC");
|
||||||
|
#else
|
||||||
|
! g_PCSCModule = LoadLibraryA("@pcsclite@/lib/libpcsclite.so.1");
|
||||||
|
|
||||||
|
if (!g_PCSCModule)
|
||||||
|
! g_PCSCModule = LoadLibraryA("@pcsclite@/lib/libpcsclite.so");
|
||||||
|
#endif
|
||||||
|
|
||||||
|
if (!g_PCSCModule)
|
@ -1,5 +1,6 @@
|
|||||||
{ stdenv, fetchFromGitHub, cmake, pkgconfig, openssl, zlib, libX11, libXcursor
|
{ stdenv, fetchFromGitHub, cmake, pkgconfig, openssl, zlib, libX11, libXcursor
|
||||||
, libXdamage, libXext, glib, alsaLib, ffmpeg, libxkbfile, libXinerama, libXv
|
, libXdamage, libXext, glib, alsaLib, ffmpeg, libxkbfile, libXinerama, libXv
|
||||||
|
, substituteAll
|
||||||
, pulseaudio ? null, cups ? null, pcsclite ? null
|
, pulseaudio ? null, cups ? null, pcsclite ? null
|
||||||
}:
|
}:
|
||||||
|
|
||||||
@ -13,6 +14,13 @@ stdenv.mkDerivation rec {
|
|||||||
sha256 = "08nn18jydblrif1qs92pakzd3ww7inr0i378ssn1bjp09lm1bkk0";
|
sha256 = "08nn18jydblrif1qs92pakzd3ww7inr0i378ssn1bjp09lm1bkk0";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
patches = [
|
||||||
|
] ++ stdenv.lib.optional (pcsclite != null)
|
||||||
|
(substituteAll {
|
||||||
|
src = ./dlopen-absolute-paths.diff;
|
||||||
|
inherit pcsclite;
|
||||||
|
});
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
cmake pkgconfig openssl zlib libX11 libXcursor libXdamage libXext glib
|
cmake pkgconfig openssl zlib libX11 libXcursor libXdamage libXext glib
|
||||||
alsaLib ffmpeg libxkbfile libXinerama libXv cups pulseaudio pcsclite
|
alsaLib ffmpeg libxkbfile libXinerama libXv cups pulseaudio pcsclite
|
||||||
|
@ -1,46 +1,68 @@
|
|||||||
{ stdenv, fetchurl, useGoldLinker, bash, callPackage, gnome, xlibs }:
|
{ stdenv, fetchurl, bash, firefox, perl, unzipNLS, xlibs }:
|
||||||
|
|
||||||
assert (stdenv.system == "x86_64-linux" || stdenv.system == "i686-linux");
|
|
||||||
|
|
||||||
|
|
||||||
let
|
let
|
||||||
/* Zotero always has a hard upper bound on its firefox/xulrunner dependency.
|
|
||||||
* Use private version of firefox to prevent breakage when the system
|
|
||||||
* packages are updated. Please update this dependency whenever zotero is
|
|
||||||
* updated; it should be as simple as copying the system firefox expression
|
|
||||||
* into place.
|
|
||||||
*/
|
|
||||||
|
|
||||||
firefox = callPackage ./firefox-bin {
|
xpi = fetchurl {
|
||||||
gconf = gnome.GConf;
|
url = "https://download.zotero.org/extension/zotero-${version}.xpi";
|
||||||
inherit (gnome) libgnome libgnomeui;
|
sha256 = "0di6d3s95fmb4pmghl4ix7lq5pmqrddd4y8dmnpsrhbj0awzxw3s";
|
||||||
inherit (xlibs) libX11 libXScrnSaver libXcomposite libXdamage libXext
|
|
||||||
libXfixes libXinerama libXrender libXt;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
# Please update the firefox dependency when zotero is updated!
|
version = "4.0.25.2";
|
||||||
version = "4.0.23";
|
|
||||||
arch = if stdenv.system == "x86_64-linux"
|
|
||||||
then "linux-x86_64"
|
|
||||||
else "linux-i686";
|
|
||||||
in
|
in
|
||||||
stdenv.mkDerivation {
|
stdenv.mkDerivation {
|
||||||
name = "zotero-${version}";
|
name = "zotero-${version}";
|
||||||
|
inherit version;
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://download.zotero.org/standalone/${version}/Zotero-${version}_${arch}.tar.bz2";
|
url = "https://github.com/zotero/zotero-standalone-build/archive/${version}.tar.gz";
|
||||||
sha256 = if stdenv.system == "x86_64-linux"
|
sha256 = "0wjmpz7fy3ij8q22s885kv8xrgc3yx7f1mwrvb6lnpc2xl54rl5g";
|
||||||
then "1fz5xn69vapfw8d20207zr9p5r1h9x5kahh334pl2dn1h8il0sm8"
|
|
||||||
else "1kmsvvg2lh881rzy3rxbigzivixjamyrwf5x7vmn1kzhvsvifrng";
|
|
||||||
};
|
};
|
||||||
|
|
||||||
# Strip the bundled xulrunner
|
nativeBuildInputs = [ perl unzipNLS ];
|
||||||
prePatch = ''rm -fr run-zotero.sh zotero xulrunner/'';
|
|
||||||
|
|
||||||
inherit bash firefox;
|
inherit bash firefox;
|
||||||
|
|
||||||
|
phases = "unpackPhase installPhase fixupPhase";
|
||||||
|
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
mkdir -p "$out/libexec/zotero"
|
mkdir -p "$out/libexec/zotero"
|
||||||
cp -vR * "$out/libexec/zotero/"
|
unzip "${xpi}" -d "$out/libexec/zotero"
|
||||||
|
|
||||||
|
BUILDID=`date +%Y%m%d`
|
||||||
|
GECKO_VERSION="${firefox.passthru.version}"
|
||||||
|
UPDATE_CHANNEL="default"
|
||||||
|
|
||||||
|
# Copy branding
|
||||||
|
cp -R assets/branding "$out/libexec/zotero/chrome/branding"
|
||||||
|
|
||||||
|
# Adjust chrome.manifest
|
||||||
|
echo "" >> "$out/libexec/zotero/chrome.manifest"
|
||||||
|
cat assets/chrome.manifest >> "$out/libexec/zotero/chrome.manifest"
|
||||||
|
|
||||||
|
# Copy updater.ini
|
||||||
|
cp assets/updater.ini "$out/libexec/zotero"
|
||||||
|
|
||||||
|
# Adjust connector pref
|
||||||
|
perl -pi -e 's/pref\("extensions\.zotero\.httpServer\.enabled", false\);/pref("extensions.zotero.httpServer.enabled", true);/g' "$out/libexec/zotero/defaults/preferences/zotero.js"
|
||||||
|
perl -pi -e 's/pref\("extensions\.zotero\.connector\.enabled", false\);/pref("extensions.zotero.connector.enabled", true);/g' "$out/libexec/zotero/defaults/preferences/zotero.js"
|
||||||
|
|
||||||
|
# Copy icons
|
||||||
|
cp -r assets/icons "$out/libexec/zotero/chrome/icons"
|
||||||
|
|
||||||
|
# Copy application.ini and modify
|
||||||
|
cp assets/application.ini "$out/libexec/zotero/application.ini"
|
||||||
|
perl -pi -e "s/{{VERSION}}/$version/" "$out/libexec/zotero/application.ini"
|
||||||
|
perl -pi -e "s/{{BUILDID}}/$BUILDID/" "$out/libexec/zotero/application.ini"
|
||||||
|
perl -pi -e "s/^MaxVersion.*\$/MaxVersion=$GECKO_VERSION/" "$out/libexec/zotero/application.ini"
|
||||||
|
|
||||||
|
# Copy prefs.js and modify
|
||||||
|
cp assets/prefs.js "$out/libexec/zotero/defaults/preferences"
|
||||||
|
perl -pi -e 's/pref\("app\.update\.channel", "[^"]*"\);/pref\("app\.update\.channel", "'"$UPDATE_CHANNEL"'");/' "$out/libexec/zotero/defaults/preferences/prefs.js"
|
||||||
|
perl -pi -e 's/%GECKO_VERSION%/'"$GECKO_VERSION"'/g' "$out/libexec/zotero/defaults/preferences/prefs.js"
|
||||||
|
|
||||||
|
# Add platform-specific standalone assets
|
||||||
|
cp -R assets/unix "$out/libexec/zotero"
|
||||||
|
|
||||||
mkdir -p "$out/bin"
|
mkdir -p "$out/bin"
|
||||||
substituteAll "${./zotero.sh}" "$out/bin/zotero"
|
substituteAll "${./zotero.sh}" "$out/bin/zotero"
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
{ stdenv, fetchurl, SDL, SDL_ttf, SDL_image, mesa, libpng, lua5, automake, autoconf }:
|
{ stdenv, fetchurl, SDL, SDL_ttf, SDL_image, mesa, libpng, lua5, automake, autoconf }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "gravit-0.5.0";
|
name = "gravit-0.5.1";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "http://gravit.slowchop.com/media/downloads/${name}.tgz";
|
url = "http://gravit.slowchop.com/media/downloads/${name}.tgz";
|
||||||
sha256 = "0lyw0skrkb04s16vgz7ggswjrdxk1h23v5s85s09gjxzjp1xd3xp";
|
sha256 = "14vf7zj2bgrl96wsl3f1knsggc8h9624354ajzd72l46y09x5ky7";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [mesa SDL SDL_ttf SDL_image lua5 automake autoconf libpng];
|
buildInputs = [mesa SDL SDL_ttf SDL_image lua5 automake autoconf libpng];
|
||||||
|
@ -1,15 +1,15 @@
|
|||||||
{ stdenv, fetchurl, cmake, freetype, libpng, mesa, gettext, openssl, qt4, perl
|
{ stdenv, fetchurl, cmake, freetype, libpng, mesa, gettext, openssl, qt5, perl
|
||||||
, libiconvOrEmpty }:
|
, libiconvOrEmpty }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "stellarium-0.12.4";
|
name = "stellarium-0.13.2";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://sourceforge/stellarium/${name}.tar.gz";
|
url = "mirror://sourceforge/stellarium/${name}.tar.gz";
|
||||||
sha256 = "11367hv9niyz9v47lf31vjsqkgc8da0vy2nhiyxgmk1i49p1pbhg";
|
sha256 = "1asrq1v6vjzxd2zz92brdfs5f5b1qf8zwd7k2dpg3dl4shl8wwg5";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ cmake freetype libpng mesa gettext openssl qt4 perl ]
|
buildInputs = [ cmake freetype libpng mesa gettext openssl qt5 perl ]
|
||||||
++ libiconvOrEmpty;
|
++ libiconvOrEmpty;
|
||||||
|
|
||||||
enableParallelBuilding = true;
|
enableParallelBuilding = true;
|
||||||
|
@ -3,11 +3,11 @@
|
|||||||
}:
|
}:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "pspp-0.8.2";
|
name = "pspp-0.8.3";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://gnu/pspp/${name}.tar.gz";
|
url = "mirror://gnu/pspp/${name}.tar.gz";
|
||||||
sha256 = "1w7h3dglgx0jlq1wb605b8pgfsk2vr1q2q2rj7bsajh9ihbcsixr";
|
sha256 = "0vri2pzvmm38qaihfvwlry30f40lcnps4blg59ixic4q20ldxf5d";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ libxml2 readline zlib perl cairo gtk gsl pkgconfig
|
buildInputs = [ libxml2 readline zlib perl cairo gtk gsl pkgconfig
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
{ stdenv, ruby, rubyLibs, fetchgit }:
|
{ stdenv, ruby, bundler, fetchgit }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
version = "2.1.0";
|
version = "2.1.0";
|
||||||
name = "gitlab-shell-${version}";
|
name = "gitlab-shell-${version}";
|
||||||
|
|
||||||
srcs = fetchgit {
|
srcs = fetchgit {
|
||||||
url = "https://gitlab.com/gitlab-org/gitlab-shell.git";
|
url = "https://gitlab.com/gitlab-org/gitlab-shell.git";
|
||||||
rev = "823aba63e444afa2f45477819770fec3cb5f0159";
|
rev = "823aba63e444afa2f45477819770fec3cb5f0159";
|
||||||
@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
|
|||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
ruby rubyLibs.bundler
|
ruby bundler
|
||||||
];
|
];
|
||||||
|
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
|
|||||||
export HOME=$(pwd)
|
export HOME=$(pwd)
|
||||||
bundle install -j4 --verbose --local --deployment --without development test
|
bundle install -j4 --verbose --local --deployment --without development test
|
||||||
'';
|
'';
|
||||||
|
|
||||||
# gitlab-shell will try to read its config relative to the source
|
# gitlab-shell will try to read its config relative to the source
|
||||||
# code by default which doesn't work in nixos because it's a
|
# code by default which doesn't work in nixos because it's a
|
||||||
# read-only filesystem
|
# read-only filesystem
|
||||||
|
258
pkgs/applications/version-management/gitlab/Gemfile
Normal file
258
pkgs/applications/version-management/gitlab/Gemfile
Normal file
@ -0,0 +1,258 @@
|
|||||||
|
source "https://rubygems.org"
|
||||||
|
|
||||||
|
def darwin_only(require_as)
|
||||||
|
RUBY_PLATFORM.include?('darwin') && require_as
|
||||||
|
end
|
||||||
|
|
||||||
|
def linux_only(require_as)
|
||||||
|
RUBY_PLATFORM.include?('linux') && require_as
|
||||||
|
end
|
||||||
|
|
||||||
|
gem "rails", "~> 4.1.0"
|
||||||
|
|
||||||
|
# Make links from text
|
||||||
|
gem 'rails_autolink', '~> 1.1'
|
||||||
|
|
||||||
|
# Default values for AR models
|
||||||
|
gem "default_value_for", "~> 3.0.0"
|
||||||
|
|
||||||
|
# Supported DBs
|
||||||
|
gem "mysql2", group: :mysql
|
||||||
|
gem "pg", group: :postgres
|
||||||
|
|
||||||
|
# Auth
|
||||||
|
gem "devise", '3.2.4'
|
||||||
|
gem "devise-async", '0.9.0'
|
||||||
|
gem 'omniauth', "~> 1.1.3"
|
||||||
|
gem 'omniauth-google-oauth2'
|
||||||
|
gem 'omniauth-twitter'
|
||||||
|
gem 'omniauth-github'
|
||||||
|
gem 'omniauth-shibboleth'
|
||||||
|
|
||||||
|
# Extracting information from a git repository
|
||||||
|
# Provide access to Gitlab::Git library
|
||||||
|
gem "gitlab_git", '7.0.0.rc10'
|
||||||
|
|
||||||
|
# Ruby/Rack Git Smart-HTTP Server Handler
|
||||||
|
gem 'gitlab-grack', '~> 2.0.0.pre', require: 'grack'
|
||||||
|
|
||||||
|
# LDAP Auth
|
||||||
|
gem 'gitlab_omniauth-ldap', '1.1.0', require: "omniauth-ldap"
|
||||||
|
|
||||||
|
# Git Wiki
|
||||||
|
gem 'gollum-lib', '~> 3.0.0'
|
||||||
|
|
||||||
|
# Language detection
|
||||||
|
gem "gitlab-linguist", "~> 3.0.0", require: "linguist"
|
||||||
|
|
||||||
|
# API
|
||||||
|
gem "grape", "~> 0.6.1"
|
||||||
|
gem "grape-entity", "~> 0.4.2"
|
||||||
|
gem 'rack-cors', require: 'rack/cors'
|
||||||
|
|
||||||
|
# Format dates and times
|
||||||
|
# based on human-friendly examples
|
||||||
|
gem "stamp"
|
||||||
|
|
||||||
|
# Enumeration fields
|
||||||
|
gem 'enumerize'
|
||||||
|
|
||||||
|
# Pagination
|
||||||
|
gem "kaminari", "~> 0.15.1"
|
||||||
|
|
||||||
|
# HAML
|
||||||
|
gem "haml-rails"
|
||||||
|
|
||||||
|
# Files attachments
|
||||||
|
gem "carrierwave"
|
||||||
|
|
||||||
|
# Drag and Drop UI
|
||||||
|
gem 'dropzonejs-rails'
|
||||||
|
|
||||||
|
# for aws storage
|
||||||
|
gem "fog", "~> 1.14"
|
||||||
|
gem "unf"
|
||||||
|
|
||||||
|
# Authorization
|
||||||
|
gem "six"
|
||||||
|
|
||||||
|
# Seed data
|
||||||
|
gem "seed-fu"
|
||||||
|
|
||||||
|
# Markup pipeline for GitLab
|
||||||
|
gem 'html-pipeline-gitlab', '~> 0.1.0'
|
||||||
|
|
||||||
|
# Markdown to HTML
|
||||||
|
gem "github-markup"
|
||||||
|
|
||||||
|
# Required markup gems by github-markdown
|
||||||
|
gem 'redcarpet', '~> 3.1.2'
|
||||||
|
gem 'RedCloth'
|
||||||
|
gem 'rdoc', '~>3.6'
|
||||||
|
gem 'org-ruby', '= 0.9.9'
|
||||||
|
gem 'creole', '~>0.3.6'
|
||||||
|
gem 'wikicloth', '=0.8.1'
|
||||||
|
gem 'asciidoctor', '= 0.1.4'
|
||||||
|
|
||||||
|
# Diffs
|
||||||
|
gem 'diffy', '~> 3.0.3'
|
||||||
|
|
||||||
|
# Application server
|
||||||
|
group :unicorn do
|
||||||
|
gem "unicorn", '~> 4.6.3'
|
||||||
|
gem 'unicorn-worker-killer'
|
||||||
|
end
|
||||||
|
|
||||||
|
# State machine
|
||||||
|
gem "state_machine"
|
||||||
|
|
||||||
|
# Issue tags
|
||||||
|
gem "acts-as-taggable-on"
|
||||||
|
|
||||||
|
# Background jobs
|
||||||
|
gem 'slim'
|
||||||
|
gem 'sinatra', require: nil
|
||||||
|
gem 'sidekiq', '2.17.0'
|
||||||
|
|
||||||
|
# HTTP requests
|
||||||
|
gem "httparty"
|
||||||
|
|
||||||
|
# Colored output to console
|
||||||
|
gem "colored"
|
||||||
|
|
||||||
|
# GitLab settings
|
||||||
|
gem 'settingslogic'
|
||||||
|
|
||||||
|
# Misc
|
||||||
|
gem "foreman"
|
||||||
|
gem 'version_sorter'
|
||||||
|
|
||||||
|
# Cache
|
||||||
|
gem "redis-rails"
|
||||||
|
|
||||||
|
# Campfire integration
|
||||||
|
gem 'tinder', '~> 1.9.2'
|
||||||
|
|
||||||
|
# HipChat integration
|
||||||
|
gem "hipchat", "~> 0.14.0"
|
||||||
|
|
||||||
|
# Flowdock integration
|
||||||
|
gem "gitlab-flowdock-git-hook", "~> 0.4.2"
|
||||||
|
|
||||||
|
# Gemnasium integration
|
||||||
|
gem "gemnasium-gitlab-service", "~> 0.2"
|
||||||
|
|
||||||
|
# Slack integration
|
||||||
|
gem "slack-notifier", "~> 0.3.2"
|
||||||
|
|
||||||
|
# d3
|
||||||
|
gem "d3_rails", "~> 3.1.4"
|
||||||
|
|
||||||
|
# underscore-rails
|
||||||
|
gem "underscore-rails", "~> 1.4.4"
|
||||||
|
|
||||||
|
# Sanitize user input
|
||||||
|
gem "sanitize", '~> 2.0'
|
||||||
|
|
||||||
|
# Protect against bruteforcing
|
||||||
|
gem "rack-attack"
|
||||||
|
|
||||||
|
# Ace editor
|
||||||
|
gem 'ace-rails-ap'
|
||||||
|
|
||||||
|
# Keyboard shortcuts
|
||||||
|
gem 'mousetrap-rails'
|
||||||
|
|
||||||
|
# Semantic UI Sass for Sidebar
|
||||||
|
gem 'semantic-ui-sass', '~> 0.16.1.0'
|
||||||
|
|
||||||
|
gem "sass-rails", '~> 4.0.2'
|
||||||
|
gem "coffee-rails"
|
||||||
|
gem "uglifier"
|
||||||
|
gem "therubyracer"
|
||||||
|
gem 'turbolinks'
|
||||||
|
gem 'jquery-turbolinks'
|
||||||
|
|
||||||
|
gem 'select2-rails'
|
||||||
|
gem 'jquery-atwho-rails', "~> 0.3.3"
|
||||||
|
gem "jquery-rails"
|
||||||
|
gem "jquery-ui-rails"
|
||||||
|
gem "jquery-scrollto-rails"
|
||||||
|
gem "raphael-rails", "~> 2.1.2"
|
||||||
|
gem 'bootstrap-sass', '~> 3.0'
|
||||||
|
gem "font-awesome-rails", '~> 4.2'
|
||||||
|
gem "gitlab_emoji", "~> 0.0.1.1"
|
||||||
|
gem "gon", '~> 5.0.0'
|
||||||
|
gem 'nprogress-rails'
|
||||||
|
gem 'request_store'
|
||||||
|
gem "virtus"
|
||||||
|
|
||||||
|
group :development do
|
||||||
|
gem "annotate", "~> 2.6.0.beta2"
|
||||||
|
gem "letter_opener"
|
||||||
|
gem 'quiet_assets', '~> 1.0.1'
|
||||||
|
gem 'rack-mini-profiler', require: false
|
||||||
|
|
||||||
|
# Better errors handler
|
||||||
|
gem 'better_errors'
|
||||||
|
gem 'binding_of_caller'
|
||||||
|
|
||||||
|
gem 'rails_best_practices'
|
||||||
|
|
||||||
|
# Docs generator
|
||||||
|
gem "sdoc"
|
||||||
|
|
||||||
|
# thin instead webrick
|
||||||
|
gem 'thin'
|
||||||
|
end
|
||||||
|
|
||||||
|
group :development, :test do
|
||||||
|
gem 'coveralls', require: false
|
||||||
|
# gem 'rails-dev-tweaks'
|
||||||
|
gem 'spinach-rails'
|
||||||
|
gem "rspec-rails"
|
||||||
|
gem "capybara", '~> 2.2.1'
|
||||||
|
gem "pry"
|
||||||
|
gem "awesome_print"
|
||||||
|
gem "database_cleaner"
|
||||||
|
gem "launchy"
|
||||||
|
gem 'factory_girl_rails'
|
||||||
|
|
||||||
|
# Prevent occasions where minitest is not bundled in packaged versions of ruby (see #3826)
|
||||||
|
gem 'minitest', '~> 5.3.0'
|
||||||
|
|
||||||
|
# Generate Fake data
|
||||||
|
gem "ffaker"
|
||||||
|
|
||||||
|
# Guard
|
||||||
|
gem 'guard-rspec'
|
||||||
|
gem 'guard-spinach'
|
||||||
|
|
||||||
|
# Notification
|
||||||
|
gem 'rb-fsevent', require: darwin_only('rb-fsevent')
|
||||||
|
gem 'growl', require: darwin_only('growl')
|
||||||
|
gem 'rb-inotify', require: linux_only('rb-inotify')
|
||||||
|
|
||||||
|
# PhantomJS driver for Capybara
|
||||||
|
gem 'poltergeist', '~> 1.5.1'
|
||||||
|
|
||||||
|
gem 'jasmine', '2.0.2'
|
||||||
|
|
||||||
|
gem "spring", '1.1.3'
|
||||||
|
gem "spring-commands-rspec", '1.0.1'
|
||||||
|
gem "spring-commands-spinach", '1.0.0'
|
||||||
|
end
|
||||||
|
|
||||||
|
group :test do
|
||||||
|
gem "simplecov", require: false
|
||||||
|
gem "shoulda-matchers", "~> 2.1.0"
|
||||||
|
gem 'email_spec'
|
||||||
|
gem "webmock"
|
||||||
|
gem 'test_after_commit'
|
||||||
|
end
|
||||||
|
|
||||||
|
group :production do
|
||||||
|
gem "gitlab_meta", '7.0'
|
||||||
|
end
|
||||||
|
|
||||||
|
gem "newrelic_rpm"
|
@ -281,6 +281,7 @@ GEM
|
|||||||
addressable (~> 2.3)
|
addressable (~> 2.3)
|
||||||
letter_opener (1.1.2)
|
letter_opener (1.1.2)
|
||||||
launchy (~> 2.2)
|
launchy (~> 2.2)
|
||||||
|
libv8 (3.16.14.3)
|
||||||
listen (2.3.1)
|
listen (2.3.1)
|
||||||
celluloid (>= 0.15.2)
|
celluloid (>= 0.15.2)
|
||||||
rb-fsevent (>= 0.9.3)
|
rb-fsevent (>= 0.9.3)
|
||||||
@ -297,6 +298,7 @@ GEM
|
|||||||
multi_json (1.10.1)
|
multi_json (1.10.1)
|
||||||
multi_xml (0.5.5)
|
multi_xml (0.5.5)
|
||||||
multipart-post (1.2.0)
|
multipart-post (1.2.0)
|
||||||
|
mysql2 (0.3.16)
|
||||||
net-ldap (0.7.0)
|
net-ldap (0.7.0)
|
||||||
net-scp (1.1.2)
|
net-scp (1.1.2)
|
||||||
net-ssh (>= 2.6.5)
|
net-ssh (>= 2.6.5)
|
||||||
@ -420,6 +422,7 @@ GEM
|
|||||||
redis-store (~> 1.1.0)
|
redis-store (~> 1.1.0)
|
||||||
redis-store (1.1.4)
|
redis-store (1.1.4)
|
||||||
redis (>= 2.2)
|
redis (>= 2.2)
|
||||||
|
ref (1.0.5)
|
||||||
request_store (1.0.5)
|
request_store (1.0.5)
|
||||||
require_all (1.3.2)
|
require_all (1.3.2)
|
||||||
rest-client (1.6.7)
|
rest-client (1.6.7)
|
||||||
@ -518,6 +521,9 @@ GEM
|
|||||||
term-ansicolor (1.2.2)
|
term-ansicolor (1.2.2)
|
||||||
tins (~> 0.8)
|
tins (~> 0.8)
|
||||||
test_after_commit (0.2.2)
|
test_after_commit (0.2.2)
|
||||||
|
therubyracer (0.12.0)
|
||||||
|
libv8 (~> 3.16.14.0)
|
||||||
|
ref
|
||||||
thin (1.6.1)
|
thin (1.6.1)
|
||||||
daemons (>= 1.0.9)
|
daemons (>= 1.0.9)
|
||||||
eventmachine (>= 1.0.0)
|
eventmachine (>= 1.0.0)
|
||||||
@ -691,6 +697,7 @@ DEPENDENCIES
|
|||||||
stamp
|
stamp
|
||||||
state_machine
|
state_machine
|
||||||
test_after_commit
|
test_after_commit
|
||||||
|
therubyracer
|
||||||
thin
|
thin
|
||||||
tinder (~> 1.9.2)
|
tinder (~> 1.9.2)
|
||||||
turbolinks
|
turbolinks
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -1,5 +0,0 @@
|
|||||||
to regenerate Gemfile.nix and Gemfile.lock you need to
|
|
||||||
|
|
||||||
% nix-build bootstrap.nix
|
|
||||||
% cp result/Gemfile.nix ./
|
|
||||||
% cp result/Gemfile.lock ./
|
|
@ -1,45 +0,0 @@
|
|||||||
{ pkgs ? import <nixpkgs> {}
|
|
||||||
}:
|
|
||||||
|
|
||||||
with pkgs;
|
|
||||||
|
|
||||||
let
|
|
||||||
|
|
||||||
in stdenv.mkDerivation rec {
|
|
||||||
version = "7.4.2";
|
|
||||||
name = "gitlab-${version}";
|
|
||||||
__noChroot = true;
|
|
||||||
src = fetchurl {
|
|
||||||
url = "https://github.com/gitlabhq/gitlabhq/archive/v${version}.zip";
|
|
||||||
sha256 = "01iplkpa4scr0wcap6vjrc960dj15z4ciclaqswj0sz5hrp9glw6";
|
|
||||||
};
|
|
||||||
buildInputs = [
|
|
||||||
ruby rubyLibs.bundler libiconv libxslt libxml2 pkgconfig
|
|
||||||
libffi postgresql which stdenv unzip
|
|
||||||
];
|
|
||||||
installPhase = ''
|
|
||||||
unset http_proxy
|
|
||||||
unset ftp_proxy
|
|
||||||
|
|
||||||
cp -R . $out
|
|
||||||
cp ${./generate_nix_requirements.rb} $out/generate_nix_requirements.rb
|
|
||||||
cd $out
|
|
||||||
|
|
||||||
cat > config/database.yml <<EOF
|
|
||||||
production:
|
|
||||||
adapter: postgresql
|
|
||||||
EOF
|
|
||||||
|
|
||||||
substituteInPlace Gemfile --replace 'gem "therubyracer"' ""
|
|
||||||
|
|
||||||
bundle config --local build.nokogiri --use-system-libraries \
|
|
||||||
--with-iconv-dir=${libiconv} \
|
|
||||||
--with-xslt-dir=${libxslt} \
|
|
||||||
--with-xml2-dir=${libxml2} \
|
|
||||||
--with-pkg-config \
|
|
||||||
--with-pg-config=${postgresql}/bin/pg_config
|
|
||||||
|
|
||||||
HOME="/tmp/gitlab-${version}" ruby generate_nix_requirements.rb
|
|
||||||
rm -R /tmp/gems
|
|
||||||
'';
|
|
||||||
}
|
|
@ -1,41 +1,54 @@
|
|||||||
{ stdenv, fetchurl, ruby, rubyLibs, libiconv, libxslt, libxml2, pkgconfig, libffi, postgresql, libyaml, ncurses, curl, openssh, redis, zlib, icu, checkinstall, logrotate, docutils, cmake, git, gdbm, readline, unzip, gnumake, which, tzdata, nodejs }:
|
{ stdenv, lib, bundler, fetchgit, bundlerEnv, defaultGemConfig, libiconv, ruby
|
||||||
|
, tzdata, git
|
||||||
|
}:
|
||||||
|
|
||||||
let
|
let
|
||||||
gemspec = map (gem: fetchurl { url=gem.url; sha256=gem.hash; }) (import ./Gemfile.nix);
|
gitlab = fetchgit {
|
||||||
|
url = "https://github.com/gitlabhq/gitlabhq.git";
|
||||||
|
rev = "477743a154e85c411e8a533980abce460b5669fc";
|
||||||
in stdenv.mkDerivation rec {
|
fetchSubmodules = false;
|
||||||
version = "7.4.2";
|
sha256 = "0jl1w9d46v8hc27h9s380ha07m3fd2zpflj4q9vywwcf570ahj7x";
|
||||||
name = "gitlab-${version}";
|
|
||||||
|
|
||||||
src = fetchurl {
|
|
||||||
url = "https://github.com/gitlabhq/gitlabhq/archive/v${version}.zip";
|
|
||||||
sha256 = "01iplkpa4scr0wcap6vjrc960dj15z4ciclaqswj0sz5hrp9glw6";
|
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [
|
env = bundlerEnv {
|
||||||
ruby rubyLibs.bundler libyaml gdbm readline ncurses curl openssh redis zlib
|
name = "gitlab";
|
||||||
postgresql libxslt libxml2 pkgconfig libffi icu checkinstall logrotate docutils nodejs
|
inherit ruby;
|
||||||
git unzip gnumake which cmake
|
gemfile = ./Gemfile;
|
||||||
];
|
lockfile = ./Gemfile.lock;
|
||||||
|
gemset = ./gemset.nix;
|
||||||
|
meta = with lib; {
|
||||||
|
homepage = http://www.gitlab.com/;
|
||||||
|
platforms = platforms.linux;
|
||||||
|
maintainers = [ ];
|
||||||
|
license = licenses.mit;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
# cmake is required by a build depdenceny, not the main binary:
|
in
|
||||||
dontUseCmakeConfigure = true;
|
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
name = "gitlab-${version}";
|
||||||
|
version = "7.4.2";
|
||||||
|
buildInputs = [ ruby bundler tzdata git ];
|
||||||
|
unpackPhase = ''
|
||||||
|
runHook preUnpack
|
||||||
|
cp -r ${gitlab}/* .
|
||||||
|
chmod -R +w .
|
||||||
|
cp ${./Gemfile} Gemfile
|
||||||
|
cp ${./Gemfile.lock} Gemfile.lock
|
||||||
|
runHook postUnpack
|
||||||
|
'';
|
||||||
patches = [
|
patches = [
|
||||||
./remove-hardcoded-locations.patch
|
./remove-hardcoded-locations.patch
|
||||||
];
|
];
|
||||||
postPatch = ''
|
postPatch = ''
|
||||||
|
# For reasons I don't understand "bundle exec" ignores the
|
||||||
|
# RAILS_ENV causing tests to be executed that fail because we're
|
||||||
|
# not installing development and test gems above. Deleting the
|
||||||
|
# tests works though.:
|
||||||
|
rm lib/tasks/test.rake
|
||||||
|
|
||||||
mv config/gitlab.yml.example config/gitlab.yml
|
mv config/gitlab.yml.example config/gitlab.yml
|
||||||
'';
|
|
||||||
|
|
||||||
installPhase = ''
|
|
||||||
mkdir -p $out/share/gitlab
|
|
||||||
cp -R . $out/share/gitlab
|
|
||||||
cd $out/share/gitlab
|
|
||||||
|
|
||||||
export HOME=$(pwd)
|
|
||||||
export GITLAB_EMAIL_FROM="required@to-make-it-work.org"
|
|
||||||
|
|
||||||
# required for some gems:
|
# required for some gems:
|
||||||
cat > config/database.yml <<EOF
|
cat > config/database.yml <<EOF
|
||||||
@ -47,41 +60,17 @@ in stdenv.mkDerivation rec {
|
|||||||
username: gitlab
|
username: gitlab
|
||||||
encoding: utf8
|
encoding: utf8
|
||||||
EOF
|
EOF
|
||||||
|
'';
|
||||||
mkdir -p vendor/cache
|
buildPhase = ''
|
||||||
${stdenv.lib.concatStrings (map (gem: "ln -s ${gem} vendor/cache/${gem.name};") gemspec)}
|
export GEM_HOME=${env}/${ruby.gemPath}
|
||||||
|
|
||||||
cp ${./Gemfile.lock} Gemfile.lock
|
|
||||||
substituteInPlace Gemfile --replace 'gem "therubyracer"' ""
|
|
||||||
|
|
||||||
bundle config build.nokogiri \
|
|
||||||
--use-system-libraries \
|
|
||||||
--with-xslt-dir=${libxslt} \
|
|
||||||
--with-xml2-dir=${libxml2} \
|
|
||||||
--with-pkg-config=${pkgconfig}/bin/pkg-config \
|
|
||||||
--with-pg-config=${postgresql}/bin/pg_config
|
|
||||||
|
|
||||||
# See https://github.com/gitlabhq/gitlab-public-wiki/wiki/Trouble-Shooting-Guide:
|
|
||||||
bundle install -j4 --verbose --local --deployment --without development test mysql
|
|
||||||
|
|
||||||
# Fix timezone data directory
|
|
||||||
substituteInPlace $out/share/gitlab/vendor/bundle/ruby/*/gems/tzinfo-*/lib/tzinfo/zoneinfo_data_source.rb \
|
|
||||||
--replace "/etc/zoneinfo" "${tzdata}/share/zoneinfo"
|
|
||||||
|
|
||||||
# For reasons I don't understand "bundle exec" ignores the
|
|
||||||
# RAILS_ENV causing tests to be executed that fail because we're
|
|
||||||
# not installing development and test gems above. Deleting the
|
|
||||||
# tests works though.:
|
|
||||||
rm $out/share/gitlab/lib/tasks/test.rake
|
|
||||||
|
|
||||||
# Assets
|
|
||||||
bundle exec rake assets:precompile RAILS_ENV=production
|
bundle exec rake assets:precompile RAILS_ENV=production
|
||||||
'';
|
'';
|
||||||
|
installPhase = ''
|
||||||
meta = with stdenv.lib; {
|
mkdir -p $out/share
|
||||||
homepage = http://www.gitlab.com/;
|
cp -r . $out/share/gitlab
|
||||||
platforms = platforms.linux;
|
'';
|
||||||
maintainers = [ ];
|
passthru = {
|
||||||
license = licenses.mit;
|
inherit env;
|
||||||
|
inherit ruby;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
2398
pkgs/applications/version-management/gitlab/gemset.nix
Normal file
2398
pkgs/applications/version-management/gitlab/gemset.nix
Normal file
File diff suppressed because it is too large
Load Diff
@ -1,56 +0,0 @@
|
|||||||
#!/usr/bin/env ruby
|
|
||||||
|
|
||||||
require 'rubygems'
|
|
||||||
require 'bundler'
|
|
||||||
require 'fileutils'
|
|
||||||
require 'net/http'
|
|
||||||
require 'net/https'
|
|
||||||
require 'uri'
|
|
||||||
|
|
||||||
TMP_DIR = "/tmp/gems"
|
|
||||||
|
|
||||||
FileUtils.rm_rf(TMP_DIR) if File.exists?(TMP_DIR)
|
|
||||||
FileUtils.mkdir TMP_DIR
|
|
||||||
|
|
||||||
GEMSERVER = "http://rubygems.org"
|
|
||||||
|
|
||||||
# inspect Gemfile.lock
|
|
||||||
lockfile = Bundler::LockfileParser.new(Bundler.read_file("Gemfile.lock"))
|
|
||||||
|
|
||||||
to_mirror = {}
|
|
||||||
|
|
||||||
uri = URI(GEMSERVER)
|
|
||||||
http = Net::HTTP.new(uri.host, uri.port)
|
|
||||||
http.use_ssl = uri.scheme == 'https'
|
|
||||||
|
|
||||||
requirements = {}
|
|
||||||
|
|
||||||
lockfile.specs.each do |s|
|
|
||||||
possible_gem_name = "#{s.name}-#{s.version.to_s}.gem"
|
|
||||||
|
|
||||||
Dir.chdir TMP_DIR do
|
|
||||||
filename = `gem fetch #{s.name} -v #{s.version.to_s}`.split()[1]
|
|
||||||
hash = `sha256sum #{filename}.gem`
|
|
||||||
url = "#{GEMSERVER}/downloads/#{filename}.gem"
|
|
||||||
puts url
|
|
||||||
requirements[s.name] = { :version => s.version.to_s,
|
|
||||||
:hash => hash.split().first,
|
|
||||||
:url => url,}
|
|
||||||
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
filename = 'Gemfile.nix'
|
|
||||||
|
|
||||||
File.open(filename, 'w') do |file|
|
|
||||||
file.puts "["
|
|
||||||
requirements.each do |name, info|
|
|
||||||
file.puts "{"
|
|
||||||
file.puts ['name = ', '"', name, '";'].join('')
|
|
||||||
file.puts ['hash = ', '"', info[:hash], '";'].join('')
|
|
||||||
file.puts ['url = ', '"', info[:url], '";'].join('')
|
|
||||||
file.puts ['version = ', '"', info[:version], '";'].join('')
|
|
||||||
file.puts "}"
|
|
||||||
end
|
|
||||||
file.puts "]"
|
|
||||||
end
|
|
@ -1,4 +1,6 @@
|
|||||||
{stdenv, fetchurl, itstool, buildPythonPackage, python27, intltool, scrollkeeper, makeWrapper, libxml2, pygobject3, gobjectIntrospection, gtk3, gnome3, pycairo, cairo}:
|
{ stdenv, fetchurl, itstool, buildPythonPackage, python27, intltool, makeWrapper
|
||||||
|
, libxml2, pygobject3, gobjectIntrospection, gtk3, gnome3, pycairo, cairo
|
||||||
|
}:
|
||||||
|
|
||||||
|
|
||||||
let
|
let
|
||||||
@ -15,7 +17,10 @@ buildPythonPackage rec {
|
|||||||
sha256 = "1zg6qhm53j0vxmjj3pcj2hwi8c12dxzmlh98zks0jnwhqv2p4dfv";
|
sha256 = "1zg6qhm53j0vxmjj3pcj2hwi8c12dxzmlh98zks0jnwhqv2p4dfv";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ python27 intltool scrollkeeper makeWrapper itstool libxml2 gnome3.gtksourceview gnome3.gsettings_desktop_schemas pycairo cairo];
|
buildInputs = [
|
||||||
|
python27 intltool makeWrapper itstool libxml2
|
||||||
|
gnome3.gtksourceview gnome3.gsettings_desktop_schemas pycairo cairo
|
||||||
|
];
|
||||||
propagatedBuildInputs = [ gobjectIntrospection pygobject3 gtk3 ];
|
propagatedBuildInputs = [ gobjectIntrospection pygobject3 gtk3 ];
|
||||||
|
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
{ stdenv, fetchurl, ed }:
|
{ stdenv, fetchurl, ed }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "rcs-5.9.3";
|
name = "rcs-5.9.4";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://gnu/rcs/${name}.tar.xz";
|
url = "mirror://gnu/rcs/${name}.tar.xz";
|
||||||
sha256 = "0isvzwfvqkg7zcsznra6wqh650z49ib113n7gp6ncxv5p30x3c38";
|
sha256 = "1zsx7bb0rgvvvisiy4zlixf56ay8wbd9qqqcp1a1g0m1gl6mlg86";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ ed ];
|
buildInputs = [ ed ];
|
||||||
|
108
pkgs/applications/video/kodi/plugins.nix
Normal file
108
pkgs/applications/video/kodi/plugins.nix
Normal file
@ -0,0 +1,108 @@
|
|||||||
|
{ stdenv, fetchFromGitHub, kodi }:
|
||||||
|
|
||||||
|
let
|
||||||
|
|
||||||
|
pluginDir = "/lib/kodi/plugin";
|
||||||
|
|
||||||
|
mkKodiPlugin = { plugin, namespace, version, src, meta, ... }:
|
||||||
|
stdenv.lib.makeOverridable stdenv.mkDerivation rec {
|
||||||
|
inherit src meta;
|
||||||
|
name = "kodi-plugin-${plugin}-${version}";
|
||||||
|
passthru = {
|
||||||
|
kodiPlugin = pluginDir;
|
||||||
|
namespace = namespace;
|
||||||
|
};
|
||||||
|
dontStrip = true;
|
||||||
|
installPhase = ''
|
||||||
|
d=$out${pluginDir}/${namespace}
|
||||||
|
mkdir -p $d
|
||||||
|
sauce="."
|
||||||
|
[ -d ${namespace} ] && sauce=${namespace}
|
||||||
|
cp -R $sauce/* $d
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
in
|
||||||
|
{
|
||||||
|
|
||||||
|
advanced-launcher = mkKodiPlugin rec {
|
||||||
|
|
||||||
|
plugin = "advanced-launcher";
|
||||||
|
namespace = "plugin.program.advanced.launcher";
|
||||||
|
version = "2.5.8";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "Angelscry";
|
||||||
|
repo = namespace;
|
||||||
|
rev = "bb380b6e8b664246a791f553ddc856cbc60dae1f";
|
||||||
|
sha256 = "0g4kk68zjl5rf6mll4g4cywq70s267471dp5r1qp3bpfpzkn0vf2";
|
||||||
|
};
|
||||||
|
|
||||||
|
meta = with stdenv.lib; {
|
||||||
|
homepage = "http://forum.kodi.tv/showthread.php?tid=85724";
|
||||||
|
description = "A program launcher for Kodi";
|
||||||
|
longDescription = ''
|
||||||
|
Advanced Launcher allows you to start any Linux, Windows and
|
||||||
|
OS X external applications (with command line support or not)
|
||||||
|
directly from the Kodi GUI. Advanced Launcher also give you
|
||||||
|
the possibility to edit, download (from Internet resources)
|
||||||
|
and manage all the meta-data (informations and images) related
|
||||||
|
to these applications.
|
||||||
|
'';
|
||||||
|
platforms = platforms.all;
|
||||||
|
maintainers = with maintainers; [ edwtjo ];
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
genesis = mkKodiPlugin rec {
|
||||||
|
|
||||||
|
plugin = "genesis";
|
||||||
|
namespace = "plugin.video.genesis";
|
||||||
|
version = "2.4.1";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "lambda81";
|
||||||
|
repo = "lambda-addons";
|
||||||
|
rev = "1eb1632063e18f3f30e9fdbed2a15cf1e9c05315";
|
||||||
|
sha256 = "1gzx0jq4gyhkpdd21a70lhww9djr5dlgyl93b4l7dhgr3hnzxccl";
|
||||||
|
};
|
||||||
|
|
||||||
|
meta = with stdenv.lib; {
|
||||||
|
homepage = "http://forums.tvaddons.ag/forums/148-lambda-s-kodi-addons";
|
||||||
|
description = "The origins of streaming";
|
||||||
|
platforms = platforms.all;
|
||||||
|
maintainers = with maintainers; [ edwtjo ];
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
svtplay = mkKodiPlugin rec {
|
||||||
|
|
||||||
|
plugin = "svtplay";
|
||||||
|
namespace = "plugin.video.svtplay";
|
||||||
|
version = "4.0.9";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "nilzen";
|
||||||
|
repo = "xbmc-" + plugin;
|
||||||
|
rev = "29a754e49584d1ca32f0c07b87304669cf266bb0";
|
||||||
|
sha256 = "0k7mwaknw4h1jlq7ialbzgxxpb11j8bk29dx2gimp40lvnyw4yhz";
|
||||||
|
};
|
||||||
|
|
||||||
|
meta = with stdenv.lib; {
|
||||||
|
homepage = "http://forum.kodi.org/showthread.php?tid=67110";
|
||||||
|
description = "Watch content from SVT Play";
|
||||||
|
longDescription = ''
|
||||||
|
With this addon you can stream content from SVT Play
|
||||||
|
(svtplay.se). The plugin fetches the video URL from the SVT
|
||||||
|
Play website and feeds it to the Kodi video player. HLS (m3u8)
|
||||||
|
is the preferred video format by the plugin.
|
||||||
|
'';
|
||||||
|
platforms = platforms.all;
|
||||||
|
maintainers = with maintainers; [ edwtjo ];
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
53
pkgs/applications/video/kodi/wrapper.nix
Normal file
53
pkgs/applications/video/kodi/wrapper.nix
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
{ stdenv, lib, makeWrapper, kodi, plugins }:
|
||||||
|
|
||||||
|
let
|
||||||
|
|
||||||
|
p = builtins.parseDrvName kodi.name;
|
||||||
|
|
||||||
|
in
|
||||||
|
|
||||||
|
stdenv.mkDerivation {
|
||||||
|
|
||||||
|
name = "kodi-" + p.version;
|
||||||
|
version = p.version;
|
||||||
|
|
||||||
|
buildInputs = [ makeWrapper ];
|
||||||
|
|
||||||
|
buildCommand = ''
|
||||||
|
mkdir -p $out/share/kodi/addons/packages
|
||||||
|
${stdenv.lib.concatMapStrings
|
||||||
|
(plugin: "ln -s ${plugin.out
|
||||||
|
+ plugin.kodiPlugin
|
||||||
|
+ "/" + plugin.namespace
|
||||||
|
} $out/share/kodi/addons/.;") plugins}
|
||||||
|
$(for plugin in ${kodi}/share/kodi/addons/*
|
||||||
|
do
|
||||||
|
$(ln -s $plugin/ $out/share/kodi/addons/.)
|
||||||
|
done)
|
||||||
|
$(for share in ${kodi}/share/kodi/*
|
||||||
|
do
|
||||||
|
$(ln -s $share $out/share/kodi/.)
|
||||||
|
done)
|
||||||
|
$(for passthrough in icons xsessions applications
|
||||||
|
do
|
||||||
|
ln -s ${kodi}/share/$passthrough $out/share/
|
||||||
|
done)
|
||||||
|
$(for exe in kodi{,-standalone}
|
||||||
|
do
|
||||||
|
makeWrapper ${kodi}/bin/$exe $out/bin/$exe \
|
||||||
|
--prefix KODI_HOME : $out/share/kodi;
|
||||||
|
done)
|
||||||
|
'';
|
||||||
|
|
||||||
|
preferLocalBuilds = true;
|
||||||
|
|
||||||
|
meta = with kodi.meta; {
|
||||||
|
inherit license homepage;
|
||||||
|
description = description
|
||||||
|
+ " (with plugins: "
|
||||||
|
+ lib.concatStrings (lib.intersperse ", " (map (x: ""+x.name) plugins))
|
||||||
|
+ ")";
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
174
pkgs/build-support/autonix/default.nix
Normal file
174
pkgs/build-support/autonix/default.nix
Normal file
@ -0,0 +1,174 @@
|
|||||||
|
{ bash, callPackage, coreutils, fetchurl, findutils, nix, runCommand, stdenv
|
||||||
|
, substituteAll, wget, writeText }:
|
||||||
|
|
||||||
|
/* autonix is a collection of tools to automate packaging large collections
|
||||||
|
* of software, particularly KDE. It consists of three components:
|
||||||
|
* 1. a script (manifest) to download and hash the packages
|
||||||
|
* 2. a dependency scanner (autonix-deps) written in Haskell that examines
|
||||||
|
* the package sources and tries to guess their dependencies
|
||||||
|
* 3. a library of Nix routines (generateCollection) to generate Nix
|
||||||
|
* expressions from the output of the previous steps.
|
||||||
|
*/
|
||||||
|
|
||||||
|
with stdenv.lib;
|
||||||
|
|
||||||
|
let
|
||||||
|
|
||||||
|
/* Download the packages into the Nix store, compute their hashes,
|
||||||
|
* and generate a package manifest in ./manifest.nix.
|
||||||
|
*/
|
||||||
|
manifest =
|
||||||
|
let
|
||||||
|
script =
|
||||||
|
substituteAll
|
||||||
|
{
|
||||||
|
src = ./manifest.sh;
|
||||||
|
inherit bash coreutils findutils nix wget;
|
||||||
|
};
|
||||||
|
in
|
||||||
|
runCommand "autonix-manifest" {}
|
||||||
|
''
|
||||||
|
cp ${script} $out
|
||||||
|
chmod +x $out
|
||||||
|
'';
|
||||||
|
|
||||||
|
/* Convert a manifest.nix file to XML to be read by autonix-deps. */
|
||||||
|
writeManifestXML = filename:
|
||||||
|
let
|
||||||
|
generateStores = mapAttrs (n: pkg: pkg.store);
|
||||||
|
manifest = generateStores (importManifest filename { mirror = ""; });
|
||||||
|
in
|
||||||
|
writeText "manifest.xml" (builtins.toXML manifest);
|
||||||
|
|
||||||
|
/* Generate a set of Nix expressions for the collection, given a
|
||||||
|
* manifest.nix, dependencies.nix, and renames.nix in the same directory.
|
||||||
|
*/
|
||||||
|
generateCollection = dir: # path to directory
|
||||||
|
{ mirror # mirror to download packages from
|
||||||
|
, mkDerivation ? mkDerivation
|
||||||
|
, preResolve ? id # modify package set before dependency resolution
|
||||||
|
, postResolve ? id # modify package set after dependency resolution
|
||||||
|
, renames ? {}
|
||||||
|
, scope ? {}
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
|
||||||
|
fix = f: let x = f x; in x;
|
||||||
|
|
||||||
|
resolvePkg = name:
|
||||||
|
mapAttrs (attr: if isDepAttr attr then resolveDeps scope else id);
|
||||||
|
|
||||||
|
resolve = mapAttrs resolvePkg;
|
||||||
|
|
||||||
|
derive = mapAttrs (name: mkDerivation);
|
||||||
|
|
||||||
|
renames_ =
|
||||||
|
if renames == {} then (import (dir + "/renames.nix") {}) else renames;
|
||||||
|
|
||||||
|
packages = importPackages dir renames_ { inherit mirror; };
|
||||||
|
|
||||||
|
in derive (postResolve (resolve (preResolve packages)));
|
||||||
|
|
||||||
|
pkgNameVersion = pkg: nameFromURL pkg.name ".tar";
|
||||||
|
pkgAttrName = pkg: (builtins.parseDrvName (pkgNameVersion pkg)).name;
|
||||||
|
pkgVersion = pkg: (builtins.parseDrvName (pkgNameVersion pkg)).version;
|
||||||
|
|
||||||
|
depAttrNames = [
|
||||||
|
"buildInputs" "nativeBuildInputs"
|
||||||
|
"propagatedBuildInputs" "propagatedNativeBuildInputs"
|
||||||
|
"propagatedUserEnvPkgs"
|
||||||
|
];
|
||||||
|
|
||||||
|
isDepAttr = name: builtins.elem name depAttrNames;
|
||||||
|
|
||||||
|
removePkgDeps = deps:
|
||||||
|
let removeDepsIfDepAttr = attr: value:
|
||||||
|
if isDepAttr attr then fold remove value deps else value;
|
||||||
|
in mapAttrs removeDepsIfDepAttr;
|
||||||
|
|
||||||
|
hasDep = dep: pkg:
|
||||||
|
let depAttrs = attrValues (filterAttrs (n: v: isDepAttr n) pkg);
|
||||||
|
allDeps = concatLists depAttrs;
|
||||||
|
in elem dep allDeps;
|
||||||
|
|
||||||
|
importManifest = path: { mirror }:
|
||||||
|
let
|
||||||
|
uniqueNames = manifest:
|
||||||
|
unique (map pkgAttrName manifest);
|
||||||
|
|
||||||
|
versionsOf = manifest: name:
|
||||||
|
filter (pkg: pkgAttrName pkg == name) manifest;
|
||||||
|
|
||||||
|
bestVersions = manifest:
|
||||||
|
let best = versions:
|
||||||
|
let
|
||||||
|
strictlyLess = a: b:
|
||||||
|
builtins.compareVersions (pkgVersion a) (pkgVersion b) > 0;
|
||||||
|
sorted = sort strictlyLess versions;
|
||||||
|
in head sorted;
|
||||||
|
in map (name: best (versionsOf manifest name)) (uniqueNames manifest);
|
||||||
|
|
||||||
|
withNames = manifest:
|
||||||
|
builtins.listToAttrs
|
||||||
|
(map (p: nameValuePair (toLower (pkgAttrName p)) p) manifest);
|
||||||
|
|
||||||
|
orig = import path { inherit mirror; };
|
||||||
|
in
|
||||||
|
fold (f: x: f x) orig [ withNames bestVersions ];
|
||||||
|
|
||||||
|
importPackages = path: renames: manifestScope:
|
||||||
|
let
|
||||||
|
|
||||||
|
# Do not allow any package to depend on itself.
|
||||||
|
breakRecursion =
|
||||||
|
let removeSelfDep = pkg:
|
||||||
|
mapAttrs
|
||||||
|
(n: if isDepAttr n
|
||||||
|
then filter (dep: dep != pkg && renamed dep != pkg)
|
||||||
|
else id);
|
||||||
|
in mapAttrs removeSelfDep;
|
||||||
|
|
||||||
|
renamed = dep: renames."${dep}" or dep;
|
||||||
|
|
||||||
|
manifest = importManifest (path + "/manifest.nix") manifestScope;
|
||||||
|
|
||||||
|
deps = import (path + "/dependencies.nix") {};
|
||||||
|
|
||||||
|
mkPkg = pkg: pkgManifest:
|
||||||
|
{
|
||||||
|
name = nameFromURL pkgManifest.name ".tar";
|
||||||
|
src = { inherit (pkgManifest) sha256 name url; };
|
||||||
|
inherit (deps."${pkg}")
|
||||||
|
buildInputs nativeBuildInputs propagatedBuildInputs
|
||||||
|
propagatedNativeBuildInputs propagatedUserEnvPkgs;
|
||||||
|
};
|
||||||
|
|
||||||
|
in breakRecursion (mapAttrs mkPkg manifest);
|
||||||
|
|
||||||
|
mkDerivation = drv: stdenv.mkDerivation (drv // { src = fetchurl drv.src; });
|
||||||
|
|
||||||
|
resolveDeps = scope: map (dep: scope."${dep}" or null);
|
||||||
|
|
||||||
|
userEnvPkg = dep:
|
||||||
|
mapAttrs
|
||||||
|
(name: pkg: pkg // {
|
||||||
|
propagatedUserEnvPkgs =
|
||||||
|
(pkg.propagatedUserEnvPkgs or [])
|
||||||
|
++ optional (hasDep dep pkg) dep;
|
||||||
|
});
|
||||||
|
|
||||||
|
in
|
||||||
|
{
|
||||||
|
inherit generateCollection;
|
||||||
|
inherit isDepAttr;
|
||||||
|
inherit manifest;
|
||||||
|
inherit resolveDeps;
|
||||||
|
inherit userEnvPkg;
|
||||||
|
inherit writeManifestXML;
|
||||||
|
|
||||||
|
blacklist = names: pkgs:
|
||||||
|
let
|
||||||
|
removeDeps = deps: mapAttrs (name: removePkgDeps deps);
|
||||||
|
removePkgs = names: pkgs: builtins.removeAttrs pkgs names;
|
||||||
|
in removeDeps names (removePkgs names pkgs);
|
||||||
|
}
|
38
pkgs/build-support/autonix/manifest.sh
Executable file
38
pkgs/build-support/autonix/manifest.sh
Executable file
@ -0,0 +1,38 @@
|
|||||||
|
#!@bash@/bin/bash
|
||||||
|
|
||||||
|
@coreutils@/bin/mkdir tmp; cd tmp
|
||||||
|
|
||||||
|
@wget@/bin/wget -nH -r -c --no-parent $*
|
||||||
|
|
||||||
|
cat >../manifest.nix <<EOF
|
||||||
|
# This file is generated automatically. DO NOT EDIT!
|
||||||
|
{ mirror }:
|
||||||
|
[
|
||||||
|
EOF
|
||||||
|
|
||||||
|
workdir=$(pwd)
|
||||||
|
|
||||||
|
@findutils@/bin/find . | while read path; do
|
||||||
|
if [[ -f "${path}" ]]; then
|
||||||
|
url="${path:2}"
|
||||||
|
# Sanitize file name
|
||||||
|
name=$(@coreutils@/bin/basename "${path}" | tr '@' '_')
|
||||||
|
dirname=$(@coreutils@/bin/dirname "${path}")
|
||||||
|
mv "${workdir}/${path}" "${workdir}/${dirname}/${name}"
|
||||||
|
# Prefetch and hash source file
|
||||||
|
sha256=$(@nix@/bin/nix-prefetch-url "file://${workdir}/${dirname}/${name}")
|
||||||
|
store=$(@nix@/bin/nix-store --print-fixed-path sha256 "$sha256" "$name")
|
||||||
|
cat >>../manifest.nix <<EOF
|
||||||
|
{
|
||||||
|
url = "\${mirror}/${url}";
|
||||||
|
sha256 = "${sha256}";
|
||||||
|
name = "${name}";
|
||||||
|
store = "${store}";
|
||||||
|
}
|
||||||
|
EOF
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
echo "]" >>../manifest.nix
|
||||||
|
|
||||||
|
cd ..
|
0
pkgs/build-support/dotnetenv/Wrapper/Wrapper/Wrapper.cs.in
Executable file → Normal file
0
pkgs/build-support/dotnetenv/Wrapper/Wrapper/Wrapper.cs.in
Executable file → Normal file
@ -53,6 +53,7 @@ rec {
|
|||||||
|
|
||||||
# GnuPG.
|
# GnuPG.
|
||||||
gnupg = [
|
gnupg = [
|
||||||
|
http://gd.tuwien.ac.at/privacy/gnupg/
|
||||||
ftp://gd.tuwien.ac.at/privacy/gnupg/
|
ftp://gd.tuwien.ac.at/privacy/gnupg/
|
||||||
ftp://gnupg.x-zone.org/pub/gnupg/
|
ftp://gnupg.x-zone.org/pub/gnupg/
|
||||||
ftp://ftp.gnupg.cz/pub/gcrypt/
|
ftp://ftp.gnupg.cz/pub/gcrypt/
|
||||||
|
@ -28,7 +28,7 @@ lib.overrideDerivation (fetchurl ({
|
|||||||
mkdir "$unpackDir"
|
mkdir "$unpackDir"
|
||||||
cd "$unpackDir"
|
cd "$unpackDir"
|
||||||
|
|
||||||
renamed="$TMPDIR/$name"
|
renamed="$TMPDIR/${baseNameOf url}"
|
||||||
mv "$downloadedFile" "$renamed"
|
mv "$downloadedFile" "$renamed"
|
||||||
unpackFile "$renamed"
|
unpackFile "$renamed"
|
||||||
|
|
||||||
|
@ -8,6 +8,7 @@
|
|||||||
{ name ? "", stdenv, nativeTools, nativeLibc, nativePrefix ? ""
|
{ name ? "", stdenv, nativeTools, nativeLibc, nativePrefix ? ""
|
||||||
, gcc ? null, libc ? null, binutils ? null, coreutils ? null, shell ? stdenv.shell
|
, gcc ? null, libc ? null, binutils ? null, coreutils ? null, shell ? stdenv.shell
|
||||||
, zlib ? null, extraPackages ? []
|
, zlib ? null, extraPackages ? []
|
||||||
|
, setupHook ? ./setup-hook.sh
|
||||||
}:
|
}:
|
||||||
|
|
||||||
with stdenv.lib;
|
with stdenv.lib;
|
||||||
@ -199,7 +200,7 @@ stdenv.mkDerivation {
|
|||||||
''
|
''
|
||||||
|
|
||||||
+ ''
|
+ ''
|
||||||
substituteAll ${./setup-hook.sh} $out/nix-support/setup-hook
|
substituteAll ${setupHook} $out/nix-support/setup-hook
|
||||||
substituteAll ${./add-flags} $out/nix-support/add-flags.sh
|
substituteAll ${./add-flags} $out/nix-support/add-flags.sh
|
||||||
cp -p ${./utils.sh} $out/nix-support/utils.sh
|
cp -p ${./utils.sh} $out/nix-support/utils.sh
|
||||||
|
|
||||||
|
44
pkgs/build-support/gcc-wrapper/setup-hook-stdinc.sh
Normal file
44
pkgs/build-support/gcc-wrapper/setup-hook-stdinc.sh
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
# This is an alternate setup hook for gcc-wrapper that uses the -I flag to
|
||||||
|
# add include search paths instead of -isystem. We need this for some packages
|
||||||
|
# because -isystem can change the search order specified by prior -I flags.
|
||||||
|
# Changing the search order can point gcc to the wrong package's headers.
|
||||||
|
# The -I flag will never change the order of prior flags.
|
||||||
|
|
||||||
|
export NIX_CC=@out@
|
||||||
|
|
||||||
|
addCVars () {
|
||||||
|
if [ -d $1/include ]; then
|
||||||
|
export NIX_CFLAGS_COMPILE+=" -I $1/include"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -d $1/lib64 -a ! -L $1/lib64 ]; then
|
||||||
|
export NIX_LDFLAGS+=" -L$1/lib64"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -d $1/lib ]; then
|
||||||
|
export NIX_LDFLAGS+=" -L$1/lib"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
envHooks+=(addCVars)
|
||||||
|
|
||||||
|
# Note: these come *after* $out in the PATH (see setup.sh).
|
||||||
|
|
||||||
|
if [ -n "@gcc@" ]; then
|
||||||
|
addToSearchPath PATH @gcc@/bin
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -n "@binutils@" ]; then
|
||||||
|
addToSearchPath PATH @binutils@/bin
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -n "@libc@" ]; then
|
||||||
|
addToSearchPath PATH @libc@/bin
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -n "@coreutils@" ]; then
|
||||||
|
addToSearchPath PATH @coreutils@/bin
|
||||||
|
fi
|
||||||
|
|
||||||
|
export CC=gcc
|
||||||
|
export CXX=g++
|
24
pkgs/build-support/templaterpm/default.nix
Normal file
24
pkgs/build-support/templaterpm/default.nix
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
{stdenv, makeWrapper, python, toposort, rpm}:
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
name = "nix-template-rpm-${version}";
|
||||||
|
version = "0.1";
|
||||||
|
|
||||||
|
buildInputs = [ makeWrapper python toposort rpm ];
|
||||||
|
|
||||||
|
phases = [ "installPhase" "fixupPhase" ];
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out/bin
|
||||||
|
cp ${./nix-template-rpm.py} $out/bin/nix-template-rpm
|
||||||
|
wrapProgram $out/bin/nix-template-rpm \
|
||||||
|
--set PYTHONPATH "${rpm}/lib/${python.libPrefix}/site-packages":"${toposort}/lib/${python.libPrefix}/site-packages"
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = with stdenv.lib; {
|
||||||
|
description = "Create templates of nix expressions from RPM .spec files";
|
||||||
|
maintainers = with maintainers; [ tstrobel ];
|
||||||
|
platforms = with stdenv.lib.platforms; unix;
|
||||||
|
hydraPlatforms = [];
|
||||||
|
};
|
||||||
|
}
|
274
pkgs/build-support/templaterpm/nix-template-rpm.py
Executable file
274
pkgs/build-support/templaterpm/nix-template-rpm.py
Executable file
@ -0,0 +1,274 @@
|
|||||||
|
#!/bin/env python
|
||||||
|
|
||||||
|
import sys
|
||||||
|
import os
|
||||||
|
import subprocess
|
||||||
|
import argparse
|
||||||
|
import shutil
|
||||||
|
import rpm
|
||||||
|
import urlparse
|
||||||
|
import traceback
|
||||||
|
import toposort
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
class NixTemplateRPM(object):
|
||||||
|
def __init__(self, specFilename, inputDir=None, maintainer="MAINTAINER"):
|
||||||
|
rpm.addMacro("buildroot","$out")
|
||||||
|
rpm.addMacro("_libdir","lib")
|
||||||
|
rpm.addMacro("_libexecdir","libexec")
|
||||||
|
rpm.addMacro("_sbindir","sbin")
|
||||||
|
rpm.addMacro("_sysconfdir","etc")
|
||||||
|
rpm.addMacro("_topdir","SPACER_DIR_FOR_REMOVAL")
|
||||||
|
rpm.addMacro("_sourcedir","SOURCE_DIR_SPACER")
|
||||||
|
|
||||||
|
ts = rpm.TransactionSet()
|
||||||
|
|
||||||
|
self.specFilename = specFilename
|
||||||
|
self.spec = ts.parseSpec(specFilename)
|
||||||
|
|
||||||
|
self.inputDir = inputDir
|
||||||
|
self.maintainer = maintainer
|
||||||
|
|
||||||
|
self.packageGroups = [ "ocaml", "python" ]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
def rewriteCommands(self, string):
|
||||||
|
string = string.replace('SPACER_DIR_FOR_REMOVAL/','')
|
||||||
|
string = string.replace('SPACER_DIR_FOR_REMOVAL','')
|
||||||
|
string = '\n'.join(map(lambda line: ' '.join(map(lambda x: x.replace('SOURCE_DIR_SPACER/','${./')+'}' if x.startswith('SOURCE_DIR_SPACER/') else x, line.split(' '))), string.split('\n')))
|
||||||
|
string = string.replace('\n','\n ')
|
||||||
|
string = string.rstrip()
|
||||||
|
return string
|
||||||
|
|
||||||
|
|
||||||
|
def rewriteName(self, string):
|
||||||
|
parts = string.split('-')
|
||||||
|
parts = filter(lambda x: not x == "devel", parts)
|
||||||
|
parts = filter(lambda x: not x == "doc", parts)
|
||||||
|
if len(parts) > 1 and parts[0] in self.packageGroups:
|
||||||
|
return parts[0] + '-' + ''.join(parts[1:2] + map(lambda x: x.capitalize(), parts[2:]))
|
||||||
|
else:
|
||||||
|
return ''.join(parts[:1] + map(lambda x: x.capitalize(), parts[1:]))
|
||||||
|
|
||||||
|
|
||||||
|
def rewriteInputs(self,target,inputs):
|
||||||
|
camelcase = lambda l: l[:1] + map(lambda x: x.capitalize(), l[1:])
|
||||||
|
filterDevel = lambda l: filter(lambda x: not x == "devel", l)
|
||||||
|
filterDoc = lambda l: filter(lambda x: not x == "doc", l)
|
||||||
|
rewrite = lambda l: ''.join(camelcase(filterDoc(filterDevel(l))))
|
||||||
|
|
||||||
|
def filterPackageGroup(target):
|
||||||
|
if target == None:
|
||||||
|
return [ rewrite(x.split('-')) for x in inputs if (not x.split('-')[0] in self.packageGroups) or (len(x.split('-')) == 1) ]
|
||||||
|
elif target in self.packageGroups:
|
||||||
|
return [ target + '_' + rewrite(x.split('-')[1:]) for x in inputs if (x.split('-')[0] == target) and (len(x.split('-')) > 1)]
|
||||||
|
else:
|
||||||
|
raise Exception("Unknown target")
|
||||||
|
return []
|
||||||
|
|
||||||
|
if target == None:
|
||||||
|
packages = filterPackageGroup(None)
|
||||||
|
packages.sort()
|
||||||
|
elif target in self.packageGroups:
|
||||||
|
packages = filterPackageGroup(target)
|
||||||
|
packages.sort()
|
||||||
|
elif target == "ALL":
|
||||||
|
packages = []
|
||||||
|
for t in [None] + self.packageGroups:
|
||||||
|
tmp = filterPackageGroup(t)
|
||||||
|
tmp.sort()
|
||||||
|
packages += tmp
|
||||||
|
else:
|
||||||
|
raise Exception("Unknown target")
|
||||||
|
packages = []
|
||||||
|
return packages
|
||||||
|
|
||||||
|
|
||||||
|
def getBuildInputs(self,target=None):
|
||||||
|
return self.rewriteInputs(target,self.spec.sourceHeader['requires'])
|
||||||
|
|
||||||
|
def getSelf(self):
|
||||||
|
name = self.spec.sourceHeader['name']
|
||||||
|
if len(name.split('-')) > 1 and name.split('-')[0] in self.packageGroups:
|
||||||
|
return self.rewriteInputs(name.split('-')[0], [self.spec.sourceHeader['name']])[0]
|
||||||
|
else:
|
||||||
|
return self.rewriteInputs(None, [self.spec.sourceHeader['name']])[0]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
def copyPatches(self, input_dir, output_dir):
|
||||||
|
patches = [source for (source, _, flag) in self.spec.sources if flag==2]
|
||||||
|
for filename in patches:
|
||||||
|
shutil.copyfile(os.path.join(input_dir, filename), os.path.join(output_dir, filename))
|
||||||
|
|
||||||
|
|
||||||
|
def copySources(self, input_dir, output_dir):
|
||||||
|
filenames = [source for (source, _, flag) in self.spec.sources if flag==1 if not urlparse.urlparse(source).scheme in ["http", "https"] ]
|
||||||
|
for filename in filenames:
|
||||||
|
shutil.copyfile(os.path.join(input_dir, filename), os.path.join(output_dir, filename))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@property
|
||||||
|
def name(self):
|
||||||
|
out = 'stdenv.mkDerivation {\n'
|
||||||
|
out += ' name = "' + self.rewriteName(self.spec.sourceHeader['name']) + '-' + self.spec.sourceHeader['version'] + '";\n'
|
||||||
|
out += ' version = "' + self.spec.sourceHeader['version'] + '";\n'
|
||||||
|
return out
|
||||||
|
|
||||||
|
|
||||||
|
@property
|
||||||
|
def src(self):
|
||||||
|
sources = [source for (source, _, flag) in self.spec.sources if flag==1 if urlparse.urlparse(source).scheme in ["http", "https"] ]
|
||||||
|
out = ''
|
||||||
|
for url in sources:
|
||||||
|
p = subprocess.Popen(['nix-prefetch-url', url], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
|
||||||
|
output, err = p.communicate()
|
||||||
|
sha256 = output[:-1] #remove new line
|
||||||
|
out += ' src = fetchurl {\n'
|
||||||
|
out += ' url = "' + url + '";\n'
|
||||||
|
out += ' sha256 = "' + sha256 + '";\n'
|
||||||
|
out += ' };\n'
|
||||||
|
return out
|
||||||
|
|
||||||
|
|
||||||
|
@property
|
||||||
|
def patch(self):
|
||||||
|
patches = [source for (source, _, flag) in self.spec.sources if flag==2]
|
||||||
|
out = ' patches = [ ' + ' '.join(map(lambda x: './'+x, patches)) + ' ];\n'
|
||||||
|
return out
|
||||||
|
|
||||||
|
|
||||||
|
@property
|
||||||
|
def buildInputs(self):
|
||||||
|
out = ' buildInputs = [ '
|
||||||
|
out += ' '.join(self.getBuildInputs("ALL"))
|
||||||
|
out += ' ];\n'
|
||||||
|
return out
|
||||||
|
|
||||||
|
|
||||||
|
@property
|
||||||
|
def configure(self):
|
||||||
|
out = ' configurePhase = \'\'\n ' + self.rewriteCommands(self.spec.prep) + '\n \'\';\n';
|
||||||
|
return out
|
||||||
|
|
||||||
|
|
||||||
|
@property
|
||||||
|
def build(self):
|
||||||
|
out = ' buildPhase = \'\'\n ' + self.rewriteCommands(self.spec.build) + '\n \'\';\n';
|
||||||
|
return out
|
||||||
|
|
||||||
|
|
||||||
|
@property
|
||||||
|
def install(self):
|
||||||
|
out = ' installPhase = \'\'\n ' + self.rewriteCommands(self.spec.install) + '\n \'\';\n';
|
||||||
|
return out
|
||||||
|
|
||||||
|
@property
|
||||||
|
def ocamlExtra(self):
|
||||||
|
if "ocaml" in self.getBuildInputs("ALL"):
|
||||||
|
return ' createFindlibDestdir = true;\n'
|
||||||
|
else:
|
||||||
|
return ''
|
||||||
|
|
||||||
|
|
||||||
|
@property
|
||||||
|
def meta(self):
|
||||||
|
out = ' meta = {\n'
|
||||||
|
out += ' homepage = ' + self.spec.sourceHeader['url'] + ';\n'
|
||||||
|
out += ' description = "' + self.spec.sourceHeader['summary'] + '";\n'
|
||||||
|
out += ' license = stdenv.lib.licenses.' + self.spec.sourceHeader['license'] + ';\n'
|
||||||
|
out += ' platforms = [ "i686-linux" "x86_64-linux" ];\n'
|
||||||
|
out += ' maintainers = with stdenv.lib.maintainers; [ ' + self.maintainer + ' ];\n'
|
||||||
|
out += ' };\n'
|
||||||
|
out += '}\n'
|
||||||
|
return out
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
head = '{stdenv, fetchurl, ' + ', '.join(self.getBuildInputs("ALL")) + '}:\n\n'
|
||||||
|
body = [ self.name, self.src, self.patch, self.buildInputs, self.configure, self.build, self.ocamlExtra, self.install, self.meta ]
|
||||||
|
return head + '\n'.join(body)
|
||||||
|
|
||||||
|
|
||||||
|
def __cmp__(self,other):
|
||||||
|
if self.getSelf() in other.getBuildInputs("ALL"):
|
||||||
|
return 1
|
||||||
|
else:
|
||||||
|
return -1
|
||||||
|
|
||||||
|
|
||||||
|
def callPackage(self, output_dir):
|
||||||
|
callPackage = ' ' + self.getSelf() + ' = callPackage ' + os.path.relpath(output_dir) + ' {'
|
||||||
|
newline = False;
|
||||||
|
for target in self.packageGroups:
|
||||||
|
tmp = self.getBuildInputs(target)
|
||||||
|
if len(tmp) > 0:
|
||||||
|
newline = True;
|
||||||
|
callPackage += '\n ' + 'inherit (' + target + 'Packages) ' + ' '.join(tmp) + ';'
|
||||||
|
if newline:
|
||||||
|
callPackage += '\n };'
|
||||||
|
else:
|
||||||
|
callPackage += ' };'
|
||||||
|
return callPackage
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
def generateTemplate(self, outputDir):
|
||||||
|
output_dir = os.path.normpath( os.path.join(outputDir, self.rewriteName(self.spec.sourceHeader['name'])) )
|
||||||
|
if not os.path.exists(output_dir):
|
||||||
|
os.makedirs(output_dir)
|
||||||
|
|
||||||
|
if self.inputDir != None:
|
||||||
|
self.copySources(self.inputDir, output_dir)
|
||||||
|
self.copyPatches(self.inputDir, output_dir)
|
||||||
|
|
||||||
|
nixfile = open(os.path.join(output_dir,'default.nix'), 'w')
|
||||||
|
nixfile.write(str(self))
|
||||||
|
nixfile.close()
|
||||||
|
|
||||||
|
shutil.copyfile(self.specFilename, os.path.join(output_dir, os.path.basename(self.specFilename)))
|
||||||
|
|
||||||
|
self.pkgCall = self.callPackage(output_dir)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
#Parse command line options
|
||||||
|
parser = argparse.ArgumentParser(description="Generate .nix templates from RPM spec files")
|
||||||
|
parser.add_argument("specs", metavar="SPEC", nargs="+", help="spec file")
|
||||||
|
parser.add_argument("-o", "--output", metavar="OUT_DIR", required=True, help="output directory")
|
||||||
|
parser.add_argument("-i", "--input", metavar="IN_DIR", default=None, help="input directory")
|
||||||
|
parser.add_argument("-m", "--maintainer", metavar="MAINTAINER", required=True, help="package maintainer")
|
||||||
|
args = parser.parse_args()
|
||||||
|
|
||||||
|
|
||||||
|
nameMap = {}
|
||||||
|
|
||||||
|
for specPath in args.specs:
|
||||||
|
try:
|
||||||
|
sys.stderr.write("INFO: generate nix file from: %s\n" % specPath)
|
||||||
|
spec = NixTemplateRPM(specPath, args.input, args.maintainer)
|
||||||
|
spec.generateTemplate(args.output)
|
||||||
|
nameMap[spec.getSelf()] = spec
|
||||||
|
|
||||||
|
except Exception, e:
|
||||||
|
sys.stderr.write("ERROR: %s failed with:\n%s\n%s\n" % (specPath,e.message,traceback.format_exc()))
|
||||||
|
|
||||||
|
graph = {}
|
||||||
|
for k, v in nameMap.items():
|
||||||
|
graph[k] = set(v.getBuildInputs("ALL"))
|
||||||
|
|
||||||
|
sortedSpecs = toposort.toposort_flatten(graph)
|
||||||
|
sortedSpecs = filter( lambda x: x in nameMap.keys(), sortedSpecs)
|
||||||
|
|
||||||
|
print '\n\n'.join(map(lambda x: x.pkgCall, map(lambda x: nameMap[x], sortedSpecs)))
|
@ -1,11 +1,11 @@
|
|||||||
{ stdenv, fetchurl }:
|
{ stdenv, fetchurl }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "man-pages-3.75";
|
name = "man-pages-3.78";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://kernel/linux/docs/man-pages/${name}.tar.xz";
|
url = "mirror://kernel/linux/docs/man-pages/${name}.tar.xz";
|
||||||
sha256 = "1xnja13a3zb7gzcsdn7sx962lk6mj8m3rz1w7fpgvhsq745cmah6";
|
sha256 = "0zm3sc0zbfng440jjqha8qnzivvg5nqpwgi7zv9h8qxwgyhrfa65";
|
||||||
};
|
};
|
||||||
|
|
||||||
preBuild =
|
preBuild =
|
||||||
|
143
pkgs/desktops/plasma-5.1/default.nix
Normal file
143
pkgs/desktops/plasma-5.1/default.nix
Normal file
@ -0,0 +1,143 @@
|
|||||||
|
# Maintainer's Notes:
|
||||||
|
#
|
||||||
|
# Minor updates:
|
||||||
|
# 1. Edit ./manifest.sh to point to the updated URL. Upstream sometimes
|
||||||
|
# releases updates that include only the changed packages; in this case,
|
||||||
|
# multiple URLs can be provided and the results will be merged.
|
||||||
|
# 2. Run ./manifest.sh and ./dependencies.sh.
|
||||||
|
# 3. Build and enjoy.
|
||||||
|
#
|
||||||
|
# Major updates:
|
||||||
|
# We prefer not to immediately overwrite older versions with major updates, so
|
||||||
|
# make a copy of this directory first. After copying, be sure to delete ./tmp
|
||||||
|
# if it exists. Then follow the minor update instructions.
|
||||||
|
|
||||||
|
{ autonix, kf55, pkgs, stdenv, debug ? false }:
|
||||||
|
|
||||||
|
with stdenv.lib; with autonix;
|
||||||
|
|
||||||
|
let
|
||||||
|
|
||||||
|
kf5 = kf55.override { inherit debug; };
|
||||||
|
|
||||||
|
mirror = "mirror://kde";
|
||||||
|
|
||||||
|
renames =
|
||||||
|
builtins.removeAttrs
|
||||||
|
(import ./renames.nix {})
|
||||||
|
["Backend" "CTest" "KF5Wayland"];
|
||||||
|
|
||||||
|
scope =
|
||||||
|
# packages in this collection
|
||||||
|
(mapAttrs (dep: name: plasma5."${name}") renames) //
|
||||||
|
# packages from KDE Frameworks 5
|
||||||
|
kf5.scope //
|
||||||
|
# packages pinned to this version of Qt 5
|
||||||
|
{
|
||||||
|
PopplerQt5 = (pkgs.poppler.override { inherit (kf5) qt5; }).poppler_qt5;
|
||||||
|
} //
|
||||||
|
# packages from nixpkgs
|
||||||
|
(with pkgs;
|
||||||
|
{
|
||||||
|
inherit epoxy;
|
||||||
|
Epub = ebook_tools;
|
||||||
|
Exiv2 = exiv2;
|
||||||
|
FFmpeg = ffmpeg;
|
||||||
|
FONTFORGE_EXECUTABLE = fontforge;
|
||||||
|
Freetype = freetype;
|
||||||
|
LibSSH = libssh;
|
||||||
|
ModemManager = modemmanager;
|
||||||
|
NetworkManager = networkmanager;
|
||||||
|
PulseAudio = pulseaudio;
|
||||||
|
Taglib = taglib;
|
||||||
|
Xapian = xapian;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
preResolve = super:
|
||||||
|
fold (f: x: f x) super
|
||||||
|
[
|
||||||
|
(userEnvPkg "SharedMimeInfo")
|
||||||
|
(userEnvPkg "SharedDesktopOntologies")
|
||||||
|
(blacklist ["kwayland"])
|
||||||
|
];
|
||||||
|
|
||||||
|
postResolve = super:
|
||||||
|
(builtins.removeAttrs super ["breeze"]) // {
|
||||||
|
|
||||||
|
breeze-qt4 = with pkgs; super.breeze // {
|
||||||
|
name = "breeze-qt4-" + (builtins.parseDrvName super.breeze.name).version;
|
||||||
|
buildInputs = [ xlibs.xproto kde4.kdelibs qt4 ];
|
||||||
|
nativeBuildInputs = [ cmake pkgconfig ];
|
||||||
|
cmakeFlags =
|
||||||
|
[
|
||||||
|
"-DUSE_KDE4=ON"
|
||||||
|
"-DQT_QMAKE_EXECUTABLE=${qt4}/bin/qmake"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
breeze-qt5 = with pkgs; super.breeze // {
|
||||||
|
name = "breeze-qt5-" + (builtins.parseDrvName super.breeze.name).version;
|
||||||
|
buildInputs = with kf5;
|
||||||
|
[
|
||||||
|
kcompletion kconfig kconfigwidgets kcoreaddons frameworkintegration
|
||||||
|
ki18n kwindowsystem qt5
|
||||||
|
];
|
||||||
|
nativeBuildInputs = [ cmake kf5.extra-cmake-modules pkgconfig ];
|
||||||
|
cmakeFlags = [ "-DUSE_KDE4=OFF" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
kwin = with pkgs; super.kwin // {
|
||||||
|
buildInputs = with xlibs;
|
||||||
|
super.kwin.buildInputs ++ [ libICE libSM libXcursor ];
|
||||||
|
patches = [ ./kwin/kwin-import-plugin-follow-symlinks.patch ];
|
||||||
|
};
|
||||||
|
|
||||||
|
libkscreen = with pkgs; super.libkscreen // {
|
||||||
|
buildInputs = with xlibs;
|
||||||
|
super.libkscreen.buildInputs ++ [libXrandr];
|
||||||
|
patches = [ ./libkscreen/libkscreen-backend-path.patch ];
|
||||||
|
};
|
||||||
|
|
||||||
|
plasma-desktop = with pkgs; super.plasma-desktop // {
|
||||||
|
buildInputs = with xlibs;
|
||||||
|
super.plasma-desktop.buildInputs ++
|
||||||
|
[ pkgs.libcanberra libxkbfile libXcursor ];
|
||||||
|
patches = [
|
||||||
|
./plasma-desktop/plasma-desktop-hwclock.patch
|
||||||
|
./plasma-desktop/plasma-desktop-zoneinfo.patch
|
||||||
|
];
|
||||||
|
preConfigure = ''
|
||||||
|
substituteInPlace kcms/dateandtime/helper.cpp \
|
||||||
|
--subst-var-by hwclock "${utillinux}/sbin/hwclock"
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
plasma-workspace = with pkgs; super.plasma-workspace // {
|
||||||
|
buildInputs = with xlibs;
|
||||||
|
super.plasma-workspace.buildInputs ++ [ libSM libXcursor pam ];
|
||||||
|
postInstall = ''
|
||||||
|
# We use a custom startkde script
|
||||||
|
rm $out/bin/startkde
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
powerdevil = with pkgs; super.powerdevil // {
|
||||||
|
buildInputs = with xlibs; super.powerdevil.buildInputs ++ [libXrandr];
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
plasma5 = generateCollection ./. {
|
||||||
|
inherit (kf5) mkDerivation;
|
||||||
|
inherit mirror preResolve postResolve renames scope;
|
||||||
|
};
|
||||||
|
|
||||||
|
in
|
||||||
|
plasma5 // {
|
||||||
|
inherit scope;
|
||||||
|
startkde = pkgs.callPackage ./startkde {
|
||||||
|
inherit (kf5) kconfig kinit kservice;
|
||||||
|
inherit (plasma5) plasma-desktop plasma-workspace;
|
||||||
|
};
|
||||||
|
}
|
220
pkgs/desktops/plasma-5.1/dependencies.nix
Normal file
220
pkgs/desktops/plasma-5.1/dependencies.nix
Normal file
@ -0,0 +1,220 @@
|
|||||||
|
# DO NOT EDIT! This file is generated automatically.
|
||||||
|
{ }:
|
||||||
|
{
|
||||||
|
baloo = {
|
||||||
|
buildInputs = [ "ECM" "KF5" "KF5Abc" "KF5Akonadi" "KF5AkonadiMime" "KF5AkonadiServer" "KF5Auth" "KF5CalendarCore" "KF5Config" "KF5Crash" "KF5FileMetaData" "KF5I18n" "KF5IdleTime" "KF5KCMUtils" "KF5KDELibs4Support" "KF5KIO" "KF5Mime" "KF5PimUtils" "KF5Solid" "Qt5" "Qt5Test" "Xapian" ];
|
||||||
|
nativeBuildInputs = [ "cmake" ];
|
||||||
|
propagatedBuildInputs = [ "KF5CoreAddons" "KF5FileMetaData" "Qt5Core" "Xapian" ];
|
||||||
|
propagatedNativeBuildInputs = [ ];
|
||||||
|
propagatedUserEnvPkgs = [ ];
|
||||||
|
};
|
||||||
|
|
||||||
|
breeze = {
|
||||||
|
buildInputs = [ "ECM" "KDE4" "KDecorations" "KF5" "KF5Completion" "KF5Config" "KF5ConfigWidgets" "KF5CoreAddons" "KF5FrameworkIntegration" "KF5I18n" "KF5WindowSystem" "PkgConfig" "Qt5" "XCB" ];
|
||||||
|
nativeBuildInputs = [ "cmake" ];
|
||||||
|
propagatedBuildInputs = [ ];
|
||||||
|
propagatedNativeBuildInputs = [ ];
|
||||||
|
propagatedUserEnvPkgs = [ ];
|
||||||
|
};
|
||||||
|
|
||||||
|
kde-cli-tools = {
|
||||||
|
buildInputs = [ "ECM" "KF5" "KF5Config" "KF5I18n" "KF5IconThemes" "KF5KCMUtils" "KF5KDE4Support" "KF5Su" "KF5WindowSystem" "Qt5" "Qt5Test" "Qt5X11Extras" "X11" ];
|
||||||
|
nativeBuildInputs = [ "cmake" ];
|
||||||
|
propagatedBuildInputs = [ ];
|
||||||
|
propagatedNativeBuildInputs = [ ];
|
||||||
|
propagatedUserEnvPkgs = [ ];
|
||||||
|
};
|
||||||
|
|
||||||
|
kdeplasma-addons = {
|
||||||
|
buildInputs = [ "ECM" "GIO" "GLIB2" "GObject" "IBus" "KDE4" "KF5" "KF5Config" "KF5ConfigWidgets" "KF5CoreAddons" "KF5I18n" "KF5KCMUtils" "KF5KDELibs4Support" "KF5KIO" "KF5Plasma" "KF5Runner" "KF5Service" "KF5UnitConversion" "KdepimLibs" "Kexiv2" "Lancelot" "Lancelot-Datamodels" "Qt5" "SCIM" "SharedMimeInfo" ];
|
||||||
|
nativeBuildInputs = [ "cmake" ];
|
||||||
|
propagatedBuildInputs = [ ];
|
||||||
|
propagatedNativeBuildInputs = [ ];
|
||||||
|
propagatedUserEnvPkgs = [ "SharedMimeInfo" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
kfilemetadata = {
|
||||||
|
buildInputs = [ "ECM" "EPub" "Exiv2" "FFmpeg" "KF5" "KF5Archive" "KF5I18n" "PopplerQt5" "QMobipocket" "Qt5" "Taglib" ];
|
||||||
|
nativeBuildInputs = [ "cmake" ];
|
||||||
|
propagatedBuildInputs = [ "Qt5Core" ];
|
||||||
|
propagatedNativeBuildInputs = [ ];
|
||||||
|
propagatedUserEnvPkgs = [ ];
|
||||||
|
};
|
||||||
|
|
||||||
|
khelpcenter = {
|
||||||
|
buildInputs = [ "ECM" "KF5" "KF5Config" "KF5I18n" "KF5Init" "KF5KCMUtils" "KF5KDE4Support" "KF5KHtml" "Qt5" ];
|
||||||
|
nativeBuildInputs = [ "cmake" ];
|
||||||
|
propagatedBuildInputs = [ ];
|
||||||
|
propagatedNativeBuildInputs = [ ];
|
||||||
|
propagatedUserEnvPkgs = [ ];
|
||||||
|
};
|
||||||
|
|
||||||
|
khotkeys = {
|
||||||
|
buildInputs = [ "ECM" "KF5" "KF5DBusAddons" "KF5GlobalAccel" "KF5I18n" "KF5KCMUtils" "KF5KDE4Support" "KF5KIO" "KF5Plasma" "KF5XmlGui" "LibKWorkspace" "Qt5" "X11" ];
|
||||||
|
nativeBuildInputs = [ "cmake" ];
|
||||||
|
propagatedBuildInputs = [ ];
|
||||||
|
propagatedNativeBuildInputs = [ ];
|
||||||
|
propagatedUserEnvPkgs = [ ];
|
||||||
|
};
|
||||||
|
|
||||||
|
kinfocenter = {
|
||||||
|
buildInputs = [ "ECM" "EGL" "KF5" "KF5Completion" "KF5Config" "KF5ConfigWidgets" "KF5CoreAddons" "KF5DBusAddons" "KF5DocTools" "KF5I18n" "KF5IconThemes" "KF5KCMUtils" "KF5KDELibs4Support" "KF5KIO" "KF5Service" "KF5Solid" "KF5Wayland" "KF5WidgetsAddons" "KF5XmlGui" "OpenGL" "OpenGLES" "PCIUTILS" "Qt5" "RAW1394" "X11" ];
|
||||||
|
nativeBuildInputs = [ "cmake" ];
|
||||||
|
propagatedBuildInputs = [ ];
|
||||||
|
propagatedNativeBuildInputs = [ ];
|
||||||
|
propagatedUserEnvPkgs = [ ];
|
||||||
|
};
|
||||||
|
|
||||||
|
kio-extras = {
|
||||||
|
buildInputs = [ "ECM" "Exiv2" "JPEG" "KF5" "KF5Archive" "KF5Config" "KF5ConfigWidgets" "KF5CoreAddons" "KF5DBusAddons" "KF5DNSSD" "KF5DocTools" "KF5I18n" "KF5IconThemes" "KF5KDE4Support" "KF5KHtml" "KF5KIO" "KF5Solid" "LibSSH" "OpenEXR" "Phonon4Qt5" "Qt5" "Qt5Test" "SLP" "Samba" "SharedMimeInfo" ];
|
||||||
|
nativeBuildInputs = [ "MD5SUM_EXECUTABLE" "cmake" ];
|
||||||
|
propagatedBuildInputs = [ ];
|
||||||
|
propagatedNativeBuildInputs = [ ];
|
||||||
|
propagatedUserEnvPkgs = [ "SharedMimeInfo" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
kmenuedit = {
|
||||||
|
buildInputs = [ "ECM" "KF5" "KF5DBusAddons" "KF5I18n" "KF5IconThemes" "KF5KDELibs4Support" "KF5KIO" "KF5Sonnet" "KF5XmlGui" "KHotKeysDBusInterface" "Qt5" ];
|
||||||
|
nativeBuildInputs = [ "cmake" ];
|
||||||
|
propagatedBuildInputs = [ ];
|
||||||
|
propagatedNativeBuildInputs = [ ];
|
||||||
|
propagatedUserEnvPkgs = [ ];
|
||||||
|
};
|
||||||
|
|
||||||
|
ksysguard = {
|
||||||
|
buildInputs = [ "ECM" "KF5" "KF5Config" "KF5CoreAddons" "KF5I18n" "KF5IconThemes" "KF5ItemViews" "KF5KDE4Support" "KF5NewStuff" "KF5SysGuard" "Qt5" "Sensors" ];
|
||||||
|
nativeBuildInputs = [ "cmake" ];
|
||||||
|
propagatedBuildInputs = [ ];
|
||||||
|
propagatedNativeBuildInputs = [ ];
|
||||||
|
propagatedUserEnvPkgs = [ ];
|
||||||
|
};
|
||||||
|
|
||||||
|
kwayland = {
|
||||||
|
buildInputs = [ "ECM" "Qt5" "Wayland" ];
|
||||||
|
nativeBuildInputs = [ "WAYLAND_SCANNER_EXECUTABLE" "cmake" ];
|
||||||
|
propagatedBuildInputs = [ "Qt5Gui" ];
|
||||||
|
propagatedNativeBuildInputs = [ ];
|
||||||
|
propagatedUserEnvPkgs = [ ];
|
||||||
|
};
|
||||||
|
|
||||||
|
kwin = {
|
||||||
|
buildInputs = [ "ECM" "EGL" "KF5" "KF5Activities" "KF5Completion" "KF5Config" "KF5ConfigWidgets" "KF5CoreAddons" "KF5Crash" "KF5Declarative" "KF5DocTools" "KF5GlobalAccel" "KF5I18n" "KF5Init" "KF5KCMUtils" "KF5KIO" "KF5NewStuff" "KF5Notifications" "KF5Plasma" "KF5Service" "KF5Wayland" "KF5WidgetsAddons" "KF5WindowSystem" "KF5XmlGui" "OpenGL" "OpenGLES" "Qt5" "Qt5Multimedia" "Qt5Test" "Wayland" "X11" "XCB" "XKB" "epoxy" ];
|
||||||
|
nativeBuildInputs = [ "cmake" ];
|
||||||
|
propagatedBuildInputs = [ "KF5Config" "KF5Service" "KF5WindowSystem" ];
|
||||||
|
propagatedNativeBuildInputs = [ ];
|
||||||
|
propagatedUserEnvPkgs = [ ];
|
||||||
|
};
|
||||||
|
|
||||||
|
kwrited = {
|
||||||
|
buildInputs = [ "ECM" "KF5" "KF5DBusAddons" "KF5KDE4Support" "KF5Pty" "Qt5" ];
|
||||||
|
nativeBuildInputs = [ "cmake" ];
|
||||||
|
propagatedBuildInputs = [ ];
|
||||||
|
propagatedNativeBuildInputs = [ ];
|
||||||
|
propagatedUserEnvPkgs = [ ];
|
||||||
|
};
|
||||||
|
|
||||||
|
libkscreen = {
|
||||||
|
buildInputs = [ "Doxygen" "ECM" "Qt5" "X11" "XCB" ];
|
||||||
|
nativeBuildInputs = [ "cmake" ];
|
||||||
|
propagatedBuildInputs = [ "Qt5Core" ];
|
||||||
|
propagatedNativeBuildInputs = [ ];
|
||||||
|
propagatedUserEnvPkgs = [ ];
|
||||||
|
};
|
||||||
|
|
||||||
|
libksysguard = {
|
||||||
|
buildInputs = [ "ECM" "KF5" "KF5Config" "KF5I18n" "KF5KDE4Support" "KF5Plasma" "Qt5" "Qt5X11Extras" "X11" "ZLIB" ];
|
||||||
|
nativeBuildInputs = [ "cmake" ];
|
||||||
|
propagatedBuildInputs = [ "Qt5DBus" ];
|
||||||
|
propagatedNativeBuildInputs = [ ];
|
||||||
|
propagatedUserEnvPkgs = [ ];
|
||||||
|
};
|
||||||
|
|
||||||
|
libmm-qt = {
|
||||||
|
buildInputs = [ "ECM" "KF5ModemManagerQt" "ModemManager" "Qt4" "Qt5" ];
|
||||||
|
nativeBuildInputs = [ "cmake" ];
|
||||||
|
propagatedBuildInputs = [ "Qt5Core" ];
|
||||||
|
propagatedNativeBuildInputs = [ ];
|
||||||
|
propagatedUserEnvPkgs = [ ];
|
||||||
|
};
|
||||||
|
|
||||||
|
libnm-qt = {
|
||||||
|
buildInputs = [ "ECM" "KF5NetworkManagerQt" "NetworkManager" "Qt4" "Qt5" ];
|
||||||
|
nativeBuildInputs = [ "cmake" ];
|
||||||
|
propagatedBuildInputs = [ "Qt5Core" ];
|
||||||
|
propagatedNativeBuildInputs = [ ];
|
||||||
|
propagatedUserEnvPkgs = [ ];
|
||||||
|
};
|
||||||
|
|
||||||
|
milou = {
|
||||||
|
buildInputs = [ "ECM" "KF5" "KF5Declarative" "KF5I18n" "KF5Plasma" "KF5Runner" "KdepimLibs" "Qt5" ];
|
||||||
|
nativeBuildInputs = [ "cmake" ];
|
||||||
|
propagatedBuildInputs = [ ];
|
||||||
|
propagatedNativeBuildInputs = [ ];
|
||||||
|
propagatedUserEnvPkgs = [ ];
|
||||||
|
};
|
||||||
|
|
||||||
|
oxygen = {
|
||||||
|
buildInputs = [ "ECM" "KDE4" "KDE4Workspace" "KDecorations" "KF5" "KF5Completion" "KF5Config" "KF5FrameworkIntegration" "KF5GuiAddons" "KF5I18n" "KF5Service" "KF5WidgetsAddons" "KF5WindowSystem" "PkgConfig" "Qt5" "XCB" ];
|
||||||
|
nativeBuildInputs = [ "cmake" ];
|
||||||
|
propagatedBuildInputs = [ ];
|
||||||
|
propagatedNativeBuildInputs = [ ];
|
||||||
|
propagatedUserEnvPkgs = [ ];
|
||||||
|
};
|
||||||
|
|
||||||
|
oxygen-fonts = {
|
||||||
|
buildInputs = [ "ECM" ];
|
||||||
|
nativeBuildInputs = [ "FONTFORGE_EXECUTABLE" "cmake" ];
|
||||||
|
propagatedBuildInputs = [ ];
|
||||||
|
propagatedNativeBuildInputs = [ ];
|
||||||
|
propagatedUserEnvPkgs = [ ];
|
||||||
|
};
|
||||||
|
|
||||||
|
plasma-desktop = {
|
||||||
|
buildInputs = [ "ECM" "Fontconfig" "Freetype" "GLIB2" "KDE4" "KDecorations" "KF5" "KF5Activities" "KF5Attica" "KF5Auth" "KF5DocTools" "KF5Emoticons" "KF5I18n" "KF5ItemModels" "KF5KCMUtils" "KF5KDELibs4Support" "KF5NewStuff" "KF5NotifyConfig" "KF5Plasma" "KF5PlasmaQuick" "KF5Runner" "KF5Wallet" "KRunnerAppDBusInterface" "KSMServerDBusInterface" "KWinDBusInterface" "LibKWorkspace" "LibTaskManager" "OpenGL" "OpenGLES" "PackageKitQt5" "Phonon4Qt5" "PulseAudio" "Qt4" "Qt5" "ScreenSaverDBusInterface" "Strigi" "USB" "X11" "XCB" ];
|
||||||
|
nativeBuildInputs = [ "cmake" ];
|
||||||
|
propagatedBuildInputs = [ ];
|
||||||
|
propagatedNativeBuildInputs = [ ];
|
||||||
|
propagatedUserEnvPkgs = [ ];
|
||||||
|
};
|
||||||
|
|
||||||
|
plasma-nm = {
|
||||||
|
buildInputs = [ "ECM" "KF5" "KF5Completion" "KF5ConfigWidgets" "KF5CoreAddons" "KF5DBusAddons" "KF5Declarative" "KF5I18n" "KF5IconThemes" "KF5Init" "KF5ItemViews" "KF5KDELibs4Support" "KF5KIO" "KF5ModemManagerQt" "KF5NetworkManagerQt" "KF5Notifications" "KF5Plasma" "KF5Service" "KF5Solid" "KF5Wallet" "KF5WidgetsAddons" "KF5WindowSystem" "KF5XmlGui" "MobileBroadbandProviderInfo" "ModemManager" "NetworkManager" "OpenConnect" "OpenSSL" "Qt5" ];
|
||||||
|
nativeBuildInputs = [ "cmake" ];
|
||||||
|
propagatedBuildInputs = [ ];
|
||||||
|
propagatedNativeBuildInputs = [ ];
|
||||||
|
propagatedUserEnvPkgs = [ ];
|
||||||
|
};
|
||||||
|
|
||||||
|
plasma-workspace = {
|
||||||
|
buildInputs = [ "ECM" "KF5" "KF5Activities" "KF5Baloo" "KF5Config" "KF5CoreAddons" "KF5Crash" "KF5DBusAddons" "KF5Declarative" "KF5DocTools" "KF5I18n" "KF5IdleTime" "KF5JsEmbed" "KF5KCMUtils" "KF5KDELibs4Support" "KF5KIO" "KF5NO_MODULE" "KF5NewStuff" "KF5NotifyConfig" "KF5Plasma" "KF5PlasmaQuick" "KF5Runner" "KF5Screen" "KF5Solid" "KF5Su" "KF5SysGuard" "KF5TextEditor" "KF5TextWidgets" "KF5Wallet" "KF5WebKit" "KWinDBusInterface" "Phonon4Qt5" "Prison" "Qalculate" "Qt5" "Qt5DBus" "Qt5Qml" "Qt5Quick" "Qt5Script" "Qt5Test" "X11" "XCB" "ZLIB" "dbusmenu-qt5" "libgps" ];
|
||||||
|
nativeBuildInputs = [ "cmake" ];
|
||||||
|
propagatedBuildInputs = [ "KF5KIO" "KF5SysGuard" ];
|
||||||
|
propagatedNativeBuildInputs = [ ];
|
||||||
|
propagatedUserEnvPkgs = [ ];
|
||||||
|
};
|
||||||
|
|
||||||
|
plasma-workspace-wallpapers = {
|
||||||
|
buildInputs = [ "ECM" ];
|
||||||
|
nativeBuildInputs = [ "cmake" ];
|
||||||
|
propagatedBuildInputs = [ ];
|
||||||
|
propagatedNativeBuildInputs = [ ];
|
||||||
|
propagatedUserEnvPkgs = [ ];
|
||||||
|
};
|
||||||
|
|
||||||
|
powerdevil = {
|
||||||
|
buildInputs = [ "ECM" "KF5" "KF5Auth" "KF5Config" "KF5GlobalAccel" "KF5I18n" "KF5IdleTime" "KF5KDELibs4Support" "KF5KIO" "KF5NotifyConfig" "KF5Solid" "LibKWorkspace" "Qt5" "ScreenSaverDBusInterface" "UDev" "X11" "XCB" ];
|
||||||
|
nativeBuildInputs = [ "cmake" ];
|
||||||
|
propagatedBuildInputs = [ ];
|
||||||
|
propagatedNativeBuildInputs = [ ];
|
||||||
|
propagatedUserEnvPkgs = [ ];
|
||||||
|
};
|
||||||
|
|
||||||
|
systemsettings = {
|
||||||
|
buildInputs = [ "ECM" "KF5" "KF5Config" "KF5DBusAddons" "KF5I18n" "KF5IconThemes" "KF5ItemViews" "KF5KCMUtils" "KF5KDELibs4Support" "KF5KHtml" "KF5KIO" "KF5Service" "KF5WindowSystem" "KF5XmlGui" "Qt5" ];
|
||||||
|
nativeBuildInputs = [ "cmake" ];
|
||||||
|
propagatedBuildInputs = [ ];
|
||||||
|
propagatedNativeBuildInputs = [ ];
|
||||||
|
propagatedUserEnvPkgs = [ ];
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
22
pkgs/desktops/plasma-5.1/dependencies.sh
Executable file
22
pkgs/desktops/plasma-5.1/dependencies.sh
Executable file
@ -0,0 +1,22 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# This script rebuilds dependencies.nix.
|
||||||
|
# You must run manifest.sh first to download the packages.
|
||||||
|
|
||||||
|
# Without arguments, this will use the version of autonix-deps-kf5 in nixpkgs.
|
||||||
|
# If you are working on the packages, this is probably what you want.
|
||||||
|
|
||||||
|
# You can also pass the path to a source tree where you have built
|
||||||
|
# autonix-deps-kf5 yourself. If you are working on autonix-deps-kf5, this is
|
||||||
|
# probably what you want.
|
||||||
|
|
||||||
|
manifestXML=$(nix-build -E 'with (import ../../.. {}); autonix.writeManifestXML ./manifest.nix')
|
||||||
|
|
||||||
|
autonixDepsKf5=""
|
||||||
|
if [[ -z $1 ]]; then
|
||||||
|
autonixDepsKF5=$(nix-build ../../.. -A haskellngPackages.autonix-deps-kf5)/bin
|
||||||
|
else
|
||||||
|
autonixDepsKF5="$1/dist/build/kf5-deps"
|
||||||
|
fi
|
||||||
|
|
||||||
|
exec ${autonixDepsKF5}/kf5-deps "${manifestXML}"
|
@ -0,0 +1,13 @@
|
|||||||
|
diff --git a/clients/aurorae/src/aurorae.cpp b/clients/aurorae/src/aurorae.cpp
|
||||||
|
index 26b44a9..d14e226 100644
|
||||||
|
--- a/clients/aurorae/src/aurorae.cpp
|
||||||
|
+++ b/clients/aurorae/src/aurorae.cpp
|
||||||
|
@@ -73,7 +73,7 @@ void AuroraeFactory::init()
|
||||||
|
// so let's try to locate our plugin:
|
||||||
|
QString pluginPath;
|
||||||
|
for (const QString &path : m_engine->importPathList()) {
|
||||||
|
- QDirIterator it(path, QDirIterator::Subdirectories);
|
||||||
|
+ QDirIterator it(path, QDirIterator::Subdirectories | QDirIterator::FollowSymlinks);
|
||||||
|
while (it.hasNext()) {
|
||||||
|
it.next();
|
||||||
|
QFileInfo fileInfo = it.fileInfo();
|
@ -0,0 +1,130 @@
|
|||||||
|
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
|
||||||
|
index 460022f..422a708 100644
|
||||||
|
--- a/src/CMakeLists.txt
|
||||||
|
+++ b/src/CMakeLists.txt
|
||||||
|
@@ -1,5 +1,7 @@
|
||||||
|
include_directories(${CMAKE_SOURCE_DIR} ${CMAKE_BINARY_DIR} ${CMAKE_CURRENT_BINARY_DIR} ${QT_INCLUDES})
|
||||||
|
|
||||||
|
+configure_file(config-libkscreen.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-libkscreen.h)
|
||||||
|
+
|
||||||
|
set(libkscreen_SRCS
|
||||||
|
backendloader.cpp
|
||||||
|
config.cpp
|
||||||
|
diff --git a/src/backendloader.cpp b/src/backendloader.cpp
|
||||||
|
index b93e469..8aebc14 100644
|
||||||
|
--- a/src/backendloader.cpp
|
||||||
|
+++ b/src/backendloader.cpp
|
||||||
|
@@ -16,6 +16,7 @@
|
||||||
|
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA *
|
||||||
|
*************************************************************************************/
|
||||||
|
|
||||||
|
+#include "config-libkscreen.h"
|
||||||
|
#include "backendloader.h"
|
||||||
|
#include "debug_p.h"
|
||||||
|
#include "backends/abstractbackend.h"
|
||||||
|
@@ -40,55 +41,54 @@ bool BackendLoader::init()
|
||||||
|
const QString backend = qgetenv("KSCREEN_BACKEND").constData();
|
||||||
|
const QString backendFilter = QString::fromLatin1("KSC_%1*").arg(backend);
|
||||||
|
|
||||||
|
- const QStringList paths = QCoreApplication::libraryPaths();
|
||||||
|
- Q_FOREACH (const QString &path, paths) {
|
||||||
|
- const QDir dir(path + QDir::separator() + QLatin1String("/kf5/kscreen/"),
|
||||||
|
- backendFilter,
|
||||||
|
- QDir::SortFlags(QDir::QDir::NoSort),
|
||||||
|
- QDir::NoDotAndDotDot | QDir::Files);
|
||||||
|
- const QFileInfoList finfos = dir.entryInfoList();
|
||||||
|
- Q_FOREACH (const QFileInfo &finfo, finfos) {
|
||||||
|
- // Skip "Fake" backend unless explicitly specified via KSCREEN_BACKEND
|
||||||
|
- if (backend.isEmpty() && finfo.fileName().contains(QLatin1String("KSC_Fake"))) {
|
||||||
|
- continue;
|
||||||
|
- }
|
||||||
|
+ QString path = QFile::decodeName(CMAKE_INSTALL_PREFIX "/" PLUGIN_INSTALL_DIR "/");
|
||||||
|
|
||||||
|
- // When on X11, skip the QScreen backend, instead use the XRandR backend,
|
||||||
|
- // if not specified in KSCREEN_BACKEND
|
||||||
|
- if (backend.isEmpty() &&
|
||||||
|
- finfo.fileName().contains(QLatin1String("KSC_QScreen")) &&
|
||||||
|
- QX11Info::isPlatformX11()) {
|
||||||
|
- continue;
|
||||||
|
- }
|
||||||
|
+ const QDir dir(path + QDir::separator() + QLatin1String("/kf5/kscreen/"),
|
||||||
|
+ backendFilter,
|
||||||
|
+ QDir::SortFlags(QDir::QDir::NoSort),
|
||||||
|
+ QDir::NoDotAndDotDot | QDir::Files);
|
||||||
|
+ const QFileInfoList finfos = dir.entryInfoList();
|
||||||
|
+ Q_FOREACH (const QFileInfo &finfo, finfos) {
|
||||||
|
+ // Skip "Fake" backend unless explicitly specified via KSCREEN_BACKEND
|
||||||
|
+ if (backend.isEmpty() && finfo.fileName().contains(QLatin1String("KSC_Fake"))) {
|
||||||
|
+ continue;
|
||||||
|
+ }
|
||||||
|
|
||||||
|
- // When not on X11, skip the XRandR backend, and fall back to QSCreen
|
||||||
|
- // if not specified in KSCREEN_BACKEND
|
||||||
|
- if (backend.isEmpty() &&
|
||||||
|
- finfo.fileName().contains(QLatin1String("KSC_XRandR")) &&
|
||||||
|
- !QX11Info::isPlatformX11()) {
|
||||||
|
- continue;
|
||||||
|
- }
|
||||||
|
+ // When on X11, skip the QScreen backend, instead use the XRandR backend,
|
||||||
|
+ // if not specified in KSCREEN_BACKEND
|
||||||
|
+ if (backend.isEmpty() &&
|
||||||
|
+ finfo.fileName().contains(QLatin1String("KSC_QScreen")) &&
|
||||||
|
+ QX11Info::isPlatformX11()) {
|
||||||
|
+ continue;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ // When not on X11, skip the XRandR backend, and fall back to QSCreen
|
||||||
|
+ // if not specified in KSCREEN_BACKEND
|
||||||
|
+ if (backend.isEmpty() &&
|
||||||
|
+ finfo.fileName().contains(QLatin1String("KSC_XRandR")) &&
|
||||||
|
+ !QX11Info::isPlatformX11()) {
|
||||||
|
+ continue;
|
||||||
|
+ }
|
||||||
|
|
||||||
|
- QPluginLoader loader(finfo.filePath());
|
||||||
|
- loader.load();
|
||||||
|
- QObject *instance = loader.instance();
|
||||||
|
- if (!instance) {
|
||||||
|
+ QPluginLoader loader(finfo.filePath());
|
||||||
|
+ loader.load();
|
||||||
|
+ QObject *instance = loader.instance();
|
||||||
|
+ if (!instance) {
|
||||||
|
+ loader.unload();
|
||||||
|
+ continue;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ s_backend = qobject_cast< AbstractBackend* >(instance);
|
||||||
|
+ if (s_backend) {
|
||||||
|
+ if (!s_backend->isValid()) {
|
||||||
|
+ qCDebug(KSCREEN) << "Skipping" << s_backend->name() << "backend";
|
||||||
|
+ delete s_backend;
|
||||||
|
+ s_backend = 0;
|
||||||
|
loader.unload();
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
-
|
||||||
|
- s_backend = qobject_cast< AbstractBackend* >(instance);
|
||||||
|
- if (s_backend) {
|
||||||
|
- if (!s_backend->isValid()) {
|
||||||
|
- qCDebug(KSCREEN) << "Skipping" << s_backend->name() << "backend";
|
||||||
|
- delete s_backend;
|
||||||
|
- s_backend = 0;
|
||||||
|
- loader.unload();
|
||||||
|
- continue;
|
||||||
|
- }
|
||||||
|
- qCDebug(KSCREEN) << "Loading" << s_backend->name() << "backend";
|
||||||
|
- return true;
|
||||||
|
- }
|
||||||
|
+ qCDebug(KSCREEN) << "Loading" << s_backend->name() << "backend";
|
||||||
|
+ return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
diff --git a/src/config-libkscreen.h.cmake b/src/config-libkscreen.h.cmake
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..a99f3d1
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/src/config-libkscreen.h.cmake
|
||||||
|
@@ -0,0 +1,2 @@
|
||||||
|
+#define CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}"
|
||||||
|
+#define PLUGIN_INSTALL_DIR "${PLUGIN_INSTALL_DIR}"
|
166
pkgs/desktops/plasma-5.1/manifest.nix
Normal file
166
pkgs/desktops/plasma-5.1/manifest.nix
Normal file
@ -0,0 +1,166 @@
|
|||||||
|
# This file is generated automatically. DO NOT EDIT!
|
||||||
|
{ mirror }:
|
||||||
|
[
|
||||||
|
{
|
||||||
|
url = "${mirror}/stable/plasma/5.1.2/kwayland-5.1.2.tar.xz";
|
||||||
|
sha256 = "0v57gdbhbqq9nm8y6f8xlwwsfib8v8wbh32bb38aa22wkcqbnqh5";
|
||||||
|
name = "kwayland-5.1.2.tar.xz";
|
||||||
|
store = "/nix/store/r4bjs61x7ad3ff1iy4j111japxzn8gdm-kwayland-5.1.2.tar.xz";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
url = "${mirror}/stable/plasma/5.1.2/milou-5.1.2.tar.xz";
|
||||||
|
sha256 = "0dawmwzdxb289gblnbxw4ryqj45c1rmws7mm0cmqlnxh2ykysska";
|
||||||
|
name = "milou-5.1.2.tar.xz";
|
||||||
|
store = "/nix/store/d90rryiyw3haw0mlcxzs57b0vsmq2c3g-milou-5.1.2.tar.xz";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
url = "${mirror}/stable/plasma/5.1.2/plasma-workspace-5.1.2.tar.xz";
|
||||||
|
sha256 = "03gwkikxmmbiglyf2cbhm79wri1vfsibpr0qsyydcnqf2bja4adk";
|
||||||
|
name = "plasma-workspace-5.1.2.tar.xz";
|
||||||
|
store = "/nix/store/9b2pcs64kvdnb0mf7g1gyjgygi8pfrk1-plasma-workspace-5.1.2.tar.xz";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
url = "${mirror}/stable/plasma/5.1.2/kdeplasma-addons-5.1.2.tar.xz";
|
||||||
|
sha256 = "0jfrnvrn4x5cjd3yp21sr53rddcaxw3l05xkcq99lb29jx7x831f";
|
||||||
|
name = "kdeplasma-addons-5.1.2.tar.xz";
|
||||||
|
store = "/nix/store/9f7154m5aq35lfwj6rfq7ra4c2b0xs4r-kdeplasma-addons-5.1.2.tar.xz";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
url = "${mirror}/stable/plasma/5.1.2/khotkeys-5.1.2.tar.xz";
|
||||||
|
sha256 = "0kyjvrfpf8zqv8milbzdj0y6i37413qmvdhkxy2phqwrnwj4x69q";
|
||||||
|
name = "khotkeys-5.1.2.tar.xz";
|
||||||
|
store = "/nix/store/lq1v4haiag93w5g6pqwp5r9w8n3xvh1n-khotkeys-5.1.2.tar.xz";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
url = "${mirror}/stable/plasma/5.1.2/kde-cli-tools-5.1.2.tar.xz";
|
||||||
|
sha256 = "1akgj042i52b6mzd0lq8xgrqnwi63wc7k82g8r4kfy8611vxw6wb";
|
||||||
|
name = "kde-cli-tools-5.1.2.tar.xz";
|
||||||
|
store = "/nix/store/byjdh6cmqimk3i314h3y57s2z3nvpfnw-kde-cli-tools-5.1.2.tar.xz";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
url = "${mirror}/stable/plasma/5.1.2/libnm-qt-5.1.2.tar.xz";
|
||||||
|
sha256 = "1gm3yjlb5iq2l0rm8wqg0hs1f66ca5j8zvw6rrn3z4f2hsw9b8vm";
|
||||||
|
name = "libnm-qt-5.1.2.tar.xz";
|
||||||
|
store = "/nix/store/yx6jhazzb32580ax7dw4jdzncj1lpx4a-libnm-qt-5.1.2.tar.xz";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
url = "${mirror}/stable/plasma/5.1.2/oxygen-fonts-5.1.2.tar.xz";
|
||||||
|
sha256 = "05f06fsgp6xjv5azs546cq5653k3cyyidbdkggf20yrwlybypg2w";
|
||||||
|
name = "oxygen-fonts-5.1.2.tar.xz";
|
||||||
|
store = "/nix/store/ppzbxx7vkpymjgvi3skrch2dlx3mwhjg-oxygen-fonts-5.1.2.tar.xz";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
url = "${mirror}/stable/plasma/5.1.2/khelpcenter-5.1.2.tar.xz";
|
||||||
|
sha256 = "0fgwabsvbg4xzzli8k28hqw6rw5wzmp77fpb7qxiaks2qxd6xfvl";
|
||||||
|
name = "khelpcenter-5.1.2.tar.xz";
|
||||||
|
store = "/nix/store/nq86gdfz5fgkxcndk4knnb3n59y9b17x-khelpcenter-5.1.2.tar.xz";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
url = "${mirror}/stable/plasma/5.1.2/kmenuedit-5.1.2.tar.xz";
|
||||||
|
sha256 = "1f09m8ki1qib0rfvbkd1nqszq5mglc802rz9b7s9hfi0n5la05cj";
|
||||||
|
name = "kmenuedit-5.1.2.tar.xz";
|
||||||
|
store = "/nix/store/8l7agrg12ghva4103iwm1xdzhqk3iwxp-kmenuedit-5.1.2.tar.xz";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
url = "${mirror}/stable/plasma/5.1.2/kinfocenter-5.1.2.tar.xz";
|
||||||
|
sha256 = "1yp08z0sirm1i21ix27c72l1pygndrh4gnb5rl4r6rj0rymy4xn0";
|
||||||
|
name = "kinfocenter-5.1.2.tar.xz";
|
||||||
|
store = "/nix/store/jl3s4kimn0xamxc4yhc1jsrz9j0cmws1-kinfocenter-5.1.2.tar.xz";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
url = "${mirror}/stable/plasma/5.1.2/kwrited-5.1.2.tar.xz";
|
||||||
|
sha256 = "0bsm3dkl1zi1h16cd1pc9qcbv2jpjpzcw7m6cg9gbk7icjymn065";
|
||||||
|
name = "kwrited-5.1.2.tar.xz";
|
||||||
|
store = "/nix/store/ishi0y744yapvf2yf0hm5gam3z5j2687-kwrited-5.1.2.tar.xz";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
url = "${mirror}/stable/plasma/5.1.2/kio-extras-5.1.2.tar.xz";
|
||||||
|
sha256 = "0d4yyssiddcabrfr94ylf4p2f7l5mpg353m67w2x4rdlc7bgc00z";
|
||||||
|
name = "kio-extras-5.1.2.tar.xz";
|
||||||
|
store = "/nix/store/6pqx9daq9bx7in8dghy041vfn5x829g2-kio-extras-5.1.2.tar.xz";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
url = "${mirror}/stable/plasma/5.1.2/systemsettings-5.1.2.tar.xz";
|
||||||
|
sha256 = "102s7l1xaxqzsswzcsr6qx2mizi1fw85ickj8sm4ql493m3iy0vy";
|
||||||
|
name = "systemsettings-5.1.2.tar.xz";
|
||||||
|
store = "/nix/store/c56khxzyh8gzi5nxy8i3n2vlwbsmblsz-systemsettings-5.1.2.tar.xz";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
url = "${mirror}/stable/plasma/5.1.2/powerdevil-5.1.2.tar.xz";
|
||||||
|
sha256 = "0bq042phd1rv42qf21672l74mlygzvqknqd0vhfay7lz5hihd3np";
|
||||||
|
name = "powerdevil-5.1.2.tar.xz";
|
||||||
|
store = "/nix/store/5p6j6949gv1s03cm1yn1v0i18clma3cw-powerdevil-5.1.2.tar.xz";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
url = "${mirror}/stable/plasma/5.1.2/plasma-desktop-5.1.2.tar.xz";
|
||||||
|
sha256 = "0nn1fcb8b4cmh6wzfar7dzmc6r830n6nq78icsbqkl2yi631vmv7";
|
||||||
|
name = "plasma-desktop-5.1.2.tar.xz";
|
||||||
|
store = "/nix/store/nnk00ddkr0rqbmk6i1q17wimvb6n79m6-plasma-desktop-5.1.2.tar.xz";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
url = "${mirror}/stable/plasma/5.1.2/libmm-qt-5.1.2.tar.xz";
|
||||||
|
sha256 = "1jx3zq5j7dm27k74ayibg0d82f7nm7r40mj92sk0drgzaj0q2wv4";
|
||||||
|
name = "libmm-qt-5.1.2.tar.xz";
|
||||||
|
store = "/nix/store/z3f23bansr6yqvc8pwcavwy828ykf85z-libmm-qt-5.1.2.tar.xz";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
url = "${mirror}/stable/plasma/5.1.2/breeze-5.1.2.tar.xz";
|
||||||
|
sha256 = "1c7bfr2zdhh84bik5ksyfxvng8c23slasf6lbr86f0mmvwssqhc4";
|
||||||
|
name = "breeze-5.1.2.tar.xz";
|
||||||
|
store = "/nix/store/h0ra9f62jj3lqsg5hhqsb8cq05fqaq0c-breeze-5.1.2.tar.xz";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
url = "${mirror}/stable/plasma/5.1.2/ksysguard-5.1.2.tar.xz";
|
||||||
|
sha256 = "03bngwq0dpgffcr7dkzk44n995kcawk1fgxf38zkik4qrr2m8xmz";
|
||||||
|
name = "ksysguard-5.1.2.tar.xz";
|
||||||
|
store = "/nix/store/vrgl460m4h0bzwhakgkj9sddn2pr6057-ksysguard-5.1.2.tar.xz";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
url = "${mirror}/stable/plasma/5.1.2/kwin-5.1.2.tar.xz";
|
||||||
|
sha256 = "1sjb9w8yaicypjdlcnn6a8zaa03fmgn9bsbbr1xfh3kcjm0p2hjf";
|
||||||
|
name = "kwin-5.1.2.tar.xz";
|
||||||
|
store = "/nix/store/0lcmq4bl3kc48gcps703bby99z0zdl7q-kwin-5.1.2.tar.xz";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
url = "${mirror}/stable/plasma/5.1.2/oxygen-5.1.2.tar.xz";
|
||||||
|
sha256 = "0dwlqc57qwp09bbmknakjndqgajfp948kri8ysakj50qbfzq22ly";
|
||||||
|
name = "oxygen-5.1.2.tar.xz";
|
||||||
|
store = "/nix/store/al4whqd4gdnyym26kd2yp3c1slyll0bw-oxygen-5.1.2.tar.xz";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
url = "${mirror}/stable/plasma/5.1.2/libkscreen-5.1.2.tar.xz";
|
||||||
|
sha256 = "1kbs042anmc8mifmbxwi7sw0n74kcpf5hpbld5a7nclhm0xpyzb9";
|
||||||
|
name = "libkscreen-5.1.2.tar.xz";
|
||||||
|
store = "/nix/store/rkmydih2fss2gm84j8rgpd3ybz7pyz5p-libkscreen-5.1.2.tar.xz";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
url = "${mirror}/stable/plasma/5.1.2/libksysguard-5.1.2.tar.xz";
|
||||||
|
sha256 = "061jjqh6i70g5f8qh47znk295wh1j7z3i9imppdlxhymm2sdix5k";
|
||||||
|
name = "libksysguard-5.1.2.tar.xz";
|
||||||
|
store = "/nix/store/dyipim22aisn9cnk3d9431bi393qsi38-libksysguard-5.1.2.tar.xz";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
url = "${mirror}/stable/plasma/5.1.2/plasma-workspace-wallpapers-5.1.2.tar.xz";
|
||||||
|
sha256 = "18my7r17b6c0wm545knpy68bcgawmr6x1h383br1a3jrahb9smfx";
|
||||||
|
name = "plasma-workspace-wallpapers-5.1.2.tar.xz";
|
||||||
|
store = "/nix/store/inqv621x6l2yz1kj71d824kc0labpss7-plasma-workspace-wallpapers-5.1.2.tar.xz";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
url = "${mirror}/stable/plasma/5.1.2/kfilemetadata-5.1.2.tar.xz";
|
||||||
|
sha256 = "0ssz2v9dm09ig20m5c2gcgi0dhkbijs7580j75kyabcyxyq33gdi";
|
||||||
|
name = "kfilemetadata-5.1.2.tar.xz";
|
||||||
|
store = "/nix/store/84jqp15fclxia88dmbr2zpq50m6xzwib-kfilemetadata-5.1.2.tar.xz";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
url = "${mirror}/stable/plasma/5.1.2/plasma-nm-5.1.2.tar.xz";
|
||||||
|
sha256 = "1ifwjbzdjsfcq2vbq58fnx1r8m11wbmcwchnn7ihabbcgj5admp7";
|
||||||
|
name = "plasma-nm-5.1.2.tar.xz";
|
||||||
|
store = "/nix/store/2czga7b7i36841rs4mnfzd7j7s3rfanv-plasma-nm-5.1.2.tar.xz";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
url = "${mirror}/stable/plasma/5.1.2/baloo-5.1.2.tar.xz";
|
||||||
|
sha256 = "1ynd3amry3wjk8sjlb5knpvjshn0gvs2m1gpbr7r7528ckkv0gpv";
|
||||||
|
name = "baloo-5.1.2.tar.xz";
|
||||||
|
store = "/nix/store/lcrrxz5yjf88cgifz3zjcq5skdp4jxkk-baloo-5.1.2.tar.xz";
|
||||||
|
}
|
||||||
|
]
|
15
pkgs/desktops/plasma-5.1/manifest.sh
Executable file
15
pkgs/desktops/plasma-5.1/manifest.sh
Executable file
@ -0,0 +1,15 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
if [ $# -eq 0 ]; then
|
||||||
|
|
||||||
|
# The extra slash at the end of the URL is necessary to stop wget
|
||||||
|
# from recursing over the whole server! (No, it's not a bug.)
|
||||||
|
$(nix-build ../../.. -A autonix.manifest) \
|
||||||
|
http://download.kde.org/stable/plasma/5.1.2/ \
|
||||||
|
-A '*.tar.xz'
|
||||||
|
|
||||||
|
else
|
||||||
|
|
||||||
|
$(nix-build ../../.. -A autonix.manifest) -A '*.tar.xz' "$@"
|
||||||
|
|
||||||
|
fi
|
@ -0,0 +1,24 @@
|
|||||||
|
diff --git a/kcms/dateandtime/helper.cpp b/kcms/dateandtime/helper.cpp
|
||||||
|
index cec5ab8..fc4a6b9 100644
|
||||||
|
--- a/kcms/dateandtime/helper.cpp
|
||||||
|
+++ b/kcms/dateandtime/helper.cpp
|
||||||
|
@@ -48,10 +48,6 @@
|
||||||
|
#include <sys/stat.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
-// We cannot rely on the $PATH environment variable, because D-Bus activation
|
||||||
|
-// clears it. So we have to use a reasonable default.
|
||||||
|
-static const QString exePath = QLatin1String("/usr/sbin:/usr/bin:/sbin:/bin");
|
||||||
|
-
|
||||||
|
int ClockHelper::ntp( const QStringList& ntpServers, bool ntpEnabled )
|
||||||
|
{
|
||||||
|
int ret = 0;
|
||||||
|
@@ -227,7 +223,7 @@ int ClockHelper::tzreset()
|
||||||
|
|
||||||
|
void ClockHelper::toHwclock()
|
||||||
|
{
|
||||||
|
- QString hwclock = KStandardDirs::findExe("hwclock", exePath);
|
||||||
|
+ QString hwclock = "@hwclock@";
|
||||||
|
if (!hwclock.isEmpty()) {
|
||||||
|
KProcess::execute(hwclock, QStringList() << "--systohc");
|
||||||
|
}
|
@ -0,0 +1,18 @@
|
|||||||
|
diff --git a/kcms/dateandtime/helper.cpp b/kcms/dateandtime/helper.cpp
|
||||||
|
index fc4a6b9..7b64d05 100644
|
||||||
|
--- a/kcms/dateandtime/helper.cpp
|
||||||
|
+++ b/kcms/dateandtime/helper.cpp
|
||||||
|
@@ -181,7 +181,12 @@ int ClockHelper::tz( const QString& selectedzone )
|
||||||
|
|
||||||
|
val = selectedzone;
|
||||||
|
#else
|
||||||
|
- QString tz = "/usr/share/zoneinfo/" + selectedzone;
|
||||||
|
+ // NixOS-specific path
|
||||||
|
+ QString tz = "/etc/zoneinfo/" + selectedzone;
|
||||||
|
+ if (!QFile::exists(tz)) {
|
||||||
|
+ // Standard Linux path
|
||||||
|
+ tz = "/usr/share/zoneinfo/" + selectedzone;
|
||||||
|
+ }
|
||||||
|
|
||||||
|
if (QFile::exists(tz)) { // make sure the new TZ really exists
|
||||||
|
QFile::remove("/etc/localtime");
|
24
pkgs/desktops/plasma-5.1/renames.nix
Normal file
24
pkgs/desktops/plasma-5.1/renames.nix
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
# DO NOT EDIT! This file is generated automatically.
|
||||||
|
{ }:
|
||||||
|
{
|
||||||
|
"Backend" = "powerdevil";
|
||||||
|
"CTest" = "kdeplasma-addons";
|
||||||
|
"ECM" = "extra-cmake-modules";
|
||||||
|
"KDecorations" = "kwin";
|
||||||
|
"KF5Baloo" = "baloo";
|
||||||
|
"KF5FileMetaData" = "kfilemetadata";
|
||||||
|
"KF5ModemManagerQt" = "libmm-qt";
|
||||||
|
"KF5NetworkManagerQt" = "libnm-qt";
|
||||||
|
"KF5Screen" = "libkscreen";
|
||||||
|
"KF5SysGuard" = "libksysguard";
|
||||||
|
"KF5Wayland" = "kwayland";
|
||||||
|
"KF5XmlRpcClientPrivate" = "plasma-workspace";
|
||||||
|
"KHotKeysDBusInterface" = "khotkeys";
|
||||||
|
"KRunnerAppDBusInterface" = "plasma-workspace";
|
||||||
|
"KSMServerDBusInterface" = "plasma-workspace";
|
||||||
|
"KWinDBusInterface" = "kwin";
|
||||||
|
"LibKWorkspace" = "plasma-workspace";
|
||||||
|
"LibTaskManager" = "plasma-workspace";
|
||||||
|
"OxygenFont" = "oxygen-fonts";
|
||||||
|
"ScreenSaverDBusInterface" = "plasma-workspace";
|
||||||
|
}
|
1
pkgs/desktops/plasma-5.1/setup-hook.sh
Normal file
1
pkgs/desktops/plasma-5.1/setup-hook.sh
Normal file
@ -0,0 +1 @@
|
|||||||
|
addToSearchPath XDG_DATA_DIRS @out@/share
|
33
pkgs/desktops/plasma-5.1/startkde/default.nix
Normal file
33
pkgs/desktops/plasma-5.1/startkde/default.nix
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
# We provide our own version of the startkde script in its entirety, rather than
|
||||||
|
# patching the version provided by kde-workspace, because it requires such
|
||||||
|
# extensive patching.
|
||||||
|
|
||||||
|
{ stdenv, bash, dbus, gnused, gnugrep, kconfig, kinit, kservice, plasma-desktop
|
||||||
|
, plasma-workspace, qt5, socat, xorg }:
|
||||||
|
|
||||||
|
let startkde = ./startkde.in; in
|
||||||
|
|
||||||
|
stdenv.mkDerivation {
|
||||||
|
name = "startkde-0.1";
|
||||||
|
phases = "installPhase";
|
||||||
|
|
||||||
|
inherit bash gnused gnugrep kconfig kinit kservice qt5 socat;
|
||||||
|
inherit (xorg) mkfontdir xmessage xprop xrdb xset xsetroot;
|
||||||
|
dbus_tools = dbus.tools;
|
||||||
|
plasmaWorkspace = plasma-workspace;
|
||||||
|
plasmaDesktop = plasma-desktop;
|
||||||
|
startupconfigkeys = ./startupconfigkeys;
|
||||||
|
kdeglobals = ./kdeglobals;
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out/bin
|
||||||
|
substituteAll ${startkde} $out/bin/startkde
|
||||||
|
chmod +x $out/bin/startkde
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
description = "Custom startkde script for Nixpkgs";
|
||||||
|
maintainers = with stdenv.lib.maintainers; [ ttuegel ];
|
||||||
|
license = with stdenv.lib.licenses; [ gpl2Plus ];
|
||||||
|
};
|
||||||
|
}
|
11
pkgs/desktops/plasma-5.1/startkde/kdeglobals
Normal file
11
pkgs/desktops/plasma-5.1/startkde/kdeglobals
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
[General]
|
||||||
|
XftAntialias=true
|
||||||
|
XftHintStyle=hintmedium
|
||||||
|
XftSubPixel=none
|
||||||
|
desktopFont=Oxygen-Sans,10,-1,5,50,0,0,0,0,0
|
||||||
|
fixed=Oxygen Mono,9,-1,5,50,0,0,0,0,0
|
||||||
|
font=Oxygen-Sans,10,-1,5,50,0,0,0,0,0
|
||||||
|
menuFont=Oxygen-Sans,10,-1,5,50,0,0,0,0,0
|
||||||
|
smallestReadableFont=Oxygen-Sans,8,-1,5,50,0,0,0,0,0
|
||||||
|
taskbarFont=Oxygen-Sans,10,-1,5,50,0,0,0,0,0
|
||||||
|
toolBarFont=Oxygen-Sans,9,-1,5,50,0,0,0,0,0
|
382
pkgs/desktops/plasma-5.1/startkde/startkde.in
Normal file
382
pkgs/desktops/plasma-5.1/startkde/startkde.in
Normal file
@ -0,0 +1,382 @@
|
|||||||
|
#!@bash@/bin/bash -x
|
||||||
|
#
|
||||||
|
# NIXOS KDE STARTUP SCRIPT
|
||||||
|
#
|
||||||
|
|
||||||
|
# The KDE icon cache is supposed to update itself
|
||||||
|
# automatically, but it uses the timestamp on the icon
|
||||||
|
# theme directory as a trigger. Since in Nix the
|
||||||
|
# timestamp is always the same, this doesn't work. So as
|
||||||
|
# a workaround, nuke the icon cache on login. This isn't
|
||||||
|
# perfect, since it may require logging out after
|
||||||
|
# installing new applications to update the cache.
|
||||||
|
# See http://lists-archives.org/kde-devel/26175-what-when-will-icon-cache-refresh.html
|
||||||
|
rm -fv $HOME/.cache/icon-cache.kcache
|
||||||
|
|
||||||
|
# Qt writes a weird ‘libraryPath’ line to
|
||||||
|
# ~/.config/Trolltech.conf that causes the KDE plugin
|
||||||
|
# paths of previous KDE invocations to be searched.
|
||||||
|
# Obviously using mismatching KDE libraries is potentially
|
||||||
|
# disastrous, so here we nuke references to the Nix store
|
||||||
|
# in Trolltech.conf. A better solution would be to stop
|
||||||
|
# Qt from doing this wackiness in the first place.
|
||||||
|
if [ -e $HOME/.config/Trolltech.conf ]; then
|
||||||
|
@gnused@/bin/sed -e '/nix\\store\|nix\/store/ d' -i $HOME/.config/Trolltech.conf
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test "x$1" = x--failsafe; then
|
||||||
|
KDE_FAILSAFE=1 # General failsafe flag
|
||||||
|
KWIN_COMPOSE=N # Disable KWin's compositing
|
||||||
|
export KWIN_COMPOSE KDE_FAILSAFE
|
||||||
|
fi
|
||||||
|
|
||||||
|
# When the X server dies we get a HUP signal from xinit. We must ignore it
|
||||||
|
# because we still need to do some cleanup.
|
||||||
|
trap 'echo GOT SIGHUP' HUP
|
||||||
|
|
||||||
|
# we have to unset this for Darwin since it will screw up KDE's dynamic-loading
|
||||||
|
unset DYLD_FORCE_FLAT_NAMESPACE
|
||||||
|
|
||||||
|
# Check if a KDE session already is running and whether it's possible to connect to X
|
||||||
|
@plasmaWorkspace@/bin/kcheckrunning
|
||||||
|
kcheckrunning_result=$?
|
||||||
|
if test $kcheckrunning_result -eq 0 ; then
|
||||||
|
@xmessage@/bin/xmessage -geometry 500x100 "KDE seems to be already running on this display."
|
||||||
|
exit 1
|
||||||
|
elif test $kcheckrunning_result -eq 2 ; then
|
||||||
|
echo "\$DISPLAY is not set or cannot connect to the X server."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Boot sequence:
|
||||||
|
#
|
||||||
|
# kdeinit is used to fork off processes which improves memory usage
|
||||||
|
# and startup time.
|
||||||
|
#
|
||||||
|
# * kdeinit starts klauncher first.
|
||||||
|
# * Then kded is started. kded is responsible for keeping the sycoca
|
||||||
|
# database up to date. When an up to date database is present it goes
|
||||||
|
# into the background and the startup continues.
|
||||||
|
# * Then kdeinit starts kcminit. kcminit performs initialisation of
|
||||||
|
# certain devices according to the user's settings
|
||||||
|
#
|
||||||
|
# * Then ksmserver is started which takes control of the rest of the startup sequence
|
||||||
|
|
||||||
|
# We need to create config folder so we can write startupconfigkeys
|
||||||
|
if [ ${XDG_CONFIG_HOME} ]; then
|
||||||
|
configDir=$XDG_CONFIG_HOME;
|
||||||
|
else
|
||||||
|
# This is the default
|
||||||
|
# http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html
|
||||||
|
configDir=${HOME}/.config;
|
||||||
|
fi
|
||||||
|
|
||||||
|
mkdir -p $configDir
|
||||||
|
|
||||||
|
# This is basically setting defaults so we can use them with kstartupconfig5
|
||||||
|
cat @startupconfigkeys@ >$configDir/startupconfigkeys
|
||||||
|
|
||||||
|
# preload the user's locale on first start
|
||||||
|
plasmalocalerc=$configDir/plasma-localerc
|
||||||
|
test -f $plasmalocalerc || {
|
||||||
|
cat >$plasmalocalerc <<EOF
|
||||||
|
[Formats]
|
||||||
|
LANG=$LANG
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
|
||||||
|
# export LC_* variables set by kcmshell5 formats into environment
|
||||||
|
# so it can be picked up by QLocale and friends.
|
||||||
|
exportformatssettings=$configDir/plasma-locale-settings.sh
|
||||||
|
[ -f $exportformatssettings ] && . $exportformatssettings
|
||||||
|
|
||||||
|
# Write a default kdeglobals file to set up the font
|
||||||
|
kdeglobalsfile=$configDir/kdeglobals
|
||||||
|
[ -f $kdeglobalsfile ] || cat @kdeglobals@ >$kdeglobalsfile
|
||||||
|
|
||||||
|
@plasmaWorkspace@/bin/kstartupconfig5
|
||||||
|
returncode=$?
|
||||||
|
if test $returncode -ne 0; then
|
||||||
|
@xmessage@/bin/xmessage -geometry 500x100 "kstartupconfig5 exited with $returncode"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
[ -r $configDir/startupconfig ] && . $configDir/startupconfig
|
||||||
|
|
||||||
|
XCURSOR_PATH=~/.icons:$(echo "$XDG_DATA_DIRS" | tr ":" "\n" | @gnused@/bin/sed 's,$,/icons,g' | tr "\n" ":")
|
||||||
|
export XCURSOR_PATH
|
||||||
|
|
||||||
|
# XCursor mouse theme needs to be applied here to work even for kded or ksmserver
|
||||||
|
if test -n "$kcminputrc_mouse_cursortheme" -o -n "$kcminputrc_mouse_cursorsize" ; then
|
||||||
|
|
||||||
|
@plasmaDesktop@/bin/kapplymousetheme "$kcminputrc_mouse_cursortheme" "$kcminputrc_mouse_cursorsize"
|
||||||
|
if test $? -eq 10; then
|
||||||
|
XCURSOR_THEME=default
|
||||||
|
export XCURSOR_THEME
|
||||||
|
elif test -n "$kcminputrc_mouse_cursortheme"; then
|
||||||
|
XCURSOR_THEME="$kcminputrc_mouse_cursortheme"
|
||||||
|
export XCURSOR_THEME
|
||||||
|
fi
|
||||||
|
if test -n "$kcminputrc_mouse_cursorsize"; then
|
||||||
|
XCURSOR_SIZE="$kcminputrc_mouse_cursorsize"
|
||||||
|
export XCURSOR_SIZE
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Set a left cursor instead of the standard X11 "X" cursor, since I've heard
|
||||||
|
# from some users that they're confused and don't know what to do. This is
|
||||||
|
# especially necessary on slow machines, where starting KDE takes one or two
|
||||||
|
# minutes until anything appears on the screen.
|
||||||
|
#
|
||||||
|
# If the user has overwritten fonts, the cursor font may be different now
|
||||||
|
# so don't move this up.
|
||||||
|
#
|
||||||
|
@xsetroot@/bin/xsetroot -cursor_name left_ptr
|
||||||
|
|
||||||
|
dl=$DESKTOP_LOCKED
|
||||||
|
unset DESKTOP_LOCKED # Don't want it in the environment
|
||||||
|
|
||||||
|
# Make sure that D-Bus is running
|
||||||
|
# D-Bus autolaunch is broken
|
||||||
|
if test -z "$DBUS_SESSION_BUS_ADDRESS" ; then
|
||||||
|
eval `@dbus_tools@/bin/dbus-launch --sh-syntax --exit-with-session`
|
||||||
|
fi
|
||||||
|
if @qt5@/bin/qdbus >/dev/null 2>/dev/null; then
|
||||||
|
: # ok
|
||||||
|
else
|
||||||
|
echo 'startkde: Could not start D-Bus. Can you call qdbus?' 1>&2
|
||||||
|
test -n "$ksplash_pid" && kill "$ksplash_pid" 2>/dev/null
|
||||||
|
@xmessage@/bin/xmessage -geometry 500x100 "Could not start D-Bus. Can you call qdbus?"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
ksplash_pid=
|
||||||
|
if test -z "$dl"; then
|
||||||
|
# the splashscreen and progress indicator
|
||||||
|
case "$ksplashrc_ksplash_engine" in
|
||||||
|
KSplashQML)
|
||||||
|
ksplash_pid=`@plasmaWorkspace@/bin/ksplashqml "${ksplashrc_ksplash_theme}" --pid`
|
||||||
|
;;
|
||||||
|
None)
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Source scripts found in <config locations>/plasma-workspace/env/*.sh
|
||||||
|
# (where <config locations> correspond to the system and user's configuration
|
||||||
|
# directories, as identified by Qt's qtpaths, e.g. $HOME/.config
|
||||||
|
# and /etc/xdg/ on Linux)
|
||||||
|
#
|
||||||
|
# This is where you can define environment variables that will be available to
|
||||||
|
# all KDE programs, so this is where you can run agents using e.g. eval `ssh-agent`
|
||||||
|
# or eval `gpg-agent --daemon`.
|
||||||
|
# Note: if you do that, you should also put "ssh-agent -k" as a shutdown script
|
||||||
|
#
|
||||||
|
# (see end of this file).
|
||||||
|
# For anything else (that doesn't set env vars, or that needs a window manager),
|
||||||
|
# better use the Autostart folder.
|
||||||
|
|
||||||
|
# TODO: Use GenericConfigLocation once we depend on Qt 5.4
|
||||||
|
scriptpath=`@qt5@/bin/qtpaths --paths ConfigLocation | tr ':' '\n' | @gnused@/bin/sed 's,$,/plasma-workspace,g'`
|
||||||
|
|
||||||
|
# Add /env/ to the directory to locate the scripts to be sourced
|
||||||
|
for prefix in `echo $scriptpath`; do
|
||||||
|
for file in "$prefix"/env/*.sh; do
|
||||||
|
test -r "$file" && . "$file"
|
||||||
|
done
|
||||||
|
done
|
||||||
|
|
||||||
|
# Set the path for Qt plugins provided by KDE
|
||||||
|
QT_PLUGIN_PATH=${QT_PLUGIN_PATH+$QT_PLUGIN_PATH:}`@qt5@/bin/qtpaths --plugin-dir`
|
||||||
|
# TODO: Do we really need this?
|
||||||
|
QT_PLUGIN_PATH=$QT_PLUGIN_PATH:$kdehome/lib/kde5/plugins/
|
||||||
|
export QT_PLUGIN_PATH
|
||||||
|
|
||||||
|
# Activate the kde font directories.
|
||||||
|
#
|
||||||
|
# There are 4 directories that may be used for supplying fonts for KDE.
|
||||||
|
#
|
||||||
|
# There are two system directories. These belong to the administrator.
|
||||||
|
# There are two user directories, where the user may add her own fonts.
|
||||||
|
#
|
||||||
|
# The 'override' versions are for fonts that should come first in the list,
|
||||||
|
# i.e. if you have a font in your 'override' directory, it will be used in
|
||||||
|
# preference to any other.
|
||||||
|
#
|
||||||
|
# The preference order looks like this:
|
||||||
|
# user override, system override, X, user, system
|
||||||
|
#
|
||||||
|
# Where X is the original font database that was set up before this script
|
||||||
|
# runs.
|
||||||
|
|
||||||
|
usr_odir=$HOME/.fonts/kde-override
|
||||||
|
usr_fdir=$HOME/.fonts
|
||||||
|
|
||||||
|
if test -n "$KDEDIRS"; then
|
||||||
|
kdedirs_first=`echo "$KDEDIRS" | @gnused@/bin/sed -e 's/:.*//'`
|
||||||
|
sys_odir=$kdedirs_first/share/fonts/override
|
||||||
|
sys_fdir=$kdedirs_first/share/fonts
|
||||||
|
else
|
||||||
|
sys_odir=$KDEDIR/share/fonts/override
|
||||||
|
sys_fdir=$KDEDIR/share/fonts
|
||||||
|
fi
|
||||||
|
|
||||||
|
# We run mkfontdir on the user's font dirs (if we have permission) to pick
|
||||||
|
# up any new fonts they may have installed. If mkfontdir fails, we still
|
||||||
|
# add the user's dirs to the font path, as they might simply have been made
|
||||||
|
# read-only by the administrator, for whatever reason.
|
||||||
|
|
||||||
|
test -d "$sys_odir" && @xset@/bin/xset +fp "$sys_odir"
|
||||||
|
test -d "$usr_odir" && ( @mkfontdir@/bin/mkfontdir "$usr_odir" ; @xset@/bin/xset +fp "$usr_odir" )
|
||||||
|
test -d "$usr_fdir" && ( @mkfontdir@/bin/mkfontdir "$usr_fdir" ; @xset@/bin/xset fp+ "$usr_fdir" )
|
||||||
|
test -d "$sys_fdir" && @xset@/bin/xset fp+ "$sys_fdir"
|
||||||
|
|
||||||
|
# Ask X11 to rebuild its font list.
|
||||||
|
@xset@/bin/xset fp rehash
|
||||||
|
|
||||||
|
# Get Ghostscript to look into user's KDE fonts dir for additional Fontmap
|
||||||
|
if test -n "$GS_LIB" ; then
|
||||||
|
GS_LIB=$usr_fdir:$GS_LIB
|
||||||
|
export GS_LIB
|
||||||
|
else
|
||||||
|
GS_LIB=$usr_fdir
|
||||||
|
export GS_LIB
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo 'startkde: Starting up...' 1>&2
|
||||||
|
|
||||||
|
|
||||||
|
# Mark that full KDE session is running (e.g. Konqueror preloading works only
|
||||||
|
# with full KDE running). The KDE_FULL_SESSION property can be detected by
|
||||||
|
# any X client connected to the same X session, even if not launched
|
||||||
|
# directly from the KDE session but e.g. using "ssh -X", kdesu. $KDE_FULL_SESSION
|
||||||
|
# however guarantees that the application is launched in the same environment
|
||||||
|
# like the KDE session and that e.g. KDE utilities/libraries are available.
|
||||||
|
# KDE_FULL_SESSION property is also only available since KDE 3.5.5.
|
||||||
|
# The matching tests are:
|
||||||
|
# For $KDE_FULL_SESSION:
|
||||||
|
# if test -n "$KDE_FULL_SESSION"; then ... whatever
|
||||||
|
# For KDE_FULL_SESSION property:
|
||||||
|
# xprop -root | grep "^KDE_FULL_SESSION" >/dev/null 2>/dev/null
|
||||||
|
# if test $? -eq 0; then ... whatever
|
||||||
|
#
|
||||||
|
# Additionally there is (since KDE 3.5.7) $KDE_SESSION_UID with the uid
|
||||||
|
# of the user running the KDE session. It should be rarely needed (e.g.
|
||||||
|
# after sudo to prevent desktop-wide functionality in the new user's kded).
|
||||||
|
#
|
||||||
|
# Since KDE4 there is also KDE_SESSION_VERSION, containing the major version number.
|
||||||
|
# Note that this didn't exist in KDE3, which can be detected by its absense and
|
||||||
|
# the presence of KDE_FULL_SESSION.
|
||||||
|
#
|
||||||
|
KDE_FULL_SESSION=true
|
||||||
|
export KDE_FULL_SESSION
|
||||||
|
@xprop@/bin/xprop -root -f KDE_FULL_SESSION 8t -set KDE_FULL_SESSION true
|
||||||
|
|
||||||
|
KDE_SESSION_VERSION=5
|
||||||
|
export KDE_SESSION_VERSION
|
||||||
|
@xprop@/bin/xprop -root -f KDE_SESSION_VERSION 32c -set KDE_SESSION_VERSION 5
|
||||||
|
|
||||||
|
KDE_SESSION_UID=`id -ru`
|
||||||
|
export KDE_SESSION_UID
|
||||||
|
|
||||||
|
XDG_CURRENT_DESKTOP=KDE
|
||||||
|
export XDG_CURRENT_DESKTOP
|
||||||
|
|
||||||
|
# At this point all the environment is ready, let's send it to kwalletd if running
|
||||||
|
if test -n "$PAM_KWALLET_LOGIN" ; then
|
||||||
|
env | @socat@/bin/socat STDIN UNIX-CONNECT:$PAM_KWALLET_LOGIN
|
||||||
|
fi
|
||||||
|
|
||||||
|
# At this point all environment variables are set, let's send it to the DBus
|
||||||
|
# session server to update the activation environment
|
||||||
|
@plasmaWorkspace@/lib/libexec/ksyncdbusenv
|
||||||
|
if test $? -ne 0; then
|
||||||
|
# Startup error
|
||||||
|
echo 'startkde: Could not sync environment to dbus.' 1>&2
|
||||||
|
test -n "$ksplash_pid" && kill "$ksplash_pid" 2>/dev/null
|
||||||
|
@xmessage@/bin/xmessage -geometry 500x100 "Could not sync environment to dbus."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# We set LD_BIND_NOW to increase the efficiency of kdeinit.
|
||||||
|
# kdeinit unsets this variable before loading applications.
|
||||||
|
LD_BIND_NOW=true @kinit@/lib/libexec/kf5/start_kdeinit_wrapper --kded +kcminit_startup
|
||||||
|
if test $? -ne 0; then
|
||||||
|
# Startup error
|
||||||
|
echo 'startkde: Could not start kdeinit5.' 1>&2
|
||||||
|
test -n "$ksplash_pid" && kill "$ksplash_pid" 2>/dev/null
|
||||||
|
@xmessage@/bin/xmessage -geometry 500x100 "Could not start kdeinit5."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# (NixOS) We run kbuildsycoca5 before starting the user session because things
|
||||||
|
# may be missing or moved if they have run nixos-rebuild and it may not be
|
||||||
|
# possible for them to start Konsole to run it manually!
|
||||||
|
@kservice@/bin/kbuildsycoca5
|
||||||
|
|
||||||
|
# finally, give the session control to the session manager
|
||||||
|
# see kdebase/ksmserver for the description of the rest of the startup sequence
|
||||||
|
# if the KDEWM environment variable has been set, then it will be used as KDE's
|
||||||
|
# window manager instead of kwin.
|
||||||
|
# if KDEWM is not set, ksmserver will ensure kwin is started.
|
||||||
|
# kwrapper5 is used to reduce startup time and memory usage
|
||||||
|
# kwrapper5 does not return useful error codes such as the exit code of ksmserver.
|
||||||
|
# We only check for 255 which means that the ksmserver process could not be
|
||||||
|
# started, any problems thereafter, e.g. ksmserver failing to initialize,
|
||||||
|
# will remain undetected.
|
||||||
|
test -n "$KDEWM" && KDEWM="--windowmanager $KDEWM"
|
||||||
|
# If the session should be locked from the start (locked autologin),
|
||||||
|
# lock now and do the rest of the KDE startup underneath the locker.
|
||||||
|
KSMSERVEROPTIONS=""
|
||||||
|
test -n "$dl" && KSMSERVEROPTIONS=" --lockscreen"
|
||||||
|
@kinit@/bin/kwrapper5 @plasmaWorkspace@/bin/ksmserver $KDEWM $KSMSERVEROPTIONS
|
||||||
|
if test $? -eq 255; then
|
||||||
|
# Startup error
|
||||||
|
echo 'startkde: Could not start ksmserver.' 1>&2
|
||||||
|
test -n "$ksplash_pid" && kill "$ksplash_pid" 2>/dev/null
|
||||||
|
@xmessage@/bin/xmessage -geometry 500x100 "Could not start ksmserver."
|
||||||
|
fi
|
||||||
|
|
||||||
|
wait_drkonqi=`@kconfig@/bin/kreadconfig5 --file startkderc --group WaitForDrKonqi --key Enabled --default true`
|
||||||
|
|
||||||
|
if test x"$wait_drkonqi"x = x"true"x ; then
|
||||||
|
# wait for remaining drkonqi instances with timeout (in seconds)
|
||||||
|
wait_drkonqi_timeout=`@kconfig@/bin/kreadconfig5 --file startkderc --group WaitForDrKonqi --key Timeout --default 900`
|
||||||
|
wait_drkonqi_counter=0
|
||||||
|
while @qt5@/bin/qdbus | @gnugrep@/bin/grep "^[^w]*org.kde.drkonqi" > /dev/null ; do
|
||||||
|
sleep 5
|
||||||
|
wait_drkonqi_counter=$((wait_drkonqi_counter+5))
|
||||||
|
if test "$wait_drkonqi_counter" -ge "$wait_drkonqi_timeout" ; then
|
||||||
|
# ask remaining drkonqis to die in a graceful way
|
||||||
|
@qt5@/bin/qdbus | @gnugrep@/bin/grep 'org.kde.drkonqi-' | while read address ; do
|
||||||
|
@qt5@/bin/qdbus "$address" "/MainApplication" "quit"
|
||||||
|
done
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo 'startkde: Shutting down...' 1>&2
|
||||||
|
# just in case
|
||||||
|
test -n "$ksplash_pid" && kill "$ksplash_pid" 2>/dev/null
|
||||||
|
|
||||||
|
# Clean up
|
||||||
|
@kinit@/bin/kdeinit5_shutdown
|
||||||
|
|
||||||
|
echo 'startkde: Running shutdown scripts...' 1>&2
|
||||||
|
|
||||||
|
# Run scripts found in <config locations>/plasma-workspace/shutdown
|
||||||
|
for prefix in `echo "$scriptpath"`; do
|
||||||
|
for file in `ls "$prefix"/shutdown 2> /dev/null | @gnugrep@/bin/egrep -v '(~|\.bak)$'`; do
|
||||||
|
test -x "$prefix$file" && "$prefix$file"
|
||||||
|
done
|
||||||
|
done
|
||||||
|
|
||||||
|
unset KDE_FULL_SESSION
|
||||||
|
@xprop@/bin/xprop -root -remove KDE_FULL_SESSION
|
||||||
|
unset KDE_SESSION_VERSION
|
||||||
|
@xprop@/bin/xprop -root -remove KDE_SESSION_VERSION
|
||||||
|
unset KDE_SESSION_UID
|
||||||
|
|
||||||
|
echo 'startkde: Done.' 1>&2
|
5
pkgs/desktops/plasma-5.1/startkde/startupconfigkeys
Normal file
5
pkgs/desktops/plasma-5.1/startkde/startupconfigkeys
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
kcminputrc Mouse cursorTheme 'breeze_cursors'
|
||||||
|
kcminputrc Mouse cursorSize ''
|
||||||
|
ksplashrc KSplash Theme Breeze
|
||||||
|
ksplashrc KSplash Engine KSplashQML
|
||||||
|
kcmfonts General forceFontDPI 0
|
@ -13,12 +13,12 @@ let
|
|||||||
in
|
in
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
version = "7.10.0.20141222";
|
version = "7.10.0.20140123";
|
||||||
name = "ghc-${version}";
|
name = "ghc-${version}";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://downloads.haskell.org/~ghc/7.10.1-rc1/ghc-7.10.0.20141222-src.tar.xz";
|
url = "https://downloads.haskell.org/~ghc/7.10.1-rc2/ghc-7.10.0.20150123-src.tar.xz";
|
||||||
sha256 = "0nncvvwksqqz1d991jbag3b4174i275nn0psadriq5hi3px11dkl";
|
sha256 = "0in5zsr2z545yln55c7mwi07x3za0874yxbpsj5xsb4vn3wrcrbn";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ ghc perl ];
|
buildInputs = [ ghc perl ];
|
||||||
|
@ -1,47 +1,47 @@
|
|||||||
# This file is autogenerated from update.py in the same directory.
|
# This file is autogenerated from update.py in the same directory.
|
||||||
{
|
{
|
||||||
icedtea7 = rec {
|
icedtea7 = rec {
|
||||||
version = "2.5.3";
|
version = "2.5.4";
|
||||||
|
|
||||||
url = "http://icedtea.wildebeest.org/download/source/icedtea-${version}.tar.xz";
|
url = "http://icedtea.wildebeest.org/download/source/icedtea-${version}.tar.xz";
|
||||||
sha256 = "1w7i6j4wmg2ixv7d24mad6gphspnkb9w30azjdp4jqn2zqn95wpl";
|
sha256 = "1npz2p11i4xy4732rxs8wv209iap0m3m24w3vkh9kj0p4k2gal0v";
|
||||||
|
|
||||||
common_url = "http://icedtea.classpath.org/download/drops/icedtea7/${version}";
|
common_url = "http://icedtea.classpath.org/download/drops/icedtea7/${version}";
|
||||||
|
|
||||||
bundles = {
|
bundles = {
|
||||||
openjdk = rec {
|
openjdk = rec {
|
||||||
url = "${common_url}/openjdk.tar.bz2";
|
url = "${common_url}/openjdk.tar.bz2";
|
||||||
sha256 = "3ba1a30762f5d5890e8ee6af11f52213ab9c574c01f07c75a081c42034f5d5c9";
|
sha256 = "88c92a3cab37446352086876771733229b1602d4f79ef68629a151180652e1f1";
|
||||||
};
|
};
|
||||||
|
|
||||||
corba = rec {
|
corba = rec {
|
||||||
url = "${common_url}/corba.tar.bz2";
|
url = "${common_url}/corba.tar.bz2";
|
||||||
sha256 = "8ceb2cd60782b7fc14b88e3d366f273873fa5436cf0e36b86406c0905b7dc43c";
|
sha256 = "7411fe2df795981124ae2e4da0ddb7d98db0a94c9399a12876be03e7177eaa0b";
|
||||||
};
|
};
|
||||||
|
|
||||||
jaxp = rec {
|
jaxp = rec {
|
||||||
url = "${common_url}/jaxp.tar.bz2";
|
url = "${common_url}/jaxp.tar.bz2";
|
||||||
sha256 = "2d13a82078f3f2b8831d1e670e5e75719336a56490df64f16ab7647674a272ef";
|
sha256 = "84623e50b69710d12209fc761a49953c78f1a664ff54e022a77e35e25489f2f3";
|
||||||
};
|
};
|
||||||
|
|
||||||
jaxws = rec {
|
jaxws = rec {
|
||||||
url = "${common_url}/jaxws.tar.bz2";
|
url = "${common_url}/jaxws.tar.bz2";
|
||||||
sha256 = "5a63d85307203f1aed1e31459ad5e32687909e0640d424ff6f540d9b1cceeb1e";
|
sha256 = "4bd38a8121d85c422b425177ce648afdee9da18812c91c5b74939c58db33ab4b";
|
||||||
};
|
};
|
||||||
|
|
||||||
jdk = rec {
|
jdk = rec {
|
||||||
url = "${common_url}/jdk.tar.bz2";
|
url = "${common_url}/jdk.tar.bz2";
|
||||||
sha256 = "40c4dda969be0ecd213e79269184e19cfc32100b83777dc529b3cf4b6aa3e12f";
|
sha256 = "e99b65baf66d8818e3c8fd31d71fbad4ad0ceb0b7fa4c2e0607eca3a40f2ba09";
|
||||||
};
|
};
|
||||||
|
|
||||||
langtools = rec {
|
langtools = rec {
|
||||||
url = "${common_url}/langtools.tar.bz2";
|
url = "${common_url}/langtools.tar.bz2";
|
||||||
sha256 = "516f6c21719f4b5a2092847c147cde7890c5a30d4aed9425ff667c0164ef1dd0";
|
sha256 = "4fd76cbdf18174128863514b4d3997cb623368697bf4f5af6d079dbbcd7b378a";
|
||||||
};
|
};
|
||||||
|
|
||||||
hotspot = rec {
|
hotspot = rec {
|
||||||
url = "${common_url}/hotspot.tar.bz2";
|
url = "${common_url}/hotspot.tar.bz2";
|
||||||
sha256 = "8c8e1f7e97f47fe4029e0b0ba42b3515474adabe64e1fbee15c0e2e22a13aa28";
|
sha256 = "4825f8543aa0c065530b05b0a95915a44eea153bbb696d2ffc4b50a398813e34";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user