Merge branch 'master' of git://github.com/NixOS/nixpkgs into staging
This commit is contained in:
commit
09f02b918e
2
.github/PULL_REQUEST_TEMPLATE.md
vendored
2
.github/PULL_REQUEST_TEMPLATE.md
vendored
@ -1,6 +1,6 @@
|
|||||||
###### Things done
|
###### Things done
|
||||||
|
|
||||||
- [ ] Tested using sandboxing (`nix-build --option build-use-chroot true` or [nix.useChroot](http://nixos.org/nixos/manual/options.html#opt-nix.useChroot) on NixOS)
|
- [ ] Tested using sandboxing (`nix-build --option build-use-sandbox true` or [nix.useSandbox](http://nixos.org/nixos/manual/options.html#opt-nix.useSandbox) on NixOS)
|
||||||
- Built on platform(s)
|
- Built on platform(s)
|
||||||
- [ ] NixOS
|
- [ ] NixOS
|
||||||
- [ ] OS X
|
- [ ] OS X
|
||||||
|
@ -119,6 +119,6 @@ done
|
|||||||
</screen>
|
</screen>
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>To extract dependency information from a Go package in automated way use <link xlink:href="https://github.com/cstrahan/go2nix">go2nix</link>.</para>
|
<para>To extract dependency information from a Go package in automated way use <link xlink:href="https://github.com/kamilchm/go2nix">go2nix</link>.</para>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
@ -102,6 +102,7 @@
|
|||||||
dmalikov = "Dmitry Malikov <malikov.d.y@gmail.com>";
|
dmalikov = "Dmitry Malikov <malikov.d.y@gmail.com>";
|
||||||
dochang = "Desmond O. Chang <dochang@gmail.com>";
|
dochang = "Desmond O. Chang <dochang@gmail.com>";
|
||||||
doublec = "Chris Double <chris.double@double.co.nz>";
|
doublec = "Chris Double <chris.double@double.co.nz>";
|
||||||
|
drewkett = "Andrew Burkett <burkett.andrew@gmail.com>";
|
||||||
ebzzry = "Rommel Martinez <ebzzry@gmail.com>";
|
ebzzry = "Rommel Martinez <ebzzry@gmail.com>";
|
||||||
ederoyd46 = "Matthew Brown <matt@ederoyd.co.uk>";
|
ederoyd46 = "Matthew Brown <matt@ederoyd.co.uk>";
|
||||||
eduarrrd = "Eduard Bachmakov <e.bachmakov@gmail.com>";
|
eduarrrd = "Eduard Bachmakov <e.bachmakov@gmail.com>";
|
||||||
@ -253,7 +254,7 @@
|
|||||||
notthemessiah = "Brian Cohen <brian.cohen.88@gmail.com>";
|
notthemessiah = "Brian Cohen <brian.cohen.88@gmail.com>";
|
||||||
np = "Nicolas Pouillard <np.nix@nicolaspouillard.fr>";
|
np = "Nicolas Pouillard <np.nix@nicolaspouillard.fr>";
|
||||||
nslqqq = "Nikita Mikhailov <nslqqq@gmail.com>";
|
nslqqq = "Nikita Mikhailov <nslqqq@gmail.com>";
|
||||||
obadz = "obadz <dav-nixos@odav.org>";
|
obadz = "obadz <nixos@obadz.com>";
|
||||||
ocharles = "Oliver Charles <ollie@ocharles.org.uk>";
|
ocharles = "Oliver Charles <ollie@ocharles.org.uk>";
|
||||||
odi = "Oliver Dunkl <oliver.dunkl@gmail.com>";
|
odi = "Oliver Dunkl <oliver.dunkl@gmail.com>";
|
||||||
offline = "Jaka Hudoklin <jakahudoklin@gmail.com>";
|
offline = "Jaka Hudoklin <jakahudoklin@gmail.com>";
|
||||||
@ -296,6 +297,7 @@
|
|||||||
refnil = "Martin Lavoie <broemartino@gmail.com>";
|
refnil = "Martin Lavoie <broemartino@gmail.com>";
|
||||||
relrod = "Ricky Elrod <ricky@elrod.me>";
|
relrod = "Ricky Elrod <ricky@elrod.me>";
|
||||||
renzo = "Renzo Carbonara <renzocarbonara@gmail.com>";
|
renzo = "Renzo Carbonara <renzocarbonara@gmail.com>";
|
||||||
|
retrry = "Tadas Barzdžius <retrry@gmail.com>";
|
||||||
rick68 = "Wei-Ming Yang <rick68@gmail.com>";
|
rick68 = "Wei-Ming Yang <rick68@gmail.com>";
|
||||||
rickynils = "Rickard Nilsson <rickynils@gmail.com>";
|
rickynils = "Rickard Nilsson <rickynils@gmail.com>";
|
||||||
rnhmjoj = "Michele Guerini Rocco <micheleguerinirocco@me.com>";
|
rnhmjoj = "Michele Guerini Rocco <micheleguerinirocco@me.com>";
|
||||||
@ -338,6 +340,7 @@
|
|||||||
spwhitt = "Spencer Whitt <sw@swhitt.me>";
|
spwhitt = "Spencer Whitt <sw@swhitt.me>";
|
||||||
stephenmw = "Stephen Weinberg <stephen@q5comm.com>";
|
stephenmw = "Stephen Weinberg <stephen@q5comm.com>";
|
||||||
steveej = "Stefan Junker <mail@stefanjunker.de>";
|
steveej = "Stefan Junker <mail@stefanjunker.de>";
|
||||||
|
swistak35 = "Rafał Łasocha <me@swistak35.com>";
|
||||||
szczyp = "Szczyp <qb@szczyp.com>";
|
szczyp = "Szczyp <qb@szczyp.com>";
|
||||||
sztupi = "Attila Sztupak <attila.sztupak@gmail.com>";
|
sztupi = "Attila Sztupak <attila.sztupak@gmail.com>";
|
||||||
taeer = "Taeer Bar-Yam <taeer@necsi.edu>";
|
taeer = "Taeer Bar-Yam <taeer@necsi.edu>";
|
||||||
|
@ -11,35 +11,25 @@ uses the NixOS and Nixpkgs sources provided by the
|
|||||||
<literal>nixos-unstable</literal> channel (kept in
|
<literal>nixos-unstable</literal> channel (kept in
|
||||||
<filename>/nix/var/nix/profiles/per-user/root/channels/nixos</filename>).
|
<filename>/nix/var/nix/profiles/per-user/root/channels/nixos</filename>).
|
||||||
To modify NixOS, however, you should check out the latest sources from
|
To modify NixOS, however, you should check out the latest sources from
|
||||||
Git. This is done using the following command:
|
Git. This is as follows:
|
||||||
|
|
||||||
<screen>
|
<screen>
|
||||||
$ nixos-checkout <replaceable>/my/sources</replaceable>
|
|
||||||
</screen>
|
|
||||||
|
|
||||||
or
|
|
||||||
|
|
||||||
<screen>
|
|
||||||
$ mkdir -p <replaceable>/my/sources</replaceable>
|
|
||||||
$ cd <replaceable>/my/sources</replaceable>
|
|
||||||
$ nix-env -i git
|
|
||||||
$ git clone git://github.com/NixOS/nixpkgs.git
|
$ git clone git://github.com/NixOS/nixpkgs.git
|
||||||
$ cd nixpkgs
|
$ cd nixpkgs
|
||||||
$ git remote add channels git://github.com/NixOS/nixpkgs-channels.git
|
$ git remote add channels git://github.com/NixOS/nixpkgs-channels.git
|
||||||
$ git remote update channels
|
$ git remote update channels
|
||||||
</screen>
|
</screen>
|
||||||
|
|
||||||
This will check out the latest NixOS sources to
|
This will check out the latest Nixpkgs sources to
|
||||||
<filename><replaceable>/my/sources</replaceable>/nixpkgs/nixos</filename>
|
<filename>./nixpkgs</filename> the NixOS sources to
|
||||||
and the Nixpkgs sources to
|
<filename>./nixpkgs/nixos</filename>. (The NixOS source tree lives in
|
||||||
<filename><replaceable>/my/sources</replaceable>/nixpkgs</filename>.
|
a subdirectory of the Nixpkgs repository.) The remote
|
||||||
(The NixOS source tree lives in a subdirectory of the Nixpkgs
|
<literal>channels</literal> refers to a read-only repository that
|
||||||
repository.) The remote <literal>channels</literal> refers to a
|
tracks the Nixpkgs/NixOS channels (see <xref linkend="sec-upgrading"/>
|
||||||
read-only repository that tracks the Nixpkgs/NixOS channels (see <xref
|
for more information about channels). Thus, the Git branch
|
||||||
linkend="sec-upgrading"/> for more information about channels). Thus,
|
<literal>channels/nixos-14.12</literal> will contain the latest built
|
||||||
the Git branch <literal>channels/nixos-14.12</literal> will contain
|
and tested version available in the <literal>nixos-14.12</literal>
|
||||||
the latest built and tested version available in the
|
channel.</para>
|
||||||
<literal>nixos-14.12</literal> channel.</para>
|
|
||||||
|
|
||||||
<para>It’s often inconvenient to develop directly on the master
|
<para>It’s often inconvenient to develop directly on the master
|
||||||
branch, since if somebody has just committed (say) a change to GCC,
|
branch, since if somebody has just committed (say) a change to GCC,
|
||||||
|
@ -81,14 +81,14 @@ pkgs.vmTools.runInLinuxVM (
|
|||||||
|
|
||||||
# Register the paths in the Nix database.
|
# Register the paths in the Nix database.
|
||||||
printRegistration=1 perl ${pkgs.pathsFromGraph} /tmp/xchg/closure | \
|
printRegistration=1 perl ${pkgs.pathsFromGraph} /tmp/xchg/closure | \
|
||||||
chroot /mnt ${config.nix.package}/bin/nix-store --load-db --option build-users-group ""
|
chroot /mnt ${config.nix.package.out}/bin/nix-store --load-db --option build-users-group ""
|
||||||
|
|
||||||
# Add missing size/hash fields to the database. FIXME:
|
# Add missing size/hash fields to the database. FIXME:
|
||||||
# exportReferencesGraph should provide these directly.
|
# exportReferencesGraph should provide these directly.
|
||||||
chroot /mnt ${config.nix.package}/bin/nix-store --verify --check-contents
|
chroot /mnt ${config.nix.package.out}/bin/nix-store --verify --check-contents
|
||||||
|
|
||||||
# Create the system profile to allow nixos-rebuild to work.
|
# Create the system profile to allow nixos-rebuild to work.
|
||||||
chroot /mnt ${config.nix.package}/bin/nix-env --option build-users-group "" \
|
chroot /mnt ${config.nix.package.out}/bin/nix-env --option build-users-group "" \
|
||||||
-p /nix/var/nix/profiles/system --set ${config.system.build.toplevel}
|
-p /nix/var/nix/profiles/system --set ${config.system.build.toplevel}
|
||||||
|
|
||||||
# `nixos-rebuild' requires an /etc/NIXOS.
|
# `nixos-rebuild' requires an /etc/NIXOS.
|
||||||
|
@ -31,13 +31,13 @@ in
|
|||||||
|
|
||||||
# unload module during suspend/hibernate as it crashes the whole system
|
# unload module during suspend/hibernate as it crashes the whole system
|
||||||
powerManagement.powerDownCommands = ''
|
powerManagement.powerDownCommands = ''
|
||||||
${pkgs.module_init_tools}/bin/rmmod -f facetimehd
|
${pkgs.kmod}/bin/lsmod | ${pkgs.gnugrep}/bin/grep -q "^facetimehd" && ${pkgs.kmod}/bin/rmmod -f -v facetimehd
|
||||||
'';
|
'';
|
||||||
|
|
||||||
# and load it back on resume
|
# and load it back on resume
|
||||||
powerManagement.resumeCommands = ''
|
powerManagement.resumeCommands = ''
|
||||||
export MODULE_DIR=/run/current-system/kernel-modules/lib/modules
|
export MODULE_DIR=/run/current-system/kernel-modules/lib/modules
|
||||||
${pkgs.module_init_tools}/bin/modprobe -v facetimehd
|
${pkgs.kmod}/bin/modprobe -v facetimehd
|
||||||
'';
|
'';
|
||||||
|
|
||||||
};
|
};
|
||||||
|
@ -34,7 +34,7 @@ in
|
|||||||
if ! [ -e /var/lib/nixos/did-channel-init ]; then
|
if ! [ -e /var/lib/nixos/did-channel-init ]; then
|
||||||
echo "unpacking the NixOS/Nixpkgs sources..."
|
echo "unpacking the NixOS/Nixpkgs sources..."
|
||||||
mkdir -p /nix/var/nix/profiles/per-user/root
|
mkdir -p /nix/var/nix/profiles/per-user/root
|
||||||
${config.nix.package}/bin/nix-env -p /nix/var/nix/profiles/per-user/root/channels \
|
${config.nix.package.out}/bin/nix-env -p /nix/var/nix/profiles/per-user/root/channels \
|
||||||
-i ${channelSources} --quiet --option build-use-substitutes false
|
-i ${channelSources} --quiet --option build-use-substitutes false
|
||||||
mkdir -m 0700 -p /root/.nix-defexpr
|
mkdir -m 0700 -p /root/.nix-defexpr
|
||||||
ln -s /nix/var/nix/profiles/per-user/root/channels /root/.nix-defexpr/channels
|
ln -s /nix/var/nix/profiles/per-user/root/channels /root/.nix-defexpr/channels
|
||||||
|
@ -364,12 +364,12 @@ in
|
|||||||
''
|
''
|
||||||
# After booting, register the contents of the Nix store on the
|
# After booting, register the contents of the Nix store on the
|
||||||
# CD in the Nix database in the tmpfs.
|
# CD in the Nix database in the tmpfs.
|
||||||
${config.nix.package}/bin/nix-store --load-db < /nix/store/nix-path-registration
|
${config.nix.package.out}/bin/nix-store --load-db < /nix/store/nix-path-registration
|
||||||
|
|
||||||
# nixos-rebuild also requires a "system" profile and an
|
# nixos-rebuild also requires a "system" profile and an
|
||||||
# /etc/NIXOS tag.
|
# /etc/NIXOS tag.
|
||||||
touch /etc/NIXOS
|
touch /etc/NIXOS
|
||||||
${config.nix.package}/bin/nix-env -p /nix/var/nix/profiles/system --set /run/current-system
|
${config.nix.package.out}/bin/nix-env -p /nix/var/nix/profiles/system --set /run/current-system
|
||||||
'';
|
'';
|
||||||
|
|
||||||
# Add vfat support to the initrd to enable people to copy the
|
# Add vfat support to the initrd to enable people to copy the
|
||||||
|
@ -113,11 +113,11 @@ in
|
|||||||
${pkgs.e2fsprogs}/bin/resize2fs $rootPart
|
${pkgs.e2fsprogs}/bin/resize2fs $rootPart
|
||||||
|
|
||||||
# Register the contents of the initial Nix store
|
# Register the contents of the initial Nix store
|
||||||
${config.nix.package}/bin/nix-store --load-db < /nix-path-registration
|
${config.nix.package.out}/bin/nix-store --load-db < /nix-path-registration
|
||||||
|
|
||||||
# nixos-rebuild also requires a "system" profile and an /etc/NIXOS tag.
|
# nixos-rebuild also requires a "system" profile and an /etc/NIXOS tag.
|
||||||
touch /etc/NIXOS
|
touch /etc/NIXOS
|
||||||
${config.nix.package}/bin/nix-env -p /nix/var/nix/profiles/system --set /run/current-system
|
${config.nix.package.out}/bin/nix-env -p /nix/var/nix/profiles/system --set /run/current-system
|
||||||
|
|
||||||
# Prevents this from running on later boots.
|
# Prevents this from running on later boots.
|
||||||
rm -f /nix-path-registration
|
rm -f /nix-path-registration
|
||||||
|
@ -52,8 +52,7 @@ in
|
|||||||
# Include some utilities that are useful for installing or repairing
|
# Include some utilities that are useful for installing or repairing
|
||||||
# the system.
|
# the system.
|
||||||
environment.systemPackages =
|
environment.systemPackages =
|
||||||
[ pkgs.subversion # for nixos-checkout
|
[ pkgs.w3m # needed for the manual anyway
|
||||||
pkgs.w3m # needed for the manual anyway
|
|
||||||
pkgs.testdisk # useful for repairing boot problems
|
pkgs.testdisk # useful for repairing boot problems
|
||||||
pkgs.mssys # for writing Microsoft boot sectors / MBRs
|
pkgs.mssys # for writing Microsoft boot sectors / MBRs
|
||||||
pkgs.parted
|
pkgs.parted
|
||||||
|
@ -49,8 +49,7 @@ in
|
|||||||
# Include some utilities that are useful for installing or repairing
|
# Include some utilities that are useful for installing or repairing
|
||||||
# the system.
|
# the system.
|
||||||
environment.systemPackages =
|
environment.systemPackages =
|
||||||
[ pkgs.subversion # for nixos-checkout
|
[ pkgs.w3m # needed for the manual anyway
|
||||||
pkgs.w3m # needed for the manual anyway
|
|
||||||
pkgs.ddrescue
|
pkgs.ddrescue
|
||||||
pkgs.ccrypt
|
pkgs.ccrypt
|
||||||
pkgs.cryptsetup # needed for dm-crypt volumes
|
pkgs.cryptsetup # needed for dm-crypt volumes
|
||||||
|
@ -78,14 +78,14 @@ in
|
|||||||
# After booting, register the contents of the Nix store on the
|
# After booting, register the contents of the Nix store on the
|
||||||
# CD in the Nix database in the tmpfs.
|
# CD in the Nix database in the tmpfs.
|
||||||
if [ -f /nix-path-registration ]; then
|
if [ -f /nix-path-registration ]; then
|
||||||
${config.nix.package}/bin/nix-store --load-db < /nix-path-registration &&
|
${config.nix.package.out}/bin/nix-store --load-db < /nix-path-registration &&
|
||||||
rm /nix-path-registration
|
rm /nix-path-registration
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# nixos-rebuild also requires a "system" profile and an
|
# nixos-rebuild also requires a "system" profile and an
|
||||||
# /etc/NIXOS tag.
|
# /etc/NIXOS tag.
|
||||||
touch /etc/NIXOS
|
touch /etc/NIXOS
|
||||||
${config.nix.package}/bin/nix-env -p /nix/var/nix/profiles/system --set /run/current-system
|
${config.nix.package.out}/bin/nix-env -p /nix/var/nix/profiles/system --set /run/current-system
|
||||||
'';
|
'';
|
||||||
|
|
||||||
};
|
};
|
||||||
|
@ -78,7 +78,7 @@ let cfg = config.system.autoUpgrade; in
|
|||||||
HOME = "/root";
|
HOME = "/root";
|
||||||
};
|
};
|
||||||
|
|
||||||
path = [ pkgs.gnutar pkgs.xz.bin config.nix.package ];
|
path = [ pkgs.gnutar pkgs.xz.bin config.nix.package.out ];
|
||||||
|
|
||||||
script = ''
|
script = ''
|
||||||
${config.system.build.nixos-rebuild}/bin/nixos-rebuild switch ${toString cfg.flags}
|
${config.system.build.nixos-rebuild}/bin/nixos-rebuild switch ${toString cfg.flags}
|
||||||
|
@ -1,60 +0,0 @@
|
|||||||
# This module generates the nixos-checkout script, which performs a
|
|
||||||
# checkout of the Nixpkgs Git repository.
|
|
||||||
|
|
||||||
{ config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
|
|
||||||
nixosCheckout = pkgs.substituteAll {
|
|
||||||
name = "nixos-checkout";
|
|
||||||
dir = "bin";
|
|
||||||
isExecutable = true;
|
|
||||||
src = pkgs.writeScript "nixos-checkout"
|
|
||||||
''
|
|
||||||
#! ${pkgs.stdenv.shell} -e
|
|
||||||
|
|
||||||
if [ "$1" == "-h" ] || [ "$1" == "--help" ]; then
|
|
||||||
echo "Usage: `basename $0` [PREFIX]. See NixOS Manual for more info."
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
prefix="$1"
|
|
||||||
if [ -z "$prefix" ]; then prefix=/etc/nixos; fi
|
|
||||||
mkdir -p "$prefix"
|
|
||||||
cd "$prefix"
|
|
||||||
|
|
||||||
if [ -z "$(type -P git)" ]; then
|
|
||||||
echo "installing Git..."
|
|
||||||
nix-env -iA nixos.git
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Move any old nixpkgs directories out of the way.
|
|
||||||
backupTimestamp=$(date "+%Y%m%d%H%M%S")
|
|
||||||
|
|
||||||
if [ -e nixpkgs -a ! -e nixpkgs/.git ]; then
|
|
||||||
mv nixpkgs nixpkgs-$backupTimestamp
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Check out the Nixpkgs sources.
|
|
||||||
if ! [ -e nixpkgs/.git ]; then
|
|
||||||
echo "Creating repository in $prefix/nixpkgs..."
|
|
||||||
git init --quiet nixpkgs
|
|
||||||
else
|
|
||||||
echo "Updating repository in $prefix/nixpkgs..."
|
|
||||||
fi
|
|
||||||
cd nixpkgs
|
|
||||||
git remote add origin git://github.com/NixOS/nixpkgs.git || true
|
|
||||||
git remote add channels git://github.com/NixOS/nixpkgs-channels.git || true
|
|
||||||
git remote set-url origin --push git@github.com:NixOS/nixpkgs.git
|
|
||||||
git remote update
|
|
||||||
git checkout master
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
in
|
|
||||||
|
|
||||||
{
|
|
||||||
environment.systemPackages = [ nixosCheckout ];
|
|
||||||
}
|
|
@ -271,7 +271,7 @@ remotePATH=
|
|||||||
if [ -n "$buildNix" ]; then
|
if [ -n "$buildNix" ]; then
|
||||||
echo "building Nix..." >&2
|
echo "building Nix..." >&2
|
||||||
nixDrv=
|
nixDrv=
|
||||||
if ! nixDrv="$(nix-instantiate '<nixpkgs/nixos>' --add-root $tmpDir/nix.drv --indirect -A config.nix.package "${extraBuildFlags[@]}")"; then
|
if ! nixDrv="$(nix-instantiate '<nixpkgs/nixos>' --add-root $tmpDir/nix.drv --indirect -A config.nix.package.out "${extraBuildFlags[@]}")"; then
|
||||||
if ! nixDrv="$(nix-instantiate '<nixpkgs/nixos>' --add-root $tmpDir/nix.drv --indirect -A nixFallback "${extraBuildFlags[@]}")"; then
|
if ! nixDrv="$(nix-instantiate '<nixpkgs/nixos>' --add-root $tmpDir/nix.drv --indirect -A nixFallback "${extraBuildFlags[@]}")"; then
|
||||||
if ! nixDrv="$(nix-instantiate '<nixpkgs>' --add-root $tmpDir/nix.drv --indirect -A nix "${extraBuildFlags[@]}")"; then
|
if ! nixDrv="$(nix-instantiate '<nixpkgs>' --add-root $tmpDir/nix.drv --indirect -A nix "${extraBuildFlags[@]}")"; then
|
||||||
nixStorePath="$(prebuiltNix "$(uname -m)")"
|
nixStorePath="$(prebuiltNix "$(uname -m)")"
|
||||||
|
@ -22,17 +22,17 @@ let
|
|||||||
src = ./nixos-install.sh;
|
src = ./nixos-install.sh;
|
||||||
|
|
||||||
inherit (pkgs) perl pathsFromGraph;
|
inherit (pkgs) perl pathsFromGraph;
|
||||||
nix = config.nix.package;
|
nix = config.nix.package.out;
|
||||||
|
|
||||||
nixClosure = pkgs.runCommand "closure"
|
nixClosure = pkgs.runCommand "closure"
|
||||||
{ exportReferencesGraph = ["refs" config.nix.package]; }
|
{ exportReferencesGraph = ["refs" config.nix.package.out]; }
|
||||||
"cp refs $out";
|
"cp refs $out";
|
||||||
};
|
};
|
||||||
|
|
||||||
nixos-rebuild = makeProg {
|
nixos-rebuild = makeProg {
|
||||||
name = "nixos-rebuild";
|
name = "nixos-rebuild";
|
||||||
src = ./nixos-rebuild.sh;
|
src = ./nixos-rebuild.sh;
|
||||||
nix = config.nix.package;
|
nix = config.nix.package.out;
|
||||||
};
|
};
|
||||||
|
|
||||||
nixos-generate-config = makeProg {
|
nixos-generate-config = makeProg {
|
||||||
|
@ -263,6 +263,7 @@
|
|||||||
caddy = 239;
|
caddy = 239;
|
||||||
taskd = 240;
|
taskd = 240;
|
||||||
factorio = 241;
|
factorio = 241;
|
||||||
|
emby = 242;
|
||||||
|
|
||||||
# When adding a uid, make sure it doesn't match an existing gid. And don't use uids above 399!
|
# When adding a uid, make sure it doesn't match an existing gid. And don't use uids above 399!
|
||||||
|
|
||||||
@ -497,6 +498,7 @@
|
|||||||
caddy = 239;
|
caddy = 239;
|
||||||
taskd = 240;
|
taskd = 240;
|
||||||
factorio = 241;
|
factorio = 241;
|
||||||
|
emby = 242;
|
||||||
|
|
||||||
# When adding a gid, make sure it doesn't match an existing
|
# When adding a gid, make sure it doesn't match an existing
|
||||||
# uid. Users and groups with the same name should have equal
|
# uid. Users and groups with the same name should have equal
|
||||||
|
@ -47,7 +47,6 @@
|
|||||||
./i18n/input-method/nabi.nix
|
./i18n/input-method/nabi.nix
|
||||||
./i18n/input-method/uim.nix
|
./i18n/input-method/uim.nix
|
||||||
./installer/tools/auto-upgrade.nix
|
./installer/tools/auto-upgrade.nix
|
||||||
./installer/tools/nixos-checkout.nix
|
|
||||||
./installer/tools/tools.nix
|
./installer/tools/tools.nix
|
||||||
./misc/assertions.nix
|
./misc/assertions.nix
|
||||||
./misc/crashdump.nix
|
./misc/crashdump.nix
|
||||||
@ -159,6 +158,7 @@
|
|||||||
./services/desktops/gnome3/tracker.nix
|
./services/desktops/gnome3/tracker.nix
|
||||||
./services/desktops/profile-sync-daemon.nix
|
./services/desktops/profile-sync-daemon.nix
|
||||||
./services/desktops/telepathy.nix
|
./services/desktops/telepathy.nix
|
||||||
|
./services/development/hoogle.nix
|
||||||
./services/games/factorio.nix
|
./services/games/factorio.nix
|
||||||
./services/games/ghost-one.nix
|
./services/games/ghost-one.nix
|
||||||
./services/games/minecraft-server.nix
|
./services/games/minecraft-server.nix
|
||||||
@ -216,6 +216,7 @@
|
|||||||
./services/misc/dictd.nix
|
./services/misc/dictd.nix
|
||||||
./services/misc/disnix.nix
|
./services/misc/disnix.nix
|
||||||
./services/misc/docker-registry.nix
|
./services/misc/docker-registry.nix
|
||||||
|
./services/misc/emby.nix
|
||||||
./services/misc/etcd.nix
|
./services/misc/etcd.nix
|
||||||
./services/misc/felix.nix
|
./services/misc/felix.nix
|
||||||
./services/misc/folding-at-home.nix
|
./services/misc/folding-at-home.nix
|
||||||
@ -400,6 +401,7 @@
|
|||||||
./services/networking/wicd.nix
|
./services/networking/wicd.nix
|
||||||
./services/networking/wpa_supplicant.nix
|
./services/networking/wpa_supplicant.nix
|
||||||
./services/networking/xinetd.nix
|
./services/networking/xinetd.nix
|
||||||
|
./services/networking/zerobin.nix
|
||||||
./services/networking/zerotierone.nix
|
./services/networking/zerotierone.nix
|
||||||
./services/networking/znc.nix
|
./services/networking/znc.nix
|
||||||
./services/printing/cupsd.nix
|
./services/printing/cupsd.nix
|
||||||
|
@ -37,12 +37,12 @@ in {
|
|||||||
# After booting, register the contents of the Nix store in the Nix
|
# After booting, register the contents of the Nix store in the Nix
|
||||||
# database.
|
# database.
|
||||||
if [ -f /nix-path-registration ]; then
|
if [ -f /nix-path-registration ]; then
|
||||||
${config.nix.package}/bin/nix-store --load-db < /nix-path-registration &&
|
${config.nix.package.out}/bin/nix-store --load-db < /nix-path-registration &&
|
||||||
rm /nix-path-registration
|
rm /nix-path-registration
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# nixos-rebuild also requires a "system" profile
|
# nixos-rebuild also requires a "system" profile
|
||||||
${config.nix.package}/bin/nix-env -p /nix/var/nix/profiles/system --set /run/current-system
|
${config.nix.package.out}/bin/nix-env -p /nix/var/nix/profiles/system --set /run/current-system
|
||||||
'';
|
'';
|
||||||
|
|
||||||
# Install new init script
|
# Install new init script
|
||||||
|
@ -68,6 +68,10 @@ with lib;
|
|||||||
# proxy
|
# proxy
|
||||||
(mkRenamedOptionModule [ "nix" "proxy" ] [ "networking" "proxy" "default" ])
|
(mkRenamedOptionModule [ "nix" "proxy" ] [ "networking" "proxy" "default" ])
|
||||||
|
|
||||||
|
# sandboxing
|
||||||
|
(mkRenamedOptionModule [ "nix" "useChroot" ] [ "nix" "useSandbox" ])
|
||||||
|
(mkRenamedOptionModule [ "nix" "chrootDirs" ] [ "nix" "sandboxPaths" ])
|
||||||
|
|
||||||
# KDE
|
# KDE
|
||||||
(mkRenamedOptionModule [ "kde" "extraPackages" ] [ "environment" "systemPackages" ])
|
(mkRenamedOptionModule [ "kde" "extraPackages" ] [ "environment" "systemPackages" ])
|
||||||
(mkRenamedOptionModule [ "environment" "kdePackages" ] [ "environment" "systemPackages" ])
|
(mkRenamedOptionModule [ "environment" "kdePackages" ] [ "environment" "systemPackages" ])
|
||||||
|
70
nixos/modules/services/development/hoogle.nix
Normal file
70
nixos/modules/services/development/hoogle.nix
Normal file
@ -0,0 +1,70 @@
|
|||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let
|
||||||
|
|
||||||
|
cfg = config.services.hoogle;
|
||||||
|
|
||||||
|
hoogleEnv = pkgs.buildEnv {
|
||||||
|
name = "hoogle";
|
||||||
|
paths = [ (cfg.haskellPackages.ghcWithHoogle cfg.packages) ];
|
||||||
|
};
|
||||||
|
|
||||||
|
in {
|
||||||
|
|
||||||
|
options.services.hoogle = {
|
||||||
|
enable = mkEnableOption "Haskell documentation server";
|
||||||
|
|
||||||
|
port = mkOption {
|
||||||
|
type = types.int;
|
||||||
|
default = 8080;
|
||||||
|
description = ''
|
||||||
|
Port number Hoogle will be listening to.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
packages = mkOption {
|
||||||
|
default = hp: [];
|
||||||
|
defaultText = "hp: []";
|
||||||
|
example = "hp: with hp; [ text lens ]";
|
||||||
|
description = ''
|
||||||
|
The Haskell packages to generate documentation for.
|
||||||
|
|
||||||
|
The option value is a function that takes the package set specified in
|
||||||
|
the <varname>haskellPackages</varname> option as its sole parameter and
|
||||||
|
returns a list of packages.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
haskellPackages = mkOption {
|
||||||
|
description = "Which haskell package set to use.";
|
||||||
|
default = pkgs.haskellPackages;
|
||||||
|
defaultText = "pkgs.haskellPackages";
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
systemd.services.hoogle = {
|
||||||
|
description = "Haskell documentation server";
|
||||||
|
|
||||||
|
wantedBy = [ "multi-user.target" ];
|
||||||
|
|
||||||
|
serviceConfig = {
|
||||||
|
Restart = "always";
|
||||||
|
ExecStart = ''${hoogleEnv}/bin/hoogle server --local -p ${toString cfg.port}'';
|
||||||
|
|
||||||
|
User = "nobody";
|
||||||
|
Group = "nogroup";
|
||||||
|
|
||||||
|
PrivateTmp = true;
|
||||||
|
ProtectHome = true;
|
||||||
|
|
||||||
|
RuntimeDirectory = "hoogle";
|
||||||
|
WorkingDirectory = "%t/hoogle";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
64
nixos/modules/services/misc/emby.nix
Normal file
64
nixos/modules/services/misc/emby.nix
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
{ config, pkgs, lib, mono, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.services.emby;
|
||||||
|
emby = pkgs.emby;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options = {
|
||||||
|
services.emby = {
|
||||||
|
enable = mkEnableOption "Emby Media Server";
|
||||||
|
|
||||||
|
user = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
default = "emby";
|
||||||
|
description = "User account under which Emby runs.";
|
||||||
|
};
|
||||||
|
|
||||||
|
group = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
default = "emby";
|
||||||
|
description = "Group under which emby runs.";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
systemd.services.emby = {
|
||||||
|
description = "Emby Media Server";
|
||||||
|
after = [ "network.target" ];
|
||||||
|
wantedBy = [ "multi-user.target" ];
|
||||||
|
preStart = ''
|
||||||
|
test -d /var/lib/emby/ProgramData-Server || {
|
||||||
|
echo "Creating initial Emby data directory in /var/lib/emby/ProgramData-Server"
|
||||||
|
mkdir -p /var/lib/emby/ProgramData-Server
|
||||||
|
chown -R ${cfg.user}:${cfg.group} /var/lib/emby/ProgramData-Server
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
|
||||||
|
serviceConfig = {
|
||||||
|
Type = "simple";
|
||||||
|
User = cfg.user;
|
||||||
|
Group = cfg.group;
|
||||||
|
PermissionsStartOnly = "true";
|
||||||
|
ExecStart = "${pkgs.mono}/bin/mono ${pkgs.emby}/bin/MediaBrowser.Server.Mono.exe";
|
||||||
|
Restart = "on-failure";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
users.extraUsers = mkIf (cfg.user == "emby") {
|
||||||
|
emby = {
|
||||||
|
group = cfg.group;
|
||||||
|
uid = config.ids.uids.emby;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
users.extraGroups = mkIf (cfg.group == "emby") {
|
||||||
|
emby = {
|
||||||
|
gid = config.ids.gids.emby;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
@ -6,7 +6,7 @@ let
|
|||||||
|
|
||||||
cfg = config.nix;
|
cfg = config.nix;
|
||||||
|
|
||||||
nix = cfg.package;
|
nix = cfg.package.out;
|
||||||
|
|
||||||
makeNixBuildUser = nr:
|
makeNixBuildUser = nr:
|
||||||
{ name = "nixbld${toString nr}";
|
{ name = "nixbld${toString nr}";
|
||||||
@ -24,8 +24,8 @@ let
|
|||||||
|
|
||||||
nixConf =
|
nixConf =
|
||||||
let
|
let
|
||||||
# If we're using a chroot for builds, then provide /bin/sh in
|
# If we're using sandbox for builds, then provide /bin/sh in
|
||||||
# the chroot as a bind-mount to bash. This means we also need to
|
# the sandbox as a bind-mount to bash. This means we also need to
|
||||||
# include the entire closure of bash.
|
# include the entire closure of bash.
|
||||||
sh = pkgs.stdenv.shell;
|
sh = pkgs.stdenv.shell;
|
||||||
binshDeps = pkgs.writeReferencesToFile sh;
|
binshDeps = pkgs.writeReferencesToFile sh;
|
||||||
@ -39,8 +39,8 @@ let
|
|||||||
build-users-group = nixbld
|
build-users-group = nixbld
|
||||||
build-max-jobs = ${toString (cfg.maxJobs)}
|
build-max-jobs = ${toString (cfg.maxJobs)}
|
||||||
build-cores = ${toString (cfg.buildCores)}
|
build-cores = ${toString (cfg.buildCores)}
|
||||||
build-use-chroot = ${if (builtins.isBool cfg.useChroot) then (if cfg.useChroot then "true" else "false") else cfg.useChroot}
|
build-use-sandbox = ${if (builtins.isBool cfg.useSandbox) then (if cfg.useSandbox then "true" else "false") else cfg.useSandbox}
|
||||||
build-chroot-dirs = ${toString cfg.chrootDirs} /bin/sh=${sh} $(echo $extraPaths)
|
build-sandbox-paths = ${toString cfg.sandboxPaths} /bin/sh=${sh} $(echo $extraPaths)
|
||||||
binary-caches = ${toString cfg.binaryCaches}
|
binary-caches = ${toString cfg.binaryCaches}
|
||||||
trusted-binary-caches = ${toString cfg.trustedBinaryCaches}
|
trusted-binary-caches = ${toString cfg.trustedBinaryCaches}
|
||||||
binary-cache-public-keys = ${toString cfg.binaryCachePublicKeys}
|
binary-cache-public-keys = ${toString cfg.binaryCachePublicKeys}
|
||||||
@ -65,8 +65,8 @@ in
|
|||||||
|
|
||||||
package = mkOption {
|
package = mkOption {
|
||||||
type = types.package;
|
type = types.package;
|
||||||
default = pkgs.nix.out;
|
default = pkgs.nix;
|
||||||
defaultText = "pkgs.nix.out";
|
defaultText = "pkgs.nix";
|
||||||
description = ''
|
description = ''
|
||||||
This option specifies the Nix package instance to use throughout the system.
|
This option specifies the Nix package instance to use throughout the system.
|
||||||
'';
|
'';
|
||||||
@ -98,25 +98,25 @@ in
|
|||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
useChroot = mkOption {
|
useSandbox = mkOption {
|
||||||
type = types.either types.bool (types.enum ["relaxed"]);
|
type = types.either types.bool (types.enum ["relaxed"]);
|
||||||
default = false;
|
default = false;
|
||||||
description = "
|
description = "
|
||||||
If set, Nix will perform builds in a chroot-environment that it
|
If set, Nix will perform builds in a sandboxed environment that it
|
||||||
will set up automatically for each build. This prevents
|
will set up automatically for each build. This prevents
|
||||||
impurities in builds by disallowing access to dependencies
|
impurities in builds by disallowing access to dependencies
|
||||||
outside of the Nix store.
|
outside of the Nix store.
|
||||||
";
|
";
|
||||||
};
|
};
|
||||||
|
|
||||||
chrootDirs = mkOption {
|
sandboxPaths = mkOption {
|
||||||
type = types.listOf types.str;
|
type = types.listOf types.str;
|
||||||
default = [];
|
default = [];
|
||||||
example = [ "/dev" "/proc" ];
|
example = [ "/dev" "/proc" ];
|
||||||
description =
|
description =
|
||||||
''
|
''
|
||||||
Directories from the host filesystem to be included
|
Directories from the host filesystem to be included
|
||||||
in the chroot.
|
in the sandbox.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -52,7 +52,7 @@ in
|
|||||||
|
|
||||||
systemd.services.nix-gc =
|
systemd.services.nix-gc =
|
||||||
{ description = "Nix Garbage Collector";
|
{ description = "Nix Garbage Collector";
|
||||||
script = "exec ${config.nix.package}/bin/nix-collect-garbage ${cfg.options}";
|
script = "exec ${config.nix.package.out}/bin/nix-collect-garbage ${cfg.options}";
|
||||||
startAt = optionalString cfg.automatic cfg.dates;
|
startAt = optionalString cfg.automatic cfg.dates;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -41,7 +41,7 @@ with lib;
|
|||||||
PermitTTY no
|
PermitTTY no
|
||||||
PermitTunnel no
|
PermitTunnel no
|
||||||
X11Forwarding no
|
X11Forwarding no
|
||||||
ForceCommand ${config.nix.package}/bin/nix-store --serve
|
ForceCommand ${config.nix.package.out}/bin/nix-store --serve
|
||||||
Match All
|
Match All
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
@ -80,7 +80,7 @@ in
|
|||||||
preStart = ''
|
preStart = ''
|
||||||
mkdir -p -m 0755 /afs
|
mkdir -p -m 0755 /afs
|
||||||
mkdir -m 0700 -p ${cfg.cacheDirectory}
|
mkdir -m 0700 -p ${cfg.cacheDirectory}
|
||||||
${pkgs.module_init_tools}/sbin/insmod ${openafsPkgs}/lib/openafs/libafs-*.ko || true
|
${pkgs.kmod}/sbin/insmod ${openafsPkgs}/lib/openafs/libafs-*.ko || true
|
||||||
${openafsPkgs}/sbin/afsd -confdir ${afsConfig} -cachedir ${cfg.cacheDirectory} ${if cfg.sparse then "-dynroot-sparse" else "-dynroot"} -fakestat -afsdb
|
${openafsPkgs}/sbin/afsd -confdir ${afsConfig} -cachedir ${cfg.cacheDirectory} ${if cfg.sparse then "-dynroot-sparse" else "-dynroot"} -fakestat -afsdb
|
||||||
${openafsPkgs}/bin/fs setcrypt ${if cfg.crypt then "on" else "off"}
|
${openafsPkgs}/bin/fs setcrypt ${if cfg.crypt then "on" else "off"}
|
||||||
'';
|
'';
|
||||||
@ -92,7 +92,7 @@ in
|
|||||||
preStop = ''
|
preStop = ''
|
||||||
${pkgs.utillinux}/bin/umount /afs
|
${pkgs.utillinux}/bin/umount /afs
|
||||||
${openafsPkgs}/sbin/afsd -shutdown
|
${openafsPkgs}/sbin/afsd -shutdown
|
||||||
${pkgs.module_init_tools}/sbin/rmmod libafs
|
${pkgs.kmod}/sbin/rmmod libafs
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -10,6 +10,7 @@ let
|
|||||||
{ what = "${pkgs.mfi}/dl"; where = "${stateDir}/dl"; }
|
{ what = "${pkgs.mfi}/dl"; where = "${stateDir}/dl"; }
|
||||||
{ what = "${pkgs.mfi}/lib"; where = "${stateDir}/lib"; }
|
{ what = "${pkgs.mfi}/lib"; where = "${stateDir}/lib"; }
|
||||||
{ what = "${pkgs.mongodb248}/bin"; where = "${stateDir}/bin"; }
|
{ what = "${pkgs.mongodb248}/bin"; where = "${stateDir}/bin"; }
|
||||||
|
{ what = "${cfg.dataDir}"; where = "${stateDir}/data"; }
|
||||||
];
|
];
|
||||||
systemdMountPoints = map (m: "${utils.escapeSystemdPath m.where}.mount") mountPoints;
|
systemdMountPoints = map (m: "${utils.escapeSystemdPath m.where}.mount") mountPoints;
|
||||||
ports = [ 6080 6880 6443 6843 ];
|
ports = [ 6080 6880 6443 6843 ];
|
||||||
@ -23,6 +24,15 @@ in
|
|||||||
default = true;
|
default = true;
|
||||||
description = "Whether to open TCP ports ${concatMapStrings (a: "${toString a} ") ports}for the services.";
|
description = "Whether to open TCP ports ${concatMapStrings (a: "${toString a} ") ports}for the services.";
|
||||||
};
|
};
|
||||||
|
dataDir = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
default = "${stateDir}/data";
|
||||||
|
description = ''
|
||||||
|
Where to store the database and other data.
|
||||||
|
|
||||||
|
This directory will be bind-mounted to ${stateDir}/data as part of the service startup.
|
||||||
|
'';
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -50,7 +50,7 @@ in
|
|||||||
after = [ "network.target" ];
|
after = [ "network.target" ];
|
||||||
wantedBy = [ "multi-user.target" ];
|
wantedBy = [ "multi-user.target" ];
|
||||||
|
|
||||||
path = [ config.nix.package pkgs.bzip2.bin ];
|
path = [ config.nix.package.out pkgs.bzip2.bin ];
|
||||||
environment.NIX_REMOTE = "daemon";
|
environment.NIX_REMOTE = "daemon";
|
||||||
environment.NIX_SECRET_KEY_FILE = cfg.secretKeyFile;
|
environment.NIX_SECRET_KEY_FILE = cfg.secretKeyFile;
|
||||||
|
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
with lib;
|
with lib;
|
||||||
|
|
||||||
let
|
let
|
||||||
quassel = pkgs.quasselDaemon_qt5;
|
quassel = pkgs.kde4.quasselDaemon;
|
||||||
cfg = config.services.quassel;
|
cfg = config.services.quassel;
|
||||||
user = if cfg.user != null then cfg.user else "quassel";
|
user = if cfg.user != null then cfg.user else "quassel";
|
||||||
in
|
in
|
||||||
|
@ -17,6 +17,10 @@ let
|
|||||||
what = "${pkgs.mongodb}/bin";
|
what = "${pkgs.mongodb}/bin";
|
||||||
where = "${stateDir}/bin";
|
where = "${stateDir}/bin";
|
||||||
}
|
}
|
||||||
|
{
|
||||||
|
what = "${cfg.dataDir}";
|
||||||
|
where = "${stateDir}/data";
|
||||||
|
}
|
||||||
];
|
];
|
||||||
systemdMountPoints = map (m: "${utils.escapeSystemdPath m.where}.mount") mountPoints;
|
systemdMountPoints = map (m: "${utils.escapeSystemdPath m.where}.mount") mountPoints;
|
||||||
in
|
in
|
||||||
@ -32,6 +36,16 @@ in
|
|||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
services.unifi.dataDir = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
default = "${stateDir}/data";
|
||||||
|
description = ''
|
||||||
|
Where to store the database and other data.
|
||||||
|
|
||||||
|
This directory will be bind-mounted to ${stateDir}/data as part of the service startup.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
@ -62,7 +76,7 @@ in
|
|||||||
bindsTo = systemdMountPoints;
|
bindsTo = systemdMountPoints;
|
||||||
unitConfig.RequiresMountsFor = stateDir;
|
unitConfig.RequiresMountsFor = stateDir;
|
||||||
# This a HACK to fix missing dependencies of dynamic libs extracted from jars
|
# This a HACK to fix missing dependencies of dynamic libs extracted from jars
|
||||||
environment.LD_LIBRARY_PATH = with pkgs.stdenv; "${cc.cc}/lib";
|
environment.LD_LIBRARY_PATH = with pkgs.stdenv; "${cc.cc.lib}/lib";
|
||||||
|
|
||||||
preStart = ''
|
preStart = ''
|
||||||
# Ensure privacy of state
|
# Ensure privacy of state
|
||||||
|
102
nixos/modules/services/networking/zerobin.nix
Normal file
102
nixos/modules/services/networking/zerobin.nix
Normal file
@ -0,0 +1,102 @@
|
|||||||
|
{ config, pkgs, lib, nodes, ... }:
|
||||||
|
with lib;
|
||||||
|
let
|
||||||
|
cfg = config.services.zerobin;
|
||||||
|
|
||||||
|
zerobin_config = pkgs.writeText "zerobin-config.py" ''
|
||||||
|
PASTE_FILES_ROOT = "${cfg.dataDir}"
|
||||||
|
${cfg.extraConfig}
|
||||||
|
'';
|
||||||
|
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options = {
|
||||||
|
services.zerobin = {
|
||||||
|
enable = mkEnableOption "0bin";
|
||||||
|
|
||||||
|
dataDir = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
default = "/var/lib/zerobin";
|
||||||
|
description = ''
|
||||||
|
Path to the 0bin data directory
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
user = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
default = "zerobin";
|
||||||
|
description = ''
|
||||||
|
The user 0bin should run as
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
group = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
default = "zerobin";
|
||||||
|
description = ''
|
||||||
|
The group 0bin should run as
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
listenPort = mkOption {
|
||||||
|
type = types.int;
|
||||||
|
default = 8000;
|
||||||
|
example = 1357;
|
||||||
|
description = ''
|
||||||
|
The port zerobin should listen on
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
listenAddress = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
default = "localhost";
|
||||||
|
example = "127.0.0.1";
|
||||||
|
description = ''
|
||||||
|
The address zerobin should listen to
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
extraConfig = mkOption {
|
||||||
|
type = types.lines;
|
||||||
|
default = "";
|
||||||
|
example = ''
|
||||||
|
MENU = (
|
||||||
|
('Home', '/'),
|
||||||
|
)
|
||||||
|
COMPRESSED_STATIC_FILE = True
|
||||||
|
'';
|
||||||
|
description = ''
|
||||||
|
Extra configuration to be appended to the 0bin config file
|
||||||
|
(see https://0bin.readthedocs.org/en/latest/en/options.html)
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf (cfg.enable) {
|
||||||
|
users.users."${cfg.user}" =
|
||||||
|
if cfg.user == "zerobin" then {
|
||||||
|
isSystemUser = true;
|
||||||
|
group = cfg.group;
|
||||||
|
home = cfg.dataDir;
|
||||||
|
createHome = true;
|
||||||
|
}
|
||||||
|
else {};
|
||||||
|
users.groups."${cfg.group}" = {};
|
||||||
|
|
||||||
|
systemd.services.zerobin = {
|
||||||
|
enable = true;
|
||||||
|
after = [ "network-interfaces.target" ];
|
||||||
|
wantedBy = [ "multi-user.target" ];
|
||||||
|
serviceConfig.ExecStart = "${pkgs.pythonPackages.zerobin}/bin/zerobin ${cfg.listenAddress} ${toString cfg.listenPort} false ${cfg.user} ${cfg.group} ${zerobin_config}";
|
||||||
|
serviceConfig.PrivateTmp="yes";
|
||||||
|
serviceConfig.User = cfg.user;
|
||||||
|
serviceConfig.Group = cfg.group;
|
||||||
|
preStart = ''
|
||||||
|
mkdir -p ${cfg.dataDir}
|
||||||
|
chown ${cfg.user} ${cfg.dataDir}
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -4,7 +4,7 @@ let
|
|||||||
|
|
||||||
inherit (lib) mkOption mkIf singleton;
|
inherit (lib) mkOption mkIf singleton;
|
||||||
|
|
||||||
inherit (pkgs) heimdal;
|
inherit (pkgs) heimdalFull;
|
||||||
|
|
||||||
stateDir = "/var/heimdal";
|
stateDir = "/var/heimdal";
|
||||||
in
|
in
|
||||||
@ -33,7 +33,7 @@ in
|
|||||||
|
|
||||||
config = mkIf config.services.kerberos_server.enable {
|
config = mkIf config.services.kerberos_server.enable {
|
||||||
|
|
||||||
environment.systemPackages = [ heimdal ];
|
environment.systemPackages = [ heimdalFull ];
|
||||||
|
|
||||||
services.xinetd.enable = true;
|
services.xinetd.enable = true;
|
||||||
services.xinetd.services = lib.singleton
|
services.xinetd.services = lib.singleton
|
||||||
@ -42,7 +42,7 @@ in
|
|||||||
protocol = "tcp";
|
protocol = "tcp";
|
||||||
user = "root";
|
user = "root";
|
||||||
server = "${pkgs.tcp_wrappers}/sbin/tcpd";
|
server = "${pkgs.tcp_wrappers}/sbin/tcpd";
|
||||||
serverArgs = "${pkgs.heimdal}/sbin/kadmind";
|
serverArgs = "${pkgs.heimdalFull}/sbin/kadmind";
|
||||||
};
|
};
|
||||||
|
|
||||||
systemd.services.kdc = {
|
systemd.services.kdc = {
|
||||||
@ -51,13 +51,13 @@ in
|
|||||||
preStart = ''
|
preStart = ''
|
||||||
mkdir -m 0755 -p ${stateDir}
|
mkdir -m 0755 -p ${stateDir}
|
||||||
'';
|
'';
|
||||||
script = "${heimdal}/sbin/kdc";
|
script = "${heimdalFull}/sbin/kdc";
|
||||||
};
|
};
|
||||||
|
|
||||||
systemd.services.kpasswdd = {
|
systemd.services.kpasswdd = {
|
||||||
description = "Kerberos Password Changing daemon";
|
description = "Kerberos Password Changing daemon";
|
||||||
wantedBy = [ "multi-user.target" ];
|
wantedBy = [ "multi-user.target" ];
|
||||||
script = "${heimdal}/sbin/kpasswdd";
|
script = "${heimdalFull}/sbin/kpasswdd";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -94,11 +94,9 @@ in {
|
|||||||
};
|
};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
systemd.services.redshift = {
|
systemd.user.services.redshift = {
|
||||||
description = "Redshift colour temperature adjuster";
|
description = "Redshift colour temperature adjuster";
|
||||||
requires = [ "display-manager.service" ];
|
wantedBy = [ "default.target" ];
|
||||||
after = [ "display-manager.service" ];
|
|
||||||
wantedBy = [ "graphical.target" ];
|
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
ExecStart = ''
|
ExecStart = ''
|
||||||
${cfg.package}/bin/redshift \
|
${cfg.package}/bin/redshift \
|
||||||
@ -108,9 +106,9 @@ in {
|
|||||||
${lib.strings.concatStringsSep " " cfg.extraOptions}
|
${lib.strings.concatStringsSep " " cfg.extraOptions}
|
||||||
'';
|
'';
|
||||||
RestartSec = 3;
|
RestartSec = 3;
|
||||||
|
Restart = "always";
|
||||||
};
|
};
|
||||||
environment = { DISPLAY = ":0"; };
|
environment = { DISPLAY = ":0"; };
|
||||||
serviceConfig.Restart = "always";
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -499,7 +499,7 @@ in
|
|||||||
}
|
}
|
||||||
] ++ flip map args.devices (device: {
|
] ++ flip map args.devices (device: {
|
||||||
assertion = device == "nodev" || hasPrefix "/" device;
|
assertion = device == "nodev" || hasPrefix "/" device;
|
||||||
message = "GRUB devices must be absolute paths, not ${dev} in ${args.path}";
|
message = "GRUB devices must be absolute paths, not ${device} in ${args.path}";
|
||||||
}));
|
}));
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -14,7 +14,7 @@ let
|
|||||||
|
|
||||||
inherit (pkgs) python gummiboot;
|
inherit (pkgs) python gummiboot;
|
||||||
|
|
||||||
nix = config.nix.package;
|
nix = config.nix.package.out;
|
||||||
|
|
||||||
timeout = if cfg.timeout != null then cfg.timeout else "";
|
timeout = if cfg.timeout != null then cfg.timeout else "";
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@ let
|
|||||||
|
|
||||||
echo "attempting to fetch configuration from EC2 user data..."
|
echo "attempting to fetch configuration from EC2 user data..."
|
||||||
|
|
||||||
export PATH=${config.nix.package}/bin:${pkgs.systemd}/bin:${pkgs.gnugrep}/bin:${pkgs.gnused}/bin:${config.system.build.nixos-rebuild}/bin:$PATH
|
export PATH=${pkgs.lib.makeBinPath [ config.nix.package pkgs.systemd pkgs.gnugrep pkgs.gnused config.system.build.nixos-rebuild]}:$PATH
|
||||||
export NIX_PATH=/nix/var/nix/profiles/per-user/root/channels/nixos:nixos-config=/etc/nixos/configuration.nix:/nix/var/nix/profiles/per-user/root/channels
|
export NIX_PATH=/nix/var/nix/profiles/per-user/root/channels/nixos:nixos-config=/etc/nixos/configuration.nix:/nix/var/nix/profiles/per-user/root/channels
|
||||||
|
|
||||||
userData=/etc/ec2-metadata/user-data
|
userData=/etc/ec2-metadata/user-data
|
||||||
|
@ -62,10 +62,10 @@ in
|
|||||||
|
|
||||||
echo Register the paths in the Nix database.
|
echo Register the paths in the Nix database.
|
||||||
printRegistration=1 perl ${pkgs.pathsFromGraph} /tmp/xchg/closure | \
|
printRegistration=1 perl ${pkgs.pathsFromGraph} /tmp/xchg/closure | \
|
||||||
chroot /mnt ${config.nix.package}/bin/nix-store --load-db --option build-users-group ""
|
chroot /mnt ${config.nix.package.out}/bin/nix-store --load-db --option build-users-group ""
|
||||||
|
|
||||||
echo Create the system profile to allow nixos-rebuild to work.
|
echo Create the system profile to allow nixos-rebuild to work.
|
||||||
chroot /mnt ${config.nix.package}/bin/nix-env \
|
chroot /mnt ${config.nix.package.out}/bin/nix-env \
|
||||||
-p /nix/var/nix/profiles/system --set ${config.system.build.toplevel} --option build-users-group ""
|
-p /nix/var/nix/profiles/system --set ${config.system.build.toplevel} --option build-users-group ""
|
||||||
|
|
||||||
echo nixos-rebuild requires an /etc/NIXOS.
|
echo nixos-rebuild requires an /etc/NIXOS.
|
||||||
|
@ -62,10 +62,10 @@ in
|
|||||||
|
|
||||||
# Register the paths in the Nix database.
|
# Register the paths in the Nix database.
|
||||||
printRegistration=1 perl ${pkgs.pathsFromGraph} /tmp/xchg/closure | \
|
printRegistration=1 perl ${pkgs.pathsFromGraph} /tmp/xchg/closure | \
|
||||||
chroot /mnt ${config.nix.package}/bin/nix-store --load-db --option build-users-group ""
|
chroot /mnt ${config.nix.package.out}/bin/nix-store --load-db --option build-users-group ""
|
||||||
|
|
||||||
# Create the system profile to allow nixos-rebuild to work.
|
# Create the system profile to allow nixos-rebuild to work.
|
||||||
chroot /mnt ${config.nix.package}/bin/nix-env \
|
chroot /mnt ${config.nix.package.out}/bin/nix-env \
|
||||||
-p /nix/var/nix/profiles/system --set ${config.system.build.toplevel} \
|
-p /nix/var/nix/profiles/system --set ${config.system.build.toplevel} \
|
||||||
--option build-users-group ""
|
--option build-users-group ""
|
||||||
|
|
||||||
|
@ -28,14 +28,23 @@ let
|
|||||||
|
|
||||||
# Initialise the container side of the veth pair.
|
# Initialise the container side of the veth pair.
|
||||||
if [ "$PRIVATE_NETWORK" = 1 ]; then
|
if [ "$PRIVATE_NETWORK" = 1 ]; then
|
||||||
|
|
||||||
ip link set host0 name eth0
|
ip link set host0 name eth0
|
||||||
ip link set dev eth0 up
|
ip link set dev eth0 up
|
||||||
|
|
||||||
|
if [ -n "$LOCAL_ADDRESS" ]; then
|
||||||
|
ip addr add $LOCAL_ADDRESS dev eth0
|
||||||
|
fi
|
||||||
|
if [ -n "$LOCAL_ADDRESS6" ]; then
|
||||||
|
ip -6 addr add $LOCAL_ADDRESS6 dev eth0
|
||||||
|
fi
|
||||||
if [ -n "$HOST_ADDRESS" ]; then
|
if [ -n "$HOST_ADDRESS" ]; then
|
||||||
ip route add $HOST_ADDRESS dev eth0
|
ip route add $HOST_ADDRESS dev eth0
|
||||||
ip route add default via $HOST_ADDRESS
|
ip route add default via $HOST_ADDRESS
|
||||||
fi
|
fi
|
||||||
if [ -n "$LOCAL_ADDRESS" ]; then
|
if [ -n "$HOST_ADDRESS6" ]; then
|
||||||
ip addr add $LOCAL_ADDRESS dev eth0
|
ip -6 route add $HOST_ADDRESS6 dev eth0
|
||||||
|
ip -6 route add default via $HOST_ADDRESS6
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -142,12 +151,33 @@ in
|
|||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
hostBridge = mkOption {
|
||||||
|
type = types.nullOr types.string;
|
||||||
|
default = null;
|
||||||
|
example = "br0";
|
||||||
|
description = ''
|
||||||
|
Put the host-side of the veth-pair into the named bridge.
|
||||||
|
Only one of hostAddress* or hostBridge can be given.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
hostAddress = mkOption {
|
hostAddress = mkOption {
|
||||||
type = types.nullOr types.str;
|
type = types.nullOr types.str;
|
||||||
default = null;
|
default = null;
|
||||||
example = "10.231.136.1";
|
example = "10.231.136.1";
|
||||||
description = ''
|
description = ''
|
||||||
The IPv4 address assigned to the host interface.
|
The IPv4 address assigned to the host interface.
|
||||||
|
(Not used when hostBridge is set.)
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
hostAddress6 = mkOption {
|
||||||
|
type = types.nullOr types.string;
|
||||||
|
default = null;
|
||||||
|
example = "fc00::1";
|
||||||
|
description = ''
|
||||||
|
The IPv6 address assigned to the host interface.
|
||||||
|
(Not used when hostBridge is set.)
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -161,6 +191,16 @@ in
|
|||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
localAddress6 = mkOption {
|
||||||
|
type = types.nullOr types.string;
|
||||||
|
default = null;
|
||||||
|
example = "fc00::2";
|
||||||
|
description = ''
|
||||||
|
The IPv6 address assigned to <literal>eth0</literal>
|
||||||
|
in the container.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
interfaces = mkOption {
|
interfaces = mkOption {
|
||||||
type = types.listOf types.string;
|
type = types.listOf types.string;
|
||||||
default = [];
|
default = [];
|
||||||
@ -238,10 +278,10 @@ in
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
config = mkIf (config.boot.enableContainers) {
|
config = mkIf (config.boot.enableContainers) (let
|
||||||
|
|
||||||
systemd.services."container@" =
|
unit = {
|
||||||
{ description = "Container '%i'";
|
description = "Container '%i'";
|
||||||
|
|
||||||
unitConfig.RequiresMountsFor = [ "/var/lib/containers/%i" ];
|
unitConfig.RequiresMountsFor = [ "/var/lib/containers/%i" ];
|
||||||
|
|
||||||
@ -257,11 +297,7 @@ in
|
|||||||
|
|
||||||
if [ "$PRIVATE_NETWORK" = 1 ]; then
|
if [ "$PRIVATE_NETWORK" = 1 ]; then
|
||||||
ip link del dev "ve-$INSTANCE" 2> /dev/null || true
|
ip link del dev "ve-$INSTANCE" 2> /dev/null || true
|
||||||
fi
|
ip link del dev "vb-$INSTANCE" 2> /dev/null || true
|
||||||
|
|
||||||
|
|
||||||
if [ "$PRIVATE_NETWORK" = 1 ]; then
|
|
||||||
ip link del dev "ve-$INSTANCE" 2> /dev/null || true
|
|
||||||
fi
|
fi
|
||||||
'';
|
'';
|
||||||
|
|
||||||
@ -281,6 +317,9 @@ in
|
|||||||
|
|
||||||
if [ "$PRIVATE_NETWORK" = 1 ]; then
|
if [ "$PRIVATE_NETWORK" = 1 ]; then
|
||||||
extraFlags+=" --network-veth"
|
extraFlags+=" --network-veth"
|
||||||
|
if [ -n "$HOST_BRIDGE" ]; then
|
||||||
|
extraFlags+=" --network-bridge=$HOST_BRIDGE"
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
for iface in $INTERFACES; do
|
for iface in $INTERFACES; do
|
||||||
@ -315,8 +354,11 @@ in
|
|||||||
--bind="/nix/var/nix/profiles/per-container/$INSTANCE:/nix/var/nix/profiles" \
|
--bind="/nix/var/nix/profiles/per-container/$INSTANCE:/nix/var/nix/profiles" \
|
||||||
--bind="/nix/var/nix/gcroots/per-container/$INSTANCE:/nix/var/nix/gcroots" \
|
--bind="/nix/var/nix/gcroots/per-container/$INSTANCE:/nix/var/nix/gcroots" \
|
||||||
--setenv PRIVATE_NETWORK="$PRIVATE_NETWORK" \
|
--setenv PRIVATE_NETWORK="$PRIVATE_NETWORK" \
|
||||||
|
--setenv HOST_BRIDGE="$HOST_BRIDGE" \
|
||||||
--setenv HOST_ADDRESS="$HOST_ADDRESS" \
|
--setenv HOST_ADDRESS="$HOST_ADDRESS" \
|
||||||
--setenv LOCAL_ADDRESS="$LOCAL_ADDRESS" \
|
--setenv LOCAL_ADDRESS="$LOCAL_ADDRESS" \
|
||||||
|
--setenv HOST_ADDRESS6="$HOST_ADDRESS6" \
|
||||||
|
--setenv LOCAL_ADDRESS6="$LOCAL_ADDRESS6" \
|
||||||
--setenv PATH="$PATH" \
|
--setenv PATH="$PATH" \
|
||||||
${containerInit} "''${SYSTEM_PATH:-/nix/var/nix/profiles/system}/init"
|
${containerInit} "''${SYSTEM_PATH:-/nix/var/nix/profiles/system}/init"
|
||||||
'';
|
'';
|
||||||
@ -324,14 +366,22 @@ in
|
|||||||
postStart =
|
postStart =
|
||||||
''
|
''
|
||||||
if [ "$PRIVATE_NETWORK" = 1 ]; then
|
if [ "$PRIVATE_NETWORK" = 1 ]; then
|
||||||
|
if [ -z "$HOST_BRIDGE" ]; then
|
||||||
ifaceHost=ve-$INSTANCE
|
ifaceHost=ve-$INSTANCE
|
||||||
ip link set dev $ifaceHost up
|
ip link set dev $ifaceHost up
|
||||||
if [ -n "$HOST_ADDRESS" ]; then
|
if [ -n "$HOST_ADDRESS" ]; then
|
||||||
ip addr add $HOST_ADDRESS dev $ifaceHost
|
ip addr add $HOST_ADDRESS dev $ifaceHost
|
||||||
fi
|
fi
|
||||||
|
if [ -n "$HOST_ADDRESS6" ]; then
|
||||||
|
ip -6 addr add $HOST_ADDRESS6 dev $ifaceHost
|
||||||
|
fi
|
||||||
if [ -n "$LOCAL_ADDRESS" ]; then
|
if [ -n "$LOCAL_ADDRESS" ]; then
|
||||||
ip route add $LOCAL_ADDRESS dev $ifaceHost
|
ip route add $LOCAL_ADDRESS dev $ifaceHost
|
||||||
fi
|
fi
|
||||||
|
if [ -n "$LOCAL_ADDRESS6" ]; then
|
||||||
|
ip -6 route add $LOCAL_ADDRESS6 dev $ifaceHost
|
||||||
|
fi
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Get the leader PID so that we can signal it in
|
# Get the leader PID so that we can signal it in
|
||||||
@ -351,7 +401,6 @@ in
|
|||||||
'';
|
'';
|
||||||
|
|
||||||
restartIfChanged = false;
|
restartIfChanged = false;
|
||||||
#reloadIfChanged = true; # FIXME
|
|
||||||
|
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
ExecReload = pkgs.writeScript "reload-container"
|
ExecReload = pkgs.writeScript "reload-container"
|
||||||
@ -386,6 +435,23 @@ in
|
|||||||
KillSignal = "WINCH";
|
KillSignal = "WINCH";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
in {
|
||||||
|
systemd.services = listToAttrs (filter (x: x.value != null) (
|
||||||
|
# The generic container template used by imperative containers
|
||||||
|
[{ name = "container@"; value = unit; }]
|
||||||
|
# declarative containers
|
||||||
|
++ (mapAttrsToList (name: cfg: nameValuePair "container@${name}" (
|
||||||
|
if cfg.autoStart then
|
||||||
|
unit // {
|
||||||
|
wantedBy = [ "multi-user.target" ];
|
||||||
|
wants = [ "network.target" ];
|
||||||
|
after = [ "network.target" ];
|
||||||
|
restartTriggers = [ cfg.path ];
|
||||||
|
reloadIfChanged = true;
|
||||||
|
}
|
||||||
|
else null
|
||||||
|
)) config.containers)
|
||||||
|
));
|
||||||
|
|
||||||
# Generate a configuration file in /etc/containers for each
|
# Generate a configuration file in /etc/containers for each
|
||||||
# container so that container@.target can get the container
|
# container so that container@.target can get the container
|
||||||
@ -396,12 +462,21 @@ in
|
|||||||
SYSTEM_PATH=${cfg.path}
|
SYSTEM_PATH=${cfg.path}
|
||||||
${optionalString cfg.privateNetwork ''
|
${optionalString cfg.privateNetwork ''
|
||||||
PRIVATE_NETWORK=1
|
PRIVATE_NETWORK=1
|
||||||
|
${optionalString (cfg.hostBridge != null) ''
|
||||||
|
HOST_BRIDGE=${cfg.hostBridge}
|
||||||
|
''}
|
||||||
${optionalString (cfg.hostAddress != null) ''
|
${optionalString (cfg.hostAddress != null) ''
|
||||||
HOST_ADDRESS=${cfg.hostAddress}
|
HOST_ADDRESS=${cfg.hostAddress}
|
||||||
''}
|
''}
|
||||||
|
${optionalString (cfg.hostAddress6 != null) ''
|
||||||
|
HOST_ADDRESS6=${cfg.hostAddress6}
|
||||||
|
''}
|
||||||
${optionalString (cfg.localAddress != null) ''
|
${optionalString (cfg.localAddress != null) ''
|
||||||
LOCAL_ADDRESS=${cfg.localAddress}
|
LOCAL_ADDRESS=${cfg.localAddress}
|
||||||
''}
|
''}
|
||||||
|
${optionalString (cfg.localAddress6 != null) ''
|
||||||
|
LOCAL_ADDRESS6=${cfg.localAddress6}
|
||||||
|
''}
|
||||||
''}
|
''}
|
||||||
INTERFACES="${toString cfg.interfaces}"
|
INTERFACES="${toString cfg.interfaces}"
|
||||||
${optionalString cfg.autoStart ''
|
${optionalString cfg.autoStart ''
|
||||||
@ -420,31 +495,5 @@ in
|
|||||||
networking.dhcpcd.denyInterfaces = [ "ve-*" ];
|
networking.dhcpcd.denyInterfaces = [ "ve-*" ];
|
||||||
|
|
||||||
environment.systemPackages = [ nixos-container ];
|
environment.systemPackages = [ nixos-container ];
|
||||||
|
});
|
||||||
# Start containers at boot time.
|
|
||||||
systemd.services.all-containers =
|
|
||||||
{ description = "All Containers";
|
|
||||||
|
|
||||||
wantedBy = [ "multi-user.target" ];
|
|
||||||
|
|
||||||
unitConfig.ConditionDirectoryNotEmpty = "/etc/containers";
|
|
||||||
|
|
||||||
serviceConfig.Type = "oneshot";
|
|
||||||
|
|
||||||
script =
|
|
||||||
''
|
|
||||||
res=0
|
|
||||||
shopt -s nullglob
|
|
||||||
for i in /etc/containers/*.conf; do
|
|
||||||
AUTO_START=
|
|
||||||
source "$i"
|
|
||||||
if [ "$AUTO_START" = 1 ]; then
|
|
||||||
systemctl start "container@$(basename "$i" .conf).service" || res=1
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
exit $res
|
|
||||||
''; # */
|
|
||||||
};
|
|
||||||
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
@ -66,10 +66,10 @@ in
|
|||||||
|
|
||||||
# Register the paths in the Nix database.
|
# Register the paths in the Nix database.
|
||||||
printRegistration=1 perl ${pkgs.pathsFromGraph} /tmp/xchg/closure | \
|
printRegistration=1 perl ${pkgs.pathsFromGraph} /tmp/xchg/closure | \
|
||||||
chroot /mnt ${config.nix.package}/bin/nix-store --load-db --option build-users-group ""
|
chroot /mnt ${config.nix.package.out}/bin/nix-store --load-db --option build-users-group ""
|
||||||
|
|
||||||
# Create the system profile to allow nixos-rebuild to work.
|
# Create the system profile to allow nixos-rebuild to work.
|
||||||
chroot /mnt ${config.nix.package}/bin/nix-env \
|
chroot /mnt ${config.nix.package.out}/bin/nix-env \
|
||||||
-p /nix/var/nix/profiles/system --set ${config.system.build.toplevel} \
|
-p /nix/var/nix/profiles/system --set ${config.system.build.toplevel} \
|
||||||
--option build-users-group ""
|
--option build-users-group ""
|
||||||
|
|
||||||
|
@ -149,11 +149,11 @@ let
|
|||||||
${pkgs.mtools}/bin/mlabel -i /dev/vda2 ::boot
|
${pkgs.mtools}/bin/mlabel -i /dev/vda2 ::boot
|
||||||
|
|
||||||
# Mount /boot; load necessary modules first.
|
# Mount /boot; load necessary modules first.
|
||||||
${pkgs.module_init_tools}/sbin/insmod ${pkgs.linux}/lib/modules/*/kernel/fs/nls/nls_cp437.ko || true
|
${pkgs.kmod}/sbin/insmod ${pkgs.linux}/lib/modules/*/kernel/fs/nls/nls_cp437.ko.xz || true
|
||||||
${pkgs.module_init_tools}/sbin/insmod ${pkgs.linux}/lib/modules/*/kernel/fs/nls/nls_iso8859-1.ko || true
|
${pkgs.kmod}/sbin/insmod ${pkgs.linux}/lib/modules/*/kernel/fs/nls/nls_iso8859-1.ko.xz || true
|
||||||
${pkgs.module_init_tools}/sbin/insmod ${pkgs.linux}/lib/modules/*/kernel/fs/fat/fat.ko || true
|
${pkgs.kmod}/sbin/insmod ${pkgs.linux}/lib/modules/*/kernel/fs/fat/fat.ko.xz || true
|
||||||
${pkgs.module_init_tools}/sbin/insmod ${pkgs.linux}/lib/modules/*/kernel/fs/fat/vfat.ko || true
|
${pkgs.kmod}/sbin/insmod ${pkgs.linux}/lib/modules/*/kernel/fs/fat/vfat.ko.xz || true
|
||||||
${pkgs.module_init_tools}/sbin/insmod ${pkgs.linux}/lib/modules/*/kernel/fs/efivarfs/efivarfs.ko || true
|
${pkgs.kmod}/sbin/insmod ${pkgs.linux}/lib/modules/*/kernel/fs/efivarfs/efivarfs.ko.xz || true
|
||||||
mkdir /boot
|
mkdir /boot
|
||||||
mount /dev/vda2 /boot
|
mount /dev/vda2 /boot
|
||||||
|
|
||||||
@ -403,7 +403,7 @@ in
|
|||||||
boot.postBootCommands =
|
boot.postBootCommands =
|
||||||
''
|
''
|
||||||
if [[ "$(cat /proc/cmdline)" =~ regInfo=([^ ]*) ]]; then
|
if [[ "$(cat /proc/cmdline)" =~ regInfo=([^ ]*) ]]; then
|
||||||
${config.nix.package}/bin/nix-store --load-db < ''${BASH_REMATCH[1]}
|
${config.nix.package.out}/bin/nix-store --load-db < ''${BASH_REMATCH[1]}
|
||||||
fi
|
fi
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
@ -64,6 +64,9 @@ in rec {
|
|||||||
(all nixos.tests.installer.btrfsSubvols)
|
(all nixos.tests.installer.btrfsSubvols)
|
||||||
(all nixos.tests.installer.btrfsSubvolDefault)
|
(all nixos.tests.installer.btrfsSubvolDefault)
|
||||||
(all nixos.tests.boot.biosCdrom)
|
(all nixos.tests.boot.biosCdrom)
|
||||||
|
(all nixos.tests.boot.biosUsb)
|
||||||
|
(all nixos.tests.boot.uefiCdrom)
|
||||||
|
(all nixos.tests.boot.uefiUsb)
|
||||||
(all nixos.tests.ipv6)
|
(all nixos.tests.ipv6)
|
||||||
(all nixos.tests.kde4)
|
(all nixos.tests.kde4)
|
||||||
#(all nixos.tests.lightdm)
|
#(all nixos.tests.lightdm)
|
||||||
|
@ -199,7 +199,10 @@ in rec {
|
|||||||
tests.cadvisor = hydraJob (import tests/cadvisor.nix { system = "x86_64-linux"; });
|
tests.cadvisor = hydraJob (import tests/cadvisor.nix { system = "x86_64-linux"; });
|
||||||
tests.chromium = callSubTests tests/chromium.nix {};
|
tests.chromium = callSubTests tests/chromium.nix {};
|
||||||
tests.cjdns = callTest tests/cjdns.nix {};
|
tests.cjdns = callTest tests/cjdns.nix {};
|
||||||
tests.containers = callTest tests/containers.nix {};
|
tests.containers-ipv4 = callTest tests/containers-ipv4.nix {};
|
||||||
|
tests.containers-ipv6 = callTest tests/containers-ipv6.nix {};
|
||||||
|
tests.containers-bridge = callTest tests/containers-bridge.nix {};
|
||||||
|
tests.containers-imperative = callTest tests/containers-imperative.nix {};
|
||||||
tests.docker = hydraJob (import tests/docker.nix { system = "x86_64-linux"; });
|
tests.docker = hydraJob (import tests/docker.nix { system = "x86_64-linux"; });
|
||||||
tests.dockerRegistry = hydraJob (import tests/docker-registry.nix { system = "x86_64-linux"; });
|
tests.dockerRegistry = hydraJob (import tests/docker-registry.nix { system = "x86_64-linux"; });
|
||||||
tests.dnscrypt-proxy = callTest tests/dnscrypt-proxy.nix { system = "x86_64-linux"; };
|
tests.dnscrypt-proxy = callTest tests/dnscrypt-proxy.nix { system = "x86_64-linux"; };
|
||||||
|
81
nixos/tests/containers-bridge.nix
Normal file
81
nixos/tests/containers-bridge.nix
Normal file
@ -0,0 +1,81 @@
|
|||||||
|
# Test for NixOS' container support.
|
||||||
|
|
||||||
|
let
|
||||||
|
hostIp = "192.168.0.1";
|
||||||
|
containerIp = "192.168.0.100/24";
|
||||||
|
hostIp6 = "fc00::1";
|
||||||
|
containerIp6 = "fc00::2/7";
|
||||||
|
in
|
||||||
|
|
||||||
|
import ./make-test.nix ({ pkgs, ...} : {
|
||||||
|
name = "containers-bridge";
|
||||||
|
meta = with pkgs.stdenv.lib.maintainers; {
|
||||||
|
maintainers = [ aristid aszlig eelco chaoflow ];
|
||||||
|
};
|
||||||
|
|
||||||
|
machine =
|
||||||
|
{ config, pkgs, ... }:
|
||||||
|
{ imports = [ ../modules/installer/cd-dvd/channel.nix ];
|
||||||
|
virtualisation.writableStore = true;
|
||||||
|
virtualisation.memorySize = 768;
|
||||||
|
|
||||||
|
networking.bridges = {
|
||||||
|
br0 = {
|
||||||
|
interfaces = [];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
networking.interfaces = {
|
||||||
|
br0 = {
|
||||||
|
ip4 = [{ address = hostIp; prefixLength = 24; }];
|
||||||
|
ip6 = [{ address = hostIp6; prefixLength = 7; }];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
containers.webserver =
|
||||||
|
{
|
||||||
|
autoStart = true;
|
||||||
|
privateNetwork = true;
|
||||||
|
hostBridge = "br0";
|
||||||
|
localAddress = containerIp;
|
||||||
|
localAddress6 = containerIp6;
|
||||||
|
config =
|
||||||
|
{ services.httpd.enable = true;
|
||||||
|
services.httpd.adminAddr = "foo@example.org";
|
||||||
|
networking.firewall.allowedTCPPorts = [ 80 ];
|
||||||
|
networking.firewall.allowPing = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
virtualisation.pathsInNixDB = [ pkgs.stdenv ];
|
||||||
|
};
|
||||||
|
|
||||||
|
testScript =
|
||||||
|
''
|
||||||
|
$machine->waitForUnit("default.target");
|
||||||
|
$machine->succeed("nixos-container list") =~ /webserver/ or die;
|
||||||
|
|
||||||
|
# Start the webserver container.
|
||||||
|
$machine->succeed("nixos-container status webserver") =~ /up/ or die;
|
||||||
|
|
||||||
|
"${containerIp}" =~ /([^\/]+)\/([0-9+])/;
|
||||||
|
my $ip = $1;
|
||||||
|
chomp $ip;
|
||||||
|
$machine->succeed("ping -n -c 1 $ip");
|
||||||
|
$machine->succeed("curl --fail http://$ip/ > /dev/null");
|
||||||
|
|
||||||
|
"${containerIp6}" =~ /([^\/]+)\/([0-9+])/;
|
||||||
|
my $ip6 = $1;
|
||||||
|
chomp $ip6;
|
||||||
|
$machine->succeed("ping6 -n -c 1 $ip6");
|
||||||
|
$machine->succeed("curl --fail http://[$ip6]/ > /dev/null");
|
||||||
|
|
||||||
|
# Stop the container.
|
||||||
|
$machine->succeed("nixos-container stop webserver");
|
||||||
|
$machine->fail("curl --fail --connect-timeout 2 http://$ip/ > /dev/null");
|
||||||
|
$machine->fail("curl --fail --connect-timeout 2 http://[$ip6]/ > /dev/null");
|
||||||
|
|
||||||
|
# Destroying a declarative container should fail.
|
||||||
|
$machine->fail("nixos-container destroy webserver");
|
||||||
|
'';
|
||||||
|
|
||||||
|
})
|
@ -1,7 +1,7 @@
|
|||||||
# Test for NixOS' container support.
|
# Test for NixOS' container support.
|
||||||
|
|
||||||
import ./make-test.nix ({ pkgs, ...} : {
|
import ./make-test.nix ({ pkgs, ...} : {
|
||||||
name = "containers";
|
name = "containers-imperative";
|
||||||
meta = with pkgs.stdenv.lib.maintainers; {
|
meta = with pkgs.stdenv.lib.maintainers; {
|
||||||
maintainers = [ aristid aszlig eelco chaoflow ];
|
maintainers = [ aristid aszlig eelco chaoflow ];
|
||||||
};
|
};
|
||||||
@ -11,40 +11,11 @@ import ./make-test.nix ({ pkgs, ...} : {
|
|||||||
{ imports = [ ../modules/installer/cd-dvd/channel.nix ];
|
{ imports = [ ../modules/installer/cd-dvd/channel.nix ];
|
||||||
virtualisation.writableStore = true;
|
virtualisation.writableStore = true;
|
||||||
virtualisation.memorySize = 768;
|
virtualisation.memorySize = 768;
|
||||||
|
|
||||||
containers.webserver =
|
|
||||||
{ privateNetwork = true;
|
|
||||||
hostAddress = "10.231.136.1";
|
|
||||||
localAddress = "10.231.136.2";
|
|
||||||
config =
|
|
||||||
{ services.httpd.enable = true;
|
|
||||||
services.httpd.adminAddr = "foo@example.org";
|
|
||||||
networking.firewall.allowedTCPPorts = [ 80 ];
|
|
||||||
networking.firewall.allowPing = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
virtualisation.pathsInNixDB = [ pkgs.stdenv ];
|
virtualisation.pathsInNixDB = [ pkgs.stdenv ];
|
||||||
};
|
};
|
||||||
|
|
||||||
testScript =
|
testScript =
|
||||||
''
|
''
|
||||||
$machine->succeed("nixos-container list") =~ /webserver/ or die;
|
|
||||||
|
|
||||||
# Start the webserver container.
|
|
||||||
$machine->succeed("nixos-container start webserver");
|
|
||||||
|
|
||||||
# Since "start" returns after the container has reached
|
|
||||||
# multi-user.target, we should now be able to access it.
|
|
||||||
my $ip = $machine->succeed("nixos-container show-ip webserver");
|
|
||||||
chomp $ip;
|
|
||||||
#$machine->succeed("ping -c1 $ip"); # FIXME
|
|
||||||
$machine->succeed("curl --fail http://$ip/ > /dev/null");
|
|
||||||
|
|
||||||
# Stop the container.
|
|
||||||
$machine->succeed("nixos-container stop webserver");
|
|
||||||
$machine->fail("curl --fail --connect-timeout 2 http://$ip/ > /dev/null");
|
|
||||||
|
|
||||||
# Make sure we have a NixOS tree (required by ‘nixos-container create’).
|
# Make sure we have a NixOS tree (required by ‘nixos-container create’).
|
||||||
$machine->succeed("PAGER=cat nix-env -qa -A nixos.hello >&2");
|
$machine->succeed("PAGER=cat nix-env -qa -A nixos.hello >&2");
|
||||||
|
|
||||||
@ -111,9 +82,6 @@ import ./make-test.nix ({ pkgs, ...} : {
|
|||||||
# Ensure that the container path is gone
|
# Ensure that the container path is gone
|
||||||
"test ! -e /var/lib/containers/$id1"
|
"test ! -e /var/lib/containers/$id1"
|
||||||
);
|
);
|
||||||
|
|
||||||
# Destroying a declarative container should fail.
|
|
||||||
$machine->fail("nixos-container destroy webserver");
|
|
||||||
'';
|
'';
|
||||||
|
|
||||||
})
|
})
|
55
nixos/tests/containers-ipv4.nix
Normal file
55
nixos/tests/containers-ipv4.nix
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
# Test for NixOS' container support.
|
||||||
|
|
||||||
|
import ./make-test.nix ({ pkgs, ...} : {
|
||||||
|
name = "containers-ipv4";
|
||||||
|
meta = with pkgs.stdenv.lib.maintainers; {
|
||||||
|
maintainers = [ aristid aszlig eelco chaoflow ];
|
||||||
|
};
|
||||||
|
|
||||||
|
machine =
|
||||||
|
{ config, pkgs, ... }:
|
||||||
|
{ imports = [ ../modules/installer/cd-dvd/channel.nix ];
|
||||||
|
virtualisation.writableStore = true;
|
||||||
|
virtualisation.memorySize = 768;
|
||||||
|
|
||||||
|
containers.webserver =
|
||||||
|
{ privateNetwork = true;
|
||||||
|
hostAddress = "10.231.136.1";
|
||||||
|
localAddress = "10.231.136.2";
|
||||||
|
config =
|
||||||
|
{ services.httpd.enable = true;
|
||||||
|
services.httpd.adminAddr = "foo@example.org";
|
||||||
|
networking.firewall.allowedTCPPorts = [ 80 ];
|
||||||
|
networking.firewall.allowPing = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
virtualisation.pathsInNixDB = [ pkgs.stdenv ];
|
||||||
|
};
|
||||||
|
|
||||||
|
testScript =
|
||||||
|
''
|
||||||
|
$machine->succeed("nixos-container list") =~ /webserver/ or die;
|
||||||
|
|
||||||
|
# Start the webserver container.
|
||||||
|
$machine->succeed("nixos-container start webserver");
|
||||||
|
|
||||||
|
# wait two seconds for the container to start and the network to be up
|
||||||
|
sleep 2;
|
||||||
|
|
||||||
|
# Since "start" returns after the container has reached
|
||||||
|
# multi-user.target, we should now be able to access it.
|
||||||
|
my $ip = $machine->succeed("nixos-container show-ip webserver");
|
||||||
|
chomp $ip;
|
||||||
|
$machine->succeed("ping -n -c1 $ip");
|
||||||
|
$machine->succeed("curl --fail http://$ip/ > /dev/null");
|
||||||
|
|
||||||
|
# Stop the container.
|
||||||
|
$machine->succeed("nixos-container stop webserver");
|
||||||
|
$machine->fail("curl --fail --connect-timeout 2 http://$ip/ > /dev/null");
|
||||||
|
|
||||||
|
# Destroying a declarative container should fail.
|
||||||
|
$machine->fail("nixos-container destroy webserver");
|
||||||
|
'';
|
||||||
|
|
||||||
|
})
|
61
nixos/tests/containers-ipv6.nix
Normal file
61
nixos/tests/containers-ipv6.nix
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
# Test for NixOS' container support.
|
||||||
|
|
||||||
|
let
|
||||||
|
hostIp = "fc00::2";
|
||||||
|
localIp = "fc00::1";
|
||||||
|
in
|
||||||
|
|
||||||
|
import ./make-test.nix ({ pkgs, ...} : {
|
||||||
|
name = "containers-ipv6";
|
||||||
|
meta = with pkgs.stdenv.lib.maintainers; {
|
||||||
|
maintainers = [ aristid aszlig eelco chaoflow ];
|
||||||
|
};
|
||||||
|
|
||||||
|
machine =
|
||||||
|
{ config, pkgs, ... }:
|
||||||
|
{ imports = [ ../modules/installer/cd-dvd/channel.nix ];
|
||||||
|
virtualisation.writableStore = true;
|
||||||
|
virtualisation.memorySize = 768;
|
||||||
|
|
||||||
|
containers.webserver =
|
||||||
|
{ privateNetwork = true;
|
||||||
|
hostAddress6 = hostIp;
|
||||||
|
localAddress6 = localIp;
|
||||||
|
config =
|
||||||
|
{ services.httpd.enable = true;
|
||||||
|
services.httpd.adminAddr = "foo@example.org";
|
||||||
|
networking.firewall.allowedTCPPorts = [ 80 ];
|
||||||
|
networking.firewall.allowPing = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
virtualisation.pathsInNixDB = [ pkgs.stdenv ];
|
||||||
|
};
|
||||||
|
|
||||||
|
testScript =
|
||||||
|
''
|
||||||
|
$machine->waitForUnit("default.target");
|
||||||
|
$machine->succeed("nixos-container list") =~ /webserver/ or die;
|
||||||
|
|
||||||
|
# Start the webserver container.
|
||||||
|
$machine->succeed("nixos-container start webserver");
|
||||||
|
|
||||||
|
# wait two seconds for the container to start and the network to be up
|
||||||
|
sleep 2;
|
||||||
|
|
||||||
|
# Since "start" returns after the container has reached
|
||||||
|
# multi-user.target, we should now be able to access it.
|
||||||
|
my $ip = "${localIp}";
|
||||||
|
chomp $ip;
|
||||||
|
$machine->succeed("ping6 -n -c 1 $ip");
|
||||||
|
$machine->succeed("curl --fail http://[$ip]/ > /dev/null");
|
||||||
|
|
||||||
|
# Stop the container.
|
||||||
|
$machine->succeed("nixos-container stop webserver");
|
||||||
|
$machine->fail("curl --fail --connect-timeout 2 http://[$ip]/ > /dev/null");
|
||||||
|
|
||||||
|
# Destroying a declarative container should fail.
|
||||||
|
$machine->fail("nixos-container destroy webserver");
|
||||||
|
'';
|
||||||
|
|
||||||
|
})
|
@ -62,7 +62,7 @@ import ./make-test.nix ({pkgs, ... }: {
|
|||||||
# Test printing various file types.
|
# Test printing various file types.
|
||||||
foreach my $file ("${pkgs.groff.doc}/share/doc/*/examples/mom/penguin.pdf",
|
foreach my $file ("${pkgs.groff.doc}/share/doc/*/examples/mom/penguin.pdf",
|
||||||
"${pkgs.groff.doc}/share/doc/*/meref.ps",
|
"${pkgs.groff.doc}/share/doc/*/meref.ps",
|
||||||
"${pkgs.cups}/share/doc/cups/images/cups.png",
|
"${pkgs.cups.out}/share/doc/cups/images/cups.png",
|
||||||
"${pkgs.pcre.doc}/share/doc/pcre/pcre.txt")
|
"${pkgs.pcre.doc}/share/doc/pcre/pcre.txt")
|
||||||
{
|
{
|
||||||
$file =~ /([^\/]*)$/; my $fn = $1;
|
$file =~ /([^\/]*)$/; my $fn = $1;
|
||||||
|
@ -1,15 +1,15 @@
|
|||||||
{ stdenv, fetchurl, wxGTK, pkgconfig, gettext, gtk, glib, zlib, perl, intltool,
|
{ stdenv, fetchurl, wxGTK30, pkgconfig, gettext, gtk, glib, zlib, perl, intltool,
|
||||||
libogg, libvorbis, libmad, alsaLib, libsndfile, soxr, flac, lame, fetchpatch,
|
libogg, libvorbis, libmad, alsaLib, libsndfile, soxr, flac, lame, fetchpatch,
|
||||||
expat, libid3tag, ffmpeg, soundtouch /*, portaudio - given up fighting their portaudio.patch */
|
expat, libid3tag, ffmpeg, soundtouch /*, portaudio - given up fighting their portaudio.patch */
|
||||||
}:
|
}:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
version = "2.1.1";
|
version = "2.1.2";
|
||||||
name = "audacity-${version}";
|
name = "audacity-${version}";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://github.com/audacity/audacity/archive/Audacity-${version}.tar.gz";
|
url = "https://github.com/audacity/audacity/archive/Audacity-${version}.tar.gz";
|
||||||
sha256 = "15c5ff7ac1c0b19b08f4bdcb0f4988743da2f9ed3fab41d6f07600e67cb9ddb6";
|
sha256 = "1ggr6g0mk36rqj7ahsg8b0b1r9kphwajzvxgn43md263rm87n04h";
|
||||||
};
|
};
|
||||||
patches = [(fetchpatch {
|
patches = [(fetchpatch {
|
||||||
name = "new-ffmpeg.patch";
|
name = "new-ffmpeg.patch";
|
||||||
@ -18,12 +18,6 @@ stdenv.mkDerivation rec {
|
|||||||
sha256 = "19fr674mw844zmkp1476yigkcnmb6zyn78av64ccdwi3p68i00rf";
|
sha256 = "19fr674mw844zmkp1476yigkcnmb6zyn78av64ccdwi3p68i00rf";
|
||||||
})];
|
})];
|
||||||
|
|
||||||
# fix with gcc-5 from http://lists.freebsd.org/pipermail/freebsd-ports-bugs/2012-December/245884.html
|
|
||||||
postPatch = ''
|
|
||||||
substituteInPlace lib-src/libnyquist/nyquist/ffts/src/fftlib.c \
|
|
||||||
--replace 'inline void' 'static inline void'
|
|
||||||
'';
|
|
||||||
|
|
||||||
preConfigure = /* we prefer system-wide libs */ ''
|
preConfigure = /* we prefer system-wide libs */ ''
|
||||||
mv lib-src lib-src-rm
|
mv lib-src lib-src-rm
|
||||||
mkdir lib-src
|
mkdir lib-src
|
||||||
@ -31,11 +25,11 @@ stdenv.mkDerivation rec {
|
|||||||
rm -r lib-src-rm/
|
rm -r lib-src-rm/
|
||||||
'';
|
'';
|
||||||
|
|
||||||
configureFlags = "--with-libsamplerate";
|
configureFlags = [ "--with-libsamplerate" ];
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
pkgconfig gettext wxGTK gtk expat alsaLib
|
pkgconfig gettext wxGTK30 expat alsaLib
|
||||||
libsndfile soxr libid3tag
|
libsndfile soxr libid3tag gtk
|
||||||
ffmpeg libmad lame libvorbis flac soundtouch
|
ffmpeg libmad lame libvorbis flac soundtouch
|
||||||
]; #ToDo: detach sbsms
|
]; #ToDo: detach sbsms
|
||||||
|
|
||||||
|
@ -4,12 +4,12 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "non-${version}";
|
name = "non-${version}";
|
||||||
version = "2016-03-06";
|
version = "2016-04-05";
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "original-male";
|
owner = "original-male";
|
||||||
repo = "non";
|
repo = "non";
|
||||||
rev = "3946d392216ee999b560d8b7cdee7c4347110e29";
|
rev = "16885e69fe865495dc32d869d1454ab148b0dca6";
|
||||||
sha256 = "02vnq2mfimgdrmv3lmz80yif4h9a1lympv0wqc5dr2l0f8amj2fp";
|
sha256 = "1nwzzgcdpbqh5kjvz40yy5nmzvpp8gcr9biyhhwi68s5bsg972ss";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ pkgconfig python2 cairo libjpeg ntk libjack2 libsndfile
|
buildInputs = [ pkgconfig python2 cairo libjpeg ntk libjack2 libsndfile
|
||||||
|
43
pkgs/applications/audio/svox/default.nix
Normal file
43
pkgs/applications/audio/svox/default.nix
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
{ stdenv, fetchgit }:
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
name = "svox-${version}";
|
||||||
|
version = "2016-01-25";
|
||||||
|
|
||||||
|
src = fetchgit {
|
||||||
|
url = "https://android.googlesource.com/platform/external/svox";
|
||||||
|
rev = "dfb9937746b1828d093faf3b1494f9dc403f392d";
|
||||||
|
sha256 = "1gkfj5avikzmr2vv8bhf83n15jcbz4phz5j13l0qnh3gjzh4f1bk";
|
||||||
|
};
|
||||||
|
|
||||||
|
postPatch = ''
|
||||||
|
cd pico
|
||||||
|
'';
|
||||||
|
|
||||||
|
buildPhase = ''
|
||||||
|
cd lib
|
||||||
|
for i in *.c; do
|
||||||
|
$CC -O2 -fPIC -c -o ''${i%.c}.o $i
|
||||||
|
done
|
||||||
|
$CC -shared -o libttspico.so *.o
|
||||||
|
cd ..
|
||||||
|
'';
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
install -Dm755 lib/libttspico.so $out/lib/libttspico.so
|
||||||
|
mkdir -p $out/include
|
||||||
|
cp lib/*.h $out/include
|
||||||
|
mkdir -p $out/share/pico/lang
|
||||||
|
cp lang/*.bin $out/share/pico/lang
|
||||||
|
'';
|
||||||
|
|
||||||
|
NIX_CFLAGS_COMPILE = [ "-include stdint.h" ];
|
||||||
|
|
||||||
|
meta = with stdenv.lib; {
|
||||||
|
description = "Text-to-speech engine";
|
||||||
|
homepage = https://android.googlesource.com/platform/external/svox;
|
||||||
|
platforms = platforms.linux;
|
||||||
|
license = licenses.asl20;
|
||||||
|
maintainers = with maintainers; [ abbradar ];
|
||||||
|
};
|
||||||
|
}
|
@ -1,20 +1,6 @@
|
|||||||
{ stdenv, fetchurl, lib, makeDesktopItem, makeWrapper, zlib, glib, alsaLib
|
{ stdenv, fetchurl, lib, makeWrapper, gvfs, atomEnv }:
|
||||||
, dbus, gtk, atk, pango, freetype, fontconfig, libgnome_keyring3, gdk_pixbuf
|
|
||||||
, gvfs, cairo, cups, expat, libgpgerror, nspr, gconf, nss, xorg, libcap, systemd
|
|
||||||
}:
|
|
||||||
|
|
||||||
let
|
stdenv.mkDerivation rec {
|
||||||
atomPkgs = [
|
|
||||||
stdenv.cc.cc zlib glib dbus gtk atk pango freetype libgnome_keyring3
|
|
||||||
fontconfig gdk_pixbuf cairo cups expat libgpgerror alsaLib nspr gconf nss
|
|
||||||
xorg.libXrender xorg.libX11 xorg.libXext xorg.libXdamage xorg.libXtst
|
|
||||||
xorg.libXcomposite xorg.libXi xorg.libXfixes xorg.libXrandr
|
|
||||||
xorg.libXcursor libcap systemd
|
|
||||||
];
|
|
||||||
atomLib = lib.makeLibraryPath atomPkgs;
|
|
||||||
atomLib64 = lib.makeSearchPathOutputs "lib64" ["lib"] atomPkgs;
|
|
||||||
|
|
||||||
in stdenv.mkDerivation rec {
|
|
||||||
name = "atom-${version}";
|
name = "atom-${version}";
|
||||||
version = "1.6.2";
|
version = "1.6.2";
|
||||||
|
|
||||||
@ -26,25 +12,25 @@ in stdenv.mkDerivation rec {
|
|||||||
|
|
||||||
nativeBuildInputs = [ makeWrapper ];
|
nativeBuildInputs = [ makeWrapper ];
|
||||||
|
|
||||||
phases = [ "installPhase" "fixupPhase" ];
|
buildCommand = ''
|
||||||
|
mkdir -p $out/usr/
|
||||||
installPhase = ''
|
|
||||||
mkdir -p $out
|
|
||||||
ar p $src data.tar.gz | tar -C $out -xz ./usr
|
ar p $src data.tar.gz | tar -C $out -xz ./usr
|
||||||
substituteInPlace $out/usr/share/applications/atom.desktop \
|
substituteInPlace $out/usr/share/applications/atom.desktop \
|
||||||
--replace /usr/share/atom $out/bin
|
--replace /usr/share/atom $out/bin
|
||||||
mv $out/usr/* $out/
|
mv $out/usr/* $out/
|
||||||
rm -r $out/share/lintian
|
rm -r $out/share/lintian
|
||||||
rm -r $out/usr/
|
rm -r $out/usr/
|
||||||
|
wrapProgram $out/bin/atom \
|
||||||
|
--prefix "PATH" : "${gvfs}/bin"
|
||||||
|
|
||||||
|
fixupPhase
|
||||||
|
|
||||||
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
|
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
|
||||||
|
--set-rpath "${atomEnv.libPath}:$out/share/atom" \
|
||||||
$out/share/atom/atom
|
$out/share/atom/atom
|
||||||
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
|
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
|
||||||
|
--set-rpath "${atomEnv.libPath}" \
|
||||||
$out/share/atom/resources/app/apm/bin/node
|
$out/share/atom/resources/app/apm/bin/node
|
||||||
wrapProgram $out/bin/atom \
|
|
||||||
--prefix "LD_LIBRARY_PATH" : "${atomLib}:${atomLib64}" \
|
|
||||||
--prefix "PATH" : "${gvfs}/bin"
|
|
||||||
wrapProgram $out/bin/apm \
|
|
||||||
--prefix "LD_LIBRARY_PATH" : "${atomLib}:${atomLib64}"
|
|
||||||
'';
|
'';
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
|
19
pkgs/applications/editors/atom/env.nix
Normal file
19
pkgs/applications/editors/atom/env.nix
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
{ stdenv, lib, zlib, glib, alsaLib, dbus, gtk, atk, pango, freetype, fontconfig
|
||||||
|
, libgnome_keyring3, gdk_pixbuf, gvfs, cairo, cups, expat, libgpgerror, nspr
|
||||||
|
, gconf, nss, xorg, libcap, systemd, libnotify
|
||||||
|
}:
|
||||||
|
|
||||||
|
let
|
||||||
|
packages = [
|
||||||
|
stdenv.cc.cc zlib glib dbus gtk atk pango freetype libgnome_keyring3
|
||||||
|
fontconfig gdk_pixbuf cairo cups expat libgpgerror alsaLib nspr gconf nss
|
||||||
|
xorg.libXrender xorg.libX11 xorg.libXext xorg.libXdamage xorg.libXtst
|
||||||
|
xorg.libXcomposite xorg.libXi xorg.libXfixes xorg.libXrandr
|
||||||
|
xorg.libXcursor libcap systemd libnotify
|
||||||
|
];
|
||||||
|
|
||||||
|
libPathNative = lib.makeLibraryPath packages;
|
||||||
|
libPath64 = lib.makeSearchPathOutputs "lib64" ["lib"] packages;
|
||||||
|
libPath = "${libPathNative}:${libPath64}";
|
||||||
|
|
||||||
|
in { inherit packages libPath; }
|
@ -23,13 +23,13 @@ let
|
|||||||
in
|
in
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "emacs-25.0.92";
|
name = "emacs-25.0.93";
|
||||||
|
|
||||||
builder = ./builder.sh;
|
builder = ./builder.sh;
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "ftp://alpha.gnu.org/gnu/emacs/pretest/emacs-25.0.92.tar.xz";
|
url = "ftp://alpha.gnu.org/gnu/emacs/pretest/${name}.tar.xz";
|
||||||
sha256 = "13jnj1js2l90k4yk219r3z67fff90r6mniprsp0sgip2kaak75y2";
|
sha256 = "1wbr2n723ycg16rlg81v9x17w9ciy7qyckxplnwghlyfj6j9k4dk";
|
||||||
};
|
};
|
||||||
|
|
||||||
patches = lib.optionals stdenv.isDarwin [
|
patches = lib.optionals stdenv.isDarwin [
|
||||||
|
@ -148,14 +148,14 @@ in
|
|||||||
|
|
||||||
android-studio = buildAndroidStudio rec {
|
android-studio = buildAndroidStudio rec {
|
||||||
name = "android-studio-${version}";
|
name = "android-studio-${version}";
|
||||||
version = "2.0.0.0";
|
version = "2.0.0.20";
|
||||||
build = "143.2443734";
|
build = "143.2739321";
|
||||||
description = "Android development environment based on IntelliJ IDEA";
|
description = "Android development environment based on IntelliJ IDEA";
|
||||||
license = stdenv.lib.licenses.asl20;
|
license = stdenv.lib.licenses.asl20;
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://dl.google.com/dl/android/studio/ide-zips/${version}" +
|
url = "https://dl.google.com/dl/android/studio/ide-zips/${version}" +
|
||||||
"/android-studio-ide-${build}-linux.zip";
|
"/android-studio-ide-${build}-linux.zip";
|
||||||
sha256 = "0j6bi87hb5jxjwfhfya64s673vdkdslsqc6sqa4zl97sabvafk2w";
|
sha256 = "14bb4ha868015wm8v8vivxfylfzm7gbvf01h82w4bhzdbzgn1zpr";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -1,26 +1,31 @@
|
|||||||
{ stdenv, fetchurl, qtbase, qttools, qmakeHook, pkgconfig, python }:
|
{ stdenv, fetchurl, pkgconfig, qmakeHook
|
||||||
|
, python, qtbase, qttools, zlib }:
|
||||||
|
|
||||||
let
|
let
|
||||||
version = "0.12.3";
|
# qtEnv = with qt5; env "qt-${qtbase.version}" [ qtbase qttools ];
|
||||||
sha256 = "001j4lvb5d9h3m6vgz2na07637x6xg4bdvxi2hg4a0j9rikb4y40";
|
in stdenv.mkDerivation rec {
|
||||||
in
|
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
|
||||||
name = "tiled-${version}";
|
name = "tiled-${version}";
|
||||||
|
version = "0.16.0";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
|
name = "${name}.tar.gz";
|
||||||
url = "https://github.com/bjorn/tiled/archive/v${version}.tar.gz";
|
url = "https://github.com/bjorn/tiled/archive/v${version}.tar.gz";
|
||||||
inherit sha256;
|
sha256 = "1vlhfkgl126irp53xw94jw1xnj96l1hwnbxmm1s5az60460gfbf0";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ qtbase qttools qmakeHook pkgconfig python ];
|
nativeBuildInputs = [ pkgconfig qmakeHook ];
|
||||||
|
buildInputs = [ python qtbase qttools ];
|
||||||
|
|
||||||
meta = {
|
enableParallelBuilding = true;
|
||||||
description = "A free, easy to use and flexible tile map editor";
|
|
||||||
homepage = "http://www.mapeditor.org/";
|
meta = with stdenv.lib; {
|
||||||
# libtiled and tmxviewer is licensed under 2-calause BSD license.
|
description = "Free, easy to use and flexible tile map editor";
|
||||||
# The rest is GPL2 or later.
|
homepage = http://www.mapeditor.org/;
|
||||||
license = stdenv.lib.licenses.gpl2Plus;
|
license = with licenses; [
|
||||||
platforms = stdenv.lib.platforms.linux;
|
bsd2 # libtiled and tmxviewer
|
||||||
|
gpl2Plus # all the rest
|
||||||
|
];
|
||||||
|
platforms = platforms.linux;
|
||||||
|
maintainers = with maintainers; [ nckx ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -1,22 +1,18 @@
|
|||||||
{ stdenv, callPackage, fetchurl, unzip
|
{ stdenv, lib, callPackage, fetchurl, unzip, atomEnv, makeDesktopItem }:
|
||||||
, ...
|
|
||||||
} @ args:
|
|
||||||
|
|
||||||
let
|
let
|
||||||
atomEnv = callPackage ../../../development/tools/electron/env-atom.nix (args);
|
version = "1.0.0";
|
||||||
|
rev = "fa6d0f03813dfb9df4589c30121e9fcffa8a8ec8";
|
||||||
|
|
||||||
version = "0.10.10";
|
sha256 = if stdenv.system == "i686-linux" then "1nnsvr51k8cmq8rccksylam4ww40pdn9dnhnp9096z5ccrf4qa1b"
|
||||||
rev = "5b5f4db87c10345b9d5c8d0bed745bcad4533135";
|
else if stdenv.system == "x86_64-linux" then "0p408pp2il6kawfsql8n5dvl75kmf2n2p0r266mjnww6vprmq4gw"
|
||||||
sha256 = if stdenv.system == "i686-linux" then "1mmgq4fxi2h4hvz7yxgzzyvlznkb42qwr8i1g2b1akdlgnrvvpby"
|
else if stdenv.system == "x86_64-darwin" then "06k41ljfvgyxbl364jlkdjk8lkwr6bpq2r051vin93cnqfxridkq"
|
||||||
else if stdenv.system == "x86_64-linux" then "1zjb6mys5qs9mb21rpgpnbgq4gpnw6gsgfn5imf7ca7myk1bxnvk"
|
|
||||||
else if stdenv.system == "x86_64-darwin" then "0y1as2s6nhicyvdfszphhqp76iv9wcygglrl2f0jamm98g9qp66p"
|
|
||||||
else throw "Unsupported system: ${stdenv.system}";
|
else throw "Unsupported system: ${stdenv.system}";
|
||||||
|
|
||||||
urlMod = if stdenv.system == "i686-linux" then "linux-ia32"
|
urlMod = if stdenv.system == "i686-linux" then "linux-ia32"
|
||||||
else if stdenv.system == "x86_64-linux" then "linux-x64"
|
else if stdenv.system == "x86_64-linux" then "linux-x64"
|
||||||
else if stdenv.system == "x86_64-darwin" then "darwin"
|
else if stdenv.system == "x86_64-darwin" then "darwin"
|
||||||
else throw "Unsupported system: ${stdenv.system}";
|
else throw "Unsupported system: ${stdenv.system}";
|
||||||
|
|
||||||
in
|
in
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "vscode-${version}";
|
name = "vscode-${version}";
|
||||||
@ -27,24 +23,35 @@ in
|
|||||||
inherit sha256;
|
inherit sha256;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
desktopItem = makeDesktopItem {
|
||||||
|
name = "code";
|
||||||
|
exec = "code";
|
||||||
|
icon = "code";
|
||||||
|
comment = "Visual Studio Code is a code editor redefined and optimized for building and debugging modern web and cloud applications";
|
||||||
|
desktopName = "Visual Studio Code";
|
||||||
|
genericName = "Text Editor";
|
||||||
|
categories = "GNOME;GTK;Utility;TextEditor;Development;";
|
||||||
|
};
|
||||||
|
|
||||||
buildInputs = [ unzip ];
|
buildInputs = [ unzip ];
|
||||||
|
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
mkdir -p $out/bin
|
mkdir -p $out/lib/vscode $out/bin
|
||||||
cp -r ./* $out/bin
|
cp -r ./* $out/lib/vscode
|
||||||
|
ln -s $out/lib/vscode/code $out/bin
|
||||||
|
|
||||||
${if (stdenv.system == "i686-linux" || stdenv.system == "x86_64-linux") then ''
|
mkdir -p $out/share/applications
|
||||||
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
|
cp $desktopItem/share/applications/* $out/share/applications
|
||||||
$out/bin/code
|
|
||||||
'' else ""}
|
mkdir -p $out/share/pixmaps
|
||||||
|
cp $out/lib/vscode/resources/app/resources/linux/code.png $out/share/pixmaps/code.png
|
||||||
'';
|
'';
|
||||||
|
|
||||||
postFixup = ''
|
postFixup = lib.optionalString (stdenv.system == "i686-linux" || stdenv.system == "x86_64-linux") ''
|
||||||
${if (stdenv.system == "i686-linux" || stdenv.system == "x86_64-linux") then ''
|
|
||||||
patchelf \
|
patchelf \
|
||||||
--set-rpath "${atomEnv}/lib:${atomEnv}/lib64:$out/bin:$(patchelf --print-rpath $out/bin/code)" \
|
--set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
|
||||||
$out/bin/code
|
--set-rpath "${atomEnv.libPath}:$out/lib/vscode" \
|
||||||
'' else ""}
|
$out/lib/vscode/code
|
||||||
'';
|
'';
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{ lib, stdenv, fetchurl, pkgconfig, libtool
|
{ lib, stdenv, fetchurl, pkgconfig, libtool
|
||||||
, bzip2, zlib, libX11, libXext, libXt, fontconfig, freetype, ghostscript, libjpeg
|
, bzip2, zlib, libX11, libXext, libXt, fontconfig, freetype, ghostscript, libjpeg
|
||||||
, lcms2, openexr, libpng, librsvg, libtiff, libxml2
|
, lcms2, openexr, libpng, librsvg, libtiff, libxml2, openjpeg
|
||||||
}:
|
}:
|
||||||
|
|
||||||
let
|
let
|
||||||
@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
|
|||||||
|
|
||||||
buildInputs =
|
buildInputs =
|
||||||
[ pkgconfig libtool zlib fontconfig freetype ghostscript libjpeg
|
[ pkgconfig libtool zlib fontconfig freetype ghostscript libjpeg
|
||||||
openexr libpng librsvg libtiff libxml2
|
openexr libpng librsvg libtiff libxml2 openjpeg
|
||||||
];
|
];
|
||||||
|
|
||||||
propagatedBuildInputs =
|
propagatedBuildInputs =
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
{ callPackage, fetchgit, ... } @ args:
|
{ callPackage, fetchgit, ... } @ args:
|
||||||
|
|
||||||
callPackage ./generic.nix (args // {
|
callPackage ./generic.nix (args // {
|
||||||
version = "2016-04-14";
|
version = "2016-04-23";
|
||||||
src = fetchgit {
|
src = fetchgit {
|
||||||
sha256 = "414fa7753043f8f3775d926eede01a9dbccf6255b2b2b961a3c48b4fa76a4952";
|
sha256 = "11bf60cd5a6b314e855a69a6f57a5ca0db3254527def55662bce25810a2314df";
|
||||||
rev = "19c128a23e27c1ab5a030fa6ff74da1b740629bb";
|
rev = "c8169b1e656f7f95c67946298da5a0e1c143f8e8";
|
||||||
url = "git://alioth.debian.org/git/sane/sane-backends.git";
|
url = "git://alioth.debian.org/git/sane/sane-backends.git";
|
||||||
};
|
};
|
||||||
})
|
})
|
||||||
|
@ -5,12 +5,12 @@
|
|||||||
}:
|
}:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
version = "2.54.0";
|
version = "2.55.0";
|
||||||
name = "calibre-${version}";
|
name = "calibre-${version}";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "http://download.calibre-ebook.com/${version}/${name}.tar.xz";
|
url = "http://download.calibre-ebook.com/${version}/${name}.tar.xz";
|
||||||
sha256 = "1r2cxnqiqnx51gbw283z8lz58i9zpvbf0a5ncrg5b2i9bphdiq79";
|
sha256 = "12412d5vjp141xp5qvif50fskd1vsmr15h956z3bh6j99n8z5953";
|
||||||
};
|
};
|
||||||
|
|
||||||
inherit python;
|
inherit python;
|
||||||
|
@ -26,10 +26,11 @@ stdenv.mkDerivation rec {
|
|||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
homepage = http://sourceforge.net/projects/cdrtools/;
|
homepage = http://sourceforge.net/projects/cdrtools/;
|
||||||
description = "Highly portable CD/DVD/BluRay command line recording software";
|
description = "Highly portable CD/DVD/BluRay command line recording software";
|
||||||
# Licensing issues: This package contains code licensed under CDDL, GPL2
|
license = with licenses; [ gpl2 lgpl2 cddl ];
|
||||||
# and LGPL2. There is debate regarding the legality of this licensing.
|
|
||||||
# Marked as unfree to avoid any possible legal issues.
|
|
||||||
license = licenses.unfree;
|
|
||||||
platforms = platforms.linux;
|
platforms = platforms.linux;
|
||||||
|
# Licensing issues: This package contains code licensed under CDDL, GPL2
|
||||||
|
# and LGPL2. There is a debate regarding the legality of distributing this
|
||||||
|
# package in binary form.
|
||||||
|
hydraPlatforms = [];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -2,9 +2,10 @@
|
|||||||
, qttools, yacc, flex, zlib, config, qmakeHook, makeQtWrapper }:
|
, qttools, yacc, flex, zlib, config, qmakeHook, makeQtWrapper }:
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "golden-cheetah-${version}";
|
name = "golden-cheetah-${version}";
|
||||||
version = "V4.0-DEV1603";
|
version = "4.0-DEV1603";
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://github.com/GoldenCheetah/GoldenCheetah/archive/${version}.tar.gz";
|
name = "${name}.tar.gz";
|
||||||
|
url = "https://github.com/GoldenCheetah/GoldenCheetah/archive/V${version}.tar.gz";
|
||||||
sha256 = "12knlzqmq8b3nyl3kvcsnzrbjksgd83mzwzj97wccyfiffjl4wah";
|
sha256 = "12knlzqmq8b3nyl3kvcsnzrbjksgd83mzwzj97wccyfiffjl4wah";
|
||||||
};
|
};
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
@ -17,12 +18,13 @@ stdenv.mkDerivation rec {
|
|||||||
echo 'QMAKE_LRELEASE = ${qttools}/bin/lrelease' >> src/gcconfig.pri
|
echo 'QMAKE_LRELEASE = ${qttools}/bin/lrelease' >> src/gcconfig.pri
|
||||||
sed -i -e '21,23d' qwt/qwtconfig.pri # Removed forced installation to /usr/local
|
sed -i -e '21,23d' qwt/qwtconfig.pri # Removed forced installation to /usr/local
|
||||||
'';
|
'';
|
||||||
postConfigure =
|
#postConfigure =
|
||||||
with (config.golden-cheetah);
|
# + (
|
||||||
stdenv.lib.optionalString (dropbox-client-id != null && dropbox-client-secret != null) ''
|
# with (config.golden-cheetah);
|
||||||
echo 'DEFINES += GC_DROPBOX_CLIENT_ID=\\\"${config.golden-cheetah.dropbox-client-id}\\\"' >> src/gcconfig.pri
|
# stdenv.lib.optionalString (dropbox-client-id != null && dropbox-client-secret != null) ''
|
||||||
echo 'DEFINES += GC_DROPBOX_CLIENT_SECRET=\\\"${config.golden-cheetah.dropbox-client-secret}\\\"' >> src/gcconfig.pri
|
# echo 'DEFINES += GC_DROPBOX_CLIENT_ID=\\\"${config.golden-cheetah.dropbox-client-id}\\\"' >> src/gcconfig.pri
|
||||||
'';
|
# echo 'DEFINES += GC_DROPBOX_CLIENT_SECRET=\\\"${config.golden-cheetah.dropbox-client-secret}\\\"' >> src/gcconfig.pri
|
||||||
|
# '');
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
mkdir -p $out/bin
|
mkdir -p $out/bin
|
||||||
cp src/GoldenCheetah $out/bin
|
cp src/GoldenCheetah $out/bin
|
||||||
|
@ -2,11 +2,11 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "gpsprune-${version}";
|
name = "gpsprune-${version}";
|
||||||
version = "18.3";
|
version = "18.4";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "http://activityworkshop.net/software/gpsprune/gpsprune_${version}.jar";
|
url = "http://activityworkshop.net/software/gpsprune/gpsprune_${version}.jar";
|
||||||
sha256 = "1sas5n4k3afryg3k6y40w39kifs3d0yrnnk46nqp7axs4ay2aqim";
|
sha256 = "0wrkvff3c1w66373m2w2ib07rkn3rmbp3n7ixz72qd1swvbk6xx1";
|
||||||
};
|
};
|
||||||
|
|
||||||
phases = [ "installPhase" ];
|
phases = [ "installPhase" ];
|
||||||
|
28
pkgs/applications/misc/haxor-news/default.nix
Normal file
28
pkgs/applications/misc/haxor-news/default.nix
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
{ stdenv, fetchurl, pythonPackages }:
|
||||||
|
|
||||||
|
pythonPackages.buildPythonApplication rec {
|
||||||
|
version = "0.3.1";
|
||||||
|
name = "haxor-news-${version}";
|
||||||
|
|
||||||
|
src = fetchurl {
|
||||||
|
url = "https://github.com/donnemartin/haxor-news/archive/0.3.1.tar.gz";
|
||||||
|
sha256 = "0jglx8fy38sjyszvvg7mvmyk66l53kyq4i09hmgdz7hb1hrm9m2m";
|
||||||
|
};
|
||||||
|
|
||||||
|
propagatedBuildInputs = with pythonPackages; [
|
||||||
|
click
|
||||||
|
colorama
|
||||||
|
requests2
|
||||||
|
pygments
|
||||||
|
prompt_toolkit_52
|
||||||
|
six
|
||||||
|
];
|
||||||
|
|
||||||
|
meta = with stdenv.lib; {
|
||||||
|
homepage = "https://github.com/donnemartin/haxor-news";
|
||||||
|
description = "Browse Hacker News like a haxor";
|
||||||
|
license = licenses.asl20;
|
||||||
|
maintainers = with maintainers; [ matthiasbeyer ];
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
@ -1,12 +1,19 @@
|
|||||||
{ stdenv, fetchurl, makeWrapper, automoc4, cmake, perl, pkgconfig
|
{ stdenv, lib, fetchurl, makeWrapper, automoc4, cmake, perl, pkgconfig
|
||||||
, shared_mime_info, libvorbis, taglib, flac, libsamplerate
|
, shared_mime_info, libvorbis, taglib, flac, libsamplerate
|
||||||
, libdvdread, lame, libsndfile, libmad, gettext , transcode, cdrdao
|
, libdvdread, lame, libsndfile, libmad, gettext , transcode, cdrdao
|
||||||
, cdrtools, dvdplusrwtools, vcdimager, cdparanoia , kdelibs
|
, dvdplusrwtools, vcdimager, cdparanoia, kdelibs, libdvdcss, ffmpeg
|
||||||
, kdemultimedia, phonon, libkcddb ? null
|
, kdemultimedia, phonon, libkcddb ? null
|
||||||
}:
|
}:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
let
|
||||||
name = "k3b-2.0.3a";
|
# at runtime, k3b needs the executables cdrdao, cdrecord, dvd+rw-format,
|
||||||
|
# eMovix, growisofs, mkisofs, normalize, readcd, transcode, vcdxbuild,
|
||||||
|
# vcdxminfo, and vcdxrip
|
||||||
|
binPath = lib.makeBinPath [ cdrdao dvdplusrwtools transcode vcdimager ];
|
||||||
|
|
||||||
|
in stdenv.mkDerivation rec {
|
||||||
|
name = "k3b-${version}";
|
||||||
|
version = "2.0.3a";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "http://download.kde.org/stable/k3b/${name}.tar.xz";
|
url = "http://download.kde.org/stable/k3b/${name}.tar.xz";
|
||||||
@ -19,18 +26,16 @@ stdenv.mkDerivation rec {
|
|||||||
shared_mime_info libvorbis taglib flac libsamplerate libdvdread
|
shared_mime_info libvorbis taglib flac libsamplerate libdvdread
|
||||||
lame libsndfile libmad stdenv.cc.libc kdelibs
|
lame libsndfile libmad stdenv.cc.libc kdelibs
|
||||||
kdemultimedia phonon libkcddb makeWrapper cdparanoia
|
kdemultimedia phonon libkcddb makeWrapper cdparanoia
|
||||||
|
libdvdcss ffmpeg
|
||||||
];
|
];
|
||||||
|
|
||||||
enableParallelBuilding = true;
|
enableParallelBuilding = true;
|
||||||
|
|
||||||
# at runtime, k3b needs the executables cdrdao, cdrecord, dvd+rw-format,
|
NIX_CFLAGS_LINK = [ "-lcdda_interface" "-lcdda_paranoia" "-ldvdcss" ];
|
||||||
# eMovix, growisofs, mkisofs, normalize, readcd, transcode, vcdxbuild,
|
|
||||||
# vcdxminfo, and vcdxrip
|
|
||||||
propagatedUserEnvPkgs = [ cdrdao cdrtools dvdplusrwtools transcode vcdimager ];
|
|
||||||
|
|
||||||
postInstall = ''
|
postInstall = ''
|
||||||
wrapProgram $out/bin/k3b \
|
wrapProgram $out/bin/k3b \
|
||||||
--prefix LD_LIBRARY_PATH ":" "${cdparanoia}/lib"
|
--prefix PATH ":" "${binPath}"
|
||||||
'';
|
'';
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
|
23
pkgs/applications/misc/k3b/wrapper.nix
Normal file
23
pkgs/applications/misc/k3b/wrapper.nix
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
{ lib, buildEnv, k3b-original, cdrtools, makeWrapper }:
|
||||||
|
|
||||||
|
let
|
||||||
|
binPath = lib.makeBinPath [ cdrtools ];
|
||||||
|
in buildEnv {
|
||||||
|
name = "k3b-${k3b-original.version}";
|
||||||
|
|
||||||
|
paths = [ k3b-original ];
|
||||||
|
buildInputs = [ makeWrapper ];
|
||||||
|
|
||||||
|
postBuild = ''
|
||||||
|
# TODO: This could be avoided if buildEnv could be forced to create all directories
|
||||||
|
if [ -L $out/bin ]; then
|
||||||
|
rm $out/bin
|
||||||
|
mkdir $out/bin
|
||||||
|
for i in ${k3b-original}/bin/*; do
|
||||||
|
ln -s $i $out/bin
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
wrapProgram $out/bin/k3b \
|
||||||
|
--prefix PATH ':' ${binPath}
|
||||||
|
'';
|
||||||
|
}
|
@ -1,4 +1,4 @@
|
|||||||
{ stdenv, fetchurl, postgresql, wxGTK, libxml2, libxslt, openssl }:
|
{ stdenv, fetchurl, postgresql, wxGTK, libxml2, libxslt, openssl, zlib }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "pgadmin3-${version}";
|
name = "pgadmin3-${version}";
|
||||||
@ -11,12 +11,17 @@ stdenv.mkDerivation rec {
|
|||||||
|
|
||||||
enableParallelBuilding = true;
|
enableParallelBuilding = true;
|
||||||
|
|
||||||
buildInputs = [ postgresql wxGTK libxml2 libxslt openssl ];
|
buildInputs = [ postgresql wxGTK openssl zlib ];
|
||||||
|
|
||||||
preConfigure = ''
|
preConfigure = ''
|
||||||
substituteInPlace pgadmin/ver_svn.sh --replace "bin/bash" "$shell"
|
substituteInPlace pgadmin/ver_svn.sh --replace "bin/bash" "$shell"
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
configureFlags = [
|
||||||
|
"--with-libxml2=${libxml2}"
|
||||||
|
"--with-libxslt=${libxslt}"
|
||||||
|
];
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
description = "PostgreSQL administration GUI tool";
|
description = "PostgreSQL administration GUI tool";
|
||||||
homepage = http://www.pgadmin.org;
|
homepage = http://www.pgadmin.org;
|
||||||
|
@ -1,36 +1,33 @@
|
|||||||
{ stdenv, fetchFromGitHub, qt4, qmake4Hook }:
|
{ stdenv, fetchurl, qt5 }:
|
||||||
|
|
||||||
let
|
let
|
||||||
version = "1.08.03";
|
version = "1.10.01";
|
||||||
in
|
in
|
||||||
stdenv.mkDerivation {
|
stdenv.mkDerivation {
|
||||||
name = "qtbitcointrader-${version}";
|
name = "qtbitcointrader-${version}";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchurl {
|
||||||
owner = "JulyIGHOR";
|
url = "https://github.com/JulyIGHOR/QtBitcoinTrader/archive/v${version}.tar.gz";
|
||||||
repo = "QtBitcoinTrader";
|
sha256 = "0pgj8rsk9yxvls7yjpzblzbci2vvd0mlf9c7wdbjhwf6qyi7dfi3";
|
||||||
rev = "ee30cf158fa8535f2155a387558d3b8994728c28";
|
|
||||||
sha256 = "0kxb0n11agqid0nyqdspfndm03b8l0nl8x4yx2hsrizs6m5z08h4";
|
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ qt4 ];
|
buildInputs = [ qt5.qtbase qt5.qtmultimedia qt5.qtscript ];
|
||||||
|
|
||||||
nativeBuildHooks = [ qmake4Hook ];
|
|
||||||
|
|
||||||
postUnpack = "sourceRoot=\${sourceRoot}/src";
|
postUnpack = "sourceRoot=\${sourceRoot}/src";
|
||||||
|
|
||||||
preConfigure = ''
|
configurePhase = ''
|
||||||
qmakeFlags="$qmakeFlags \
|
qmake $qmakeFlags \
|
||||||
|
PREFIX=$out \
|
||||||
DESKTOPDIR=$out/share/applications \
|
DESKTOPDIR=$out/share/applications \
|
||||||
ICONDIR=$out/share/pixmaps \
|
ICONDIR=$out/share/pixmaps \
|
||||||
"
|
QtBitcoinTrader_Desktop.pro
|
||||||
'';
|
'';
|
||||||
|
|
||||||
meta = with stdenv.lib;
|
meta = with stdenv.lib;
|
||||||
{ description = "Secure bitcoin trading client";
|
{ description = "Bitcoin trading client";
|
||||||
homepage = https://centrabit.com/;
|
homepage = https://centrabit.com/;
|
||||||
license = licenses.lgpl3;
|
license = licenses.lgpl3;
|
||||||
platforms = qt4.meta.platforms;
|
platforms = qt5.qtbase.meta.platforms;
|
||||||
maintainers = [ maintainers.ehmry ];
|
maintainers = [ maintainers.ehmry ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -1,21 +1,31 @@
|
|||||||
{ stdenv, fetchurl, autoreconfHook, pkgconfig
|
{ stdenv, fetchurl, autoreconfHook, pkgconfig
|
||||||
, libX11, libXinerama, pango, cairo
|
, libX11, libxkbcommon, pango, cairo, glib
|
||||||
|
, libxcb, xcbutil, xcbutilwm, which, git
|
||||||
, libstartup_notification, i3Support ? false, i3
|
, libstartup_notification, i3Support ? false, i3
|
||||||
}:
|
}:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "rofi-${version}";
|
name = "rofi-${version}";
|
||||||
version = "0.15.12";
|
version = "1.0.0";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://github.com/DaveDavenport/rofi/archive/${version}.tar.gz";
|
url = "https://github.com/DaveDavenport/rofi/releases/download/${version}/${name}.tar.xz";
|
||||||
sha256 = "112fgx2awsw1xf1983bmy3jvs33qwyi8qj7j59jqc4gx07nv1rp5";
|
sha256 = "0ard95pjgykafm5ga8lfy7x206f07lrc6kara5s9irlhdgblq2m5";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ autoreconfHook pkgconfig libX11 libXinerama pango
|
preConfigure = ''
|
||||||
cairo libstartup_notification
|
patchShebangs "script"
|
||||||
|
# root not present in build /etc/passwd
|
||||||
|
sed -i 's/~root/~nobody/g' test/helper-expand.c
|
||||||
|
'';
|
||||||
|
|
||||||
|
buildInputs = [ autoreconfHook pkgconfig libX11 libxkbcommon pango
|
||||||
|
cairo libstartup_notification libxcb xcbutil xcbutilwm
|
||||||
|
which git
|
||||||
] ++ stdenv.lib.optional i3Support i3;
|
] ++ stdenv.lib.optional i3Support i3;
|
||||||
|
|
||||||
|
doCheck = true;
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
description = "Window switcher, run dialog and dmenu replacement";
|
description = "Window switcher, run dialog and dmenu replacement";
|
||||||
homepage = https://davedavenport.github.io/rofi;
|
homepage = https://davedavenport.github.io/rofi;
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
{ stdenv, fetchurl, autoconf, automake, gettext, intltool, libtool, pkgconfig,
|
{ stdenv, fetchurl, autoconf, automake, gettext, intltool, libtool, pkgconfig,
|
||||||
libXtst, cheetah, libXScrnSaver,
|
libXtst, cheetah, libXScrnSaver, xorg,
|
||||||
glib, glibmm,
|
glib, glibmm,
|
||||||
gtk, gtkmm,
|
gtk, gtkmm,
|
||||||
atk,
|
atk,
|
||||||
@ -10,11 +10,15 @@
|
|||||||
gdome2, gstreamer, libsigcxx }:
|
gdome2, gstreamer, libsigcxx }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
version = "v1_10_6";
|
version = "1.10.6";
|
||||||
name = "workrave-${version}";
|
name = "workrave-${version}";
|
||||||
|
|
||||||
src = fetchurl {
|
src = let
|
||||||
url = "http://github.com/rcaelers/workrave/archive/${version}.tar.gz";
|
version_ = with stdenv.lib;
|
||||||
|
concatStringsSep "_" (splitString "." version);
|
||||||
|
in fetchurl {
|
||||||
|
name = "${name}.tar.gz";
|
||||||
|
url = "http://github.com/rcaelers/workrave/archive/v${version_}.tar.gz";
|
||||||
sha256 = "0q2p83n33chbqzdcdm7ykfsy73frfi6drxzm4qidxwzpzsxrysgq";
|
sha256 = "0q2p83n33chbqzdcdm7ykfsy73frfi6drxzm4qidxwzpzsxrysgq";
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -23,7 +27,7 @@ stdenv.mkDerivation rec {
|
|||||||
libXScrnSaver
|
libXScrnSaver
|
||||||
|
|
||||||
glib glibmm gtk gtkmm atk pango pangomm cairo cairomm
|
glib glibmm gtk gtkmm atk pango pangomm cairo cairomm
|
||||||
dbus dbus_glib GConf gconfmm gdome2 gstreamer libsigcxx
|
dbus dbus_glib GConf gconfmm gdome2 gstreamer libsigcxx xorg.libICE xorg.libSM
|
||||||
];
|
];
|
||||||
|
|
||||||
preConfigure = "./autogen.sh";
|
preConfigure = "./autogen.sh";
|
||||||
|
@ -4,22 +4,22 @@
|
|||||||
, libXext, libXfixes, libXi, libXrandr, libXrender, libXtst, nspr, nss, pango
|
, libXext, libXfixes, libXi, libXrandr, libXrender, libXtst, nspr, nss, pango
|
||||||
, libudev }:
|
, libudev }:
|
||||||
|
|
||||||
let version = "0.0.1"; in
|
let version = "0.0.3"; in
|
||||||
|
|
||||||
stdenv.mkDerivation {
|
stdenv.mkDerivation {
|
||||||
|
|
||||||
name = "discord-${version}";
|
name = "discord-${version}";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://storage.googleapis.com/discord-developer/test/discord-canary-${version}.tar.gz";
|
url = "https://cdn-canary.discordapp.com/apps/linux/${version}/discord-canary-${version}.tar.gz";
|
||||||
sha256 = "1skmwc84s4xqyc167qrplhy5ah06kwfa3d3rxiwi4c8rc55vdd0g";
|
sha256 = "1k1mnfkcx7183qbdc4qx1anngddqim969cribg9gzc7mixvj17ca";
|
||||||
};
|
};
|
||||||
|
|
||||||
libPath = stdenv.lib.makeLibraryPath [
|
libPath = stdenv.lib.makeLibraryPath [
|
||||||
stdenv.cc.cc alsaLib atk cairo cups dbus expat fontconfig freetype
|
stdenv.cc.cc alsaLib atk cairo cups dbus expat fontconfig freetype
|
||||||
gdk_pixbuf glib gnome.GConf gtk libnotify libX11 libXcomposite
|
gdk_pixbuf glib gnome.GConf gtk libnotify libX11 libXcomposite
|
||||||
libXcursor libXdamage libXext libXfixes libXi libXrandr libXrender
|
libXcursor libXdamage libXext libXfixes libXi libXrandr libXrender
|
||||||
libXtst nspr nss pango libudev
|
libXtst nspr nss pango libudev.out
|
||||||
];
|
];
|
||||||
|
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
@ -35,12 +35,13 @@ stdenv.mkDerivation {
|
|||||||
ln -s $out/DiscordCanary $out/bin/
|
ln -s $out/DiscordCanary $out/bin/
|
||||||
|
|
||||||
# Putting udev in the path won't work :(
|
# Putting udev in the path won't work :(
|
||||||
ln -s ${libudev}/lib/libudev.so.1 $out
|
ln -s ${libudev.out}/lib/libudev.so.1 $out
|
||||||
'';
|
'';
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
description = "All-in-one voice and text chat for gamers that’s free, secure, and works on both your desktop and phone";
|
description = "All-in-one voice and text chat for gamers that’s free, secure, and works on both your desktop and phone";
|
||||||
homepage = "https://discordapp.com/";
|
homepage = "https://discordapp.com/";
|
||||||
|
downloadPage = "https://github.com/crmarsh/discord-linux-bugs";
|
||||||
license = licenses.unfree;
|
license = licenses.unfree;
|
||||||
maintainers = [ maintainers.ldesgoui ];
|
maintainers = [ maintainers.ldesgoui ];
|
||||||
platforms = [ "x86_64-linux" ];
|
platforms = [ "x86_64-linux" ];
|
||||||
|
@ -38,13 +38,8 @@ stdenv.mkDerivation rec {
|
|||||||
mkdir -p $out/{libexec/skype/,bin}
|
mkdir -p $out/{libexec/skype/,bin}
|
||||||
cp -r * $out/libexec/skype/
|
cp -r * $out/libexec/skype/
|
||||||
|
|
||||||
fullPath=
|
|
||||||
for i in $nativeBuildInputs; do
|
|
||||||
fullPath=$fullPath''${fullPath:+:}$i/lib
|
|
||||||
done
|
|
||||||
|
|
||||||
patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
|
patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
|
||||||
--set-rpath "$fullPath" $out/libexec/skype/skype
|
--set-rpath "${lib.makeLibraryPath buildInputs}" $out/libexec/skype/skype
|
||||||
|
|
||||||
cat > $out/bin/skype << EOF
|
cat > $out/bin/skype << EOF
|
||||||
#!${stdenv.shell}
|
#!${stdenv.shell}
|
||||||
|
@ -80,10 +80,9 @@ let
|
|||||||
"CONFIG+=no-server"
|
"CONFIG+=no-server"
|
||||||
];
|
];
|
||||||
|
|
||||||
installPhase = ''
|
NIX_CFLAGS_COMPILE = optional speechdSupport "-I${speechd}/include/speech-dispatcher";
|
||||||
cp scripts/mumble-overlay $out/bin
|
|
||||||
sed -i "s,/usr/lib,$out/lib,g" $out/bin/mumble-overlay
|
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
mkdir -p $out/share/applications
|
mkdir -p $out/share/applications
|
||||||
cp scripts/mumble.desktop $out/share/applications
|
cp scripts/mumble.desktop $out/share/applications
|
||||||
|
|
||||||
@ -108,44 +107,25 @@ let
|
|||||||
};
|
};
|
||||||
|
|
||||||
stableSource = rec {
|
stableSource = rec {
|
||||||
version = "1.2.10";
|
version = "1.2.15";
|
||||||
qtVersion = 4;
|
qtVersion = 4;
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://github.com/mumble-voip/mumble/releases/download/${version}/mumble-${version}.tar.gz";
|
url = "https://github.com/mumble-voip/mumble/releases/download/${version}/mumble-${version}.tar.gz";
|
||||||
sha256 = "012vm0xf84x13414jlsx964c5a1nwnbn41jnspkciajlxxipldn6";
|
sha256 = "1yjywzybgq23ry5s2yihggs13ffrphhwl6rlp6lq79rkwvafa9v5";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
gitSource = rec {
|
gitSource = rec {
|
||||||
version = "1.3.0-git-2015-11-08";
|
version = "1.3.0-git-2016-04-10";
|
||||||
qtVersion = 5;
|
qtVersion = 5;
|
||||||
|
|
||||||
|
# Needs submodules
|
||||||
src = fetchgit {
|
src = fetchgit {
|
||||||
url = "https://github.com/mumble-voip/mumble";
|
url = "https://github.com/mumble-voip/mumble";
|
||||||
rev = "72038f6aa038f5964e2bba5a09d3d391d4680e5f";
|
rev = "0502fa67b036bae9f07a586d9f05a8bf74c24291";
|
||||||
sha256 = "03978b85f7y0bffl8vwkmakjnxxjqapfz3pn0b8zf3b1ppwjy9g4";
|
sha256 = "073v8nway17j1n1lm70x508722b1q3vb6h4fvmcbbma3d22y1h45";
|
||||||
};
|
};
|
||||||
|
|
||||||
# TODO: Remove fetchgit as it requires git
|
|
||||||
/*src = fetchFromGitHub {
|
|
||||||
owner = "mumble-voip";
|
|
||||||
repo = "mumble";
|
|
||||||
rev = "13e494c60beb20748eeb8be126b27e1226d168c8";
|
|
||||||
sha256 = "024my6wzahq16w7fjwrbksgnq98z4jjbdyy615kfyd9yk2qnpl80";
|
|
||||||
};
|
|
||||||
|
|
||||||
theme = fetchFromGitHub {
|
|
||||||
owner = "mumble-voip";
|
|
||||||
repo = "mumble-theme";
|
|
||||||
rev = "16b61d958f131ca85ab0f601d7331601b63d8f30";
|
|
||||||
sha256 = "0rbh825mwlh38j6nv2sran2clkiwvzj430mhvkdvzli9ysjxgsl3";
|
|
||||||
};
|
|
||||||
|
|
||||||
prePatch = ''
|
|
||||||
rmdir themes/Mumble
|
|
||||||
ln -s ${theme} themes/Mumble
|
|
||||||
'';*/
|
|
||||||
};
|
};
|
||||||
in {
|
in {
|
||||||
mumble = client stableSource;
|
mumble = client stableSource;
|
||||||
|
24
pkgs/applications/networking/mumble/overlay.nix
Normal file
24
pkgs/applications/networking/mumble/overlay.nix
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
{ stdenv, lib, which, file, mumble, mumble_i686
|
||||||
|
}:
|
||||||
|
|
||||||
|
let
|
||||||
|
binPath = lib.makeBinPath [ which file ];
|
||||||
|
in stdenv.mkDerivation {
|
||||||
|
name = "mumble-overlay-${mumble.version}";
|
||||||
|
|
||||||
|
inherit (mumble) src;
|
||||||
|
|
||||||
|
phases = [ "unpackPhase" "installPhase" "fixupPhase" ];
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out/lib
|
||||||
|
ln -s ${mumble}/lib/libmumble.so.1.* $out/lib/libmumble.so.1
|
||||||
|
${lib.optionalString (mumble_i686 != null) ''
|
||||||
|
mkdir -p $out/lib32
|
||||||
|
ln -s ${mumble_i686}/lib/libmumble.so.1.* $out/lib32/libmumble.so.1
|
||||||
|
''}
|
||||||
|
install -Dm755 scripts/mumble-overlay $out/bin/mumble-overlay
|
||||||
|
sed -i "s,/usr/lib,$out/lib,g" $out/bin/mumble-overlay
|
||||||
|
sed -i '2iPATH="${binPath}:$PATH"' $out/bin/mumble-overlay
|
||||||
|
'';
|
||||||
|
}
|
@ -2,13 +2,13 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec
|
stdenv.mkDerivation rec
|
||||||
{
|
{
|
||||||
version = "4.4.2";
|
version = "5.0.7";
|
||||||
name = "seafile-client-${version}";
|
name = "seafile-client-${version}";
|
||||||
|
|
||||||
src = fetchurl
|
src = fetchurl
|
||||||
{
|
{
|
||||||
url = "https://github.com/haiwen/seafile-client/archive/v${version}.tar.gz";
|
url = "https://github.com/haiwen/seafile-client/archive/v${version}.tar.gz";
|
||||||
sha256 = "0aj39xiayibxp3vcrwi58pn51h9vcsy2z04q8jm17qadmk9dzyw6";
|
sha256 = "ae6975bc1adf45d09cf9f6332ceac7cf285f8191f6cf50c6291ed45f8cf4ffa5";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ pkgconfig cmake qt4 seafile-shared makeWrapper ];
|
buildInputs = [ pkgconfig cmake qt4 seafile-shared makeWrapper ];
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
{ stdenv, fetchurl }:
|
{ stdenv, fetchurl }:
|
||||||
|
|
||||||
rec {
|
rec {
|
||||||
version = "3.2.1";
|
version = "3.1.2";
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
# signed with key 0048 C8B0 26D4 C96F 0E58 9C2F 6C85 9FB1 4B96 A8C5
|
# signed with key 0048 C8B0 26D4 C96F 0E58 9C2F 6C85 9FB1 4B96 A8C5
|
||||||
url = "mirror://samba/rsync/src/rsync-${version}.tar.gz";
|
url = "mirror://samba/rsync/src/rsync-${version}.tar.gz";
|
||||||
|
43
pkgs/applications/office/beancount/default.nix
Normal file
43
pkgs/applications/office/beancount/default.nix
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
{ stdenv, fetchhg, pkgs, pythonPackages }:
|
||||||
|
|
||||||
|
pythonPackages.buildPythonApplication rec {
|
||||||
|
version = "2016-04-10-b5721f1c6f01bd168a5781652e5e3167f7f8ceb3";
|
||||||
|
name = "beancount-${version}";
|
||||||
|
namePrefix = "";
|
||||||
|
|
||||||
|
src = fetchhg {
|
||||||
|
url = "https://bitbucket.org/blais/beancount";
|
||||||
|
rev = "b5721f1c6f01bd168a5781652e5e3167f7f8ceb3";
|
||||||
|
sha256 = "10nv3p9cix7yp23a9hnq5163rpl8cfs3hv75h90ld57dc24nxzn2";
|
||||||
|
};
|
||||||
|
|
||||||
|
buildInputs = with pythonPackages; [ nose ];
|
||||||
|
|
||||||
|
checkPhase = ''
|
||||||
|
nosetests $out
|
||||||
|
'';
|
||||||
|
|
||||||
|
propagatedBuildInputs = with pythonPackages; [
|
||||||
|
beautifulsoup4
|
||||||
|
bottle
|
||||||
|
chardet
|
||||||
|
dateutil
|
||||||
|
google_api_python_client
|
||||||
|
lxml
|
||||||
|
ply
|
||||||
|
python_magic
|
||||||
|
];
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
homepage = http://furius.ca/beancount/;
|
||||||
|
description = "double-entry bookkeeping computer language";
|
||||||
|
longDescription = ''
|
||||||
|
A double-entry bookkeeping computer language that lets you define
|
||||||
|
financial transaction records in a text file, read them in memory,
|
||||||
|
generate a variety of reports from them, and provides a web interface.
|
||||||
|
'';
|
||||||
|
license = stdenv.lib.licenses.gpl2;
|
||||||
|
maintainers = with stdenv.lib.maintainers; [ matthiasbeyer ];
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
523
pkgs/applications/office/libreoffice/libreoffice-srcs-still.nix
Normal file
523
pkgs/applications/office/libreoffice/libreoffice-srcs-still.nix
Normal file
@ -0,0 +1,523 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
name = "libabw-0.1.1.tar.bz2";
|
||||||
|
md5 = "7a3815b506d064313ba309617b6f5a0b";
|
||||||
|
brief = true;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "commons-codec-1.6-src.tar.gz";
|
||||||
|
md5 = "2e482c7567908d334785ce7d69ddfff7";
|
||||||
|
brief = false;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "commons-httpclient-3.1-src.tar.gz";
|
||||||
|
md5 = "2c9b0f83ed5890af02c0df1c1776f39b";
|
||||||
|
brief = false;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "commons-lang-2.4-src.tar.gz";
|
||||||
|
md5 = "625ff5f2f968dd908bca43c9469d6e6b";
|
||||||
|
brief = false;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "commons-logging-1.2-src.tar.gz";
|
||||||
|
md5 = "ce977548f1cbf46918e93cd38ac35163";
|
||||||
|
brief = true;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "apr-1.4.8.tar.gz";
|
||||||
|
md5 = "eff9d741b0999a9bbab96862dd2a2a3d";
|
||||||
|
brief = true;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "apr-util-1.5.3.tar.gz";
|
||||||
|
md5 = "71a11d037240b292f824ba1eb537b4e3";
|
||||||
|
brief = true;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "boost_1_55_0.tar.bz2";
|
||||||
|
md5 = "d6eef4b4cacb2183f2bf265a5a03a354";
|
||||||
|
brief = false;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "bsh-2.0b5-src.zip";
|
||||||
|
md5 = "ec1941a74d3ef513c4ce57a9092b74e1";
|
||||||
|
brief = false;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "cairo-1.10.2.tar.gz";
|
||||||
|
md5 = "f101a9e88b783337b20b2e26dfd26d5f";
|
||||||
|
brief = false;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "libcdr-0.1.1.tar.bz2";
|
||||||
|
md5 = "b33fd0be3befdd1b37777e08ce058bd9";
|
||||||
|
brief = true;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "clucene-core-2.3.3.4.tar.gz";
|
||||||
|
md5 = "48d647fbd8ef8889e5a7f422c1bfda94";
|
||||||
|
brief = false;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "libcmis-0.5.0.tar.gz";
|
||||||
|
md5 = "5821b806a98e6c38370970e682ce76e8";
|
||||||
|
brief = false;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "CoinMP-1.7.6.tgz";
|
||||||
|
md5 = "1cce53bf4b40ae29790d2c5c9f8b1129";
|
||||||
|
brief = true;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "collada2gltf-master-cb1d97788a.tar.bz2";
|
||||||
|
md5 = "4b87018f7fff1d054939d19920b751a0";
|
||||||
|
brief = false;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "cppunit-1.13.2.tar.gz";
|
||||||
|
md5 = "d1c6bdd5a76c66d2c38331e2d287bc01";
|
||||||
|
brief = true;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "converttexttonumber-1-5-0.oxt";
|
||||||
|
md5 = "1f467e5bb703f12cbbb09d5cf67ecf4a";
|
||||||
|
brief = false;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "curl-7.43.0.tar.bz2";
|
||||||
|
md5 = "11bddbb452a8b766b932f859aaeeed39";
|
||||||
|
brief = true;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "libe-book-0.1.2.tar.bz2";
|
||||||
|
md5 = "6b48eda57914e6343efebc9381027b78";
|
||||||
|
brief = true;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "epm-3.7.tar.gz";
|
||||||
|
md5 = "3ade8cfe7e59ca8e65052644fed9fca4";
|
||||||
|
brief = false;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "libetonyek-0.1.3.tar.bz2";
|
||||||
|
md5 = "e5947373dd7834f27e93f1636faa419f";
|
||||||
|
brief = true;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "expat-2.1.0.tar.gz";
|
||||||
|
md5 = "dd7dab7a5fea97d2a6a43f511449b7cd";
|
||||||
|
brief = false;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "Firebird-2.5.2.26540-0.tar.bz2";
|
||||||
|
md5 = "21154d2004e025c8a3666625b0357bb5";
|
||||||
|
brief = true;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "fontconfig-2.8.0.tar.gz";
|
||||||
|
md5 = "77e15a92006ddc2adbb06f840d591c0e";
|
||||||
|
brief = false;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "crosextrafonts-20130214.tar.gz";
|
||||||
|
md5 = "368f114c078f94214a308a74c7e991bc";
|
||||||
|
brief = false;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "crosextrafonts-carlito-20130920.tar.gz";
|
||||||
|
md5 = "c74b7223abe75949b4af367942d96c7a";
|
||||||
|
brief = false;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "dejavu-fonts-ttf-2.34.zip";
|
||||||
|
md5 = "a4e565e220b5de082c23995e256e3c12";
|
||||||
|
brief = false;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "gentiumbasic-fonts-1.10.zip";
|
||||||
|
md5 = "35efabc239af896dfb79be7ebdd6e6b9";
|
||||||
|
brief = false;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "liberation-fonts-ttf-1.07.4.tar.gz";
|
||||||
|
md5 = "134d8262145fc793c6af494dcace3e71";
|
||||||
|
brief = false;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "liberation-fonts-ttf-2.00.1.tar.gz";
|
||||||
|
md5 = "5c781723a0d9ed6188960defba8e91cf";
|
||||||
|
brief = false;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "LinLibertineG-20120116.zip";
|
||||||
|
md5 = "e7a384790b13c29113e22e596ade9687";
|
||||||
|
brief = false;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "open-sans-font-ttf-1.10.tar.gz";
|
||||||
|
md5 = "7a15edea7d415ac5150ea403e27401fd";
|
||||||
|
brief = false;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "pt-serif-font-1.0000W.tar.gz";
|
||||||
|
md5 = "c3c1a8ba7452950636e871d25020ce0d";
|
||||||
|
brief = false;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "source-code-font-1.009.tar.gz";
|
||||||
|
md5 = "0279a21fab6f245e85a6f85fea54f511";
|
||||||
|
brief = false;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "source-sans-pro-2.010R-ro-1.065R-it.tar.gz";
|
||||||
|
md5 = "edc4d741888bc0d38e32dbaa17149596";
|
||||||
|
brief = false;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "libfreehand-0.1.1.tar.bz2";
|
||||||
|
md5 = "8cf70c5dc4d24d2dc4a107f509d2d6d7";
|
||||||
|
brief = true;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "freetype-2.4.8.tar.bz2";
|
||||||
|
md5 = "dbf2caca1d3afd410a29217a9809d397";
|
||||||
|
brief = false;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "glew-1.10.0.zip";
|
||||||
|
md5 = "594eb47b4b1210e25438d51825404d5a";
|
||||||
|
brief = false;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "glm-0.9.4.6-libreoffice.zip";
|
||||||
|
md5 = "bae83fa5dc7f081768daace6e199adc3";
|
||||||
|
brief = false;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "graphite2-1.2.4.tgz";
|
||||||
|
md5 = "2ef839348fe28e3b923bf8cced440227";
|
||||||
|
brief = true;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "harfbuzz-0.9.40.tar.bz2";
|
||||||
|
md5 = "0e27e531f4c4acff601ebff0957755c2";
|
||||||
|
brief = true;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "hsqldb_1_8_0.zip";
|
||||||
|
md5 = "17410483b5b5f267aa18b7e00b65e6e0";
|
||||||
|
brief = false;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "hunspell-1.3.3.tar.gz";
|
||||||
|
md5 = "4967da60b23413604c9e563beacc63b4";
|
||||||
|
brief = false;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "hyphen-2.8.8.tar.gz";
|
||||||
|
md5 = "5ade6ae2a99bc1e9e57031ca88d36dad";
|
||||||
|
brief = false;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "icu4c-54_1-src.tgz";
|
||||||
|
md5 = "e844caed8f2ca24c088505b0d6271bc0";
|
||||||
|
brief = false;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "flow-engine-0.9.4.zip";
|
||||||
|
md5 = "ba2930200c9f019c2d93a8c88c651a0f";
|
||||||
|
brief = false;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "flute-1.1.6.zip";
|
||||||
|
md5 = "d8bd5eed178db6e2b18eeed243f85aa8";
|
||||||
|
brief = false;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "libbase-1.1.6.zip";
|
||||||
|
md5 = "eeb2c7ddf0d302fba4bfc6e97eac9624";
|
||||||
|
brief = false;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "libfonts-1.1.6.zip";
|
||||||
|
md5 = "3bdf40c0d199af31923e900d082ca2dd";
|
||||||
|
brief = false;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "libformula-1.1.7.zip";
|
||||||
|
md5 = "3404ab6b1792ae5f16bbd603bd1e1d03";
|
||||||
|
brief = false;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "liblayout-0.2.10.zip";
|
||||||
|
md5 = "db60e4fde8dd6d6807523deb71ee34dc";
|
||||||
|
brief = false;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "libloader-1.1.6.zip";
|
||||||
|
md5 = "97b2d4dba862397f446b217e2b623e71";
|
||||||
|
brief = false;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "librepository-1.1.6.zip";
|
||||||
|
md5 = "8ce2fcd72becf06c41f7201d15373ed9";
|
||||||
|
brief = false;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "libserializer-1.1.6.zip";
|
||||||
|
md5 = "f94d9870737518e3b597f9265f4e9803";
|
||||||
|
brief = false;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "libxml-1.1.7.zip";
|
||||||
|
md5 = "ace6ab49184e329db254e454a010f56d";
|
||||||
|
brief = false;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "sacjava-1.3.zip";
|
||||||
|
md5 = "39bb3fcea1514f1369fcfc87542390fd";
|
||||||
|
brief = false;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "jpegsrc.v9a.tar.gz";
|
||||||
|
md5 = "3353992aecaee1805ef4109aadd433e7";
|
||||||
|
brief = true;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "libjpeg-turbo-1.3.1.tar.gz";
|
||||||
|
md5 = "2c3a68129dac443a72815ff5bb374b05";
|
||||||
|
brief = true;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "language-subtag-registry-2015-08-04.tar.bz2";
|
||||||
|
md5 = "bf5986dbfa1c9a0f26cf1b00ed369484";
|
||||||
|
brief = true;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "JLanguageTool-1.7.0.tar.bz2";
|
||||||
|
md5 = "b63e6340a02ff1cacfeadb2c42286161";
|
||||||
|
brief = false;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "lcms2-2.6.tar.gz";
|
||||||
|
md5 = "f4c08d38ceade4a664ebff7228910a33";
|
||||||
|
brief = true;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "libatomic_ops-7_2d.zip";
|
||||||
|
md5 = "c0b86562d5aa40761a87134f83e6adcf";
|
||||||
|
brief = true;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "libeot-0.01.tar.bz2";
|
||||||
|
md5 = "aa24f5dd2a2992f4a116aa72af817548";
|
||||||
|
brief = true;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "libexttextcat-3.4.4.tar.bz2";
|
||||||
|
md5 = "10d61fbaa6a06348823651b1bd7940fe";
|
||||||
|
brief = false;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "libgltf-0.0.2.tar.bz2";
|
||||||
|
md5 = "d63a9f47ab048f5009d90693d6aa6424";
|
||||||
|
brief = true;
|
||||||
|
subDir = "libgltf/";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "liblangtag-0.5.1.tar.bz2";
|
||||||
|
md5 = "36271d3fa0d9dec1632029b6d7aac925";
|
||||||
|
brief = false;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "xmlsec1-1.2.14.tar.gz";
|
||||||
|
md5 = "1f24ab1d39f4a51faf22244c94a6203f";
|
||||||
|
brief = false;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "libxml2-2.9.3.tar.gz";
|
||||||
|
md5 = "daece17e045f1c107610e137ab50c179";
|
||||||
|
brief = false;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "libxslt-1.1.28.tar.gz";
|
||||||
|
md5 = "9667bf6f9310b957254fdcf6596600b7";
|
||||||
|
brief = false;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "lp_solve_5.5.tar.gz";
|
||||||
|
md5 = "26b3e95ddf3d9c077c480ea45874b3b8";
|
||||||
|
brief = false;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "mariadb_client-2.0.0-src.tar.gz";
|
||||||
|
md5 = "a233181e03d3c307668b4c722d881661";
|
||||||
|
brief = false;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "mdds_0.12.1.tar.bz2";
|
||||||
|
md5 = "ef2560ed5416652a7fe195305b14cebe";
|
||||||
|
brief = true;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "libmspub-0.1.2.tar.bz2";
|
||||||
|
md5 = "ff9d0f9dd8fbc523408ea1953d5bde41";
|
||||||
|
brief = true;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "libmwaw-0.3.5.tar.bz2";
|
||||||
|
md5 = "bdc58bbf89aaaf6d29b3516d96830a06";
|
||||||
|
brief = true;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "mysql-connector-c++-1.1.4.tar.gz";
|
||||||
|
md5 = "7239a4430efd4d0189c4f24df67f08e5";
|
||||||
|
brief = false;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "mythes-1.2.4.tar.gz";
|
||||||
|
md5 = "a8c2c5b8f09e7ede322d5c602ff6a4b6";
|
||||||
|
brief = false;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "neon-0.29.5.tar.gz";
|
||||||
|
md5 = "ff369e69ef0f0143beb5626164e87ae2";
|
||||||
|
brief = false;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "nss-3.19.4-with-nspr-4.10.10.tar.gz";
|
||||||
|
md5 = "478e0e90ebc4a90159549e77021021fd";
|
||||||
|
brief = false;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "libodfgen-0.1.4.tar.bz2";
|
||||||
|
md5 = "8716be5c22ae8353f9aaa380d74840dc";
|
||||||
|
brief = true;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "OpenCOLLADA-master-6509aa13af.tar.bz2";
|
||||||
|
md5 = "4ca8a6ef0afeefc864e9ef21b9f14bd6";
|
||||||
|
brief = true;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "openldap-2.4.31.tgz";
|
||||||
|
md5 = "804c6cb5698db30b75ad0ff1c25baefd";
|
||||||
|
brief = false;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "openssl-1.0.2a.tar.gz";
|
||||||
|
md5 = "a06c547dac9044161a477211049f60ef";
|
||||||
|
brief = true;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "liborcus-0.7.0.tar.bz2";
|
||||||
|
md5 = "7681383be6ce489d84c1c74f4e7f9643";
|
||||||
|
brief = false;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "libpagemaker-0.0.2.tar.bz2";
|
||||||
|
md5 = "795cc7a59ace4db2b12586971d668671";
|
||||||
|
brief = true;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "pixman-0.24.4.tar.bz2";
|
||||||
|
md5 = "c63f411b3ad147db2bcce1bf262a0e02";
|
||||||
|
brief = false;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "libpng-1.5.24.tar.gz";
|
||||||
|
md5 = "6652e428d1d3fc3c6cb1362159b1cf3b";
|
||||||
|
brief = true;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "poppler-0.26.4.tar.gz";
|
||||||
|
md5 = "35c0660065d023365e9854c13e289d12";
|
||||||
|
brief = true;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "postgresql-9.2.1.tar.bz2";
|
||||||
|
md5 = "c0b4799ea9850eae3ead14f0a60e9418";
|
||||||
|
brief = false;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "Python-3.3.5.tgz";
|
||||||
|
md5 = "803a75927f8f241ca78633890c798021";
|
||||||
|
brief = true;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "raptor2-2.0.9.tar.gz";
|
||||||
|
md5 = "4ceb9316488b0ea01acf011023cf7fff";
|
||||||
|
brief = false;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "rasqal-0.9.30.tar.gz";
|
||||||
|
md5 = "b12c5f9cfdb6b04efce5a4a186b8416b";
|
||||||
|
brief = false;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "redland-1.0.16.tar.gz";
|
||||||
|
md5 = "32f8e1417a64d3c6f2c727f9053f55ea";
|
||||||
|
brief = false;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "librevenge-0.0.2.tar.bz2";
|
||||||
|
md5 = "2d4183bf17aea1a71842468a71a68c47";
|
||||||
|
brief = true;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "rhino1_5R5.zip";
|
||||||
|
md5 = "798b2ffdc8bcfe7bca2cf92b62caf685";
|
||||||
|
brief = false;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "serf-1.2.1.tar.bz2";
|
||||||
|
md5 = "4f8e76c9c6567aee1d66aba49f76a58b";
|
||||||
|
brief = true;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "swingExSrc.zip";
|
||||||
|
md5 = "35c94d2df8893241173de1d16b6034c0";
|
||||||
|
brief = false;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "ucpp-1.3.2.tar.gz";
|
||||||
|
md5 = "0168229624cfac409e766913506961a8";
|
||||||
|
brief = false;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "vigra1.6.0.tar.gz";
|
||||||
|
md5 = "d62650a6f908e85643e557a236ea989c";
|
||||||
|
brief = false;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "libvisio-0.1.1.tar.bz2";
|
||||||
|
md5 = "726c1f5be65eb7d649e0d48b63d920e7";
|
||||||
|
brief = true;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "libwpd-0.10.0.tar.bz2";
|
||||||
|
md5 = "0773d79a1f240ef9f4f20242b13c5bb7";
|
||||||
|
brief = true;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "libwpg-0.3.0.tar.bz2";
|
||||||
|
md5 = "17da9770cb8b317b7633f9807b32b71a";
|
||||||
|
brief = true;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "libwps-0.4.0.tar.bz2";
|
||||||
|
md5 = "e9162d2566421d9d71b3ad2377a68fd5";
|
||||||
|
brief = true;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "xsltml_2.1.2.zip";
|
||||||
|
md5 = "a7983f859eafb2677d7ff386a023bc40";
|
||||||
|
brief = false;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "zlib-1.2.8.tar.gz";
|
||||||
|
md5 = "44d667c142d7cda120332623eab69f40";
|
||||||
|
brief = true;
|
||||||
|
}
|
||||||
|
]
|
255
pkgs/applications/office/libreoffice/still.nix
Normal file
255
pkgs/applications/office/libreoffice/still.nix
Normal file
@ -0,0 +1,255 @@
|
|||||||
|
{ stdenv, fetchurl, pam, python3, tcsh, libxslt, perl, ArchiveZip
|
||||||
|
, CompressZlib, zlib, libjpeg, expat, pkgconfigUpstream, freetype, libwpd
|
||||||
|
, libxml2, db, sablotron, curl, fontconfig, libsndfile, neon
|
||||||
|
, bison, flex, zip, unzip, gtk3, gtk, libmspack, getopt, file, cairo, which
|
||||||
|
, icu, boost, jdk, ant, cups, xorg, libcmis
|
||||||
|
, openssl, gperf, cppunit, GConf, ORBit2, poppler
|
||||||
|
, librsvg, gnome_vfs, mesa, bsh, CoinMP, libwps, libabw
|
||||||
|
, autoconf, automake, openldap, bash, hunspell, librdf_redland, nss, nspr
|
||||||
|
, libwpg, dbus_glib, glibc, qt4, kde4, clucene_core, libcdr, lcms, vigra
|
||||||
|
, unixODBC, mdds, sane-backends, mythes, libexttextcat, libvisio
|
||||||
|
, fontsConf, pkgconfig, libzip, bluez5, libtool, maven
|
||||||
|
, libatomic_ops, graphite2, harfbuzz, libodfgen
|
||||||
|
, librevenge, libe-book, libmwaw, glm, glew, gst_all_1
|
||||||
|
, gdb, commonsLogging, librdf_rasqal, makeWrapper, gsettings_desktop_schemas
|
||||||
|
, defaultIconTheme, glib, ncurses
|
||||||
|
, langs ? [ "en-US" "en-GB" "ca" "ru" "eo" "fr" "nl" "de" "sl" "pl" ]
|
||||||
|
, withHelp ? true
|
||||||
|
, kdeIntegration ? false
|
||||||
|
}:
|
||||||
|
|
||||||
|
let
|
||||||
|
lib = stdenv.lib;
|
||||||
|
langsSpaces = lib.concatStringsSep " " langs;
|
||||||
|
major = "5";
|
||||||
|
minor = "0";
|
||||||
|
patch = "5";
|
||||||
|
tweak = "2";
|
||||||
|
subdir = "${major}.${minor}.${patch}";
|
||||||
|
version = "${subdir}${if tweak == "" then "" else "."}${tweak}";
|
||||||
|
|
||||||
|
fetchThirdParty = {name, md5, brief, subDir ? ""}: fetchurl {
|
||||||
|
inherit name md5;
|
||||||
|
url = if brief then
|
||||||
|
"http://dev-www.libreoffice.org/src/${subDir}${name}"
|
||||||
|
else
|
||||||
|
"http://dev-www.libreoffice.org/src/${subDir}${md5}-${name}";
|
||||||
|
};
|
||||||
|
|
||||||
|
fetchSrc = {name, sha256}: fetchurl {
|
||||||
|
url = "http://download.documentfoundation.org/libreoffice/src/${subdir}/libreoffice-${name}-${version}.tar.xz";
|
||||||
|
inherit sha256;
|
||||||
|
};
|
||||||
|
|
||||||
|
srcs = {
|
||||||
|
third_party = [ (fetchurl rec {
|
||||||
|
url = "http://dev-www.libreoffice.org/extern/${md5}-${name}";
|
||||||
|
md5 = "185d60944ea767075d27247c3162b3bc";
|
||||||
|
name = "unowinreg.dll";
|
||||||
|
}) ] ++ (map fetchThirdParty (import ./libreoffice-srcs-still.nix));
|
||||||
|
|
||||||
|
translations = fetchSrc {
|
||||||
|
name = "translations";
|
||||||
|
sha256 = "13cbfiqaycy8cxji5jfwfbgar8l4fzhg3aaggavsrwsmbvrqpbb7";
|
||||||
|
};
|
||||||
|
|
||||||
|
# TODO: dictionaries
|
||||||
|
|
||||||
|
help = fetchSrc {
|
||||||
|
name = "help";
|
||||||
|
sha256 = "0an081aj63hfhxv0k8h92vly0rnglbcpqax2pinybryk4dnljr36";
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
in stdenv.mkDerivation rec {
|
||||||
|
name = "libreoffice-${version}";
|
||||||
|
|
||||||
|
src = fetchurl {
|
||||||
|
url = "http://download.documentfoundation.org/libreoffice/src/${subdir}/libreoffice-${version}.tar.xz";
|
||||||
|
sha256 = "120vcxpxzs0za76fyfry281ysv6d1ianb37d1yq8py8chkdjkrqy";
|
||||||
|
};
|
||||||
|
|
||||||
|
# Openoffice will open libcups dynamically, so we link it directly
|
||||||
|
# to make its dlopen work.
|
||||||
|
# It also seems not to mention libdl explicitly in some places.
|
||||||
|
NIX_LDFLAGS = "-lcups -ldl";
|
||||||
|
|
||||||
|
# For some reason librdf_redland sometimes refers to rasqal.h instead
|
||||||
|
# of rasqal/rasqal.h
|
||||||
|
NIX_CFLAGS_COMPILE="-I${librdf_rasqal}/include/rasqal";
|
||||||
|
|
||||||
|
# If we call 'configure', 'make' will then call configure again without parameters.
|
||||||
|
# It's their system.
|
||||||
|
configureScript = "./autogen.sh";
|
||||||
|
dontUseCmakeConfigure = true;
|
||||||
|
|
||||||
|
postUnpack = ''
|
||||||
|
mkdir -v $sourceRoot/src
|
||||||
|
'' + (stdenv.lib.concatMapStrings (f: "ln -sfv ${f} $sourceRoot/src/${f.outputHash}-${f.name}\nln -sfv ${f} $sourceRoot/src/${f.name}\n") srcs.third_party)
|
||||||
|
+ ''
|
||||||
|
ln -sv ${srcs.help} $sourceRoot/src/${srcs.help.name}
|
||||||
|
ln -svf ${srcs.translations} $sourceRoot/src/${srcs.translations.name}
|
||||||
|
'';
|
||||||
|
|
||||||
|
QT4DIR = qt4;
|
||||||
|
|
||||||
|
# Fix boost 1.59 compat
|
||||||
|
# Try removing in the next version
|
||||||
|
CPPFLAGS = "-DBOOST_ERROR_CODE_HEADER_ONLY -DBOOST_SYSTEM_NO_DEPRECATED";
|
||||||
|
|
||||||
|
preConfigure = ''
|
||||||
|
configureFlagsArray=(
|
||||||
|
"--with-parallelism=$NIX_BUILD_CORES"
|
||||||
|
"--with-lang=${langsSpaces}"
|
||||||
|
);
|
||||||
|
|
||||||
|
chmod a+x ./bin/unpack-sources
|
||||||
|
patchShebangs .
|
||||||
|
# It is used only as an indicator of the proper current directory
|
||||||
|
touch solenv/inc/target.mk
|
||||||
|
|
||||||
|
# BLFS patch for Glibc 2.23 renaming isnan
|
||||||
|
sed -ire "s@isnan@std::&@g" xmloff/source/draw/ximp3dscene.cxx
|
||||||
|
'';
|
||||||
|
|
||||||
|
# fetch_Download_item tries to interpret the name as a variable name
|
||||||
|
# Let it do so…
|
||||||
|
postConfigure = ''
|
||||||
|
sed -e '1ilibreoffice-translations-${version}.tar.xz=libreoffice-translations-${version}.tar.xz' -i Makefile
|
||||||
|
sed -e '1ilibreoffice-help-${version}.tar.xz=libreoffice-help-${version}.tar.xz' -i Makefile
|
||||||
|
|
||||||
|
# unit test sd_tiledrendering seems to be fragile
|
||||||
|
# http://nabble.documentfoundation.org/libreoffice-5-0-failure-in-CUT-libreofficekit-tiledrendering-td4150319.html
|
||||||
|
echo > ./sd/CppunitTest_sd_tiledrendering.mk
|
||||||
|
sed -e /CppunitTest_sd_tiledrendering/d -i sd/Module_sd.mk
|
||||||
|
# one more fragile test?
|
||||||
|
sed -e '/CPPUNIT_TEST(testTdf96536);/d' -i sw/qa/extras/uiwriter/uiwriter.cxx
|
||||||
|
'';
|
||||||
|
|
||||||
|
makeFlags = "SHELL=${bash}/bin/bash";
|
||||||
|
|
||||||
|
enableParallelBuilding = true;
|
||||||
|
|
||||||
|
buildPhase = ''
|
||||||
|
# This is required as some cppunittests require fontconfig configured
|
||||||
|
export FONTCONFIG_FILE=${fontsConf}
|
||||||
|
|
||||||
|
# This to avoid using /lib:/usr/lib at linking
|
||||||
|
sed -i '/gb_LinkTarget_LDFLAGS/{ n; /rpath-link/d;}' solenv/gbuild/platform/unxgcc.mk
|
||||||
|
|
||||||
|
find -name "*.cmd" -exec sed -i s,/lib:/usr/lib,, {} \;
|
||||||
|
|
||||||
|
make
|
||||||
|
'';
|
||||||
|
|
||||||
|
# It installs only things to $out/lib/libreoffice
|
||||||
|
postInstall = ''
|
||||||
|
mkdir -p $out/bin $out/share/desktop
|
||||||
|
|
||||||
|
mkdir -p "$out/share/gsettings-schemas/collected-for-libreoffice/glib-2.0/schemas/"
|
||||||
|
|
||||||
|
for a in sbase scalc sdraw smath swriter spadmin simpress soffice; do
|
||||||
|
ln -s $out/lib/libreoffice/program/$a $out/bin/$a
|
||||||
|
wrapProgram "$out/bin/$a" \
|
||||||
|
--prefix XDG_DATA_DIRS : \
|
||||||
|
"$out/share:$GSETTINGS_SCHEMAS_PATH" \
|
||||||
|
;
|
||||||
|
done
|
||||||
|
|
||||||
|
ln -s $out/bin/soffice $out/bin/libreoffice
|
||||||
|
ln -s $out/lib/libreoffice/share/xdg $out/share/applications
|
||||||
|
|
||||||
|
for f in $out/share/applications/*.desktop; do
|
||||||
|
substituteInPlace "$f" --replace "Exec=libreofficedev${major}.${minor}" "Exec=libreoffice"
|
||||||
|
substituteInPlace "$f" --replace "Exec=libreoffice${major}.${minor}" "Exec=libreoffice"
|
||||||
|
substituteInPlace "$f" --replace "Exec=libreoffice" "Exec=libreoffice"
|
||||||
|
done
|
||||||
|
|
||||||
|
cp -r sysui/desktop/icons "$out/share"
|
||||||
|
sed -re 's@Icon=libreofficedev[0-9.]*-?@Icon=@' -i "$out/share/applications/"*.desktop
|
||||||
|
'';
|
||||||
|
|
||||||
|
configureFlags = [
|
||||||
|
"${if withHelp then "" else "--without-help"}"
|
||||||
|
"--with-boost=${boost.dev}"
|
||||||
|
"--with-boost-libdir=${boost.lib}/lib"
|
||||||
|
"--with-beanshell-jar=${bsh}"
|
||||||
|
"--with-vendor=NixOS"
|
||||||
|
"--with-commons-logging-jar=${commonsLogging}/share/java/commons-logging-1.2.jar"
|
||||||
|
"--disable-report-builder"
|
||||||
|
"--enable-python=system"
|
||||||
|
"--enable-dbus"
|
||||||
|
(lib.enableFeature kdeIntegration "kde4")
|
||||||
|
"--with-package-format=installed"
|
||||||
|
"--enable-epm"
|
||||||
|
"--with-jdk-home=${jdk.home}"
|
||||||
|
"--with-ant-home=${ant}/lib/ant"
|
||||||
|
"--with-system-cairo"
|
||||||
|
"--with-system-libs"
|
||||||
|
"--with-system-headers"
|
||||||
|
"--with-system-openssl"
|
||||||
|
"--with-system-libabw"
|
||||||
|
"--with-system-libcmis"
|
||||||
|
"--with-system-libwps"
|
||||||
|
"--with-system-openldap"
|
||||||
|
"--with-system-coinmp"
|
||||||
|
|
||||||
|
# Without these, configure does not finish
|
||||||
|
"--without-junit"
|
||||||
|
|
||||||
|
# I imagine this helps. Copied from go-oo.
|
||||||
|
# Modified on every upgrade, though
|
||||||
|
"--disable-odk"
|
||||||
|
"--disable-postgresql-sdbc"
|
||||||
|
"--disable-firebird-sdbc"
|
||||||
|
"--without-fonts"
|
||||||
|
"--without-myspell-dicts"
|
||||||
|
"--without-doxygen"
|
||||||
|
|
||||||
|
# TODO: package these as system libraries
|
||||||
|
"--with-system-beanshell"
|
||||||
|
"--without-system-hsqldb"
|
||||||
|
"--without-system-altlinuxhyph"
|
||||||
|
"--without-system-lpsolve"
|
||||||
|
"--without-system-npapi-headers"
|
||||||
|
"--without-system-libetonyek"
|
||||||
|
"--without-system-libfreehand"
|
||||||
|
"--without-system-liblangtag"
|
||||||
|
"--without-system-libmspub"
|
||||||
|
"--without-system-libpagemaker"
|
||||||
|
"--without-system-libgltf"
|
||||||
|
# https://github.com/NixOS/nixpkgs/commit/5c5362427a3fa9aefccfca9e531492a8735d4e6f
|
||||||
|
"--without-system-orcus"
|
||||||
|
];
|
||||||
|
|
||||||
|
checkPhase = ''
|
||||||
|
make unitcheck
|
||||||
|
make slowcheck
|
||||||
|
'';
|
||||||
|
|
||||||
|
buildInputs = with xorg;
|
||||||
|
[ ant ArchiveZip autoconf automake bison boost cairo clucene_core
|
||||||
|
CompressZlib cppunit cups curl db dbus_glib expat file flex fontconfig
|
||||||
|
freetype GConf getopt gnome_vfs gperf gtk3 gtk
|
||||||
|
hunspell icu jdk lcms libcdr libexttextcat unixODBC libjpeg
|
||||||
|
libmspack librdf_redland librsvg libsndfile libvisio libwpd libwpg libX11
|
||||||
|
libXaw libXext libXi libXinerama libxml2 libxslt libXtst
|
||||||
|
libXdmcp libpthreadstubs mesa mythes gst_all_1.gstreamer
|
||||||
|
gst_all_1.gst-plugins-base gsettings_desktop_schemas glib
|
||||||
|
neon nspr nss openldap openssl ORBit2 pam perl pkgconfig poppler
|
||||||
|
python3 sablotron sane-backends tcsh unzip vigra which zip zlib
|
||||||
|
mdds bluez5 glibc libcmis libwps libabw
|
||||||
|
libxshmfence libatomic_ops graphite2 harfbuzz
|
||||||
|
librevenge libe-book libmwaw glm glew ncurses
|
||||||
|
libodfgen CoinMP librdf_rasqal defaultIconTheme makeWrapper
|
||||||
|
]
|
||||||
|
++ lib.optional kdeIntegration kde4.kdelibs;
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
description = "Comprehensive, professional-quality productivity suite (Still/stable release)";
|
||||||
|
homepage = http://libreoffice.org/;
|
||||||
|
license = licenses.lgpl3;
|
||||||
|
maintainers = with maintainers; [ viric raskin ];
|
||||||
|
platforms = platforms.linux;
|
||||||
|
};
|
||||||
|
}
|
@ -15,6 +15,7 @@ stdenv.mkDerivation {
|
|||||||
'';
|
'';
|
||||||
|
|
||||||
preInstall = ''
|
preInstall = ''
|
||||||
|
rm -f INSTALL
|
||||||
mkdir -p $out/bin
|
mkdir -p $out/bin
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
, ApplicationServices, cf-private }:
|
, ApplicationServices, cf-private }:
|
||||||
|
|
||||||
let
|
let
|
||||||
|
# if you bump version, update pkgs.tortoisehg too or ping maintainer
|
||||||
version = "3.7.3";
|
version = "3.7.3";
|
||||||
name = "mercurial-${version}";
|
name = "mercurial-${version}";
|
||||||
in
|
in
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{ stdenv, fetchdarcs, rustUnstable, openssl, libssh }:
|
{ stdenv, fetchdarcs, rustPlatform, openssl, libssh }:
|
||||||
|
|
||||||
with rustUnstable;
|
with rustPlatform;
|
||||||
|
|
||||||
buildRustPackage rec {
|
buildRustPackage rec {
|
||||||
name = "pijul-${version}";
|
name = "pijul-${version}";
|
||||||
|
@ -2,12 +2,11 @@
|
|||||||
|
|
||||||
pythonPackages.buildPythonApplication rec {
|
pythonPackages.buildPythonApplication rec {
|
||||||
name = "tortoisehg-${version}";
|
name = "tortoisehg-${version}";
|
||||||
version = "3.7.1";
|
version = "3.7.3";
|
||||||
namePrefix = "";
|
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://bitbucket.org/tortoisehg/targz/downloads/${name}.tar.gz";
|
url = "https://bitbucket.org/tortoisehg/targz/downloads/${name}.tar.gz";
|
||||||
sha256 = "1ycf8knwk1rs99s5caq611sk4c4nzwyzq8g35hw5kwj15b6dl4k6";
|
sha256 = "1vahiavpkf9ib2mx8z5i6f0kh072zycazmbrc4sl94p5pvv5w1dh";
|
||||||
};
|
};
|
||||||
|
|
||||||
pythonPath = with pythonPackages; [ pyqt4 mercurial qscintilla iniparse ];
|
pythonPath = with pythonPackages; [ pyqt4 mercurial qscintilla iniparse ];
|
||||||
@ -15,13 +14,10 @@ pythonPackages.buildPythonApplication rec {
|
|||||||
propagatedBuildInputs = with pythonPackages; [ qscintilla iniparse ];
|
propagatedBuildInputs = with pythonPackages; [ qscintilla iniparse ];
|
||||||
|
|
||||||
doCheck = false;
|
doCheck = false;
|
||||||
|
dontStrip = true;
|
||||||
postUnpack = ''
|
buildPhase = "";
|
||||||
substituteInPlace $sourceRoot/setup.py \
|
installPhase = ''
|
||||||
--replace "sharedir = os.path.join(installcmd.install_data[rootlen:], 'share')" "sharedir = '$out/share/'"
|
${pythonPackages.python.executable} setup.py install --prefix=$out
|
||||||
'';
|
|
||||||
|
|
||||||
postInstall = ''
|
|
||||||
ln -s $out/bin/thg $out/bin/tortoisehg #convenient alias
|
ln -s $out/bin/thg $out/bin/tortoisehg #convenient alias
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
@ -1,10 +1,12 @@
|
|||||||
{ stdenv, fetchurl, writeScript, cdrtools, dvdauthor, ffmpeg, imagemagick, lame, mjpegtools, sox, transcode, vorbis-tools }:
|
{ stdenv, lib, fetchurl, writeScript, cdrtools, dvdauthor, ffmpeg, imagemagick, lame, mjpegtools, sox, transcode, vorbis-tools }:
|
||||||
|
|
||||||
let
|
let
|
||||||
|
binPath = lib.makeBinPath [ cdrtools dvdauthor ffmpeg imagemagick lame mjpegtools sox transcode vorbis-tools ];
|
||||||
|
|
||||||
wrapper = writeScript "dvd-slideshow.sh" ''
|
wrapper = writeScript "dvd-slideshow.sh" ''
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
# wrapper script for dvd-slideshow programs
|
# wrapper script for dvd-slideshow programs
|
||||||
export PATH=${cdrtools}/bin:${dvdauthor}/bin:${ffmpeg.bin}/bin:${imagemagick}/bin:${lame}/bin:${mjpegtools}/bin:${sox}/bin:${transcode}/bin:${vorbis-tools}/bin:$PATH
|
export PATH=${binPath}:$PATH
|
||||||
|
|
||||||
dir=`dirname "$0"`
|
dir=`dirname "$0"`
|
||||||
exe=`basename "$0"`
|
exe=`basename "$0"`
|
||||||
|
@ -40,16 +40,16 @@ assert rtmpSupport -> rtmpdump != null;
|
|||||||
let
|
let
|
||||||
rel = "Jarvis";
|
rel = "Jarvis";
|
||||||
ffmpeg_2_8_6 = fetchurl {
|
ffmpeg_2_8_6 = fetchurl {
|
||||||
url = "https://github.com/xbmc/FFmpeg/archive/2.8.6-${rel}-16.0.tar.gz";
|
url = "https://github.com/xbmc/FFmpeg/archive/2.8.6-${rel}-16.1.tar.gz";
|
||||||
sha256 = "00cvjwfpz6ladmln4yny4d4viwflrbgrid1na412g5pif70qv3dh";
|
sha256 = "1qp8b97298l2pnhhcp7xczdfwr7q7ibxlk4vp8pfmxli2h272wan";
|
||||||
};
|
};
|
||||||
in stdenv.mkDerivation rec {
|
in stdenv.mkDerivation rec {
|
||||||
name = "kodi-" + version;
|
name = "kodi-" + version;
|
||||||
version = "16.0";
|
version = "16.1";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://github.com/xbmc/xbmc/archive/${version}-${rel}.tar.gz";
|
url = "https://github.com/xbmc/xbmc/archive/${version}-${rel}.tar.gz";
|
||||||
sha256 = "0iirspvv7czf785l2lqf232dvdaj87srbn9ni97ngvnd6w9yl884";
|
sha256 = "047xpmz78k3d6nhk1x9s8z0bw1b1w9kca46zxkg86p3iyapwi0kx";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
|
@ -1,15 +1,15 @@
|
|||||||
{ stdenv, lib, autoreconfHook, acl, go, file, git, wget, gnupg1, trousers, squashfsTools,
|
{ stdenv, lib, autoreconfHook, acl, go, file, git, wget, gnupg1, trousers, squashfsTools,
|
||||||
cpio, fetchurl, fetchFromGitHub, iptables, systemd, makeWrapper }:
|
cpio, fetchurl, fetchFromGitHub, iptables, systemd, makeWrapper, glibc }:
|
||||||
|
|
||||||
let
|
let
|
||||||
coreosImageRelease = "794.1.0";
|
coreosImageRelease = "991.0.0";
|
||||||
coreosImageSystemdVersion = "222";
|
coreosImageSystemdVersion = "225";
|
||||||
|
|
||||||
# TODO: track https://github.com/coreos/rkt/issues/1758 to allow "host" flavor.
|
# TODO: track https://github.com/coreos/rkt/issues/1758 to allow "host" flavor.
|
||||||
stage1Flavours = [ "coreos" "fly" "host" ];
|
stage1Flavours = [ "coreos" "fly" "host" ];
|
||||||
|
|
||||||
in stdenv.mkDerivation rec {
|
in stdenv.mkDerivation rec {
|
||||||
version = "1.2.0";
|
version = "1.4.0";
|
||||||
name = "rkt-${version}";
|
name = "rkt-${version}";
|
||||||
BUILDDIR="build-${name}";
|
BUILDDIR="build-${name}";
|
||||||
|
|
||||||
@ -17,15 +17,16 @@ in stdenv.mkDerivation rec {
|
|||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
owner = "coreos";
|
owner = "coreos";
|
||||||
repo = "rkt";
|
repo = "rkt";
|
||||||
sha256 = "0icsrh118mm3rabbcr0gd3b22m5rizdbqlrfp9d79g591p7bjh38";
|
sha256 = "0lnvqhg88aa6zx4wnkz17v3f529i9hi0y2aihfsq09pvsn56hwjl";
|
||||||
};
|
};
|
||||||
|
|
||||||
stage1BaseImage = fetchurl {
|
stage1BaseImage = fetchurl {
|
||||||
url = "http://alpha.release.core-os.net/amd64-usr/${coreosImageRelease}/coreos_production_pxe_image.cpio.gz";
|
url = "http://alpha.release.core-os.net/amd64-usr/${coreosImageRelease}/coreos_production_pxe_image.cpio.gz";
|
||||||
sha256 = "05nzl3av6cawr8v203a8c95c443g6h1nfy2n4jmgvn0j4iyy44ym";
|
sha256 = "1vaimrbynhjh4f30rq92bv1h3c1lxnf8isx5c2qvnn3lghypss9k";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
|
glibc.out glibc.static
|
||||||
autoreconfHook go file git wget gnupg1 trousers squashfsTools cpio acl systemd
|
autoreconfHook go file git wget gnupg1 trousers squashfsTools cpio acl systemd
|
||||||
makeWrapper
|
makeWrapper
|
||||||
];
|
];
|
||||||
|
@ -33,7 +33,7 @@ let
|
|||||||
"$mod/Module.symvers"
|
"$mod/Module.symvers"
|
||||||
fi
|
fi
|
||||||
INSTALL_MOD_PATH="$out" INSTALL_MOD_DIR=misc \
|
INSTALL_MOD_PATH="$out" INSTALL_MOD_DIR=misc \
|
||||||
make -C "$MODULES_BUILD_DIR" DEPMOD=/do_not_use_depmod \
|
make -j $NIX_BUILD_CORES -C "$MODULES_BUILD_DIR" DEPMOD=/do_not_use_depmod \
|
||||||
"M=\$(PWD)/$mod" BUILD_TYPE="${buildType}" ${action}
|
"M=\$(PWD)/$mod" BUILD_TYPE="${buildType}" ${action}
|
||||||
done
|
done
|
||||||
'';
|
'';
|
||||||
@ -144,7 +144,7 @@ in stdenv.mkDerivation {
|
|||||||
|
|
||||||
buildPhase = ''
|
buildPhase = ''
|
||||||
source env.sh
|
source env.sh
|
||||||
kmk BUILD_TYPE="${buildType}"
|
kmk -j $NIX_BUILD_CORES BUILD_TYPE="${buildType}"
|
||||||
${forEachModule "modules"}
|
${forEachModule "modules"}
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
@ -0,0 +1,74 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# The file from which to extract *.ico files or a particular *.ico file.
|
||||||
|
# (e.g.: './KeePass.exe', './myLibrary.dll', './my/path/to/app.ico').
|
||||||
|
# As you notived, the utility can extract icons from a windows executable or
|
||||||
|
# dll.
|
||||||
|
rscFile=$1
|
||||||
|
|
||||||
|
# A regexp that can extract the image size from the file name. Because we
|
||||||
|
# use 'icotool', this value should usually be set to something like
|
||||||
|
# '[^\.]+\.exe_[0-9]+_[0-9]+_[0-9]+_[0-9]+_([0-9]+x[0-9]+)x[0-9]+\.png'.
|
||||||
|
# A reg expression may be written at some point that relegate this to
|
||||||
|
# an implementation detail.
|
||||||
|
sizeRegex=$2
|
||||||
|
|
||||||
|
# A regexp replace expression that will be used with 'sizeRegex' to create
|
||||||
|
# a proper size directory (e.g.: '48x48'). Usually this is left to '\1'.
|
||||||
|
sizeReplaceExp=$3
|
||||||
|
|
||||||
|
# A regexp that can extract the name of the target image from the file name
|
||||||
|
# of the image (usually png) extracted from the *.ico file(s). A good
|
||||||
|
# default is '([^\.]+).+' which gets the basename without extension.
|
||||||
|
nameRegex=$4
|
||||||
|
|
||||||
|
# A regexp replace expression that will be used alongside 'nameRegex' to create
|
||||||
|
# a icon file name. Note that you usually put directly you icon name here
|
||||||
|
# without any extension (e.g.: 'my-app'). But in case you've got something
|
||||||
|
# fancy, it will usually be '\1'.
|
||||||
|
nameReplaceExp=$5
|
||||||
|
|
||||||
|
# The
|
||||||
|
# out=./myOut
|
||||||
|
out=$6
|
||||||
|
|
||||||
|
# An optional temp dir.
|
||||||
|
if [ "" != "$7" ]; then
|
||||||
|
tmp=$7
|
||||||
|
isOwnerOfTmpDir=false
|
||||||
|
else
|
||||||
|
tmp=`mktemp -d`
|
||||||
|
isOwnerOfTmpDir=true
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm -rf $tmp/png $tmp/ico
|
||||||
|
mkdir -p $tmp/png $tmp/ico
|
||||||
|
|
||||||
|
# Extract the ressource file's extension.
|
||||||
|
rscFileExt=`echo "$rscFile" | sed -re 's/.+\.(.+)$/\1/'`
|
||||||
|
|
||||||
|
if [ "ico" = "$rscFileExt" ]; then
|
||||||
|
cp -p $rscFile $tmp/ico
|
||||||
|
else
|
||||||
|
wrestool -x --output=$tmp/ico -t14 $rscFile
|
||||||
|
fi
|
||||||
|
|
||||||
|
icotool --icon -x --palette-size=0 -o $tmp/png $tmp/ico/*.ico
|
||||||
|
|
||||||
|
mkdir -p $out
|
||||||
|
|
||||||
|
for i in $tmp/png/*.png; do
|
||||||
|
fn=`basename "$i"`
|
||||||
|
size=$(echo $fn | sed -re 's/'${sizeRegex}'/'${sizeReplaceExp}'/')
|
||||||
|
name=$(echo $fn | sed -re 's/'${nameRegex}'/'${nameReplaceExp}'/')
|
||||||
|
targetDir=$out/share/icons/hicolor/$size/apps
|
||||||
|
targetFile=$targetDir/$name.png
|
||||||
|
mkdir -p $targetDir
|
||||||
|
mv $i $targetFile
|
||||||
|
done
|
||||||
|
|
||||||
|
rm -rf "$tmp/png" "$tmp/ico"
|
||||||
|
|
||||||
|
if $isOwnerOfTmpDir; then
|
||||||
|
rm -rf "$tmp"
|
||||||
|
fi
|
28
pkgs/build-support/icon-conv-tools/bin/icoFileToHiColorTheme
Executable file
28
pkgs/build-support/icon-conv-tools/bin/icoFileToHiColorTheme
Executable file
@ -0,0 +1,28 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
SCRIPT_DIR=`cd "$(dirname $0)" && pwd`
|
||||||
|
|
||||||
|
# The '*.ico' file that needs to be converted (e.g.: "./my/path/to/file.ico").
|
||||||
|
icoFile="$1"
|
||||||
|
|
||||||
|
# The desired name of created icon files without extension. (e.g.: "my-app").
|
||||||
|
targetIconName="$2"
|
||||||
|
|
||||||
|
# The output directory where the free desktop hierarchy will be created.
|
||||||
|
# (e.g.: "./path/to/my/out" or usually in nix "$out"). Note that the
|
||||||
|
# whole directory hierarchy to the icon will be created in the specified
|
||||||
|
# output directory (e.g.: "$out/share/icons/hicolor/48x48/apps/my-app.png").
|
||||||
|
out="$3"
|
||||||
|
|
||||||
|
# An optional temp directory location (e.g.: ./tmp). If not specified
|
||||||
|
# a random '/tmp' directory will be created.
|
||||||
|
tmp="$4"
|
||||||
|
|
||||||
|
$SCRIPT_DIR/extractWinRscIconsToStdFreeDesktopDir.sh \
|
||||||
|
"$icoFile" \
|
||||||
|
'[^\.]+_[0-9]+_([0-9]+x[0-9]+)x[0-9]+\.png' \
|
||||||
|
'\1' \
|
||||||
|
'([^\.]+).+' \
|
||||||
|
"$targetIconName" \
|
||||||
|
"$out" \
|
||||||
|
"$tmp"
|
31
pkgs/build-support/icon-conv-tools/default.nix
Normal file
31
pkgs/build-support/icon-conv-tools/default.nix
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
{ stdenv, icoutils }:
|
||||||
|
|
||||||
|
stdenv.mkDerivation {
|
||||||
|
name = "icon-conv-tools-0.0.0";
|
||||||
|
|
||||||
|
src = ./.;
|
||||||
|
|
||||||
|
buildInputs = [ icoutils ];
|
||||||
|
|
||||||
|
patchPhase = ''
|
||||||
|
substituteInPlace "./bin/extractWinRscIconsToStdFreeDesktopDir.sh" \
|
||||||
|
--replace "icotool" "${icoutils}/bin/icotool" \
|
||||||
|
--replace "wrestool" "${icoutils}/bin/wrestool"
|
||||||
|
'';
|
||||||
|
|
||||||
|
buildPhase = ''
|
||||||
|
mkdir -p "$out/bin"
|
||||||
|
cp -p "./bin/"* "$out/bin"
|
||||||
|
'';
|
||||||
|
|
||||||
|
installPhase = "true";
|
||||||
|
|
||||||
|
dontPatchELF = true;
|
||||||
|
dontStrip = true;
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
description = "Tools for icon conversion specific to nix package manager";
|
||||||
|
maintainers = with stdenv.lib.maintainers; [ jraygauthier ];
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
@ -329,14 +329,14 @@ rec {
|
|||||||
buildInputs = [ utillinux ];
|
buildInputs = [ utillinux ];
|
||||||
buildCommand = ''
|
buildCommand = ''
|
||||||
ln -s ${linux}/lib /lib
|
ln -s ${linux}/lib /lib
|
||||||
${module_init_tools}/bin/modprobe loop
|
${kmod}/bin/modprobe loop
|
||||||
${module_init_tools}/bin/modprobe ext4
|
${kmod}/bin/modprobe ext4
|
||||||
${module_init_tools}/bin/modprobe hfs
|
${kmod}/bin/modprobe hfs
|
||||||
${module_init_tools}/bin/modprobe hfsplus
|
${kmod}/bin/modprobe hfsplus
|
||||||
${module_init_tools}/bin/modprobe squashfs
|
${kmod}/bin/modprobe squashfs
|
||||||
${module_init_tools}/bin/modprobe iso9660
|
${kmod}/bin/modprobe iso9660
|
||||||
${module_init_tools}/bin/modprobe ufs
|
${kmod}/bin/modprobe ufs
|
||||||
${module_init_tools}/bin/modprobe cramfs
|
${kmod}/bin/modprobe cramfs
|
||||||
mknod /dev/loop0 b 7 0
|
mknod /dev/loop0 b 7 0
|
||||||
|
|
||||||
mkdir -p $out
|
mkdir -p $out
|
||||||
@ -355,12 +355,12 @@ rec {
|
|||||||
buildInputs = [ utillinux mtdutils ];
|
buildInputs = [ utillinux mtdutils ];
|
||||||
buildCommand = ''
|
buildCommand = ''
|
||||||
ln -s ${linux}/lib /lib
|
ln -s ${linux}/lib /lib
|
||||||
${module_init_tools}/bin/modprobe mtd
|
${kmod}/bin/modprobe mtd
|
||||||
${module_init_tools}/bin/modprobe mtdram total_size=131072
|
${kmod}/bin/modprobe mtdram total_size=131072
|
||||||
${module_init_tools}/bin/modprobe mtdchar
|
${kmod}/bin/modprobe mtdchar
|
||||||
${module_init_tools}/bin/modprobe mtdblock
|
${kmod}/bin/modprobe mtdblock
|
||||||
${module_init_tools}/bin/modprobe jffs2
|
${kmod}/bin/modprobe jffs2
|
||||||
${module_init_tools}/bin/modprobe zlib
|
${kmod}/bin/modprobe zlib
|
||||||
mknod /dev/mtd0 c 90 0
|
mknod /dev/mtd0 c 90 0
|
||||||
mknod /dev/mtdblock0 b 31 0
|
mknod /dev/mtdblock0 b 31 0
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@ let
|
|||||||
in
|
in
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "geolite-legacy-${version}";
|
name = "geolite-legacy-${version}";
|
||||||
version = "2016-04-19";
|
version = "2016-04-25";
|
||||||
|
|
||||||
srcGeoIP = fetchDB
|
srcGeoIP = fetchDB
|
||||||
"GeoLiteCountry/GeoIP.dat.gz" "GeoIP.dat.gz"
|
"GeoLiteCountry/GeoIP.dat.gz" "GeoIP.dat.gz"
|
||||||
@ -24,10 +24,10 @@ stdenv.mkDerivation rec {
|
|||||||
"11igx6r0fypih5i3f0mrcv044pivnl45mq6pkq81i81cv28hfcn8";
|
"11igx6r0fypih5i3f0mrcv044pivnl45mq6pkq81i81cv28hfcn8";
|
||||||
srcGeoIPASNum = fetchDB
|
srcGeoIPASNum = fetchDB
|
||||||
"asnum/GeoIPASNum.dat.gz" "GeoIPASNum.dat.gz"
|
"asnum/GeoIPASNum.dat.gz" "GeoIPASNum.dat.gz"
|
||||||
"0xf5ciqclk9pb82kz9zkv15wb8vm32i456jcwkf6rjv18h3wjl74";
|
"1b7w8sdazxq5sv3nz1s28420374vf4wn6h2zasbg68kc2cxwdh2w";
|
||||||
srcGeoIPASNumv6 = fetchDB
|
srcGeoIPASNumv6 = fetchDB
|
||||||
"asnum/GeoIPASNumv6.dat.gz" "GeoIPASNumv6.dat.gz"
|
"asnum/GeoIPASNumv6.dat.gz" "GeoIPASNumv6.dat.gz"
|
||||||
"0bgxw4xdkvpwhg7fdillnk8qk14hgld4icvp81d15pz4j0b9jwq9";
|
"1iy6myanmx8h4ha493bz80q6wjwgjlbk7cmliyw1806dd7fhqvwi";
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
description = "GeoLite Legacy IP geolocation databases";
|
description = "GeoLite Legacy IP geolocation databases";
|
||||||
|
@ -1,11 +1,13 @@
|
|||||||
{stdenv, fetchurl, pkgconfig, atk, cairo, glib, gtk, pango,
|
{stdenv, fetchurl, pkgconfig, atk, cairo, glib, gtk, pango,
|
||||||
libxml2Python, perl, intltool, gettext}:
|
libxml2Python, perl, intltool, gettext}:
|
||||||
|
|
||||||
stdenv.mkDerivation {
|
stdenv.mkDerivation rec {
|
||||||
name = "gtksourceview-2.9.9";
|
name = "gtksourceview-${version}";
|
||||||
|
version = "2.10.5";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = mirror://gnome/sources/gtksourceview/2.9/gtksourceview-2.9.9.tar.bz2;
|
url = "mirror://gnome/sources/gtksourceview/2.10/${name}.tar.bz2";
|
||||||
sha256 = "0d0i586nj8jsqqfcjcvaj0yzc3sid3s1a4y62xr0qbddkbn1wllj";
|
sha256 = "c585773743b1df8a04b1be7f7d90eecdf22681490d6810be54c81a7ae152191e";
|
||||||
};
|
};
|
||||||
buildInputs = [pkgconfig atk cairo glib gtk pango libxml2Python perl intltool
|
buildInputs = [pkgconfig atk cairo glib gtk pango libxml2Python perl intltool
|
||||||
gettext];
|
gettext];
|
||||||
|
@ -1,18 +1,17 @@
|
|||||||
{ stdenv, fetchurl, glib, pkgconfig, gnome3, intltool, itstool, libxml2, libarchive
|
{ stdenv, fetchurl, glib, pkgconfig, gnome3, intltool, itstool, libxml2, libarchive
|
||||||
, attr, bzip2, acl, wrapGAppsHook, librsvg, gdk_pixbuf }:
|
, attr, bzip2, acl, wrapGAppsHook, librsvg, libnotify, gdk_pixbuf }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
inherit (import ./src.nix fetchurl) name src;
|
inherit (import ./src.nix fetchurl) name src;
|
||||||
|
|
||||||
# TODO: support nautilus
|
|
||||||
# it tries to create {nautilus}/lib/nautilus/extensions-3.0/libnautilus-fileroller.so
|
|
||||||
|
|
||||||
nativeBuildInputs = [ pkgconfig wrapGAppsHook ];
|
nativeBuildInputs = [ pkgconfig wrapGAppsHook ];
|
||||||
|
|
||||||
buildInputs = [ glib gnome3.gtk intltool itstool libxml2 libarchive
|
buildInputs = [ glib gnome3.gtk intltool itstool libxml2 libarchive libnotify
|
||||||
gnome3.defaultIconTheme attr bzip2 acl gdk_pixbuf librsvg
|
gnome3.defaultIconTheme attr bzip2 acl gdk_pixbuf librsvg
|
||||||
gnome3.dconf ];
|
gnome3.dconf ];
|
||||||
|
|
||||||
|
installFlags = [ "nautilus_extensiondir=$(out)/lib/nautilus/extensions-3.0" ];
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
homepage = https://wiki.gnome.org/Apps/FileRoller;
|
homepage = https://wiki.gnome.org/Apps/FileRoller;
|
||||||
description = "Archive manager for the GNOME desktop environment";
|
description = "Archive manager for the GNOME desktop environment";
|
||||||
|
@ -40,8 +40,8 @@
|
|||||||
|
|
||||||
, ghcjsBootSrc ? fetchgit {
|
, ghcjsBootSrc ? fetchgit {
|
||||||
url = git://github.com/ghcjs/ghcjs-boot.git;
|
url = git://github.com/ghcjs/ghcjs-boot.git;
|
||||||
rev = "758e79e420403e0f6625eda19b10c46564f7cbb5";
|
rev = "8c549931da27ba9e607f77195208ec156c840c8a";
|
||||||
sha256 = "0gq1mc86cb2z875a7sdj44yy8g95rwxzkl3z1q8gg33k05s3b58r";
|
sha256 = "0yg9bnabja39qysh9pg1335qbvbc0r2mdw6cky94p7kavacndfdv";
|
||||||
fetchSubmodules = true;
|
fetchSubmodules = true;
|
||||||
}
|
}
|
||||||
, ghcjsBoot ? import ./ghcjs-boot.nix {
|
, ghcjsBoot ? import ./ghcjs-boot.nix {
|
||||||
|
@ -15,11 +15,11 @@ in
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "go-${version}";
|
name = "go-${version}";
|
||||||
version = "1.6";
|
version = "1.6.2";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://github.com/golang/go/archive/go${version}.tar.gz";
|
url = "https://github.com/golang/go/archive/go${version}.tar.gz";
|
||||||
sha256 = "04g7w34qamgy9gqpy75xm03s8xbbslv1735iv1a06z8sphpkgs7m";
|
sha256 = "17sfhg3xfnakk666wlsbhxp4vbn19hlywf5cn1zfcd4zqkcyx30h";
|
||||||
};
|
};
|
||||||
|
|
||||||
# perl is used for testing go vet
|
# perl is used for testing go vet
|
||||||
@ -96,12 +96,6 @@ stdenv.mkDerivation rec {
|
|||||||
|
|
||||||
patches = [
|
patches = [
|
||||||
./remove-tools-1.5.patch
|
./remove-tools-1.5.patch
|
||||||
# Fix bug when using musl (see https://github.com/golang/go/issues/14476)
|
|
||||||
# Should be fixed by go 1.6.1
|
|
||||||
(fetchpatch {
|
|
||||||
url = "https://github.com/golang/go/commit/1439158120742e5f41825de90a76b680da64bf76.patch";
|
|
||||||
sha256 = "0yixpbx056ns5wgd3f4absgiyc2ymmqk8mkhhz5ja90dvilzxcwd";
|
|
||||||
})
|
|
||||||
]
|
]
|
||||||
# -ldflags=-s is required to compile on Darwin, see
|
# -ldflags=-s is required to compile on Darwin, see
|
||||||
# https://github.com/golang/go/issues/11994
|
# https://github.com/golang/go/issues/11994
|
||||||
|
@ -119,12 +119,6 @@ let result = stdenv.mkDerivation rec {
|
|||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# construct the rpath
|
|
||||||
rpath=
|
|
||||||
for i in $libraries; do
|
|
||||||
rpath=$rpath''${rpath:+:}$i/lib:$i/lib64
|
|
||||||
done
|
|
||||||
|
|
||||||
if test -z "$installjdk"; then
|
if test -z "$installjdk"; then
|
||||||
jrePath=$out
|
jrePath=$out
|
||||||
else
|
else
|
||||||
@ -176,6 +170,8 @@ let result = stdenv.mkDerivation rec {
|
|||||||
[stdenv.cc.libc glib libxml2 libav_0_8 ffmpeg libxslt mesa_noglu xorg.libXxf86vm alsaLib fontconfig freetype gnome.pango gnome.gtk cairo gdk_pixbuf atk] ++
|
[stdenv.cc.libc glib libxml2 libav_0_8 ffmpeg libxslt mesa_noglu xorg.libXxf86vm alsaLib fontconfig freetype gnome.pango gnome.gtk cairo gdk_pixbuf atk] ++
|
||||||
(if swingSupport then [xorg.libX11 xorg.libXext xorg.libXtst xorg.libXi xorg.libXp xorg.libXt xorg.libXrender stdenv.cc.cc] else []);
|
(if swingSupport then [xorg.libX11 xorg.libXext xorg.libXtst xorg.libXi xorg.libXp xorg.libXt xorg.libXrender stdenv.cc.cc] else []);
|
||||||
|
|
||||||
|
rpath = stdenv.lib.strings.makeLibraryPath libraries;
|
||||||
|
|
||||||
passthru.mozillaPlugin = if installjdk then "/jre/lib/${architecture}/plugins" else "/lib/${architecture}/plugins";
|
passthru.mozillaPlugin = if installjdk then "/jre/lib/${architecture}/plugins" else "/lib/${architecture}/plugins";
|
||||||
|
|
||||||
passthru.jre = result; # FIXME: use multiple outputs or return actual JRE package
|
passthru.jre = result; # FIXME: use multiple outputs or return actual JRE package
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
import ./jdk-linux-base.nix {
|
import ./jdk-linux-base.nix {
|
||||||
productVersion = "8";
|
productVersion = "8";
|
||||||
patchVersion = "77";
|
patchVersion = "91";
|
||||||
downloadUrl = http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html;
|
downloadUrl = http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html;
|
||||||
sha256_i686 = "14hyniai5l9qpg0pbnxa4rhyhk90qgihszfkn8h3vziqhmvrp27j";
|
sha256_i686 = "0lndni81vfpz2l6zb8zsshaavk0483q5jc8yzj4fdjv6wnshbkay";
|
||||||
sha256_x86_64 = "0hyzvvj4bf0r4jda8fv3k06d9bf37nji37qbq067mcjp5abc0zd4";
|
sha256_x86_64 = "0lkm3fz1vdi69f34sysavvh3abx603j1frc9hxvr08pwvmm536vg";
|
||||||
jceName = "jce_policy-8.zip";
|
jceName = "jce_policy-8.zip";
|
||||||
jceDownloadUrl = http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html;
|
jceDownloadUrl = http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html;
|
||||||
sha256JCE = "0n8b6b8qmwb14lllk2lk1q1ahd3za9fnjigz5xn65mpg48whl0pk";
|
sha256JCE = "0n8b6b8qmwb14lllk2lk1q1ahd3za9fnjigz5xn65mpg48whl0pk";
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
import ./jdk-linux-base.nix {
|
import ./jdk-linux-base.nix {
|
||||||
productVersion = "8";
|
productVersion = "8";
|
||||||
patchVersion = "77";
|
patchVersion = "92";
|
||||||
downloadUrl = http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html;
|
downloadUrl = http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html;
|
||||||
sha256_i686 = "14hyniai5l9qpg0pbnxa4rhyhk90qgihszfkn8h3vziqhmvrp27j";
|
sha256_i686 = "095j2hh2xas05jajy4qdj9hxq3k460x4m12rcaxkaxw754imj0vj";
|
||||||
sha256_x86_64 = "0hyzvvj4bf0r4jda8fv3k06d9bf37nji37qbq067mcjp5abc0zd4";
|
sha256_x86_64 = "11wrqd3qbkhimbw9n4g9i0635pjhhnijwxyid7lvjv26kdgg58vr";
|
||||||
jceName = "jce_policy-8.zip";
|
jceName = "jce_policy-8.zip";
|
||||||
jceDownloadUrl = http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html;
|
jceDownloadUrl = http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html;
|
||||||
sha256JCE = "0n8b6b8qmwb14lllk2lk1q1ahd3za9fnjigz5xn65mpg48whl0pk";
|
sha256JCE = "0n8b6b8qmwb14lllk2lk1q1ahd3za9fnjigz5xn65mpg48whl0pk";
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
{ stdenv, callPackage }:
|
{ stdenv, callPackage }:
|
||||||
|
|
||||||
callPackage ./generic.nix {
|
callPackage ./generic.nix {
|
||||||
shortVersion = "1.7.0";
|
shortVersion = "1.8.0";
|
||||||
isRelease = true;
|
isRelease = true;
|
||||||
forceBundledLLVM = false;
|
forceBundledLLVM = false;
|
||||||
configureFlags = [ "--release-channel=stable" ];
|
configureFlags = [ "--release-channel=stable" ];
|
||||||
srcSha = "05f4v6sfmvkwsv6a7jp9sxsm84s0gdvqyf2wwdi1ilg9k8nxzgd4";
|
srcSha = "1s03aymmhhrndq29sv9cs8s4p1sg8qvq8ds6lyp6s4ny8nyvdpzy";
|
||||||
|
|
||||||
/* Rust is bootstrapped from an earlier built version. We need
|
/* Rust is bootstrapped from an earlier built version. We need
|
||||||
to fetch these earlier versions, which vary per platform.
|
to fetch these earlier versions, which vary per platform.
|
||||||
@ -15,12 +15,12 @@ callPackage ./generic.nix {
|
|||||||
for the tagged release and not a snapshot in the current HEAD.
|
for the tagged release and not a snapshot in the current HEAD.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
snapshotHashLinux686 = "a09c4a4036151d0cb28e265101669731600e01f2";
|
snapshotHashLinux686 = "5f194aa7628c0703f0fd48adc4ec7f3cc64b98c7";
|
||||||
snapshotHashLinux64 = "97e2a5eb8904962df8596e95d6e5d9b574d73bf4";
|
snapshotHashLinux64 = "d29b7607d13d64078b6324aec82926fb493f59ba";
|
||||||
snapshotHashDarwin686 = "ca52d2d3ba6497ed007705ee3401cf7efc136ca1";
|
snapshotHashDarwin686 = "4c8e42dd649e247f3576bf9dfa273327b4907f9c";
|
||||||
snapshotHashDarwin64 = "3c44ffa18f89567c2b81f8d695e711c86d81ffc7";
|
snapshotHashDarwin64 = "411a41363f922d1d93fa62ff2fedf5c35e9cccb2";
|
||||||
snapshotDate = "2015-12-18";
|
snapshotDate = "2016-02-17";
|
||||||
snapshotRev = "3391630";
|
snapshotRev = "4d3eebf";
|
||||||
|
|
||||||
patches = [ ./patches/remove-uneeded-git.patch ]
|
patches = [ ./patches/remove-uneeded-git.patch ]
|
||||||
++ stdenv.lib.optional stdenv.needsPax ./patches/grsec.patch;
|
++ stdenv.lib.optional stdenv.needsPax ./patches/grsec.patch;
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user