This commit is contained in:
Bart Brouns 2015-01-27 19:04:51 +01:00
commit 81f0af0274
222 changed files with 29502 additions and 21498 deletions

6
.gitignore vendored
View file

@ -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/

View file

@ -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
View 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>

View file

@ -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";
};

View file

@ -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>";

View file

@ -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">

View file

@ -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
View 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

View file

@ -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 =

View file

@ -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";
};
};

View file

@ -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;
});
};
};
}

View 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 ];
};
}

View file

@ -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\"";
};
};

View file

@ -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 = {

View 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; };
};
}

View 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 ];
};
}

View file

@ -151,6 +151,9 @@ in
description = "KDM user";
};
environment.systemPackages =
[ pkgs.kde4.kde_wallpapers ]; # contains kdm's default background
};
}

View file

@ -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 = ''

View file

@ -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);

View file

@ -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>

View file

@ -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";

View file

@ -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;
};
}

View file

@ -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
View file

0
pkgs/applications/audio/ncmpc/default.nix Executable file → Normal file
View file

View 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 ];

View file

@ -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
View file

View 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;
};
}

View 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

File diff suppressed because it is too large Load diff

View 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}"

View file

@ -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)

File diff suppressed because it is too large Load diff

View 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

View 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";
}

View file

@ -0,0 +1 @@
addToSearchPath XDG_DATA_DIRS @out@/share

View file

@ -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;

View file

@ -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

View 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;
};
}

View 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;
};
}

View 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

View file

@ -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}

View file

@ -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/"

View file

@ -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 // {

View file

@ -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";

View file

@ -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);
};
};

View file

@ -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";
};
}

View file

@ -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 =

View file

@ -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;

View file

@ -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";

View file

@ -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 = {
};
}

View file

@ -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 ];

View file

@ -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 ''

View file

@ -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)

View file

@ -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

View file

@ -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"

View file

@ -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];

View file

@ -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;

View file

@ -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

View file

@ -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

View 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"

View file

@ -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

View file

@ -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 ./

View file

@ -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
'';
}

View file

@ -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;
};
}

File diff suppressed because it is too large Load diff

View file

@ -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

View file

@ -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 = ''

View file

@ -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 ];

View 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 ];
};
};
}

View 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))
+ ")";
};
}

View 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);
}

View 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 ..

View file

View 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/

View file

@ -28,7 +28,7 @@ lib.overrideDerivation (fetchurl ({
mkdir "$unpackDir"
cd "$unpackDir"
renamed="$TMPDIR/$name"
renamed="$TMPDIR/${baseNameOf url}"
mv "$downloadedFile" "$renamed"
unpackFile "$renamed"

View file

@ -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

View 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++

View 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 = [];
};
}

View 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)))

View file

@ -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 =

View 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;
};
}

View 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 = [ ];
};
}

View 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}"

View file

@ -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();

View file

@ -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}"

View 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";
}
]

View 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

View file

@ -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");
}

View file

@ -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");

View 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";
}

View file

@ -0,0 +1 @@
addToSearchPath XDG_DATA_DIRS @out@/share

View 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 ];
};
}

View 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

View 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

View 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

View file

@ -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 ];

View file

@ -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