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
|
||||
.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="quick-start.xml" />
|
||||
<xi:include href="stdenv.xml" />
|
||||
<xi:include href="packageconfig.xml" />
|
||||
<xi:include href="meta.xml" />
|
||||
<xi:include href="language-support.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";
|
||||
};
|
||||
|
||||
fdl12 = spdx {
|
||||
spdxId = "GFDL-1.2";
|
||||
fullName = "GNU Free Documentation License v1.2";
|
||||
};
|
||||
|
||||
free = {
|
||||
fullName = "Unspecified free software license";
|
||||
};
|
||||
|
@ -106,6 +106,7 @@
|
||||
ludo = "Ludovic Courtès <ludo@gnu.org>";
|
||||
madjar = "Georges Dubus <georges.dubus@compiletoi.net>";
|
||||
magnetophon = "Bart Brouns <bart@magnetophon.nl>";
|
||||
malyn = "Michael Alyn Miller <malyn@strangeGizmo.com>";
|
||||
manveru = "Michael Fellinger <m.fellinger@gmail.com>";
|
||||
marcweber = "Marc Weber <marco-oweber@gmx.de>";
|
||||
matejc = "Matej Cotman <cotman.matej@gmail.com>";
|
||||
@ -132,6 +133,7 @@
|
||||
phreedom = "Evgeny Egorochkin <phreedom@yandex.ru>";
|
||||
pierron = "Nicolas B. Pierron <nixos@nbp.name>";
|
||||
piotr = "Piotr Pietraszkiewicz <ppietrasa@gmail.com>";
|
||||
pjones = "Peter Jones <pjones@devalot.com>";
|
||||
pkmx = "Chih-Mao Chen <pkmx.tw@gmail.com>";
|
||||
plcplc = "Philip Lykke Carlsen <plcplc@gmail.com>";
|
||||
prikhi = "Pavan Rikhi <pavan.rikhi@gmail.com>";
|
||||
|
@ -32,6 +32,7 @@
|
||||
<xi:include href="configuration/configuration.xml" />
|
||||
<xi:include href="administration/running.xml" />
|
||||
<!-- <xi:include href="userconfiguration.xml" /> -->
|
||||
<xi:include href="development/development.xml" />
|
||||
<xi:include href="release-notes/release-notes.xml" />
|
||||
|
||||
<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
|
||||
machine="$(uname -m)"
|
||||
if [ "$machine" = x86_64 ]; then
|
||||
nixStorePath=/nix/store/d34q3q2zj9nriq4ifhn3dnnngqvinjb3-nix-1.7
|
||||
nixStorePath=/nix/store/ffig6yaggbh12dh9y5pnf1grf5lqyipz-nix-1.8
|
||||
elif [[ "$machine" =~ i.86 ]]; then
|
||||
nixStorePath=/nix/store/qlah0darpcn6sf3lr2226rl04l1gn4xz-nix-1.7
|
||||
nixStorePath=/nix/store/lglhfp4mimfa5wzjjf1kqz6f5wlsj2mn-nix-1.8
|
||||
else
|
||||
echo "$0: unsupported platform"
|
||||
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/sane.nix
|
||||
./services/hardware/tcsd.nix
|
||||
./services/hardware/tlp.nix
|
||||
./services/hardware/thinkfan.nix
|
||||
./services/hardware/udev.nix
|
||||
./services/hardware/udisks2.nix
|
||||
|
@ -46,12 +46,14 @@ in
|
||||
PERL5LIB = [ "/lib/perl5/site_perl" ];
|
||||
KDEDIRS = [ "" ];
|
||||
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/" ];
|
||||
GTK_PATH = [ "/lib/gtk-2.0" "/lib/gtk-3.0" ];
|
||||
XDG_CONFIG_DIRS = [ "/etc/xdg" ];
|
||||
XDG_DATA_DIRS = [ "/share" ];
|
||||
MOZ_PLUGIN_PATH = [ "/lib/mozilla/plugins" ];
|
||||
LIBEXEC_PATH = [ "/lib/libexec" ];
|
||||
};
|
||||
|
||||
environment.extraInit =
|
||||
|
@ -31,6 +31,15 @@ in {
|
||||
<literal>guest</literal> by default, so you should delete
|
||||
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 {
|
||||
@ -77,6 +86,7 @@ in {
|
||||
users.extraUsers.rabbitmq = {
|
||||
description = "RabbitMQ server user";
|
||||
home = "${cfg.dataDir}";
|
||||
createHome = true;
|
||||
group = "rabbitmq";
|
||||
uid = config.ids.uids.rabbitmq;
|
||||
};
|
||||
@ -87,14 +97,16 @@ in {
|
||||
description = "RabbitMQ Server";
|
||||
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
after = [ "network-interfaces.target" ];
|
||||
after = [ "network.target" ];
|
||||
|
||||
path = [ pkgs.rabbitmq_server ];
|
||||
path = [ pkgs.rabbitmq_server pkgs.procps ];
|
||||
|
||||
environment = {
|
||||
RABBITMQ_MNESIA_BASE = "${cfg.dataDir}/mnesia";
|
||||
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_PID_FILE = "${cfg.dataDir}/pid";
|
||||
SYS_PREFIX = "";
|
||||
RABBITMQ_ENABLED_PLUGINS_FILE = pkgs.writeText "enabled_plugins" ''
|
||||
[ ${concatStringsSep "," cfg.plugins} ].
|
||||
@ -103,26 +115,22 @@ in {
|
||||
|
||||
serviceConfig = {
|
||||
ExecStart = "${pkgs.rabbitmq_server}/sbin/rabbitmq-server";
|
||||
ExecStop = "${pkgs.rabbitmq_server}/sbin/rabbitmqctl stop";
|
||||
User = "rabbitmq";
|
||||
Group = "rabbitmq";
|
||||
PermissionsStartOnly = true;
|
||||
WorkingDirectory = cfg.dataDir;
|
||||
};
|
||||
|
||||
postStart = ''
|
||||
rabbitmqctl wait ${cfg.dataDir}/pid
|
||||
'';
|
||||
|
||||
preStart = ''
|
||||
mkdir -p ${cfg.dataDir} && chmod 0700 ${cfg.dataDir}
|
||||
if [ "$(id -u)" = 0 ]; then chown rabbitmq:rabbitmq ${cfg.dataDir}; fi
|
||||
|
||||
${optionalString (cfg.cookie != "") ''
|
||||
echo -n ${cfg.cookie} > ${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 = {
|
||||
|
||||
enable = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = "
|
||||
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 {
|
||||
type = types.string;
|
||||
default = "openldap";
|
||||
description = "User account under which slapd runs.";
|
||||
};
|
||||
|
||||
group = mkOption {
|
||||
type = types.string;
|
||||
default = "openldap";
|
||||
description = "Group account under which slapd runs.";
|
||||
};
|
||||
|
||||
dataDir = mkOption {
|
||||
type = types.string;
|
||||
default = "/var/db/openldap";
|
||||
description = "The database directory.";
|
||||
};
|
||||
|
||||
extraConfig = mkOption {
|
||||
type = types.lines;
|
||||
default = "";
|
||||
description = "
|
||||
sldapd.conf configuration
|
||||
@ -60,22 +86,22 @@ in
|
||||
preStart = ''
|
||||
mkdir -p /var/run/slapd
|
||||
chown -R ${cfg.user}:${cfg.group} /var/run/slapd
|
||||
mkdir -p /var/db/openldap
|
||||
chown -R ${cfg.user}:${cfg.group} /var/db/openldap
|
||||
mkdir -p ${cfg.dataDir}
|
||||
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
|
||||
{ name = "openldap";
|
||||
users.extraUsers.openldap =
|
||||
{ name = cfg.user;
|
||||
group = cfg.group;
|
||||
uid = config.ids.uids.openldap;
|
||||
});
|
||||
};
|
||||
|
||||
users.extraGroups = optionalAttrs (cfg.group == "openldap") (singleton
|
||||
{ name = "openldap";
|
||||
users.extraGroups.openldap =
|
||||
{ name = cfg.group;
|
||||
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
|
||||
cfg = config.services.gitlab;
|
||||
|
||||
ruby = pkgs.ruby;
|
||||
rubyLibs = pkgs.rubyLibs;
|
||||
ruby = pkgs.gitlab.ruby;
|
||||
bundler = pkgs.bundler;
|
||||
|
||||
gemHome = "${pkgs.gitlab.env}/${ruby.gemPath}";
|
||||
|
||||
databaseYml = ''
|
||||
production:
|
||||
@ -38,13 +40,14 @@ let
|
||||
|
||||
gitlab-runner = pkgs.stdenv.mkDerivation rec {
|
||||
name = "gitlab-runner";
|
||||
buildInputs = [ pkgs.gitlab pkgs.rubyLibs.bundler pkgs.makeWrapper ];
|
||||
buildInputs = [ pkgs.gitlab pkgs.bundler pkgs.makeWrapper ];
|
||||
phases = "installPhase fixupPhase";
|
||||
buildPhase = "";
|
||||
installPhase = ''
|
||||
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 GEM_HOME '${gemHome}'\
|
||||
--set UNICORN_PATH "${cfg.stateDir}/"\
|
||||
--set GITLAB_PATH "${pkgs.gitlab}/share/gitlab/"\
|
||||
--set GITLAB_APPLICATION_LOG_PATH "${cfg.stateDir}/log/application.log"\
|
||||
@ -172,6 +175,7 @@ in {
|
||||
after = [ "network.target" "redis.service" ];
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
environment.HOME = "${cfg.stateDir}/home";
|
||||
environment.GEM_HOME = gemHome;
|
||||
environment.UNICORN_PATH = "${cfg.stateDir}/";
|
||||
environment.GITLAB_PATH = "${pkgs.gitlab}/share/gitlab/";
|
||||
environment.GITLAB_APPLICATION_LOG_PATH = "${cfg.stateDir}/log/application.log";
|
||||
@ -201,7 +205,7 @@ in {
|
||||
Group = "gitlab";
|
||||
TimeoutSec = "300";
|
||||
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" ];
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
environment.HOME = "${cfg.stateDir}/home";
|
||||
environment.GEM_HOME = gemHome;
|
||||
environment.UNICORN_PATH = "${cfg.stateDir}/";
|
||||
environment.GITLAB_PATH = "${pkgs.gitlab}/share/gitlab/";
|
||||
environment.GITLAB_APPLICATION_LOG_PATH = "${cfg.stateDir}/log/application.log";
|
||||
@ -263,7 +268,7 @@ in {
|
||||
|
||||
# force=yes disables the manual-interaction yes/no prompt
|
||||
# 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
|
||||
|
||||
@ -285,7 +290,7 @@ in {
|
||||
Group = "gitlab";
|
||||
TimeoutSec = "300";
|
||||
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.
|
||||
# E.g., if KDE is enabled, it supersedes xterm.
|
||||
imports = [
|
||||
./none.nix ./xterm.nix ./xfce.nix ./kde4.nix
|
||||
./e19.nix ./gnome3.nix ./xbmc.nix
|
||||
./none.nix ./xterm.nix ./xfce.nix ./kde4.nix ./kde5.nix
|
||||
./e19.nix ./gnome3.nix ./xbmc.nix ./kodi.nix
|
||||
];
|
||||
|
||||
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";
|
||||
};
|
||||
|
||||
environment.systemPackages =
|
||||
[ pkgs.kde4.kde_wallpapers ]; # contains kdm's default background
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
|
@ -10,10 +10,18 @@ with lib;
|
||||
|
||||
system.sbin.modprobe = mkOption {
|
||||
internal = true;
|
||||
default = pkgs.writeTextFile {
|
||||
default = pkgs.stdenv.mkDerivation {
|
||||
name = "modprobe";
|
||||
destination = "/sbin/modprobe";
|
||||
executable = true;
|
||||
buildCommand = ''
|
||||
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 =
|
||||
''
|
||||
#! ${pkgs.stdenv.shell}
|
||||
@ -26,7 +34,6 @@ with lib;
|
||||
MODULE_DIR=/run/booted-system/kernel-modules/lib/modules/
|
||||
fi
|
||||
|
||||
exec ${pkgs.kmod}/sbin/modprobe "$@"
|
||||
'';
|
||||
};
|
||||
description = ''
|
||||
|
@ -252,7 +252,7 @@ in rec {
|
||||
tests.firefox = callTest tests/firefox.nix {};
|
||||
tests.firewall = callTest tests/firewall.nix {};
|
||||
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.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);
|
||||
|
@ -10,6 +10,7 @@ import ./make-test.nix (
|
||||
name = "chromium";
|
||||
|
||||
machine.imports = [ ./common/x11.nix ];
|
||||
machine.virtualisation.memorySize = 1024;
|
||||
|
||||
startupHTML = pkgs.writeText "chromium-startup.html" ''
|
||||
<!DOCTYPE html>
|
||||
|
@ -1,7 +1,8 @@
|
||||
{ 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
|
||||
, usbmuxd, libmtp, gvfs, libcdio, protobuf, libspotify, qca2, pkgconfig
|
||||
, sparsehash, config }:
|
||||
, sparsehash, config, makeWrapper }:
|
||||
|
||||
let withSpotify = config.clementine.spotify or false;
|
||||
in
|
||||
@ -22,6 +23,9 @@ stdenv.mkDerivation {
|
||||
gettext
|
||||
glew
|
||||
gst_plugins_base
|
||||
gst_plugins_good
|
||||
gst_plugins_ugly
|
||||
gst_ffmpeg
|
||||
gstreamer
|
||||
gvfs
|
||||
libcdio
|
||||
@ -29,6 +33,7 @@ stdenv.mkDerivation {
|
||||
liblastfm
|
||||
libmtp
|
||||
libplist
|
||||
makeWrapper
|
||||
pkgconfig
|
||||
protobuf
|
||||
qca2
|
||||
@ -42,6 +47,11 @@ stdenv.mkDerivation {
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
postInstall = ''
|
||||
wrapProgram $out/bin/clementine \
|
||||
--set GST_PLUGIN_SYSTEM_PATH "$GST_PLUGIN_SYSTEM_PATH"
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
homepage = "http://www.clementine-player.org";
|
||||
description = "A multiplatform music player";
|
||||
|
@ -2,15 +2,15 @@
|
||||
, libxslt, lv2, pkgconfig, premake3, xlibs }:
|
||||
|
||||
let
|
||||
rev = "99efbf0b";
|
||||
rev = "3bfddf7f";
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
name = "distrho-${rev}";
|
||||
|
||||
src = fetchgit {
|
||||
url = "https://github.com/falkTX/DISTRHO.git";
|
||||
url = "https://github.com/DISTRHO/DISTRHO-Ports.git";
|
||||
inherit rev;
|
||||
sha256 = "ed26a6edca19ebb8260b3dc042f69c32162e1d91179fb9d22da42ec7131936f9";
|
||||
sha256 = "55dc52921bb757c3213da5ef6cab40909f39be3e3b41ba4c6cd66ad90bfb2e6c";
|
||||
};
|
||||
|
||||
patchPhase = ''
|
||||
@ -50,5 +50,9 @@ stdenv.mkDerivation rec {
|
||||
'';
|
||||
maintainers = [ maintainers.goibhniu ];
|
||||
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 {
|
||||
name = "drumkv1-${version}";
|
||||
version = "0.5.1";
|
||||
version = "0.6.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/drumkv1/${name}.tar.gz";
|
||||
sha256 = "1cih4f22922ndk8yrcf955fvzkd8mh7qz1xcdyn3xybs7ackgarq";
|
||||
sha256 = "1y3imsh059y9sihr92f3drwmcby4x3krmhly111ahwkydb94kphw";
|
||||
};
|
||||
|
||||
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 {
|
||||
name = "samplv1-${version}";
|
||||
version = "0.5.1";
|
||||
version = "0.6.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/samplv1/${name}.tar.gz";
|
||||
sha256 = "155qq7gxyqn7sh8bbyhjk40lxl157lb2h539j4gqgv5jphz8g6wy";
|
||||
sha256 = "0fbkdb2dqw7v6n8j1h6pjz2019ylli9rmz8awywv2ycm8blr5pf0";
|
||||
};
|
||||
|
||||
buildInputs = [ jack2 libsndfile lv2 qt4 ];
|
||||
|
@ -2,11 +2,11 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "synthv1-${version}";
|
||||
version = "0.5.1";
|
||||
version = "0.6.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/synthv1/${name}.tar.gz";
|
||||
sha256 = "16wcxrcjwp0qp2xgahhzvcs2k31sr6c9jsxyhivj4famj7a39pfw";
|
||||
sha256 = "07570mi7rjwkkvfzdw1jcbhpkpxpjp69xj7wfzng92rk2gz7yi8m";
|
||||
};
|
||||
|
||||
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 {
|
||||
name = "calibre-2.16.0";
|
||||
name = "calibre-2.17.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/calibre/${name}.tar.xz";
|
||||
sha256 = "1a9s99r92wk09lsbx8kn2kyg1wr7j84j8vjf65zaf5siwxnwy291";
|
||||
sha256 = "0x95w3j443hiy2is8kd8fapkjy1yxdm0kkbalcbf4qcy5hjrgpy2";
|
||||
};
|
||||
|
||||
inherit python;
|
||||
|
@ -23,7 +23,7 @@ assert mercurialSupport -> (mercurial != null);
|
||||
|
||||
let
|
||||
name = "ikiwiki";
|
||||
version = "3.20141016.1";
|
||||
version = "3.20150107";
|
||||
|
||||
lib = stdenv.lib;
|
||||
in
|
||||
@ -32,7 +32,7 @@ stdenv.mkDerivation {
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/joeyh/ikiwiki/archive/debian/${version}.tar.gz";
|
||||
sha256 = "0ikvxwy06xkwaas7x1ww1s0saar05rj38m5j62sviw3z6fp23naq";
|
||||
sha256 = "12kiqjxrh93gysdp7bhglnks2md9davl8jgzqlj0m8xs5rf1972n";
|
||||
};
|
||||
|
||||
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";
|
||||
};
|
||||
|
||||
patches = [ ./0001-Fix-for-openssl-1.0.1i.patch ];
|
||||
|
||||
configurePhase = ''
|
||||
export PATH=$PATH:${which}/bin
|
||||
export QTDIR=${qt4}
|
||||
|
@ -9,7 +9,7 @@ mkChromiumDerivation (base: rec {
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p "$libExecPath"
|
||||
cp -v "$buildPath/"*.pak "$libExecPath/"
|
||||
cp -v "$buildPath/"*.pak "$buildPath/"*.bin "$libExecPath/"
|
||||
cp -v "$buildPath/icudtl.dat" "$libExecPath/"
|
||||
cp -vLR "$buildPath/locales" "$buildPath/resources" "$libExecPath/"
|
||||
cp -v "$buildPath/libpdf.so" "$buildPath/libffmpegsumo.so" "$libExecPath/"
|
||||
|
@ -143,6 +143,12 @@ let
|
||||
sed -i -e '/module_path *=.*libexif.so/ {
|
||||
s|= [^;]*|= base::FilePath().AppendASCII("${libexif}/lib/libexif.so")|
|
||||
}' 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 // {
|
||||
|
@ -66,7 +66,7 @@ let
|
||||
in stdenv.mkDerivation {
|
||||
name = "chromium${suffix}-${chromium.browser.version}";
|
||||
|
||||
buildInputs = [ makeWrapper ];
|
||||
buildInputs = [ makeWrapper ] ++ chromium.plugins.enabledPlugins;
|
||||
|
||||
buildCommand = let
|
||||
browserBinary = "${chromium.browser}/libexec/chromium/chromium";
|
||||
|
@ -21,9 +21,10 @@ let
|
||||
chan = if source.channel == "dev" then "chrome-unstable"
|
||||
else if source.channel == "stable" then "chrome"
|
||||
else "chrome-${source.channel}";
|
||||
cext = if versionOlder source.version "41.0.0.0" then "lzma" else "xz";
|
||||
in ''
|
||||
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}/libwidevinecdm.so \
|
||||
./opt/google/${chan}/libwidevinecdmadapter.so
|
||||
@ -93,6 +94,7 @@ let
|
||||
else head (tail v);
|
||||
in fold (l: r: zipAttrsWith (_: f) [ l r ]) {};
|
||||
in {
|
||||
inherit enabledPlugins;
|
||||
settings = mergeAttrsets (map getNix enabledPlugins);
|
||||
};
|
||||
};
|
||||
|
@ -1,21 +1,21 @@
|
||||
# This file is autogenerated from update.sh in the parent directory.
|
||||
{
|
||||
dev = {
|
||||
version = "41.0.2224.3";
|
||||
sha256 = "04lgklidxx4bryqhnm7kjqbfr12ns8ic9g4yxk3dig71081sas5f";
|
||||
sha256bin32 = "17fgh57yckk318r7r6qkc934dpq35qa6ps4x5fwscl070rzjf81k";
|
||||
sha256bin64 = "1qsvjm38cxx3inrw0hs4q9f4i9arqfj9cs57xh64wflrnh2z52zf";
|
||||
version = "41.0.2272.16";
|
||||
sha256 = "14l3l5gcjqszqjb3zmwxsyfci495fi315sznvm2n2ark24mf03yq";
|
||||
sha256bin32 = "0xqhzlmbyh5w678j7iwssd81z1bpggpzxni1y79xn5lhc26c50jd";
|
||||
sha256bin64 = "0c9j75xqv4jx57asiaadarz714h1adscvb4h5ng7mbmr268qp6f2";
|
||||
};
|
||||
beta = {
|
||||
version = "40.0.2214.10";
|
||||
sha256 = "0wxkxgj6z18l2qkm0k16r8bpv9rdxk1g1ias03zzvlbj1bw3brdn";
|
||||
sha256bin32 = "0wr2vg97d3qrryb5sz31sd3ycb1l17irrs79vfa04ip85jqv89zn";
|
||||
sha256bin64 = "0bclgy386vdmfdf59hwkypcs8wwmlpgl3npp089hmcdvv7dmars8";
|
||||
version = "41.0.2272.16";
|
||||
sha256 = "14l3l5gcjqszqjb3zmwxsyfci495fi315sznvm2n2ark24mf03yq";
|
||||
sha256bin32 = "0xqhzlmbyh5w678j7iwssd81z1bpggpzxni1y79xn5lhc26c50jd";
|
||||
sha256bin64 = "0c9j75xqv4jx57asiaadarz714h1adscvb4h5ng7mbmr268qp6f2";
|
||||
};
|
||||
stable = {
|
||||
version = "39.0.2171.65";
|
||||
sha256 = "0lglcjvyhgmdm0sd76wv509pgwcfl86rlp9rj83z9giadwqlcmxi";
|
||||
sha256bin32 = "1iqzi462vw8da5f8ysk76q68xhiw5ndqc3hhc6djipsc6h240bji";
|
||||
sha256bin64 = "1gxh3sxpnl0167la9ncnz7l85gzi4ax6g5pqni1nma5g5cqqm177";
|
||||
version = "40.0.2214.91";
|
||||
sha256 = "0ja1wvjn0g8xs20j87s3gl9h70yzx8rfa3k126wnl9gay6gxlbzp";
|
||||
sha256bin32 = "0mfg66s7fqx6v8n0hilsw40i5ximasbqhrmw4fpnpa0x0i77bphj";
|
||||
sha256bin64 = "14lqm8m937b9sl5k7sc939aar76ij9790c807yahk6q36mfyd269";
|
||||
};
|
||||
}
|
||||
|
@ -15,14 +15,14 @@
|
||||
|
||||
assert stdenv.cc ? libc && stdenv.cc.libc != null;
|
||||
|
||||
let version = "35.0"; in
|
||||
let version = "35.0.1"; in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "firefox-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/${version}/source/firefox-${version}.source.tar.bz2";
|
||||
sha1 = "52f310f08ab5a52cd9d9be00016f0872a5e81774";
|
||||
sha1 = "cf256ee1491ee502eb4432ade5a879104ebceede";
|
||||
};
|
||||
|
||||
buildInputs =
|
||||
|
@ -15,6 +15,18 @@ stdenv.mkDerivation {
|
||||
desktopName = desktopName;
|
||||
genericName = "Web Browser";
|
||||
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;
|
||||
|
@ -36,7 +36,7 @@
|
||||
|
||||
let
|
||||
# -> http://get.adobe.com/flashplayer/
|
||||
version = "11.2.202.438";
|
||||
version = "11.2.202.440";
|
||||
|
||||
src =
|
||||
if stdenv.system == "x86_64-linux" then
|
||||
@ -47,7 +47,7 @@ let
|
||||
else rec {
|
||||
inherit version;
|
||||
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
|
||||
if debug then
|
||||
@ -60,7 +60,7 @@ let
|
||||
else rec {
|
||||
inherit version;
|
||||
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";
|
||||
|
||||
|
@ -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.mkDerivation rec {
|
||||
name = "irssi-0.8.16";
|
||||
name = "irssi-0.8.17";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://irssi.org/files/${name}.tar.bz2";
|
||||
sha256 = "15wzs4h754jzs1l4z7qzsyjllk9wdx3qfb6gymdiykvmlb9gwyiz";
|
||||
sha256 = "01v82q2pfiimx6lh271kdvgp8hl4pahc3srg04fqzxgdsb5015iw";
|
||||
};
|
||||
|
||||
buildInputs = [ pkgconfig ncurses glib openssl perl libintlOrEmpty ];
|
||||
|
@ -5,10 +5,14 @@
|
||||
, ssl ? true # enable SSL support
|
||||
, previews ? false # enable webpage previews on hovering over URLs
|
||||
, 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 client || daemon -> !monolithic;
|
||||
assert withKDE -> kdelibs != null;
|
||||
|
||||
let
|
||||
edf = flag: feature: [("-D" + feature + (if flag then "=ON" else "=OFF"))];
|
||||
@ -28,20 +32,19 @@ in with stdenv; mkDerivation rec {
|
||||
buildInputs = [ cmake makeWrapper qt ]
|
||||
++ lib.optional withKDE kdelibs
|
||||
++ lib.optional withKDE automoc4
|
||||
++ lib.optional withKDE phonon;
|
||||
++ lib.optional withKDE phonon
|
||||
++ lib.optional useQt5 phonon_qt5
|
||||
++ lib.optional useQt5 libdbusmenu_qt5;
|
||||
|
||||
cmakeFlags = [
|
||||
"-DWITH_DBUS=OFF"
|
||||
"-DWITH_LIBINDICATE=OFF"
|
||||
"-DEMBED_DATA=OFF"
|
||||
"-DSTATIC=OFF"
|
||||
"-DWITH_PHONON=ON" ]
|
||||
"-DSTATIC=OFF" ]
|
||||
++ edf monolithic "WANT_MONO"
|
||||
++ edf daemon "WANT_CORE"
|
||||
++ edf client "WANT_QTCLIENT"
|
||||
++ edf withKDE "WITH_KDE"
|
||||
++ edf ssl "WITH_OPENSSL"
|
||||
++ edf previews "WITH_WEBKIT" ;
|
||||
++ edf previews "WITH_WEBKIT"
|
||||
++ edf useQt5 "USE_QT5";
|
||||
|
||||
preFixup =
|
||||
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
|
||||
, libXdamage, libXext, glib, alsaLib, ffmpeg, libxkbfile, libXinerama, libXv
|
||||
, substituteAll
|
||||
, pulseaudio ? null, cups ? null, pcsclite ? null
|
||||
}:
|
||||
|
||||
@ -13,6 +14,13 @@ stdenv.mkDerivation rec {
|
||||
sha256 = "08nn18jydblrif1qs92pakzd3ww7inr0i378ssn1bjp09lm1bkk0";
|
||||
};
|
||||
|
||||
patches = [
|
||||
] ++ stdenv.lib.optional (pcsclite != null)
|
||||
(substituteAll {
|
||||
src = ./dlopen-absolute-paths.diff;
|
||||
inherit pcsclite;
|
||||
});
|
||||
|
||||
buildInputs = [
|
||||
cmake pkgconfig openssl zlib libX11 libXcursor libXdamage libXext glib
|
||||
alsaLib ffmpeg libxkbfile libXinerama libXv cups pulseaudio pcsclite
|
||||
|
@ -1,46 +1,68 @@
|
||||
{ stdenv, fetchurl, useGoldLinker, bash, callPackage, gnome, xlibs }:
|
||||
|
||||
assert (stdenv.system == "x86_64-linux" || stdenv.system == "i686-linux");
|
||||
|
||||
{ stdenv, fetchurl, bash, firefox, perl, unzipNLS, xlibs }:
|
||||
|
||||
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 {
|
||||
gconf = gnome.GConf;
|
||||
inherit (gnome) libgnome libgnomeui;
|
||||
inherit (xlibs) libX11 libXScrnSaver libXcomposite libXdamage libXext
|
||||
libXfixes libXinerama libXrender libXt;
|
||||
xpi = fetchurl {
|
||||
url = "https://download.zotero.org/extension/zotero-${version}.xpi";
|
||||
sha256 = "0di6d3s95fmb4pmghl4ix7lq5pmqrddd4y8dmnpsrhbj0awzxw3s";
|
||||
};
|
||||
|
||||
# Please update the firefox dependency when zotero is updated!
|
||||
version = "4.0.23";
|
||||
arch = if stdenv.system == "x86_64-linux"
|
||||
then "linux-x86_64"
|
||||
else "linux-i686";
|
||||
version = "4.0.25.2";
|
||||
|
||||
in
|
||||
stdenv.mkDerivation {
|
||||
name = "zotero-${version}";
|
||||
inherit version;
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://download.zotero.org/standalone/${version}/Zotero-${version}_${arch}.tar.bz2";
|
||||
sha256 = if stdenv.system == "x86_64-linux"
|
||||
then "1fz5xn69vapfw8d20207zr9p5r1h9x5kahh334pl2dn1h8il0sm8"
|
||||
else "1kmsvvg2lh881rzy3rxbigzivixjamyrwf5x7vmn1kzhvsvifrng";
|
||||
url = "https://github.com/zotero/zotero-standalone-build/archive/${version}.tar.gz";
|
||||
sha256 = "0wjmpz7fy3ij8q22s885kv8xrgc3yx7f1mwrvb6lnpc2xl54rl5g";
|
||||
};
|
||||
|
||||
# Strip the bundled xulrunner
|
||||
prePatch = ''rm -fr run-zotero.sh zotero xulrunner/'';
|
||||
nativeBuildInputs = [ perl unzipNLS ];
|
||||
|
||||
inherit bash firefox;
|
||||
|
||||
phases = "unpackPhase installPhase fixupPhase";
|
||||
|
||||
installPhase = ''
|
||||
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"
|
||||
substituteAll "${./zotero.sh}" "$out/bin/zotero"
|
||||
|
@ -1,11 +1,11 @@
|
||||
{ stdenv, fetchurl, SDL, SDL_ttf, SDL_image, mesa, libpng, lua5, automake, autoconf }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "gravit-0.5.0";
|
||||
name = "gravit-0.5.1";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://gravit.slowchop.com/media/downloads/${name}.tgz";
|
||||
sha256 = "0lyw0skrkb04s16vgz7ggswjrdxk1h23v5s85s09gjxzjp1xd3xp";
|
||||
sha256 = "14vf7zj2bgrl96wsl3f1knsggc8h9624354ajzd72l46y09x5ky7";
|
||||
};
|
||||
|
||||
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 }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "stellarium-0.12.4";
|
||||
name = "stellarium-0.13.2";
|
||||
|
||||
src = fetchurl {
|
||||
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;
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
@ -3,11 +3,11 @@
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "pspp-0.8.2";
|
||||
name = "pspp-0.8.3";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnu/pspp/${name}.tar.gz";
|
||||
sha256 = "1w7h3dglgx0jlq1wb605b8pgfsk2vr1q2q2rj7bsajh9ihbcsixr";
|
||||
sha256 = "0vri2pzvmm38qaihfvwlry30f40lcnps4blg59ixic4q20ldxf5d";
|
||||
};
|
||||
|
||||
buildInputs = [ libxml2 readline zlib perl cairo gtk gsl pkgconfig
|
||||
|
@ -1,9 +1,9 @@
|
||||
{ stdenv, ruby, rubyLibs, fetchgit }:
|
||||
{ stdenv, ruby, bundler, fetchgit }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "2.1.0";
|
||||
name = "gitlab-shell-${version}";
|
||||
|
||||
|
||||
srcs = fetchgit {
|
||||
url = "https://gitlab.com/gitlab-org/gitlab-shell.git";
|
||||
rev = "823aba63e444afa2f45477819770fec3cb5f0159";
|
||||
@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
ruby rubyLibs.bundler
|
||||
ruby bundler
|
||||
];
|
||||
|
||||
installPhase = ''
|
||||
@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
|
||||
export HOME=$(pwd)
|
||||
bundle install -j4 --verbose --local --deployment --without development test
|
||||
'';
|
||||
|
||||
|
||||
# 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
|
||||
# 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)
|
||||
letter_opener (1.1.2)
|
||||
launchy (~> 2.2)
|
||||
libv8 (3.16.14.3)
|
||||
listen (2.3.1)
|
||||
celluloid (>= 0.15.2)
|
||||
rb-fsevent (>= 0.9.3)
|
||||
@ -297,6 +298,7 @@ GEM
|
||||
multi_json (1.10.1)
|
||||
multi_xml (0.5.5)
|
||||
multipart-post (1.2.0)
|
||||
mysql2 (0.3.16)
|
||||
net-ldap (0.7.0)
|
||||
net-scp (1.1.2)
|
||||
net-ssh (>= 2.6.5)
|
||||
@ -420,6 +422,7 @@ GEM
|
||||
redis-store (~> 1.1.0)
|
||||
redis-store (1.1.4)
|
||||
redis (>= 2.2)
|
||||
ref (1.0.5)
|
||||
request_store (1.0.5)
|
||||
require_all (1.3.2)
|
||||
rest-client (1.6.7)
|
||||
@ -518,6 +521,9 @@ GEM
|
||||
term-ansicolor (1.2.2)
|
||||
tins (~> 0.8)
|
||||
test_after_commit (0.2.2)
|
||||
therubyracer (0.12.0)
|
||||
libv8 (~> 3.16.14.0)
|
||||
ref
|
||||
thin (1.6.1)
|
||||
daemons (>= 1.0.9)
|
||||
eventmachine (>= 1.0.0)
|
||||
@ -691,6 +697,7 @@ DEPENDENCIES
|
||||
stamp
|
||||
state_machine
|
||||
test_after_commit
|
||||
therubyracer
|
||||
thin
|
||||
tinder (~> 1.9.2)
|
||||
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
|
||||
gemspec = map (gem: fetchurl { url=gem.url; sha256=gem.hash; }) (import ./Gemfile.nix);
|
||||
|
||||
|
||||
in stdenv.mkDerivation rec {
|
||||
version = "7.4.2";
|
||||
name = "gitlab-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/gitlabhq/gitlabhq/archive/v${version}.zip";
|
||||
sha256 = "01iplkpa4scr0wcap6vjrc960dj15z4ciclaqswj0sz5hrp9glw6";
|
||||
gitlab = fetchgit {
|
||||
url = "https://github.com/gitlabhq/gitlabhq.git";
|
||||
rev = "477743a154e85c411e8a533980abce460b5669fc";
|
||||
fetchSubmodules = false;
|
||||
sha256 = "0jl1w9d46v8hc27h9s380ha07m3fd2zpflj4q9vywwcf570ahj7x";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
ruby rubyLibs.bundler libyaml gdbm readline ncurses curl openssh redis zlib
|
||||
postgresql libxslt libxml2 pkgconfig libffi icu checkinstall logrotate docutils nodejs
|
||||
git unzip gnumake which cmake
|
||||
];
|
||||
env = bundlerEnv {
|
||||
name = "gitlab";
|
||||
inherit ruby;
|
||||
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:
|
||||
dontUseCmakeConfigure = true;
|
||||
in
|
||||
|
||||
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 = [
|
||||
./remove-hardcoded-locations.patch
|
||||
];
|
||||
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
|
||||
'';
|
||||
|
||||
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:
|
||||
cat > config/database.yml <<EOF
|
||||
@ -47,41 +60,17 @@ in stdenv.mkDerivation rec {
|
||||
username: gitlab
|
||||
encoding: utf8
|
||||
EOF
|
||||
|
||||
mkdir -p vendor/cache
|
||||
${stdenv.lib.concatStrings (map (gem: "ln -s ${gem} vendor/cache/${gem.name};") gemspec)}
|
||||
|
||||
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
|
||||
'';
|
||||
buildPhase = ''
|
||||
export GEM_HOME=${env}/${ruby.gemPath}
|
||||
bundle exec rake assets:precompile RAILS_ENV=production
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
homepage = http://www.gitlab.com/;
|
||||
platforms = platforms.linux;
|
||||
maintainers = [ ];
|
||||
license = licenses.mit;
|
||||
installPhase = ''
|
||||
mkdir -p $out/share
|
||||
cp -r . $out/share/gitlab
|
||||
'';
|
||||
passthru = {
|
||||
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
|
||||
@ -15,7 +17,10 @@ buildPythonPackage rec {
|
||||
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 ];
|
||||
|
||||
installPhase = ''
|
||||
|
@ -1,11 +1,11 @@
|
||||
{ stdenv, fetchurl, ed }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "rcs-5.9.3";
|
||||
name = "rcs-5.9.4";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnu/rcs/${name}.tar.xz";
|
||||
sha256 = "0isvzwfvqkg7zcsznra6wqh650z49ib113n7gp6ncxv5p30x3c38";
|
||||
sha256 = "1zsx7bb0rgvvvisiy4zlixf56ay8wbd9qqqcp1a1g0m1gl6mlg86";
|
||||
};
|
||||
|
||||
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 = [
|
||||
http://gd.tuwien.ac.at/privacy/gnupg/
|
||||
ftp://gd.tuwien.ac.at/privacy/gnupg/
|
||||
ftp://gnupg.x-zone.org/pub/gnupg/
|
||||
ftp://ftp.gnupg.cz/pub/gcrypt/
|
||||
|
@ -28,7 +28,7 @@ lib.overrideDerivation (fetchurl ({
|
||||
mkdir "$unpackDir"
|
||||
cd "$unpackDir"
|
||||
|
||||
renamed="$TMPDIR/$name"
|
||||
renamed="$TMPDIR/${baseNameOf url}"
|
||||
mv "$downloadedFile" "$renamed"
|
||||
unpackFile "$renamed"
|
||||
|
||||
|
@ -8,6 +8,7 @@
|
||||
{ name ? "", stdenv, nativeTools, nativeLibc, nativePrefix ? ""
|
||||
, gcc ? null, libc ? null, binutils ? null, coreutils ? null, shell ? stdenv.shell
|
||||
, zlib ? null, extraPackages ? []
|
||||
, setupHook ? ./setup-hook.sh
|
||||
}:
|
||||
|
||||
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
|
||||
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.mkDerivation rec {
|
||||
name = "man-pages-3.75";
|
||||
name = "man-pages-3.78";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://kernel/linux/docs/man-pages/${name}.tar.xz";
|
||||
sha256 = "1xnja13a3zb7gzcsdn7sx962lk6mj8m3rz1w7fpgvhsq745cmah6";
|
||||
sha256 = "0zm3sc0zbfng440jjqha8qnzivvg5nqpwgi7zv9h8qxwgyhrfa65";
|
||||
};
|
||||
|
||||
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
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "7.10.0.20141222";
|
||||
version = "7.10.0.20140123";
|
||||
name = "ghc-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://downloads.haskell.org/~ghc/7.10.1-rc1/ghc-7.10.0.20141222-src.tar.xz";
|
||||
sha256 = "0nncvvwksqqz1d991jbag3b4174i275nn0psadriq5hi3px11dkl";
|
||||
url = "https://downloads.haskell.org/~ghc/7.10.1-rc2/ghc-7.10.0.20150123-src.tar.xz";
|
||||
sha256 = "0in5zsr2z545yln55c7mwi07x3za0874yxbpsj5xsb4vn3wrcrbn";
|
||||
};
|
||||
|
||||
buildInputs = [ ghc perl ];
|
||||
|
@ -1,47 +1,47 @@
|
||||
# This file is autogenerated from update.py in the same directory.
|
||||
{
|
||||
icedtea7 = rec {
|
||||
version = "2.5.3";
|
||||
version = "2.5.4";
|
||||
|
||||
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}";
|
||||
|
||||
bundles = {
|
||||
openjdk = rec {
|
||||
url = "${common_url}/openjdk.tar.bz2";
|
||||
sha256 = "3ba1a30762f5d5890e8ee6af11f52213ab9c574c01f07c75a081c42034f5d5c9";
|
||||
sha256 = "88c92a3cab37446352086876771733229b1602d4f79ef68629a151180652e1f1";
|
||||
};
|
||||
|
||||
corba = rec {
|
||||
url = "${common_url}/corba.tar.bz2";
|
||||
sha256 = "8ceb2cd60782b7fc14b88e3d366f273873fa5436cf0e36b86406c0905b7dc43c";
|
||||
sha256 = "7411fe2df795981124ae2e4da0ddb7d98db0a94c9399a12876be03e7177eaa0b";
|
||||
};
|
||||
|
||||
jaxp = rec {
|
||||
url = "${common_url}/jaxp.tar.bz2";
|
||||
sha256 = "2d13a82078f3f2b8831d1e670e5e75719336a56490df64f16ab7647674a272ef";
|
||||
sha256 = "84623e50b69710d12209fc761a49953c78f1a664ff54e022a77e35e25489f2f3";
|
||||
};
|
||||
|
||||
jaxws = rec {
|
||||
url = "${common_url}/jaxws.tar.bz2";
|
||||
sha256 = "5a63d85307203f1aed1e31459ad5e32687909e0640d424ff6f540d9b1cceeb1e";
|
||||
sha256 = "4bd38a8121d85c422b425177ce648afdee9da18812c91c5b74939c58db33ab4b";
|
||||
};
|
||||
|
||||
jdk = rec {
|
||||
url = "${common_url}/jdk.tar.bz2";
|
||||
sha256 = "40c4dda969be0ecd213e79269184e19cfc32100b83777dc529b3cf4b6aa3e12f";
|
||||
sha256 = "e99b65baf66d8818e3c8fd31d71fbad4ad0ceb0b7fa4c2e0607eca3a40f2ba09";
|
||||
};
|
||||
|
||||
langtools = rec {
|
||||
url = "${common_url}/langtools.tar.bz2";
|
||||
sha256 = "516f6c21719f4b5a2092847c147cde7890c5a30d4aed9425ff667c0164ef1dd0";
|
||||
sha256 = "4fd76cbdf18174128863514b4d3997cb623368697bf4f5af6d079dbbcd7b378a";
|
||||
};
|
||||
|
||||
hotspot = rec {
|
||||
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…
Reference in New Issue
Block a user