Merge 'master' into staging
This commit is contained in:
commit
3a2478605d
@ -502,7 +502,7 @@ exist in community to help save time. No tool is preferred at the moment.
|
||||
<section xml:id="python-development"><title>Development</title>
|
||||
|
||||
<para>
|
||||
To develop Python packages <function>bulidPythonPackage</function> has
|
||||
To develop Python packages <function>buildPythonPackage</function> has
|
||||
additional logic inside <varname>shellPhase</varname> to run
|
||||
<command>${python.interpreter} setup.py develop</command> for the package.
|
||||
</para>
|
||||
|
@ -255,6 +255,11 @@ lib.mapAttrs (n: v: v // { shortName = n; }) rec {
|
||||
fullName = "LaTeX Project Public License v1.2";
|
||||
};
|
||||
|
||||
lppl13c = spdx {
|
||||
spdxId = "LPPL-1.3c";
|
||||
fullName = "LaTeX Project Public License v1.3c";
|
||||
};
|
||||
|
||||
lpl-102 = spdx {
|
||||
spdxId = "LPL-1.02";
|
||||
fullName = "Lucent Public License v1.02";
|
||||
|
@ -26,6 +26,7 @@
|
||||
aycanirican = "Aycan iRiCAN <iricanaycan@gmail.com>";
|
||||
balajisivaraman = "Balaji Sivaraman<sivaraman.balaji@gmail.com>";
|
||||
bbenoist = "Baptist BENOIST <return_0@live.com>";
|
||||
bdimcheff = "Brandon Dimcheff <brandon@dimcheff.com>";
|
||||
bennofs = "Benno Fünfstück <benno.fuenfstueck@gmail.com>";
|
||||
berdario = "Dario Bertini <berdario@gmail.com>";
|
||||
bergey = "Daniel Bergey <bergey@teallabs.org>";
|
||||
@ -50,6 +51,7 @@
|
||||
davidrusu = "David Rusu <davidrusu.me@gmail.com>";
|
||||
dbohdan = "Danyil Bohdan <danyil.bohdan@gmail.com>";
|
||||
DerGuteMoritz = "Moritz Heidkamp <moritz@twoticketsplease.de>";
|
||||
devhell = "devhell <\"^\"@regexmail.net>";
|
||||
dmalikov = "Dmitry Malikov <malikov.d.y@gmail.com>";
|
||||
doublec = "Chris Double <chris.double@double.co.nz>";
|
||||
ederoyd46 = "Matthew Brown <matt@ederoyd.co.uk>";
|
||||
@ -90,6 +92,7 @@
|
||||
jzellner = "Jeff Zellner <jeffz@eml.cc>";
|
||||
kkallio = "Karn Kallio <tierpluspluslists@gmail.com>";
|
||||
koral = "Koral <koral@mailoo.org>";
|
||||
kovirobi = "Kovacsics Robert <kovirobi@gmail.com>";
|
||||
kragniz = "Louis Taylor <kragniz@gmail.com>";
|
||||
ktosiek = "Tomasz Kontusz <tomasz.kontusz@gmail.com>";
|
||||
lethalman = "Luca Bruno <lucabru@src.gnome.org>";
|
||||
@ -109,6 +112,7 @@
|
||||
mornfall = "Petr Ročkai <me@mornfall.net>";
|
||||
MP2E = "Cray Elliott <MP2E@archlinux.us>";
|
||||
msackman = "Matthew Sackman <matthew@wellquite.org>";
|
||||
mtreskin = "Max Treskin <zerthurd@gmail.com>";
|
||||
muflax = "Stefan Dorn <mail@muflax.com>";
|
||||
nathan-gs = "Nathan Bijnens <nathan@nathan.gs>";
|
||||
nckx = "Tobias Geerinckx-Rice <tobias.geerinckx.rice@gmail.com>";
|
||||
@ -177,6 +181,7 @@
|
||||
wjlroe = "William Roe <willroe@gmail.com>";
|
||||
wkennington = "William A. Kennington III <william@wkennington.com>";
|
||||
wmertens = "Wout Mertens <Wout.Mertens@gmail.com>";
|
||||
wscott = "Wayne Scott <wsc9tt@gmail.com>";
|
||||
wyvie = "Elijah Rum <elijahrum@gmail.com>";
|
||||
yarr = "Dmitry V. <savraz@gmail.com>";
|
||||
z77z = "Marco Maggesi <maggesi@math.unifi.it>";
|
||||
|
@ -31,6 +31,23 @@ rec {
|
||||
type = lib.types.bool;
|
||||
};
|
||||
|
||||
# This option accept anything, but it does not produce any result. This
|
||||
# is useful for sharing a module across different module sets without
|
||||
# having to implement similar features as long as the value of the options
|
||||
# are not expected.
|
||||
mkSinkUndeclaredOptions = attrs: mkOption ({
|
||||
internal = true;
|
||||
visible = false;
|
||||
default = false;
|
||||
description = "Sink for option definitions.";
|
||||
type = mkOptionType {
|
||||
name = "sink";
|
||||
check = x: true;
|
||||
merge = loc: defs: false;
|
||||
};
|
||||
apply = x: throw "Option value is not readable because the option is not declared.";
|
||||
} // attrs);
|
||||
|
||||
mergeDefaultOption = loc: defs:
|
||||
let list = getValues defs; in
|
||||
if length list == 1 then head list
|
||||
|
111
maintainers/scripts/update-channel-branches.sh
Executable file
111
maintainers/scripts/update-channel-branches.sh
Executable file
@ -0,0 +1,111 @@
|
||||
#!/bin/sh
|
||||
|
||||
: ${NIXOS_CHANNELS:=https://nixos.org/channels/}
|
||||
: ${CHANNELS_NAMESPACE:=refs/heads/channels/}
|
||||
|
||||
# List all channels which are currently in the repository which we would
|
||||
# have to remove if they are not found again.
|
||||
deadChannels=$(git for-each-ref --format="%(refname)" $CHANNELS_NAMESPACE)
|
||||
|
||||
function updateRef() {
|
||||
local channelName=$1
|
||||
local newRev=$2
|
||||
|
||||
# if the inputs are not valid, then we do not update any branch.
|
||||
test -z "$newRev" -o -z "$channelName" && return;
|
||||
|
||||
# Update the local refs/heads/channels/* branches to be in-sync with the
|
||||
# channel references.
|
||||
local branch=$CHANNELS_NAMESPACE$channelName
|
||||
oldRev=$(git rev-parse --short $branch 2>/dev/null || true)
|
||||
if test "$oldRev" != "$newRev"; then
|
||||
if git update-ref $branch $newRev 2>/dev/null; then
|
||||
if test -z "$oldRev"; then
|
||||
echo " * [new branch] $newRev -> ${branch#refs/heads/}"
|
||||
else
|
||||
echo " $oldRev..$newRev -> ${branch#refs/heads/}"
|
||||
fi
|
||||
else
|
||||
if test -z "$oldRev"; then
|
||||
echo " * [missing rev] $newRev -> ${branch#refs/heads/}"
|
||||
else
|
||||
echo " [missing rev] $oldRev..$newRev -> ${branch#refs/heads/}"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
# Filter out the current channel from the list of dead channels.
|
||||
deadChannels=$(grep -v $CHANNELS_NAMESPACE$channelName <<EOF
|
||||
$deadChannels
|
||||
EOF
|
||||
)
|
||||
}
|
||||
|
||||
# Find the name of all channels which are listed in the directory.
|
||||
echo "Fetching channels from $NIXOS_CHANNELS:"
|
||||
for channelName in : $(curl -s $NIXOS_CHANNELS | sed -n '/folder/ { s,.*href=",,; s,/".*,,; p }'); do
|
||||
test "$channelName" = : && continue;
|
||||
|
||||
# Do not follow redirections, such that we can extract the
|
||||
# short-changeset from the name of the directory where we are
|
||||
# redirected to.
|
||||
sha1=$(curl -sI $NIXOS_CHANNELS$channelName | sed -n '/Location/ { s,.*\.\([a-f0-9]*\)[ \r]*$,\1,; p; }')
|
||||
|
||||
updateRef "remotes/$channelName" "$sha1"
|
||||
done
|
||||
|
||||
echo "Fetching channels from nixos-version:"
|
||||
if currentSystem=$(nixos-version 2>/dev/null); then
|
||||
# If the system is entirely build from a custom nixpkgs version,
|
||||
# then the version is not annotated in git version. This sed
|
||||
# expression is basically matching that the expressions end with
|
||||
# ".<sha1> (Name)" to extract the sha1.
|
||||
sha1=$(echo $currentSystem | sed -n 's,^.*\.\([a-f0-9]*\) *(.*)$,\1,; T skip; p; :skip;')
|
||||
|
||||
updateRef current-system "$sha1"
|
||||
fi
|
||||
|
||||
echo "Fetching channels from ~/.nix-defexpr:"
|
||||
for revFile in : $(find -L ~/.nix-defexpr/ -maxdepth 4 -name svn-revision); do
|
||||
test "$revFile" = : && continue;
|
||||
|
||||
# Deconstruct a path such as, into:
|
||||
#
|
||||
# /home/luke/.nix-defexpr/channels_root/nixos/nixpkgs/svn-revision
|
||||
# channelName = root/nixos
|
||||
#
|
||||
# /home/luke/.nix-defexpr/channels/nixpkgs/svn-revision
|
||||
# channelName = nixpkgs
|
||||
#
|
||||
user=${revFile#*.nix-defexpr/channels}
|
||||
repo=${user#*/}
|
||||
repo=${repo%%/*}
|
||||
user=${user%%/*}
|
||||
user=${user#_}
|
||||
test -z "$user" && user=$USER
|
||||
channelName="$user${user:+/}$repo"
|
||||
|
||||
sha1=$(cat $revFile | sed -n 's,^.*\.\([a-f0-9]*\)$,\1,; T skip; p; :skip;')
|
||||
|
||||
updateRef "$channelName" "$sha1"
|
||||
done
|
||||
|
||||
# Suggest to remove channel branches which are no longer found by this
|
||||
# script. This is to handle the cases where a local/remote channel
|
||||
# disappear. We should not attempt to remove manually any branches, as they
|
||||
# might be user branches.
|
||||
if test -n "$deadChannels"; then
|
||||
|
||||
echo "
|
||||
Some old channel branches are still in your repository, if you
|
||||
want to remove them, run the following command(s):
|
||||
"
|
||||
|
||||
while read branch; do
|
||||
echo " git update-ref -d $branch"
|
||||
done <<EOF
|
||||
$deadChannels
|
||||
EOF
|
||||
|
||||
echo
|
||||
fi
|
@ -40,20 +40,22 @@ rebuild everything from source. So you may want to create a local
|
||||
branch based on your current NixOS version:
|
||||
|
||||
<screen>
|
||||
$ nixos-version
|
||||
14.04.273.ea1952b (Baboon)
|
||||
|
||||
$ git checkout -b local ea1952b
|
||||
$ <replaceable>/my/sources</replaceable>/nixpkgs/maintainers/scripts/update-channel-branches.sh
|
||||
Fetching channels from https://nixos.org/channels:
|
||||
* [new branch] cbe467e -> channels/remotes/nixos-unstable
|
||||
Fetching channels from nixos-version:
|
||||
* [new branch] 9ff4738 -> channels/current-system
|
||||
Fetching channels from ~/.nix-defexpr:
|
||||
* [new branch] 0d4acad -> channels/root/nixos
|
||||
$ git checkout -b local channels/current-system
|
||||
</screen>
|
||||
|
||||
Or, to base your local branch on the latest version available in the
|
||||
NixOS channel:
|
||||
|
||||
<screen>
|
||||
$ curl -sI https://nixos.org/channels/nixos-unstable/ | grep Location
|
||||
Location: https://releases.nixos.org/nixos/unstable/nixos-14.10pre43986.acaf4a6/
|
||||
|
||||
$ git checkout -b local acaf4a6
|
||||
$ <replaceable>/my/sources</replaceable>/nixpkgs/maintainers/scripts/update-channel-branches.sh
|
||||
$ git checkout -b local channels/remotes/nixos-unstable
|
||||
</screen>
|
||||
|
||||
You can then use <command>git rebase</command> to sync your local
|
||||
|
@ -6,46 +6,159 @@
|
||||
|
||||
<title>Release 14.12 (“Caterpillar”, 2014/12/??)</title>
|
||||
|
||||
<para>In addition to numerous new and upgraded packages, this release has the following highlights:
|
||||
|
||||
<itemizedlist>
|
||||
|
||||
<listitem><para>Systemd has been updated to version 217, which has numerous
|
||||
<link xlink:href="http://lists.freedesktop.org/archives/systemd-devel/2014-October/024662.html">improvements
|
||||
.</link></para></listitem>
|
||||
|
||||
<listitem><para><link xlink:href="http://thread.gmane.org/gmane.linux.distributions.nixos/15165">
|
||||
Nix has been updated to 1.8.</link></para></listitem>
|
||||
|
||||
<listitem><para>NixOS is now based on Glibc 2.20.</para></listitem>
|
||||
|
||||
<listitem><para>KDE has been updated to 4.14.</para></listitem>
|
||||
|
||||
<listitem><para>The default Linux kernel has been updated to 3.14.</para></listitem>
|
||||
|
||||
<listitem><para><option>users.mutableUsers</option> set to <literal>true</literal> now respect any changes
|
||||
made after initial creation of a user or a group.
|
||||
</para></listitem>
|
||||
|
||||
</itemizedlist></para>
|
||||
|
||||
<para>Following new services were added since the last release:
|
||||
|
||||
<itemizedlist>
|
||||
<listitem><para>parallels-guest</para></listitem>
|
||||
<listitem><para>docker</para></listitem>
|
||||
<listitem><para>lxc</para></listitem>
|
||||
<listitem><para>openvswitch</para></listitem>
|
||||
<listitem><para>fluxbox</para></listitem>
|
||||
<listitem><para>bspwm</para></listitem>
|
||||
<listitem><para>gdm</para></listitem>
|
||||
<listitem><para>fcgiwrap</para></listitem>
|
||||
<listitem><para>peerflix</para></listitem>
|
||||
<listitem><para>fail2ban</para></listitem>
|
||||
<listitem><para>chronos</para></listitem>
|
||||
<listitem><para>znc</para></listitem>
|
||||
<listitem><para>unifi</para></listitem>
|
||||
<listitem><para>teamspeak3</para></listitem>
|
||||
<listitem><para>strongswan</para></listitem>
|
||||
<listitem><para>seeks</para></listitem>
|
||||
<listitem><para>radicale</para></listitem>
|
||||
<listitem><para>prosody</para></listitem>
|
||||
<listitem><para>polipo</para></listitem>
|
||||
<listitem><para>openntpd</para></listitem>
|
||||
<listitem><para>nsd</para></listitem>
|
||||
<listitem><para>mailpile</para></listitem>
|
||||
<listitem><para>i2pd</para></listitem>
|
||||
<listitem><para>dnscrypt-proxy</para></listitem>
|
||||
<listitem><para>consul</para></listitem>
|
||||
<listitem><para>atftpd</para></listitem>
|
||||
<listitem><para>scollector</para></listitem>
|
||||
<listitem><para>collectd</para></listitem>
|
||||
<listitem><para>bosun</para></listitem>
|
||||
<listitem><para>riemann</para></listitem>
|
||||
<listitem><para>zookeeper</para></listitem>
|
||||
<listitem><para>uhub</para></listitem>
|
||||
<listitem><para>siproxd</para></listitem>
|
||||
<listitem><para>redmine</para></listitem>
|
||||
<listitem><para>phd</para></listitem>
|
||||
<listitem><para>mesos</para></listitem>
|
||||
<listitem><para>gitlab</para></listitem>
|
||||
<listitem><para>gitolite</para></listitem>
|
||||
<listitem><para>etcd</para></listitem>
|
||||
<listitem><para>docker-registry</para></listitem>
|
||||
<listitem><para>cpuminer-cryptonight</para></listitem>
|
||||
<listitem><para>thermald</para></listitem>
|
||||
<listitem><para>mlmmj</para></listitem>
|
||||
<listitem><para>tcsd</para></listitem>
|
||||
<listitem><para>gnome3.seahorse</para></listitem>
|
||||
<listitem><para>gnome3.gvfs</para></listitem>
|
||||
<listitem><para>gnome3.gnome-online-miners</para></listitem>
|
||||
<listitem><para>gnome3.gnome-documents</para></listitem>
|
||||
<listitem><para>geoclue2</para></listitem>
|
||||
<listitem><para>opentsdb</para></listitem>
|
||||
<listitem><para>neo4j</para></listitem>
|
||||
<listitem><para>monetdb</para></listitem>
|
||||
<listitem><para>influxdb</para></listitem>
|
||||
<listitem><para>hbase</para></listitem>
|
||||
<listitem><para>torque/mrom</para></listitem>
|
||||
<listitem><para>torque/server</para></listitem>
|
||||
<listitem><para>kubernetes</para></listitem>
|
||||
<listitem><para>fleet</para></listitem>
|
||||
<listitem><para>crashplan</para></listitem>
|
||||
<listitem><para>mopidy</para></listitem>
|
||||
<listitem><para>liquidsoap</para></listitem>
|
||||
</itemizedlist>
|
||||
</para>
|
||||
|
||||
<para>When upgrading from a previous release, please be aware of the
|
||||
following incompatible changes:
|
||||
|
||||
<itemizedlist>
|
||||
|
||||
<listitem><para>The default version of Apache httpd is now 2.4. If
|
||||
you use the <option>extraConfig</option> option to pass literal
|
||||
Apache configuration text, you may need to update it — see <link
|
||||
xlink:href="http://httpd.apache.org/docs/2.4/upgrading.html">Apache’s
|
||||
documentation</link> for details. If you wish to continue to use
|
||||
httpd 2.2, add the following line to your NixOS configuration:
|
||||
<listitem><para>The default version of Apache httpd is now 2.4. If
|
||||
you use the <option>extraConfig</option> option to pass literal
|
||||
Apache configuration text, you may need to update it — see <link
|
||||
xlink:href="http://httpd.apache.org/docs/2.4/upgrading.html">Apache’s
|
||||
documentation</link> for details. If you wish to continue to use
|
||||
httpd 2.2, add the following line to your NixOS configuration:
|
||||
|
||||
<programlisting>
|
||||
services.httpd.package = pkgs.apacheHttpd_2_2;
|
||||
</programlisting>
|
||||
rogramlisting>
|
||||
rvices.httpd.package = pkgs.apacheHttpd_2_2;
|
||||
programlisting>
|
||||
|
||||
</para></listitem>
|
||||
</para></listitem>
|
||||
|
||||
<listitem><para>PHP 5.3 has been removed because it is no longer
|
||||
supported by the PHP project. A <link
|
||||
xlink:href="http://php.net/migration54">migration guide</link> is
|
||||
available.</para></listitem>
|
||||
<listitem><para>PHP 5.3 has been removed because it is no longer
|
||||
supported by the PHP project. A <link
|
||||
xlink:href="http://php.net/migration54">migration guide</link> is
|
||||
available.</para></listitem>
|
||||
|
||||
<listitem><para>The host side of a container virtual Ethernet pair
|
||||
is now called <literal>ve-<replaceable>container-name</replaceable></literal>
|
||||
rather than <literal>c-<replaceable>container-name</replaceable></literal>.</para></listitem>
|
||||
<listitem><para>The host side of a container virtual Ethernet pair
|
||||
is now called <literal>ve-<replaceable>container-name</replaceable></literal>
|
||||
rather than <literal>c-<replaceable>container-name</replaceable></literal>.</para></listitem>
|
||||
|
||||
<listitem><para>GNOME 3.10 support has been dropped. The default GNOME version is now 3.12.</para></listitem>
|
||||
<listitem><para>GNOME 3.10 support has been dropped. The default GNOME version is now 3.12.</para></listitem>
|
||||
|
||||
<listitem><para>The system-wide default timezone for NixOS installations
|
||||
changed from <literal>CET</literal> to <literal>UTC</literal>. To choose
|
||||
a different timezone for your system, configure
|
||||
<literal>time.timeZone</literal> in
|
||||
<literal>configuration.nix</literal>. A fairly complete list of possible
|
||||
values for that setting is available at <link
|
||||
xlink:href="https://en.wikipedia.org/wiki/List_of_tz_database_time_zones"/>.</para></listitem>
|
||||
<listitem><para>VirtualBox has been upgraded to 4.3.20 release. Users may be required to run
|
||||
<command>rm -rf /tmp.vbox*</command>. <literal>imports = [ <nixpkgs/nixos/modules/programs/virtualbox.nix> ]</literal>
|
||||
is no longer necessary, use <literal>services.virtualboxHost.enable = true</literal> instead.
|
||||
</para>
|
||||
<para>Also, hardening mode is now enabled by default, which means that unless you want to use
|
||||
USB support, you no longer need to be a member of the <literal>vboxusers</literal> group.
|
||||
</para></listitem>
|
||||
|
||||
<listitem><para>GNU screen has been updated to 4.2.1, which breaks
|
||||
the ability to connect to sessions created by older versions of
|
||||
screen.</para></listitem>
|
||||
<listitem><para>Chromium has been updated to 39.0.2171.65. <option>enablePepperPDF</option> is now enabled by default.
|
||||
<literal>chromium*Wrapper</literal> packages no longer exist, because upstream removed NSAPI support.
|
||||
<literal>chromium-stable</literal> has been renamed to <literal>chromium</literal>.
|
||||
</para></listitem>
|
||||
|
||||
<listitem><para>Python packaging documentation is now part of nixpkgs manual. To override
|
||||
the python packages available to a custom python you now use <literal>pkgs.pythonFull.buildEnv.override</literal>
|
||||
instead of <literal>pkgs.pythonFull.override</literal>.
|
||||
</para></listitem>
|
||||
|
||||
<listitem><para><literal>boot.resumeDevice = "8:6"</literal> is no longer supported. Most users will
|
||||
want to leave it undefined, which takes the swap partitions automatically. There is an evaluation
|
||||
assertion to ensure that the string starts with a slash.
|
||||
</para></listitem>
|
||||
|
||||
<listitem><para>The system-wide default timezone for NixOS installations
|
||||
changed from <literal>CET</literal> to <literal>UTC</literal>. To choose
|
||||
a different timezone for your system, configure
|
||||
<literal>time.timeZone</literal> in
|
||||
<literal>configuration.nix</literal>. A fairly complete list of possible
|
||||
values for that setting is available at <link
|
||||
xlink:href="https://en.wikipedia.org/wiki/List_of_tz_database_time_zones"/>.</para></listitem>
|
||||
|
||||
<listitem><para>GNU screen has been updated to 4.2.1, which breaks
|
||||
the ability to connect to sessions created by older versions of
|
||||
screen.</para></listitem>
|
||||
|
||||
</itemizedlist>
|
||||
|
||||
|
@ -16,7 +16,6 @@ let
|
||||
[ p.mesa_drivers
|
||||
p.mesa_noglu # mainly for libGL
|
||||
(if cfg.s3tcSupport then p.libtxc_dxtn else p.libtxc_dxtn_s2tc)
|
||||
p.udev
|
||||
];
|
||||
};
|
||||
|
||||
|
@ -30,8 +30,7 @@ while [ "$#" -gt 0 ]; do
|
||||
case "$i" in
|
||||
-I)
|
||||
given_path="$1"; shift 1
|
||||
absolute_path=$(readlink -m $given_path)
|
||||
extraBuildFlags+=("$i" "/mnt$absolute_path")
|
||||
extraBuildFlags+=("$i" "$given_path")
|
||||
;;
|
||||
--root)
|
||||
mountPoint="$1"; shift 1
|
||||
@ -250,7 +249,7 @@ chroot $mountPoint /nix/var/nix/profiles/system/activate
|
||||
|
||||
|
||||
# Ask the user to set a root password.
|
||||
if [ -t 0 ] ; then
|
||||
if [ "$(chroot $mountPoint nix-instantiate --eval '<nixos>' -A config.users.mutableUsers)" = true ] && [ -t 0 ] ; then
|
||||
echo "setting root password..."
|
||||
chroot $mountPoint /var/setuid-wrappers/passwd
|
||||
fi
|
||||
|
@ -13,6 +13,7 @@ usage () {
|
||||
|
||||
xml=false
|
||||
verbose=false
|
||||
nixPath=""
|
||||
|
||||
option=""
|
||||
|
||||
@ -26,6 +27,7 @@ for arg; do
|
||||
while test "$sarg" != "-"; do
|
||||
case $sarg in
|
||||
--*) longarg=$arg; sarg="--";;
|
||||
-I) argfun="include_nixpath";;
|
||||
-*) usage;;
|
||||
esac
|
||||
# remove the first letter option
|
||||
@ -53,6 +55,9 @@ for arg; do
|
||||
var=$(echo $argfun | sed 's,^set_,,')
|
||||
eval $var=$arg
|
||||
;;
|
||||
include_nixpath)
|
||||
nixPath="-I $arg $nixPath"
|
||||
;;
|
||||
esac
|
||||
argfun=""
|
||||
fi
|
||||
@ -69,18 +74,114 @@ fi
|
||||
#############################
|
||||
|
||||
evalNix(){
|
||||
nix-instantiate - --eval-only "$@"
|
||||
result=$(nix-instantiate ${nixPath:+$nixPath} - --eval-only "$@" 2>&1)
|
||||
if test $? -eq 0; then
|
||||
cat <<EOF
|
||||
$result
|
||||
EOF
|
||||
return 0;
|
||||
else
|
||||
sed -n '
|
||||
/^error/ { s/, at (string):[0-9]*:[0-9]*//; p; };
|
||||
/^warning: Nix search path/ { p; };
|
||||
' <<EOF
|
||||
$result
|
||||
EOF
|
||||
return 1;
|
||||
fi
|
||||
}
|
||||
|
||||
header="let
|
||||
nixos = import <nixpkgs/nixos> {};
|
||||
nixpkgs = import <nixpkgs> {};
|
||||
in with nixpkgs.lib;
|
||||
"
|
||||
|
||||
# This function is used for converting the option definition path given by
|
||||
# the user into accessors for reaching the definition and the declaration
|
||||
# corresponding to this option.
|
||||
generateAccessors(){
|
||||
if result=$(evalNix --strict --show-trace <<EOF
|
||||
$header
|
||||
|
||||
let
|
||||
path = "${option:+$option}";
|
||||
pathList = splitString "." path;
|
||||
|
||||
walkOptions = attrsNames: result:
|
||||
if attrsNames == [] then
|
||||
result
|
||||
else
|
||||
let name = head attrsNames; rest = tail attrsNames; in
|
||||
if isOption result.options then
|
||||
walkOptions rest {
|
||||
options = result.options.type.getSubOptions "";
|
||||
opt = ''(\${result.opt}.type.getSubOptions "")'';
|
||||
cfg = ''\${result.cfg}."\${name}"'';
|
||||
}
|
||||
else
|
||||
walkOptions rest {
|
||||
options = result.options.\${name};
|
||||
opt = ''\${result.opt}."\${name}"'';
|
||||
cfg = ''\${result.cfg}."\${name}"'';
|
||||
}
|
||||
;
|
||||
|
||||
walkResult = (if path == "" then x: x else walkOptions pathList) {
|
||||
options = nixos.options;
|
||||
opt = ''nixos.options'';
|
||||
cfg = ''nixos.config'';
|
||||
};
|
||||
|
||||
in
|
||||
''let option = \${walkResult.opt}; config = \${walkResult.cfg}; in''
|
||||
EOF
|
||||
)
|
||||
then
|
||||
echo $result
|
||||
else
|
||||
# In case of error we want to ignore the error message roduced by the
|
||||
# script above, as it is iterating over each attribute, which does not
|
||||
# produce a nice error message. The following code is a fallback
|
||||
# solution which is cause a nicer error message in the next
|
||||
# evaluation.
|
||||
echo "\"let option = nixos.options${option:+.$option}; config = nixos.config${option:+.$option}; in\""
|
||||
fi
|
||||
}
|
||||
|
||||
header="$header
|
||||
$(eval echo $(generateAccessors))
|
||||
"
|
||||
|
||||
evalAttr(){
|
||||
local prefix="$1"
|
||||
local strict="$2"
|
||||
local suffix="$3"
|
||||
echo "(import <nixos> {}).$prefix${option:+.$option}${suffix:+.$suffix}" | evalNix ${strict:+--strict}
|
||||
|
||||
# If strict is set, then set it to "true".
|
||||
test -n "$strict" && strict=true
|
||||
|
||||
evalNix ${strict:+--strict} <<EOF
|
||||
$header
|
||||
|
||||
let
|
||||
value = $prefix${suffix:+.$suffix};
|
||||
strict = ${strict:-false};
|
||||
cleanOutput = x: with nixpkgs.lib;
|
||||
if isDerivation x then x.outPath
|
||||
else if isFunction x then "<CODE>"
|
||||
else if strict then
|
||||
if isAttrs x then mapAttrs (n: cleanOutput) x
|
||||
else if isList x then map cleanOutput x
|
||||
else x
|
||||
else x;
|
||||
in
|
||||
cleanOutput value
|
||||
EOF
|
||||
}
|
||||
|
||||
evalOpt(){
|
||||
evalAttr "options" "" "$@"
|
||||
evalAttr "option" "" "$@"
|
||||
}
|
||||
|
||||
evalCfg(){
|
||||
@ -90,8 +191,11 @@ evalCfg(){
|
||||
|
||||
findSources(){
|
||||
local suffix=$1
|
||||
echo "(import <nixos> {}).options${option:+.$option}.$suffix" |
|
||||
evalNix --strict
|
||||
evalNix --strict <<EOF
|
||||
$header
|
||||
|
||||
option.$suffix
|
||||
EOF
|
||||
}
|
||||
|
||||
# Given a result from nix-instantiate, recover the list of attributes it
|
||||
@ -121,13 +225,12 @@ nixMap() {
|
||||
# the output of nixos-option with other tools such as nixos-gui.
|
||||
if $xml; then
|
||||
evalNix --xml --no-location <<EOF
|
||||
$header
|
||||
|
||||
let
|
||||
reach = attrs: attrs${option:+.$option};
|
||||
nixos = import <nixos> {};
|
||||
nixpkgs = import <nixpkgs> {};
|
||||
sources = builtins.map (f: f.source);
|
||||
opt = reach nixos.options;
|
||||
cfg = reach nixos.config;
|
||||
opt = option;
|
||||
cfg = config;
|
||||
in
|
||||
|
||||
with nixpkgs.lib;
|
||||
|
@ -173,6 +173,7 @@
|
||||
peerflix = 163;
|
||||
chronos = 164;
|
||||
gitlab = 165;
|
||||
tox-bootstrapd = 166;
|
||||
|
||||
# When adding a uid, make sure it doesn't match an existing gid. And don't use uids above 399!
|
||||
|
||||
|
@ -53,7 +53,7 @@ with lib;
|
||||
mkDefault (if pathExists fn then readFile fn else "master");
|
||||
|
||||
# Note: code names must only increase in alphabetical order.
|
||||
system.nixosCodeName = "Caterpillar";
|
||||
system.nixosCodeName = "Dingo";
|
||||
|
||||
# Generate /etc/os-release. See
|
||||
# http://0pointer.de/public/systemd-man/os-release.html for the
|
||||
|
@ -286,6 +286,7 @@
|
||||
./services/networking/tcpcrypt.nix
|
||||
./services/networking/teamspeak3.nix
|
||||
./services/networking/tftpd.nix
|
||||
./services/networking/tox-bootstrapd.nix
|
||||
./services/networking/unbound.nix
|
||||
./services/networking/unifi.nix
|
||||
./services/networking/vsftpd.nix
|
||||
@ -307,6 +308,7 @@
|
||||
./services/security/fprot.nix
|
||||
./services/security/frandom.nix
|
||||
./services/security/haveged.nix
|
||||
./services/security/torify.nix
|
||||
./services/security/tor.nix
|
||||
./services/security/torsocks.nix
|
||||
./services/system/cloud-init.nix
|
||||
|
@ -105,7 +105,7 @@ in
|
||||
};
|
||||
|
||||
enableCompletion = mkOption {
|
||||
default = true;
|
||||
default = false;
|
||||
description = ''
|
||||
Enable Bash completion for all interactive bash shells.
|
||||
'';
|
||||
|
@ -61,7 +61,8 @@ in
|
||||
|
||||
agentTimeout = mkOption {
|
||||
type = types.nullOr types.string;
|
||||
default = "1h";
|
||||
default = null;
|
||||
example = "1h";
|
||||
description = ''
|
||||
How long to keep the private keys in memory. Use null to keep them forever.
|
||||
'';
|
||||
|
@ -35,7 +35,7 @@ in
|
||||
|
||||
enableHardening = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
default = true;
|
||||
description = ''
|
||||
Enable hardened VirtualBox, which ensures that only the binaries in the
|
||||
system path get access to the devices exposed by the kernel modules
|
||||
@ -54,23 +54,21 @@ in
|
||||
boot.extraModulePackages = [ virtualbox ];
|
||||
environment.systemPackages = [ virtualbox ];
|
||||
|
||||
warnings = mkIf (!cfg.enableHardening) (singleton (
|
||||
"Hardening is currently disabled for VirtualBox, because of some " +
|
||||
"issues in conjunction with host-only-interfaces. If you don't use " +
|
||||
"hostonlyifs, it's strongly recommended to set " +
|
||||
"`services.virtualboxHost.enableHardening = true'!"
|
||||
));
|
||||
|
||||
security.setuidOwners = let
|
||||
mkVboxStub = program: {
|
||||
mkSuid = program: {
|
||||
inherit program;
|
||||
source = "${virtualbox}/libexec/virtualbox/${program}";
|
||||
owner = "root";
|
||||
group = "vboxusers";
|
||||
setuid = true;
|
||||
};
|
||||
in mkIf cfg.enableHardening (map mkVboxStub [
|
||||
in mkIf cfg.enableHardening (map mkSuid [
|
||||
"VBoxHeadless"
|
||||
"VBoxNetAdpCtl"
|
||||
"VBoxNetDHCP"
|
||||
"VBoxNetNAT"
|
||||
"VBoxSDL"
|
||||
"VBoxVolInfo"
|
||||
"VirtualBox"
|
||||
]);
|
||||
|
||||
|
@ -64,7 +64,7 @@ in
|
||||
security.sudo.configFile =
|
||||
''
|
||||
# Don't edit this file. Set the NixOS options ‘security.sudo.configFile’
|
||||
# and security.sudo.extraConfig instead.
|
||||
# or ‘security.sudo.extraConfig’ instead.
|
||||
|
||||
# Environment variables to keep for root and %wheel.
|
||||
Defaults:root,%wheel env_keep+=TERMINFO_DIRS
|
||||
@ -90,11 +90,10 @@ in
|
||||
environment.etc = singleton
|
||||
{ source =
|
||||
pkgs.runCommand "sudoers"
|
||||
{src = pkgs.writeText "sudoers-in" cfg.configFile; }
|
||||
{ src = pkgs.writeText "sudoers-in" cfg.configFile; }
|
||||
# Make sure that the sudoers file is syntactically valid.
|
||||
# (currently disabled - NIXOS-66)
|
||||
"${pkgs.sudo}/sbin/visudo -f $src -c &&
|
||||
cp $src $out";
|
||||
"${pkgs.sudo}/sbin/visudo -f $src -c && cp $src $out";
|
||||
target = "sudoers";
|
||||
mode = "0440";
|
||||
};
|
||||
|
@ -15,7 +15,6 @@ let
|
||||
state_file "${cfg.dataDir}/state"
|
||||
sticker_file "${cfg.dataDir}/sticker.sql"
|
||||
log_file "syslog"
|
||||
user "mpd"
|
||||
${if cfg.network.host != "any" then
|
||||
"bind_to_address ${cfg.network.host}" else ""}
|
||||
${if cfg.network.port != 6600 then
|
||||
@ -99,6 +98,9 @@ in {
|
||||
path = [ pkgs.mpd ];
|
||||
preStart = "mkdir -p ${cfg.dataDir} && chown -R mpd:mpd ${cfg.dataDir}";
|
||||
script = "exec mpd --no-daemon ${mpdConf}";
|
||||
serviceConfig = {
|
||||
User = "mpd";
|
||||
};
|
||||
};
|
||||
|
||||
users.extraUsers.mpd = {
|
||||
|
@ -5,6 +5,13 @@ with lib;
|
||||
let
|
||||
cfg = config.services.mesos.slave;
|
||||
|
||||
mkAttributes =
|
||||
attrs: concatStringsSep ";" (mapAttrsToList
|
||||
(k: v: "${k}:${v}")
|
||||
(filterAttrs (k: v: v != null) attrs));
|
||||
attribsArg = optionalString (cfg.attributes != {})
|
||||
"--attributes=${mkAttributes cfg.attributes}";
|
||||
|
||||
in {
|
||||
|
||||
options.services.mesos = {
|
||||
@ -31,9 +38,9 @@ in {
|
||||
};
|
||||
|
||||
withHadoop = mkOption {
|
||||
description = "Add the HADOOP_HOME to the slave.";
|
||||
default = false;
|
||||
type = types.bool;
|
||||
description = "Add the HADOOP_HOME to the slave.";
|
||||
default = false;
|
||||
type = types.bool;
|
||||
};
|
||||
|
||||
workDir = mkOption {
|
||||
@ -44,10 +51,10 @@ in {
|
||||
|
||||
extraCmdLineOptions = mkOption {
|
||||
description = ''
|
||||
Extra command line options for Mesos Slave.
|
||||
Extra command line options for Mesos Slave.
|
||||
|
||||
See https://mesos.apache.org/documentation/latest/configuration/
|
||||
'';
|
||||
See https://mesos.apache.org/documentation/latest/configuration/
|
||||
'';
|
||||
default = [ "" ];
|
||||
type = types.listOf types.string;
|
||||
example = [ "--gc_delay=3days" ];
|
||||
@ -62,6 +69,19 @@ in {
|
||||
type = types.str;
|
||||
};
|
||||
|
||||
attributes = mkOption {
|
||||
description = ''
|
||||
Machine attributes for the slave instance.
|
||||
|
||||
Use caution when changing this; you may need to manually reset slave
|
||||
metadata before the slave can re-register.
|
||||
'';
|
||||
default = {};
|
||||
type = types.attrsOf types.str;
|
||||
example = { rack = "aa";
|
||||
host = "aabc123";
|
||||
os = "nixos"; };
|
||||
};
|
||||
};
|
||||
|
||||
};
|
||||
@ -74,20 +94,21 @@ in {
|
||||
after = [ "network-interfaces.target" ];
|
||||
environment.MESOS_CONTAINERIZERS = "docker,mesos";
|
||||
serviceConfig = {
|
||||
ExecStart = ''
|
||||
${pkgs.mesos}/bin/mesos-slave \
|
||||
--port=${toString cfg.port} \
|
||||
--master=${cfg.master} \
|
||||
${optionalString cfg.withHadoop "--hadoop-home=${pkgs.hadoop}"} \
|
||||
--work_dir=${cfg.workDir} \
|
||||
--logging_level=${cfg.logLevel} \
|
||||
--docker=${pkgs.docker}/libexec/docker/docker \
|
||||
${toString cfg.extraCmdLineOptions}
|
||||
'';
|
||||
PermissionsStartOnly = true;
|
||||
ExecStart = ''
|
||||
${pkgs.mesos}/bin/mesos-slave \
|
||||
--port=${toString cfg.port} \
|
||||
--master=${cfg.master} \
|
||||
${optionalString cfg.withHadoop "--hadoop-home=${pkgs.hadoop}"} \
|
||||
${attribsArg} \
|
||||
--work_dir=${cfg.workDir} \
|
||||
--logging_level=${cfg.logLevel} \
|
||||
--docker=${pkgs.docker}/libexec/docker/docker \
|
||||
${toString cfg.extraCmdLineOptions}
|
||||
'';
|
||||
PermissionsStartOnly = true;
|
||||
};
|
||||
preStart = ''
|
||||
mkdir -m 0700 -p ${cfg.workDir}
|
||||
mkdir -m 0700 -p ${cfg.workDir}
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
@ -86,7 +86,7 @@ in
|
||||
systemd.services."synergy-client" = {
|
||||
after = [ "network.target" ];
|
||||
description = "Synergy client";
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
wantedBy = optional cfgC.autoStart [ "multi-user.target" ];
|
||||
path = [ pkgs.synergy ];
|
||||
serviceConfig.ExecStart = ''${pkgs.synergy}/bin/synergyc -f ${optionalString (cfgC.screenName != "") "-n ${cfgC.screenName}"} ${cfgC.serverAddress}'';
|
||||
};
|
||||
@ -95,7 +95,7 @@ in
|
||||
systemd.services."synergy-server" = {
|
||||
after = [ "network.target" ];
|
||||
description = "Synergy server";
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
wantedBy = optional cfgS.autoStart [ "multi-user.target" ];
|
||||
path = [ pkgs.synergy ];
|
||||
serviceConfig.ExecStart = ''${pkgs.synergy}/bin/synergys -c ${cfgS.configFile} -f ${optionalString (cfgS.address != "") "-a ${cfgS.address}"} ${optionalString (cfgS.screenName != "") "-n ${cfgS.screenName}" }'';
|
||||
};
|
||||
|
@ -118,7 +118,7 @@ in
|
||||
systemd.services.strongswan = {
|
||||
description = "strongSwan IPSec Service";
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
path = with pkgs; [ kmod ]; # XXX Linux
|
||||
path = with pkgs; [ kmod iproute iptables utillinux ]; # XXX Linux
|
||||
wants = [ "keys.target" ];
|
||||
after = [ "network.target" "keys.target" ];
|
||||
environment = {
|
||||
|
80
nixos/modules/services/networking/tox-bootstrapd.nix
Normal file
80
nixos/modules/services/networking/tox-bootstrapd.nix
Normal file
@ -0,0 +1,80 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
home = "/var/lib/tox-bootstrapd";
|
||||
PIDFile = "${home}/pid";
|
||||
|
||||
pkg = pkgs.libtoxcore;
|
||||
cfg = config.services.toxBootstrapd;
|
||||
cfgFile = builtins.toFile "tox-bootstrapd.conf"
|
||||
''
|
||||
port = ${toString cfg.port}
|
||||
keys_file_path = "${home}/keys"
|
||||
pid_file_path = "${PIDFile}"
|
||||
${cfg.extraConfig}
|
||||
'';
|
||||
in
|
||||
{
|
||||
options =
|
||||
{ services.toxBootstrapd =
|
||||
{ enable = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description =
|
||||
''
|
||||
Whether to enable the Tox DHT boostrap daemon.
|
||||
'';
|
||||
};
|
||||
|
||||
port = mkOption {
|
||||
type = types.int;
|
||||
default = 33445;
|
||||
description = "Listening port (UDP).";
|
||||
};
|
||||
|
||||
keysFile = mkOption {
|
||||
type = types.str;
|
||||
default = "${home}/keys";
|
||||
description = "Node key file.";
|
||||
};
|
||||
|
||||
extraConfig = mkOption {
|
||||
type = types.lines;
|
||||
default = "";
|
||||
description =
|
||||
''
|
||||
Configuration for boostrap daemon.
|
||||
See <link xlink:href="https://github.com/irungentoo/toxcore/blob/master/other/bootstrap_daemon/tox-bootstrapd.conf"/>
|
||||
and <link xlink:href="http://wiki.tox.im/Nodes"/>.
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
config = mkIf config.services.toxBootstrapd.enable {
|
||||
|
||||
users.extraUsers = singleton
|
||||
{ name = "tox-bootstrapd";
|
||||
uid = config.ids.uids.tox-bootstrapd;
|
||||
description = "Tox bootstrap daemon user";
|
||||
inherit home;
|
||||
createHome = true;
|
||||
};
|
||||
|
||||
systemd.services.tox-bootstrapd = {
|
||||
description = "Tox DHT bootstrap daemon";
|
||||
after = [ "network.target" ];
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
serviceConfig =
|
||||
{ ExecStart = "${pkg}/bin/tox-bootstrapd ${cfgFile}";
|
||||
Type = "forking";
|
||||
inherit PIDFile;
|
||||
User = "tox-bootstrapd";
|
||||
};
|
||||
};
|
||||
|
||||
};
|
||||
}
|
@ -17,7 +17,8 @@ let
|
||||
''
|
||||
# Client connection config
|
||||
+ optionalString cfg.client.enable ''
|
||||
SOCKSPort ${cfg.client.socksListenAddress}
|
||||
SOCKSPort ${cfg.client.socksListenAddress} IsolateDestAddr
|
||||
SOCKSPort ${cfg.client.socksListenAddressFaster}
|
||||
${opt "SocksPolicy" cfg.client.socksPolicy}
|
||||
''
|
||||
# Relay config
|
||||
@ -93,10 +94,23 @@ in
|
||||
example = "192.168.0.1:9100";
|
||||
description = ''
|
||||
Bind to this address to listen for connections from
|
||||
Socks-speaking applications.
|
||||
Socks-speaking applications. Provides strong circuit
|
||||
isolation, separate circuit per IP address.
|
||||
'';
|
||||
};
|
||||
|
||||
socksListenAddressFaster = mkOption {
|
||||
type = types.str;
|
||||
default = "127.0.0.1:9063";
|
||||
example = "192.168.0.1:9101";
|
||||
description = ''
|
||||
Bind to this address to listen for connections from
|
||||
Socks-speaking applications. Same as socksListenAddress
|
||||
but uses weaker circuit isolation to provide performance
|
||||
suitable for a web browser.
|
||||
'';
|
||||
};
|
||||
|
||||
socksPolicy = mkOption {
|
||||
type = types.nullOr types.str;
|
||||
default = null;
|
||||
@ -108,6 +122,22 @@ in
|
||||
SocksListenAddress.
|
||||
'';
|
||||
};
|
||||
|
||||
privoxy.enable = mkOption {
|
||||
default = true;
|
||||
description = ''
|
||||
Whether to enable and configure the system Privoxy to use Tor's
|
||||
faster port, suitable for HTTP.
|
||||
|
||||
To have anonymity, protocols need to be scrubbed of identifying
|
||||
information, and this can be accomplished for HTTP by Privoxy.
|
||||
|
||||
Privoxy can also be useful for KDE torification. A good setup would be:
|
||||
setting SOCKS proxy to the default Tor port, providing maximum
|
||||
circuit isolation where possible; and setting HTTP proxy to Privoxy
|
||||
to route HTTP traffic over faster, but less isolated port.
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
relay = {
|
||||
@ -322,5 +352,16 @@ in
|
||||
};
|
||||
|
||||
environment.systemPackages = [ pkgs.tor ];
|
||||
|
||||
services.privoxy = mkIf (cfg.client.enable && cfg.client.privoxy.enable) {
|
||||
enable = true;
|
||||
extraConfig = ''
|
||||
forward-socks4a / ${cfg.client.socksListenAddressFaster} .
|
||||
toggle 1
|
||||
enable-remote-toggle 0
|
||||
enable-edit-actions 0
|
||||
enable-remote-http-toggle 0
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
||||
|
69
nixos/modules/services/security/torify.nix
Normal file
69
nixos/modules/services/security/torify.nix
Normal file
@ -0,0 +1,69 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
with lib;
|
||||
let
|
||||
|
||||
cfg = config.services.tor;
|
||||
|
||||
torify = pkgs.writeTextFile {
|
||||
name = "tsocks";
|
||||
text = ''
|
||||
#!${pkgs.stdenv.shell}
|
||||
TSOCKS_CONF_FILE=${pkgs.writeText "tsocks.conf" cfg.tsocks.config} LD_PRELOAD="${pkgs.tsocks}/lib/libtsocks.so $LD_PRELOAD" "$@"
|
||||
'';
|
||||
executable = true;
|
||||
destination = "/bin/tsocks";
|
||||
};
|
||||
|
||||
in
|
||||
|
||||
{
|
||||
|
||||
###### interface
|
||||
|
||||
options = {
|
||||
|
||||
services.tor.tsocks = {
|
||||
|
||||
enable = mkOption {
|
||||
default = cfg.enable && cfg.client.enable;
|
||||
description = ''
|
||||
Whether to build tsocks wrapper script to relay application traffic via TOR.
|
||||
'';
|
||||
};
|
||||
|
||||
server = mkOption {
|
||||
default = "localhost:9050";
|
||||
example = "192.168.0.20";
|
||||
description = ''
|
||||
IP address of TOR client to use.
|
||||
'';
|
||||
};
|
||||
|
||||
config = mkOption {
|
||||
default = "";
|
||||
description = ''
|
||||
Extra configuration. Contents will be added verbatim to TSocks
|
||||
configuration file.
|
||||
'';
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
###### implementation
|
||||
|
||||
config = mkIf cfg.tsocks.enable {
|
||||
|
||||
environment.systemPackages = [ torify ]; # expose it to the users
|
||||
|
||||
services.tor.tsocks.config = ''
|
||||
server = ${toString(head (splitString ":" cfg.tsocks.server))}
|
||||
server_port = ${toString(tail (splitString ":" cfg.tsocks.server))}
|
||||
|
||||
local = 127.0.0.0/255.128.0.0
|
||||
local = 127.128.0.0/255.192.0.0
|
||||
'';
|
||||
};
|
||||
|
||||
}
|
@ -6,9 +6,9 @@ let
|
||||
cfg = config.services.tor.torsocks;
|
||||
optionalNullStr = b: v: optionalString (b != null) v;
|
||||
|
||||
configFile = ''
|
||||
TorAddress ${toString (head (splitString ":" cfg.server))}
|
||||
TorPort ${toString (tail (splitString ":" cfg.server))}
|
||||
configFile = server: ''
|
||||
TorAddress ${toString (head (splitString ":" server))}
|
||||
TorPort ${toString (tail (splitString ":" server))}
|
||||
|
||||
OnionAddrRange ${cfg.onionAddrRange}
|
||||
|
||||
@ -19,13 +19,24 @@ let
|
||||
|
||||
AllowInbound ${if cfg.allowInbound then "1" else "0"}
|
||||
'';
|
||||
|
||||
wrapTorsocks = name: server: pkgs.writeTextFile {
|
||||
name = name;
|
||||
text = ''
|
||||
#!${pkgs.stdenv.shell}
|
||||
TORSOCKS_CONF_FILE=${pkgs.writeText "torsocks.conf" (configFile server)} ${pkgs.torsocks}/bin/torsocks "$@"
|
||||
'';
|
||||
executable = true;
|
||||
destination = "/bin/${name}";
|
||||
};
|
||||
|
||||
in
|
||||
{
|
||||
options = {
|
||||
services.tor.torsocks = {
|
||||
enable = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
default = config.services.tor.enable && config.services.tor.client.enable;
|
||||
description = ''
|
||||
Whether to build <literal>/etc/tor/torsocks.conf</literal>
|
||||
containing the specified global torsocks configuration.
|
||||
@ -42,6 +53,16 @@ in
|
||||
'';
|
||||
};
|
||||
|
||||
fasterServer = mkOption {
|
||||
type = types.str;
|
||||
default = "127.0.0.1:9063";
|
||||
example = "192.168.0.20:1234";
|
||||
description = ''
|
||||
IP/Port of the Tor SOCKS server for torsocks-faster wrapper suitable for HTTP.
|
||||
Currently, hostnames are NOT supported by torsocks.
|
||||
'';
|
||||
};
|
||||
|
||||
onionAddrRange = mkOption {
|
||||
type = types.str;
|
||||
default = "127.42.42.0/24";
|
||||
@ -89,10 +110,10 @@ in
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
environment.systemPackages = [ pkgs.torsocks ];
|
||||
environment.systemPackages = [ pkgs.torsocks (wrapTorsocks "torsocks-faster" cfg.fasterServer) ];
|
||||
|
||||
environment.etc =
|
||||
[ { source = pkgs.writeText "torsocks.conf" configFile;
|
||||
[ { source = pkgs.writeText "torsocks.conf" (configFile cfg.server);
|
||||
target = "tor/torsocks.conf";
|
||||
}
|
||||
];
|
||||
|
@ -152,7 +152,9 @@ in
|
||||
xorg.xauth # used by kdesu
|
||||
pkgs.shared_desktop_ontologies # used by nepomuk
|
||||
pkgs.strigi # used by nepomuk
|
||||
pkgs.kde4.akonadi
|
||||
pkgs.mysql # used by akonadi
|
||||
pkgs.kde4.kdepim_runtime
|
||||
]
|
||||
++ lib.optional config.hardware.pulseaudio.enable pkgs.kde4.kmix # Perhaps this should always be enabled
|
||||
++ lib.optional config.hardware.bluetooth.enable pkgs.kde4.bluedevil
|
||||
|
@ -189,7 +189,7 @@ in
|
||||
xserverArgs = mkOption {
|
||||
type = types.listOf types.str;
|
||||
default = [];
|
||||
example = [ "-ac" "-logverbose" "-nolisten tcp" ];
|
||||
example = [ "-ac" "-logverbose" "-verbose" "-nolisten tcp" ];
|
||||
description = "List of arguments for the X server.";
|
||||
apply = toString;
|
||||
};
|
||||
|
@ -5,6 +5,7 @@ with lib;
|
||||
let
|
||||
|
||||
cfg = config.services.xserver.windowManager.awesome;
|
||||
awesome = cfg.package;
|
||||
|
||||
in
|
||||
|
||||
@ -14,9 +15,24 @@ in
|
||||
|
||||
options = {
|
||||
|
||||
services.xserver.windowManager.awesome.enable = mkOption {
|
||||
default = false;
|
||||
description = "Enable the Awesome window manager.";
|
||||
services.xserver.windowManager.awesome = {
|
||||
|
||||
enable = mkEnableOption "Awesome window manager";
|
||||
|
||||
luaModules = mkOption {
|
||||
default = [];
|
||||
type = types.listOf types.package;
|
||||
description = "List of lua packages available for being used in the Awesome configuration.";
|
||||
example = literalExample "[ luaPackages.oocairo ]";
|
||||
};
|
||||
|
||||
package = mkOption {
|
||||
default = null;
|
||||
type = types.nullOr types.package;
|
||||
description = "Package to use for running the Awesome WM.";
|
||||
apply = pkg: if pkg == null then pkgs.awesome else pkg;
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
};
|
||||
@ -30,12 +46,17 @@ in
|
||||
{ name = "awesome";
|
||||
start =
|
||||
''
|
||||
${pkgs.awesome}/bin/awesome &
|
||||
${concatMapStrings (pkg: ''
|
||||
export LUA_CPATH=$LUA_CPATH''${LUA_CPATH:+;}${pkg}/lib/lua/${awesome.lua.luaversion}/?.so
|
||||
export LUA_PATH=$LUA_PATH''${LUA_PATH:+;}${pkg}/lib/lua/${awesome.lua.luaversion}/?.lua
|
||||
'') cfg.luaModules}
|
||||
|
||||
${awesome}/bin/awesome &
|
||||
waitPID=$!
|
||||
'';
|
||||
};
|
||||
|
||||
environment.systemPackages = [ pkgs.awesome ];
|
||||
environment.systemPackages = [ awesome ];
|
||||
|
||||
};
|
||||
|
||||
|
@ -483,8 +483,6 @@ in
|
||||
|
||||
services.xserver.displayManager.xserverArgs =
|
||||
[ "-ac"
|
||||
"-logverbose"
|
||||
"-verbose"
|
||||
"-terminate"
|
||||
"-logfile" "/var/log/X.${toString cfg.display}.log"
|
||||
"-config ${configFile}"
|
||||
|
@ -181,7 +181,7 @@ while (my ($unit, $state) = each %{$activePrev}) {
|
||||
} elsif ($unit =~ /\.mount$/) {
|
||||
# Reload the changed mount unit to force a remount.
|
||||
write_file($reloadListFile, { append => 1 }, "$unit\n");
|
||||
} elsif ($unit =~ /\.socket$/ || $unit =~ /\.path$/) {
|
||||
} elsif ($unit =~ /\.socket$/ || $unit =~ /\.path$/ || $unit =~ /\.slice$/) {
|
||||
# FIXME: do something?
|
||||
} else {
|
||||
my $unitInfo = parseUnit($newUnitFile);
|
||||
|
@ -56,9 +56,10 @@ echo
|
||||
|
||||
|
||||
# Mount special file systems.
|
||||
mkdir -p /etc
|
||||
mkdir -p /etc/udev
|
||||
touch /etc/fstab # to shut up mount
|
||||
touch /etc/mtab # to shut up mke2fs
|
||||
touch /etc/udev/hwdb.bin # to shut up udev
|
||||
touch /etc/initrd-release
|
||||
mkdir -p /proc
|
||||
mount -t proc proc /proc
|
||||
|
@ -85,6 +85,12 @@ in
|
||||
optionalString (cfg.defaultGatewayWindowSize != null)
|
||||
"window ${cfg.defaultGatewayWindowSize}"} || true
|
||||
''}
|
||||
${optionalString (cfg.defaultGateway6 != null && cfg.defaultGateway6 != "") ''
|
||||
# FIXME: get rid of "|| true" (necessary to make it idempotent).
|
||||
ip -6 route add ::/0 via "${cfg.defaultGateway6}" ${
|
||||
optionalString (cfg.defaultGatewayWindowSize != null)
|
||||
"window ${cfg.defaultGatewayWindowSize}"} || true
|
||||
''}
|
||||
'';
|
||||
};
|
||||
|
||||
|
@ -51,6 +51,8 @@ in
|
||||
DHCP = override (dhcpStr cfg.useDHCP);
|
||||
} // optionalAttrs (cfg.defaultGateway != null) {
|
||||
gateway = override [ cfg.defaultGateway ];
|
||||
} // optionalAttrs (cfg.defaultGateway6 != null) {
|
||||
gateway = override [ cfg.defaultGateway6 ];
|
||||
} // optionalAttrs (domains != [ ]) {
|
||||
domains = override domains;
|
||||
};
|
||||
|
@ -233,8 +233,12 @@ in
|
||||
The 32-bit host ID of the machine, formatted as 8 hexadecimal characters.
|
||||
|
||||
You should try to make this ID unique among your machines. You can
|
||||
generate a random 32-bit ID using the following command:
|
||||
generate a random 32-bit ID using the following commands:
|
||||
|
||||
<literal>cksum /etc/machine-id | while read c rest; do printf "%x" $c; done</literal>
|
||||
|
||||
(this derives it from the machine-id that systemd generates) or
|
||||
|
||||
<literal>head -c4 /dev/urandom | od -A none -t x4</literal>
|
||||
'';
|
||||
};
|
||||
@ -256,6 +260,15 @@ in
|
||||
'';
|
||||
};
|
||||
|
||||
networking.defaultGateway6 = mkOption {
|
||||
default = null;
|
||||
example = "2001:4d0:1e04:895::1";
|
||||
type = types.nullOr types.str;
|
||||
description = ''
|
||||
The default ipv6 gateway. It can be left empty if it is auto-detected through DHCP.
|
||||
'';
|
||||
};
|
||||
|
||||
networking.defaultGatewayWindowSize = mkOption {
|
||||
default = null;
|
||||
example = 524288;
|
||||
|
@ -57,8 +57,7 @@ let
|
||||
-name ${vmName} \
|
||||
-m ${toString config.virtualisation.memorySize} \
|
||||
${optionalString (pkgs.stdenv.system == "x86_64-linux") "-cpu kvm64"} \
|
||||
-net nic,vlan=0,model=virtio \
|
||||
-net user,vlan=0''${QEMU_NET_OPTS:+,$QEMU_NET_OPTS} \
|
||||
${concatStringsSep " " config.virtualisation.qemu.networkingOptions} \
|
||||
-virtfs local,path=/nix/store,security_model=none,mount_tag=store \
|
||||
-virtfs local,path=$TMPDIR/xchg,security_model=none,mount_tag=xchg \
|
||||
-virtfs local,path=''${SHARED_DIR:-$TMPDIR/xchg},security_model=none,mount_tag=shared \
|
||||
@ -248,12 +247,31 @@ in
|
||||
description = "Primary IP address used in /etc/hosts.";
|
||||
};
|
||||
|
||||
virtualisation.qemu.options =
|
||||
mkOption {
|
||||
default = [];
|
||||
example = [ "-vga std" ];
|
||||
description = "Options passed to QEMU.";
|
||||
};
|
||||
virtualisation.qemu = {
|
||||
options =
|
||||
mkOption {
|
||||
default = [];
|
||||
example = [ "-vga std" ];
|
||||
description = "Options passed to QEMU.";
|
||||
};
|
||||
|
||||
networkingOptions =
|
||||
mkOption {
|
||||
default = [
|
||||
"-net nic,vlan=0,model=virtio"
|
||||
"-net user,vlan=0\${QEMU_NET_OPTS:+,$QEMU_NET_OPTS}"
|
||||
];
|
||||
type = types.listOf types.str;
|
||||
description = ''
|
||||
Networking-related command-line options that should be passed to qemu.
|
||||
The default is to use userspace networking (slirp).
|
||||
|
||||
If you override this option, be adviced to keep
|
||||
''${QEMU_NET_OPTS:+,$QEMU_NET_OPTS} (as seen in the default)
|
||||
to keep the default runtime behaviour.
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
virtualisation.useBootLoader =
|
||||
mkOption {
|
||||
|
@ -43,11 +43,6 @@ import ./make-test.nix ({ pkgs, ... }: with pkgs.pythonPackages; rec {
|
||||
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
|
||||
@ -73,8 +68,11 @@ import ./make-test.nix ({ pkgs, ... }: with pkgs.pythonPackages; rec {
|
||||
-e 's|_STORE_FILE_PATH = .*|_STORE_FILE_PATH = tempfile.gettempdir()|' \
|
||||
tests/loopbackedtestcase.py
|
||||
|
||||
PYTHONPATH=".:$(mkPythonPath "${blivet}" "${mock}" | paste -sd :)" \
|
||||
python "${pythonTestRunner}"
|
||||
PYTHONPATH=".:$(< "${pkgs.stdenv.mkDerivation {
|
||||
name = "blivet-pythonpath";
|
||||
buildInputs = [ blivet mock ];
|
||||
buildCommand = "echo \"$PYTHONPATH\" > \"$out\"";
|
||||
}}")" python "${pythonTestRunner}"
|
||||
'';
|
||||
|
||||
testScript = ''
|
||||
|
@ -43,7 +43,7 @@ import ./make-test.nix {
|
||||
$machine->fail("curl --fail --connect-timeout 2 http://$ip/ > /dev/null");
|
||||
|
||||
# Make sure we have a NixOS tree (required by ‘nixos-container create’).
|
||||
$machine->succeed("nix-env -qa -A nixos.pkgs.hello >&2");
|
||||
$machine->succeed("PAGER=cat nix-env -qa -A nixos.pkgs.hello >&2");
|
||||
|
||||
# Create some containers imperatively.
|
||||
my $id1 = $machine->succeed("nixos-container create foo --ensure-unique-name");
|
||||
|
@ -8,6 +8,7 @@ import ./make-test.nix {
|
||||
virtualisation.memorySize = 768;
|
||||
services.gitlab.enable = true;
|
||||
services.gitlab.databasePassword = "gitlab";
|
||||
systemd.services.gitlab.serviceConfig.TimeoutStartSec = "10min";
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -8,6 +8,10 @@ import ./make-test.nix {
|
||||
slave = {
|
||||
enable = true;
|
||||
master = "zk://localhost:2181/mesos";
|
||||
attributes = {
|
||||
tag1 = "foo";
|
||||
tag2 = "bar";
|
||||
};
|
||||
};
|
||||
master = {
|
||||
enable = true;
|
||||
|
@ -1,5 +1,7 @@
|
||||
import ./make-test.nix ({ pkgs, ... }: with pkgs.lib; let
|
||||
|
||||
debug = false;
|
||||
|
||||
testVMConfig = vmName: attrs: { config, pkgs, ... }: {
|
||||
boot.kernelParams = let
|
||||
miniInit = ''
|
||||
@ -64,7 +66,7 @@ import ./make-test.nix ({ pkgs, ... }: with pkgs.lib; let
|
||||
rotated = map (i: "${logfile}.${toString i}") (range 1 9);
|
||||
all = concatMapStringsSep " " (f: "\"${f}\"") ([logfile] ++ rotated);
|
||||
logcmd = "tail -F ${all} 2> /dev/null | logger -t \"${tag}\"";
|
||||
in "$machine->execute(ru '${logcmd} & disown');";
|
||||
in optionalString debug "$machine->execute(ru '${logcmd} & disown');";
|
||||
|
||||
testVM = vmName: vmScript: let
|
||||
cfg = (import ../lib/eval-config.nix {
|
||||
@ -297,14 +299,16 @@ import ./make-test.nix ({ pkgs, ... }: with pkgs.lib; let
|
||||
in {
|
||||
name = "virtualbox";
|
||||
|
||||
machine = { pkgs, ... }: {
|
||||
machine = { pkgs, lib, config, ... }: {
|
||||
imports = let
|
||||
mkVMConf = name: val: val.machine // { key = "${name}-config"; };
|
||||
vmConfigs = mapAttrsToList mkVMConf vboxVMs;
|
||||
in [ ./common/user-account.nix ./common/x11.nix ] ++ vmConfigs;
|
||||
virtualisation.memorySize = 768;
|
||||
services.virtualboxHost.enable = true;
|
||||
users.extraUsers.alice.extraGroups = [ "vboxusers" ];
|
||||
users.extraUsers.alice.extraGroups = let
|
||||
inherit (config.services.virtualboxHost) enableHardening;
|
||||
in lib.mkIf enableHardening (lib.singleton "vboxusers");
|
||||
};
|
||||
|
||||
testScript = ''
|
||||
|
@ -4,20 +4,19 @@
|
||||
, mpg123, neon, faad2
|
||||
}:
|
||||
|
||||
let
|
||||
version = "3.5.1";
|
||||
in
|
||||
let version = "3.5.2"; in
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "audacious-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://distfiles.audacious-media-player.org/audacious-${version}.tar.bz2";
|
||||
sha256 = "01wmlvpp540gdjw759wif3byh98h3b3q6f5wawzp0b0ivqd0wf6z";
|
||||
sha256 = "0mhrdj76h0g6q197wgp8rxk6gqsrirrw49hfidcb5b7q5rlvj59r";
|
||||
};
|
||||
|
||||
pluginsSrc = fetchurl {
|
||||
url = "http://distfiles.audacious-media-player.org/audacious-plugins-${version}.tar.bz2";
|
||||
sha256 = "09lyvi15hbn3pvb2izyz2bm4021917mhcdrwxrn3q3sjvx337np6";
|
||||
sha256 = "1nacd8n46q3pqnwavq3i2ayls609gvxfcp3qqpcsfcdfz3bh15hp";
|
||||
};
|
||||
|
||||
buildInputs =
|
||||
|
@ -1,6 +1,6 @@
|
||||
{ stdenv, fetchurl, pkgconfig, intltool, gtk3, glib, libid3tag, id3lib, taglib
|
||||
, libvorbis, libogg, flac, itstool, libxml2, gsettings_desktop_schemas
|
||||
, makeWrapper, gnome_icon_theme
|
||||
, makeWrapper, gnome_icon_theme, dconf
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
@ -14,7 +14,8 @@ stdenv.mkDerivation rec {
|
||||
|
||||
preFixup = ''
|
||||
wrapProgram $out/bin/easytag \
|
||||
--prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH:$out/share"
|
||||
--prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH:$out/share" \
|
||||
--prefix GIO_EXTRA_MODULES : "${dconf}/lib/gio/modules"
|
||||
'';
|
||||
|
||||
NIX_LDFLAGS = "-lid3tag -lz";
|
||||
@ -22,7 +23,7 @@ stdenv.mkDerivation rec {
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
buildInputs = [
|
||||
pkgconfig intltool gtk3 glib libid3tag id3lib taglib libvorbis libogg flac
|
||||
itstool libxml2 gsettings_desktop_schemas gnome_icon_theme
|
||||
itstool libxml2 gsettings_desktop_schemas gnome_icon_theme dconf
|
||||
];
|
||||
|
||||
meta = {
|
||||
|
31
pkgs/applications/audio/mimms/default.nix
Normal file
31
pkgs/applications/audio/mimms/default.nix
Normal file
@ -0,0 +1,31 @@
|
||||
{ fetchurl, stdenv, pythonPackages, libmms }:
|
||||
|
||||
let version = "3.2";
|
||||
in
|
||||
pythonPackages.buildPythonPackage {
|
||||
name = "mimms-${version}";
|
||||
src = fetchurl {
|
||||
url = "http://download.savannah.gnu.org/releases/mimms/mimms-${version}.tar.bz2";
|
||||
sha256 = "0zmcd670mpq85cs3nvdq3i805ba0d1alqahfy1m9cpf7kxrivfml";
|
||||
};
|
||||
|
||||
postInstall = ''
|
||||
wrapProgram $out/bin/mimms \
|
||||
--prefix LD_LIBRARY_PATH : ${libmms}/lib
|
||||
'';
|
||||
|
||||
meta = {
|
||||
homepage = https://savannah.nongnu.org/projects/mimms/;
|
||||
license = stdenv.lib.licenses.gpl3;
|
||||
description = "An mms (e.g. mms://) stream downloader";
|
||||
|
||||
longDescription = ''
|
||||
mimms is a program designed to allow you to download streams
|
||||
using the MMS protocol and save them to your computer, as
|
||||
opposed to watching them live. Similar functionality is
|
||||
available in full media player suites such as Xine, MPlayer,
|
||||
and VLC, but mimms is quick and easy to use and, for the time
|
||||
being, remains a useful program.
|
||||
'';
|
||||
};
|
||||
}
|
@ -1,10 +1,11 @@
|
||||
{ stdenv, fetchurl, python, pythonPackages, cdparanoia, cdrdao
|
||||
, pygobject, gst_python, gst_plugins_base, gst_plugins_good
|
||||
, setuptools, utillinux, makeWrapper }:
|
||||
, setuptools, utillinux, makeWrapper, substituteAll }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "morituri-${version}";
|
||||
version = "0.2.3";
|
||||
namePrefix = "";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://thomas.apestaart.org/download/morituri/${name}.tar.bz2";
|
||||
@ -21,23 +22,12 @@ stdenv.mkDerivation rec {
|
||||
gst_plugins_base gst_plugins_good
|
||||
] ++ pythonPath;
|
||||
|
||||
patches = [ ./paths.patch ];
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace morituri/extern/python-command/scripts/help2man \
|
||||
--replace /usr/bin/python ${python}/bin/python
|
||||
|
||||
substituteInPlace morituri/common/program.py \
|
||||
--replace umount ${utillinux}/bin/umount \
|
||||
--replace \'eject \'${utillinux}/bin/eject
|
||||
|
||||
substituteInPlace morituri/program/cdparanoia.py \
|
||||
--replace '"cdparanoia"' '"${cdparanoia}/bin/cdparanoia"'
|
||||
|
||||
substituteInPlace morituri/program/cdrdao.py \
|
||||
--replace "['cdrdao', ]" "['${cdrdao}/bin/cdrdao', ]" \
|
||||
--replace '"cdrdao"' '"${cdrdao}/bin/cdrdao"'
|
||||
'';
|
||||
patches = [
|
||||
(substituteAll {
|
||||
src = ./paths.patch;
|
||||
inherit cdrdao cdparanoia python utillinux;
|
||||
})
|
||||
];
|
||||
|
||||
# This package contains no binaries to patch or strip.
|
||||
dontPatchELF = true;
|
||||
|
@ -1,6 +1,6 @@
|
||||
diff -Nurp morituri-0.2.3-orig/doc/Makefile.in morituri-0.2.3/doc/Makefile.in
|
||||
--- morituri-0.2.3-orig/doc/Makefile.in 2014-11-01 00:13:01.231364181 +0100
|
||||
+++ morituri-0.2.3/doc/Makefile.in 2014-11-01 00:13:56.691812229 +0100
|
||||
--- morituri-0.2.3-orig/doc/Makefile.in 2014-12-23 12:44:46.222410092 +0100
|
||||
+++ morituri-0.2.3/doc/Makefile.in 2014-12-23 12:46:49.619756940 +0100
|
||||
@@ -486,7 +486,7 @@ morituri.ics: $(top_srcdir)/morituri.doa
|
||||
-moap doap -f $(top_srcdir)/morituri.doap ical > morituri.ics
|
||||
|
||||
@ -10,3 +10,82 @@ diff -Nurp morituri-0.2.3-orig/doc/Makefile.in morituri-0.2.3/doc/Makefile.in
|
||||
|
||||
clean-local:
|
||||
@rm -rf reference
|
||||
diff -Nurp morituri-0.2.3-orig/morituri/common/program.py morituri-0.2.3/morituri/common/program.py
|
||||
--- morituri-0.2.3-orig/morituri/common/program.py 2014-12-23 12:44:46.218410048 +0100
|
||||
+++ morituri-0.2.3/morituri/common/program.py 2014-12-23 12:46:49.647757245 +0100
|
||||
@@ -92,13 +92,13 @@ class Program(log.Loggable):
|
||||
"""
|
||||
Load the given device.
|
||||
"""
|
||||
- os.system('eject -t %s' % device)
|
||||
+ os.system('@utillinux@/bin/eject -t %s' % device)
|
||||
|
||||
def ejectDevice(self, device):
|
||||
"""
|
||||
Eject the given device.
|
||||
"""
|
||||
- os.system('eject %s' % device)
|
||||
+ os.system('@utillinux@/bin/eject %s' % device)
|
||||
|
||||
def unmountDevice(self, device):
|
||||
"""
|
||||
@@ -112,7 +112,7 @@ class Program(log.Loggable):
|
||||
proc = open('/proc/mounts').read()
|
||||
if device in proc:
|
||||
print 'Device %s is mounted, unmounting' % device
|
||||
- os.system('umount %s' % device)
|
||||
+ os.system('@utillinux@/bin/umount %s' % device)
|
||||
|
||||
def getFastToc(self, runner, toc_pickle, device):
|
||||
"""
|
||||
diff -Nurp morituri-0.2.3-orig/morituri/extern/python-command/scripts/help2man morituri-0.2.3/morituri/extern/python-command/scripts/help2man
|
||||
--- morituri-0.2.3-orig/morituri/extern/python-command/scripts/help2man 2014-12-23 12:44:46.206409916 +0100
|
||||
+++ morituri-0.2.3/morituri/extern/python-command/scripts/help2man 2014-12-23 12:46:49.631757074 +0100
|
||||
@@ -1,4 +1,4 @@
|
||||
-#!/usr/bin/python
|
||||
+#!@python@/bin/python
|
||||
|
||||
# -*- Mode: Python -*-
|
||||
# vi:si:et:sw=4:sts=4:ts=4
|
||||
diff -Nurp morituri-0.2.3-orig/morituri/program/cdparanoia.py morituri-0.2.3/morituri/program/cdparanoia.py
|
||||
--- morituri-0.2.3-orig/morituri/program/cdparanoia.py 2014-12-23 12:44:46.202409873 +0100
|
||||
+++ morituri-0.2.3/morituri/program/cdparanoia.py 2014-12-23 12:46:49.659757376 +0100
|
||||
@@ -278,7 +278,7 @@ class ReadTrackTask(log.Loggable, task.T
|
||||
stopTrack, stopOffset)
|
||||
|
||||
bufsize = 1024
|
||||
- argv = ["cdparanoia", "--stderr-progress",
|
||||
+ argv = ["@cdparanoia@/bin/cdparanoia", "--stderr-progress",
|
||||
"--sample-offset=%d" % self._offset, ]
|
||||
if self._device:
|
||||
argv.extend(["--force-cdrom-device", self._device, ])
|
||||
@@ -551,7 +551,7 @@ _VERSION_RE = re.compile(
|
||||
|
||||
def getCdParanoiaVersion():
|
||||
getter = common.VersionGetter('cdparanoia',
|
||||
- ["cdparanoia", "-V"],
|
||||
+ ["@cdparanoia@/bin/cdparanoia", "-V"],
|
||||
_VERSION_RE,
|
||||
"%(version)s %(release)s")
|
||||
|
||||
diff -Nurp morituri-0.2.3-orig/morituri/program/cdrdao.py morituri-0.2.3/morituri/program/cdrdao.py
|
||||
--- morituri-0.2.3-orig/morituri/program/cdrdao.py 2014-12-23 12:44:46.202409873 +0100
|
||||
+++ morituri-0.2.3/morituri/program/cdrdao.py 2014-12-23 12:46:49.667757463 +0100
|
||||
@@ -257,7 +257,7 @@ class CDRDAOTask(ctask.PopenTask):
|
||||
|
||||
def start(self, runner):
|
||||
self.debug('Starting cdrdao with options %r', self.options)
|
||||
- self.command = ['cdrdao', ] + self.options
|
||||
+ self.command = ['@cdrdao@/bin/cdrdao', ] + self.options
|
||||
|
||||
ctask.PopenTask.start(self, runner)
|
||||
|
||||
@@ -515,7 +515,7 @@ _VERSION_RE = re.compile(
|
||||
|
||||
def getCDRDAOVersion():
|
||||
getter = common.VersionGetter('cdrdao',
|
||||
- ["cdrdao"],
|
||||
+ ["@cdrdao@/bin/cdrdao"],
|
||||
_VERSION_RE,
|
||||
"%(version)s")
|
||||
|
||||
|
28
pkgs/applications/audio/mp3gain/default.nix
Normal file
28
pkgs/applications/audio/mp3gain/default.nix
Normal file
@ -0,0 +1,28 @@
|
||||
{ stdenv, fetchurl, unzip }:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "mp3gain-1.5.2";
|
||||
src = fetchurl {
|
||||
url = "http://downloads.sourceforge.net/mp3gain/mp3gain-1_5_2-src.zip";
|
||||
sha256 = "1jkgry59m8cnnfq05b9y1h4x4wpy3iq8j68slb9qffwa3ajcgbfv";
|
||||
};
|
||||
|
||||
buildInputs = [ unzip ];
|
||||
|
||||
sourceRoot = ".";
|
||||
|
||||
buildFlags = [ "OSTYPE=linux" ];
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/usr/bin
|
||||
cp mp3gain $out/usr/bin
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "Lossless mp3 normalizer with statistical analysis";
|
||||
homepage = http://mp3gain.sourceforge.net/;
|
||||
license = stdenv.lib.licenses.lgpl21;
|
||||
platforms = stdenv.lib.platforms.linux;
|
||||
maintainers = [ stdenv.lib.maintainers.devhell ];
|
||||
};
|
||||
}
|
@ -2,12 +2,12 @@
|
||||
, libiconvOrEmpty, boost, readline }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "0.6.1";
|
||||
version = "0.6.2";
|
||||
name = "ncmpcpp-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://ncmpcpp.rybczak.net/stable/ncmpcpp-${version}.tar.bz2";
|
||||
sha256 = "033a18hj0q0smm5n0ykld9az7w95myr7jm2b1bjm0h2q5927x8qm";
|
||||
sha256 = "1mrd6m6ph0fscxp9x96ipxh6ai7w0n1miapcfqrqfy058qx5zbck";
|
||||
};
|
||||
|
||||
configureFlags = "BOOST_LIB_SUFFIX=";
|
||||
@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
|
||||
description = "Curses-based interface for MPD (music player daemon)";
|
||||
homepage = http://unkart.ovh.org/ncmpcpp/;
|
||||
license = licenses.gpl2Plus;
|
||||
maintainers = with maintainers; [ lovek323 mornfall ];
|
||||
maintainers = with maintainers; [ lovek323 mornfall koral ];
|
||||
platforms = platforms.all;
|
||||
};
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
{ fetchurl, stdenv, pkgconfig, intltool, pulseaudio, gtkmm3
|
||||
, libcanberra_gtk3 }:
|
||||
, libcanberra_gtk3, makeWrapper, gnome3 }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "pavucontrol-2.0";
|
||||
@ -9,7 +9,13 @@ stdenv.mkDerivation rec {
|
||||
sha256 = "02s775m1531sshwlbvfddk3pz8zjmwkv1sgzggn386ja3gc9vwi2";
|
||||
};
|
||||
|
||||
buildInputs = [ pulseaudio gtkmm3 libcanberra_gtk3 ];
|
||||
preFixup = ''
|
||||
wrapProgram "$out/bin/pavucontrol" \
|
||||
--prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS"
|
||||
'';
|
||||
|
||||
buildInputs = [ pulseaudio gtkmm3 libcanberra_gtk3 makeWrapper
|
||||
gnome3.gnome_icon_theme ];
|
||||
|
||||
nativeBuildInputs = [ pkgconfig intltool ];
|
||||
|
||||
|
@ -6,6 +6,7 @@
|
||||
let version = "1.3"; in
|
||||
buildPythonPackage {
|
||||
name = "picard-${version}";
|
||||
namePrefix = "";
|
||||
|
||||
src = fetchurl {
|
||||
url = "ftp://ftp.musicbrainz.org/pub/musicbrainz/picard/picard-${version}.tar.gz";
|
||||
|
@ -0,0 +1,8 @@
|
||||
--- ./scripts/CrashPlanDesktop 2014-12-18 09:51:14.050804325 +0100
|
||||
+++ ./scripts/CrashPlanDesktop-1 2014-12-18 09:51:32.271009382 +0100
|
||||
@@ -9,4 +9,4 @@
|
||||
|
||||
cd ${TARGETDIR}
|
||||
|
||||
-${JAVACOMMON} ${GUI_JAVA_OPTS} -classpath "./lib/com.backup42.desktop.jar:./lang:./skin" com.backup42.desktop.CPDesktop > ${TARGETDIR}/log/ui_output.log 2> ${TARGETDIR}/log/ui_error.log &
|
||||
+${JAVACOMMON} ${GUI_JAVA_OPTS} -classpath "./lib/com.backup42.desktop.jar:./lang:./skin" com.backup42.desktop.CPDesktop &
|
@ -16,7 +16,7 @@ in stdenv.mkDerivation rec {
|
||||
description = "An online/offline backup solution";
|
||||
homepage = "http://www.crashplan.org";
|
||||
license = licenses.unfree;
|
||||
maintainers = with maintainers; [ sztupi ];
|
||||
maintainers = with maintainers; [ sztupi iElectric ];
|
||||
};
|
||||
|
||||
buildInputs = [ makeWrapper cpio ];
|
||||
@ -25,7 +25,7 @@ in stdenv.mkDerivation rec {
|
||||
|
||||
manifestdir = "${vardir}/manifest";
|
||||
|
||||
patches = [ ./CrashPlanEngine.patch ];
|
||||
patches = [ ./CrashPlanEngine.patch ./CrashPlanDesktop.patch ];
|
||||
|
||||
installPhase = ''
|
||||
mkdir $out
|
||||
@ -45,6 +45,7 @@ in stdenv.mkDerivation rec {
|
||||
install -D -m 644 run.conf $out/bin/run.conf
|
||||
install -D -m 755 scripts/CrashPlanDesktop $out/bin/CrashPlanDesktop
|
||||
install -D -m 755 scripts/CrashPlanEngine $out/bin/CrashPlanEngine
|
||||
install -D -m 644 scripts/CrashPlan.desktop $out/share/applications/CrashPlan.desktop
|
||||
|
||||
rm -r $out/log
|
||||
ln -s $vardir/log $out/log
|
||||
@ -72,6 +73,10 @@ in stdenv.mkDerivation rec {
|
||||
substituteInPlace $f --replace sed ${gnused}/bin/sed
|
||||
substituteInPlace $f --replace grep ${gnugrep}/bin/grep
|
||||
done
|
||||
|
||||
substituteInPlace $out/share/applications/CrashPlan.desktop \
|
||||
--replace /usr/local $out \
|
||||
--replace crashplan/skin skin
|
||||
|
||||
wrapProgram $out/bin/CrashPlanDesktop --prefix LD_LIBRARY_PATH ":" "${gtk2}/lib:${glib}/lib:${libXtst}/lib"
|
||||
'';
|
||||
|
@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
|
||||
description = "A powerful editor targeted towards programmers and webdevelopers";
|
||||
homepage = http://bluefish.openoffice.nl/;
|
||||
license = licenses.gpl3Plus;
|
||||
maintainer = [maintainers.vbgl];
|
||||
maintainers = [maintainers.vbgl];
|
||||
platforms = platforms.all;
|
||||
};
|
||||
}
|
||||
|
@ -1,18 +1,25 @@
|
||||
{ stdenv, fetchgit, emacs, texinfo }:
|
||||
{ stdenv, fetchurl, emacs, texinfo }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "haskell-mode-20141113";
|
||||
let
|
||||
version = "13.10";
|
||||
in
|
||||
stdenv.mkDerivation {
|
||||
name = "haskell-mode-${version}";
|
||||
|
||||
src = fetchgit {
|
||||
url = "https://github.com/haskell/haskell-mode.git";
|
||||
sha256 = "fc2a15f3a88f2343663e8b078464991a1af5ffe36c8158ee4f61c5d0358c9daf";
|
||||
src = fetchurl {
|
||||
url = "https://github.com/haskell/haskell-mode/archive/v${version}.tar.gz";
|
||||
sha256 = "0hcg7wpalcdw8j36m8vd854zrrgym074r7m903rpwfrhx9mlg02b";
|
||||
};
|
||||
|
||||
buildInputs = [ emacs texinfo ];
|
||||
|
||||
makeFlags = "VERSION=${version} GIT_VERSION=${version}";
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p "$out/share/emacs/site-lisp"
|
||||
cp *.el *.elc *.hs "$out/share/emacs/site-lisp/"
|
||||
mkdir -p $out/share/emacs/site-lisp
|
||||
cp *.el *.elc *.hs $out/share/emacs/site-lisp/
|
||||
mkdir -p $out/share/info
|
||||
cp -v *.info* $out/share/info/
|
||||
'';
|
||||
|
||||
meta = {
|
||||
|
39
pkgs/applications/editors/emacs-modes/haskell/git.nix
Normal file
39
pkgs/applications/editors/emacs-modes/haskell/git.nix
Normal file
@ -0,0 +1,39 @@
|
||||
{ stdenv, fetchFromGitHub, emacs, texinfo }:
|
||||
|
||||
let
|
||||
version = "13.10-299-g74b5a3c"; # git describe --tags
|
||||
in
|
||||
stdenv.mkDerivation {
|
||||
name = "haskell-mode-${version}";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "haskell";
|
||||
repo = "haskell-mode";
|
||||
rev = "v${version}";
|
||||
sha256 = "1qjrc1c4jsgbbhnhssvadg00qffn80a8slrxc9g1hnzp632kv8wl";
|
||||
};
|
||||
|
||||
buildInputs = [ emacs texinfo ];
|
||||
|
||||
makeFlags = "VERSION=v${version} GIT_VERSION=v${version}";
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/share/emacs/site-lisp
|
||||
cp *.el *.elc *.hs $out/share/emacs/site-lisp/
|
||||
mkdir -p $out/share/info
|
||||
cp -v *.info* $out/share/info/
|
||||
'';
|
||||
|
||||
# The test suite must run *after* copying the generated files to $out
|
||||
# because "make check" implies "make clean".
|
||||
doInstallCheck = true;
|
||||
installCheckTarget = "check";
|
||||
|
||||
meta = {
|
||||
homepage = "http://github.com/haskell/haskell-mode";
|
||||
description = "Haskell mode for Emacs";
|
||||
|
||||
platforms = stdenv.lib.platforms.unix;
|
||||
maintainers = [ stdenv.lib.maintainers.simons ];
|
||||
};
|
||||
}
|
@ -74,12 +74,6 @@ let
|
||||
&& jdk=${jdk}/lib/openjdk \
|
||||
|| jdk=${jdk}
|
||||
|
||||
if [ "${stdenv.system}" == "x86_64-linux" ]; then
|
||||
makeWrapper "$out/$name/bin/fsnotifier64" "$out/bin/fsnotifier64"
|
||||
else
|
||||
makeWrapper "$out/$name/bin/fsnotifier" "$out/bin/fsnotifier"
|
||||
fi
|
||||
|
||||
makeWrapper "$out/$name/bin/${loName}.sh" "$out/bin/${loName}" \
|
||||
--prefix PATH : "${jdk}/bin:${coreutils}/bin:${gnugrep}/bin:${which}/bin:${git}/bin" \
|
||||
--prefix LD_RUN_PATH : "${stdenv.gcc.gcc}/lib/" \
|
||||
@ -295,13 +289,13 @@ in
|
||||
|
||||
phpstorm = buildPhpStorm rec {
|
||||
name = "phpstorm-${version}";
|
||||
version = "8.0.1";
|
||||
build = "PS-138.2001";
|
||||
version = "8.0.2";
|
||||
build = "PS-139.732";
|
||||
description = "Professional IDE for Web and PHP developers";
|
||||
license = stdenv.lib.licenses.unfree;
|
||||
src = fetchurl {
|
||||
url = "http://download.jetbrains.com/webide/PhpStorm-${version}.tar.gz";
|
||||
sha256 = "0d46442aa32174fe16846c3c31428178ab69b827d2e0ce31f633f13b64c01afc";
|
||||
sha256 = "01b8vx6swi71sd0rc7i1jnicilqp11ch3zrm8gwb6xh1pmmpdirf";
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -3,7 +3,7 @@
|
||||
|
||||
let
|
||||
name = "zed-${version}";
|
||||
version = "0.13";
|
||||
version = "1.0.0";
|
||||
|
||||
# When upgrading node.nix / node packages:
|
||||
# fetch package.json from Zed's repository
|
||||
@ -31,7 +31,7 @@ let
|
||||
src = fetchgit {
|
||||
url = "git://github.com/zedapp/zed";
|
||||
rev = "refs/tags/v${version}";
|
||||
sha256 = "023nq4y6dgh57xpsgawdn2zqvfyhjz1p00ldnsfsjajyy4nn6yb1";
|
||||
sha256 = "1kdvj9mvdwm4cswqw6nn9j6kgqvs4d7vycpsmmfha9a2rkryw9zh";
|
||||
};
|
||||
|
||||
buildInputs = [ makeWrapper zip ];
|
||||
|
@ -2,21 +2,21 @@
|
||||
|
||||
{
|
||||
by-spec."accepts"."~1.1.0" =
|
||||
self.by-version."accepts"."1.1.0";
|
||||
by-version."accepts"."1.1.0" = lib.makeOverridable self.buildNodePackage {
|
||||
name = "node-accepts-1.1.0";
|
||||
self.by-version."accepts"."1.1.1";
|
||||
by-version."accepts"."1.1.1" = lib.makeOverridable self.buildNodePackage {
|
||||
name = "node-accepts-1.1.1";
|
||||
src = [
|
||||
(fetchurl {
|
||||
url = "http://registry.npmjs.org/accepts/-/accepts-1.1.0.tgz";
|
||||
name = "accepts-1.1.0.tgz";
|
||||
sha1 = "43ba6d946374c80f91823eaec6bb43dc4955500b";
|
||||
url = "http://registry.npmjs.org/accepts/-/accepts-1.1.1.tgz";
|
||||
name = "accepts-1.1.1.tgz";
|
||||
sha1 = "3b40bf6abc3fe3bc004534f4672ae1efd0063a96";
|
||||
})
|
||||
];
|
||||
buildInputs =
|
||||
(self.nativeDeps."accepts" or []);
|
||||
deps = [
|
||||
self.by-version."mime-types"."2.0.1"
|
||||
self.by-version."negotiator"."0.4.7"
|
||||
self.by-version."mime-types"."2.0.2"
|
||||
self.by-version."negotiator"."0.4.8"
|
||||
];
|
||||
peerDependencies = [
|
||||
];
|
||||
@ -119,33 +119,33 @@
|
||||
passthru.names = [ "block-stream" ];
|
||||
};
|
||||
by-spec."body-parser"."^1.6.3" =
|
||||
self.by-version."body-parser"."1.8.1";
|
||||
by-version."body-parser"."1.8.1" = lib.makeOverridable self.buildNodePackage {
|
||||
name = "node-body-parser-1.8.1";
|
||||
self.by-version."body-parser"."1.9.0";
|
||||
by-version."body-parser"."1.9.0" = lib.makeOverridable self.buildNodePackage {
|
||||
name = "node-body-parser-1.9.0";
|
||||
src = [
|
||||
(fetchurl {
|
||||
url = "http://registry.npmjs.org/body-parser/-/body-parser-1.8.1.tgz";
|
||||
name = "body-parser-1.8.1.tgz";
|
||||
sha1 = "f9f96d221c435c95d18aeaad2bcdea1371902aad";
|
||||
url = "http://registry.npmjs.org/body-parser/-/body-parser-1.9.0.tgz";
|
||||
name = "body-parser-1.9.0.tgz";
|
||||
sha1 = "95d72943b1a4f67f56bbac9e0dcc837b68703605";
|
||||
})
|
||||
];
|
||||
buildInputs =
|
||||
(self.nativeDeps."body-parser" or []);
|
||||
deps = [
|
||||
self.by-version."bytes"."1.0.0"
|
||||
self.by-version."depd"."0.4.4"
|
||||
self.by-version."depd"."1.0.0"
|
||||
self.by-version."iconv-lite"."0.4.4"
|
||||
self.by-version."media-typer"."0.3.0"
|
||||
self.by-version."on-finished"."2.1.0"
|
||||
self.by-version."qs"."2.2.3"
|
||||
self.by-version."qs"."2.2.4"
|
||||
self.by-version."raw-body"."1.3.0"
|
||||
self.by-version."type-is"."1.5.1"
|
||||
self.by-version."type-is"."1.5.2"
|
||||
];
|
||||
peerDependencies = [
|
||||
];
|
||||
passthru.names = [ "body-parser" ];
|
||||
};
|
||||
"body-parser" = self.by-version."body-parser"."1.8.1";
|
||||
"body-parser" = self.by-version."body-parser"."1.9.0";
|
||||
by-spec."boom"."0.4.x" =
|
||||
self.by-version."boom"."0.4.2";
|
||||
by-version."boom"."0.4.2" = lib.makeOverridable self.buildNodePackage {
|
||||
@ -166,25 +166,6 @@
|
||||
];
|
||||
passthru.names = [ "boom" ];
|
||||
};
|
||||
by-spec."buffer-crc32"."0.2.3" =
|
||||
self.by-version."buffer-crc32"."0.2.3";
|
||||
by-version."buffer-crc32"."0.2.3" = lib.makeOverridable self.buildNodePackage {
|
||||
name = "node-buffer-crc32-0.2.3";
|
||||
src = [
|
||||
(fetchurl {
|
||||
url = "http://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.3.tgz";
|
||||
name = "buffer-crc32-0.2.3.tgz";
|
||||
sha1 = "bb54519e95d107cbd2400e76d0cab1467336d921";
|
||||
})
|
||||
];
|
||||
buildInputs =
|
||||
(self.nativeDeps."buffer-crc32" or []);
|
||||
deps = [
|
||||
];
|
||||
peerDependencies = [
|
||||
];
|
||||
passthru.names = [ "buffer-crc32" ];
|
||||
};
|
||||
by-spec."bytes"."1" =
|
||||
self.by-version."bytes"."1.0.0";
|
||||
by-version."bytes"."1.0.0" = lib.makeOverridable self.buildNodePackage {
|
||||
@ -283,6 +264,25 @@
|
||||
];
|
||||
passthru.names = [ "cookie-signature" ];
|
||||
};
|
||||
by-spec."crc"."3.0.0" =
|
||||
self.by-version."crc"."3.0.0";
|
||||
by-version."crc"."3.0.0" = lib.makeOverridable self.buildNodePackage {
|
||||
name = "node-crc-3.0.0";
|
||||
src = [
|
||||
(fetchurl {
|
||||
url = "http://registry.npmjs.org/crc/-/crc-3.0.0.tgz";
|
||||
name = "crc-3.0.0.tgz";
|
||||
sha1 = "d11e97ec44a844e5eb15a74fa2c7875d0aac4b22";
|
||||
})
|
||||
];
|
||||
buildInputs =
|
||||
(self.nativeDeps."crc" or []);
|
||||
deps = [
|
||||
];
|
||||
peerDependencies = [
|
||||
];
|
||||
passthru.names = [ "crc" ];
|
||||
};
|
||||
by-spec."cryptiles"."0.2.x" =
|
||||
self.by-version."cryptiles"."0.2.2";
|
||||
by-version."cryptiles"."0.2.2" = lib.makeOverridable self.buildNodePackage {
|
||||
@ -361,15 +361,34 @@
|
||||
];
|
||||
passthru.names = [ "delayed-stream" ];
|
||||
};
|
||||
by-spec."depd"."0.4.4" =
|
||||
self.by-version."depd"."0.4.4";
|
||||
by-version."depd"."0.4.4" = lib.makeOverridable self.buildNodePackage {
|
||||
name = "node-depd-0.4.4";
|
||||
by-spec."depd"."0.4.5" =
|
||||
self.by-version."depd"."0.4.5";
|
||||
by-version."depd"."0.4.5" = lib.makeOverridable self.buildNodePackage {
|
||||
name = "node-depd-0.4.5";
|
||||
src = [
|
||||
(fetchurl {
|
||||
url = "http://registry.npmjs.org/depd/-/depd-0.4.4.tgz";
|
||||
name = "depd-0.4.4.tgz";
|
||||
sha1 = "07091fae75f97828d89b4a02a2d4778f0e7c0662";
|
||||
url = "http://registry.npmjs.org/depd/-/depd-0.4.5.tgz";
|
||||
name = "depd-0.4.5.tgz";
|
||||
sha1 = "1a664b53388b4a6573e8ae67b5f767c693ca97f1";
|
||||
})
|
||||
];
|
||||
buildInputs =
|
||||
(self.nativeDeps."depd" or []);
|
||||
deps = [
|
||||
];
|
||||
peerDependencies = [
|
||||
];
|
||||
passthru.names = [ "depd" ];
|
||||
};
|
||||
by-spec."depd"."~1.0.0" =
|
||||
self.by-version."depd"."1.0.0";
|
||||
by-version."depd"."1.0.0" = lib.makeOverridable self.buildNodePackage {
|
||||
name = "node-depd-1.0.0";
|
||||
src = [
|
||||
(fetchurl {
|
||||
url = "http://registry.npmjs.org/depd/-/depd-1.0.0.tgz";
|
||||
name = "depd-1.0.0.tgz";
|
||||
sha1 = "2fda0d00e98aae2845d4991ab1bf1f2a199073d5";
|
||||
})
|
||||
];
|
||||
buildInputs =
|
||||
@ -437,47 +456,46 @@
|
||||
];
|
||||
passthru.names = [ "escape-html" ];
|
||||
};
|
||||
by-spec."etag"."~1.3.0" =
|
||||
self.by-version."etag"."1.3.0";
|
||||
by-version."etag"."1.3.0" = lib.makeOverridable self.buildNodePackage {
|
||||
name = "node-etag-1.3.0";
|
||||
by-spec."etag"."~1.4.0" =
|
||||
self.by-version."etag"."1.4.0";
|
||||
by-version."etag"."1.4.0" = lib.makeOverridable self.buildNodePackage {
|
||||
name = "node-etag-1.4.0";
|
||||
src = [
|
||||
(fetchurl {
|
||||
url = "http://registry.npmjs.org/etag/-/etag-1.3.0.tgz";
|
||||
name = "etag-1.3.0.tgz";
|
||||
sha1 = "c837debfbfe0baf7eb8e2f0bbb3d1d9cc3229697";
|
||||
url = "http://registry.npmjs.org/etag/-/etag-1.4.0.tgz";
|
||||
name = "etag-1.4.0.tgz";
|
||||
sha1 = "3050991615857707c04119d075ba2088e0701225";
|
||||
})
|
||||
];
|
||||
buildInputs =
|
||||
(self.nativeDeps."etag" or []);
|
||||
deps = [
|
||||
self.by-version."buffer-crc32"."0.2.3"
|
||||
self.by-version."crc"."3.0.0"
|
||||
];
|
||||
peerDependencies = [
|
||||
];
|
||||
passthru.names = [ "etag" ];
|
||||
};
|
||||
by-spec."express"."^4.8.3" =
|
||||
self.by-version."express"."4.9.0";
|
||||
by-version."express"."4.9.0" = lib.makeOverridable self.buildNodePackage {
|
||||
name = "node-express-4.9.0";
|
||||
self.by-version."express"."4.9.5";
|
||||
by-version."express"."4.9.5" = lib.makeOverridable self.buildNodePackage {
|
||||
name = "node-express-4.9.5";
|
||||
src = [
|
||||
(fetchurl {
|
||||
url = "http://registry.npmjs.org/express/-/express-4.9.0.tgz";
|
||||
name = "express-4.9.0.tgz";
|
||||
sha1 = "9b2ea4ebce57c7ac710604c74f6c303ab344a7f3";
|
||||
url = "http://registry.npmjs.org/express/-/express-4.9.5.tgz";
|
||||
name = "express-4.9.5.tgz";
|
||||
sha1 = "7f62aa84ac8f5e96acfb98e2944dde0bf1cf8688";
|
||||
})
|
||||
];
|
||||
buildInputs =
|
||||
(self.nativeDeps."express" or []);
|
||||
deps = [
|
||||
self.by-version."accepts"."1.1.0"
|
||||
self.by-version."buffer-crc32"."0.2.3"
|
||||
self.by-version."accepts"."1.1.1"
|
||||
self.by-version."cookie-signature"."1.0.5"
|
||||
self.by-version."debug"."2.0.0"
|
||||
self.by-version."depd"."0.4.4"
|
||||
self.by-version."depd"."0.4.5"
|
||||
self.by-version."escape-html"."1.0.1"
|
||||
self.by-version."etag"."1.3.0"
|
||||
self.by-version."etag"."1.4.0"
|
||||
self.by-version."finalhandler"."0.2.0"
|
||||
self.by-version."fresh"."0.2.4"
|
||||
self.by-version."media-typer"."0.3.0"
|
||||
@ -485,12 +503,12 @@
|
||||
self.by-version."on-finished"."2.1.0"
|
||||
self.by-version."parseurl"."1.3.0"
|
||||
self.by-version."path-to-regexp"."0.1.3"
|
||||
self.by-version."proxy-addr"."1.0.1"
|
||||
self.by-version."qs"."2.2.3"
|
||||
self.by-version."proxy-addr"."1.0.3"
|
||||
self.by-version."qs"."2.2.4"
|
||||
self.by-version."range-parser"."1.0.2"
|
||||
self.by-version."send"."0.9.1"
|
||||
self.by-version."serve-static"."1.6.1"
|
||||
self.by-version."type-is"."1.5.1"
|
||||
self.by-version."send"."0.9.3"
|
||||
self.by-version."serve-static"."1.6.3"
|
||||
self.by-version."type-is"."1.5.2"
|
||||
self.by-version."vary"."1.0.0"
|
||||
self.by-version."cookie"."0.1.2"
|
||||
self.by-version."merge-descriptors"."0.0.2"
|
||||
@ -500,7 +518,7 @@
|
||||
];
|
||||
passthru.names = [ "express" ];
|
||||
};
|
||||
"express" = self.by-version."express"."4.9.0";
|
||||
"express" = self.by-version."express"."4.9.5";
|
||||
by-spec."finalhandler"."0.2.0" =
|
||||
self.by-version."finalhandler"."0.2.0";
|
||||
by-version."finalhandler"."0.2.0" = lib.makeOverridable self.buildNodePackage {
|
||||
@ -563,6 +581,25 @@
|
||||
];
|
||||
passthru.names = [ "form-data" ];
|
||||
};
|
||||
by-spec."forwarded"."~0.1.0" =
|
||||
self.by-version."forwarded"."0.1.0";
|
||||
by-version."forwarded"."0.1.0" = lib.makeOverridable self.buildNodePackage {
|
||||
name = "node-forwarded-0.1.0";
|
||||
src = [
|
||||
(fetchurl {
|
||||
url = "http://registry.npmjs.org/forwarded/-/forwarded-0.1.0.tgz";
|
||||
name = "forwarded-0.1.0.tgz";
|
||||
sha1 = "19ef9874c4ae1c297bcf078fde63a09b66a84363";
|
||||
})
|
||||
];
|
||||
buildInputs =
|
||||
(self.nativeDeps."forwarded" or []);
|
||||
deps = [
|
||||
];
|
||||
peerDependencies = [
|
||||
];
|
||||
passthru.names = [ "forwarded" ];
|
||||
};
|
||||
by-spec."fresh"."0.2.4" =
|
||||
self.by-version."fresh"."0.2.4";
|
||||
by-version."fresh"."0.2.4" = lib.makeOverridable self.buildNodePackage {
|
||||
@ -728,15 +765,15 @@
|
||||
};
|
||||
by-spec."inherits"."~2.0.0" =
|
||||
self.by-version."inherits"."2.0.1";
|
||||
by-spec."ipaddr.js"."0.1.2" =
|
||||
self.by-version."ipaddr.js"."0.1.2";
|
||||
by-version."ipaddr.js"."0.1.2" = lib.makeOverridable self.buildNodePackage {
|
||||
name = "node-ipaddr.js-0.1.2";
|
||||
by-spec."ipaddr.js"."0.1.3" =
|
||||
self.by-version."ipaddr.js"."0.1.3";
|
||||
by-version."ipaddr.js"."0.1.3" = lib.makeOverridable self.buildNodePackage {
|
||||
name = "node-ipaddr.js-0.1.3";
|
||||
src = [
|
||||
(fetchurl {
|
||||
url = "http://registry.npmjs.org/ipaddr.js/-/ipaddr.js-0.1.2.tgz";
|
||||
name = "ipaddr.js-0.1.2.tgz";
|
||||
sha1 = "6a1fd3d854f5002965c34d7bbcd9b4a8d4b0467e";
|
||||
url = "http://registry.npmjs.org/ipaddr.js/-/ipaddr.js-0.1.3.tgz";
|
||||
name = "ipaddr.js-0.1.3.tgz";
|
||||
sha1 = "27a9ca37f148d2102b0ef191ccbf2c51a8f025c6";
|
||||
})
|
||||
];
|
||||
buildInputs =
|
||||
@ -846,15 +883,15 @@
|
||||
self.by-version."mime"."1.2.11";
|
||||
by-spec."mime"."~1.2.9" =
|
||||
self.by-version."mime"."1.2.11";
|
||||
by-spec."mime-db"."~1.0.1" =
|
||||
self.by-version."mime-db"."1.0.1";
|
||||
by-version."mime-db"."1.0.1" = lib.makeOverridable self.buildNodePackage {
|
||||
name = "node-mime-db-1.0.1";
|
||||
by-spec."mime-db"."~1.1.0" =
|
||||
self.by-version."mime-db"."1.1.0";
|
||||
by-version."mime-db"."1.1.0" = lib.makeOverridable self.buildNodePackage {
|
||||
name = "node-mime-db-1.1.0";
|
||||
src = [
|
||||
(fetchurl {
|
||||
url = "http://registry.npmjs.org/mime-db/-/mime-db-1.0.1.tgz";
|
||||
name = "mime-db-1.0.1.tgz";
|
||||
sha1 = "35d99b0965967253bb30633a7d07a8de9975a952";
|
||||
url = "http://registry.npmjs.org/mime-db/-/mime-db-1.1.0.tgz";
|
||||
name = "mime-db-1.1.0.tgz";
|
||||
sha1 = "4613f418ab995450bf4bda240cd0ab38016a07a9";
|
||||
})
|
||||
];
|
||||
buildInputs =
|
||||
@ -865,28 +902,26 @@
|
||||
];
|
||||
passthru.names = [ "mime-db" ];
|
||||
};
|
||||
by-spec."mime-types"."~2.0.0" =
|
||||
self.by-version."mime-types"."2.0.1";
|
||||
by-version."mime-types"."2.0.1" = lib.makeOverridable self.buildNodePackage {
|
||||
name = "node-mime-types-2.0.1";
|
||||
by-spec."mime-types"."~2.0.2" =
|
||||
self.by-version."mime-types"."2.0.2";
|
||||
by-version."mime-types"."2.0.2" = lib.makeOverridable self.buildNodePackage {
|
||||
name = "node-mime-types-2.0.2";
|
||||
src = [
|
||||
(fetchurl {
|
||||
url = "http://registry.npmjs.org/mime-types/-/mime-types-2.0.1.tgz";
|
||||
name = "mime-types-2.0.1.tgz";
|
||||
sha1 = "7f5b4712592e7dd46ca733fd1c5f5d71356de615";
|
||||
url = "http://registry.npmjs.org/mime-types/-/mime-types-2.0.2.tgz";
|
||||
name = "mime-types-2.0.2.tgz";
|
||||
sha1 = "c74b779f2896c367888622bd537aaaad4c0a2c08";
|
||||
})
|
||||
];
|
||||
buildInputs =
|
||||
(self.nativeDeps."mime-types" or []);
|
||||
deps = [
|
||||
self.by-version."mime-db"."1.0.1"
|
||||
self.by-version."mime-db"."1.1.0"
|
||||
];
|
||||
peerDependencies = [
|
||||
];
|
||||
passthru.names = [ "mime-types" ];
|
||||
};
|
||||
by-spec."mime-types"."~2.0.1" =
|
||||
self.by-version."mime-types"."2.0.1";
|
||||
by-spec."minimist"."0.0.8" =
|
||||
self.by-version."minimist"."0.0.8";
|
||||
by-version."minimist"."0.0.8" = lib.makeOverridable self.buildNodePackage {
|
||||
@ -964,15 +999,15 @@
|
||||
];
|
||||
passthru.names = [ "nan" ];
|
||||
};
|
||||
by-spec."negotiator"."0.4.7" =
|
||||
self.by-version."negotiator"."0.4.7";
|
||||
by-version."negotiator"."0.4.7" = lib.makeOverridable self.buildNodePackage {
|
||||
name = "node-negotiator-0.4.7";
|
||||
by-spec."negotiator"."0.4.8" =
|
||||
self.by-version."negotiator"."0.4.8";
|
||||
by-version."negotiator"."0.4.8" = lib.makeOverridable self.buildNodePackage {
|
||||
name = "node-negotiator-0.4.8";
|
||||
src = [
|
||||
(fetchurl {
|
||||
url = "http://registry.npmjs.org/negotiator/-/negotiator-0.4.7.tgz";
|
||||
name = "negotiator-0.4.7.tgz";
|
||||
sha1 = "a4160f7177ec806738631d0d3052325da42abdc8";
|
||||
url = "http://registry.npmjs.org/negotiator/-/negotiator-0.4.8.tgz";
|
||||
name = "negotiator-0.4.8.tgz";
|
||||
sha1 = "96010b23b63c387f47a4bed96762a831cda39eab";
|
||||
})
|
||||
];
|
||||
buildInputs =
|
||||
@ -1044,14 +1079,14 @@
|
||||
by-spec."on-finished"."~2.1.0" =
|
||||
self.by-version."on-finished"."2.1.0";
|
||||
by-spec."options".">=0.0.5" =
|
||||
self.by-version."options"."0.0.5";
|
||||
by-version."options"."0.0.5" = lib.makeOverridable self.buildNodePackage {
|
||||
name = "node-options-0.0.5";
|
||||
self.by-version."options"."0.0.6";
|
||||
by-version."options"."0.0.6" = lib.makeOverridable self.buildNodePackage {
|
||||
name = "node-options-0.0.6";
|
||||
src = [
|
||||
(fetchurl {
|
||||
url = "http://registry.npmjs.org/options/-/options-0.0.5.tgz";
|
||||
name = "options-0.0.5.tgz";
|
||||
sha1 = "9a3806378f316536d79038038ba90ccb724816c3";
|
||||
url = "http://registry.npmjs.org/options/-/options-0.0.6.tgz";
|
||||
name = "options-0.0.6.tgz";
|
||||
sha1 = "ec22d312806bb53e731773e7cdaefcf1c643128f";
|
||||
})
|
||||
];
|
||||
buildInputs =
|
||||
@ -1100,21 +1135,22 @@
|
||||
];
|
||||
passthru.names = [ "path-to-regexp" ];
|
||||
};
|
||||
by-spec."proxy-addr"."1.0.1" =
|
||||
self.by-version."proxy-addr"."1.0.1";
|
||||
by-version."proxy-addr"."1.0.1" = lib.makeOverridable self.buildNodePackage {
|
||||
name = "node-proxy-addr-1.0.1";
|
||||
by-spec."proxy-addr"."~1.0.3" =
|
||||
self.by-version."proxy-addr"."1.0.3";
|
||||
by-version."proxy-addr"."1.0.3" = lib.makeOverridable self.buildNodePackage {
|
||||
name = "node-proxy-addr-1.0.3";
|
||||
src = [
|
||||
(fetchurl {
|
||||
url = "http://registry.npmjs.org/proxy-addr/-/proxy-addr-1.0.1.tgz";
|
||||
name = "proxy-addr-1.0.1.tgz";
|
||||
sha1 = "c7c566d5eb4e3fad67eeb9c77c5558ccc39b88a8";
|
||||
url = "http://registry.npmjs.org/proxy-addr/-/proxy-addr-1.0.3.tgz";
|
||||
name = "proxy-addr-1.0.3.tgz";
|
||||
sha1 = "17d824aac844707441249da6d1ea5e889007cdd6";
|
||||
})
|
||||
];
|
||||
buildInputs =
|
||||
(self.nativeDeps."proxy-addr" or []);
|
||||
deps = [
|
||||
self.by-version."ipaddr.js"."0.1.2"
|
||||
self.by-version."forwarded"."0.1.0"
|
||||
self.by-version."ipaddr.js"."0.1.3"
|
||||
];
|
||||
peerDependencies = [
|
||||
];
|
||||
@ -1139,15 +1175,15 @@
|
||||
];
|
||||
passthru.names = [ "punycode" ];
|
||||
};
|
||||
by-spec."qs"."2.2.3" =
|
||||
self.by-version."qs"."2.2.3";
|
||||
by-version."qs"."2.2.3" = lib.makeOverridable self.buildNodePackage {
|
||||
name = "node-qs-2.2.3";
|
||||
by-spec."qs"."2.2.4" =
|
||||
self.by-version."qs"."2.2.4";
|
||||
by-version."qs"."2.2.4" = lib.makeOverridable self.buildNodePackage {
|
||||
name = "node-qs-2.2.4";
|
||||
src = [
|
||||
(fetchurl {
|
||||
url = "http://registry.npmjs.org/qs/-/qs-2.2.3.tgz";
|
||||
name = "qs-2.2.3.tgz";
|
||||
sha1 = "6139c1f47960eff5655e56aab0ef9f6dd16d4eeb";
|
||||
url = "http://registry.npmjs.org/qs/-/qs-2.2.4.tgz";
|
||||
name = "qs-2.2.4.tgz";
|
||||
sha1 = "2e9fbcd34b540e3421c924ecd01e90aa975319c8";
|
||||
})
|
||||
];
|
||||
buildInputs =
|
||||
@ -1177,7 +1213,7 @@
|
||||
];
|
||||
passthru.names = [ "qs" ];
|
||||
};
|
||||
by-spec."range-parser"."~1.0.0" =
|
||||
by-spec."range-parser"."~1.0.2" =
|
||||
self.by-version."range-parser"."1.0.2";
|
||||
by-version."range-parser"."1.0.2" = lib.makeOverridable self.buildNodePackage {
|
||||
name = "node-range-parser-1.0.2";
|
||||
@ -1196,8 +1232,6 @@
|
||||
];
|
||||
passthru.names = [ "range-parser" ];
|
||||
};
|
||||
by-spec."range-parser"."~1.0.2" =
|
||||
self.by-version."range-parser"."1.0.2";
|
||||
by-spec."raw-body"."1.3.0" =
|
||||
self.by-version."raw-body"."1.3.0";
|
||||
by-version."raw-body"."1.3.0" = lib.makeOverridable self.buildNodePackage {
|
||||
@ -1270,25 +1304,25 @@
|
||||
];
|
||||
passthru.names = [ "rimraf" ];
|
||||
};
|
||||
by-spec."send"."0.9.1" =
|
||||
self.by-version."send"."0.9.1";
|
||||
by-version."send"."0.9.1" = lib.makeOverridable self.buildNodePackage {
|
||||
name = "node-send-0.9.1";
|
||||
by-spec."send"."0.9.3" =
|
||||
self.by-version."send"."0.9.3";
|
||||
by-version."send"."0.9.3" = lib.makeOverridable self.buildNodePackage {
|
||||
name = "node-send-0.9.3";
|
||||
src = [
|
||||
(fetchurl {
|
||||
url = "http://registry.npmjs.org/send/-/send-0.9.1.tgz";
|
||||
name = "send-0.9.1.tgz";
|
||||
sha1 = "d93689f7c9ce36bd32f8ee572bb60bda032edc23";
|
||||
url = "http://registry.npmjs.org/send/-/send-0.9.3.tgz";
|
||||
name = "send-0.9.3.tgz";
|
||||
sha1 = "b43a7414cd089b7fbec9b755246f7c37b7b85cc0";
|
||||
})
|
||||
];
|
||||
buildInputs =
|
||||
(self.nativeDeps."send" or []);
|
||||
deps = [
|
||||
self.by-version."debug"."2.0.0"
|
||||
self.by-version."depd"."0.4.4"
|
||||
self.by-version."depd"."0.4.5"
|
||||
self.by-version."destroy"."1.0.3"
|
||||
self.by-version."escape-html"."1.0.1"
|
||||
self.by-version."etag"."1.3.0"
|
||||
self.by-version."etag"."1.4.0"
|
||||
self.by-version."fresh"."0.2.4"
|
||||
self.by-version."mime"."1.2.11"
|
||||
self.by-version."ms"."0.6.2"
|
||||
@ -1299,15 +1333,15 @@
|
||||
];
|
||||
passthru.names = [ "send" ];
|
||||
};
|
||||
by-spec."serve-static"."~1.6.1" =
|
||||
self.by-version."serve-static"."1.6.1";
|
||||
by-version."serve-static"."1.6.1" = lib.makeOverridable self.buildNodePackage {
|
||||
name = "node-serve-static-1.6.1";
|
||||
by-spec."serve-static"."~1.6.3" =
|
||||
self.by-version."serve-static"."1.6.3";
|
||||
by-version."serve-static"."1.6.3" = lib.makeOverridable self.buildNodePackage {
|
||||
name = "node-serve-static-1.6.3";
|
||||
src = [
|
||||
(fetchurl {
|
||||
url = "http://registry.npmjs.org/serve-static/-/serve-static-1.6.1.tgz";
|
||||
name = "serve-static-1.6.1.tgz";
|
||||
sha1 = "2f257563afbe931d28cee4aa3dfeddc975a87193";
|
||||
url = "http://registry.npmjs.org/serve-static/-/serve-static-1.6.3.tgz";
|
||||
name = "serve-static-1.6.3.tgz";
|
||||
sha1 = "b214235d4d4516db050ea9f7b429b46212e79132";
|
||||
})
|
||||
];
|
||||
buildInputs =
|
||||
@ -1315,7 +1349,7 @@
|
||||
deps = [
|
||||
self.by-version."escape-html"."1.0.1"
|
||||
self.by-version."parseurl"."1.3.0"
|
||||
self.by-version."send"."0.9.1"
|
||||
self.by-version."send"."0.9.3"
|
||||
self.by-version."utils-merge"."1.0.0"
|
||||
];
|
||||
peerDependencies = [
|
||||
@ -1424,21 +1458,21 @@
|
||||
passthru.names = [ "tunnel-agent" ];
|
||||
};
|
||||
by-spec."type-is"."~1.5.1" =
|
||||
self.by-version."type-is"."1.5.1";
|
||||
by-version."type-is"."1.5.1" = lib.makeOverridable self.buildNodePackage {
|
||||
name = "node-type-is-1.5.1";
|
||||
self.by-version."type-is"."1.5.2";
|
||||
by-version."type-is"."1.5.2" = lib.makeOverridable self.buildNodePackage {
|
||||
name = "node-type-is-1.5.2";
|
||||
src = [
|
||||
(fetchurl {
|
||||
url = "http://registry.npmjs.org/type-is/-/type-is-1.5.1.tgz";
|
||||
name = "type-is-1.5.1.tgz";
|
||||
sha1 = "5c1e62d874f79199fb16b34d16972dba376ccbed";
|
||||
url = "http://registry.npmjs.org/type-is/-/type-is-1.5.2.tgz";
|
||||
name = "type-is-1.5.2.tgz";
|
||||
sha1 = "8291bbe845a904acfaffd05a41fdeb234bfa9e5f";
|
||||
})
|
||||
];
|
||||
buildInputs =
|
||||
(self.nativeDeps."type-is" or []);
|
||||
deps = [
|
||||
self.by-version."media-typer"."0.3.0"
|
||||
self.by-version."mime-types"."2.0.1"
|
||||
self.by-version."mime-types"."2.0.2"
|
||||
];
|
||||
peerDependencies = [
|
||||
];
|
||||
@ -1499,7 +1533,7 @@
|
||||
self.by-version."commander"."2.1.0"
|
||||
self.by-version."nan"."1.0.0"
|
||||
self.by-version."tinycolor"."0.0.1"
|
||||
self.by-version."options"."0.0.5"
|
||||
self.by-version."options"."0.0.6"
|
||||
];
|
||||
peerDependencies = [
|
||||
];
|
||||
|
@ -1,10 +1,10 @@
|
||||
{ stdenv, fetchurl, gdal, cmake, qt4, flex, bison, proj, geos, x11, sqlite, gsl,
|
||||
pyqt4, qwt, fcgi, python, libspatialindex, libspatialite, sip }:
|
||||
pyqt4, qwt, fcgi, python, libspatialindex, libspatialite }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "qgis-2.4.0";
|
||||
|
||||
buildInputs = [ gdal qt4 flex bison proj geos x11 sqlite gsl pyqt4 sip qwt
|
||||
buildInputs = [ gdal qt4 flex bison proj geos x11 sqlite gsl pyqt4 qwt
|
||||
fcgi libspatialindex libspatialite ];
|
||||
|
||||
nativeBuildInputs = [ cmake python ];
|
||||
|
@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
|
||||
meta = {
|
||||
description = "A light-weight image viewer";
|
||||
homepage = https://derf.homelinux.org/projects/feh/;
|
||||
license = "BSD";
|
||||
license = stdenv.lib.licenses.mit;
|
||||
maintainers = with stdenv.lib.maintainers; [viric];
|
||||
platforms = with stdenv.lib.platforms; linux;
|
||||
};
|
||||
|
@ -1,6 +1,6 @@
|
||||
{ fetchurl, stdenv, m4, glibc, gtk3, libexif, libgphoto2, libsoup, libxml2, vala, sqlite, webkitgtk24x
|
||||
, pkgconfig, gnome3, gst_all_1, which, udev, libraw, glib, json_glib, gettext, desktop_file_utils
|
||||
, lcms2, gdk_pixbuf, librsvg, makeWrapper, gnome_doc_utils }:
|
||||
, lcms2, gdk_pixbuf, librsvg, makeWrapper, gnome_doc_utils, hicolor_icon_theme }:
|
||||
|
||||
# for dependencies see http://www.yorba.org/projects/shotwell/install/
|
||||
|
||||
@ -42,7 +42,8 @@ in stdenv.mkDerivation rec {
|
||||
preFixup = ''
|
||||
wrapProgram "$out/bin/shotwell" \
|
||||
--set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
|
||||
--prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:${gtk3}/share:$out/share:$GSETTINGS_SCHEMAS_PATH"
|
||||
--prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:${gtk3}/share:$out/share:$GSETTINGS_SCHEMAS_PATH" \
|
||||
--prefix GIO_EXTRA_MODULES : "${gnome3.dconf}/lib/gio/modules"
|
||||
rm $out/share/icons/hicolor/icon-theme.cache
|
||||
'';
|
||||
|
||||
@ -50,7 +51,9 @@ in stdenv.mkDerivation rec {
|
||||
buildInputs = [ m4 glibc gtk3 libexif libgphoto2 libsoup libxml2 vala sqlite webkitgtk24x pkgconfig
|
||||
gst_all_1.gstreamer gst_all_1.gst-plugins-base gnome3.libgee which udev gnome3.gexiv2
|
||||
libraw rest json_glib gettext desktop_file_utils glib lcms2 gdk_pixbuf librsvg
|
||||
makeWrapper gnome_doc_utils ];
|
||||
makeWrapper gnome_doc_utils
|
||||
gnome3.gnome_icon_theme gnome3.gnome_icon_theme_symbolic
|
||||
hicolor_icon_theme ];
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "Popular photo organizer for the GNOME desktop";
|
||||
|
@ -24,6 +24,6 @@ stdenv.mkDerivation rec {
|
||||
homepage = http://www.yworks.com/en/products/yfiles/yed/;
|
||||
description = "A powerful desktop application that can be used to quickly and effectively generate high-quality diagrams";
|
||||
platforms = jre.meta.platforms;
|
||||
maintainer = with maintainers; [ abbradar ];
|
||||
maintainers = with maintainers; [ abbradar ];
|
||||
};
|
||||
}
|
||||
|
@ -4,6 +4,7 @@
|
||||
, zlib, fftw
|
||||
, jackaudioSupport ? false, jack2
|
||||
, cudaSupport ? false, cudatoolkit6
|
||||
, colladaSupport ? true, opencollada
|
||||
}:
|
||||
|
||||
with lib;
|
||||
@ -22,7 +23,8 @@ stdenv.mkDerivation rec {
|
||||
opencolorio openexr openimageio /* openjpeg */ python zlib fftw
|
||||
]
|
||||
++ optional jackaudioSupport jack2
|
||||
++ optional cudaSupport cudatoolkit6;
|
||||
++ optional cudaSupport cudatoolkit6
|
||||
++ optional colladaSupport opencollada;
|
||||
|
||||
postUnpack =
|
||||
''
|
||||
@ -30,8 +32,7 @@ stdenv.mkDerivation rec {
|
||||
'';
|
||||
|
||||
cmakeFlags =
|
||||
[ "-DWITH_OPENCOLLADA=OFF"
|
||||
"-DWITH_MOD_OCEANSIM=ON"
|
||||
[ "-DWITH_MOD_OCEANSIM=ON"
|
||||
"-DWITH_CODEC_FFMPEG=ON"
|
||||
"-DWITH_CODEC_SNDFILE=ON"
|
||||
"-DWITH_INSTALL_PORTABLE=OFF"
|
||||
@ -41,7 +42,8 @@ stdenv.mkDerivation rec {
|
||||
"-DPYTHON_VERSION=${python.majorVersion}"
|
||||
]
|
||||
++ optional jackaudioSupport "-DWITH_JACK=ON"
|
||||
++ optional cudaSupport "-DWITH_CYCLES_CUDA_BINARIES=ON";
|
||||
++ optional cudaSupport "-DWITH_CYCLES_CUDA_BINARIES=ON"
|
||||
++ optional colladaSupport "-DWITH_OPENCOLLADA=ON";
|
||||
|
||||
NIX_CFLAGS_COMPILE = "-I${ilmbase}/include/OpenEXR -I${python}/include/${python.libPrefix}m";
|
||||
|
||||
|
@ -5,11 +5,11 @@
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "calibre-2.12.0";
|
||||
name = "calibre-2.13.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/calibre/${name}.tar.xz";
|
||||
sha256 = "1qp3aq6f6ngfy8m0bj6rzdf6p2vmk4bxycxfby2n8byfhr8gaclf";
|
||||
sha256 = "0sd9yanl4n1bmbxpvdvl68bisp0bgvfk6naddkvcahy9h7qc6h33";
|
||||
};
|
||||
|
||||
inherit python;
|
||||
|
@ -12,11 +12,6 @@ stdenv.mkDerivation rec {
|
||||
sha256 = "0x95f57s0a96c4lifxdpf73v706iggwmdw8742mabbjnxq55l1qs";
|
||||
};
|
||||
|
||||
patchPhase = ''
|
||||
substituteInPlace "settings.c" \
|
||||
--replace "xdgConfigOpen(\"dunst/dunstrc\", \"r\", &xdg" "fopen(\"$out/share/dunst/dunstrc\", \"r\""
|
||||
'';
|
||||
|
||||
buildInputs =
|
||||
[ coreutils unzip which pkgconfig dbus freetype libnotify gdk_pixbuf
|
||||
xdg_utils libXext glib pango cairo libX11 libxdg_basedir
|
||||
|
@ -1,6 +1,7 @@
|
||||
{ stdenv, fetchurl, pythonPackages, slowaes, ecdsa, pyqt4 }:
|
||||
{ stdenv, fetchurl, buildPythonPackage, slowaes, ecdsa, pyqt4 }:
|
||||
|
||||
pythonPackages.buildPythonPackage rec {
|
||||
buildPythonPackage rec {
|
||||
namePrefix = "";
|
||||
name = "electrum-${version}";
|
||||
version = "1.9.8";
|
||||
|
||||
@ -11,7 +12,7 @@ pythonPackages.buildPythonPackage rec {
|
||||
|
||||
buildInputs = [ slowaes ecdsa ];
|
||||
|
||||
propagatedBuildInputs = [
|
||||
propagatedBuildInputs = [
|
||||
slowaes
|
||||
ecdsa
|
||||
pyqt4
|
||||
@ -29,4 +30,4 @@ pythonPackages.buildPythonPackage rec {
|
||||
license = stdenv.lib.licenses.gpl3;
|
||||
maintainers = [ "emery@vfemail.net" ];
|
||||
};
|
||||
}
|
||||
}
|
||||
|
@ -8,11 +8,11 @@ assert pulseaudioSupport -> pulseaudio != null;
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "gqrx-${version}";
|
||||
version = "2.3.0";
|
||||
version = "2.3.2";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/project/gqrx/${version}/${name}.tar.xz";
|
||||
sha256 = "0fyfkdd2ailg54ppv1y2fy2c692jmlmsyl1lxr20lyn6bvd9gpyn";
|
||||
sha256 = "1vfqqa976xlbapqkpc9nka364zydvsy18xiwfqjy015kpasshdz1";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
|
28
pkgs/applications/misc/gtk2fontsel/default.nix
Normal file
28
pkgs/applications/misc/gtk2fontsel/default.nix
Normal file
@ -0,0 +1,28 @@
|
||||
{stdenv, fetchurl, pkgconfig, gtk }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "0.1";
|
||||
name = "gtk2fontsel-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/gtk2fontsel/${name}.tar.gz";
|
||||
sha256 = "0s2sj19n8ys92q9832hkn36ld91bb4qavicc6nygkry6qdpkkmjw";
|
||||
};
|
||||
|
||||
buildInputs = [ stdenv pkgconfig gtk ];
|
||||
|
||||
preferLocalBuild = true;
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "A font selection program for X11 using the GTK2 toolkit";
|
||||
longDescription = ''
|
||||
Font selection tool similar to xfontsel implemented using GTK+ 2.
|
||||
Trivial, but useful nonetheless.
|
||||
'';
|
||||
homepage = http://gtk2fontsel.sourceforge.net/;
|
||||
downloadPage = http://sourceforge.net/projects/gtk2fontsel/;
|
||||
license = licenses.gpl2;
|
||||
maintainers = [ maintainers.prikhi ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
29
pkgs/applications/misc/mediainfo-gui/default.nix
Normal file
29
pkgs/applications/misc/mediainfo-gui/default.nix
Normal file
@ -0,0 +1,29 @@
|
||||
{ stdenv, fetchurl, automake, autoconf, libtool, pkgconfig, libzen, libmediainfo, wxGTK, desktop_file_utils, libSM, imagemagick }:
|
||||
|
||||
let version = "0.7.71"; in
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "mediainfo-gui-${version}";
|
||||
src = fetchurl {
|
||||
url = "http://mediaarea.net/download/source/mediainfo/${version}/mediainfo_${version}.tar.bz2";
|
||||
sha256 = "0sf0ym0v5ds5w4bxk66712adybr1prxxqwvrf9clm57ibs602jfq";
|
||||
};
|
||||
|
||||
buildInputs = [ automake autoconf libtool pkgconfig libzen libmediainfo wxGTK desktop_file_utils libSM imagemagick ];
|
||||
|
||||
sourceRoot = "./MediaInfo/Project/GNU/GUI/";
|
||||
|
||||
preConfigure = "sh autogen";
|
||||
|
||||
meta = {
|
||||
description = "Supplies technical and tag information about a video or audio file (GUI version)";
|
||||
longDescription = ''
|
||||
MediaInfo is a convenient unified display of the most relevant technical
|
||||
and tag data for video and audio files.
|
||||
'';
|
||||
homepage = http://mediaarea.net/;
|
||||
license = stdenv.lib.licenses.bsd2;
|
||||
platforms = stdenv.lib.platforms.linux;
|
||||
maintainers = [ stdenv.lib.maintainers.devhell ];
|
||||
};
|
||||
}
|
30
pkgs/applications/misc/mediainfo/default.nix
Normal file
30
pkgs/applications/misc/mediainfo/default.nix
Normal file
@ -0,0 +1,30 @@
|
||||
{ stdenv, fetchurl, automake, autoconf, libtool, pkgconfig, libzen, libmediainfo, zlib }:
|
||||
|
||||
let version = "0.7.71"; in
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "mediainfo-${version}";
|
||||
src = fetchurl {
|
||||
url = "http://mediaarea.net/download/source/mediainfo/${version}/mediainfo_${version}.tar.bz2";
|
||||
sha256 = "0sf0ym0v5ds5w4bxk66712adybr1prxxqwvrf9clm57ibs602jfq";
|
||||
};
|
||||
|
||||
buildInputs = [ automake autoconf libtool pkgconfig libzen libmediainfo zlib ];
|
||||
|
||||
sourceRoot = "./MediaInfo/Project/GNU/CLI/";
|
||||
|
||||
configureFlags = [ "--with-libmediainfo=${libmediainfo}" ];
|
||||
preConfigure = "sh autogen";
|
||||
|
||||
meta = {
|
||||
description = "Supplies technical and tag information about a video or audio file";
|
||||
longDescription = ''
|
||||
MediaInfo is a convenient unified display of the most relevant technical
|
||||
and tag data for video and audio files.
|
||||
'';
|
||||
homepage = http://mediaarea.net/;
|
||||
license = stdenv.lib.licenses.bsd2;
|
||||
platforms = stdenv.lib.platforms.linux;
|
||||
maintainers = [ stdenv.lib.maintainers.devhell ];
|
||||
};
|
||||
}
|
@ -5,10 +5,10 @@ let
|
||||
s = # Generated upstream information
|
||||
rec {
|
||||
baseName="qpdfview";
|
||||
version="0.4.12";
|
||||
version = "0.4.13";
|
||||
name="${baseName}-${version}";
|
||||
url="https://launchpad.net/qpdfview/trunk/${version}/+download/qpdfview-${version}.tar.gz";
|
||||
sha256="1h6lrrh1vblqkxrd89nmid7d21anyn30iahj24z62yny35lidf0g";
|
||||
sha256 = "0hcfy9wrgs6vygmq790rqipw2132br3av3nhzrm4gpxlbw2n7xcg";
|
||||
};
|
||||
buildInputs = [
|
||||
qt4 popplerQt4 pkgconfig djvulibre libspectre cups file ghostscript
|
||||
|
@ -7,13 +7,13 @@ with stdenv.lib;
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "synergy-${version}";
|
||||
version = "1.6.1";
|
||||
version = "1.6.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "synergy";
|
||||
repo = "synergy";
|
||||
rev = "1.6.1";
|
||||
sha256 = "1043101c4phv1nbxiqp2jn1jhgzspv9q6v75z0kfzwgii5n5xq1c";
|
||||
rev = version;
|
||||
sha256 = "0himg6c50x5wz5nc6rgd54rph1w6nin6j9f08pa4spsxn9b5h8ks";
|
||||
};
|
||||
|
||||
patches = optional stdenv.isLinux ./cryptopp.patch;
|
||||
|
@ -1,5 +1,5 @@
|
||||
{ enableGUI ? true, enablePDFtoPPM ? true, useT1Lib ? false
|
||||
, stdenv, fetchurl, x11 ? null, motif ? null, freetype ? null, t1lib ? null
|
||||
, stdenv, fetchurl, zlib, libpng, x11 ? null, motif ? null, freetype ? null, t1lib ? null
|
||||
, base14Fonts ? null
|
||||
}:
|
||||
|
||||
@ -10,14 +10,14 @@ assert useT1Lib -> t1lib != null;
|
||||
assert !useT1Lib; # t1lib has multiple unpatched security vulnerabilities
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "xpdf-3.03";
|
||||
name = "xpdf-3.04";
|
||||
|
||||
src = fetchurl {
|
||||
url = ftp://ftp.foolabs.com/pub/xpdf/xpdf-3.03.tar.gz;
|
||||
sha256 = "1jnfzdqc54wa73lw28kjv0m7120mksb0zkcn81jdlvijyvc67kq2";
|
||||
url = ftp://ftp.foolabs.com/pub/xpdf/xpdf-3.04.tar.gz;
|
||||
sha256 = "1rbp54mr3z2x3a3a1qmz8byzygzi223vckfam9ib5g1sfds0qf8i";
|
||||
};
|
||||
|
||||
buildInputs =
|
||||
buildInputs = [ zlib libpng ] ++
|
||||
stdenv.lib.optionals enableGUI [x11 motif] ++
|
||||
stdenv.lib.optional useT1Lib t1lib ++
|
||||
stdenv.lib.optional enablePDFtoPPM freetype;
|
||||
|
@ -11,14 +11,18 @@ stdenv.mkDerivation rec {
|
||||
|
||||
meta = {
|
||||
description = "Lightweight WebKitGTK+ web browser";
|
||||
homepage = "http://www.midori-browser.org";
|
||||
homepage = "http://midori-browser.org";
|
||||
license = stdenv.lib.licenses.lgpl21Plus;
|
||||
platforms = stdenv.lib.platforms.linux;
|
||||
maintainers = with stdenv.lib.maintainers; [ raskin iyzsong ];
|
||||
};
|
||||
|
||||
src = fetchurl {
|
||||
url = "${meta.homepage}/downloads/midori_${version}_all_.tar.bz2";
|
||||
urls = [
|
||||
"${meta.homepage}/downloads/midori_${version}_all_.tar.bz2"
|
||||
"http://mirrors-ru.go-parts.com/blfs/conglomeration/midori/midori_${version}_all_.tar.bz2"
|
||||
];
|
||||
name = "midori_${version}_all_.tar.bz2";
|
||||
sha256 = "10ckm98rfqfbwr84b8mc1ssgj84wjgkr4dadvx2l7c64sigi66dg";
|
||||
};
|
||||
|
||||
|
@ -28,5 +28,6 @@ stdenv.mkDerivation rec {
|
||||
description = "Synchronise your ownCloud with your computer using this desktop client";
|
||||
homepage = https://owncloud.org;
|
||||
maintainers = with stdenv.lib.maintainers; [ qknight ];
|
||||
meta.platforms = stdenv.lib.platforms.unix;
|
||||
};
|
||||
}
|
||||
|
@ -17,7 +17,11 @@ stdenv.mkDerivation rec {
|
||||
rm $out/share/icons/hicolor/icon-theme.cache
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "GTK remote control for the Transmission BitTorrent client";
|
||||
};
|
||||
meta = with stdenv.lib;
|
||||
{ description = "GTK remote control for the Transmission BitTorrent client";
|
||||
homepage = http://code.google.com/p/transmission-remote-gtk/;
|
||||
license = licenses.gpl2;
|
||||
maintainers = [ maintainers.emery ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
|
@ -12,9 +12,9 @@ stdenv.mkDerivation rec {
|
||||
|
||||
configureFlags = "--with-ssl=openssl";
|
||||
|
||||
meta = {
|
||||
meta = with stdenv.lib; {
|
||||
description = "Minimalistic Murmur (Mumble server)";
|
||||
license = "BSD";
|
||||
license = licenses.bsd3;
|
||||
homepage = http://code.google.com/p/umurmur/;
|
||||
};
|
||||
}
|
||||
|
@ -6,11 +6,11 @@
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "calligra-2.8.6";
|
||||
name = "calligra-2.8.7";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://kde/stable/${name}/${name}.tar.xz";
|
||||
sha256 = "587dda4a340f46e28fe69de8f292fa33a3cf237445013f6ce5ceafa191cb3694";
|
||||
sha256 = "1d8fx0xn8n8y6jglw8hhpk7kr6kbhsbaxqwqlfzmnzh7x9s8nsxg";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake perl pkgconfig ];
|
||||
|
@ -30,7 +30,7 @@ stdenv.mkDerivation {
|
||||
meta = {
|
||||
homepage = "http://ledger-cli.org/";
|
||||
description = "A double-entry accounting system with a command-line reporting interface";
|
||||
license = "BSD";
|
||||
license = stdenv.lib.licenses.bsd3;
|
||||
|
||||
longDescription = ''
|
||||
Ledger is a powerful, double-entry accounting system that is accessed
|
||||
|
@ -1,4 +1,4 @@
|
||||
{ stdenv, fetchurl, libxslt, kdelibs, kdepimlibs, grantlee, qjson, qca2, libofx, sqlite, gettext }:
|
||||
{ stdenv, fetchurl, libxslt, kdelibs, kdepimlibs, grantlee, qjson, qca2, libofx, sqlite, gettext, boost }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "skrooge-1.10.0";
|
||||
@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
|
||||
sha256 = "0rsw2xdgws5bvnf3h4hg16liahigcxgaxls7f8hzr9wipxx5xqda";
|
||||
};
|
||||
|
||||
buildInputs = [ libxslt kdelibs kdepimlibs grantlee qjson qca2 libofx sqlite ];
|
||||
buildInputs = [ libxslt kdelibs kdepimlibs grantlee qjson qca2 libofx sqlite boost ];
|
||||
|
||||
nativeBuildInputs = [ gettext ];
|
||||
|
||||
|
@ -3,7 +3,7 @@
|
||||
{stdenv, fetchgit, writeText, pkgconfig, ocaml, findlib, camlp5, ncurses, lablgtk ? null}:
|
||||
|
||||
let
|
||||
version = "8.5pre-52f51fb3";
|
||||
version = "8.5pre-0c999f02";
|
||||
coq-version = "8.5";
|
||||
buildIde = lablgtk != null;
|
||||
ideFlags = if buildIde then "-lablgtkdir ${lablgtk}/lib/ocaml/*/site-lib/lablgtk2 -coqide opt" else "";
|
||||
@ -17,8 +17,8 @@ stdenv.mkDerivation {
|
||||
|
||||
src = fetchgit {
|
||||
url = git://scm.gforge.inria.fr/coq/coq.git;
|
||||
rev = "52f51fb385d6a1c90bd7d055185fee50ef2670be";
|
||||
sha256 = "0pgp59j2j8vk7nmcja5smly39dpkqfhpp29wpsn71piq6n52pql3";
|
||||
rev = "0c999f02ffcd61fcace0cc2d045056a82992a100";
|
||||
sha256 = "1wk9lxdmw152665hr5cvnnzgnbbq7kg2845qkb4ag99nnfpsi26s";
|
||||
};
|
||||
|
||||
buildInputs = [ pkgconfig ocaml findlib camlp5 ncurses lablgtk ];
|
||||
|
@ -69,6 +69,6 @@ stdenv.mkDerivation {
|
||||
checking.
|
||||
'';
|
||||
homepage = "http://hol.sourceforge.net/";
|
||||
license = "BSD";
|
||||
license = stdenv.lib.licenses.bsd3;
|
||||
};
|
||||
}
|
||||
|
@ -55,7 +55,7 @@ rec {
|
||||
];
|
||||
platforms = with a.lib.platforms;
|
||||
linux;
|
||||
license = "BSD";
|
||||
license = a.lib.licenses.bsd3;
|
||||
inherit (sourceInfo) version;
|
||||
homepage = "http://page.mi.fu-berlin.de/cbenzmueller/leo/";
|
||||
downloadPage = "http://page.mi.fu-berlin.de/cbenzmueller/leo/download.html";
|
||||
|
@ -38,7 +38,7 @@ rec {
|
||||
];
|
||||
platforms = with a.lib.platforms;
|
||||
linux;
|
||||
license = "BSD";
|
||||
license = a.lib.licenses.bsd2;
|
||||
};
|
||||
passthru = {
|
||||
updateInfo = {
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
let
|
||||
name = "maxima";
|
||||
version = "5.34.1";
|
||||
version = "5.35.1";
|
||||
|
||||
searchPath =
|
||||
stdenv.lib.makeSearchPath "bin"
|
||||
@ -13,7 +13,7 @@ stdenv.mkDerivation {
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/${name}/${name}-${version}.tar.gz";
|
||||
sha256 = "1dw9vfzldpj7lv303xbw0wpyn6ra6i2yzwlrjbcx7j0jm5n43ji0";
|
||||
sha256 = "1wwqvay9z6gal7bsyyyhhcwh0fy5ak4h2a446ali0x6zmybaklcy";
|
||||
};
|
||||
|
||||
buildInputs = [sbcl texinfo perl makeWrapper];
|
||||
@ -29,10 +29,9 @@ stdenv.mkDerivation {
|
||||
ln -s ../maxima/${version}/doc $out/share/doc/maxima
|
||||
'';
|
||||
|
||||
# Failures in the regression test suite are not going to abort the
|
||||
# build process. We run the suite mostly so that potential errors show
|
||||
# up in the build log. See also:
|
||||
# <http://sourceforge.net/tracker/?func=detail&aid=3365831&group_id=4933&atid=104933>.
|
||||
# Failures in the regression test suite won't abort the build process. We run
|
||||
# the suite only so that potential errors show up in the build log. See also:
|
||||
# http://sourceforge.net/tracker/?func=detail&aid=3365831&group_id=4933&atid=104933.
|
||||
doCheck = true;
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
@ -2,14 +2,14 @@
|
||||
|
||||
let
|
||||
name = "wxmaxima";
|
||||
version = "14.09.0";
|
||||
version = "14.12.1";
|
||||
in
|
||||
stdenv.mkDerivation {
|
||||
name = "${name}-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/${name}/wxMaxima/${version}/wxmaxima-${version}.tar.gz";
|
||||
sha256 = "1wqiw9dgjc9vg94dqk4kif8xs7nlmn34xj3v4zm13fh1jihraksq";
|
||||
sha256 = "0sjxvh0y5w5p2xdq3qzz3yhlsigrg3ynib9dkymhynpfnb51x82z";
|
||||
};
|
||||
|
||||
buildInputs = [wxGTK maxima makeWrapper];
|
||||
|
@ -40,7 +40,7 @@ stdenv.mkDerivation {
|
||||
from the others by being extremely simple to setup and operate.
|
||||
'';
|
||||
homepage = http://www.fossil-scm.org/;
|
||||
license = "BSD";
|
||||
license = stdenv.lib.licenses.bsd2;
|
||||
platforms = with stdenv.lib.platforms; all;
|
||||
maintainers = [ #Add your name here!
|
||||
stdenv.lib.maintainers.z77z
|
||||
|
@ -10,7 +10,7 @@
|
||||
|
||||
let
|
||||
|
||||
version = "2.1.3";
|
||||
version = "2.1.4";
|
||||
|
||||
svn = subversionClient.override { perlBindings = true; };
|
||||
|
||||
@ -21,7 +21,7 @@ stdenv.mkDerivation {
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://www.kernel.org/pub/software/scm/git/git-${version}.tar.xz";
|
||||
sha256 = "0mvgvr2hz25p49dhhizcw9591f2h17y2699mpmndis3kzap0c6zy";
|
||||
sha256 = "0gh57mfxz1qrxzfp1lpcaqswhixc246kmajlf0db7g0cn6wnhjd0";
|
||||
};
|
||||
|
||||
patches = [
|
||||
|
@ -2,7 +2,7 @@
|
||||
, guiSupport ? false, tk ? null, curses }:
|
||||
|
||||
let
|
||||
version = "3.1.2";
|
||||
version = "3.2.2";
|
||||
name = "mercurial-${version}";
|
||||
in
|
||||
|
||||
@ -11,7 +11,7 @@ stdenv.mkDerivation {
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://mercurial.selenic.com/release/${name}.tar.gz";
|
||||
sha256 = "0fldlypjpzn12az2gk4b3am615wih3r6ld69im97iqq76zmmrgjx";
|
||||
sha256 = "1311ba2cgdc17ap8sl7pswzngc702pnkr4cd2rx6znb0w9jzgpmg";
|
||||
};
|
||||
|
||||
inherit python; # pass it so that the same version can be used in hg2git
|
||||
|
@ -17,13 +17,13 @@ assert javahlBindings -> jdk != null && perl != null;
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
|
||||
version = "1.8.10";
|
||||
version = "1.8.11";
|
||||
|
||||
name = "subversion-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://apache/subversion/${name}.tar.bz2";
|
||||
sha256 = "1k3xskg2kjfp3zipl46lqx4fq4lhqnswd79qxp1kfhwplz401j8w";
|
||||
sha1 = "161edaee328f4fdcfd2a7c10ecd3fbcd51c61275";
|
||||
};
|
||||
|
||||
buildInputs = [ zlib apr aprutil sqlite ]
|
||||
|
@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
|
||||
meta = {
|
||||
homepage = http://www.alliedvisiontec.com/us/products/software/linux/avt-fire4linux.html;
|
||||
description = "AVT Viewer application for AVT cameras";
|
||||
license = "BSD";
|
||||
license = stdenv.lib.licenses.bsd3;
|
||||
maintainers = [ stdenv.lib.maintainers.viric ];
|
||||
platforms = stdenv.lib.platforms.linux;
|
||||
hydraPlatforms = []; # because libdc1394avt is broken
|
||||
|
30
pkgs/applications/video/devede/default.nix
Normal file
30
pkgs/applications/video/devede/default.nix
Normal file
@ -0,0 +1,30 @@
|
||||
{ pkgs, stdenv, fetchurl, pythonPackages, buildPythonPackage, pygtk, ffmpeg, mplayer, vcdimager, cdrkit, dvdauthor }:
|
||||
|
||||
let
|
||||
inherit (pythonPackages) dbus;
|
||||
|
||||
in buildPythonPackage rec {
|
||||
name = "devede-3.23.0";
|
||||
namePrefix = "";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://www.rastersoft.com/descargas/${name}.tar.bz2";
|
||||
sha256 = "9e217ca46f5f275cb0c3cadbe8c830fa1fde774c004bd95a343d1255be6f25e1";
|
||||
};
|
||||
|
||||
buildInputs = [ ffmpeg ];
|
||||
|
||||
pythonPath = [ pygtk dbus ffmpeg mplayer dvdauthor vcdimager cdrkit ];
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace devede --replace "/usr/share/devede" "$out/share/devede"
|
||||
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "DVD Creator for Linux";
|
||||
homepage = http://www.rastersoft.com/programas/devede.html;
|
||||
license = licenses.gpl3;
|
||||
maintainers = [ maintainers.bdimcheff ];
|
||||
};
|
||||
}
|
@ -6,7 +6,8 @@ stdenv.mkDerivation {
|
||||
name = "kmplayer-0.11.3d";
|
||||
|
||||
src = fetchurl {
|
||||
url = http://kmplayer.kde.org/pkgs/kmplayer-0.11.3d.tar.bz2;
|
||||
#url = http://kmplayer.kde.org/pkgs/kmplayer-0.11.3d.tar.bz2;
|
||||
url = "mirror://gentoo/distfiles/kmplayer-0.11.3d.tar.bz2";
|
||||
sha256 = "1yvbkb1hh5y7fqfvixjf2rryzm0fm0fpkx4lmvhi7k7d0v4wpgky";
|
||||
};
|
||||
|
||||
|
@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
|
||||
version = "2.1.5";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://download.videolan.org/pub/videolan/vlc/${version}/${name}.tar.xz";
|
||||
url = "http://download.videolan.org/vlc/${version}/${name}.tar.xz";
|
||||
sha256 = "0whzbn7ahn5maarcwl1yhk9lq10b0q0y9w5pjl9kh3frdjmncrbg";
|
||||
};
|
||||
|
||||
|
@ -26,7 +26,7 @@ stdenv.mkDerivation (edk2.setup "OvmfPkg/OvmfPkg${targetArch}.dsc" {
|
||||
meta = {
|
||||
description = "Sample UEFI firmware for QEMU and KVM";
|
||||
homepage = http://sourceforge.net/apps/mediawiki/tianocore/index.php?title=OVMF;
|
||||
license = "BSD";
|
||||
license = stdenv.lib.licenses.bsd2;
|
||||
maintainers = [ stdenv.lib.maintainers.shlevy ];
|
||||
platforms = ["x86_64-linux" "i686-linux"];
|
||||
};
|
||||
|
@ -3,11 +3,11 @@ btrfsProgs, iptables, bash, e2fsprogs, xz}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "docker-${version}";
|
||||
version = "1.3.1";
|
||||
version = "1.3.3";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/dotcloud/docker/archive/v${version}.tar.gz";
|
||||
sha256 = "0w1gz1apkcrmhgng2rkkzy7wmxm68zgs6a16bi4cx3a38n4mgday";
|
||||
sha256 = "1jxvbm81zinh0achh8r2aac3x650aqiwn3w6iq1fg57fir1lw1cw";
|
||||
};
|
||||
|
||||
buildInputs = [ makeWrapper go sqlite lxc iproute bridge_utils devicemapper btrfsProgs iptables e2fsprogs];
|
||||
|
@ -1,6 +1,6 @@
|
||||
{ stdenv, fetchurl, lib, iasl, dev86, pam, libxslt, libxml2, libX11, xproto, libXext
|
||||
, libXcursor, libXmu, qt4, libIDL, SDL, libcap, zlib, libpng, glib, kernel, lvm2
|
||||
, which, alsaLib, curl, libvpx, gawk
|
||||
, which, alsaLib, curl, libvpx, gawk, nettools
|
||||
, xorriso, makeself, perl, pkgconfig, nukeReferences
|
||||
, javaBindings ? false, jdk ? null
|
||||
, pythonBindings ? false, python ? null
|
||||
@ -12,23 +12,25 @@
|
||||
with stdenv.lib;
|
||||
|
||||
let
|
||||
buildType = "release";
|
||||
|
||||
version = "4.3.20"; # changes ./guest-additions as well
|
||||
|
||||
forEachModule = action: ''
|
||||
for mod in \
|
||||
$sourcedir/out/linux.*/release/bin/src/vboxdrv \
|
||||
$sourcedir/out/linux.*/release/bin/src/vboxpci \
|
||||
$sourcedir/out/linux.*/release/bin/src/vboxnetadp \
|
||||
$sourcedir/out/linux.*/release/bin/src/vboxnetflt
|
||||
out/linux.*/${buildType}/bin/src/vboxdrv \
|
||||
out/linux.*/${buildType}/bin/src/vboxpci \
|
||||
out/linux.*/${buildType}/bin/src/vboxnetadp \
|
||||
out/linux.*/${buildType}/bin/src/vboxnetflt
|
||||
do
|
||||
if [ "x$(basename "$mod")" != xvboxdrv -a ! -e "$mod/Module.symvers" ]
|
||||
then
|
||||
cp -v $sourcedir/out/linux.*/release/bin/src/vboxdrv/Module.symvers \
|
||||
"$mod/Module.symvers"
|
||||
cp -v out/linux.*/${buildType}/bin/src/vboxdrv/Module.symvers \
|
||||
"$mod/Module.symvers"
|
||||
fi
|
||||
INSTALL_MOD_PATH="$out" INSTALL_MOD_DIR=misc \
|
||||
make -C "$MODULES_BUILD_DIR" "M=$mod" DEPMOD=/do_not_use_depmod ${action}
|
||||
make -C "$MODULES_BUILD_DIR" DEPMOD=/do_not_use_depmod \
|
||||
"M=\$(PWD)/$mod" BUILD_TYPE="${buildType}" ${action}
|
||||
done
|
||||
'';
|
||||
|
||||
@ -86,8 +88,12 @@ in stdenv.mkDerivation {
|
||||
|
||||
patches = optional enableHardening ./hardened.patch;
|
||||
|
||||
postPatch = ''
|
||||
sed -i -e 's|/sbin/ifconfig|${nettools}/bin/ifconfig|' \
|
||||
src/apps/adpctl/VBoxNetAdpCtl.cpp
|
||||
'';
|
||||
|
||||
configurePhase = ''
|
||||
sourcedir="$(pwd)"
|
||||
cat >> LocalConfig.kmk <<LOCAL_CONFIG
|
||||
VBOX_WITH_TESTCASES :=
|
||||
VBOX_WITH_TESTSUITE :=
|
||||
@ -124,7 +130,7 @@ in stdenv.mkDerivation {
|
||||
|
||||
buildPhase = ''
|
||||
source env.sh
|
||||
kmk
|
||||
kmk BUILD_TYPE="${buildType}"
|
||||
${forEachModule "modules"}
|
||||
'';
|
||||
|
||||
@ -133,9 +139,9 @@ in stdenv.mkDerivation {
|
||||
share="${if enableHardening then "$out/share/virtualbox" else "$libexec"}"
|
||||
|
||||
# Install VirtualBox files
|
||||
cd out/linux.*/release/bin
|
||||
mkdir -p $libexec
|
||||
cp -av * $libexec
|
||||
mkdir -p "$libexec"
|
||||
find out/linux.*/${buildType}/bin -mindepth 1 -maxdepth 1 \
|
||||
-name src -o -exec cp -avt "$libexec" {} +
|
||||
|
||||
# Install kernel modules
|
||||
${forEachModule "modules_install"}
|
||||
@ -169,9 +175,6 @@ in stdenv.mkDerivation {
|
||||
ln -s $libexec/icons/$size/*.png $out/share/icons/hicolor/$size/apps
|
||||
done
|
||||
|
||||
# Get rid of src cruft.
|
||||
rm -rf $out/libexec/virtualbox/src
|
||||
|
||||
# Get rid of a reference to linux.dev.
|
||||
nuke-refs $out/lib/modules/*/misc/*.ko
|
||||
'';
|
||||
|
@ -1,3 +1,64 @@
|
||||
diff --git a/include/iprt/mangling.h b/include/iprt/mangling.h
|
||||
index 70c596a..78972ed 100644
|
||||
--- a/include/iprt/mangling.h
|
||||
+++ b/include/iprt/mangling.h
|
||||
@@ -1068,6 +1068,7 @@
|
||||
# define RTPathStripSuffix RT_MANGLER(RTPathStripSuffix)
|
||||
# define RTPathStripFilename RT_MANGLER(RTPathStripFilename)
|
||||
# define RTPathStripTrailingSlash RT_MANGLER(RTPathStripTrailingSlash)
|
||||
+# define RTPathSuidDir RT_MANGLER(RTPathSuidDir)
|
||||
# define RTPathTemp RT_MANGLER(RTPathTemp)
|
||||
# define RTPathTraverseList RT_MANGLER(RTPathTraverseList)
|
||||
# define RTPathUnlink RT_MANGLER(RTPathUnlink)
|
||||
@@ -1105,6 +1106,7 @@
|
||||
# define RTProcGetAffinityMask RT_MANGLER(RTProcGetAffinityMask)
|
||||
# define RTProcGetExecutablePath RT_MANGLER(RTProcGetExecutablePath)
|
||||
# define RTProcGetPriority RT_MANGLER(RTProcGetPriority)
|
||||
+# define RTProcGetSuidPath RT_MANGLER(RTProcGetSuidPath)
|
||||
# define RTProcIsRunningByName RT_MANGLER(RTProcIsRunningByName)
|
||||
# define RTProcQueryParent RT_MANGLER(RTProcQueryParent)
|
||||
# define RTProcQueryUsername RT_MANGLER(RTProcQueryUsername)
|
||||
diff --git a/include/iprt/path.h b/include/iprt/path.h
|
||||
index 7e42754..b4de4c8 100644
|
||||
--- a/include/iprt/path.h
|
||||
+++ b/include/iprt/path.h
|
||||
@@ -1049,6 +1049,15 @@ RTDECL(int) RTPathCalcRelative(char *pszPathDst, size_t cbPathDst,
|
||||
RTDECL(int) RTPathExecDir(char *pszPath, size_t cchPath);
|
||||
|
||||
/**
|
||||
+ * Gets the path to the NixOS setuid wrappers directory.
|
||||
+ *
|
||||
+ * @returns iprt status code.
|
||||
+ * @param pszPath Buffer where to store the path.
|
||||
+ * @param cchPath Buffer size in bytes.
|
||||
+ */
|
||||
+RTDECL(int) RTPathSuidDir(char *pszPath, size_t cchPath);
|
||||
+
|
||||
+/**
|
||||
* Gets the user home directory.
|
||||
*
|
||||
* @returns iprt status code.
|
||||
diff --git a/include/iprt/process.h b/include/iprt/process.h
|
||||
index 2760306..0ce6c92 100644
|
||||
--- a/include/iprt/process.h
|
||||
+++ b/include/iprt/process.h
|
||||
@@ -313,6 +313,16 @@ RTR3DECL(const char *) RTProcShortName(void);
|
||||
RTR3DECL(char *) RTProcGetExecutablePath(char *pszExecPath, size_t cbExecPath);
|
||||
|
||||
/**
|
||||
+ * Gets the path to the NixOS setuid wrappers directory.
|
||||
+ *
|
||||
+ * @returns pszExecPath on success. NULL on buffer overflow or other errors.
|
||||
+ *
|
||||
+ * @param pszExecPath Where to store the path.
|
||||
+ * @param cbExecPath The size of the buffer.
|
||||
+ */
|
||||
+RTR3DECL(char *) RTProcGetSuidPath(char *pszExecPath, size_t cbExecPath);
|
||||
+
|
||||
+/**
|
||||
* Daemonize the current process, making it a background process.
|
||||
*
|
||||
* The way this work is that it will spawn a detached / backgrounded /
|
||||
diff --git a/src/VBox/HostDrivers/Support/SUPR3HardenedVerify.cpp b/src/VBox/HostDrivers/Support/SUPR3HardenedVerify.cpp
|
||||
index c39d2f7..cd19186 100644
|
||||
--- a/src/VBox/HostDrivers/Support/SUPR3HardenedVerify.cpp
|
||||
@ -37,3 +98,108 @@ index 95dc9a7..39170bc 100644
|
||||
size_t cchBufLeft = strlen(szPath);
|
||||
szPath[cchBufLeft++] = RTPATH_DELIMITER;
|
||||
szPath[cchBufLeft] = 0;
|
||||
diff --git a/src/VBox/Main/src-server/NATNetworkServiceRunner.cpp b/src/VBox/Main/src-server/NATNetworkServiceRunner.cpp
|
||||
index 090018e..7dcfc7a 100644
|
||||
--- a/src/VBox/Main/src-server/NATNetworkServiceRunner.cpp
|
||||
+++ b/src/VBox/Main/src-server/NATNetworkServiceRunner.cpp
|
||||
@@ -75,7 +75,7 @@ int NATNetworkServiceRunner::start()
|
||||
|
||||
/* get the path to the executable */
|
||||
char exePathBuf[RTPATH_MAX];
|
||||
- const char *exePath = RTProcGetExecutablePath(exePathBuf, RTPATH_MAX);
|
||||
+ const char *exePath = RTProcGetSuidPath(exePathBuf, RTPATH_MAX);
|
||||
char *substrSl = strrchr(exePathBuf, '/');
|
||||
char *substrBs = strrchr(exePathBuf, '\\');
|
||||
char *suffix = substrSl ? substrSl : substrBs;
|
||||
diff --git a/src/VBox/Main/src-server/NetworkServiceRunner.cpp b/src/VBox/Main/src-server/NetworkServiceRunner.cpp
|
||||
index e9e1ba62..4d1c1e1 100644
|
||||
--- a/src/VBox/Main/src-server/NetworkServiceRunner.cpp
|
||||
+++ b/src/VBox/Main/src-server/NetworkServiceRunner.cpp
|
||||
@@ -79,7 +79,7 @@ int NetworkServiceRunner::start()
|
||||
|
||||
/* get the path to the executable */
|
||||
char exePathBuf[RTPATH_MAX];
|
||||
- const char *exePath = RTProcGetExecutablePath(exePathBuf, RTPATH_MAX);
|
||||
+ const char *exePath = RTProcGetSuidPath(exePathBuf, RTPATH_MAX);
|
||||
char *substrSl = strrchr(exePathBuf, '/');
|
||||
char *substrBs = strrchr(exePathBuf, '\\');
|
||||
char *suffix = substrSl ? substrSl : substrBs;
|
||||
diff --git a/src/VBox/Main/src-server/generic/NetIf-generic.cpp b/src/VBox/Main/src-server/generic/NetIf-generic.cpp
|
||||
index 8559d2a..2177f27 100644
|
||||
--- a/src/VBox/Main/src-server/generic/NetIf-generic.cpp
|
||||
+++ b/src/VBox/Main/src-server/generic/NetIf-generic.cpp
|
||||
@@ -47,7 +47,7 @@ static int NetIfAdpCtl(const char * pcszIfName, const char *pszAddr, const char
|
||||
const char *args[] = { NULL, pcszIfName, pszAddr, pszOption, pszMask, NULL };
|
||||
|
||||
char szAdpCtl[RTPATH_MAX];
|
||||
- int rc = RTPathExecDir(szAdpCtl, sizeof(szAdpCtl) - sizeof("/" VBOXNETADPCTL_NAME));
|
||||
+ int rc = RTPathSuidDir(szAdpCtl, sizeof(szAdpCtl) - sizeof("/" VBOXNETADPCTL_NAME));
|
||||
if (RT_FAILURE(rc))
|
||||
{
|
||||
LogRel(("NetIfAdpCtl: failed to get program path, rc=%Rrc.\n", rc));
|
||||
@@ -90,7 +90,7 @@ static int NetIfAdpCtl(HostNetworkInterface * pIf, const char *pszAddr, const ch
|
||||
int NetIfAdpCtlOut(const char * pcszName, const char * pcszCmd, char *pszBuffer, size_t cBufSize)
|
||||
{
|
||||
char szAdpCtl[RTPATH_MAX];
|
||||
- int rc = RTPathExecDir(szAdpCtl, sizeof(szAdpCtl) - sizeof("/" VBOXNETADPCTL_NAME " ") - strlen(pcszCmd));
|
||||
+ int rc = RTPathSuidDir(szAdpCtl, sizeof(szAdpCtl) - sizeof("/" VBOXNETADPCTL_NAME " ") - strlen(pcszCmd));
|
||||
if (RT_FAILURE(rc))
|
||||
{
|
||||
LogRel(("NetIfAdpCtlOut: Failed to get program path, rc=%Rrc\n", rc));
|
||||
@@ -202,7 +202,7 @@ int NetIfCreateHostOnlyNetworkInterface(VirtualBox *pVirtualBox,
|
||||
progress.queryInterfaceTo(aProgress);
|
||||
|
||||
char szAdpCtl[RTPATH_MAX];
|
||||
- int rc = RTPathExecDir(szAdpCtl, sizeof(szAdpCtl) - sizeof("/" VBOXNETADPCTL_NAME " add"));
|
||||
+ int rc = RTPathSuidDir(szAdpCtl, sizeof(szAdpCtl) - sizeof("/" VBOXNETADPCTL_NAME " add"));
|
||||
if (RT_FAILURE(rc))
|
||||
{
|
||||
progress->i_notifyComplete(E_FAIL,
|
||||
diff --git a/src/VBox/Runtime/r3/path.cpp b/src/VBox/Runtime/r3/path.cpp
|
||||
index be2ad8f..7ddf105 100644
|
||||
--- a/src/VBox/Runtime/r3/path.cpp
|
||||
+++ b/src/VBox/Runtime/r3/path.cpp
|
||||
@@ -81,6 +81,12 @@ RTDECL(int) RTPathExecDir(char *pszPath, size_t cchPath)
|
||||
}
|
||||
|
||||
|
||||
+RTDECL(int) RTPathSuidDir(char *pszPath, size_t cchPath)
|
||||
+{
|
||||
+ return RTStrCopy(pszPath, cchPath, "/var/setuid-wrappers");
|
||||
+}
|
||||
+
|
||||
+
|
||||
RTDECL(int) RTPathAppPrivateNoArch(char *pszPath, size_t cchPath)
|
||||
{
|
||||
#if !defined(RT_OS_WINDOWS) && defined(RTPATH_APP_PRIVATE)
|
||||
diff --git a/src/VBox/Runtime/r3/process.cpp b/src/VBox/Runtime/r3/process.cpp
|
||||
index 7bde6af..2656cae 100644
|
||||
--- a/src/VBox/Runtime/r3/process.cpp
|
||||
+++ b/src/VBox/Runtime/r3/process.cpp
|
||||
@@ -111,6 +111,26 @@ RTR3DECL(char *) RTProcGetExecutablePath(char *pszExecPath, size_t cbExecPath)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
+/*
|
||||
+ * Note the / at the end! This is important, because the functions using this
|
||||
+ * will cut off everything after the rightmost / as this function is analogous
|
||||
+ * to RTProcGetExecutablePath().
|
||||
+ */
|
||||
+#define SUIDDIR "/var/setuid-wrappers/"
|
||||
+
|
||||
+RTR3DECL(char *) RTProcGetSuidPath(char *pszExecPath, size_t cbExecPath)
|
||||
+{
|
||||
+ if (cbExecPath >= sizeof(SUIDDIR))
|
||||
+ {
|
||||
+ memcpy(pszExecPath, SUIDDIR, sizeof(SUIDDIR));
|
||||
+ pszExecPath[sizeof(SUIDDIR)] = '\0';
|
||||
+ return pszExecPath;
|
||||
+ }
|
||||
+
|
||||
+ AssertMsgFailed(("Buffer too small (%zu <= %zu)\n", cbExecPath, sizeof(SUIDDIR)));
|
||||
+ return NULL;
|
||||
+}
|
||||
+
|
||||
|
||||
RTR3DECL(const char *) RTProcShortName(void)
|
||||
{
|
||||
|
@ -47,4 +47,9 @@ stdenv.mkDerivation rec {
|
||||
maintainers = with stdenv.lib.maintainers; [viric];
|
||||
platforms = with stdenv.lib.platforms; linux;
|
||||
};
|
||||
|
||||
passthru = {
|
||||
inherit lua;
|
||||
};
|
||||
|
||||
}
|
||||
|
@ -1,13 +1,13 @@
|
||||
{ stdenv, fetchurl, lua, cairo, cmake, imagemagick, pkgconfig, gdk_pixbuf
|
||||
{ stdenv, fetchurl, luaPackages, cairo, cmake, imagemagick, pkgconfig, gdk_pixbuf
|
||||
, xlibs, libstartup_notification, libxdg_basedir, libpthreadstubs
|
||||
, xcb-util-cursor, lgi, makeWrapper, pango, gobjectIntrospection, unclutter
|
||||
, xcb-util-cursor, makeWrapper, pango, gobjectIntrospection, unclutter
|
||||
, compton, procps, iproute, coreutils, curl, alsaUtils, findutils, rxvt_unicode
|
||||
, which, dbus, nettools, git, asciidoc, doxygen, xmlto, docbook_xml_dtd_45
|
||||
, docbook_xsl }:
|
||||
|
||||
let
|
||||
version = "3.5.5";
|
||||
in
|
||||
in with luaPackages;
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "awesome-${version}";
|
||||
@ -32,6 +32,7 @@ stdenv.mkDerivation rec {
|
||||
dbus
|
||||
doxygen
|
||||
gdk_pixbuf
|
||||
gobjectIntrospection
|
||||
git
|
||||
imagemagick
|
||||
lgi
|
||||
@ -60,18 +61,22 @@ stdenv.mkDerivation rec {
|
||||
|
||||
LD_LIBRARY_PATH = "${cairo}/lib:${pango}/lib:${gobjectIntrospection}/lib";
|
||||
GI_TYPELIB_PATH = "${pango}/lib/girepository-1.0";
|
||||
LUA_CPATH = "${lgi}/lib/lua/5.1/?.so";
|
||||
LUA_PATH = "${lgi}/share/lua/5.1/?.lua;${lgi}/share/lua/5.1/lgi/?.lua";
|
||||
LUA_CPATH = "${lgi}/lib/lua/${lua.luaversion}/?.so";
|
||||
LUA_PATH = "${lgi}/share/lua/${lua.luaversion}/?.lua;${lgi}/share/lua/${lua.luaversion}/lgi/?.lua";
|
||||
|
||||
postInstall = ''
|
||||
wrapProgram $out/bin/awesome \
|
||||
--set LUA_CPATH '"${lgi}/lib/lua/5.1/?.so"' \
|
||||
--set LUA_PATH '"${lgi}/share/lua/5.1/?.lua;${lgi}/share/lua/5.1/lgi/?.lua"' \
|
||||
--set GI_TYPELIB_PATH "${pango}/lib/girepository-1.0" \
|
||||
--prefix LUA_CPATH ";" '"${lgi}/lib/lua/${lua.luaversion}/?.so"' \
|
||||
--prefix LUA_PATH ";" '"${lgi}/share/lua/${lua.luaversion}/?.lua;${lgi}/share/lua/${lua.luaversion}/lgi/?.lua"' \
|
||||
--prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \
|
||||
--prefix LD_LIBRARY_PATH : "${cairo}/lib:${pango}/lib:${gobjectIntrospection}/lib" \
|
||||
--prefix PATH : "${compton}/bin:${unclutter}/bin:${procps}/bin:${iproute}/sbin:${coreutils}/bin:${curl}/bin:${alsaUtils}/bin:${findutils}/bin:${rxvt_unicode}/bin"
|
||||
|
||||
wrapProgram $out/bin/awesome-client \
|
||||
--prefix PATH : "${which}/bin"
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
inherit lua;
|
||||
};
|
||||
}
|
||||
|
@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
|
||||
description = "A tiling window manager based on binary space partitioning";
|
||||
homepage = http://github.com/baskerville/bspwm;
|
||||
maintainers = [ stdenv.lib.maintainers.meisternu ];
|
||||
license = "BSD";
|
||||
license = stdenv.lib.licenses.bsd2;
|
||||
platforms = stdenv.lib.platforms.linux;
|
||||
};
|
||||
}
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user