mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-27 01:13:05 +00:00
This commit is contained in:
commit
d73ae615c5
@ -1,3 +1,5 @@
|
||||
language: python
|
||||
python: "3.4"
|
||||
script: ./maintainers/scripts/travis-nox-review-pr.sh
|
||||
before_install: ./maintainers/scripts/travis-nox-review-pr.sh nix
|
||||
install: ./maintainers/scripts/travis-nox-review-pr.sh nox
|
||||
script: ./maintainers/scripts/travis-nox-review-pr.sh build
|
||||
|
@ -62,6 +62,8 @@ rec {
|
||||
makeOverridable f (origArgs // (if builtins.isFunction newArgs then newArgs origArgs else newArgs));
|
||||
deepOverride = newArgs:
|
||||
makeOverridable f (lib.overrideExisting (lib.mapAttrs (deepOverrider newArgs) origArgs) newArgs);
|
||||
overrideDerivation = fdrv:
|
||||
makeOverridable (args: overrideDerivation (f args) fdrv) origArgs;
|
||||
})
|
||||
else ff;
|
||||
|
||||
|
@ -285,6 +285,12 @@ rec {
|
||||
|
||||
unfreeRedistributableFirmware = "unfree-redistributable-firmware";
|
||||
|
||||
unlicense = {
|
||||
shortName = "Unlicense";
|
||||
fullName = "Unlicense";
|
||||
url = http://unlicense.org/;
|
||||
};
|
||||
|
||||
wadalab = {
|
||||
shortName = "wadalab";
|
||||
fullName = "Wadalab Font License";
|
||||
|
@ -57,6 +57,7 @@
|
||||
ertes = "Ertugrul Söylemez <ertesx@gmx.de>";
|
||||
falsifian = "James Cook <james.cook@utoronto.ca>";
|
||||
flosse = "Markus Kohlhase <mail@markus-kohlhase.de>";
|
||||
fpletz = "Franz Pletz <fpletz@fnordicwalking.de>";
|
||||
ftrvxmtrx = "Siarhei Zirukin <ftrvxmtrx@gmail.com>";
|
||||
funfunctor = "Edward O'Callaghan <eocallaghan@alterapraxis.com>";
|
||||
fuuzetsu = "Mateusz Kowalczyk <fuuzetsu@fuuzetsu.co.uk>";
|
||||
|
@ -3,33 +3,40 @@ set -e
|
||||
|
||||
export NIX_CURL_FLAGS=-sS
|
||||
|
||||
# Install Nix
|
||||
echo "=== Installing Nix..."
|
||||
bash <(curl -sS https://nixos.org/nix/install) >/dev/null 2>&1
|
||||
source $HOME/.nix-profile/etc/profile.d/nix.sh
|
||||
if [[ $1 == nix ]]; then
|
||||
echo "=== Installing Nix..."
|
||||
# Install Nix
|
||||
bash <(curl -sS https://nixos.org/nix/install)
|
||||
source $HOME/.nix-profile/etc/profile.d/nix.sh
|
||||
|
||||
# Make sure we can use hydra's binary cache
|
||||
sudo mkdir /etc/nix
|
||||
sudo tee /etc/nix/nix.conf <<EOF >/dev/null
|
||||
# Make sure we can use hydra's binary cache
|
||||
sudo mkdir /etc/nix
|
||||
sudo tee /etc/nix/nix.conf <<EOF >/dev/null
|
||||
binary-caches = http://cache.nixos.org http://hydra.nixos.org
|
||||
trusted-binary-caches = http://hydra.nixos.org
|
||||
build-max-jobs = 4
|
||||
EOF
|
||||
|
||||
echo "=== Checking evaluation, including meta"
|
||||
nix-env -f. -qa --json >/dev/null
|
||||
# Verify evaluation
|
||||
echo "=== Verifying that nixpkgs evaluates..."
|
||||
nix-env -f. -qa --json >/dev/null
|
||||
elif [[ $1 == nox ]]; then
|
||||
echo "=== Installing nox..."
|
||||
git clone -q https://github.com/madjar/nox
|
||||
pip --quiet install -e nox
|
||||
elif [[ $1 == build ]]; then
|
||||
source $HOME/.nix-profile/etc/profile.d/nix.sh
|
||||
|
||||
if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then
|
||||
echo "===> Not a pull request, checking evaluation"
|
||||
nix-build pkgs/top-level/release.nix -A tarball
|
||||
exit 0
|
||||
if [[ $TRAVIS_PULL_REQUEST == false ]]; then
|
||||
echo "===> Not a pull request, checking evaluation"
|
||||
nix-build pkgs/top-level/release.nix -A tarball
|
||||
else
|
||||
echo "=== Checking PR"
|
||||
# The current HEAD is the PR merged into origin/master, so we compare
|
||||
# against origin/master
|
||||
nox-review wip --against origin/master
|
||||
fi
|
||||
else
|
||||
echo "$0: Unknown option $1" >&2
|
||||
false
|
||||
fi
|
||||
|
||||
echo "=== Installing nox"
|
||||
git clone -q https://github.com/madjar/nox
|
||||
pip --quiet install -e nox
|
||||
|
||||
echo "=== Reviewing PR"
|
||||
# The current HEAD is the PR merged into origin/master, so we compare
|
||||
# against origin/master
|
||||
nox-review wip --against origin/master
|
||||
|
@ -10,7 +10,7 @@
|
||||
<para>This section lists the release notes for each stable version of NixOS.</para>
|
||||
</partintro>
|
||||
|
||||
<xi:include href="rl-1410.xml" />
|
||||
<xi:include href="rl-1411.xml" />
|
||||
<xi:include href="rl-1404.xml" />
|
||||
<xi:include href="rl-1310.xml" />
|
||||
|
||||
|
@ -2,9 +2,9 @@
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:xi="http://www.w3.org/2001/XInclude"
|
||||
version="5.0"
|
||||
xml:id="sec-release-14.10">
|
||||
xml:id="sec-release-14.11">
|
||||
|
||||
<title>Release 14.10 (“Caterpillar”, 2014/10/??)</title>
|
||||
<title>Release 14.11 (“Caterpillar”, 2014/11/??)</title>
|
||||
|
||||
<para>When upgrading from a previous release, please be aware of the
|
||||
following incompatible changes:
|
||||
@ -19,4 +19,4 @@ following incompatible changes:
|
||||
|
||||
</para>
|
||||
|
||||
</chapter>
|
||||
</chapter>
|
@ -184,7 +184,7 @@ let
|
||||
type = with types; uniq (nullOr string);
|
||||
default = null;
|
||||
description = ''
|
||||
The path to a file that contains the user's password. The password
|
||||
The full path to a file that contains the user's password. The password
|
||||
file is read on each system activation. The file should contain
|
||||
exactly one line, which should be the password in an encrypted form
|
||||
that is suitable for the <literal>chpasswd -e</literal> command.
|
||||
|
@ -42,6 +42,9 @@ with lib;
|
||||
# Get a console as soon as the initrd loads fbcon on EFI boot.
|
||||
boot.initrd.kernelModules = [ "fbcon" ];
|
||||
|
||||
# Add support for cow filesystems and their utilities
|
||||
boot.supportedFilesystems = [ "zfs" "btrfs" ];
|
||||
|
||||
# Allow the user to log in as root without a password.
|
||||
security.initialRootPassword = "";
|
||||
}
|
||||
|
@ -11,6 +11,9 @@ with lib;
|
||||
# Provide wicd for easy wireless configuration.
|
||||
#networking.wicd.enable = true;
|
||||
|
||||
# Include gparted for partitioning disks
|
||||
environment.systemPackages = [ pkgs.gparted ];
|
||||
|
||||
# KDE complains if power management is disabled (to be precise, if
|
||||
# there is no power management backend such as upower).
|
||||
powerManagement.enable = true;
|
||||
@ -27,4 +30,70 @@ with lib;
|
||||
AutoLoginUser=root
|
||||
AutoLoginPass=""
|
||||
'';
|
||||
|
||||
# Custom kde-workspace adding some icons on the desktop
|
||||
|
||||
system.activationScripts.installerDesktop = let
|
||||
openManual = pkgs.writeScript "nixos-manual.sh" ''
|
||||
#!${pkgs.stdenv.shell}
|
||||
cd ${config.system.build.manual.manual}/share/doc/nixos/
|
||||
konqueror ./index.html
|
||||
'';
|
||||
|
||||
desktopFile = pkgs.writeText "nixos-manual.desktop" ''
|
||||
[Desktop Entry]
|
||||
Version=1.0
|
||||
Type=Application
|
||||
Name=NixOS Manual
|
||||
Exec=${openManual}
|
||||
Icon=konqueror
|
||||
'';
|
||||
|
||||
in ''
|
||||
mkdir -p /root/Desktop
|
||||
ln -sfT ${desktopFile} /root/Desktop/nixos-manual.desktop
|
||||
ln -sfT ${pkgs.kde4.konsole}/share/applications/kde4/konsole.desktop /root/Desktop/konsole.desktop
|
||||
ln -sfT ${pkgs.gparted}/share/applications/gparted.desktop /root/Desktop/gparted.desktop
|
||||
'';
|
||||
|
||||
services.xserver.desktopManager.kde4.kdeWorkspacePackage = let
|
||||
pkg = pkgs.kde4.kde_workspace;
|
||||
|
||||
plasmaInit = pkgs.writeText "00-defaultLayout.js" ''
|
||||
loadTemplate("org.kde.plasma-desktop.defaultPanel")
|
||||
|
||||
for (var i = 0; i < screenCount; ++i) {
|
||||
var desktop = new Activity
|
||||
desktop.name = i18n("Desktop")
|
||||
desktop.screen = i
|
||||
desktop.wallpaperPlugin = 'image'
|
||||
desktop.wallpaperMode = 'SingleImage'
|
||||
|
||||
var folderview = desktop.addWidget("folderview");
|
||||
folderview.writeConfig("url", "desktop:/");
|
||||
|
||||
//Create more panels for other screens
|
||||
if (i > 0){
|
||||
var panel = new Panel
|
||||
panel.screen = i
|
||||
panel.location = 'bottom'
|
||||
panel.height = screenGeometry(i).height > 1024 ? 35 : 27
|
||||
var tasks = panel.addWidget("tasks")
|
||||
tasks.writeConfig("showOnlyCurrentScreen", true);
|
||||
}
|
||||
}
|
||||
'';
|
||||
|
||||
in
|
||||
pkgs.stdenv.mkDerivation {
|
||||
inherit (pkg) name meta;
|
||||
|
||||
buildCommand = ''
|
||||
mkdir -p $out
|
||||
cp -prf ${pkg}/* $out/
|
||||
chmod a+w $out/share/apps/plasma-desktop/init
|
||||
cp -f ${plasmaInit} $out/share/apps/plasma-desktop/init/00-defaultLayout.js
|
||||
'';
|
||||
};
|
||||
|
||||
}
|
||||
|
@ -1,7 +1,7 @@
|
||||
# This module generates nixos-install, nixos-rebuild,
|
||||
# nixos-generate-config, etc.
|
||||
|
||||
{ config, pkgs, modulesPath, lib, ... }:
|
||||
{ config, pkgs, modulesPath, ... }:
|
||||
|
||||
let
|
||||
|
||||
|
@ -156,8 +156,7 @@
|
||||
mailpile = 146;
|
||||
redmine = 147;
|
||||
seeks = 148;
|
||||
|
||||
prosody = 148;
|
||||
prosody = 149;
|
||||
|
||||
# When adding a uid, make sure it doesn't match an existing gid. And don't use uids above 399!
|
||||
|
||||
@ -281,8 +280,7 @@
|
||||
mailpile = 146;
|
||||
redmine = 147;
|
||||
seeks = 148;
|
||||
|
||||
prosody = 148;
|
||||
prosody = 149;
|
||||
|
||||
# When adding a gid, make sure it doesn't match an existing uid. And don't use gids above 399!
|
||||
|
||||
|
@ -364,6 +364,7 @@
|
||||
./tasks/filesystems/cifs.nix
|
||||
./tasks/filesystems/ext.nix
|
||||
./tasks/filesystems/f2fs.nix
|
||||
./tasks/filesystems/jfs.nix
|
||||
./tasks/filesystems/nfs.nix
|
||||
./tasks/filesystems/reiserfs.nix
|
||||
./tasks/filesystems/unionfs-fuse.nix
|
||||
|
@ -30,7 +30,7 @@ in
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = ''
|
||||
Enable the stable grsecurity patch, based on Linux 3.2.
|
||||
Enable the stable grsecurity patch, based on Linux 3.14.
|
||||
'';
|
||||
};
|
||||
|
||||
@ -38,7 +38,7 @@ in
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = ''
|
||||
Enable the testing grsecurity patch, based on Linux 3.13.
|
||||
Enable the testing grsecurity patch, based on Linux 3.17.
|
||||
'';
|
||||
};
|
||||
|
||||
|
@ -19,7 +19,7 @@ let
|
||||
org.neo4j.server.webadmin.rrdb.location=${cfg.dataDir}/data/rrd
|
||||
org.neo4j.server.webadmin.data.uri=/db/data/
|
||||
org.neo4j.server.webadmin.management.uri=/db/manage/
|
||||
org.neo4j.server.db.tuning.properties=${pkgs.neo4j}/share/neo4j/conf/neo4j.properties
|
||||
org.neo4j.server.db.tuning.properties=${cfg.package}/share/neo4j/conf/neo4j.properties
|
||||
org.neo4j.server.manage.console_engines=shell
|
||||
${cfg.extraServerConfig}
|
||||
'';
|
||||
@ -46,6 +46,12 @@ in {
|
||||
type = types.uniq types.bool;
|
||||
};
|
||||
|
||||
package = mkOption {
|
||||
description = "Neo4j package to use.";
|
||||
default = pkgs.neo4j;
|
||||
type = types.package;
|
||||
};
|
||||
|
||||
host = mkOption {
|
||||
description = "Neo4j listen address.";
|
||||
default = "127.0.0.1";
|
||||
@ -119,7 +125,7 @@ in {
|
||||
after = [ "network-interfaces.target" ];
|
||||
environment = { NEO4J_INSTANCE = cfg.dataDir; };
|
||||
serviceConfig = {
|
||||
ExecStart = "${pkgs.neo4j}/bin/neo4j console";
|
||||
ExecStart = "${cfg.package}/bin/neo4j console";
|
||||
User = "neo4j";
|
||||
PermissionsStartOnly = true;
|
||||
};
|
||||
|
@ -168,7 +168,6 @@ in
|
||||
hardware.firmware = mkOption {
|
||||
type = types.listOf types.path;
|
||||
default = [];
|
||||
example = [ "/root/my-firmware" ];
|
||||
description = ''
|
||||
List of directories containing firmware files. Such files
|
||||
will be loaded automatically if the kernel asks for them
|
||||
@ -177,10 +176,10 @@ in
|
||||
firmware file with the same name, the first path in the list
|
||||
takes precedence. Note that you must rebuild your system if
|
||||
you add files to any of these directories. For quick testing,
|
||||
put firmware files in /root/test-firmware and add that
|
||||
directory to the list.
|
||||
Note that you can also add firmware packages to this
|
||||
list as these are directories in the nix store.
|
||||
put firmware files in <filename>/root/test-firmware</filename>
|
||||
and add that directory to the list. Note that you can also
|
||||
add firmware packages to this list as these are directories in
|
||||
the nix store.
|
||||
'';
|
||||
apply = list: pkgs.buildEnv {
|
||||
name = "firmware";
|
||||
@ -244,6 +243,11 @@ in
|
||||
echo "regenerating udev hardware database..."
|
||||
${config.systemd.package}/bin/udevadm hwdb --update && ln -sfn ${config.systemd.package} /var/lib/udev/prev-systemd
|
||||
fi
|
||||
|
||||
# Allow the kernel to find our firmware.
|
||||
if [ -e /sys/module/firmware_class/parameters/path ]; then
|
||||
echo -n "${config.hardware.firmware}" > /sys/module/firmware_class/parameters/path
|
||||
fi
|
||||
'';
|
||||
|
||||
systemd.services.systemd-udevd =
|
||||
|
@ -21,6 +21,7 @@ in
|
||||
|
||||
config = mkOption {
|
||||
default = "";
|
||||
type = types.lines;
|
||||
description = ''
|
||||
The contents of the logrotate config file
|
||||
'';
|
||||
|
@ -7,8 +7,7 @@ let
|
||||
cfg = config.services.syslog-ng;
|
||||
|
||||
syslogngConfig = pkgs.writeText "syslog-ng.conf" ''
|
||||
@version: 3.5
|
||||
@include "scl.conf"
|
||||
${cfg.configHeader}
|
||||
${cfg.extraConfig}
|
||||
'';
|
||||
|
||||
@ -72,6 +71,17 @@ in {
|
||||
Configuration added to the end of <literal>syslog-ng.conf</literal>.
|
||||
'';
|
||||
};
|
||||
configHeader = mkOption {
|
||||
type = types.lines;
|
||||
default = ''
|
||||
@version: 3.5
|
||||
@include "scl.conf"
|
||||
'';
|
||||
description = ''
|
||||
The very first lines of the configuration file. Should usually contain
|
||||
the syslog-ng version header.
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -24,6 +24,8 @@ let
|
||||
GRAPHITE_URL = cfg.seyren.graphiteUrl;
|
||||
} // cfg.seyren.extraConfig;
|
||||
|
||||
pagerConfig = pkgs.writeText "alarms.yaml" cfg.pager.alerts;
|
||||
|
||||
configDir = pkgs.buildEnv {
|
||||
name = "graphite-config";
|
||||
paths = lists.filter (el: el != null) [
|
||||
@ -83,13 +85,21 @@ in {
|
||||
|
||||
api = {
|
||||
enable = mkOption {
|
||||
description = "Whether to enable graphite api.";
|
||||
description = ''
|
||||
Whether to enable graphite api. Graphite api is lightweight alternative
|
||||
to graphite web, with api and without dashboard. It's advised to use
|
||||
grafana as alternative dashboard and influxdb as alternative to
|
||||
graphite carbon.
|
||||
|
||||
For more information visit
|
||||
<link xlink:href="http://graphite-api.readthedocs.org/en/latest/"/>
|
||||
'';
|
||||
default = false;
|
||||
type = types.uniq types.bool;
|
||||
};
|
||||
|
||||
finders = mkOption {
|
||||
description = "List of finder plugins load.";
|
||||
description = "List of finder plugins to load.";
|
||||
default = [];
|
||||
example = [ pkgs.python27Packages.graphite_influxdb ];
|
||||
type = types.listOf types.package;
|
||||
@ -301,170 +311,238 @@ in {
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
pager = {
|
||||
enable = mkOption {
|
||||
description = ''
|
||||
Whether to enable graphite-pager service. For more information visit
|
||||
<link xlink:href="https://github.com/seatgeek/graphite-pager"/>
|
||||
'';
|
||||
default = false;
|
||||
type = types.uniq types.bool;
|
||||
};
|
||||
|
||||
redisUrl = mkOption {
|
||||
description = "Redis connection string.";
|
||||
default = "redis://localhost:${toString config.services.redis.port}/";
|
||||
type = types.str;
|
||||
};
|
||||
|
||||
graphiteUrl = mkOption {
|
||||
description = "URL to your graphite service.";
|
||||
default = "http://${cfg.web.host}:${toString cfg.web.port}";
|
||||
type = types.str;
|
||||
};
|
||||
|
||||
alerts = mkOption {
|
||||
description = "Alerts configuration for graphite-pager.";
|
||||
default = ''
|
||||
alerts:
|
||||
- target: constantLine(100)
|
||||
warning: 90
|
||||
critical: 200
|
||||
name: Test
|
||||
'';
|
||||
example = literalExample ''
|
||||
pushbullet_key: pushbullet_api_key
|
||||
alerts:
|
||||
- target: stats.seatgeek.app.deal_quality.venue_info_cache.hit
|
||||
warning: .5
|
||||
critical: 1
|
||||
name: Deal quality venue cache hits
|
||||
'';
|
||||
type = types.lines;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
###### implementation
|
||||
|
||||
config = mkIf (
|
||||
cfg.carbon.enableAggregator ||
|
||||
cfg.carbon.enableCache ||
|
||||
cfg.carbon.enableRelay ||
|
||||
cfg.web.enable ||
|
||||
cfg.api.enable ||
|
||||
cfg.seyren.enable
|
||||
) {
|
||||
systemd.services.carbonCache = {
|
||||
enable = cfg.carbon.enableCache;
|
||||
description = "Graphite Data Storage Backend";
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
after = [ "network-interfaces.target" ];
|
||||
environment = carbonEnv;
|
||||
serviceConfig = {
|
||||
ExecStart = "${pkgs.twisted}/bin/twistd ${carbonOpts "carbon-cache"}";
|
||||
User = "graphite";
|
||||
Group = "graphite";
|
||||
PermissionsStartOnly = true;
|
||||
};
|
||||
preStart = ''
|
||||
mkdir -p ${cfg.dataDir}/whisper
|
||||
chmod 0700 ${cfg.dataDir}/whisper
|
||||
chown -R graphite:graphite ${cfg.dataDir}
|
||||
'';
|
||||
};
|
||||
|
||||
systemd.services.carbonAggregator = {
|
||||
enable = cfg.carbon.enableAggregator;
|
||||
description = "Carbon Data Aggregator";
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
after = [ "network-interfaces.target" ];
|
||||
environment = carbonEnv;
|
||||
serviceConfig = {
|
||||
ExecStart = "${pkgs.twisted}/bin/twistd ${carbonOpts "carbon-aggregator"}";
|
||||
User = "graphite";
|
||||
Group = "graphite";
|
||||
};
|
||||
};
|
||||
|
||||
systemd.services.carbonRelay = {
|
||||
enable = cfg.carbon.enableRelay;
|
||||
description = "Carbon Data Relay";
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
after = [ "network-interfaces.target" ];
|
||||
environment = carbonEnv;
|
||||
serviceConfig = {
|
||||
ExecStart = "${pkgs.twisted}/bin/twistd ${carbonOpts "carbon-relay"}";
|
||||
User = "graphite";
|
||||
Group = "graphite";
|
||||
};
|
||||
};
|
||||
|
||||
systemd.services.graphiteWeb = {
|
||||
enable = cfg.web.enable;
|
||||
description = "Graphite Web Interface";
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
after = [ "network-interfaces.target" ];
|
||||
path = [ pkgs.perl ];
|
||||
environment = {
|
||||
PYTHONPATH = "${pkgs.python27Packages.graphite_web}/lib/python2.7/site-packages";
|
||||
DJANGO_SETTINGS_MODULE = "graphite.settings";
|
||||
GRAPHITE_CONF_DIR = configDir;
|
||||
GRAPHITE_STORAGE_DIR = dataDir;
|
||||
};
|
||||
serviceConfig = {
|
||||
ExecStart = ''
|
||||
${pkgs.python27Packages.waitress}/bin/waitress-serve \
|
||||
--host=${cfg.web.host} --port=${toString cfg.web.port} \
|
||||
--call django.core.handlers.wsgi:WSGIHandler'';
|
||||
User = "graphite";
|
||||
Group = "graphite";
|
||||
PermissionsStartOnly = true;
|
||||
};
|
||||
preStart = ''
|
||||
if ! test -e ${dataDir}/db-created; then
|
||||
mkdir -p ${dataDir}/{whisper/,log/webapp/}
|
||||
chmod 0700 ${dataDir}/{whisper/,log/webapp/}
|
||||
|
||||
# populate database
|
||||
${pkgs.python27Packages.graphite_web}/bin/manage-graphite.py syncdb --noinput
|
||||
|
||||
# create index
|
||||
${pkgs.python27Packages.graphite_web}/bin/build-index.sh
|
||||
|
||||
touch ${dataDir}/db-created
|
||||
|
||||
config = mkMerge [
|
||||
(mkIf cfg.carbon.enableCache {
|
||||
systemd.services.carbonCache = {
|
||||
description = "Graphite Data Storage Backend";
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
after = [ "network-interfaces.target" ];
|
||||
environment = carbonEnv;
|
||||
serviceConfig = {
|
||||
ExecStart = "${pkgs.twisted}/bin/twistd ${carbonOpts "carbon-cache"}";
|
||||
User = "graphite";
|
||||
Group = "graphite";
|
||||
PermissionsStartOnly = true;
|
||||
};
|
||||
preStart = ''
|
||||
mkdir -p ${cfg.dataDir}/whisper
|
||||
chmod 0700 ${cfg.dataDir}/whisper
|
||||
chown -R graphite:graphite ${cfg.dataDir}
|
||||
fi
|
||||
'';
|
||||
};
|
||||
|
||||
systemd.services.graphiteApi = {
|
||||
enable = cfg.api.enable;
|
||||
description = "Graphite Api Interface";
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
after = [ "network-interfaces.target" ];
|
||||
environment = {
|
||||
PYTHONPATH =
|
||||
"${cfg.api.package}/lib/python2.7/site-packages:" +
|
||||
concatMapStringsSep ":" (f: f + "/lib/python2.7/site-packages") cfg.api.finders;
|
||||
GRAPHITE_API_CONFIG = graphiteApiConfig;
|
||||
LD_LIBRARY_PATH = "${pkgs.cairo}/lib";
|
||||
};
|
||||
serviceConfig = {
|
||||
ExecStart = ''
|
||||
${pkgs.python27Packages.waitress}/bin/waitress-serve \
|
||||
--host=${cfg.api.host} --port=${toString cfg.api.port} \
|
||||
graphite_api.app:app
|
||||
'';
|
||||
User = "graphite";
|
||||
Group = "graphite";
|
||||
PermissionsStartOnly = true;
|
||||
};
|
||||
preStart = ''
|
||||
if ! test -e ${dataDir}/db-created; then
|
||||
mkdir -p ${dataDir}/cache/
|
||||
chmod 0700 ${dataDir}/cache/
|
||||
})
|
||||
|
||||
touch ${dataDir}/db-created
|
||||
|
||||
chown -R graphite:graphite ${cfg.dataDir}
|
||||
fi
|
||||
'';
|
||||
};
|
||||
|
||||
systemd.services.seyren = {
|
||||
enable = cfg.seyren.enable;
|
||||
description = "Graphite Alerting Dashboard";
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
after = [ "network-interfaces.target" "mongodb.service" ];
|
||||
environment = seyrenConfig;
|
||||
serviceConfig = {
|
||||
ExecStart = "${pkgs.seyren}/bin/seyren -httpPort ${toString cfg.seyren.port}";
|
||||
WorkingDirectory = dataDir;
|
||||
User = "graphite";
|
||||
Group = "graphite";
|
||||
(mkIf cfg.carbon.enableAggregator {
|
||||
systemd.services.carbonAggregator = {
|
||||
enable = cfg.carbon.enableAggregator;
|
||||
description = "Carbon Data Aggregator";
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
after = [ "network-interfaces.target" ];
|
||||
environment = carbonEnv;
|
||||
serviceConfig = {
|
||||
ExecStart = "${pkgs.twisted}/bin/twistd ${carbonOpts "carbon-aggregator"}";
|
||||
User = "graphite";
|
||||
Group = "graphite";
|
||||
};
|
||||
};
|
||||
preStart = ''
|
||||
if ! test -e ${dataDir}/db-created; then
|
||||
mkdir -p ${dataDir}
|
||||
chown -R graphite:graphite ${dataDir}
|
||||
fi
|
||||
'';
|
||||
};
|
||||
})
|
||||
|
||||
services.mongodb.enable = mkDefault cfg.seyren.enable;
|
||||
(mkIf cfg.carbon.enableRelay {
|
||||
systemd.services.carbonRelay = {
|
||||
description = "Carbon Data Relay";
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
after = [ "network-interfaces.target" ];
|
||||
environment = carbonEnv;
|
||||
serviceConfig = {
|
||||
ExecStart = "${pkgs.twisted}/bin/twistd ${carbonOpts "carbon-relay"}";
|
||||
User = "graphite";
|
||||
Group = "graphite";
|
||||
};
|
||||
};
|
||||
})
|
||||
|
||||
environment.systemPackages = [
|
||||
pkgs.pythonPackages.carbon
|
||||
pkgs.python27Packages.graphite_web
|
||||
pkgs.python27Packages.waitress
|
||||
];
|
||||
(mkIf (cfg.carbon.enableCache || cfg.carbon.enableAggregator || cfg.carbon.enableRelay) {
|
||||
environment.systemPackages = [
|
||||
pkgs.pythonPackages.carbon
|
||||
];
|
||||
})
|
||||
|
||||
users.extraUsers = singleton {
|
||||
name = "graphite";
|
||||
uid = config.ids.uids.graphite;
|
||||
description = "Graphite daemon user";
|
||||
home = dataDir;
|
||||
};
|
||||
users.extraGroups.graphite.gid = config.ids.gids.graphite;
|
||||
};
|
||||
(mkIf cfg.web.enable {
|
||||
systemd.services.graphiteWeb = {
|
||||
description = "Graphite Web Interface";
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
after = [ "network-interfaces.target" ];
|
||||
path = [ pkgs.perl ];
|
||||
environment = {
|
||||
PYTHONPATH = "${pkgs.python27Packages.graphite_web}/lib/python2.7/site-packages";
|
||||
DJANGO_SETTINGS_MODULE = "graphite.settings";
|
||||
GRAPHITE_CONF_DIR = configDir;
|
||||
GRAPHITE_STORAGE_DIR = dataDir;
|
||||
};
|
||||
serviceConfig = {
|
||||
ExecStart = ''
|
||||
${pkgs.python27Packages.waitress}/bin/waitress-serve \
|
||||
--host=${cfg.web.host} --port=${toString cfg.web.port} \
|
||||
--call django.core.handlers.wsgi:WSGIHandler'';
|
||||
User = "graphite";
|
||||
Group = "graphite";
|
||||
PermissionsStartOnly = true;
|
||||
};
|
||||
preStart = ''
|
||||
if ! test -e ${dataDir}/db-created; then
|
||||
mkdir -p ${dataDir}/{whisper/,log/webapp/}
|
||||
chmod 0700 ${dataDir}/{whisper/,log/webapp/}
|
||||
|
||||
# populate database
|
||||
${pkgs.python27Packages.graphite_web}/bin/manage-graphite.py syncdb --noinput
|
||||
|
||||
# create index
|
||||
${pkgs.python27Packages.graphite_web}/bin/build-index.sh
|
||||
|
||||
touch ${dataDir}/db-created
|
||||
|
||||
chown -R graphite:graphite ${cfg.dataDir}
|
||||
fi
|
||||
'';
|
||||
};
|
||||
|
||||
environment.systemPackages = [ pkgs.python27Packages.graphite_web ];
|
||||
})
|
||||
|
||||
(mkIf cfg.api.enable {
|
||||
systemd.services.graphiteApi = {
|
||||
description = "Graphite Api Interface";
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
after = [ "network-interfaces.target" ];
|
||||
environment = {
|
||||
PYTHONPATH =
|
||||
"${cfg.api.package}/lib/python2.7/site-packages:" +
|
||||
concatMapStringsSep ":" (f: f + "/lib/python2.7/site-packages") cfg.api.finders;
|
||||
GRAPHITE_API_CONFIG = graphiteApiConfig;
|
||||
LD_LIBRARY_PATH = "${pkgs.cairo}/lib";
|
||||
};
|
||||
serviceConfig = {
|
||||
ExecStart = ''
|
||||
${pkgs.python27Packages.waitress}/bin/waitress-serve \
|
||||
--host=${cfg.api.host} --port=${toString cfg.api.port} \
|
||||
graphite_api.app:app
|
||||
'';
|
||||
User = "graphite";
|
||||
Group = "graphite";
|
||||
PermissionsStartOnly = true;
|
||||
};
|
||||
preStart = ''
|
||||
if ! test -e ${dataDir}/db-created; then
|
||||
mkdir -p ${dataDir}/cache/
|
||||
chmod 0700 ${dataDir}/cache/
|
||||
|
||||
touch ${dataDir}/db-created
|
||||
|
||||
chown -R graphite:graphite ${cfg.dataDir}
|
||||
fi
|
||||
'';
|
||||
};
|
||||
})
|
||||
|
||||
(mkIf cfg.seyren.enable {
|
||||
systemd.services.seyren = {
|
||||
description = "Graphite Alerting Dashboard";
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
after = [ "network-interfaces.target" "mongodb.service" ];
|
||||
environment = seyrenConfig;
|
||||
serviceConfig = {
|
||||
ExecStart = "${pkgs.seyren}/bin/seyren -httpPort ${toString cfg.seyren.port}";
|
||||
WorkingDirectory = dataDir;
|
||||
User = "graphite";
|
||||
Group = "graphite";
|
||||
};
|
||||
preStart = ''
|
||||
if ! test -e ${dataDir}/db-created; then
|
||||
mkdir -p ${dataDir}
|
||||
chown -R graphite:graphite ${dataDir}
|
||||
fi
|
||||
'';
|
||||
};
|
||||
|
||||
services.mongodb.enable = mkDefault true;
|
||||
})
|
||||
|
||||
(mkIf cfg.pager.enable {
|
||||
systemd.services.graphitePager = {
|
||||
description = "Graphite Pager Alerting Daemon";
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
after = [ "network-interfaces.target" "redis.service" ];
|
||||
environment = {
|
||||
REDIS_URL = cfg.pager.redisUrl;
|
||||
GRAPHITE_URL = cfg.pager.graphiteUrl;
|
||||
};
|
||||
serviceConfig = {
|
||||
ExecStart = "${pkgs.pythonPackages.graphite_pager}/bin/graphite-pager --config ${pagerConfig}";
|
||||
User = "graphite";
|
||||
Group = "graphite";
|
||||
};
|
||||
};
|
||||
|
||||
services.redis.enable = mkDefault true;
|
||||
|
||||
environment.systemPackages = [ pkgs.pythonPackages.graphite_pager ];
|
||||
})
|
||||
|
||||
{
|
||||
users.extraUsers = singleton {
|
||||
name = "graphite";
|
||||
uid = config.ids.uids.graphite;
|
||||
description = "Graphite daemon user";
|
||||
home = dataDir;
|
||||
};
|
||||
users.extraGroups.graphite.gid = config.ids.gids.graphite;
|
||||
}
|
||||
];
|
||||
}
|
||||
|
@ -64,6 +64,13 @@ in
|
||||
Use fixed port for rpc.mountd, usefull if server is behind firewall.
|
||||
'';
|
||||
};
|
||||
|
||||
lockdPort = mkOption {
|
||||
default = 0;
|
||||
description = ''
|
||||
Fix the lockd port number. This can help setting firewall rules for NFS.
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
};
|
||||
@ -104,6 +111,9 @@ in
|
||||
# Create a state directory required by NFSv4.
|
||||
mkdir -p /var/lib/nfs/v4recovery
|
||||
|
||||
${pkgs.procps}/sbin/sysctl -w fs.nfs.nlm_tcpport=${builtins.toString cfg.lockdPort}
|
||||
${pkgs.procps}/sbin/sysctl -w fs.nfs.nlm_udpport=${builtins.toString cfg.lockdPort}
|
||||
|
||||
rpc.nfsd \
|
||||
${if cfg.hostName != null then "-H ${cfg.hostName}" else ""} \
|
||||
${builtins.toString cfg.nproc}
|
||||
|
11
nixos/modules/services/networking/cjdns-hosts.sh
Normal file
11
nixos/modules/services/networking/cjdns-hosts.sh
Normal file
@ -0,0 +1,11 @@
|
||||
pubs=($pubs)
|
||||
hosts=($hosts)
|
||||
|
||||
lines="''\n"
|
||||
for ((i = 0; i < ${#pubs[*]}; i++)); do
|
||||
addr=$($cjdns/bin/publictoip6 ${pubs[i]})
|
||||
lines="${lines}$addr ${hosts[i]}\n"
|
||||
done
|
||||
lines="${lines}''"
|
||||
|
||||
echo -ne $lines > $out
|
@ -4,8 +4,46 @@ with lib;
|
||||
|
||||
let
|
||||
|
||||
pkg = pkgs.cjdns;
|
||||
|
||||
cfg = config.services.cjdns;
|
||||
|
||||
connectToSubmodule =
|
||||
{ options, ... }:
|
||||
{ options =
|
||||
{ password = mkOption {
|
||||
type = types.str;
|
||||
description = "Authorized password to the opposite end of the tunnel.";
|
||||
};
|
||||
publicKey = mkOption {
|
||||
type = types.str;
|
||||
description = "Public key at the opposite end of the tunnel.";
|
||||
};
|
||||
hostname = mkOption {
|
||||
default = "";
|
||||
example = "foobar.hype";
|
||||
type = types.str;
|
||||
description = "Optional hostname to add to /etc/hosts; prevents reverse lookup failures.";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
peers = mapAttrsToList (n: v: v) (cfg.ETHInterface.connectTo // cfg.UDPInterface.connectTo);
|
||||
|
||||
pubs = toString (map (p: if p.hostname == "" then "" else p.publicKey) peers);
|
||||
hosts = toString (map (p: if p.hostname == "" then "" else p.hostname) peers);
|
||||
|
||||
cjdnsHosts =
|
||||
if hosts != "" then
|
||||
import (pkgs.stdenv.mkDerivation {
|
||||
name = "cjdns-hosts";
|
||||
builder = ./cjdns-hosts.sh;
|
||||
|
||||
inherit (pkgs) cjdns;
|
||||
inherit pubs hosts;
|
||||
})
|
||||
else "";
|
||||
|
||||
# would be nice to merge 'cfg' with a //,
|
||||
# but the json nesting is wacky.
|
||||
cjdrouteConf = builtins.toJSON ( {
|
||||
@ -44,7 +82,7 @@ in
|
||||
|
||||
enable = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
default = false;
|
||||
description = ''
|
||||
Whether to enable the cjdns network encryption
|
||||
and routing engine. A file at /etc/cjdns.keys will
|
||||
@ -53,84 +91,80 @@ in
|
||||
'';
|
||||
};
|
||||
|
||||
confFile = mkOption {
|
||||
type = types.str;
|
||||
default = "";
|
||||
example = "/etc/cjdroute.conf";
|
||||
description = ''
|
||||
Ignore all other cjdns options and load configuration from this file.
|
||||
'';
|
||||
};
|
||||
|
||||
authorizedPasswords = mkOption {
|
||||
type = types.listOf types.str;
|
||||
default = [ ];
|
||||
example = [
|
||||
default = [ ];
|
||||
example = [
|
||||
"snyrfgkqsc98qh1y4s5hbu0j57xw5s0"
|
||||
"z9md3t4p45mfrjzdjurxn4wuj0d8swv"
|
||||
"49275fut6tmzu354pq70sr5b95qq0vj"
|
||||
"z9md3t4p45mfrjzdjurxn4wuj0d8swv"
|
||||
"49275fut6tmzu354pq70sr5b95qq0vj"
|
||||
];
|
||||
description = ''
|
||||
Any remote cjdns nodes that offer these passwords on
|
||||
connection will be allowed to route through this node.
|
||||
description = ''
|
||||
Any remote cjdns nodes that offer these passwords on
|
||||
connection will be allowed to route through this node.
|
||||
'';
|
||||
};
|
||||
|
||||
admin = {
|
||||
bind = mkOption {
|
||||
type = types.string;
|
||||
default = "127.0.0.1:11234";
|
||||
description = ''
|
||||
default = "127.0.0.1:11234";
|
||||
description = ''
|
||||
Bind the administration port to this address and port.
|
||||
'';
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
UDPInterface = {
|
||||
bind = mkOption {
|
||||
type = types.string;
|
||||
default = "";
|
||||
default = "";
|
||||
example = "192.168.1.32:43211";
|
||||
description = ''
|
||||
Address and port to bind UDP tunnels to.
|
||||
'';
|
||||
};
|
||||
Address and port to bind UDP tunnels to.
|
||||
'';
|
||||
};
|
||||
connectTo = mkOption {
|
||||
type = types.attrsOf ( types.submodule (
|
||||
{ options, ... }:
|
||||
{ options = {
|
||||
# TODO make host an option, and add it to networking.extraHosts
|
||||
password = mkOption {
|
||||
type = types.str;
|
||||
description = "Authorized password to the opposite end of the tunnel.";
|
||||
};
|
||||
publicKey = mkOption {
|
||||
type = types.str;
|
||||
description = "Public key at the opposite end of the tunnel.";
|
||||
};
|
||||
};
|
||||
}
|
||||
));
|
||||
default = { };
|
||||
type = types.attrsOf ( types.submodule ( connectToSubmodule ) );
|
||||
default = { };
|
||||
example = {
|
||||
"192.168.1.1:27313" = {
|
||||
password = "5kG15EfpdcKNX3f2GSQ0H1HC7yIfxoCoImnO5FHM";
|
||||
hostname = "homer.hype";
|
||||
password = "5kG15EfpdcKNX3f2GSQ0H1HC7yIfxoCoImnO5FHM";
|
||||
publicKey = "371zpkgs8ss387tmr81q04mp0hg1skb51hw34vk1cq644mjqhup0.k";
|
||||
};
|
||||
};
|
||||
description = ''
|
||||
Credentials for making UDP tunnels.
|
||||
'';
|
||||
};
|
||||
Credentials for making UDP tunnels.
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
ETHInterface = {
|
||||
bind = mkOption {
|
||||
default = "";
|
||||
example = "eth0";
|
||||
description = ''
|
||||
Bind to this device for native ethernet operation.
|
||||
'';
|
||||
};
|
||||
default = "";
|
||||
example = "eth0";
|
||||
description = ''
|
||||
Bind to this device for native ethernet operation.
|
||||
'';
|
||||
};
|
||||
|
||||
beacon = mkOption {
|
||||
type = types.int;
|
||||
type = types.int;
|
||||
default = 2;
|
||||
description = ''
|
||||
Auto-connect to other cjdns nodes on the same network.
|
||||
Options:
|
||||
0: Disabled.
|
||||
0: Disabled.
|
||||
1: Accept beacons, this will cause cjdns to accept incoming
|
||||
beacon messages and try connecting to the sender.
|
||||
2: Accept and send beacons, this will cause cjdns to broadcast
|
||||
@ -142,32 +176,20 @@ in
|
||||
};
|
||||
|
||||
connectTo = mkOption {
|
||||
type = types.attrsOf ( types.submodule (
|
||||
{ options, ... }:
|
||||
{ options = {
|
||||
password = mkOption {
|
||||
type = types.str;
|
||||
description = "Authorized password to the opposite end of the tunnel.";
|
||||
};
|
||||
publicKey = mkOption {
|
||||
type = types.str;
|
||||
description = "Public key at the opposite end of the tunnel.";
|
||||
};
|
||||
};
|
||||
}
|
||||
));
|
||||
default = { };
|
||||
type = types.attrsOf ( types.submodule ( connectToSubmodule ) );
|
||||
default = { };
|
||||
example = {
|
||||
"01:02:03:04:05:06" = {
|
||||
password = "5kG15EfpdcKNX3f2GSQ0H1HC7yIfxoCoImnO5FHM";
|
||||
hostname = "homer.hype";
|
||||
password = "5kG15EfpdcKNX3f2GSQ0H1HC7yIfxoCoImnO5FHM";
|
||||
publicKey = "371zpkgs8ss387tmr81q04mp0hg1skb51hw34vk1cq644mjqhup0.k";
|
||||
};
|
||||
};
|
||||
description = ''
|
||||
Credentials for connecting look similar to UDP credientials
|
||||
description = ''
|
||||
Credentials for connecting look similar to UDP credientials
|
||||
except they begin with the mac address.
|
||||
'';
|
||||
};
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
};
|
||||
@ -185,34 +207,48 @@ in
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
after = [ "network-interfaces.target" ];
|
||||
|
||||
script = ''
|
||||
source /etc/cjdns.keys
|
||||
echo '${cjdrouteConf}' | sed \
|
||||
-e "s/@CJDNS_ADMIN_PASSWORD@/$CJDNS_ADMIN_PASSWORD/g" \
|
||||
-e "s/@CJDNS_PRIVATE_KEY@/$CJDNS_PRIVATE_KEY/g" \
|
||||
| ${pkgs.cjdns}/bin/cjdroute
|
||||
'';
|
||||
script = (
|
||||
if cfg.confFile != "" then "${pkg}/bin/cjdroute < ${cfg.confFile}" else
|
||||
''
|
||||
source /etc/cjdns.keys
|
||||
echo '${cjdrouteConf}' | sed \
|
||||
-e "s/@CJDNS_ADMIN_PASSWORD@/$CJDNS_ADMIN_PASSWORD/g" \
|
||||
-e "s/@CJDNS_PRIVATE_KEY@/$CJDNS_PRIVATE_KEY/g" \
|
||||
| ${pkg}/bin/cjdroute
|
||||
''
|
||||
);
|
||||
|
||||
serviceConfig = {
|
||||
Type = "forking";
|
||||
Restart = "on-failure";
|
||||
Restart = "on-failure";
|
||||
};
|
||||
};
|
||||
|
||||
system.activationScripts.cjdns = ''
|
||||
system.activationScripts.cjdns = if (cfg.confFile == "") then "" else ''
|
||||
cjdnsWriteKeys() {
|
||||
private=$1
|
||||
ipv6=$2
|
||||
public=$3
|
||||
|
||||
echo "CJDNS_PRIVATE_KEY=$1" >> /etc/cjdns.keys
|
||||
echo -e "CJDNS_IPV6=$2\nCJDNS_PUBLIC_KEY=$3" > /etc/cjdns.public
|
||||
|
||||
chmod 600 /etc/cjdns.keys
|
||||
chmod 444 /etc/cjdns.public
|
||||
}
|
||||
|
||||
grep -q "CJDNS_PRIVATE_KEY=" /etc/cjdns.keys || \
|
||||
echo "CJDNS_PRIVATE_KEY=$(${pkgs.cjdns}/bin/makekey)" \
|
||||
>> /etc/cjdns.keys
|
||||
cjdnsWriteKeys $(${pkg}/bin/makekeys)
|
||||
|
||||
grep -q "CJDNS_ADMIN_PASSWORD=" /etc/cjdns.keys || \
|
||||
echo "CJDNS_ADMIN_PASSWORD=$(${pkgs.coreutils}/bin/head -c 96 /dev/urandom | ${pkgs.coreutils}/bin/tr -dc A-Za-z0-9)" \
|
||||
>> /etc/cjdns.keys
|
||||
|
||||
chmod 600 /etc/cjdns.keys
|
||||
echo "CJDNS_ADMIN_PASSWORD=$(${pkgs.coreutils}/bin/head -c 96 /dev/urandom | ${pkgs.coreutils}/bin/tr -dc A-Za-z0-9)" \
|
||||
>> /etc/cjdns.keys
|
||||
'';
|
||||
|
||||
networking.extraHosts = "${cjdnsHosts}";
|
||||
|
||||
assertions = [
|
||||
{ assertion = ( cfg.ETHInterface.bind != "" || cfg.UDPInterface.bind != "" );
|
||||
{ assertion = ( cfg.ETHInterface.bind != "" || cfg.UDPInterface.bind != "" || cfg.confFile == "" );
|
||||
message = "Neither cjdns.ETHInterface.bind nor cjdns.UDPInterface.bind defined.";
|
||||
}
|
||||
{ assertion = config.networking.enableIPv6;
|
||||
|
@ -103,12 +103,8 @@ in
|
||||
description = "caching web proxy";
|
||||
after = [ "network.target" "nss-lookup.target" ];
|
||||
wantedBy = [ "multi-user.target"];
|
||||
preStart = ''
|
||||
${pkgs.coreutils}/bin/chown polipo:polipo /var/cache/polipo -R
|
||||
'';
|
||||
serviceConfig = {
|
||||
ExecStart = "${pkgs.polipo}/bin/polipo -c ${polipoConfig}";
|
||||
ExecReload = "${pkgs.coreutils}/bin/kill -USR1 $MAINPID";
|
||||
User = "polipo";
|
||||
};
|
||||
};
|
||||
|
@ -91,6 +91,11 @@ let
|
||||
description = "Serve static files from a directory over HTTP";
|
||||
};
|
||||
|
||||
websocket = mkOption {
|
||||
default = false;
|
||||
description = "Enable WebSocket support";
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
createSSLOptsStr = o:
|
||||
|
@ -18,7 +18,7 @@ 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 ./kde4_next.nix
|
||||
./none.nix ./xterm.nix ./xfce.nix ./kde4.nix
|
||||
./e17.nix ./e18.nix ./e19.nix ./gnome3.nix ./xbmc.nix
|
||||
];
|
||||
|
||||
|
@ -81,7 +81,7 @@ in {
|
||||
services.upower.enable = config.powerManagement.enable;
|
||||
services.upower.package = gnome3.upower;
|
||||
|
||||
fonts.fonts = [ pkgs.dejavu_fonts ];
|
||||
fonts.fonts = [ pkgs.dejavu_fonts pkgs.cantarell_fonts ];
|
||||
|
||||
services.xserver.desktopManager.session = singleton
|
||||
{ name = "gnome3";
|
||||
|
@ -7,6 +7,7 @@ let
|
||||
xcfg = config.services.xserver;
|
||||
cfg = xcfg.desktopManager.kde4;
|
||||
xorg = pkgs.xorg;
|
||||
kde_workspace = config.services.xserver.desktopManager.kde4.kdeWorkspacePackage;
|
||||
|
||||
# Disable Nepomuk and Strigi by default. As of KDE 4.7, they don't
|
||||
# really work very well (e.g. searching files often fails to find
|
||||
@ -61,6 +62,13 @@ in
|
||||
example = ["gstreamer" "vlc"];
|
||||
description = "Which phonon multimedia backend kde should use";
|
||||
};
|
||||
|
||||
kdeWorkspacePackage = mkOption {
|
||||
internal = true;
|
||||
default = pkgs.kde4.kde_workspace;
|
||||
type = types.package;
|
||||
description = "Custom kde-workspace, used for NixOS rebranding.";
|
||||
};
|
||||
};
|
||||
|
||||
environment.kdePackages = mkOption {
|
||||
@ -108,13 +116,13 @@ in
|
||||
fi
|
||||
|
||||
# Start KDE.
|
||||
exec ${pkgs.kde4.kdebase_workspace}/bin/startkde
|
||||
exec ${kde_workspace}/bin/startkde
|
||||
'';
|
||||
};
|
||||
|
||||
security.setuidOwners = singleton
|
||||
{ program = "kcheckpass";
|
||||
source = "${pkgs.kde4.kdebase_workspace}/lib/kde4/libexec/kcheckpass";
|
||||
source = "${kde_workspace}/lib/kde4/libexec/kcheckpass";
|
||||
owner = "root";
|
||||
group = "root";
|
||||
setuid = true;
|
||||
@ -124,7 +132,7 @@ in
|
||||
[ pkgs.kde4.kdelibs
|
||||
|
||||
pkgs.kde4.kde_baseapps # Splitted kdebase
|
||||
pkgs.kde4.kde_workspace
|
||||
kde_workspace
|
||||
pkgs.kde4.kde_runtime
|
||||
pkgs.kde4.konsole
|
||||
pkgs.kde4.kate
|
||||
@ -146,8 +154,10 @@ in
|
||||
pkgs.strigi # used by nepomuk
|
||||
pkgs.mysql # used by akonadi
|
||||
]
|
||||
++ [ nepomukConfig ] ++ phononBackendPackages
|
||||
++ config.environment.kdePackages;
|
||||
++ lib.optional config.hardware.pulseaudio.enable pkgs.kde4.kmix # Perhaps this should always be enabled
|
||||
++ lib.optional config.hardware.bluetooth.enable pkgs.kde4.bluedevil
|
||||
++ lib.optional config.networking.networkmanager.enable pkgs.kde4.plasma-nm
|
||||
++ [ nepomukConfig ] ++ phononBackendPackages;
|
||||
|
||||
environment.pathsToLink = [ "/share" ];
|
||||
|
||||
|
@ -1,163 +0,0 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
|
||||
xcfg = config.services.xserver;
|
||||
cfg = xcfg.desktopManager.kde4_next;
|
||||
xorg = pkgs.xorg;
|
||||
kde = pkgs.kde4_next;
|
||||
|
||||
# Disable Nepomuk and Strigi by default. As of KDE 4.7, they don't
|
||||
# really work very well (e.g. searching files often fails to find
|
||||
# files), segfault sometimes and consume significant resources.
|
||||
# They can be re-enabled in the KDE System Settings under "Desktop
|
||||
# Search".
|
||||
nepomukConfig = pkgs.writeTextFile
|
||||
{ name = "nepomuk-config";
|
||||
destination = "/share/config/nepomukserverrc";
|
||||
text =
|
||||
''
|
||||
[Basic Settings]
|
||||
Start Nepomuk=false
|
||||
|
||||
[Service-nepomukstrigiservice]
|
||||
autostart=false
|
||||
'';
|
||||
};
|
||||
|
||||
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.gst_all.gstreamer # needed?
|
||||
];
|
||||
|
||||
vlc = [pkgs.phonon_backend_vlc];
|
||||
};
|
||||
|
||||
phononBackendPackages = flip concatMap cfg.phononBackends
|
||||
(name: attrByPath [name] (throw "unknown phonon backend `${name}'") phononBackends);
|
||||
|
||||
in
|
||||
|
||||
{
|
||||
options = {
|
||||
|
||||
services.xserver.desktopManager.kde4_next = {
|
||||
enable = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = "Enable the KDE 4 desktop environment.";
|
||||
};
|
||||
|
||||
phononBackends = mkOption {
|
||||
type = types.listOf types.str;
|
||||
default = ["gstreamer"];
|
||||
example = ["gstreamer" "vlc"];
|
||||
description = "Which phonon multimedia backend kde should use";
|
||||
};
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
|
||||
config = mkIf (xcfg.enable && cfg.enable) {
|
||||
|
||||
# If KDE 4 is enabled, make it the default desktop manager (unless
|
||||
# overridden by the user's configuration).
|
||||
# !!! doesn't work yet ("Multiple definitions. Only one is allowed
|
||||
# for this option.")
|
||||
# services.xserver.desktopManager.default = mkOverride 900 "kde4";
|
||||
|
||||
services.xserver.desktopManager.session = singleton
|
||||
{ name = "kde4_next";
|
||||
bgSupport = true;
|
||||
start =
|
||||
''
|
||||
# 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/.kde/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
|
||||
sed -e '/nix\\store\|nix\/store/ d' -i $HOME/.config/Trolltech.conf
|
||||
fi
|
||||
|
||||
# Start KDE.
|
||||
exec ${kde.kdebase_workspace}/bin/startkde
|
||||
'';
|
||||
};
|
||||
|
||||
security.setuidOwners = singleton
|
||||
{ program = "kcheckpass";
|
||||
source = "${kde.kdebase_workspace}/lib/kde4/libexec/kcheckpass";
|
||||
owner = "root";
|
||||
group = "root";
|
||||
setuid = true;
|
||||
};
|
||||
|
||||
environment.systemPackages =
|
||||
[ kde.kdelibs
|
||||
|
||||
kde.kde_baseapps # Splitted kdebase
|
||||
kde.kde_workspace
|
||||
kde.kde_runtime
|
||||
kde.konsole
|
||||
kde.kate
|
||||
|
||||
kde.kde_wallpapers # contains kdm's default background
|
||||
kde.oxygen_icons
|
||||
pkgs.virtuoso # to enable Nepomuk to find Virtuoso
|
||||
|
||||
# Starts KDE's Polkit authentication agent.
|
||||
kde.polkit_kde_agent
|
||||
|
||||
# Miscellaneous runtime dependencies.
|
||||
kde.qt4 # needed for qdbus
|
||||
pkgs.shared_mime_info
|
||||
xorg.xmessage # so that startkde can show error messages
|
||||
xorg.xset # used by startkde, non-essential
|
||||
xorg.xauth # used by kdesu
|
||||
pkgs.shared_desktop_ontologies # used by nepomuk
|
||||
pkgs.strigi # used by nepomuk
|
||||
pkgs.mysql # used by akonadi
|
||||
]
|
||||
++ lib.optional config.hardware.pulseaudio.enable kde.kmix # Perhaps this should always be enabled
|
||||
++ lib.optional config.hardware.bluetooth.enable kde.bluedevil
|
||||
++ lib.optional config.networking.networkmanager.enable kde.networkmanagement
|
||||
++ [ nepomukConfig ] ++ phononBackendPackages;
|
||||
|
||||
environment.pathsToLink = [ "/share" ];
|
||||
|
||||
environment.etc = singleton
|
||||
{ source = "${pkgs.xkeyboard_config}/etc/X11/xkb";
|
||||
target = "X11/xkb";
|
||||
};
|
||||
|
||||
# Enable helpful DBus services.
|
||||
services.udisks2.enable = true;
|
||||
services.upower.enable = config.powerManagement.enable;
|
||||
|
||||
security.pam.services.kde = { allowNullPassword = true; };
|
||||
|
||||
};
|
||||
|
||||
}
|
@ -10,15 +10,19 @@ let
|
||||
|
||||
systemd = cfg.package;
|
||||
|
||||
|
||||
makeUnit = name: unit:
|
||||
let
|
||||
pathSafeName = lib.replaceChars ["@" "\\"] ["-" "-"] name;
|
||||
in
|
||||
if unit.enable then
|
||||
pkgs.runCommand "unit" { preferLocalBuild = true; inherit (unit) text; }
|
||||
pkgs.runCommand "unit-${pathSafeName}" { preferLocalBuild = true; inherit (unit) text; }
|
||||
''
|
||||
mkdir -p $out
|
||||
echo -n "$text" > $out/${shellEscape name}
|
||||
''
|
||||
else
|
||||
pkgs.runCommand "unit" { preferLocalBuild = true; }
|
||||
pkgs.runCommand "unit-${pathSafeName}-disabled" { preferLocalBuild = true; }
|
||||
''
|
||||
mkdir -p $out
|
||||
ln -s /dev/null $out/${shellEscape name}
|
||||
|
19
nixos/modules/tasks/filesystems/jfs.nix
Normal file
19
nixos/modules/tasks/filesystems/jfs.nix
Normal file
@ -0,0 +1,19 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
inInitrd = any (fs: fs == "jfs") config.boot.initrd.supportedFilesystems;
|
||||
in
|
||||
{
|
||||
config = mkIf (any (fs: fs == "jfs") config.boot.supportedFilesystems) {
|
||||
|
||||
system.fsPackages = [ pkgs.jfsutils ];
|
||||
|
||||
boot.initrd.kernelModules = mkIf inInitrd [ "jfs" ];
|
||||
|
||||
boot.initrd.extraUtilsCommands = mkIf inInitrd ''
|
||||
cp -v ${pkgs.jfsutils}/sbin/fsck.jfs "$out/bin/"
|
||||
'';
|
||||
};
|
||||
}
|
@ -383,7 +383,7 @@ in
|
||||
|
||||
# When building a regular system configuration, override whatever
|
||||
# video driver the host uses.
|
||||
services.xserver.videoDrivers = mkVMOverride [ "vesa" ];
|
||||
services.xserver.videoDrivers = mkVMOverride [ "modesetting" ];
|
||||
services.xserver.defaultDepth = mkVMOverride 0;
|
||||
services.xserver.resolutions = mkVMOverride [ { x = 1024; y = 768; } ];
|
||||
services.xserver.monitorSection =
|
||||
|
@ -65,6 +65,7 @@ in rec {
|
||||
mysql51
|
||||
mysql55
|
||||
nginx
|
||||
openjdk
|
||||
openssh
|
||||
php
|
||||
postgresql92
|
||||
|
@ -234,6 +234,7 @@ in rec {
|
||||
# ‘nix-build tests/login.nix -A result’.
|
||||
tests.avahi = callTest tests/avahi.nix {};
|
||||
tests.bittorrent = callTest tests/bittorrent.nix {};
|
||||
tests.blivet = callTest tests/blivet.nix {};
|
||||
tests.containers = callTest tests/containers.nix {};
|
||||
tests.firefox = callTest tests/firefox.nix {};
|
||||
tests.firewall = callTest tests/firewall.nix {};
|
||||
|
85
nixos/tests/blivet.nix
Normal file
85
nixos/tests/blivet.nix
Normal file
@ -0,0 +1,85 @@
|
||||
import ./make-test.nix ({ pkgs, ... }: with pkgs.pythonPackages; rec {
|
||||
name = "blivet";
|
||||
|
||||
machine = {
|
||||
environment.systemPackages = [ pkgs.python blivet mock ];
|
||||
boot.supportedFilesystems = [ "btrfs" "jfs" "reiserfs" "xfs" ];
|
||||
virtualisation.memorySize = 768;
|
||||
};
|
||||
|
||||
debugBlivet = false;
|
||||
debugProgramCalls = false;
|
||||
|
||||
pythonTestRunner = pkgs.writeText "run-blivet-tests.py" ''
|
||||
import sys
|
||||
import logging
|
||||
|
||||
from unittest import TestLoader
|
||||
from unittest.runner import TextTestRunner
|
||||
|
||||
${pkgs.lib.optionalString debugProgramCalls ''
|
||||
blivet_program_log = logging.getLogger("program")
|
||||
blivet_program_log.setLevel(logging.DEBUG)
|
||||
blivet_program_log.addHandler(logging.StreamHandler(sys.stderr))
|
||||
''}
|
||||
|
||||
${pkgs.lib.optionalString debugBlivet ''
|
||||
blivet_log = logging.getLogger("blivet")
|
||||
blivet_log.setLevel(logging.DEBUG)
|
||||
blivet_log.addHandler(logging.StreamHandler(sys.stderr))
|
||||
''}
|
||||
|
||||
runner = TextTestRunner(verbosity=2, failfast=False, buffer=False)
|
||||
result = runner.run(TestLoader().discover('tests/', pattern='*_test.py'))
|
||||
sys.exit(not result.wasSuccessful())
|
||||
'';
|
||||
|
||||
blivetTest = pkgs.writeScript "blivet-test.sh" ''
|
||||
#!${pkgs.stdenv.shell} -e
|
||||
|
||||
# Use the hosts temporary directory, because we have a tmpfs within the VM
|
||||
# and we don't want to increase the memory size of the VM for no reason.
|
||||
mkdir -p /tmp/xchg/bigtmp
|
||||
TMPDIR=/tmp/xchg/bigtmp
|
||||
export TMPDIR
|
||||
|
||||
mkPythonPath() {
|
||||
nix-store -qR "$@" \
|
||||
| sed -e 's|$|/lib/${pkgs.python.libPrefix}/site-packages|'
|
||||
}
|
||||
|
||||
cp -Rd "${blivet.src}/tests" .
|
||||
|
||||
# Skip SELinux tests
|
||||
rm -f tests/formats_test/selinux_test.py
|
||||
|
||||
# Race conditions in growing/shrinking during resync
|
||||
rm -f tests/devicelibs_test/mdraid_*
|
||||
|
||||
# Deactivate small BTRFS device test, because it fails with newer btrfsprogs
|
||||
sed -i -e '/^class *BTRFSAsRootTestCase3(/,/^[^ ]/ {
|
||||
/^class *BTRFSAsRootTestCase3(/d
|
||||
/^$/d
|
||||
/^ /d
|
||||
}' tests/devicelibs_test/btrfs_test.py
|
||||
|
||||
# How on earth can these tests ever work even upstream? O_o
|
||||
sed -i -e '/def testDiskChunk[12]/,/^ *[^ ]/{n; s/^ */&return # /}' \
|
||||
tests/partitioning_test.py
|
||||
|
||||
# fix hardcoded temporary directory
|
||||
sed -i \
|
||||
-e '1i import tempfile' \
|
||||
-e 's|_STORE_FILE_PATH = .*|_STORE_FILE_PATH = tempfile.gettempdir()|' \
|
||||
tests/loopbackedtestcase.py
|
||||
|
||||
PYTHONPATH=".:$(mkPythonPath "${blivet}" "${mock}" | paste -sd :)" \
|
||||
python "${pythonTestRunner}"
|
||||
'';
|
||||
|
||||
testScript = ''
|
||||
$machine->waitForUnit("multi-user.target");
|
||||
$machine->succeed("${blivetTest}");
|
||||
$machine->execute("rm -rf /tmp/xchg/bigtmp");
|
||||
'';
|
||||
})
|
@ -67,7 +67,7 @@ in {
|
||||
|
||||
machine = { config, pkgs, ... }: {
|
||||
environment.systemPackages = [
|
||||
pkgs.pythonPackages.nixpart
|
||||
pkgs.pythonPackages.nixpart0
|
||||
pkgs.file pkgs.btrfsProgs pkgs.xfsprogs pkgs.lvm2
|
||||
];
|
||||
virtualisation.emptyDiskImages = [ 4096 4096 ];
|
||||
@ -209,7 +209,7 @@ in {
|
||||
ensurePartition("swap", "swap");
|
||||
ensurePartition("boot", "f2fs");
|
||||
ensurePartition("root", "f2fs");
|
||||
remoteAndCheck;
|
||||
remountAndCheck;
|
||||
ensureMountPoint("/mnt/boot", "f2fs");
|
||||
};
|
||||
|
||||
|
30
pkgs/applications/audio/ncmpcpp/beta.nix
Normal file
30
pkgs/applications/audio/ncmpcpp/beta.nix
Normal file
@ -0,0 +1,30 @@
|
||||
{ stdenv, fetchurl, ncurses, curl, taglib, fftw, mpd_clientlib, pkgconfig
|
||||
, boost, readline, libiconvOrEmpty }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "0.6_beta5";
|
||||
name = "ncmpcpp-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://ncmpcpp.rybczak.net/stable/ncmpcpp-${version}.tar.bz2";
|
||||
sha256 = "05h4mahnh39y9ab333whsgspj5mnbdkqfssgfi4r0zf1fvjwlwj6";
|
||||
};
|
||||
|
||||
buildInputs = [ ncurses curl taglib fftw mpd_clientlib pkgconfig boost readline ]
|
||||
++ libiconvOrEmpty;
|
||||
|
||||
configureFlags = [
|
||||
"BOOST_LIB_SUFFIX="
|
||||
];
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "Curses-based interface for MPD (music player daemon)";
|
||||
homepage = http://unkart.ovh.org/ncmpcpp/;
|
||||
license = licenses.gpl2Plus;
|
||||
maintainers = with maintainers; [ fpletz ];
|
||||
platforms = platforms.all;
|
||||
};
|
||||
}
|
||||
|
@ -1,18 +1,21 @@
|
||||
{ stdenv, fetchurl, ncurses }:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "bvi-1.3.2";
|
||||
stdenv.mkDerivation rec {
|
||||
name = "bvi-${version}";
|
||||
version = "1.4.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = mirror://sourceforge/bvi/bvi-1.3.2.src.tar.gz;
|
||||
sha256 = "110wxqnyianqamxq4y53drqqxb9vp4k2fcvic45qggvlqkqhlfgz";
|
||||
url = "mirror://sourceforge/bvi/${name}.src.tar.gz";
|
||||
sha256 = "00pq9rv7s8inqxq2m3xshxi58691i3pxw9smibcrgh6768l3qnh1";
|
||||
};
|
||||
|
||||
buildInputs = [ ncurses ];
|
||||
|
||||
meta = {
|
||||
meta = with stdenv.lib; {
|
||||
description = "Hex editor with vim style keybindings";
|
||||
homepage = http://bvi.sourceforge.net/download.html;
|
||||
license = stdenv.lib.licenses.gpl2;
|
||||
license = licenses.gpl2;
|
||||
maintainers = with maintainers; [ pSub ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
|
@ -9,13 +9,13 @@ assert (libXft != null) -> libpng != null; # probably a bug
|
||||
assert stdenv.isDarwin -> libXaw != null; # fails to link otherwise
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "emacs-24.3";
|
||||
name = "emacs-24.4";
|
||||
|
||||
builder = ./builder.sh;
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnu/emacs/${name}.tar.xz";
|
||||
sha256 = "1385qzs3bsa52s5rcncbrkxlydkw0ajzrvfxgv8rws5fx512kakh";
|
||||
sha256 = "1zflm6ac34s6v166p58ilxrxbxjm0q2wfc25f8y0mjml1lbr3qs7";
|
||||
};
|
||||
|
||||
patches = [ ./darwin-new-sections.patch ];
|
||||
@ -35,10 +35,7 @@ stdenv.mkDerivation rec {
|
||||
[ "--with-x-toolkit=lucid" "--with-xft" ]
|
||||
else
|
||||
[ "--with-x=no" "--with-xpm=no" "--with-jpeg=no" "--with-png=no"
|
||||
"--with-gif=no" "--with-tiff=no" ] ) )
|
||||
# On NixOS, help Emacs find `crt*.o'.
|
||||
++ stdenv.lib.optional (stdenv ? glibc)
|
||||
[ "--with-crt-dir=${stdenv.glibc}/lib" ];
|
||||
"--with-gif=no" "--with-tiff=no" ] ) );
|
||||
|
||||
NIX_CFLAGS_COMPILE = stdenv.lib.optionalString (stdenv.isDarwin && withX)
|
||||
"-I${cairo}/include/cairo";
|
||||
|
@ -2,19 +2,19 @@
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
emacsName = "emacs-24.3";
|
||||
name = "${emacsName}-mac-4.8";
|
||||
emacsName = "emacs-24.4";
|
||||
name = "${emacsName}-mac-5.0";
|
||||
|
||||
#builder = ./builder.sh;
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnu/emacs/${emacsName}.tar.xz";
|
||||
sha256 = "1385qzs3bsa52s5rcncbrkxlydkw0ajzrvfxgv8rws5fx512kakh";
|
||||
sha256 = "1zflm6ac34s6v166p58ilxrxbxjm0q2wfc25f8y0mjml1lbr3qs7";
|
||||
};
|
||||
|
||||
macportSrc = fetchurl {
|
||||
url = "ftp://ftp.math.s.chiba-u.ac.jp/emacs/${name}.tar.gz";
|
||||
sha256 = "194y341zrpjp75mc3099kjc0inr1d379wwsnav257bwsc967h8yx";
|
||||
sha256 = "14ipkwmzv0b02sclhgp2xj0cvhl3gk40sc2l21s87621kk640dzv";
|
||||
};
|
||||
|
||||
patches = [ ./darwin-new-sections.patch ];
|
||||
|
29
pkgs/applications/editors/emacs-modes/git-modes/default.nix
Normal file
29
pkgs/applications/editors/emacs-modes/git-modes/default.nix
Normal file
@ -0,0 +1,29 @@
|
||||
{ stdenv, fetchFromGitHub, emacs }:
|
||||
|
||||
let
|
||||
version = "0.15.0-8-g4e10851";
|
||||
in
|
||||
stdenv.mkDerivation {
|
||||
name = "git-modes-${version}";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "magit";
|
||||
repo = "git-modes";
|
||||
rev = "4e10851843145e0c05fc665683d3b487a57ad114";
|
||||
sha256 = "13j794a2p4ql9dnw2z0c1m0ybclxsicbk8cmmfqcchs4ygiyc6ag";
|
||||
};
|
||||
|
||||
buildInputs = [ emacs ];
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/share/emacs/site-lisp
|
||||
mv *.el *.elc $out/share/emacs/site-lisp/
|
||||
'';
|
||||
|
||||
meta = {
|
||||
homepage = "https://github.com/magit/git-modes";
|
||||
description = "Emacs modes for various Git-related files";
|
||||
license = stdenv.lib.licenses.gpl3Plus;
|
||||
maintainers = with stdenv.lib.maintainers; [ simons ];
|
||||
};
|
||||
}
|
@ -1,25 +1,35 @@
|
||||
{ stdenv, fetchurl, emacs, texinfo }:
|
||||
{ stdenv, fetchFromGitHub, emacs, texinfo, gitModes, git }:
|
||||
|
||||
let
|
||||
version = "1.2.0";
|
||||
version = "90141016";
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
name = "magit-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/downloads/magit/magit/${name}.tar.gz";
|
||||
sha256 = "1a8vvilhd5y5vmlpsh194qpl4qlg0a1brylfscxcacpfp0cmhlzg";
|
||||
src = fetchFromGitHub {
|
||||
owner = "magit";
|
||||
repo = "magit";
|
||||
rev = version;
|
||||
sha256 = "11d3gzj0hlb7wqsjzjb0vf9i0ik4xzwdyayjy4hfgx0gjmymkfx3";
|
||||
};
|
||||
|
||||
buildInputs = [ emacs texinfo ];
|
||||
buildInputs = [ emacs texinfo git ];
|
||||
propagatedUserEnvPkgs = [ gitModes ];
|
||||
|
||||
configurePhase = "makeFlagsArray=( PREFIX=$out SYSCONFDIR=$out/etc )";
|
||||
configurePhase = ''
|
||||
makeFlagsArray=(
|
||||
PREFIX="$out"
|
||||
EFLAGS="-L ${gitModes}/share/emacs/site-lisp"
|
||||
lispdir="$out/share/emacs/site-lisp"
|
||||
)
|
||||
'';
|
||||
|
||||
doCheck = true;
|
||||
checkTarget = "test";
|
||||
|
||||
# Add (require 'magit-site-init) to your ~/.emacs file to set-up magit mode.
|
||||
postInstall = ''
|
||||
mv $out/etc/emacs/site-start.d/50magit.el $out/share/emacs/site-lisp/magit-site-init.el
|
||||
sed -i -e 's|50magit|magit-site-init|' $out/share/emacs/site-lisp/magit-site-init.el
|
||||
rmdir $out/etc/emacs/site-start.d $out/etc/emacs $out/etc
|
||||
mkdir -p $out/bin
|
||||
mv "bin/"* $out/bin/
|
||||
'';
|
||||
|
||||
meta = {
|
||||
@ -39,7 +49,6 @@ stdenv.mkDerivation rec {
|
||||
save you from learning Git itself.
|
||||
'';
|
||||
|
||||
platforms = stdenv.lib.platforms.all;
|
||||
maintainers = with stdenv.lib.maintainers; [ simons ];
|
||||
};
|
||||
}
|
||||
|
24
pkgs/applications/editors/leafpad/default.nix
Normal file
24
pkgs/applications/editors/leafpad/default.nix
Normal file
@ -0,0 +1,24 @@
|
||||
{ stdenv, fetchurl, intltool, pkgconfig, gtk }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "0.8.18.1";
|
||||
name = "leafpad-${version}";
|
||||
src = fetchurl {
|
||||
url = "http://download.savannah.gnu.org/releases/leafpad/${name}.tar.gz";
|
||||
sha256 = "0b0az2wvqgvam7w0ns1j8xp2llslm1rx6h7zcsy06a7j0yp257cm";
|
||||
};
|
||||
|
||||
buildInputs = [ intltool pkgconfig gtk ];
|
||||
|
||||
configureFlags = [
|
||||
"--enable-chooser"
|
||||
];
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "A notepad clone for GTK+ 2.0";
|
||||
homepage = http://tarot.freeshell.org/leafpad;
|
||||
platforms = platforms.linux;
|
||||
maintainers = [ maintainers.flosse ];
|
||||
license = licenses.gpl3;
|
||||
};
|
||||
}
|
@ -1,17 +1,16 @@
|
||||
{ stdenv, stdenvAdapters, gccApple, fetchFromGitHub, ncurses, gettext,
|
||||
{ stdenv, fetchFromGitHub, ncurses, gettext,
|
||||
pkgconfig, cscope, python, ruby, tcl, perl, luajit
|
||||
}:
|
||||
|
||||
let inherit (stdenvAdapters.overrideGCC stdenv gccApple) mkDerivation;
|
||||
in mkDerivation rec {
|
||||
stdenv.mkDerivation rec {
|
||||
name = "macvim-${version}";
|
||||
|
||||
version = "7.4.355";
|
||||
version = "7.4.479";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "genoma";
|
||||
repo = "macvim";
|
||||
rev = "c18a61f9723565664ffc2eda9179e96c95860e25";
|
||||
rev = "f9c084b97fa9d5cad2448dfd3eff3d9b7f0fac59";
|
||||
sha256 = "190bngg8m4bwqcia7w24gn7mmqkhk0mavxy81ziwysam1f652ymf";
|
||||
};
|
||||
|
||||
@ -46,6 +45,7 @@ in mkDerivation rec {
|
||||
"--enable-perlinterp=dynamic"
|
||||
"--enable-rubyinterp=dynamic"
|
||||
"--enable-tclinterp=yes"
|
||||
"--without-local-dir"
|
||||
"--with-luajit"
|
||||
"--with-lua-prefix=${luajit}"
|
||||
"--with-ruby-command=${ruby}/bin/ruby"
|
||||
@ -54,6 +54,8 @@ in mkDerivation rec {
|
||||
"--with-compiledby=Nix"
|
||||
];
|
||||
|
||||
makeFlags = ''PREFIX=$(out) CPPFLAGS="-Wno-error"'';
|
||||
|
||||
preConfigure = ''
|
||||
DEV_DIR=$(/usr/bin/xcode-select -print-path)/Platforms/MacOSX.platform/Developer
|
||||
configureFlagsArray+=(
|
||||
|
@ -187,3 +187,36 @@ index bc9f074..9b9125e 100755
|
||||
# Use ||, not &&, to avoid exiting from the if with $? = 1, which
|
||||
# would make configure fail if this is the last instruction.
|
||||
$ac_cs_success || as_fn_exit 1
|
||||
|
||||
diff --git a/src/Makefile b/src/Makefile
|
||||
index 1c4d104..fff2015 100644
|
||||
--- a/src/Makefile
|
||||
+++ b/src/Makefile
|
||||
@@ -1298,7 +1298,7 @@ MACVIMGUI_SRC = gui.c gui_beval.c MacVim/gui_macvim.m MacVim/MMBackend.m \
|
||||
MacVim/MacVim.m
|
||||
MACVIMGUI_OBJ = objects/gui.o objects/gui_beval.o objects/pty.o \
|
||||
objects/gui_macvim.o objects/MMBackend.o objects/MacVim.o
|
||||
-MACVIMGUI_DEFS = -DFEAT_GUI_MACVIM -Wall -Wno-unknown-pragmas -pipe
|
||||
+MACVIMGUI_DEFS = -DMACOS_X_UNIX -DFEAT_GUI_MACVIM -Wall -Wno-unknown-pragmas -pipe
|
||||
MACVIMGUI_IPATH =
|
||||
MACVIMGUI_LIBS_DIR =
|
||||
MACVIMGUI_LIBS1 = -framework Cocoa -framework Carbon
|
||||
|
||||
diff --git a/src/if_python.c b/src/if_python.c
|
||||
index b356bf7..b7bfa78 100644
|
||||
--- a/src/if_python.c
|
||||
+++ b/src/if_python.c
|
||||
@@ -55,11 +55,7 @@
|
||||
|
||||
#define PY_SSIZE_T_CLEAN
|
||||
|
||||
-#ifdef FEAT_GUI_MACVIM
|
||||
-# include <Python/Python.h>
|
||||
-#else
|
||||
-# include <Python.h>
|
||||
-#endif
|
||||
+#include <Python.h>
|
||||
|
||||
#if !defined(PY_VERSION_HEX) || PY_VERSION_HEX < 0x02050000
|
||||
# undef PY_SSIZE_T_CLEAN
|
||||
MACVIMGUI_LIBS1 = -framework Cocoa -framework Carbon
|
||||
|
24
pkgs/applications/editors/yi/yi-custom-cabal/LICENSE
Normal file
24
pkgs/applications/editors/yi/yi-custom-cabal/LICENSE
Normal file
@ -0,0 +1,24 @@
|
||||
This is free and unencumbered software released into the public domain.
|
||||
|
||||
Anyone is free to copy, modify, publish, use, compile, sell, or
|
||||
distribute this software, either in source code form or as a compiled
|
||||
binary, for any purpose, commercial or non-commercial, and by any
|
||||
means.
|
||||
|
||||
In jurisdictions that recognize copyright laws, the author or authors
|
||||
of this software dedicate any and all copyright interest in the
|
||||
software to the public domain. We make this dedication for the benefit
|
||||
of the public at large and to the detriment of our heirs and
|
||||
successors. We intend this dedication to be an overt act of
|
||||
relinquishment in perpetuity of all present and future rights to this
|
||||
software under copyright law.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
|
||||
OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||
OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
For more information, please refer to <http://unlicense.org>
|
17
pkgs/applications/editors/yi/yi-custom-cabal/yi-custom.cabal
Normal file
17
pkgs/applications/editors/yi/yi-custom-cabal/yi-custom.cabal
Normal file
@ -0,0 +1,17 @@
|
||||
name: yi-custom
|
||||
version: 0.0.0.1
|
||||
category: Yi
|
||||
synopsis: Convenience wrapper for nix
|
||||
description: Convenience wrapper for nix
|
||||
license: PublicDomain
|
||||
license-file: LICENSE
|
||||
author: Mateusz Kowalczyk
|
||||
maintainer: fuuzetsu@fuuzetsu.co.uk
|
||||
Cabal-Version: >= 1.10
|
||||
build-type: Simple
|
||||
|
||||
library
|
||||
hs-source-dirs: .
|
||||
default-language: Haskell2010
|
||||
build-depends: base, yi
|
||||
ghc-options: -threaded
|
40
pkgs/applications/editors/yi/yi-custom.nix
Normal file
40
pkgs/applications/editors/yi/yi-custom.nix
Normal file
@ -0,0 +1,40 @@
|
||||
# This is a manually-written expression over an in-tree cabal file.
|
||||
# It's awkward but this way allows the package user to pass in
|
||||
# extraPackages without much extra hassle on their end, similarly how
|
||||
# the XMonad service handles it: the difference is that we don't have
|
||||
# anything like XMONAD_GHC…
|
||||
#
|
||||
# The idea is that the user changes their configs using any libraries
|
||||
# he likes and then builds it using this expression. Once that's done,
|
||||
# ‘reload’ and similar functions should all work as long as the user
|
||||
# doesn't need new libraries at which point they should add them to
|
||||
# extraPackages and rebuild from the expression.
|
||||
{ cabal, yi, extraPackages, makeWrapper, ghcWithPackages }:
|
||||
let
|
||||
w = ghcWithPackages (self: [ yi ] ++ extraPackages self);
|
||||
wrappedGhc = w.override { ignoreCollisions = true; };
|
||||
in
|
||||
cabal.mkDerivation (self: rec {
|
||||
pname = "yi-custom";
|
||||
version = "0.0.0.1";
|
||||
src = ./yi-custom-cabal;
|
||||
isLibrary = true;
|
||||
buildDepends = [ yi ];
|
||||
buildTools = [ makeWrapper ];
|
||||
noHaddock = true;
|
||||
doCheck = false;
|
||||
|
||||
postInstall = ''
|
||||
makeWrapper ${yi}/bin/yi $out/bin/yi \
|
||||
--set NIX_GHC ${wrappedGhc}/bin/ghc \
|
||||
--set NIX_GHC_LIBDIR ${wrappedGhc}/lib/ghc-${self.ghc.version}
|
||||
'';
|
||||
meta = {
|
||||
homepage = "http://haskell.org/haskellwiki/Yi";
|
||||
description = "Wrapper over user-specified Haskell libraries for use in Yi config";
|
||||
license = self.stdenv.lib.licenses.publicDomain;
|
||||
platforms = self.ghc.meta.platforms;
|
||||
maintainers = with self.stdenv.lib.maintainers; [ fuuzetsu ];
|
||||
};
|
||||
|
||||
})
|
@ -1,65 +1,39 @@
|
||||
{ cabal, alex, binary, Cabal, cautiousFile, concreteTyperep
|
||||
, dataDefault, derive, Diff, dlist, dyre, filepath, fingertree
|
||||
, glib, gtk, hashable, hint, HUnit, lens, mtl, pango, parsec
|
||||
, pointedlist, QuickCheck, random, regexBase, regexTdfa, safe
|
||||
, split, tasty, tastyHunit, tastyQuickcheck, time, transformersBase
|
||||
, uniplate, unixCompat, unorderedContainers, utf8String, vty
|
||||
, xdgBasedir
|
||||
, withPango ? true
|
||||
# This file was auto-generated by cabal2nix. Please do NOT edit manually!
|
||||
|
||||
# User may need extra dependencies for their configuration file so we
|
||||
# want to specify it here to have them available when wrapping the
|
||||
# produced binary.
|
||||
, extraDepends ? [ ]
|
||||
{ cabal, binary, Cabal, cautiousFile, dataDefault, derive, dlist
|
||||
, dynamicState, dyre, filepath, glib, gtk, hashable, hint, HUnit
|
||||
, lens, mtl, ooPrototypes, pango, parsec, pointedlist, QuickCheck
|
||||
, random, regexBase, regexTdfa, safe, semigroups, split, tagged
|
||||
, tasty, tastyHunit, tastyQuickcheck, text, time, transformersBase
|
||||
, unixCompat, unorderedContainers, utf8String, vty, wordTrie
|
||||
, xdgBasedir, yiLanguage, yiRope
|
||||
}:
|
||||
|
||||
cabal.mkDerivation (self: {
|
||||
pname = "yi";
|
||||
version = "0.8.2";
|
||||
sha256 = "18rnyswsdzkh0jdcqfg8pr90mpm6xf11siv598svqkxg12d2qql9";
|
||||
version = "0.10.1";
|
||||
sha256 = "1vj4ndp43w7xlji4p2px79a8g90p64g54sr3hx4pzimwrlpmifk8";
|
||||
isLibrary = true;
|
||||
isExecutable = true;
|
||||
buildDepends = [
|
||||
binary Cabal cautiousFile concreteTyperep dataDefault derive Diff
|
||||
dlist dyre filepath fingertree hashable hint lens mtl
|
||||
binary Cabal cautiousFile dataDefault derive dlist dynamicState
|
||||
dyre filepath glib gtk hashable hint lens mtl ooPrototypes pango
|
||||
parsec pointedlist QuickCheck random regexBase regexTdfa safe
|
||||
split time transformersBase uniplate unixCompat unorderedContainers
|
||||
utf8String vty xdgBasedir
|
||||
] ++ (if withPango then [ pango gtk glib ] else [ ]) ++ extraDepends;
|
||||
testDepends = [
|
||||
filepath HUnit QuickCheck tasty tastyHunit tastyQuickcheck
|
||||
semigroups split tagged text time transformersBase unixCompat
|
||||
unorderedContainers utf8String vty wordTrie xdgBasedir yiLanguage
|
||||
yiRope
|
||||
];
|
||||
buildTools = [ alex ];
|
||||
configureFlags = if withPango then "-fpango" else "-f-pango";
|
||||
doCheck = false;
|
||||
|
||||
# https://ghc.haskell.org/trac/ghc/ticket/9170
|
||||
noHaddock = self.ghc.version == "7.6.3";
|
||||
|
||||
# Allows Yi to find the libraries it needs at runtime.
|
||||
postInstall = ''
|
||||
mv $out/bin/yi $out/bin/.yi-wrapped
|
||||
cat - > $out/bin/yi <<EOF
|
||||
#! ${self.stdenv.shell}
|
||||
# Trailing : is necessary for it to pick up Prelude &c.
|
||||
export GHC_PACKAGE_PATH=$(${self.ghc.GHCGetPackages} ${self.ghc.version} \
|
||||
| sed 's/-package-db\ //g' \
|
||||
| sed 's/^\ //g' \
|
||||
| sed 's/\ /:/g')\
|
||||
:$out/lib/ghc-${self.ghc.version}/package.conf.d/yi-$version.installedconf:
|
||||
|
||||
eval exec $out/bin/.yi-wrapped "\$@"
|
||||
EOF
|
||||
chmod +x $out/bin/yi
|
||||
'';
|
||||
|
||||
testDepends = [
|
||||
filepath HUnit lens QuickCheck semigroups tasty tastyHunit
|
||||
tastyQuickcheck text yiLanguage yiRope
|
||||
];
|
||||
configureFlags = "-fpango -fvty";
|
||||
noHaddock = self.stdenv.lib.versionOlder self.ghc.version "7.8";
|
||||
meta = {
|
||||
homepage = "http://haskell.org/haskellwiki/Yi";
|
||||
description = "The Haskell-Scriptable Editor";
|
||||
license = self.stdenv.lib.licenses.gpl2;
|
||||
platforms = self.ghc.meta.platforms;
|
||||
hydraPlatforms = self.stdenv.lib.platforms.none;
|
||||
maintainers = [ self.stdenv.lib.maintainers.fuuzetsu ];
|
||||
broken = true;
|
||||
maintainers = with self.stdenv.lib.maintainers; [ fuuzetsu ];
|
||||
};
|
||||
})
|
||||
|
@ -18,14 +18,14 @@
|
||||
}:
|
||||
|
||||
let
|
||||
version = "6.8.9-0";
|
||||
version = "6.8.9-8";
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
name = "ImageMagick-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://imagemagick/${name}.tar.xz";
|
||||
sha256 = "1lapn2798fkc2wn81slpms5p21kq4dsyg45khsk7n8p69cvrmw2b";
|
||||
sha256 = "1c792hbwi308lm9xkml319xaa4w3bz6hwy6i92jwrm7kqr4h8di7";
|
||||
};
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
@ -20,5 +20,6 @@ stdenv.mkDerivation rec {
|
||||
homepage = "https://github.com/muennich/sxiv";
|
||||
license = stdenv.lib.licenses.gpl2Plus;
|
||||
platforms = stdenv.lib.platforms.linux;
|
||||
maintainers = with stdenv.lib.maintainers; [ fuuzetsu ];
|
||||
};
|
||||
}
|
||||
|
@ -9,11 +9,11 @@
|
||||
with lib;
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "blender-2.72";
|
||||
name = "blender-2.72b";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://download.blender.org/source/${name}.tar.gz";
|
||||
sha256 = "0wydh5bs1pxnx3ya65lfy3val1s8wz027a5kb4va6wg3aqnwlvlv";
|
||||
sha256 = "0ixz8h3c08p4f84x8r85nzddwvc0h5lw1ci8gdg2x3m2mw2cfdj4";
|
||||
};
|
||||
|
||||
buildInputs =
|
||||
|
@ -5,11 +5,11 @@
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "calibre-2.5.0";
|
||||
name = "calibre-2.7.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/calibre/${name}.tar.xz";
|
||||
sha256 = "0zl2rpwn5xdgwm4ffb5pizk3247wfghl8ilz0i80hyp36zzxgl8p";
|
||||
sha256 = "0j8ypdcrxf961093pw3h5bxhd5kd1i6vjnf9cyi55j54j31zy021";
|
||||
};
|
||||
|
||||
inherit python;
|
||||
|
29
pkgs/applications/misc/dmenu2/default.nix
Normal file
29
pkgs/applications/misc/dmenu2/default.nix
Normal file
@ -0,0 +1,29 @@
|
||||
{stdenv, fetchhg, libX11, libXinerama, libXft, zlib}:
|
||||
|
||||
with stdenv.lib;
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "dmenu2";
|
||||
|
||||
src = fetchhg {
|
||||
url = "https://bitbucket.org/melek/dmenu2";
|
||||
rev = "36cb94a16edf928bdaaa636123392517ed469be0";
|
||||
sha256 = "1b17z5ypg6ij7zz3ncp3irc87raccna10y4w490c872a99lp23lv";
|
||||
};
|
||||
|
||||
buildInputs = [ libX11 libXinerama zlib libXft ];
|
||||
|
||||
postPatch = ''
|
||||
sed -ri -e 's!\<(dmenu|stest)\>!'"$out/bin"'/&!g' dmenu_run
|
||||
'';
|
||||
|
||||
preConfigure = [ ''sed -i "s@PREFIX = /usr/local@PREFIX = $out@g" config.mk'' ];
|
||||
|
||||
meta = {
|
||||
description = "A patched fork of the original dmenu - an efficient dynamic menu for X";
|
||||
homepage = https://bitbucket.org/melek/dmenu2;
|
||||
license = stdenv.lib.licenses.mit;
|
||||
maintainers = with maintainers; [ cstrahan ];
|
||||
platforms = with platforms; all;
|
||||
};
|
||||
}
|
@ -1,16 +1,19 @@
|
||||
{ stdenv, fetchurl, pkgconfig, gtk, gettext }:
|
||||
{ stdenv, fetchurl, pkgconfig, gtk, gettext, ncurses }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "girara-0.2.2";
|
||||
name = "girara-0.2.3";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://pwmt.org/projects/girara/download/${name}.tar.gz";
|
||||
sha256 = "0lv6wqhx2avdxj6yx111jfs4j32r0xzmmkhy7pgzxpf73kgxz0k3";
|
||||
sha256 = "1phfmqp8y17zcy9yi6pm2f80x8ldbk60iswpm4bmjz5217jwqzxh";
|
||||
};
|
||||
|
||||
buildInputs = [ pkgconfig gtk gettext ];
|
||||
|
||||
makeFlags = "PREFIX=$(out)";
|
||||
makeFlags = [
|
||||
"PREFIX=$(out)"
|
||||
"TPUT=${ncurses}/bin/tput"
|
||||
];
|
||||
|
||||
meta = {
|
||||
homepage = http://pwmt.org/projects/girara/;
|
||||
|
110
pkgs/applications/misc/k2pdfopt/default.nix
Normal file
110
pkgs/applications/misc/k2pdfopt/default.nix
Normal file
@ -0,0 +1,110 @@
|
||||
# Build procedure lifted from https://aur.archlinux.org/packages/k2/k2pdfopt/PKGBUILD
|
||||
{ stdenv, fetchzip, fetchurl, writeScript, libX11, libXext, autoconf, automake, libtool
|
||||
, leptonica, libpng, libtiff, zlib, openjpeg, freetype, jbig2dec, djvulibre
|
||||
, openssl }:
|
||||
|
||||
let
|
||||
mupdf_src = fetchurl {
|
||||
url = http://www.mupdf.com/downloads/archive/mupdf-1.5-source.tar.gz;
|
||||
sha256 = "0sl47zqf4c9fhs4h5zg046vixjmwgy4vhljhr5g4md733nash7z4";
|
||||
};
|
||||
|
||||
tess_src = fetchurl {
|
||||
url = http://tesseract-ocr.googlecode.com/files/tesseract-ocr-3.02.02.tar.gz;
|
||||
sha256 = "0g81m9y4iydp7kgr56mlkvjdwpp3mb01q385yhdnyvra7z5kkk96";
|
||||
};
|
||||
|
||||
gocr_src = fetchurl {
|
||||
url = http://www-e.uni-magdeburg.de/jschulen/ocr/gocr-0.49.tar.gz;
|
||||
sha256 = "06hpzp7rkkwfr1fvmc8kcfz9v490i9yir7f7imh13gmka0fr6afc";
|
||||
};
|
||||
|
||||
in stdenv.mkDerivation rec {
|
||||
name = "k2pdfopt";
|
||||
src = fetchzip {
|
||||
url = http://www.willus.com/k2pdfopt/src/k2pdfopt_v2.21_src.zip;
|
||||
sha256 = "1vy0yw41z6p95gmivjk4r534zbg0kqap4lr9ps56kvjw51q8r54j";
|
||||
};
|
||||
|
||||
buildInputs = [ libX11 libXext autoconf automake libtool leptonica libpng libtiff zlib
|
||||
openjpeg freetype jbig2dec djvulibre openssl ];
|
||||
NIX_LDFLAGS = "-lX11 -lXext";
|
||||
|
||||
k2_pa = ./k2pdfopt.patch;
|
||||
tess_pa = ./tesseract.patch;
|
||||
|
||||
builder = writeScript "builder.sh" ''
|
||||
. ${stdenv}/setup
|
||||
set -e
|
||||
|
||||
plibs=`pwd`/patched_libraries
|
||||
|
||||
tar zxf ${mupdf_src}
|
||||
cp $src/mupdf_mod/font.c $src/mupdf_mod/string.c mupdf-1.5-source/source/fitz/
|
||||
cp $src/mupdf_mod/pdf-* mupdf-1.5-source/source/pdf
|
||||
|
||||
tar zxf ${tess_src}
|
||||
cp $src/tesseract_mod/dawg.cpp tesseract-ocr/dict
|
||||
cp $src/tesseract_mod/tessdatamanager.cpp tesseract-ocr/ccutil
|
||||
cp $src/tesseract_mod/tessedit.cpp tesseract-ocr/ccmain
|
||||
cp $src/tesseract_mod/tesscapi.cpp tesseract-ocr/api
|
||||
cp $src/include_mod/tesseract.h $src/include_mod/leptonica.h tesseract-ocr/api
|
||||
|
||||
cp -a $src k2pdfopt_v2.21
|
||||
chmod -R +w k2pdfopt_v2.21
|
||||
|
||||
patch -p0 -i $tess_pa
|
||||
patch -p0 -i $k2_pa
|
||||
|
||||
cd tesseract-ocr
|
||||
./autogen.sh
|
||||
substituteInPlace "configure" \
|
||||
--replace 'LIBLEPT_HEADERSDIR="/usr/local/include /usr/include"' \
|
||||
'LIBLEPT_HEADERSDIR=${leptonica}/include'
|
||||
./configure --prefix=$plibs --disable-shared
|
||||
make install
|
||||
|
||||
cd ..
|
||||
tar zxf ${gocr_src}
|
||||
cd gocr-0.49
|
||||
./configure
|
||||
cp src/{gocr.h,pnm.h,unicode.h,list.h} $plibs/include
|
||||
cp include/config.h $plibs/include
|
||||
make libs
|
||||
cp src/libPgm2asc.a $plibs/lib
|
||||
|
||||
cd ../mupdf-1.5-source
|
||||
make prefix=$plibs install
|
||||
install -Dm644 build/debug/libmujs.a $plibs/lib
|
||||
|
||||
cd ../k2pdfopt_v2.21/k2pdfoptlib
|
||||
gcc -Ofast -Wall -c *.c -I ../include_mod/ -I $plibs/include \
|
||||
-I . -I ../willuslib
|
||||
ar rcs libk2pdfopt.a *.o
|
||||
|
||||
cd ../willuslib
|
||||
gcc -Ofast -Wall -c *.c -I ../include_mod/ -I $plibs/include
|
||||
ar rcs libwillus.a *.o
|
||||
|
||||
cd ..
|
||||
gcc -Wall -Ofast -o k2pdfopt.o -c k2pdfopt.c -I k2pdfoptlib/ -I willuslib/ \
|
||||
-I include_mod/ -I $plibs/include
|
||||
g++ -Ofast k2pdfopt.o -o k2pdfopt -I willuslib/ -I k2pdfoptlib/ -I include_mod/ \
|
||||
-I $plibs/include -L $plibs/lib/ \
|
||||
-L willuslib/ -L k2pdfoptlib/ -lk2pdfopt -lwillus -ldjvulibre -lz -lmupdf \
|
||||
-ljbig2dec -ljpeg -lopenjp2 -lpng -lfreetype -lpthread -lmujs \
|
||||
-lPgm2asc -llept -ltesseract -lcrypto
|
||||
|
||||
mkdir -p $out/bin
|
||||
cp k2pdfopt $out/bin
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "K2pdfopt optimizes PDF/DJVU files for mobile e-readers (e.g. the Kindle) and smartphones.";
|
||||
homepage = http://www.willus.com/k2pdfopt;
|
||||
license = licenses.gpl3;
|
||||
platforms = platforms.linux;
|
||||
maintainers = [ maintainers.bosu ];
|
||||
};
|
||||
}
|
||||
|
95
pkgs/applications/misc/k2pdfopt/k2pdfopt.patch
Normal file
95
pkgs/applications/misc/k2pdfopt/k2pdfopt.patch
Normal file
@ -0,0 +1,95 @@
|
||||
diff -aur k2pdfopt_v2.21/willuslib/array.c k2pdfopt_v2.21.new/willuslib/array.c
|
||||
--- k2pdfopt_v2.21/willuslib/array.c 2014-05-23 16:29:58.000000000 -0300
|
||||
+++ k2pdfopt_v2.21.new/willuslib/array.c 2014-07-26 11:35:49.829825567 -0300
|
||||
@@ -1055,7 +1055,7 @@
|
||||
void arrayf_sort(float *a,int n)
|
||||
|
||||
{
|
||||
- sort(a,(long)n);
|
||||
+ willus_sort(a,(long)n);
|
||||
}
|
||||
|
||||
|
||||
diff -aur k2pdfopt_v2.21/willuslib/math.c k2pdfopt_v2.21.new/willuslib/math.c
|
||||
--- k2pdfopt_v2.21/willuslib/math.c 2013-08-15 21:33:50.000000000 -0300
|
||||
+++ k2pdfopt_v2.21.new/willuslib/math.c 2014-07-26 11:36:02.853170659 -0300
|
||||
@@ -532,7 +532,7 @@
|
||||
|
||||
|
||||
|
||||
-void sort(float *x,int n)
|
||||
+void willus_sort(float *x,int n)
|
||||
|
||||
{
|
||||
int top,n1;
|
||||
diff -aur k2pdfopt_v2.21/willuslib/ocrjocr.c k2pdfopt_v2.21.new/willuslib/ocrjocr.c
|
||||
--- k2pdfopt_v2.21/willuslib/ocrjocr.c 2012-11-12 13:09:42.000000000 -0300
|
||||
+++ k2pdfopt_v2.21.new/willuslib/ocrjocr.c 2014-07-26 11:36:46.699837185 -0300
|
||||
@@ -29,6 +29,8 @@
|
||||
#ifdef HAVE_GOCR_LIB
|
||||
#include <gocr.h>
|
||||
|
||||
+job_t *JOB;
|
||||
+
|
||||
/*
|
||||
** bmp8 must be grayscale
|
||||
** (x1,y1) and (x2,y2) from top left of bitmap
|
||||
@@ -66,6 +68,7 @@
|
||||
h=y2-y1+1;
|
||||
dh=h+bw*2;
|
||||
job=&_job;
|
||||
+ JOB=job;
|
||||
job_init(job);
|
||||
job_init_image(job);
|
||||
// willus_mem_alloc_warn((void **)&job->src.p.p,w*h,funcname,10);
|
||||
diff -aur k2pdfopt_v2.21/willuslib/string.c k2pdfopt_v2.21.new/willuslib/string.c
|
||||
--- k2pdfopt_v2.21/willuslib/string.c 2014-02-03 00:37:44.000000000 -0300
|
||||
+++ k2pdfopt_v2.21.new/willuslib/string.c 2014-07-26 11:37:01.766506277 -0300
|
||||
@@ -81,7 +81,7 @@
|
||||
** Returns NULL if EOF, otherwise returns pointer to the string.
|
||||
**
|
||||
*/
|
||||
-char *get_line(char *buf,int max,FILE *f)
|
||||
+char *willus_get_line(char *buf,int max,FILE *f)
|
||||
|
||||
{
|
||||
int i;
|
||||
diff -aur k2pdfopt_v2.21/willuslib/willus.h k2pdfopt_v2.21.new/willuslib/willus.h
|
||||
--- k2pdfopt_v2.21/willuslib/willus.h 2014-07-25 15:03:51.000000000 -0300
|
||||
+++ k2pdfopt_v2.21.new/willuslib/willus.h 2014-07-26 11:37:56.316506038 -0300
|
||||
@@ -214,9 +214,6 @@
|
||||
** CMAKE handles the defines, not this source
|
||||
** (Mod from Dirk Thierbach, 31-Dec-2013)
|
||||
*/
|
||||
-#ifdef USE_CMAKE
|
||||
-#include "config.h"
|
||||
-#else /* USE_CMAKE */
|
||||
|
||||
#ifndef HAVE_Z_LIB
|
||||
#define HAVE_Z_LIB
|
||||
@@ -268,7 +265,6 @@
|
||||
#undef HAVE_GSL_LIB
|
||||
#endif
|
||||
|
||||
-#endif /* USE_CMAKE */
|
||||
/*
|
||||
** Consistency check
|
||||
*/
|
||||
@@ -533,7 +529,7 @@
|
||||
int *n,FILE *err);
|
||||
int readxyz_ex (char *filename,double **x,double **y,double **z,
|
||||
int *n,FILE *err,int ignore_after_semicolon);
|
||||
-void sort (float *x,int n);
|
||||
+void willus_sort (float *x,int n);
|
||||
void sortd (double *x,int n);
|
||||
void sorti (int *x,int n);
|
||||
void sortxy (float *x,float *y,int n);
|
||||
@@ -602,7 +598,7 @@
|
||||
/* string.c */
|
||||
void clean_line (char *buf);
|
||||
void clean_line_end(char *buf);
|
||||
-char *get_line (char *buf,int max,FILE *f);
|
||||
+char *willus_get_line (char *buf,int max,FILE *f);
|
||||
char *get_line_cf (char *buf,int max,FILE *f);
|
||||
int mem_get_line_cf(char *buf,int maxlen,char *cptr,long *cindex,long csize);
|
||||
int in_string (char *buffer,char *pattern);
|
12
pkgs/applications/misc/k2pdfopt/tesseract.patch
Normal file
12
pkgs/applications/misc/k2pdfopt/tesseract.patch
Normal file
@ -0,0 +1,12 @@
|
||||
diff -aur tesseract-ocr/api/Makefile.am tesseract-ocr.new/api/Makefile.am
|
||||
--- tesseract-ocr/api/Makefile.am 2012-10-09 14:18:39.000000000 -0300
|
||||
+++ tesseract-ocr.new/api/Makefile.am 2014-03-20 18:43:13.926030341 -0300
|
||||
@@ -36,7 +36,7 @@
|
||||
if VISIBILITY
|
||||
libtesseract_api_la_CPPFLAGS += -DTESS_EXPORTS
|
||||
endif
|
||||
-libtesseract_api_la_SOURCES = baseapi.cpp capi.cpp
|
||||
+libtesseract_api_la_SOURCES = baseapi.cpp capi.cpp tesscapi.cpp
|
||||
|
||||
lib_LTLIBRARIES += libtesseract.la
|
||||
libtesseract_la_LDFLAGS =
|
39
pkgs/applications/misc/qpdfview/default.nix
Normal file
39
pkgs/applications/misc/qpdfview/default.nix
Normal file
@ -0,0 +1,39 @@
|
||||
{stdenv, fetchurl, qt4, pkgconfig, popplerQt4, djvulibre, libspectre, cups
|
||||
, file, ghostscript
|
||||
}:
|
||||
let
|
||||
s = # Generated upstream information
|
||||
rec {
|
||||
baseName="qpdfview";
|
||||
version="0.4.12";
|
||||
name="${baseName}-${version}";
|
||||
url="https://launchpad.net/qpdfview/trunk/${version}/+download/qpdfview-${version}.tar.gz";
|
||||
sha256="1h6lrrh1vblqkxrd89nmid7d21anyn30iahj24z62yny35lidf0g";
|
||||
};
|
||||
buildInputs = [
|
||||
qt4 popplerQt4 pkgconfig djvulibre libspectre cups file ghostscript
|
||||
];
|
||||
in
|
||||
stdenv.mkDerivation {
|
||||
inherit (s) name version;
|
||||
inherit buildInputs;
|
||||
src = fetchurl {
|
||||
inherit (s) url sha256;
|
||||
};
|
||||
configurePhase = ''
|
||||
qmake *.pro
|
||||
for i in *.pro; do
|
||||
qmake "$i" -o "Makefile.$(basename "$i" .pro)"
|
||||
done
|
||||
sed -e "s@/usr/@$out/@g" -i Makefile*
|
||||
'';
|
||||
meta = {
|
||||
inherit (s) version;
|
||||
description = "A tabbed document viewer";
|
||||
license = stdenv.lib.licenses.gpl2;
|
||||
maintainers = [stdenv.lib.maintainers.raskin];
|
||||
platforms = stdenv.lib.platforms.linux;
|
||||
homepage = "https://launchpad.net/qpdfview";
|
||||
updateWalker = true;
|
||||
};
|
||||
}
|
@ -29,7 +29,7 @@ in stdenv.mkDerivation rec {
|
||||
"-I${dbus_libs}/lib/dbus-1.0/include" ];
|
||||
|
||||
# Fix up python path so the lockfile library is on it.
|
||||
PYTHONPATH = stdenv.lib.makeSearchPath "lib/${pythonFull.python.libPrefix}/site-packages" [
|
||||
PYTHONPATH = stdenv.lib.makeSearchPath "lib/${pythonFull.libPrefix}/site-packages" [
|
||||
pythonPackages.curses pythonPackages.lockfile
|
||||
];
|
||||
|
||||
|
@ -0,0 +1,26 @@
|
||||
{ stdenv, fetchgit }:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "urxvt-perls";
|
||||
|
||||
src = fetchgit {
|
||||
url = "https://github.com/muennich/urxvt-perls";
|
||||
rev = "4dec629b3631297d17855c35be1b723e2d9e7591";
|
||||
sha256 = "c61bc8819b4e6655ed4a3ce3b347cb6dbebcb484d5d3973cbe9aa7f2c98d372f";
|
||||
};
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/lib/urxvt/perl
|
||||
cp clipboard \
|
||||
keyboard-select \
|
||||
url-select \
|
||||
$out/lib/urxvt/perl
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "Perl extensions for the rxvt-unicode terminal emulator";
|
||||
homepage = "https://github.com/muennich/urxvt-perls";
|
||||
license = licenses.gpl2;
|
||||
maintainers = maintainers.abbradar;
|
||||
};
|
||||
}
|
@ -0,0 +1,21 @@
|
||||
{ stdenv, fetchgit }:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "urxvt-tabbedex";
|
||||
|
||||
src = fetchgit {
|
||||
url = "https://github.com/mina86/urxvt-tabbedex";
|
||||
rev = "54c8d6beb4d65278ed6db24693ca56e1ee65bb42";
|
||||
sha256 = "f8734ee289e1cfc517d0699627191c98d32ae3549e0f1935af2a5ccb86d4dc1e";
|
||||
};
|
||||
|
||||
installPhase = ''
|
||||
install -D tabbedex $out/lib/urxvt/perl/tabbedex
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "Tabbed plugin for rxvt-unicode with many enhancements (mina86's fork)";
|
||||
homepage = "https://github.com/mina86/urxvt-tabbedex";
|
||||
maintainers = maintainers.abbradar;
|
||||
};
|
||||
}
|
26
pkgs/applications/misc/rxvt_unicode/wrapper.nix
Normal file
26
pkgs/applications/misc/rxvt_unicode/wrapper.nix
Normal file
@ -0,0 +1,26 @@
|
||||
{ stdenv, buildEnv, rxvt_unicode, makeWrapper, plugins }:
|
||||
|
||||
let
|
||||
rxvt = rxvt_unicode.override {
|
||||
perlSupport = true;
|
||||
};
|
||||
|
||||
drv = buildEnv {
|
||||
name = "${rxvt.name}-with-plugins";
|
||||
|
||||
paths = [ rxvt ] ++ plugins;
|
||||
|
||||
postBuild = ''
|
||||
# TODO: This could be avoided if buildEnv could be forced to create all directories
|
||||
if [ -L $out/bin ]; then
|
||||
rm $out/bin
|
||||
mkdir $out/bin
|
||||
for i in ${rxvt}/bin/*; do
|
||||
ln -s $i $out/bin
|
||||
done
|
||||
fi
|
||||
wrapProgram $out/bin/urxvt \
|
||||
--suffix-each URXVT_PERL_LIB ':' "$out/lib/urxvt/perl"
|
||||
'';
|
||||
};
|
||||
in stdenv.lib.overrideDerivation drv (x : { buildInputs = x.buildInputs ++ [ makeWrapper ]; })
|
@ -2,15 +2,15 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "termite-${version}";
|
||||
version = "v7";
|
||||
version = "8";
|
||||
|
||||
src = fetchgit {
|
||||
url = "https://github.com/thestinger/termite";
|
||||
rev = "f0ff025c1bb6a1e3fd83072f00c2dc42a0701f46";
|
||||
sha256 = "057yzlqvp84fkmhn4bz9071glj4rh4187xhg48cdppf2w6phcbxp";
|
||||
url = "https://github.com/thestinger/termite.git";
|
||||
rev = "05f3bbf626245a344eb74859ef2aa49f715ebd55";
|
||||
sha256 = "01dfg4zg7sgw0cbh0j9sbwdvn43rw7xfcnijfh1dhd6n5yx00b18";
|
||||
};
|
||||
|
||||
makeFlags = "VERSION=${version}";
|
||||
makeFlags = "VERSION=v${version}";
|
||||
|
||||
buildInputs = [pkgconfig vte gtk ncurses];
|
||||
|
||||
|
@ -1,17 +1,22 @@
|
||||
{ stdenv, fetchurl, pkgconfig, gtk, girara, gettext, docutils, file, makeWrapper, zathura_icon }:
|
||||
{ stdenv, fetchurl, pkgconfig, gtk, girara, ncurses, gettext, docutils, file, makeWrapper, zathura_icon }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "0.2.9";
|
||||
version = "0.3.1";
|
||||
name = "zathura-core-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://pwmt.org/projects/zathura/download/zathura-${version}.tar.gz";
|
||||
sha256 = "17z05skjk95115ajp6459k1djadza1w8kck7jn1qnd697r01s1rc";
|
||||
sha256 = "1wwjj7vnzpkvn83674mapapvl2qsn7y44w17lq63283j1lic00mm";
|
||||
};
|
||||
|
||||
buildInputs = [ pkgconfig file gtk girara gettext makeWrapper ];
|
||||
|
||||
makeFlags = [ "PREFIX=$(out)" "RSTTOMAN=${docutils}/bin/rst2man.py" "VERBOSE=1" ];
|
||||
makeFlags = [
|
||||
"PREFIX=$(out)"
|
||||
"RSTTOMAN=${docutils}/bin/rst2man.py"
|
||||
"VERBOSE=1"
|
||||
"TPUT=${ncurses}/bin/tput"
|
||||
];
|
||||
|
||||
postInstall = ''
|
||||
wrapProgram "$out/bin/zathura" \
|
||||
|
@ -1,7 +1,7 @@
|
||||
{ callPackage, pkgs, fetchurl, useMupdf }:
|
||||
{ callPackage, pkgs, fetchurl, stdenv, useMupdf }:
|
||||
|
||||
rec {
|
||||
inherit (pkgs) stdenv;
|
||||
inherit stdenv;
|
||||
|
||||
icon = ./icon.xpm;
|
||||
|
||||
|
@ -1,11 +1,11 @@
|
||||
{ stdenv, fetchurl, pkgconfig, gtk, zathura_core, girara, djvulibre, gettext }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "zathura-djvu-0.2.3";
|
||||
name = "zathura-djvu-0.2.4";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://pwmt.org/projects/zathura/plugins/download/${name}.tar.gz";
|
||||
sha256 = "12gd8kb0al5mknh4rlvxzgzwz3vhjggqjh8ws27phaq14paq4vn1";
|
||||
sha256 = "1g1lafmrjbx0xv7fljdmyqxx0k334sq4q6jy4a0q5xfrgz0bh45c";
|
||||
};
|
||||
|
||||
buildInputs = [ pkgconfig djvulibre gettext zathura_core gtk girara ];
|
||||
|
@ -1,10 +1,10 @@
|
||||
--- zathura-pdf-mupdf-0.2.6/config.mk
|
||||
+++ zathura-pdf-mupdf-0.2.6/config.mk
|
||||
--- zathura-pdf-mupdf-0.2.7/config.mk
|
||||
+++ zathura-pdf-mupdf-0.2.7/config.mk
|
||||
@@ -32,10 +32,11 @@
|
||||
OPENSSL_INC ?= $(shell pkg-config --cflags libcrypto)
|
||||
OPENSSL_LIB ?= $(shell pkg-config --libs libcrypto)
|
||||
|
||||
-MUPDF_LIB ?= -lmupdf -lmupdf-js-none
|
||||
-MUPDF_LIB ?= -lmupdf -lmujs
|
||||
+MUPDF_INC ?= $(shell pkg-config --cflags mupdf)
|
||||
+MUPDF_LIB ?= $(shell pkg-config --libs mupdf)
|
||||
|
||||
|
@ -1,12 +1,12 @@
|
||||
{ stdenv, fetchurl, pkgconfig, zathura_core, gtk, girara, mupdf, openssl, openjpeg, libjpeg, jbig2dec }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "0.2.6";
|
||||
version = "0.2.7";
|
||||
name = "zathura-pdf-mupdf-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://pwmt.org/projects/zathura/plugins/download/${name}.tar.gz";
|
||||
sha256 = "5df94b6f906008b5f3bca770a552da6d2917d6b8d3e4b3049cb7001302041b20";
|
||||
sha256 = "0gr5kkk75hn7sz9kmzynhhcdd9xb9sz5gdb8p1iz9g0fjhskyd5i";
|
||||
};
|
||||
|
||||
buildInputs = [ pkgconfig zathura_core gtk girara openssl mupdf openjpeg libjpeg jbig2dec ];
|
||||
|
@ -1,12 +1,12 @@
|
||||
{ stdenv, fetchgit, unzip, xulrunner, makeWrapper }:
|
||||
{ stdenv, fetchgit, unzip, firefox, makeWrapper }:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "conkeror-1.0pre-20140616";
|
||||
|
||||
src = fetchgit {
|
||||
url = git://repo.or.cz/conkeror.git;
|
||||
rev = "8a26fff5896a3360549e2adfbf06b1d57e909266";
|
||||
sha256 = "56f1c71ca1753a63d7599d3e8bf52277711b2693e7709ed7c146f34940441cb4";
|
||||
rev = "98e89c7e5ff3a1069a0984338da01273cdb189a2";
|
||||
sha256 = "284ba966efebfa0aaa768abc1a4f901e2ecf5db9d0391d904a49118b0b94fcd7";
|
||||
};
|
||||
|
||||
buildInputs = [ unzip makeWrapper ];
|
||||
@ -15,8 +15,8 @@ stdenv.mkDerivation {
|
||||
mkdir -p $out/libexec/conkeror
|
||||
cp -r * $out/libexec/conkeror
|
||||
|
||||
makeWrapper ${xulrunner}/bin/xulrunner $out/bin/conkeror \
|
||||
--add-flags $out/libexec/conkeror/application.ini
|
||||
makeWrapper ${firefox}/bin/firefox $out/bin/conkeror \
|
||||
--add-flags "-app $out/libexec/conkeror/application.ini"
|
||||
'';
|
||||
|
||||
meta = {
|
||||
|
@ -36,7 +36,7 @@
|
||||
|
||||
let
|
||||
# -> http://get.adobe.com/flashplayer/
|
||||
version = "11.2.202.406";
|
||||
version = "11.2.202.411";
|
||||
|
||||
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 = "05akcw89kz0cnhan6wp72banz2asmvqfhb2cw1krn66qgd7bl0x0";
|
||||
sha256 = "1983rj824bhzk48yhgminsiil778vwq0217hfrhbmymhrq3p7gzd";
|
||||
}
|
||||
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 = "10f3842vi80kszj42f4c8sw7plrmvsin5k860cqvlzgdhndz8i4b";
|
||||
sha256 = "1bxp94s63i3136pjxgcm8106mqzaj4h096mkf7iq6ddkcvi0cxzn";
|
||||
}
|
||||
else throw "Flash Player is not supported on this platform";
|
||||
|
||||
|
@ -0,0 +1,27 @@
|
||||
{ stdenv, fetchurl, pythonPackages, pyqt4, cython, libvncserver, zlib, twisted, gnutls }:
|
||||
|
||||
pythonPackages.buildPythonPackage rec {
|
||||
name = "blink-${version}";
|
||||
version = "0.9.1";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://download.ag-projects.com/BlinkQt/${name}.tar.gz";
|
||||
sha256 = "f578e5186893c3488e7773fbb775028ae54540433a0c51aefa5af983ca2bfdae";
|
||||
};
|
||||
|
||||
patches = [ ./pythonpath.patch ];
|
||||
|
||||
propagatedBuildInputs = [ pyqt4 pythonPackages.cjson pythonPackages.sipsimple twisted ];
|
||||
|
||||
buildInputs = [ cython zlib libvncserver ];
|
||||
|
||||
postInstall = ''
|
||||
wrapProgram $out/bin/blink \
|
||||
--prefix LD_LIBRARY_PATH : ${gnutls}/lib
|
||||
'';
|
||||
|
||||
meta = {
|
||||
homepage = http://icanblink.com/;
|
||||
description = "A state of the art, easy to use SIP client";
|
||||
};
|
||||
}
|
@ -0,0 +1,12 @@
|
||||
diff --git a/blink/resources.py b/blink/resources.py
|
||||
index 524d9e5..c271887 100644
|
||||
--- a/blink/resources.py
|
||||
+++ b/blink/resources.py
|
||||
@@ -64,6 +64,7 @@ class Resources(object):
|
||||
if script == '':
|
||||
application_directory = os.path.realpath(script) # executed in interactive interpreter
|
||||
else:
|
||||
+ script = os.path.join(sys.path[0], script)
|
||||
binary_directory = os.path.dirname(os.path.realpath(script))
|
||||
if os.path.basename(binary_directory) == 'bin':
|
||||
application_directory = os.path.dirname(binary_directory)
|
@ -0,0 +1,20 @@
|
||||
diff --git a/libpurple/plugin.c b/libpurple/plugin.c
|
||||
index 4f2b402..fda9add 100644
|
||||
--- a/libpurple/plugin.c
|
||||
+++ b/libpurple/plugin.c
|
||||
@@ -1181,8 +1181,15 @@ purple_plugins_get_handle(void) {
|
||||
void
|
||||
purple_plugins_init(void) {
|
||||
void *handle = purple_plugins_get_handle();
|
||||
+ gchar **paths, **p;
|
||||
|
||||
purple_plugins_add_search_path(LIBDIR);
|
||||
+ paths = g_strsplit(g_getenv("PURPLE_PLUGIN_PATH"), ":", -1);
|
||||
+ if (paths) {
|
||||
+ for (p = paths; *p; ++p)
|
||||
+ if (**p) purple_plugins_add_search_path(*p);
|
||||
+ }
|
||||
+ g_strfreev(paths);
|
||||
|
||||
purple_signal_register(handle, "plugin-load",
|
||||
purple_marshal_VOID__POINTER,
|
@ -20,11 +20,14 @@
|
||||
, libgcrypt ? null
|
||||
} :
|
||||
|
||||
# FIXME: clean the mess around choosing the SSL library (nss by default)
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "pidgin-2.10.9";
|
||||
majorVersion = "2";
|
||||
name = "pidgin-${majorVersion}.10.10";
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/pidgin/${name}.tar.bz2";
|
||||
sha256 = "06gka47myl9f5x0flkq74ml75akkf28rx9sl8pm3wqkzazc2wdnw";
|
||||
sha256 = "0bc2bk2g3w90mpz9sn9j95c71z4i2i3wxaqa2zpmmixf5r8rasyw";
|
||||
};
|
||||
|
||||
inherit nss ncurses;
|
||||
@ -46,7 +49,7 @@ stdenv.mkDerivation rec {
|
||||
pkgconfig gtk perl perlXMLParser gettext
|
||||
];
|
||||
|
||||
patches = [./pidgin-makefile.patch ];
|
||||
patches = [./pidgin-makefile.patch ./add-search-path.patch ];
|
||||
|
||||
configureFlags="--with-nspr-includes=${nspr}/include/nspr --with-nspr-libs=${nspr}/lib --with-nss-includes=${nss}/include/nss --with-nss-libs=${nss}/lib --with-ncurses-headers=${ncurses}/include --disable-meanwhile --disable-nm --disable-tcl"
|
||||
+ (lib.optionalString (gnutls != null) " --enable-gnutls=yes --enable-nss=no")
|
||||
|
@ -0,0 +1,21 @@
|
||||
{ stdenv, buildEnv, pidgin, makeWrapper, plugins }:
|
||||
|
||||
let drv = buildEnv {
|
||||
name = "${pidgin.name}-with-plugins";
|
||||
|
||||
paths = [ pidgin ] ++ plugins;
|
||||
|
||||
postBuild = ''
|
||||
# TODO: This could be avoided if buildEnv could be forced to create all directories
|
||||
if [ -L $out/bin ]; then
|
||||
rm $out/bin
|
||||
mkdir $out/bin
|
||||
for i in ${pidgin}/bin/*; do
|
||||
ln -s $i $out/bin
|
||||
done
|
||||
fi
|
||||
wrapProgram $out/bin/pidgin \
|
||||
--suffix-each PURPLE_PLUGIN_PATH ':' "$out/lib/purple-${pidgin.majorVersion} $out/lib/pidgin"
|
||||
'';
|
||||
};
|
||||
in stdenv.lib.overrideDerivation drv (x : { buildInputs = x.buildInputs ++ [ makeWrapper ]; })
|
@ -1,12 +1,12 @@
|
||||
{ stdenv, fetchurl, unzip, xulrunner, makeWrapper }:
|
||||
{ stdenv, fetchurl, unzip, firefox, makeWrapper }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "chatzilla-0.9.90.1";
|
||||
name = "chatzilla-0.9.91";
|
||||
|
||||
src = fetchurl {
|
||||
# Obtained from http://chatzilla.rdmsoft.com/xulrunner/.
|
||||
url = "http://chatzilla.rdmsoft.com/xulrunner/download/${name}.en-US.xulapp";
|
||||
sha256 = "0z38jig91h10cb14rvs30rpg2pgn3v890nyxyy8lxzbv5ncxmngw";
|
||||
sha256 = "1bmjw2wvp8gh7fdl8czkxc55iari6dy672446hps20xixrh8hl8r";
|
||||
};
|
||||
|
||||
buildInputs = [ unzip makeWrapper ];
|
||||
@ -15,8 +15,8 @@ stdenv.mkDerivation rec {
|
||||
mkdir -p $out/libexec/chatzilla
|
||||
unzip $src -d $out/libexec/chatzilla
|
||||
|
||||
makeWrapper ${xulrunner}/bin/xulrunner $out/bin/chatzilla \
|
||||
--add-flags $out/libexec/chatzilla/application.ini
|
||||
makeWrapper ${firefox}/bin/firefox $out/bin/chatzilla \
|
||||
--add-flags "-app $out/libexec/chatzilla/application.ini"
|
||||
|
||||
sed -i $out/libexec/chatzilla/application.ini -e 's/.*MaxVersion.*/MaxVersion=99.*/'
|
||||
'';
|
||||
|
@ -12,12 +12,12 @@ let
|
||||
|
||||
in with stdenv; mkDerivation rec {
|
||||
|
||||
version = "0.10.0";
|
||||
version = "0.10.1";
|
||||
name = "quassel${tag}-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://quassel-irc.org/pub/quassel-${version}.tar.bz2";
|
||||
sha256 = "08vwxkwnzlgnxn0wi6ga9fk8qgc6nklb236hsfnr5ad37bi8q8k8";
|
||||
sha256 = "106zjn705vyh0msqwg3v4dhaahffhkn1bmfsljdz57jd539bf5qd";
|
||||
};
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
@ -1,60 +1,24 @@
|
||||
{ fetchurl, stdenv, bash, emacs, gdb, glib, gmime, gnupg,
|
||||
{ fetchurl, stdenv, bash, emacs, fixDarwinDylibNames,
|
||||
gdb, glib, gmime, gnupg,
|
||||
pkgconfig, talloc, xapian
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "notmuch-0.18.1";
|
||||
name = "notmuch-0.18.2";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://notmuchmail.org/releases/${name}.tar.gz";
|
||||
sha256 = "1pdp9l7yv71d3fjb30qyccva8h03hvg88q4a00yi50v2j70kvmgj";
|
||||
sha256 = "175wzrw1mfpl4h72n9ims66zn5l34zn2dn857vraj2i5w7z7p7z9";
|
||||
};
|
||||
|
||||
buildInputs = [ bash emacs gdb glib gmime gnupg pkgconfig talloc xapian ];
|
||||
buildInputs = [ bash emacs gdb glib gmime gnupg pkgconfig talloc xapian ]
|
||||
++ stdenv.lib.optionals stdenv.isDarwin [ fixDarwinDylibNames ];
|
||||
|
||||
patchPhase = ''
|
||||
(cd test && for prg in \
|
||||
aggregate-results.sh \
|
||||
argument-parsing \
|
||||
atomicity \
|
||||
author-order \
|
||||
basic \
|
||||
crypto \
|
||||
count \
|
||||
dump-restore \
|
||||
emacs \
|
||||
emacs-large-search-buffer \
|
||||
encoding \
|
||||
from-guessing \
|
||||
help-test \
|
||||
hooks \
|
||||
json \
|
||||
long-id \
|
||||
maildir-sync \
|
||||
multipart \
|
||||
new \
|
||||
notmuch-test \
|
||||
python \
|
||||
raw \
|
||||
reply \
|
||||
search \
|
||||
search-by-folder \
|
||||
search-insufficient-from-quoting \
|
||||
search-folder-coherence \
|
||||
search-limiting \
|
||||
search-output \
|
||||
search-position-overlap-bug \
|
||||
symbol-hiding \
|
||||
tagging \
|
||||
test-lib.sh \
|
||||
test-verbose \
|
||||
thread-naming \
|
||||
thread-order \
|
||||
uuencode \
|
||||
;do
|
||||
substituteInPlace "$prg" \
|
||||
--replace "#!/usr/bin/env bash" "#!${bash}/bin/bash"
|
||||
done)
|
||||
find test -type f -exec \
|
||||
sed -i \
|
||||
"1s_#!/usr/bin/env bash_#!${bash}/bin/bash_" \
|
||||
"{}" ";"
|
||||
|
||||
for src in \
|
||||
crypto.c \
|
||||
@ -65,6 +29,16 @@ stdenv.mkDerivation rec {
|
||||
done
|
||||
'';
|
||||
|
||||
preFixup = if stdenv.isDarwin then
|
||||
''
|
||||
prg="$out/bin/notmuch"
|
||||
target="libnotmuch.3.dylib"
|
||||
echo "$prg: fixing link to $target"
|
||||
install_name_tool -change "$target" "$out/lib/$target" "$prg"
|
||||
''
|
||||
else
|
||||
"";
|
||||
|
||||
# XXX: emacs tests broken
|
||||
doCheck = false;
|
||||
checkTarget = "test";
|
||||
|
@ -6,14 +6,14 @@
|
||||
}:
|
||||
|
||||
let pname = "liferea";
|
||||
version = "1.10.11";
|
||||
version = "1.10.12";
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
name = "${pname}-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/lwindolf/${pname}/releases/download/v${version}/${name}.tar.bz2";
|
||||
sha256 = "0mf5mpdj60j8if4qi5656l4pzhgwzhshf31yp0h53l1j442v109a";
|
||||
sha256 = "0c046r3cgf2adcjkgcny1gf2yj3hs0fhrc1zmcz2ja7grcbx46si";
|
||||
};
|
||||
|
||||
buildInputs = with gst_all_1; [
|
||||
|
@ -1,77 +1,42 @@
|
||||
{ stdenv
|
||||
, fetchgit
|
||||
, cmake
|
||||
, openssl
|
||||
, printerSupport ? true, cups
|
||||
, pkgconfig
|
||||
, zlib
|
||||
, libX11
|
||||
, libXcursor
|
||||
, libXdamage
|
||||
, libXext
|
||||
, alsaLib
|
||||
, ffmpeg
|
||||
, libxkbfile
|
||||
#, xmlto, docbook_xml_dtd_412, docbook_xml_xslt
|
||||
, libXinerama
|
||||
#, directfb
|
||||
#, cunit
|
||||
, libXv
|
||||
, pulseaudioSupport ? true, pulseaudio
|
||||
{ stdenv, fetchFromGitHub, cmake, pkgconfig, openssl, zlib, libX11, libXcursor
|
||||
, libXdamage, libXext, glib, alsaLib, ffmpeg, libxkbfile, libXinerama, libXv
|
||||
, pulseaudio ? null, cups ? null, pcsclite ? null
|
||||
}:
|
||||
|
||||
assert printerSupport -> cups != null;
|
||||
|
||||
let rev = "ec6effcb1e7759551cf31f5b18d768afc67db97d"; in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "freerdp-1.1pre-${stdenv.lib.strings.substring 0 7 rev}";
|
||||
name = "freerdp-1.2.0-beta1";
|
||||
|
||||
src = fetchgit {
|
||||
url = git://github.com/FreeRDP/FreeRDP.git;
|
||||
inherit rev;
|
||||
sha256 = "4e5af9a6769c4b34c6b75dffe83a385d1d86068c523ea9f62fabc651a2958455";
|
||||
src = fetchFromGitHub {
|
||||
owner = "FreeRDP";
|
||||
repo = "FreeRDP";
|
||||
rev = "1.2.0-beta1+android7";
|
||||
sha256 = "08nn18jydblrif1qs92pakzd3ww7inr0i378ssn1bjp09lm1bkk0";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
cmake
|
||||
openssl
|
||||
pkgconfig
|
||||
zlib
|
||||
libX11
|
||||
libXcursor
|
||||
libXdamage
|
||||
libXext
|
||||
# directfb
|
||||
# cunit
|
||||
alsaLib
|
||||
ffmpeg
|
||||
libxkbfile
|
||||
# xmlto docbook_xml_dtd_412 docbook_xml_xslt
|
||||
libXinerama
|
||||
libXv
|
||||
] ++ stdenv.lib.optional printerSupport cups;
|
||||
cmake pkgconfig openssl zlib libX11 libXcursor libXdamage libXext glib
|
||||
alsaLib ffmpeg libxkbfile libXinerama libXv cups pulseaudio pcsclite
|
||||
];
|
||||
|
||||
doCheck = false;
|
||||
|
||||
checkPhase = ''LD_LIBRARY_PATH="libfreerdp-cache:libfreerdp-chanman:libfreerdp-common:libfreerdp-core:libfreerdp-gdi:libfreerdp-kbd:libfreerdp-rail:libfreerdp-rfx:libfreerdp-utils" cunit/test_freerdp'';
|
||||
cmakeFlags = [
|
||||
"-DCMAKE_INSTALL_LIBDIR=lib"
|
||||
"-DWITH_CUNIT=OFF"
|
||||
] ++ stdenv.lib.optional (pulseaudio != null) "-DWITH_PULSE=ON"
|
||||
++ stdenv.lib.optional (cups != null) "-DWITH_CUPS=ON"
|
||||
++ stdenv.lib.optional (pcsclite != null) "-DWITH_PCSC=ON";
|
||||
|
||||
cmakeFlags = [ "-DWITH_DIRECTFB=OFF" "-DWITH_CUNIT=OFF" "-DWITH_MANPAGES=OFF"
|
||||
] ++ stdenv.lib.optional pulseaudioSupport "-DWITH_PULSEAUDIO=ON";
|
||||
|
||||
meta = {
|
||||
meta = with stdenv.lib; {
|
||||
description = "A Remote Desktop Protocol Client";
|
||||
|
||||
longDescription = ''
|
||||
FreeRDP is a client-side implementation of the Remote Desktop Protocol (RDP)
|
||||
following the Microsoft Open Specifications.
|
||||
'';
|
||||
|
||||
homepage = http://www.freerdp.com/;
|
||||
|
||||
license = "free-non-copyleft";
|
||||
|
||||
broken = true; # fails to build
|
||||
license = licenses.asl20;
|
||||
maintainers = with maintainers; [ wkennington ];
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
}
|
||||
|
||||
|
@ -10,6 +10,8 @@ stdenv.mkDerivation (rec {
|
||||
sha256 = "0y0s0qjfsflp4drcn75ykx6as7mn13092bcvlp2ibhilkpa27gzv";
|
||||
};
|
||||
|
||||
patches = [ ./enable_windows_key.patch ];
|
||||
|
||||
buildInputs = [openssl libX11];
|
||||
|
||||
configureFlags = [
|
||||
|
@ -0,0 +1,29 @@
|
||||
http://sourceforge.net/p/rdesktop/code/1816/
|
||||
Fix constant naming and enabled windowskey by default.
|
||||
|
||||
Index: trunk/rdesktop.c
|
||||
===================================================================
|
||||
--- trunk/rdesktop.c (revision 1815)
|
||||
+++ trunk/rdesktop.c (revision 1816)
|
||||
@@ -554,7 +554,7 @@
|
||||
act.sa_flags = 0;
|
||||
sigaction(SIGPIPE, &act, NULL);
|
||||
|
||||
- flags = RDP_LOGON_NORMAL;
|
||||
+ flags = RDP_LOGON_NORMAL | RDP_LOGON_ENABLEWINDOWSKEY;
|
||||
prompt_password = False;
|
||||
g_seamless_spawn_cmd[0] = domain[0] = g_password[0] = shell[0] = directory[0] = 0;
|
||||
g_embed_wnd = 0;
|
||||
Index: trunk/constants.h
|
||||
===================================================================
|
||||
--- trunk/constants.h (revision 1815)
|
||||
+++ trunk/constants.h (revision 1816)
|
||||
@@ -321,7 +321,7 @@
|
||||
#define RDP_LOGON_AUTO 0x0008
|
||||
#define RDP_LOGON_NORMAL 0x0033
|
||||
#define RDP_LOGON_COMPRESSION 0x0080 /* mppc compression with 8kB histroy buffer */
|
||||
-#define RDP_LOGON_BLOB 0x0100
|
||||
+#define RDP_LOGON_ENABLEWINDOWSKEY 0x0100
|
||||
#define RDP_LOGON_COMPRESSION2 0x0200 /* rdp5 mppc compression with 64kB history buffer */
|
||||
#define RDP_LOGON_LEAVE_AUDIO 0x2000
|
||||
#define RDP_LOGON_PASSWORD_IS_SC_PIN 0x40000
|
47
pkgs/applications/networking/remote/teamviewer/9.nix
Normal file
47
pkgs/applications/networking/remote/teamviewer/9.nix
Normal file
@ -0,0 +1,47 @@
|
||||
{ stdenv, fetchurl, libX11, libXtst, libXext, libXdamage, libXfixes, wineUnstable, makeWrapper, libXau
|
||||
, bash, patchelf }:
|
||||
|
||||
let
|
||||
topath = "${wineUnstable}/bin";
|
||||
|
||||
toldpath = stdenv.lib.concatStringsSep ":" (map (x: "${x}/lib")
|
||||
[ stdenv.gcc.gcc libX11 libXtst libXext libXdamage libXfixes wineUnstable ]);
|
||||
in
|
||||
stdenv.mkDerivation {
|
||||
name = "teamviewer-9.0.32150";
|
||||
src = fetchurl {
|
||||
url = "http://download.teamviewer.com/download/version_9x/teamviewer_linux_x64.deb";
|
||||
sha256 = "0wpwbx0xzn3vlzavszxhfvfcaj3pijlpwvlz5m7w19mb6cky3q13";
|
||||
};
|
||||
|
||||
buildInputs = [ makeWrapper patchelf ];
|
||||
|
||||
unpackPhase = ''
|
||||
ar x $src
|
||||
tar xf data.tar.gz
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/share/teamviewer9 $out/bin
|
||||
cp -a opt/teamviewer9/* $out/share/teamviewer9
|
||||
rm -R $out/share/teamviewer9/tv_bin/wine/{bin,lib,share}
|
||||
|
||||
cat > $out/bin/teamviewer << EOF
|
||||
#!${bash}/bin/sh
|
||||
export LD_LIBRARY_PATH=${toldpath}\''${LD_LIBRARY_PATH:+:\$LD_LIBRARY_PATH}
|
||||
export PATH=${topath}\''${PATH:+:\$PATH}
|
||||
$out/share/teamviewer9/tv_bin/script/teamviewer "\$@"
|
||||
EOF
|
||||
chmod +x $out/bin/teamviewer
|
||||
|
||||
patchelf --set-rpath "${stdenv.gcc.gcc}/lib64:${stdenv.gcc.gcc}/lib:${libX11}/lib:${libXext}/lib:${libXau}/lib:${libXdamage}/lib:${libXfixes}/lib" $out/share/teamviewer9/tv_bin/teamviewerd
|
||||
patchelf --set-interpreter "$(cat $NIX_GCC/nix-support/dynamic-linker)" $out/share/teamviewer9/tv_bin/teamviewerd
|
||||
ln -s $out/share/teamviewer9/tv_bin/teamviewerd $out/bin/
|
||||
'';
|
||||
|
||||
meta = {
|
||||
homepage = "http://www.teamviewer.com";
|
||||
license = stdenv.lib.licenses.unfree;
|
||||
description = "Desktop sharing application, providing remote support and online meetings";
|
||||
};
|
||||
}
|
@ -3,7 +3,7 @@
|
||||
assert (stdenv.system == "x86_64-linux" || stdenv.system == "i686-linux");
|
||||
|
||||
let
|
||||
version = "4.0.22";
|
||||
version = "4.0.23";
|
||||
arch = if stdenv.system == "x86_64-linux"
|
||||
then "linux-x86_64"
|
||||
else "linux-i686";
|
||||
@ -14,8 +14,8 @@ stdenv.mkDerivation {
|
||||
src = fetchurl {
|
||||
url = "https://download.zotero.org/standalone/${version}/Zotero-${version}_${arch}.tar.bz2";
|
||||
sha256 = if stdenv.system == "x86_64-linux"
|
||||
then "0dq4x1cc0lnhs7g6w85qjdlb7sajr13mr2zcf4yvrciwhwy3r1i1"
|
||||
else "0s4j2karaq85fwnd1niz8hzx5k71cqs493g38pg337i3iwxad9hg";
|
||||
then "1fz5xn69vapfw8d20207zr9p5r1h9x5kahh334pl2dn1h8il0sm8"
|
||||
else "1kmsvvg2lh881rzy3rxbigzivixjamyrwf5x7vmn1kzhvsvifrng";
|
||||
};
|
||||
|
||||
# Strip the bundled xulrunner
|
||||
|
@ -17,8 +17,8 @@
|
||||
|
||||
cabal.mkDerivation (self: {
|
||||
pname = "git-annex";
|
||||
version = "5.20140927";
|
||||
sha256 = "02zmg8pcrdavfna2xy51n6chn6i5g0b8p20rba1vj29rlfj3cask";
|
||||
version = "5.20141013";
|
||||
sha256 = "1p2hvw2x0rm9nhk176mzwisl75xphqxv7mhd43mvwlb3q9f57lnc";
|
||||
isLibrary = false;
|
||||
isExecutable = true;
|
||||
buildDepends = [
|
||||
@ -48,6 +48,5 @@ cabal.mkDerivation (self: {
|
||||
license = self.stdenv.lib.licenses.gpl3;
|
||||
platforms = self.ghc.meta.platforms;
|
||||
maintainers = with self.stdenv.lib.maintainers; [ simons ];
|
||||
broken = true;
|
||||
};
|
||||
})
|
||||
|
12
pkgs/applications/video/byzanz/add-amflags.patch
Normal file
12
pkgs/applications/video/byzanz/add-amflags.patch
Normal file
@ -0,0 +1,12 @@
|
||||
diff --git a/Makefile.am b/Makefile.am
|
||||
index 6eedb51..7b54313 100644
|
||||
--- a/Makefile.am
|
||||
+++ b/Makefile.am
|
||||
@@ -1,5 +1,7 @@
|
||||
SUBDIRS = macros data gifenc src po
|
||||
|
||||
+ACLOCAL_AMFLAGS = -I macros
|
||||
+
|
||||
EXTRA_DIST = \
|
||||
MAINTAINERS \
|
||||
depcomp \
|
28
pkgs/applications/video/byzanz/default.nix
Normal file
28
pkgs/applications/video/byzanz/default.nix
Normal file
@ -0,0 +1,28 @@
|
||||
{ stdenv, fetchgit, which, gnome3_12, glib, intltool, pkgconfig, libtool, cairo, gtk3, gst_all_1 }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "0.2.3.alpha";
|
||||
name = "byzanz-${version}";
|
||||
|
||||
src = fetchgit {
|
||||
url = git://github.com/GNOME/byzanz;
|
||||
rev = "1875a7f6a3903b83f6b1d666965800f47db9286a";
|
||||
sha256 = "1b7hyilwj9wf2ri5zq63889bvskagdnqjc91hvyjmx1aj7vdkzd4";
|
||||
};
|
||||
|
||||
patches = [ ./add-amflags.patch ];
|
||||
|
||||
preBuild = ''
|
||||
./autogen.sh --prefix=$out
|
||||
'';
|
||||
|
||||
buildInputs = [ which gnome3_12.gnome_common glib intltool pkgconfig libtool cairo gtk3 gst_all_1.gstreamer gst_all_1.gst-plugins-base ];
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "Tool to record a running X desktop to an animation suitable for presentation in a web browser";
|
||||
homepage = https://github.com/GNOME/byzanz;
|
||||
license = licenses.gpl3;
|
||||
platforms = platforms.linux;
|
||||
maintainers = [ maintainers.DamienCassou ];
|
||||
};
|
||||
}
|
@ -58,11 +58,11 @@ in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "mpv-${version}";
|
||||
version = "0.5.4";
|
||||
version = "0.6.1";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/mpv-player/mpv/archive/v${version}.tar.gz";
|
||||
sha256 = "1n992nvylnh27jc6425daasq0nsxjfc1mxhhlhvlwzxm724x94xp";
|
||||
sha256 = "03vzsvvb1dvm4rn70m97fdbzhlqj9crk7zpvcp00bcl956xjfc9s";
|
||||
};
|
||||
|
||||
buildInputs = with stdenv.lib;
|
||||
|
@ -81,13 +81,13 @@ in
|
||||
|
||||
plugin = "svtplay";
|
||||
namespace = "plugin.video.svtplay";
|
||||
version = "4.0.6";
|
||||
version = "4.0.8";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "nilzen";
|
||||
repo = "xbmc-" + plugin;
|
||||
rev = "4f27254edbd6dc48350152832833c5b164ca58de";
|
||||
sha256 = "11r8vljpx9fxwdx20cvkb5szlaypfrn6c235jwcg61s4hmjy4kl8";
|
||||
rev = "967dc429201200200dba0e755ede3a0e9cb1b137";
|
||||
sha256 = "0kaxcci9zbblpkn1mrmdl49844r90agww41frz9vw6q2ajq1z16k";
|
||||
};
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
|
41
pkgs/applications/video/zdfmediathk/default.nix
Normal file
41
pkgs/applications/video/zdfmediathk/default.nix
Normal file
@ -0,0 +1,41 @@
|
||||
{ stdenv, fetchurl, unzip, jre }:
|
||||
|
||||
with stdenv;
|
||||
|
||||
mkDerivation rec {
|
||||
|
||||
version = "8";
|
||||
name = "zdfmediathk";
|
||||
src = fetchurl {
|
||||
url = "http://downloads.sourceforge.net/project/zdfmediathk/Mediathek/Mediathek%208/MediathekView_${version}.zip";
|
||||
sha256 = "1sglzk8zh6cyijyw82k49yqzjv0ywglp03w09s7wr4mzk48mfjj9";
|
||||
};
|
||||
|
||||
buildInputs = [ unzip ];
|
||||
|
||||
unpackPhase = "unzip $src";
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/{lib,bin,share/{doc,licenses}}
|
||||
install -m644 MediathekView.jar $out/
|
||||
install -m644 -t $out/lib lib/*
|
||||
install -m755 bin/flv.sh $out/bin/
|
||||
install -m644 -t $out/share/doc Anleitung/*.pdf
|
||||
install -m644 -t $out/share/licenses Copyright/{*.*,_copyright}
|
||||
bin="$out/bin/mediathek"
|
||||
cat >> "$bin" << EOF
|
||||
#!/bin/sh
|
||||
exec ${jre}/bin/java -cp "$out/lib/*" -Xms128M -Xmx1G -jar "$out/MediathekView.jar" "\$@"
|
||||
EOF
|
||||
chmod +x "$bin"
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "Offers access to the Mediathek of different tv stations (ARD, ZDF, Arte, etc.)";
|
||||
homepage = "http://zdfmediathk.sourceforge.net/";
|
||||
license = licenses.gpl3;
|
||||
maintainers = [ maintainers.flosse ];
|
||||
platforms = platforms.all;
|
||||
};
|
||||
|
||||
}
|
@ -3,11 +3,11 @@ btrfsProgs, iptables, bash, e2fsprogs, xz}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "docker-${version}";
|
||||
version = "1.2.0";
|
||||
version = "1.3.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/dotcloud/docker/archive/v${version}.tar.gz";
|
||||
sha256 = "1nk74p9k17bllgw4992ixx7z3w87icp2wabbpbgfyi20k2q9mayp";
|
||||
sha256 = "09bn88i8acv7kw39js1p7mgf3sglq7d782xnafkp0i97svf0x4y9";
|
||||
};
|
||||
|
||||
buildInputs = [ makeWrapper go sqlite lxc iproute bridge_utils devicemapper btrfsProgs iptables e2fsprogs];
|
||||
@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
|
||||
buildPhase = ''
|
||||
patchShebangs ./hack
|
||||
export AUTO_GOPATH=1
|
||||
export DOCKER_GITCOMMIT="fa7b24f"
|
||||
export DOCKER_GITCOMMIT="c78088f"
|
||||
./hack/make.sh dynbinary
|
||||
'';
|
||||
|
||||
|
@ -5,6 +5,7 @@
|
||||
, javaBindings ? false, jdk ? null
|
||||
, pythonBindings ? false, python ? null
|
||||
, enableExtensionPack ? false, requireFile ? null, patchelf ? null
|
||||
, pulseSupport ? false, pulseaudio ? null
|
||||
}:
|
||||
|
||||
with stdenv.lib;
|
||||
@ -64,7 +65,8 @@ in stdenv.mkDerivation {
|
||||
libcap glib lvm2 python alsaLib curl libvpx pam xorriso makeself perl
|
||||
pkgconfig which libXmu ]
|
||||
++ optional javaBindings jdk
|
||||
++ optional pythonBindings python;
|
||||
++ optional pythonBindings python
|
||||
++ optional pulseSupport pulseaudio;
|
||||
|
||||
prePatch = ''
|
||||
set -x
|
||||
@ -86,7 +88,8 @@ in stdenv.mkDerivation {
|
||||
./configure --with-qt4-dir=${qt4} \
|
||||
${optionalString (!javaBindings) "--disable-java"} \
|
||||
${optionalString (!pythonBindings) "--disable-python"} \
|
||||
--disable-pulse --disable-hardening --disable-kmods \
|
||||
${optionalString (!pulseSupport) "--disable-pulse"} \
|
||||
--disable-hardening --disable-kmods \
|
||||
--with-mkisofs=${xorriso}/bin/xorrisofs
|
||||
sed -e 's@PKG_CONFIG_PATH=.*@PKG_CONFIG_PATH=${libIDL}/lib/pkgconfig:${glib}/lib/pkgconfig ${libIDL}/bin/libIDL-config-2@' \
|
||||
-i AutoConfig.kmk
|
||||
|
@ -1,33 +1,44 @@
|
||||
{ stdenv, fetchurl, pkgconfig, wayland, mesa, libxkbcommon
|
||||
, cairo, libxcb, libXcursor, x11, udev, libdrm, mtdev
|
||||
, libjpeg, pam, autoconf, automake, libtool, dbus }:
|
||||
{ stdenv, fetchurl, pkgconfig, wayland, mesa, libxkbcommon, cairo, libxcb
|
||||
, libXcursor, x11, udev, libdrm, mtdev, libjpeg, pam, dbus, libinput
|
||||
, pango ? null, libunwind ? null, freerdp ? null, vaapi ? null, libva ? null
|
||||
, libwebp ? null
|
||||
}:
|
||||
|
||||
let version = "1.5.0"; in
|
||||
let version = "1.6.0"; in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "weston-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://wayland.freedesktop.org/releases/${name}.tar.xz";
|
||||
sha256 = "113nig2dmbgrjhi79k0zw77vicnx8vkaihawd0nsg6n79ah8nf06";
|
||||
sha256 = "0kb1mb54l7adihmr2y77xgsdb00dvifnq886q2mmy0mz7g8sagnw";
|
||||
};
|
||||
|
||||
#ToDo: libinput can be split away
|
||||
buildInputs = [
|
||||
pkgconfig wayland mesa libxkbcommon
|
||||
cairo libxcb libXcursor x11 udev libdrm mtdev libjpeg pam dbus.libs
|
||||
pkgconfig wayland mesa libxkbcommon cairo libxcb libXcursor x11 udev libdrm
|
||||
mtdev libjpeg pam dbus.libs libinput pango libunwind freerdp vaapi libva
|
||||
libwebp
|
||||
];
|
||||
|
||||
NIX_CFLAGS_COMPILE = "-I${libdrm}/include/libdrm";
|
||||
|
||||
configureFlags = [
|
||||
"--enable-xwayland"
|
||||
"--enable-x11-compositor"
|
||||
"--enable-drm-compositor"
|
||||
"--enable-wayland-compositor"
|
||||
"--enable-headless-compositor"
|
||||
"--enable-fbdev-compositor"
|
||||
"--enable-screen-sharing"
|
||||
"--enable-clients"
|
||||
"--enable-weston-launch"
|
||||
"--disable-setuid-install" # prevent install target to chown root weston-launch, which fails
|
||||
];
|
||||
] ++ stdenv.lib.optional (freerdp != null) "--enable-rdp-compositor"
|
||||
++ stdenv.lib.optional (vaapi != null) "--enabe-vaapi-recorder";
|
||||
|
||||
meta = {
|
||||
meta = with stdenv.lib; {
|
||||
description = "Reference implementation of a Wayland compositor";
|
||||
homepage = http://wayland.freedesktop.org/;
|
||||
license = stdenv.lib.licenses.mit;
|
||||
platforms = stdenv.lib.platforms.linux;
|
||||
license = licenses.mit;
|
||||
platforms = platforms.linux;
|
||||
maintainers = with maintainers; [ wkennington ];
|
||||
};
|
||||
}
|
||||
|
@ -23,4 +23,4 @@ mount --rbind /run $chrootenvDest/run
|
||||
mount --bind /etc $chrootenvDest/host-etc
|
||||
|
||||
# Bind mount /tmp
|
||||
mount --bind /tmp/chrootenv-@name@ /run/chrootenv/steam/tmp
|
||||
mount --bind /tmp/chrootenv-@name@ $chrootenvDest/tmp
|
||||
|
@ -57,6 +57,13 @@ assert !enableStaticLibraries -> versionOlder "7.7" ghc.version;
|
||||
propagatedUserEnvPkgs = filter (y : ! (y == null)) x.propagatedUserEnvPkgs;
|
||||
doCheck = enableCheckPhase && x.doCheck;
|
||||
hyperlinkSource = enableHyperlinkSource && x.hyperlinkSource;
|
||||
# Disable Darwin builds: <https://github.com/NixOS/nixpkgs/issues/2689>.
|
||||
meta = let meta = x.meta or {};
|
||||
hydraPlatforms = meta.hydraPlatforms or meta.platforms or [];
|
||||
noElem = p: ps: !stdenv.lib.elem p ps;
|
||||
noDarwin = p: noElem p stdenv.lib.platforms.darwin;
|
||||
in
|
||||
meta // { hydraPlatforms = filter noDarwin hydraPlatforms; };
|
||||
};
|
||||
|
||||
defaults =
|
||||
@ -210,9 +217,6 @@ assert !enableStaticLibraries -> versionOlder "7.7" ghc.version;
|
||||
${optionalString (self.enableSharedExecutables && self.stdenv.isDarwin) ''
|
||||
configureFlags+=" --ghc-option=-optl=-Wl,-headerpad_max_install_names"
|
||||
''}
|
||||
${optionalString (versionOlder "7.8" ghc.version) ''
|
||||
configureFlags+=" --ghc-option=-j$NIX_BUILD_CORES"
|
||||
''}
|
||||
|
||||
echo "configure flags: $extraConfigureFlags $configureFlags"
|
||||
./Setup configure --verbose --prefix="$out" --libdir='$prefix/lib/$compiler' \
|
||||
|
@ -385,4 +385,11 @@ rec {
|
||||
http://hdiff.luite.com/packages/archive/package/
|
||||
];
|
||||
|
||||
# Roy marples mirrors
|
||||
roy = [
|
||||
http://roy.marples.name/downloads/
|
||||
http://roy.aydogan.net/
|
||||
http://cflags.cc/roy/
|
||||
];
|
||||
|
||||
}
|
||||
|
@ -32,7 +32,7 @@ let
|
||||
|
||||
grKernel = if cfg.stable
|
||||
then mkKernel pkgs.linux_3_14 stable-patch
|
||||
else mkKernel pkgs.linux_3_16 test-patch;
|
||||
else mkKernel pkgs.linux_3_17 test-patch;
|
||||
|
||||
## -- grsecurity configuration ---------------------------------------------
|
||||
|
||||
|
22
pkgs/build-support/substitute-files/substitute-all-files.nix
Normal file
22
pkgs/build-support/substitute-files/substitute-all-files.nix
Normal file
@ -0,0 +1,22 @@
|
||||
{ stdenv }:
|
||||
|
||||
args:
|
||||
|
||||
stdenv.mkDerivation ({
|
||||
name = if args ? name then args.name else baseNameOf (toString args.src);
|
||||
builder = with stdenv.lib; builtins.toFile "builder.sh" ''
|
||||
source $stdenv/setup
|
||||
set -o pipefail
|
||||
|
||||
eval "$preInstall"
|
||||
|
||||
args=
|
||||
|
||||
cd "$src"
|
||||
echo -ne "${concatStringsSep "\\0" args.files}" | xargs -0 -n1 -I {} -- find {} -type f -print0 | while read -d "" line; do
|
||||
mkdir -p "$out/$(dirname "$line")"
|
||||
substituteAll "$line" "$out/$line"
|
||||
done
|
||||
'';
|
||||
preferLocalBuild = true;
|
||||
} // args)
|
@ -1586,7 +1586,7 @@ rec {
|
||||
fullName = "Debian 7.6 Wheezy (i386)";
|
||||
packagesList = fetchurl {
|
||||
url = mirror://debian/dists/wheezy/main/binary-i386/Packages.bz2;
|
||||
sha256 = "773ba601513cd7ef1d5192ad8baa795fa050573d82568c577cdf79adade698a3";
|
||||
sha256 = "1j093d6dwixyrk87sdvaayh3ffcn5aqwik36blndiw5njw2qkzgj";
|
||||
};
|
||||
urlPrefix = mirror://debian;
|
||||
packages = commonDebianPackages;
|
||||
@ -1597,7 +1597,7 @@ rec {
|
||||
fullName = "Debian 7.6 Wheezy (amd64)";
|
||||
packagesList = fetchurl {
|
||||
url = mirror://debian/dists/wheezy/main/binary-amd64/Packages.bz2;
|
||||
sha256 = "11a8bd3648d51f51e56c9f5382168cc47267d67ef6a050826e1cd358ed46cc17";
|
||||
sha256 = "1n46fxq8a2dm1i7ysc80s5lg10z5dh0hyd8k3h532n5wzs44xqcc";
|
||||
};
|
||||
urlPrefix = mirror://debian;
|
||||
packages = commonDebianPackages;
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user