···10361036 { createHome = true;
10371037 home = "/home/alice";
10381038 description = "Alice Foobar";
10391039- extraGroups = [ "wheel" ];
10391039+ extraGroups = [ "wheel" "networkmanager" ];
10401040 useDefaultShell = true;
10411041 openssh.authorizedKeys.keys = [ "ssh-dss AAAAB3Nza... alice@foobar" ];
10421042 };
10431043</programlisting>
1044104410451045Note that <literal>alice</literal> is a member of the
10461046-<literal>wheel</literal> group, which allows her to use
10471047-<command>sudo</command> to execute commands as
10481048-<literal>root</literal>. Also note the SSH public key that allows
10491049-remote logins with the corresponding private key. Users created in
10501050-this way do not have a password by default, so they cannot log in via
10511051-mechanisms that require a password. However, you can use the
10521052-<command>passwd</command> program to set a password, which is retained
10531053-across invocations of <command>nixos-rebuild</command>.</para>
10461046+<literal>wheel</literal> and <literal>networkmanager</literal> groups,
10471047+which allows her to use <command>sudo</command> to execute commands as
10481048+<literal>root</literal> and to configure the network, respectively.
10491049+Also note the SSH public key that allows remote logins with the
10501050+corresponding private key. Users created in this way do not have a
10511051+password by default, so they cannot log in via mechanisms that require
10521052+a password. However, you can use the <command>passwd</command> program
10531053+to set a password, which is retained across invocations of
10541054+<command>nixos-rebuild</command>.</para>
1054105510551056<para>A user ID (uid) is assigned automatically. You can also specify
10561057a uid manually by adding
···1277127812781279<section xml:id="sec-networking"><title>Networking</title>
1279128012811281+<section xml:id="sec-networkmanager"><title>NetworkManager</title>
12821282+12831283+<para>To facilitate network configuration, some desktop environments
12841284+use NetworkManager. You can enable NetworkManager by setting:
12851285+12861286+<programlisting>
12871287+services.networkmanager.enable = true;
12881288+</programlisting>
12891289+12901290+Some desktop managers (e.g., GNOME) enable NetworkManager
12911291+automatically for you.</para>
12921292+12931293+<para>All users that should have permission to change network settings
12941294+must belong to the <code>networkmanager</code> group.</para>
12951295+12961296+<note><para><code>services.networkmanager</code> and
12971297+<code>services.wireless</code> can not be enabled at the same time:
12981298+you can still connect to the wireless networks using
12991299+NetworkManager.</para></note>
13001300+13011301+</section>
13021302+12801303<section xml:id="sec-ssh"><title>Secure shell access</title>
1281130412821305<para>Secure shell (SSH) access to your machine can be enabled by
···139814211399142214001423<section xml:id="sec-wireless"><title>Wireless networks</title>
14241424+14251425+<para>For a desktop installation using NetworkManager (e.g., GNOME),
14261426+you just have to make sure the user is in the
14271427+<code>networkmanager</code> group and you can skip the rest of this
14281428+section on wireless networks.</para>
1401142914021430<para>
14031431NixOS will start wpa_supplicant for you if you enable this setting:
+1-1
nixos/lib/testing.nix
···117117118118 report = releaseTools.gcovReport { coverageRuns = [ test ]; };
119119120120- in (if makeCoverageReport then report else test) // { inherit driver test; };
120120+ in (if makeCoverageReport then report else test) // { inherit nodes driver test; };
121121122122123123 runInMachine =
+10-12
nixos/modules/installer/cd-dvd/iso-image.nix
···179179180180 fileSystems."/" =
181181 { fsType = "tmpfs";
182182- device = "none";
183182 options = "mode=0755";
184183 };
185184···192191 noCheck = true;
193192 };
194193194194+ # In stage 1, mount a tmpfs on top of /nix/store (the squashfs
195195+ # image) to make this a live CD.
195196 fileSystems."/nix/.ro-store" =
196197 { fsType = "squashfs";
197198 device = "/iso/nix-store.squashfs";
···201202202203 fileSystems."/nix/.rw-store" =
203204 { fsType = "tmpfs";
204204- device = "none";
205205 options = "mode=0755";
206206 neededForBoot = true;
207207 };
208208209209+ fileSystems."/nix/store" =
210210+ { fsType = "unionfs-fuse";
211211+ device = "unionfs";
212212+ options = "allow_other,cow,nonempty,chroot=/mnt-root,max_files=32768,hide_meta_files,dirs=/nix/.rw-store=rw:/nix/.ro-store=ro";
213213+ };
214214+209215 boot.initrd.availableKernelModules = [ "squashfs" "iso9660" ];
210216211217 boot.initrd.kernelModules = [ "loop" ];
212212-213213- # In stage 1, mount a tmpfs on top of /nix/store (the squashfs
214214- # image) to make this a live CD.
215215- boot.initrd.postMountCommands =
216216- ''
217217- mkdir -p $targetRoot/nix/store
218218- unionfs -o allow_other,cow,nonempty,chroot=$targetRoot,max_files=32768 /nix/.rw-store=RW:/nix/.ro-store=RO $targetRoot/nix/store
219219- '';
220218221219 # Closures to be copied to the Nix store on the CD, namely the init
222220 # script and the top-level system configuration directory.
···313311 '';
314312315313 # Add vfat support to the initrd to enable people to copy the
316316- # contents of the CD to a bootable USB stick. Need unionfs-fuse for union mounts
317317- boot.initrd.supportedFilesystems = [ "vfat" "unionfs-fuse" ];
314314+ # contents of the CD to a bootable USB stick.
315315+ boot.initrd.supportedFilesystems = [ "vfat" ];
318316319317 };
320318
+3
nixos/modules/misc/ids.nix
···137137 gitolite = 127;
138138 znc = 128;
139139 polipo = 129;
140140+ mopidy = 130;
140141141142 # When adding a uid, make sure it doesn't match an existing gid. And don't use uids above 399!
142143···248249 firebird = 127;
249250 znc = 128;
250251 polipo = 129;
252252+ mopidy = 130;
253253+ docker = 131;
251254252255 # When adding a gid, make sure it doesn't match an existing uid. And don't use gids above 399!
253256
···77 # Include some utilities that are useful for installing or repairing
88 # the system.
99 environment.systemPackages = [
1010- pkgs.subversion # for nixos-checkout
1110 pkgs.w3m # needed for the manual anyway
1211 pkgs.testdisk # useful for repairing boot problems
1312 pkgs.mssys # for writing Microsoft boot sectors / MBRs
···11+{ config, lib, pkgs, ... }:
22+33+with pkgs;
44+with lib;
55+66+let
77+88+ uid = config.ids.uids.mopidy;
99+ gid = config.ids.gids.mopidy;
1010+ cfg = config.services.mopidy;
1111+1212+ mopidyConf = writeText "mopidy.conf" cfg.configuration;
1313+1414+ mopidyLauncher = stdenv.mkDerivation {
1515+ name = "mopidy-launcher";
1616+ phases = [ "installPhase" ];
1717+ buildInputs = [ makeWrapper python ];
1818+ installPhase = ''
1919+ mkdir -p $out/bin
2020+ ln -s ${mopidy}/bin/mopidy $out/bin/mopidy
2121+ wrapProgram $out/bin/mopidy \
2222+ --prefix PYTHONPATH : \
2323+ "${concatStringsSep ":" (map (p: "$(toPythonPath ${p})") cfg.extensionPackages)}"
2424+ '';
2525+ };
2626+2727+in {
2828+2929+ options = {
3030+3131+ services.mopidy = {
3232+3333+ enable = mkOption {
3434+ default = false;
3535+ type = types.bool;
3636+ description = ''
3737+ Whether to enable Mopidy, a music player daemon.
3838+ '';
3939+ };
4040+4141+ dataDir = mkOption {
4242+ default = "/var/lib/mopidy";
4343+ type = types.str;
4444+ description = ''
4545+ The directory where Mopidy stores its state.
4646+ '';
4747+ };
4848+4949+ extensionPackages = mkOption {
5050+ default = [];
5151+ type = types.listOf types.package;
5252+ example = [ mopidy-spotify ];
5353+ description = ''
5454+ Mopidy extensions that should be loaded by the service.
5555+ '';
5656+ };
5757+5858+ configuration = mkOption {
5959+ type = types.lines;
6060+ description = ''
6161+ The configuration that Mopidy should use.
6262+ '';
6363+ };
6464+6565+ extraConfigFiles = mkOption {
6666+ default = [];
6767+ type = types.listOf types.str;
6868+ description = ''
6969+ Extra config file read by Mopidy when the service starts.
7070+ Later files in the list overrides earlier configuration.
7171+ '';
7272+ };
7373+7474+ };
7575+7676+ };
7777+7878+7979+ ###### implementation
8080+8181+ config = mkIf cfg.enable {
8282+8383+ systemd.services.mopidy = {
8484+ wantedBy = [ "multi-user.target" ];
8585+ after = [ "network.target" "sound.target" ];
8686+ description = "mopidy music player daemon";
8787+ preStart = "mkdir -p ${cfg.dataDir} && chown -R mopidy:mopidy ${cfg.dataDir}";
8888+ serviceConfig = {
8989+ ExecStart = "${mopidyLauncher}/bin/mopidy --config ${concatStringsSep ":" ([mopidyConf] ++ cfg.extraConfigFiles)}";
9090+ User = "mopidy";
9191+ PermissionsStartOnly = true;
9292+ };
9393+ };
9494+9595+ users.extraUsers.mopidy = {
9696+ inherit uid;
9797+ group = "mopidy";
9898+ extraGroups = [ "audio" ];
9999+ description = "Mopidy daemon user";
100100+ home = "${cfg.dataDir}";
101101+ };
102102+103103+ users.extraGroups.mopidy.gid = gid;
104104+105105+ };
106106+107107+}
+6-11
nixos/modules/services/misc/nix-daemon.nix
···22222323 nixConf =
2424 let
2525- # Tricky: if we're using a chroot for builds, then we need
2626- # /bin/sh in the chroot (our own compromise to purity).
2727- # However, since /bin/sh is a symlink to some path in the
2828- # Nix store, which furthermore has runtime dependencies on
2929- # other paths in the store, we need the closure of /bin/sh
3030- # in `build-chroot-dirs' - otherwise any builder that uses
3131- # /bin/sh won't work.
3232- binshDeps = pkgs.writeReferencesToFile config.system.build.binsh;
2525+ # If we're using a chroot for builds, then provide /bin/sh in
2626+ # the chroot as a bind-mount to bash. This means we also need to
2727+ # include the entire closure of bash.
2828+ sh = pkgs.stdenv.shell;
2929+ binshDeps = pkgs.writeReferencesToFile sh;
3330 in
3431 pkgs.runCommand "nix.conf" {extraOptions = cfg.extraOptions; } ''
3532 extraPaths=$(for i in $(cat ${binshDeps}); do if test -d $i; then echo $i; fi; done)
···4037 build-users-group = nixbld
4138 build-max-jobs = ${toString (cfg.maxJobs)}
4239 build-use-chroot = ${if cfg.useChroot then "true" else "false"}
4343- build-chroot-dirs = ${toString cfg.chrootDirs} $(echo $extraPaths)
4040+ build-chroot-dirs = ${toString cfg.chrootDirs} /bin/sh=${sh} $(echo $extraPaths)
4441 binary-caches = ${toString cfg.binaryCaches}
4542 trusted-binary-caches = ${toString cfg.trustedBinaryCaches}
4643 $extraOptions
···252249 ###### implementation
253250254251 config = {
255255-256256- nix.chrootDirs = [ "/bin" ];
257252258253 environment.etc."nix/nix.conf".source = nixConf;
259254
···387387 '';
388388389389390390- enablePHP = any (svc: svc.enablePHP) allSubservices;
390390+ enablePHP = mainCfg.enablePHP || any (svc: svc.enablePHP) allSubservices;
391391392392393393 # Generate the PHP configuration file. Should probably be factored
···529529 configuration of the virtual host. The available options
530530 are the non-global options permissible for the main host.
531531 '';
532532+ };
533533+534534+ enablePHP = mkOption {
535535+ type = types.bool;
536536+ default = false;
537537+ description = "Whether to enable the PHP module.";
532538 };
533539534540 phpOptions = mkOption {
···44console=tty1
5566export LD_LIBRARY_PATH=@extraUtils@/lib
77-export PATH=@extraUtils@/bin:@extraUtils@/sbin
77+export PATH=@extraUtils@/bin
88+ln -s @extraUtils@/bin /bin
899101011fail() {
···261262 echo "$device /mnt-root$mountPoint $fsType $options" >> /etc/fstab
262263263264 checkFS "$device" "$fsType"
265265+266266+ # Create backing directories for unionfs-fuse.
267267+ if [ "$fsType" = unionfs-fuse ]; then
268268+ for i in $(IFS=:; echo ${options##*,dirs=}); do
269269+ mkdir -m 0700 -p /mnt-root"${i%=*}"
270270+ done
271271+ fi
264272265273 echo "mounting $device on $mountPoint..."
266274
+13-25
nixos/modules/system/boot/stage-1.nix
···2323 };
242425252626- needsCifsUtils = kernelPackages.kernel ? features
2727- && kernelPackages.kernel.features ? needsCifsUtils
2828- && kernelPackages.kernel.features.needsCifsUtils
2929- && any (fs: fs.fsType == "cifs") fileSystems;
3030-3131- busybox =
3232- if needsCifsUtils
3333- then pkgs.busybox.override {
3434- extraConfig = ''
3535- CONFIG_FEATURE_MOUNT_CIFS n
3636- CONFIG_FEATURE_MOUNT_HELPERS y
3737- '';
3838- }
3939- else pkgs.busybox;
4040-4141-4226 # Some additional utilities needed in stage 1, like mount, lvm, fsck
4327 # etc. We don't want to bring in all of those packages, so we just
4428 # copy what we need. Instead of using statically linked binaries,
···5135 }
5236 ''
5337 mkdir -p $out/bin $out/lib
3838+ ln -s $out/bin $out/sbin
54395540 # Copy what we need from Glibc.
5641 cp -pv ${pkgs.glibc}/lib/ld*.so.? $out/lib
···6247 cp -pv ${pkgs.gcc.gcc}/lib*/libgcc_s.so.* $out/lib
63486449 # Copy BusyBox.
6565- cp -rvd ${busybox}/{bin,sbin} $out/
6666- chmod -R u+w $out
5050+ cp -pvd ${pkgs.busybox}/bin/* ${pkgs.busybox}/sbin/* $out/bin/
67516852 # Copy some utillinux stuff.
6969- cp -v ${pkgs.utillinux}/sbin/blkid $out/bin
5353+ cp -vf ${pkgs.utillinux}/sbin/blkid $out/bin
7054 cp -pdv ${pkgs.utillinux}/lib/libblkid*.so.* $out/lib
7155 cp -pdv ${pkgs.utillinux}/lib/libuuid*.so.* $out/lib
7256···89739074 # Copy modprobe.
9175 cp -v ${pkgs.kmod}/bin/kmod $out/bin/
9292- ln -s kmod $out/bin/modprobe
9393-9494- # Maybe copy cifs utils
9595- ${optionalString needsCifsUtils ''
9696- cp -v ${pkgs.cifs_utils}/sbin/mount.cifs $out/bin
9797- ''}
7676+ ln -sf kmod $out/bin/modprobe
98779978 ${config.boot.initrd.extraUtilsCommands}
10079···313292 example = "xz";
314293 };
315294295295+ boot.initrd.supportedFilesystems = mkOption {
296296+ default = [ ];
297297+ example = [ "btrfs" ];
298298+ type = types.listOf types.string;
299299+ description = "Names of supported filesystem types in the initial ramdisk.";
300300+ };
301301+316302 fileSystems = mkOption {
317303 options.neededForBoot = mkOption {
318304 default = false;
···346332347333 # Prevent systemd from waiting for the /dev/root symlink.
348334 systemd.units."dev-root.device".text = "";
335335+336336+ boot.initrd.supportedFilesystems = map (fs: fs.fsType) fileSystems;
349337350338 };
351339}
+1-7
nixos/modules/system/boot/stage-2-init.sh
···2929# Normally, stage 1 mounts the root filesystem read/writable.
3030# However, in some environments, stage 2 is executed directly, and the
3131# root is read-only. So make it writable here.
3232-mount -n -o remount,rw /
3232+mount -n -o remount,rw none /
333334343535# Likewise, stage 1 mounts /proc, /dev and /sys, so if we don't have a
···9797# Miscellaneous boot time cleanup.
9898rm -rf /var/run /var/lock
9999rm -f /etc/{group,passwd,shadow}.lock
100100-101101-if test -n "@cleanTmpDir@"; then
102102- echo -n "cleaning \`/tmp'..."
103103- find /tmp -maxdepth 1 -mindepth 1 -print0 | xargs -0r rm -rf --one-file-system
104104- echo " done"
105105-fi
106100107101108102# Also get rid of temporary GC roots.
+2-12
nixos/modules/system/boot/stage-2.nix
···1717 src = ./stage-2-init.sh;
1818 shellDebug = "${pkgs.bashInteractive}/bin/bash";
1919 isExecutable = true;
2020- inherit (config.boot) devShmSize runSize cleanTmpDir;
2020+ inherit (config.boot) devShmSize runSize;
2121 inherit (config.nix) readOnlyStore;
2222 inherit (config.networking) useHostResolvConf;
2323 ttyGid = config.ids.gids.tty;
···2626 pkgs.utillinux
2727 pkgs.sysvtools
2828 pkgs.openresolv
2929- ] ++ (optional config.boot.cleanTmpDir pkgs.findutils)
3030- ++ optional config.nix.readOnlyStore readonlyMountpoint;
2929+ ] ++ optional config.nix.readOnlyStore readonlyMountpoint;
3130 postBootCommands = pkgs.writeText "local-cmds"
3231 ''
3332 ${config.boot.postBootCommands}
···7877 description = ''
7978 Size limit for the /run tmpfs. Look at mount(8), tmpfs size option,
8079 for the accepted syntax.
8181- '';
8282- };
8383-8484- # FIXME: should replace this with something that uses systemd-tmpfiles.
8585- cleanTmpDir = mkOption {
8686- type = types.bool;
8787- default = false;
8888- description = ''
8989- Whether to delete all files in <filename>/tmp</filename> during boot.
9080 '';
9181 };
9282
+13-18
nixos/modules/system/boot/systemd.nix
···162162 "systemd-sysctl.service"
163163 ]
164164165165- ++ optionals cfg.enableEmergencyMode [
166166- "emergency.target"
167167- "emergency.service"
168168- ];
165165+ ++ cfg.additionalUpstreamSystemUnits;
169166170167 upstreamSystemWants =
171168 [ #"basic.target.wants"
···317314 ''
318315 [Service]
319316 ${let env = cfg.globalEnvironment // def.environment;
320320- in concatMapStrings (n: "Environment=\"${n}=${getAttr n env}\"\n") (attrNames env)}
317317+ in concatMapStrings (n:
318318+ let s = "Environment=\"${n}=${getAttr n env}\"\n";
319319+ in if stringLength s >= 2048 then throw "The value of the environment variable ‘${n}’ in systemd service ‘${name}.service’ is too long." else s) (attrNames env)}
321320 ${if def.reloadIfChanged then ''
322321 X-ReloadIfChanged=true
323322 '' else if !def.restartIfChanged then ''
···635634 '';
636635 };
637636638638- systemd.enableEmergencyMode = mkOption {
639639- default = true;
640640- type = types.bool;
641641- description = ''
642642- Whether to enable emergency mode, which is an
643643- <command>sulogin</command> shell started on the console if
644644- mounting a filesystem fails. Since some machines (like EC2
645645- instances) have no console of any kind, emergency mode doesn't
646646- make sense, and it's better to continue with the boot insofar
647647- as possible.
648648- '';
649649- };
650650-651637 systemd.tmpfiles.rules = mkOption {
652638 type = types.listOf types.str;
653639 default = [];
···688674 type = types.attrsOf types.optionSet;
689675 options = [ socketOptions unitConfig ];
690676 description = "Definition of systemd per-user socket units.";
677677+ };
678678+679679+ systemd.additionalUpstreamSystemUnits = mkOption {
680680+ default = [ ];
681681+ type = types.listOf types.str;
682682+ example = [ "debug-shell.service" "systemd-quotacheck.service" ];
683683+ description = ''
684684+ Additional units shipped with systemd that shall be enabled.
685685+ '';
691686 };
692687693688 };
+39
nixos/modules/system/boot/tmp.nix
···11+{ config, lib, ... }:
22+33+with lib;
44+55+{
66+77+ ###### interface
88+99+ options = {
1010+1111+ boot.cleanTmpDir = mkOption {
1212+ type = types.bool;
1313+ default = false;
1414+ description = ''
1515+ Whether to delete all files in <filename>/tmp</filename> during boot.
1616+ '';
1717+ };
1818+1919+ boot.tmpOnTmpfs = mkOption {
2020+ type = types.bool;
2121+ default = false;
2222+ description = ''
2323+ Whether to mount a tmpfs on <filename>/tmp</filename> during boot.
2424+ '';
2525+ };
2626+2727+ };
2828+2929+ ###### implementation
3030+3131+ config = {
3232+3333+ systemd.additionalUpstreamSystemUnits = optional config.boot.tmpOnTmpfs "tmp.mount";
3434+3535+ systemd.tmpfiles.rules = optional config.boot.cleanTmpDir "D! /tmp 1777 root root";
3636+3737+ };
3838+3939+}
+6-14
nixos/modules/tasks/filesystems.nix
···991010 prioOption = prio: optionalString (prio !=null) " pri=${toString prio}";
11111212- fileSystemOpts = { name, ... }: {
1212+ fileSystemOpts = { name, config, ... }: {
13131414 options = {
1515···68686969 config = {
7070 mountPoint = mkDefault name;
7171+ device = mkIf (config.fsType == "tmpfs") (mkDefault config.fsType);
7172 };
72737374 };
···122123 example = [ "btrfs" ];
123124 type = types.listOf types.string;
124125 description = "Names of supported filesystem types.";
125125- };
126126-127127- boot.initrd.supportedFilesystems = mkOption {
128128- default = [ ];
129129- example = [ "btrfs" ];
130130- type = types.listOf types.string;
131131- description = "Names of supported filesystem types in the initial ramdisk.";
132126 };
133127134128 };
···140134141135 boot.supportedFilesystems = map (fs: fs.fsType) fileSystems;
142136143143- boot.initrd.supportedFilesystems =
144144- map (fs: fs.fsType)
145145- (filter (fs: fs.mountPoint == "/" || fs.neededForBoot) fileSystems);
146146-147137 # Add the mount helpers to the system path so that `mount' can find them.
148138 system.fsPackages = [ pkgs.dosfstools ];
149139150140 environment.systemPackages =
151151- [ pkgs.ntfs3g pkgs.cifs_utils pkgs.fuse ]
141141+ [ pkgs.ntfs3g pkgs.fuse ]
152142 ++ config.system.fsPackages;
153143154144 environment.etc.fstab.text =
···157147158148 # Filesystems.
159149 ${flip concatMapStrings fileSystems (fs:
160160- (if fs.device != null then fs.device else "/dev/disk/by-label/${fs.label}")
150150+ (if fs.device != null then fs.device
151151+ else if fs.label != null then "/dev/disk/by-label/${fs.label}"
152152+ else throw "No device specified for mount point ‘${fs.mountPoint}’.")
161153 + " " + fs.mountPoint
162154 + " " + fs.fsType
163155 + " " + fs.options
···172172 boot.initrd.extraUtilsCommands =
173173 ''
174174 # We need swapon in the initrd.
175175- cp ${pkgs.utillinux}/sbin/swapon $out/bin
175175+ cp --remove-destination ${pkgs.utillinux}/sbin/swapon $out/bin
176176 '';
177177178178 # Don't put old configurations in the GRUB menu. The user has no
+109
nixos/modules/virtualisation/docker.nix
···11+# Systemd services for docker.
22+33+{ config, lib, pkgs, ... }:
44+55+with lib;
66+77+let
88+99+ cfg = config.virtualisation.docker;
1010+1111+in
1212+1313+{
1414+ ###### interface
1515+1616+ options.virtualisation.docker = {
1717+ enable =
1818+ mkOption {
1919+ type = types.bool;
2020+ default = false;
2121+ description =
2222+ ''
2323+ This option enables docker, a daemon that manages
2424+ linux containers. Users in the "docker" group can interact with
2525+ the daemon (e.g. to start or stop containers) using the
2626+ <command>docker</command> command line tool.
2727+ '';
2828+ };
2929+ socketActivation =
3030+ mkOption {
3131+ type = types.bool;
3232+ default = false;
3333+ description =
3434+ ''
3535+ This option enables docker with socket activation. I.e. docker will
3636+ start when first called by client.
3737+3838+ Note: This is false by default because systemd lower than 214 that
3939+ nixos uses so far, doesn't support SocketGroup option, so socket
4040+ created by docker has root group now. This will likely be changed
4141+ in future. So set this option explicitly to false if you wish.
4242+ '';
4343+ };
4444+ extraOptions =
4545+ mkOption {
4646+ type = types.str;
4747+ default = "";
4848+ description =
4949+ ''
5050+ The extra command-line options to pass to
5151+ <command>docker</command> daemon.
5252+ '';
5353+ };
5454+5555+5656+ };
5757+5858+ ###### implementation
5959+6060+ config = mkIf cfg.enable (mkMerge [
6161+ { environment.systemPackages = [ pkgs.docker ];
6262+ }
6363+ (mkIf cfg.socketActivation {
6464+6565+ systemd.services.docker = {
6666+ description = "Docker Application Container Engine";
6767+ after = [ "network.target" "docker.socket" ];
6868+ requires = [ "docker.socket" ];
6969+ serviceConfig = {
7070+ ExecStart = "${pkgs.docker}/bin/docker --daemon=true --host=fd:// --group=docker ${cfg.extraOptions}";
7171+ # I'm not sure if that limits aren't too high, but it's what
7272+ # goes in config bundled with docker itself
7373+ LimitNOFILE = 1048576;
7474+ LimitNPROC = 1048576;
7575+ };
7676+ };
7777+7878+ systemd.sockets.docker = {
7979+ description = "Docker Socket for the API";
8080+ wantedBy = [ "sockets.target" ];
8181+ socketConfig = {
8282+ ListenStream = "/var/run/docker.sock";
8383+ SocketMode = "0660";
8484+ SocketUser = "root";
8585+ SocketGroup = "docker";
8686+ };
8787+ };
8888+ })
8989+ (mkIf (!cfg.socketActivation) {
9090+9191+ systemd.services.docker = {
9292+ description = "Docker Application Container Engine";
9393+ wantedBy = [ "multi-user.target" ];
9494+ after = [ "network.target" ];
9595+ serviceConfig = {
9696+ ExecStart = "${pkgs.docker}/bin/docker --daemon=true --group=docker ${cfg.extraOptions}";
9797+ # I'm not sure if that limits aren't too high, but it's what
9898+ # goes in config bundled with docker itself
9999+ LimitNOFILE = 1048576;
100100+ LimitNPROC = 1048576;
101101+ };
102102+103103+ # Presumably some containers are running we don't want to interrupt
104104+ restartIfChanged = false;
105105+ };
106106+ })
107107+ ]);
108108+109109+}
···121121122122 networking.usePredictableInterfaceNames = false;
123123124124- systemd.services.wait-metadata-online = {
125125- description = "Wait for GCE metadata server to become reachable";
126126- wantedBy = [ "network-online.target" ];
127127- before = [ "network-online.target" ];
128128- path = [ pkgs.netcat ];
129129- script = ''
130130- # wait for the metadata server to become available for up to 60 seconds
131131- for counter in {1..30}; do sleep 2 && nc -vzw 2 metadata 80 && break; done
132132- '';
133133- serviceConfig.Type = "oneshot";
134134- serviceConfig.RemainAfterExit = true;
135135- };
136136-137124 systemd.services.fetch-ssh-keys =
138125 { description = "Fetch host keys and authorized_keys for root user";
139126···142129 after = [ "network-online.target" ];
143130 wants = [ "network-online.target" ];
144131145145- path = [ pkgs.curl ];
132132+ path = [ pkgs.wget ];
146133 script =
147134 ''
135135+ wget="wget --retry-connrefused -t 6 --waitretry=10"
148136 # Don't download the SSH key if it has already been downloaded
149137 if ! [ -e /root/.ssh/authorized_keys ]; then
150138 echo "obtaining SSH key..."
151139 mkdir -p /root/.ssh
152152- curl -o /root/authorized-keys-metadata http://metadata/0.1/meta-data/authorized-keys
140140+ $wget -O /root/authorized-keys-metadata http://metadata/0.1/meta-data/authorized-keys
153141 if [ $? -eq 0 -a -e /root/authorized-keys-metadata ]; then
154142 cat /root/authorized-keys-metadata | cut -d: -f2- > /root/key.pub
155143 if ! grep -q -f /root/key.pub /root/.ssh/authorized_keys; then
···162150 fi
163151164152 echo "obtaining SSH private host key..."
165165- curl -o /root/ssh_host_ecdsa_key --retry-max-time 60 http://metadata/0.1/meta-data/attributes/ssh_host_ecdsa_key
153153+ $wget -O /root/ssh_host_ecdsa_key http://metadata/0.1/meta-data/attributes/ssh_host_ecdsa_key
166154 if [ $? -eq 0 -a -e /root/ssh_host_ecdsa_key ]; then
167155 mv -f /root/ssh_host_ecdsa_key /etc/ssh/ssh_host_ecdsa_key
168156 echo "downloaded ssh_host_ecdsa_key"
···170158 fi
171159172160 echo "obtaining SSH public host key..."
173173- curl -o /root/ssh_host_ecdsa_key.pub --retry-max-time 60 http://metadata/0.1/meta-data/attributes/ssh_host_ecdsa_key_pub
161161+ $wget -O /root/ssh_host_ecdsa_key.pub http://metadata/0.1/meta-data/attributes/ssh_host_ecdsa_key_pub
174162 if [ $? -eq 0 -a -e /root/ssh_host_ecdsa_key.pub ]; then
175163 mv -f /root/ssh_host_ecdsa_key.pub /etc/ssh/ssh_host_ecdsa_key.pub
176164 echo "downloaded ssh_host_ecdsa_key.pub"
···179167 '';
180168 serviceConfig.Type = "oneshot";
181169 serviceConfig.RemainAfterExit = true;
170170+ serviceConfig.StandardError = "journal+console";
171171+ serviceConfig.StandardOutput = "journal+console";
182172 };
183183-184184-185173}
+17-20
nixos/modules/virtualisation/qemu-vm.nix
···275275276276 boot.loader.grub.device = mkVMOverride "/dev/vda";
277277278278- boot.initrd.supportedFilesystems = optional cfg.writableStore "unionfs-fuse";
279279-280278 boot.initrd.extraUtilsCommands =
281279 ''
282280 # We need mke2fs in the initrd.
283283- cp ${pkgs.e2fsprogs}/sbin/mke2fs $out/bin
281281+ cp -f ${pkgs.e2fsprogs}/sbin/mke2fs $out/bin
284282 '';
285283286284 boot.initrd.postDeviceCommands =
···303301 chmod 1777 $targetRoot/tmp
304302305303 mkdir -p $targetRoot/boot
306306- ${optionalString cfg.writableStore ''
307307- mkdir -p /unionfs-chroot/ro-store
308308- mount --rbind $targetRoot/nix/store /unionfs-chroot/ro-store
309309-310310- mkdir /unionfs-chroot/rw-store
311311- ${if cfg.writableStoreUseTmpfs then ''
312312- mount -t tmpfs -o "mode=755" none /unionfs-chroot/rw-store
313313- '' else ''
314314- mkdir $targetRoot/.nix-rw-store
315315- mount --bind $targetRoot/.nix-rw-store /unionfs-chroot/rw-store
316316- ''}
317317-318318- unionfs -o allow_other,cow,nonempty,chroot=/unionfs-chroot,max_files=32768,hide_meta_files /rw-store=RW:/ro-store=RO $targetRoot/nix/store
319319- ''}
320304 '';
321305322306 # After booting, register the closure of the paths in
···343327 # configuration, where the regular value for the `fileSystems'
344328 # attribute should be disregarded for the purpose of building a VM
345329 # test image (since those filesystems don't exist in the VM).
346346- fileSystems = mkVMOverride
330330+ fileSystems = mkVMOverride (
347331 { "/".device = "/dev/vda";
348348- "/nix/store" =
332332+ ${if cfg.writableStore then "/nix/.ro-store" else "/nix/store"} =
349333 { device = "store";
350334 fsType = "9p";
351335 options = "trans=virtio,version=9p2000.L,msize=1048576,cache=loose";
336336+ neededForBoot = true;
352337 };
353338 "/tmp/xchg" =
354339 { device = "xchg";
···362347 options = "trans=virtio,version=9p2000.L,msize=1048576";
363348 neededForBoot = true;
364349 };
350350+ } // optionalAttrs cfg.writableStore
351351+ { "/nix/store" =
352352+ { fsType = "unionfs-fuse";
353353+ device = "unionfs";
354354+ options = "allow_other,cow,nonempty,chroot=/mnt-root,max_files=32768,hide_meta_files,dirs=/nix/.rw-store=rw:/nix/.ro-store=ro";
355355+ };
356356+ } // optionalAttrs (cfg.writableStore && cfg.writableStoreUseTmpfs)
357357+ { "/nix/.rw-store" =
358358+ { fsType = "tmpfs";
359359+ options = "mode=0755";
360360+ neededForBoot = true;
361361+ };
365362 } // optionalAttrs cfg.useBootLoader
366363 { "/boot" =
367364 { device = "/dev/disk/by-label/boot";
···369366 options = "ro";
370367 noCheck = true; # fsck fails on a r/o filesystem
371368 };
372372- };
369369+ });
373370374371 swapDevices = mkVMOverride [ ];
375372 boot.initrd.luks.devices = mkVMOverride [];
+1-1
nixos/tests/containers.nix
···3535 # multi-user.target, we should now be able to access it.
3636 my $ip = $machine->succeed("nixos-container show-ip webserver");
3737 chomp $ip;
3838- $machine->succeed("ping -c1 $ip");
3838+ #$machine->succeed("ping -c1 $ip"); # FIXME
3939 $machine->succeed("curl --fail http://$ip/ > /dev/null");
40404141 # Stop the container.
···2222 meta = {
2323 description = "Doing phonetics by computer";
2424 homepage = http://www.fon.hum.uva.nl/praat/;
2525- license = "GPLv2+"; # Has some 3rd-party code in it though
2525+ license = stdenv.lib.licenses.gpl2Plus; # Has some 3rd-party code in it though
2626 platforms = stdenv.lib.platforms.linux;
2727 };
2828}
···1313 meta = {
1414 description = "Hex editor with vim style keybindings";
1515 homepage = http://bvi.sourceforge.net/download.html;
1616- license = "GPL2";
1616+ license = stdenv.lib.licenses.gpl2;
1717 };
1818}
+1-1
pkgs/applications/editors/ed/default.nix
···3737 full-screen editors such as GNU Emacs or GNU Moe.
3838 '';
39394040- license = "GPLv3+";
4040+ license = stdenv.lib.licenses.gpl3Plus;
41414242 homepage = http://www.gnu.org/software/ed/;
4343
···2525 meta = {
2626 homepage = "https://github.com/magit/magit";
2727 description = "Magit, an Emacs interface to Git";
2828- license = "GPLv3+";
2828+ license = stdenv.lib.licenses.gpl3Plus;
29293030 longDescription = ''
3131 With Magit, you can inspect and modify your Git repositories with
···1313 meta = {
1414 homepage = http://hugin.sourceforge.net/;
1515 description = "Implementation in C of the autopano-sift algorithm for automatically stitching panoramas";
1616- license = "GPLv2";
1616+ license = stdenv.lib.licenses.gpl2;
1717 };
1818}
+1-1
pkgs/applications/graphics/comical/default.nix
···1616 meta = {
1717 description = "Viewer of CBR and CBZ files, often used to store scanned comics";
1818 homepage = http://comical.sourceforge.net/;
1919- license = "GPLv2+";
1919+ license = stdenv.lib.licenses.gpl2Plus;
2020 maintainers = with stdenv.lib.maintainers; [viric];
2121 platforms = with stdenv.lib.platforms; linux;
2222 };
+1-1
pkgs/applications/graphics/djview/default.nix
···2020 meta = {
2121 homepage = http://djvu.sourceforge.net/djview4.html;
2222 description = "A new portable DjVu viewer and browser plugin";
2323- license = "GPL2";
2323+ license = stdenv.lib.licenses.gpl2;
2424 inherit (qt4.meta) platforms;
2525 maintainers = [ stdenv.lib.maintainers.urkud ];
2626 };
···2929 meta = {
3030 homepage = http://hugin.sourceforge.net/;
3131 description = "Toolkit for stitching photographs and assembling panoramas, together with an easy to use graphical front end";
3232- license = "GPLv2+";
3232+ license = stdenv.lib.licenses.gpl2Plus;
3333 maintainers = with stdenv.lib.maintainers; [viric];
3434 platforms = with stdenv.lib.platforms; linux;
3535 };
+1-1
pkgs/applications/graphics/ipe/default.nix
···3737 meta = {
3838 description = "An editor for drawing figures";
3939 homepage = http://ipe7.sourceforge.net;
4040- license = "GPLv3+";
4040+ license = stdenv.lib.licenses.gpl3Plus;
4141 longDescription = ''
4242 Ipe is an extensible drawing editor for creating figures in PDF and Postscript format.
4343 It supports making small figures for inclusion into LaTeX-documents
···2828 meta = {
2929 description = "a generic, highly customizable, and efficient menu for the X Window System";
3030 homepage = http://tools.suckless.org/dmenu;
3131- license = "MIT";
3131+ license = stdenv.lib.licenses.mit;
3232 maintainers = with stdenv.lib.maintainers; [viric];
3333 platforms = with stdenv.lib.platforms; all;
3434 };
3535}
3636-
+1-1
pkgs/applications/misc/epdfview/default.nix
···1515 GTK+ libraries. The aim of ePDFView is to make a simple PDF document
1616 viewer, in the lines of Evince but without using the Gnome libraries.
1717 '';
1818- license = "GPLv2";
1818+ license = stdenv.lib.licenses.gpl2;
1919 maintainers = with stdenv.lib.maintainers; [ astsmtl ];
2020 platforms = with stdenv.lib.platforms; linux;
2121 };
+1-1
pkgs/applications/misc/evopedia/default.nix
···1818 meta = {
1919 description = "Offline Wikipedia Viewer";
2020 homepage = http://www.evopedia.info;
2121- license = "GPLv3+";
2121+ license = stdenv.lib.licenses.gpl3Plus;
2222 maintainers = with stdenv.lib.maintainers; [viric];
2323 platforms = with stdenv.lib.platforms; linux;
2424 };
···3838 one takes the GPS data in a different format.
3939 '';
40404141- license = "GPLv2+";
4141+ license = stdenv.lib.licenses.gpl2Plus;
42424343 homepage = http://freefoote.dview.net/linux_gpscorr.html;
4444 };
···3232 meta = {
3333 description = "open source Geographic Information System (GIS) written in the Java programming language";
3434 homepage = http://www.openjump.org/index.html;
3535- license = "GPLv2";
3535+ license = stdenv.lib.licenses.gpl2;
3636 maintainers = [stdenv.lib.maintainers.marcweber];
3737 platforms = stdenv.lib.platforms.linux;
3838 };
+1-1
pkgs/applications/misc/qgis/default.nix
···2525 meta = {
2626 description = "User friendly Open Source Geographic Information System";
2727 homepage = http://www.qgis.org;
2828- license = "GPLv2+";
2828+ license = stdenv.lib.licenses.gpl2Plus;
2929 platforms = with stdenv.lib.platforms; linux;
3030 maintainers = with stdenv.lib.maintainers; [viric];
3131 };
+1-1
pkgs/applications/misc/redshift/default.nix
···3737 temperature transitions smoothly from night to daytime
3838 temperature to allow your eyes to slowly adapt.
3939 '';
4040- license = "GPLv3+";
4040+ license = stdenv.lib.licenses.gpl3Plus;
4141 homepage = "http://jonls.dk/redshift";
4242 platforms = platforms.linux;
4343 maintainers = maintainers.mornfall;
+1-1
pkgs/applications/misc/sakura/default.nix
···2020 terminals in one window and adds a contextual menu with some basic
2121 options. No more no less.
2222 '';
2323- license = "GPLv2";
2323+ license = stdenv.lib.licenses.gpl2;
2424 maintainers = with stdenv.lib.maintainers; [ astsmtl ];
2525 platforms = with stdenv.lib.platforms; linux;
2626 };
+1-1
pkgs/applications/misc/st/default.nix
···24242525 meta = {
2626 homepage = http://st.suckless.org/;
2727- license = "MIT";
2727+ license = stdenv.lib.licenses.mit;
2828 maintainers = with maintainers; [viric];
2929 platforms = with platforms; linux;
3030 };
+1-2
pkgs/applications/misc/stardict/stardict.nix
···3939 meta = {
4040 description = "stardict";
4141 homepage = "A international dictionary supporting fuzzy and glob style matching";
4242- license = "LGPL3";
4242+ license = stdenv.lib.licenses.lgpl3;
4343 maintainers = with stdenv.lib.maintainers; [qknight];
4444 };
4545}
4646-
+1-1
pkgs/applications/misc/surf/default.nix
···3838 surf to another URI by setting its XProperties.
3939 '';
4040 homepage = http://surf.suckless.org;
4141- license = "MIT";
4141+ license = stdenv.lib.licenses.mit;
4242 platforms = stdenv.lib.platforms.linux;
4343 };
4444}
···1515 meta = {
1616 description = "Prints or set the window manager name property of the root window";
1717 homepage = "http://tools.suckless.org/wmname";
1818- license = "MIT";
1818+ license = stdenv.lib.licenses.mit;
1919 };
2020}
+1-1
pkgs/applications/misc/xfe/default.nix
···2424 Xfe aims to be the filemanager of choice for all the Unix addicts!
2525 '';
2626 homepage = "http://sourceforge.net/projects/xfe/";
2727- license = "GPLv2";
2727+ license = stdenv.lib.licenses.gpl2;
2828 maintainers = [ stdenv.lib.maintainers.bbenoist ];
2929 platforms = stdenv.lib.platforms.mesaPlatforms;
3030 };
···11-commit ff4e8b4af04c58fc4c58ee7ed108aefcdc26a960
22-Author: aszlig <aszlig@redmoonstudios.org>
33-Date: Thu May 16 14:17:56 2013 +0200
44-55- zygote: Add support for user namespaces on Linux.
66-77- The implementation is done by patching the Zygote host to execute the sandbox
88- binary with CLONE_NEWUSER and setting the uid and gid mapping so that the child
99- process is using uid 0 and gid 0 which map to the current user of the parent.
1010- Afterwards, the sandbox will continue as if it was called as a setuid binary.
1111-1212- In addition, this adds new_user_namespace as an option in process_util in order
1313- to set the UID and GID mapping correctly. The reason for this is that just
1414- passing CLONE_NEWUSER to clone_flags doesn't help in LaunchProcess(), because
1515- without setting the mappings exec*() will clear the process's capability sets.
1616-1717- If the kernel doesn't support unprivileged user namespaces and the sandbox
1818- binary doesn't have the setuid flag, the Zygote main process will run without a
1919- sandbox. This is to mimic the behaviour if no SUID sandbox binary path is set.
2020-2121- Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2222-2323-diff --git a/base/process/launch.cc b/base/process/launch.cc
2424-index 1329a5a..ec28fdf 100644
2525---- a/base/process/launch.cc
2626-+++ b/base/process/launch.cc
2727-@@ -24,6 +24,7 @@ LaunchOptions::LaunchOptions()
2828- new_process_group(false)
2929- #if defined(OS_LINUX)
3030- , clone_flags(0)
3131-+ , new_user_namespace(false)
3232- #endif // OS_LINUX
3333- #if defined(OS_CHROMEOS)
3434- , ctrl_terminal_fd(-1)
3535-diff --git a/base/process/launch.h b/base/process/launch.h
3636-index ac2df5e..34a3851 100644
3737---- a/base/process/launch.h
3838-+++ b/base/process/launch.h
3939-@@ -100,6 +100,9 @@ struct BASE_EXPORT LaunchOptions {
4040- #if defined(OS_LINUX)
4141- // If non-zero, start the process using clone(), using flags as provided.
4242- int clone_flags;
4343-+
4444-+ // If true, start the process in a new user namespace.
4545-+ bool new_user_namespace;
4646- #endif // defined(OS_LINUX)
4747-4848- #if defined(OS_CHROMEOS)
4949-diff --git a/base/process/launch_posix.cc b/base/process/launch_posix.cc
5050-index de6286d..9333494 100644
5151---- a/base/process/launch_posix.cc
5252-+++ b/base/process/launch_posix.cc
5353-@@ -37,6 +37,13 @@
5454- #include "base/threading/platform_thread.h"
5555- #include "base/threading/thread_restrictions.h"
5656-5757-+#if defined(OS_LINUX)
5858-+#include <sched.h>
5959-+#if !defined(CLONE_NEWUSER)
6060-+#define CLONE_NEWUSER 0x10000000
6161-+#endif
6262-+#endif
6363-+
6464- #if defined(OS_CHROMEOS)
6565- #include <sys/ioctl.h>
6666- #endif
6767-@@ -294,13 +301,23 @@ bool LaunchProcess(const std::vector<std::string>& argv,
6868-6969- pid_t pid;
7070- #if defined(OS_LINUX)
7171-- if (options.clone_flags) {
7272-+ int map_pipe_fd[2];
7373-+ int flags = options.clone_flags;
7474-+
7575-+ if (options.new_user_namespace) {
7676-+ flags |= CLONE_NEWUSER;
7777-+ if (pipe(map_pipe_fd) < 0) {
7878-+ DPLOG(ERROR) << "user namespace pipe";
7979-+ return false;
8080-+ }
8181-+ }
8282-+
8383-+ if (options.clone_flags || options.new_user_namespace) {
8484- // Signal handling in this function assumes the creation of a new
8585- // process, so we check that a thread is not being created by mistake
8686- // and that signal handling follows the process-creation rules.
8787-- RAW_CHECK(
8888-- !(options.clone_flags & (CLONE_SIGHAND | CLONE_THREAD | CLONE_VM)));
8989-- pid = syscall(__NR_clone, options.clone_flags, 0, 0, 0);
9090-+ RAW_CHECK(!(flags & (CLONE_SIGHAND | CLONE_THREAD | CLONE_VM)));
9191-+ pid = syscall(__NR_clone, flags, 0, 0, 0);
9292- } else
9393- #endif
9494- {
9595-@@ -318,6 +335,21 @@ bool LaunchProcess(const std::vector<std::string>& argv,
9696- } else if (pid == 0) {
9797- // Child process
9898-9999-+#if defined(OS_LINUX)
100100-+ if (options.new_user_namespace) {
101101-+ // Close the write end of the pipe so we get an EOF when the parent closes
102102-+ // the FD. This is to avoid race conditions when the UID/GID mappings are
103103-+ // written _after_ execvp().
104104-+ close(map_pipe_fd[1]);
105105-+
106106-+ char dummy;
107107-+ if (HANDLE_EINTR(read(map_pipe_fd[0], &dummy, 1)) != 0) {
108108-+ RAW_LOG(ERROR, "Unexpected input in uid/gid mapping pipe.");
109109-+ _exit(127);
110110-+ }
111111-+ }
112112-+#endif
113113-+
114114- // DANGER: fork() rule: in the child, if you don't end up doing exec*(),
115115- // you call _exit() instead of exit(). This is because _exit() does not
116116- // call any previously-registered (in the parent) exit handlers, which
117117-@@ -433,6 +465,40 @@ bool LaunchProcess(const std::vector<std::string>& argv,
118118- _exit(127);
119119- } else {
120120- // Parent process
121121-+#if defined(OS_LINUX)
122122-+ if (options.new_user_namespace) {
123123-+ // We need to write UID/GID mapping here to map the current user outside
124124-+ // the namespace to the root user inside the namespace in order to
125125-+ // correctly "fool" the child process.
126126-+ char buf[256];
127127-+ int map_fd, map_len;
128128-+
129129-+ snprintf(buf, sizeof(buf), "/proc/%d/uid_map", pid);
130130-+ map_fd = open(buf, O_RDWR);
131131-+ DPCHECK(map_fd >= 0);
132132-+ snprintf(buf, sizeof(buf), "0 %d 1", geteuid());
133133-+ map_len = strlen(buf);
134134-+ if (write(map_fd, buf, map_len) != map_len) {
135135-+ RAW_LOG(WARNING, "Can't write to uid_map.");
136136-+ }
137137-+ close(map_fd);
138138-+
139139-+ snprintf(buf, sizeof(buf), "/proc/%d/gid_map", pid);
140140-+ map_fd = open(buf, O_RDWR);
141141-+ DPCHECK(map_fd >= 0);
142142-+ snprintf(buf, sizeof(buf), "0 %d 1", getegid());
143143-+ map_len = strlen(buf);
144144-+ if (write(map_fd, buf, map_len) != map_len) {
145145-+ RAW_LOG(WARNING, "Can't write to gid_map.");
146146-+ }
147147-+ close(map_fd);
148148-+
149149-+ // Close the pipe on the parent, so the child can continue doing the
150150-+ // execvp() call.
151151-+ close(map_pipe_fd[1]);
152152-+ }
153153-+#endif
154154-+
155155- if (options.wait) {
156156- // While this isn't strictly disk IO, waiting for another process to
157157- // finish is the sort of thing ThreadRestrictions is trying to prevent.
158158-diff --git a/content/browser/zygote_host/zygote_host_impl_linux.cc b/content/browser/zygote_host/zygote_host_impl_linux.cc
159159-index fea43b5..95cbe07 100644
160160---- a/content/browser/zygote_host/zygote_host_impl_linux.cc
161161-+++ b/content/browser/zygote_host/zygote_host_impl_linux.cc
162162-@@ -121,25 +121,31 @@ void ZygoteHostImpl::Init(const std::string& sandbox_cmd) {
163163-164164- sandbox_binary_ = sandbox_cmd.c_str();
165165-166166-- // A non empty sandbox_cmd means we want a SUID sandbox.
167167-- using_suid_sandbox_ = !sandbox_cmd.empty();
168168-+ bool userns_sandbox = false;
169169-+ const std::vector<std::string> cmd_line_unwrapped(cmd_line.argv());
170170-171171-- if (using_suid_sandbox_) {
172172-+ if (!sandbox_cmd.empty()) {
173173- struct stat st;
174174- if (stat(sandbox_binary_.c_str(), &st) != 0) {
175175- LOG(FATAL) << "The SUID sandbox helper binary is missing: "
176176- << sandbox_binary_ << " Aborting now.";
177177- }
178178-179179-- if (access(sandbox_binary_.c_str(), X_OK) == 0 &&
180180-- (st.st_uid == 0) &&
181181-- (st.st_mode & S_ISUID) &&
182182-- (st.st_mode & S_IXOTH)) {
183183-+ if (access(sandbox_binary_.c_str(), X_OK) == 0) {
184184-+ using_suid_sandbox_ = true;
185185-+
186186- cmd_line.PrependWrapper(sandbox_binary_);
187187-188188- scoped_ptr<sandbox::SetuidSandboxClient>
189189- sandbox_client(sandbox::SetuidSandboxClient::Create());
190190- sandbox_client->SetupLaunchEnvironment();
191191-+
192192-+ if (!((st.st_uid == 0) &&
193193-+ (st.st_mode & S_ISUID) &&
194194-+ (st.st_mode & S_IXOTH))) {
195195-+ userns_sandbox = true;
196196-+ sandbox_client->SetNoSuid();
197197-+ }
198198- } else {
199199- LOG(FATAL) << "The SUID sandbox helper binary was found, but is not "
200200- "configured correctly. Rather than run without sandboxing "
201201-@@ -163,7 +169,19 @@ void ZygoteHostImpl::Init(const std::string& sandbox_cmd) {
202202- base::ProcessHandle process = -1;
203203- base::LaunchOptions options;
204204- options.fds_to_remap = &fds_to_map;
205205-+ if (userns_sandbox)
206206-+ options.new_user_namespace = true;
207207- base::LaunchProcess(cmd_line.argv(), options, &process);
208208-+
209209-+ if (process == -1 && userns_sandbox) {
210210-+ LOG(ERROR) << "User namespace sandbox failed to start, running without "
211211-+ << "sandbox! You need at least kernel 3.8.0 with CONFIG_USER_NS "
212212-+ << "enabled in order to use the sandbox without setuid bit.";
213213-+ using_suid_sandbox_ = false;
214214-+ options.new_user_namespace = false;
215215-+ base::LaunchProcess(cmd_line_unwrapped, options, &process);
216216-+ }
217217-+
218218- CHECK(process != -1) << "Failed to launch zygote process";
219219-220220- if (using_suid_sandbox_) {
221221-diff --git a/content/zygote/zygote_main_linux.cc b/content/zygote/zygote_main_linux.cc
222222-index 567b305..1089233 100644
223223---- a/content/zygote/zygote_main_linux.cc
224224-+++ b/content/zygote/zygote_main_linux.cc
225225-@@ -426,6 +426,13 @@ static bool EnterSuidSandbox(LinuxSandbox* linux_sandbox,
226226- *has_started_new_init = true;
227227- }
228228-229229-+ // Don't set non-dumpable, as it causes trouble when the host tries to find
230230-+ // the zygote process (XXX: Not quite sure why this happens with user
231231-+ // namespaces). Fortunately, we also have the seccomp filter sandbox which
232232-+ // should disallow the use of ptrace.
233233-+ if (setuid_sandbox->IsNoSuid())
234234-+ return true;
235235-+
236236- #if !defined(OS_OPENBSD)
237237- // Previously, we required that the binary be non-readable. This causes the
238238- // kernel to mark the process as non-dumpable at startup. The thinking was
239239-diff --git a/sandbox/linux/suid/client/setuid_sandbox_client.cc b/sandbox/linux/suid/client/setuid_sandbox_client.cc
240240-index 34231d4..36e3201 100644
241241---- a/sandbox/linux/suid/client/setuid_sandbox_client.cc
242242-+++ b/sandbox/linux/suid/client/setuid_sandbox_client.cc
243243-@@ -166,6 +166,10 @@ bool SetuidSandboxClient::IsInNewNETNamespace() const {
244244- return env_->HasVar(kSandboxNETNSEnvironmentVarName);
245245- }
246246-247247-+bool SetuidSandboxClient::IsNoSuid() const {
248248-+ return env_->HasVar(kSandboxNoSuidVarName);
249249-+}
250250-+
251251- bool SetuidSandboxClient::IsSandboxed() const {
252252- return sandboxed_;
253253- }
254254-@@ -175,5 +179,9 @@ void SetuidSandboxClient::SetupLaunchEnvironment() {
255255- SetSandboxAPIEnvironmentVariable(env_);
256256- }
257257-258258-+void SetuidSandboxClient::SetNoSuid() {
259259-+ env_->SetVar(kSandboxNoSuidVarName, "1");
260260-+}
261261-+
262262- } // namespace sandbox
263263-264264-diff --git a/sandbox/linux/suid/client/setuid_sandbox_client.h b/sandbox/linux/suid/client/setuid_sandbox_client.h
265265-index a9f6536..2e8113a 100644
266266---- a/sandbox/linux/suid/client/setuid_sandbox_client.h
267267-+++ b/sandbox/linux/suid/client/setuid_sandbox_client.h
268268-@@ -39,6 +39,8 @@ class SetuidSandboxClient {
269269- bool IsInNewPIDNamespace() const;
270270- // Did the setuid helper create a new network namespace ?
271271- bool IsInNewNETNamespace() const;
272272-+ // Is sandboxed without SUID binary ?
273273-+ bool IsNoSuid() const;
274274- // Are we done and fully sandboxed ?
275275- bool IsSandboxed() const;
276276-277277-@@ -46,6 +48,8 @@ class SetuidSandboxClient {
278278- // helper.
279279- void SetupLaunchEnvironment();
280280-281281-+ void SetNoSuid();
282282-+
283283- private:
284284- // Holds the environment. Will never be NULL.
285285- base::Environment* env_;
286286-diff --git a/sandbox/linux/suid/common/sandbox.h b/sandbox/linux/suid/common/sandbox.h
287287-index aad4ff8..bd710d5 100644
288288---- a/sandbox/linux/suid/common/sandbox.h
289289-+++ b/sandbox/linux/suid/common/sandbox.h
290290-@@ -18,6 +18,7 @@ static const char kAdjustLowMemMarginSwitch[] = "--adjust-low-mem";
291291-292292- static const char kSandboxDescriptorEnvironmentVarName[] = "SBX_D";
293293- static const char kSandboxHelperPidEnvironmentVarName[] = "SBX_HELPER_PID";
294294-+static const char kSandboxNoSuidVarName[] = "SBX_NO_SUID";
295295-296296- static const long kSUIDSandboxApiNumber = 1;
297297- static const char kSandboxEnvironmentApiRequest[] = "SBX_CHROME_API_RQ";
···1515 meta = {
1616 homepage = "http://gravit.slowchop.com";
1717 description = "A beautiful OpenGL-based gravity simulator";
1818- license = "GPLv2";
1818+ license = stdenv.lib.licenses.gpl2;
19192020 longDescription = ''
2121 Gravit is a gravity simulator which runs under Linux, Windows and
···4949 offline, so they can be retried when it comes back online.
5050 '';
5151 homepage = http://joeyh.name/code/mr/;
5252- license = "GPLv2+";
5252+ license = stdenv.lib.licenses.gpl2Plus;
5353 platforms = stdenv.lib.platforms.unix;
5454 maintainers = [ stdenv.lib.maintainers.antono ];
5555 };
···1818 meta = {
1919 homepage = http://damien.douxchamps.net/ieee1394/coriander/;
2020 description = "GUI for controlling a Digital Camera through the IEEE1394 bus";
2121- license = "GPLv3+";
2121+ license = stdenv.lib.licenses.gpl3Plus;
2222 maintainers = with stdenv.lib.maintainers; [viric];
2323 platforms = with stdenv.lib.platforms; linux;
2424 };
···114114 supports most SWF v7 features and some SWF v8 and v9.
115115 '';
116116117117- license = "GPLv3+";
117117+ license = stdenv.lib.licenses.gpl3Plus;
118118119119 maintainers = [ stdenv.lib.maintainers.ludo ];
120120 platforms = stdenv.lib.platforms.gnu;
+1-1
pkgs/applications/video/kino/default.nix
···8787 meta = {
8888 description = "Kino is a non-linear DV editor for GNU/Linux";
8989 homepage = http://www.kinodv.org/;
9090- license = "GPL2";
9090+ license = stdenv.lib.licenses.gpl2;
9191 };
9292}
+1-1
pkgs/applications/video/lxdvdrip/default.nix
···2323 meta = {
2424 description = "Command line tool to make a copy from a video DVD for private use";
2525 homepage = http://sourceforge.net/projects/lxdvdrip;
2626- license = "GPLv2";
2626+ license = stdenv.lib.licenses.gpl2;
2727 };
2828}
+1-1
pkgs/applications/video/makemkv/default.nix
···3333 can always download the latest version from makemkv.com that will reset the
3434 expiration date.
3535 '';
3636- license = "unfree";
3636+ license = stdenv.lib.licenses.unfree;
3737 homepage = http://makemkv.com;
3838 };
3939}
···38383939 meta = {
4040 homepage = http://virt-manager.org;
4141- license = "GPLv2+";
4141+ license = stdenv.lib.licenses.gpl2Plus;
4242 maintainers = with stdenv.lib.maintainers; [qknight];
4343 description = "Command line tool which provides an easy way to provision operating systems into virtual machines";
4444 };
···10101111 meta = {
1212 homepage = http://www.gnu.org/software/miscfiles/;
1313- license = "GPLv2+";
1313+ license = stdenv.lib.licenses.gpl2Plus;
1414 description = "Collection of files not of crucial importance for sysadmins";
1515 };
1616}
+1-1
pkgs/desktops/gnome-2/desktop/vte/default.nix
···4040 character set conversion, as well as emulating any terminal known to
4141 the system's terminfo database.
4242 '';
4343- license = "LGPLv2";
4343+ license = stdenv.lib.licenses.lgpl2;
4444 maintainers = with stdenv.lib.maintainers; [ astsmtl ];
4545 platforms = with stdenv.lib.platforms; linux;
4646 };
···180180181181 passthru.jre = result; # FIXME: use multiple outputs or return actual JRE package
182182183183- meta.license = "unfree";
183183+ meta.license = stdenv.lib.licenses.unfree;
184184185185}; in result
···11+{stdenv, version}:
22+33+{
44+ inherit version;
55+66+ platform = if stdenv.system == "i686-linux"
77+ then "linux-i386"
88+ else if stdenv.system == "x86_64-linux"
99+ then "linux-x86_64"
1010+ else if stdenv.system == "i686-darwin"
1111+ then "macos-i386"
1212+ else if stdenv.system == "x86_64-darwin"
1313+ then "macos-x86_64"
1414+ else abort "no snapshot to boostrap for this platform (missing platform url suffix)";
1515+1616+ target = if stdenv.system == "i686-linux"
1717+ then "i686-unknown-linux-gnu"
1818+ else if stdenv.system == "x86_64-linux"
1919+ then "x86_64-unknown-linux-gnu"
2020+ else if stdenv.system == "i686-darwin"
2121+ then "i686-apple-darwin"
2222+ else if stdenv.system == "x86_64-darwin"
2323+ then "x86_64-apple-darwin"
2424+ else abort "no snapshot to boostrap for this platform (missing target triple";
2525+2626+ meta = with stdenv.lib; {
2727+ homepage = http://www.rust-lang.org/;
2828+ description = "A safe, concurrent, practical language";
2929+ maintainers = with maintainers; [ madjar cstrahan ];
3030+ license = map (builtins.getAttr "shortName") [ licenses.mit licenses.asl20 ];
3131+ # platforms as per http://static.rust-lang.org/doc/master/tutorial.html#getting-started
3232+ platforms = [ "i686-linux" "x86_64-linux" "x86_64-darwin" ];
3333+ };
3434+3535+ name = "rustc-${version}";
3636+}
+73
pkgs/development/compilers/rustc/head.nix
···11+{stdenv, fetchurl, fetchgit, which, file, perl, curl, python27, makeWrapper}:
22+33+/* Rust's build process has a few quirks :
44+55+- It requires some patched in llvm that haven't landed upstream, so it
66+ compiles its own llvm. This might change in the future, so at some
77+ point we may be able to switch to nix's llvm.
88+99+- The Rust compiler is written is Rust, so it requires a bootstrap
1010+ compiler, which is downloaded during the build. To make the build
1111+ pure, we download it ourself before and put it where it is
1212+ expected. Once the language is stable (1.0) , we might want to
1313+ switch it to use nix's packaged rust compiler.
1414+1515+*/
1616+1717+with ((import ./common.nix) {inherit stdenv; version = "0.12.0-pre-7a25cf3f3"; });
1818+1919+let snapshot = if stdenv.system == "i686-linux"
2020+ then "a5e1bb723020ac35173d49600e76b0935e257a6a"
2121+ else if stdenv.system == "x86_64-linux"
2222+ then "1a2407df17442d93d1c34c916269a345658045d7"
2323+ else if stdenv.system == "i686-darwin"
2424+ then "6648fa88e41ad7c0991a085366e36d56005873ca"
2525+ else if stdenv.system == "x86_64-darwin"
2626+ then "71b2d1dfd0abe1052908dc091e098ed22cf272c6"
2727+ else abort "no-snapshot for platform ${stdenv.system}";
2828+ snapshotDate = "2014-07-17";
2929+ snapshotRev = "9fc8394";
3030+ snapshotName = "rust-stage0-${snapshotDate}-${snapshotRev}-${platform}-${snapshot}.tar.bz2";
3131+3232+in stdenv.mkDerivation {
3333+ inherit name;
3434+ inherit version;
3535+ inherit meta;
3636+3737+ src = fetchgit {
3838+ url = https://github.com/rust-lang/rust;
3939+ rev = "7a25cf3f30fa5fae2e868fa910ecc850f5e9ee65";
4040+ sha256 = "1hx8vd4gn5plbdvr0zvdvqyw9x9r2vbmh112h2f5d2xxsf9p7rf1";
4141+ };
4242+4343+ # We need rust to build rust. If we don't provide it, configure will try to download it.
4444+ snapshot = stdenv.mkDerivation {
4545+ name = "rust-stage0";
4646+ src = fetchurl {
4747+ url = "http://static.rust-lang.org/stage0-snapshots/${snapshotName}";
4848+ sha1 = snapshot;
4949+ };
5050+ dontStrip = true;
5151+ installPhase = ''
5252+ mkdir -p "$out"
5353+ cp -r bin "$out/bin"
5454+ '' + (if stdenv.isLinux then ''
5555+ patchelf --interpreter "${stdenv.glibc}/lib/${stdenv.gcc.dynamicLinker}" \
5656+ --set-rpath "${stdenv.gcc.gcc}/lib/:${stdenv.gcc.gcc}/lib64/" \
5757+ "$out/bin/rustc"
5858+ '' else "");
5959+ };
6060+6161+ configureFlags = [ "--enable-local-rust" "--local-rust-root=$snapshot" ];
6262+6363+ # The compiler requires cc, so we patch the source to tell it where to find it
6464+ patches = [ ./hardcode_paths.patch ./local_stage0.patch ];
6565+ postPatch = ''
6666+ substituteInPlace src/librustc/back/link.rs \
6767+ --subst-var-by "ccPath" "${stdenv.gcc}/bin/cc" \
6868+ --subst-var-by "arPath" "${stdenv.gcc.binutils}/bin/ar"
6969+ '';
7070+7171+ buildInputs = [ which file perl curl python27 makeWrapper ];
7272+ enableParallelBuilding = true;
7373+}
···3030 of course, AGG can do much more than that.
3131 '';
32323333- license = "GPLv2+";
3333+ license = stdenv.lib.licenses.gpl2Plus;
3434 homepage = http://www.antigrain.com/;
3535 };
3636}
+1-1
pkgs/development/libraries/amrnb/default.nix
···2626 # The wrapper code is free, but not the libraries from 3gpp.
2727 # It's a source code reference implementation with patents and licenses on
2828 # some countries, not redistributable.
2929- license = "unfree";
2929+ license = stdenv.lib.licenses.unfree;
3030 };
3131}
+1-1
pkgs/development/libraries/amrwb/default.nix
···3636 # The wrapper code is free, but not the libraries from 3gpp.
3737 # It's a source code reference implementation with patents and licenses on
3838 # some countries, not redistributable.
3939- license = "unfree";
3939+ license = stdenv.lib.licenses.unfree;
4040 };
4141}
···1111 buildInputs = [ libosip openssl pkgconfig ];
12121313 meta = {
1414- license = "GPLv2+";
1414+ license = stdenv.lib.licenses.gpl2Plus;
1515 description = "Library that hides the complexity of using the SIP protocol";
1616 };
1717}
+1-1
pkgs/development/libraries/exosip/default.nix
···1111 buildInputs = [ libosip openssl pkgconfig ];
12121313 meta = {
1414- license = "GPLv2+";
1414+ license = stdenv.lib.licenses.gpl2Plus;
1515 description = "Library that hides the complexity of using the SIP protocol";
1616 };
1717}
+1-1
pkgs/development/libraries/faad2/default.nix
···1111 meta = {
1212 description = "An open source MPEG-4 and MPEG-2 AAC decoder";
1313 homepage = http://www.audiocoding.com/faad2.html;
1414- license = "GPLv2";
1414+ license = stdenv.lib.licenses.gpl2;
1515 };
1616}
+1-1
pkgs/development/libraries/ffms/default.nix
···1616 meta = {
1717 homepage = http://code.google.com/p/ffmpegsource/;
1818 description = "Libav/ffmpeg based source library for easy frame accurate access";
1919- license = "MIT";
1919+ license = stdenv.lib.licenses.mit;
2020 };
2121}
+1-1
pkgs/development/libraries/fox/default.nix
···2727 Current aims are to make FOX completely platform independent, and thus programs written against the FOX library will be only a compile away from running on a variety of platforms.
2828 '';
2929 homepage = "http://fox-toolkit.org";
3030- license = "LGPLv3";
3030+ license = stdenv.lib.licenses.lgpl3;
3131 maintainers = [ stdenv.lib.maintainers.bbenoist ];
3232 platforms = stdenv.lib.platforms.all;
3333 };
+1-1
pkgs/development/libraries/fox/fox-1.6.nix
···2929 Current aims are to make FOX completely platform independent, and thus programs written against the FOX library will be only a compile away from running on a variety of platforms.
3030 '';
3131 homepage = "http://fox-toolkit.org";
3232- license = "LGPLv3";
3232+ license = stdenv.lib.licenses.lgpl3;
3333 maintainers = [ stdenv.lib.maintainers.bbenoist ];
3434 platforms = stdenv.lib.platforms.mesaPlatforms;
3535 };
···1717 meta = {
1818 description = "The GNU Scientific Library, a large numerical library";
1919 homepage = http://www.gnu.org/software/gsl/;
2020- license = "GPLv3+";
2020+ license = stdenv.lib.licenses.gpl3Plus;
21212222 longDescription = ''
2323 The GNU Scientific Library (GSL) is a numerical library for C
···11+# This file was auto-generated by cabal2nix. Please do NOT edit manually!
22+33+{ cabal }:
44+55+cabal.mkDerivation (self: {
66+ pname = "base-prelude";
77+ version = "0.1.3";
88+ sha256 = "07s5j538zxd0hlazqqbz4nwa82rcrmv25v7jr6nxafmgn83mkqhx";
99+ meta = {
1010+ homepage = "https://github.com/nikita-volkov/base-prelude";
1111+ description = "The most complete prelude formed from only the \"base\" package";
1212+ license = self.stdenv.lib.licenses.mit;
1313+ platforms = self.ghc.meta.platforms;
1414+ };
1515+})
···10101111 meta = {
1212 description = "Libcddb is a C library to access data on a CDDB server (freedb.org)";
1313- license = "LGPLv2+";
1313+ license = stdenv.lib.licenses.lgpl2Plus;
1414 homepage = http://libcddb.sourceforge.net/;
1515 };
1616}
+1-1
pkgs/development/libraries/libcdio/0.82.nix
···2121 ISO-9660 filesystems (libiso9660), as well as utility
2222 programs such as an audio CD player and an extractor.
2323 '';
2424- license = "GPLv2+";
2424+ license = stdenv.lib.licenses.gpl2Plus;
2525 homepage = http://www.gnu.org/software/libcdio/;
2626 };
2727}
+1-1
pkgs/development/libraries/libcdio/default.nix
···2121 ISO-9660 filesystems (libiso9660), as well as utility
2222 programs such as an audio CD player and an extractor.
2323 '';
2424- license = "GPLv2+";
2424+ license = stdenv.lib.licenses.gpl2Plus;
2525 homepage = http://www.gnu.org/software/libcdio/;
2626 };
2727}
+1-1
pkgs/development/libraries/libchamplain/0.6.nix
···19192020 meta = {
2121 homepage = http://projects.gnome.org/libchamplain/;
2222- license = "LGPLv2+";
2222+ license = stdenv.lib.licenses.lgpl2Plus;
23232424 description = "libchamplain, a C library providing a ClutterActor to display maps";
2525
···1313 meta = {
1414 homepage = http://libexif.sourceforge.net/;
1515 description = "A library to read and manipulate EXIF data in digital photographs";
1616- license = "LGPL 2.1";
1616+ license = stdenv.lib.licenses.lgpl21;
1717 };
18181919}
···1111 meta = {
1212 description = "Library for reading and writing the IPTC metadata in images and other files";
1313 homepage = http://libiptcdata.sourceforge.net/;
1414- license = "GPLv2+";
1414+ license = stdenv.lib.licenses.gpl2Plus;
1515 };
1616}
+1-1
pkgs/development/libraries/liblo/default.nix
···1111 meta = {
1212 description = "lightweight library to handle the sending and receiving of messages according to the Open Sound Control (OSC) protocol";
1313 homepage = http://sourceforge.net/projects/liblo;
1414- license = "GPLv2";
1414+ license = stdenv.lib.licenses.gpl2;
1515 maintainers = [stdenv.lib.maintainers.marcweber];
1616 platforms = stdenv.lib.platforms.linux;
1717 };
···2929 it easy to run an HTTP server as part of another application.
3030 '';
31313232- license = "LGPLv2+";
3232+ license = stdenv.lib.licenses.lgpl2Plus;
33333434 homepage = http://www.gnu.org/software/libmicrohttpd/;
3535
···2020 It is only used by other netfilter.org projects, like the aforementioned ones.
2121 '';
2222 homepage = http://www.netfilter.org/projects/libnfnetlink/index.html;
2323- license = "GPLv2";
2323+ license = stdenv.lib.licenses.gpl2;
24242525 platforms = stdenv.lib.platforms.linux;
2626 };
+1-1
pkgs/development/libraries/libnih/default.nix
···1515 meta = {
1616 description = "A small library for C application development";
1717 homepage = https://launchpad.net/libnih;
1818- license = "GPLv2";
1818+ license = stdenv.lib.licenses.gpl2;
1919 };
2020}
+1-1
pkgs/development/libraries/libnxml/default.nix
···1313 meta = {
1414 homepage = http://www.autistici.org/bakunin/libnxml/;
1515 description = "C library for parsing, writing and creating XML 1.0 and 1.1 files or streams";
1616- license = "LGPLv2";
1616+ license = stdenv.lib.licenses.lgpl2;
17171818 platforms = stdenv.lib.platforms.all;
1919 maintainers = [ stdenv.lib.maintainers.viric ];
···2222 homepage = https://fedorahosted.org/newt/;
2323 description = "Library for color text mode, widget based user interfaces";
24242525- license = "LGPLv2";
2525+ license = stdenv.lib.licenses.lgpl2;
2626 platforms = stdenv.lib.platforms.linux;
2727 maintainers = [ stdenv.lib.maintainers.viric ];
2828 };
+1-1
pkgs/development/libraries/npth/default.nix
···2020 that this is a solid way to provide a co-routine based framework.
2121 '';
2222 homepage = http://www.gnupg.org;
2323- license = "LGPLv3";
2323+ license = stdenv.lib.licenses.lgpl3;
2424 platforms = stdenv.lib.platforms.all;
2525 };
2626}
···3333 meta = {
3434 homepage = "http://www.pcre.org/";
3535 description = "A library for Perl Compatible Regular Expressions";
3636- license = "BSD-3";
3636+ license = stdenv.lib.licenses.bsd3;
37373838 longDescription = ''
3939 The PCRE library is a set of functions that implement regular
+1-1
pkgs/development/libraries/phonon/default.nix
···1919 meta = {
2020 homepage = http://phonon.kde.org/;
2121 description = "Multimedia API for Qt";
2222- license = "LGPLv2";
2222+ license = stdenv.lib.licenses.lgpl2;
2323 platforms = stdenv.lib.platforms.linux;
2424 };
2525}
+1-1
pkgs/development/libraries/pixman/default.nix
···1717 meta = {
1818 homepage = http://pixman.org;
1919 description = "A low-level library for pixel manipulation";
2020- license = "MIT";
2020+ license = stdenv.lib.licenses.mit;
2121 };
2222}
+1-1
pkgs/development/libraries/plib/default.nix
···3434 GLUT, or FLTK instead of PLIB's 'PW' windowing library, you can.
3535 '';
36363737- license = "LGPLv2+";
3737+ license = stdenv.lib.licenses.lgpl2Plus;
38383939 homepage = http://plib.sourceforge.net/;
4040 };
+3-3
pkgs/development/libraries/poppler/default.nix
···44}:
5566let
77- version = "0.26.2"; # even major numbers are stable
88- sha256 = "09lm1mfpf0p6vzayl2nbwvsj5gl7sz8sfmwziix0p87bh8x9dn8x";
77+ version = "0.26.3"; # even major numbers are stable
88+ sha256 = "1ca2lrwvhxzq0g4blbvq099vyydfjyz839jki301p1jgazrimjw8";
991010 qtcairo_patches =
1111 let qtcairo = fetchgit { # the version for poppler-0.24
···4949 Poppler is a PDF rendering library based on the xpdf-3.0 code base.
5050 '';
51515252- license = "GPLv2";
5252+ license = stdenv.lib.licenses.gpl2;
5353 platforms = stdenv.lib.platforms.all;
5454 };
5555 } merge ]); # poppler_drv
···1515 meta = {
1616 homepage = "http://biolib.open-bio.org/";
1717 description = "BioLib";
1818- license = "GPL2";
1818+ license = stdenv.lib.licenses.gpl2;
1919 longDescription = ''
2020 BioLib brings together a set of opensource libraries written
2121 in C/C++ and makes them available for major Bio* languages:
···2323 description = "A software framework that allows research manipulation of Biblical texts";
2424 homepage = http://www.crosswire.org/sword/;
2525 platforms = stdenv.lib.platforms.linux;
2626- license = "GPLv2";
2626+ license = stdenv.lib.licenses.gpl2;
2727 maintainers = [ stdenv.lib.maintainers.piotr stdenv.lib.maintainers.AndersonTorres ];
2828 };
2929
+1-1
pkgs/development/libraries/talloc/default.nix
···1818 meta = {
1919 description = "talloc is a hierarchical pool based memory allocator with destructors";
2020 homepage = http://tdb.samba.org/;
2121- license = "GPLv3";
2121+ license = stdenv.lib.licenses.gpl3;
2222 platforms = stdenv.lib.platforms.all;
2323 };
2424}
+1-1
pkgs/development/libraries/tbb/default.nix
···2424 meta = {
2525 description = "Intel Thread Building Blocks C++ Library";
2626 homepage = "http://threadingbuildingblocks.org/";
2727- license = "LGPLv3+";
2727+ license = stdenv.lib.licenses.lgpl3Plus;
2828 longDescription = ''
2929 Intel Threading Building Blocks offers a rich and complete approach to
3030 expressing parallelism in a C++ program. It is a library that helps you
···2828 i.e. this is not a binding to some C library, but the implementation
2929 itself.
3030 '';
3131- license = "MIT/X11";
3131+ license = stdenv.lib.licenses.mit;
3232 platforms = ocaml.meta.platforms;
3333 maintainers = [
3434 stdenv.lib.maintainers.z77z
+1-1
pkgs/development/ocaml-modules/expat/default.nix
···4545 meta = {
4646 homepage = http://www.xs4all.nl/~mmzeeman/ocaml/;
4747 description = "An ocaml wrapper for the Expat XML parsing library";
4848- license = "MIT/X11";
4848+ license = stdenv.lib.licenses.mit;
4949 maintainers = [ stdenv.lib.maintainers.roconnor ];
5050 };
5151}
···3434 In addition to MySQL, there is support for PostgreSQL, Memcached, and a
3535 growing variety of other databases and technologies.
3636 '';
3737- license = "GPLv2+";
3737+ license = stdenv.lib.licenses.gpl2Plus;
3838 homepage = http://www.maatkit.org/;
3939 };
4040}
···3434 plots in publication-ready quality are built out of these
3535 primitives.
3636 '';
3737- license = "GPLv2";
3737+ license = stdenv.lib.licenses.gpl2;
3838 homepage = http://pyx.sourceforge.net/;
3939 };
4040}
···5252 meta = with stdenv.lib; {
5353 homepage = http://buildbot.net/;
54545555- license = "GPLv2+";
5555+ license = stdenv.lib.licenses.gpl2Plus;
56565757 # Of course, we don't really need that on NixOS. :-)
5858 description = "Continuous integration system that automates the build/test cycle";
···2727 meta = {
2828 homepage = "http://www.gnu.org/software/automake/";
2929 description = "GNU standard-compliant makefile generator";
3030- license = "GPLv2+";
3030+ license = stdenv.lib.licenses.gpl2Plus;
31313232 longDescription = ''
3333 GNU Automake is a tool for automatically generating
+1-1
pkgs/development/tools/misc/binutils/default.nix
···78787979 homepage = http://www.gnu.org/software/binutils/;
80808181- license = "GPLv3+";
8181+ license = stdenv.lib.licenses.gpl3Plus;
82828383 /* Give binutils a lower priority than gcc-wrapper to prevent a
8484 collision due to the ld/as wrappers/symlinks in the latter. */
···3535 addresses several issues not considered in that scoring scheme.
3636 '';
37373838- license = "GPLv3+";
3838+ license = stdenv.lib.licenses.gpl3Plus;
39394040 homepage = http://www.gnu.org/software/complexity/;
4141
+1-1
pkgs/development/tools/misc/cppi/default.nix
···2323 to the level of nesting of that directive.
2424 '';
25252626- license = "GPLv3+";
2626+ license = stdenv.lib.licenses.gpl3Plus;
27272828 maintainers = [ stdenv.lib.maintainers.ludo ];
2929 platforms = stdenv.lib.platforms.all;
···3737 operating system like GNU and BSD.
3838 '';
39394040- license = "GPLv3+";
4040+ license = stdenv.lib.licenses.gpl3Plus;
41414242 homepage = http://www.gnu.org/software/global/;
4343
+1-1
pkgs/development/tools/misc/gnum4/default.nix
···3636 compiler or as a macro processor in its own right.
3737 '';
38383939- license = "GPLv3+";
3939+ license = stdenv.lib.licenses.gpl3Plus;
4040 };
41414242}
+1-1
pkgs/development/tools/misc/gob2/default.nix
···1515 meta = {
1616 description = "Preprocessor for making GObjects with inline C code";
1717 homepage = http://www.jirka.org/gob.html;
1818- license = "GPLv2+";
1818+ license = stdenv.lib.licenses.gpl2Plus;
1919 };
2020}
···1313 meta = {
1414 homepage = http://gtkdialog.googlecode.com/;
1515 description = "Small utility for fast and easy GUI building from many scripted and compiled languages";
1616- license = "GPLv2+";
1616+ license = stdenv.lib.licenses.gpl2Plus;
1717 };
1818}
···2929 meta = {
3030 description = "A sentence based license detector";
3131 homepage = "http://ninka.turingmachine.org/";
3232- license = "AGPLv3+";
3232+ license = stdenv.lib.licenses.agpl3Plus;
3333 };
3434}
+1-1
pkgs/development/tools/misc/pmccabe/default.nix
···1818 meta = {
1919 description = "McCabe-style function complexity and line counting for C and C++";
2020 homepage = http://www.parisc-linux.org/~bame/pmccabe/;
2121- license = "GPLv2+";
2121+ license = stdenv.lib.licenses.gpl2Plus;
22222323 longDescription = ''
2424 pmccabe calculates McCabe-style cyclomatic complexity for C and
+1-1
pkgs/development/tools/misc/sloccount/default.nix
···5656 the Perl CPAN library using this tool suite.
5757 '';
58585959- license = "GPLv2+";
5959+ license = stdenv.lib.licenses.gpl2Plus;
60606161 homepage = http://www.dwheeler.com/sloccount/;
6262
···1717 meta = with stdenv.lib; {
1818 description = "Open source flash program for the STM32 ARM processors using the ST bootloader";
1919 homepage = https://code.google.com/p/stm32flash/;
2020- license = "GPLv2";
2020+ license = stdenv.lib.licenses.gpl2;
2121 platforms = platforms.all; # Should work on all platforms
2222 maintainers = [ maintainers.the-kenny ];
2323 };
···1414 meta = {
1515 homepage = http://sysprof.com/;
1616 description = "Sysprof, a system-wide profiler for Linux";
1717- license = "GPLv2+";
1717+ license = stdenv.lib.licenses.gpl2Plus;
18181919 longDescription = ''
2020 Sysprof is a sampling CPU profiler for Linux that uses the perf_event_open
···3131 with Guile. Follow the example level sets and the documentation.
3232 '';
33333434- license = "GPLv3+";
3434+ license = stdenv.lib.licenses.gpl3Plus;
35353636 homepage = http://www.gnu.org/software/ballandpaddle/;
3737
+1-1
pkgs/games/banner/default.nix
···3737 meta = {
3838 homepage = "http://shh.thathost.com/pub-unix/";
3939 description = "print large banners to ASCII terminals";
4040- license = "GPLv2";
4040+ license = stdenv.lib.licenses.gpl2;
41414242 longDescription = ''
4343 An implementation of the traditional Unix-program used to display
+1-1
pkgs/games/bitsnbots/default.nix
···3030 meta = {
3131 description = "Simple puzzle game with moving robots";
3232 homepage = "http://moikmellah.org/blog/?page_id=19";
3333- license = "GPLv3+";
3333+ license = stdenv.lib.licenses.gpl3Plus;
3434 platforms = with stdenv.lib.platforms; linux;
3535 };
3636}
+1-1
pkgs/games/blackshadeselite/default.nix
···3131 meta = {
3232 homepage = http://home.gna.org/blackshadeselite/;
3333 description = "Fork of Black Shades";
3434- license = "GPLv2+"; # Says its gna.org project page
3434+ license = stdenv.lib.licenses.gpl2Plus; # Says its gna.org project page
3535 maintainers = with stdenv.lib.maintainers; [viric];
3636 platforms = with stdenv.lib.platforms; linux;
3737 };
···2727 meta = {
2828 homepage = https://github.com/dhewm/dhewm3;
2929 description = "Doom 3 port to SDL";
3030- license = "GPLv3";
3030+ license = stdenv.lib.licenses.gpl3;
3131 };
32323333}
+82
pkgs/games/dwarf-fortress/df2014.nix
···11+{ stdenv, fetchurl, SDL, SDL_image, SDL_ttf, gtk, glib, mesa, openal, glibc, libsndfile
22+, copyDataDirectory ? false }:
33+44+assert stdenv.system == "i686-linux";
55+66+stdenv.mkDerivation rec {
77+ name = "dwarf-fortress-0.40.05";
88+99+ src = fetchurl {
1010+ url = "http://www.bay12games.com/dwarves/df_40_05_linux.tar.bz2";
1111+ sha256 = "1b9nd33yz5a945v9jyqii1k4s71i701m2d0h7fw6f5g9p6nvx43s";
1212+ };
1313+1414+ phases = "unpackPhase patchPhase installPhase";
1515+1616+ /* :TODO: Game options should be configurable by patching the default configuration files */
1717+1818+ permission = ./df_permission;
1919+2020+ installPhase = ''
2121+ set -x
2222+ mkdir -p $out/bin
2323+ mkdir -p $out/share/df_linux
2424+ cp -r * $out/share/df_linux
2525+ cp $permission $out/share/df_linux/nix_permission
2626+2727+ patchelf --set-interpreter ${glibc}/lib/ld-linux.so.2 $out/share/df_linux/libs/Dwarf_Fortress
2828+ ln -s ${libsndfile}/lib/libsndfile.so $out/share/df_linux/libs/
2929+3030+ cat > $out/bin/dwarf-fortress << EOF
3131+ #!${stdenv.shell}
3232+ export DF_DIR="\$HOME/.config/df_linux"
3333+ if [ -n "\$XDG_DATA_HOME" ]
3434+ then export DF_DIR="\$XDG_DATA_HOME/df_linux"
3535+ fi
3636+3737+ # Recreate a directory structure reflecting the original
3838+ # distribution in the user directory (for modding support)
3939+ ${if copyDataDirectory then ''
4040+ if [ ! -d "\$DF_DIR" ];
4141+ then
4242+ mkdir -p \$DF_DIR
4343+ cp -r $out/share/df_linux/* \$DF_DIR/
4444+ chmod -R u+rw \$DF_DIR/
4545+ fi
4646+ '' else ''
4747+ # Link in the static stuff
4848+ mkdir -p \$DF_DIR
4949+ ln -sf $out/share/df_linux/libs \$DF_DIR/
5050+ ln -sf $out/share/df_linux/raw \$DF_DIR/
5151+ ln -sf $out/share/df_linux/df \$DF_DIR/
5252+5353+ # Delete old data directory
5454+ rm -rf \$DF_DIR/data
5555+5656+ # Link in the static data directory
5757+ mkdir \$DF_DIR/data
5858+ for i in $out/share/df_linux/data/*
5959+ do
6060+ ln -s \$i \$DF_DIR/data/
6161+ done
6262+6363+ # link in persistant data
6464+ mkdir -p \$DF_DIR/save
6565+ ln -s \$DF_DIR/save \$DF_DIR/data/
6666+ ''}
6767+6868+ # now run Dwarf Fortress!
6969+ export LD_LIBRARY_PATH=\$DF_DIR/df_linux/libs/:${SDL}/lib:${SDL_image}/lib/:${SDL_ttf}/lib/:${gtk}/lib/:${glib}/lib/:${mesa}/lib/:${openal}/lib/
7070+ \$DF_DIR/df "\$@"
7171+ EOF
7272+7373+ chmod +x $out/bin/dwarf-fortress
7474+ '';
7575+7676+ meta = {
7777+ description = "control a dwarven outpost or an adventurer in a randomly generated, persistent world";
7878+ homepage = http://www.bay12games.com/dwarves;
7979+ license = "unfree-redistributable";
8080+ maintainers = [stdenv.lib.maintainers.roconnor];
8181+ };
8282+}
+1-1
pkgs/games/dwarf-therapist/default.nix
···5353 meta = {
5454 description = "Tool to manage dwarves in in a running game of Dwarf Fortress";
5555 maintainers = with stdenv.lib.maintainers; [ the-kenny ];
5656- license = "MIT";
5656+ license = stdenv.lib.licenses.mit;
5757 platforms = stdenv.lib.platforms.linux;
5858 hydraPlatforms = [];
5959 homepage = https://code.google.com/r/splintermind-attributes/;
+1-1
pkgs/games/egoboo/default.nix
···4848 description = "3D dungeon crawling adventure";
49495050 homepage = http://www.freedink.org/;
5151- license = "GPLv2+";
5151+ license = stdenv.lib.licenses.gpl2Plus;
52525353 # I take it out of hydra as it does not work as well as I'd like
5454 # maintainers = [ stdenv.lib.maintainers.bjg ];
···1818 meta = {
1919 homepage = http://olofson.net/kobodl/;
2020 description = "Enhanced version of Akira Higuchi's game XKobo for Un*x systems with X11";
2121- license = "GPLv2+";
2121+ license = stdenv.lib.licenses.gpl2Plus;
2222 };
2323}
···11111212 meta = {
1313 homepage = http://pio.sourceforge.net/;
1414- license = "GPLv2+";
1414+ license = stdenv.lib.licenses.gpl2Plus;
1515 description = "Addicting game based on The Settlers of Catan";
1616 maintainers = with stdenv.lib.maintainers; [viric];
1717 platforms = with stdenv.lib.platforms; linux;
+1-1
pkgs/games/planetaryannihilation/default.nix
···4747 meta = with stdenv.lib; {
4848 homepage = http://www.uberent.com/pa/;
4949 description = "next-generation RTS that takes the genre to a planetary scale";
5050- license = "unfree";
5050+ license = stdenv.lib.licenses.unfree;
5151 platforms = platforms.linux;
5252 maintainers = [ maintainers.iElectric ];
5353 };
+1-1
pkgs/games/pong3d/default.nix
···1717 meta = {
1818 homepage = http://www.newbreedsoftware.com/3dpong/;
1919 description = "One or two player 3d sports game based on Pong from Atari";
2020- license = "GPLv2+";
2020+ license = stdenv.lib.licenses.gpl2Plus;
2121 };
2222}
···5252 meta = {
5353 description = "3D simulator game where you can drive, fly and sail various vehicles";
5454 homepage = http://rigsofrods.sourceforge.net/;
5555- license = "GPLv3";
5555+ license = stdenv.lib.licenses.gpl3;
5656 maintainers = with stdenv.lib.maintainers; [viric raskin];
5757 platforms = stdenv.lib.platforms.linux;
5858 hydraPlatforms = [];
+1-1
pkgs/games/rili/default.nix
···19192020 meta = {
2121 homepage = http://ri-li.sourceforge.net;
2222- license = "GPL2+";
2222+ license = stdenv.lib.licenses.gpl2Plus;
2323 description = "A children's train game";
2424 longDescription = ''
2525 Ri-li is an arcade game licensed under the GPL (General Public License).
+1-1
pkgs/games/scorched3d/default.nix
···3333 meta = {
3434 homepage = http://scorched3d.co.uk/;
3535 description = "3D Clone of the classic Scorched Earth";
3636- license = "GPLv2+";
3636+ license = stdenv.lib.licenses.gpl2Plus;
3737 };
3838}
···2828 meta = {
2929 homepage = http://ufoai.org;
3030 description = "A squad-based tactical strategy game in the tradition of X-Com";
3131- license = "GPLv2+";
3131+ license = stdenv.lib.licenses.gpl2Plus;
3232 maintainers = with stdenv.lib.maintainers; [viric];
3333 platforms = stdenv.lib.platforms.linux;
3434 hydraPlatforms = [];
+1-1
pkgs/games/ultimatestunts/default.nix
···1717 meta = {
1818 homepage = http://www.ultimatestunts.nl/;
1919 description = "Remake of the popular racing DOS-game Stunts";
2020- license = "GPLv2+";
2020+ license = stdenv.lib.licenses.gpl2Plus;
2121 maintainers = with stdenv.lib.maintainers; [viric];
2222 platforms = with stdenv.lib.platforms; linux;
2323 };
+1-1
pkgs/games/ultrastardx/default.nix
···2626 meta = {
2727 homepage = http://ultrastardx.sourceforge.net/;
2828 description = "Free and open source karaoke game";
2929- license = "GPLv2+";
2929+ license = stdenv.lib.licenses.gpl2Plus;
3030 };
3131}
+1-1
pkgs/games/uqm/default.nix
···102102 - to adapt the code so that people can more easily make their own spin-offs, thereby making zillions more people happy!
103103 '';
104104 homepage = http://sc2.sourceforge.net/;
105105- license = "GPLv2";
105105+ license = stdenv.lib.licenses.gpl2;
106106 maintainers = with maintainers; [ jcumming aszlig ];
107107 };
108108}
···1717 meta = {
1818 homepage = http://www.newbreedsoftware.com/vectoroids/;
1919 description = "Clone of the classic arcade game Asteroids by Atari";
2020- license = "GPLv2+";
2020+ license = stdenv.lib.licenses.gpl2Plus;
2121 };
2222}
+1-1
pkgs/games/zod/default.nix
···3939 meta = {
4040 description = "Multiplayer remake of ZED";
4141 homepage = http://zod.sourceforge.net/;
4242- license = "GPLv3+"; /* Says the web */
4242+ license = stdenv.lib.licenses.gpl3Plus; /* Says the web */
4343 };
4444}
+1-1
pkgs/misc/beep/default.nix
···1919 meta = {
2020 description = "The advanced PC speaker beeper";
2121 homepage = http://www.johnath.com/beep/;
2222- license = "GPLv2";
2222+ license = stdenv.lib.licenses.gpl2;
2323 };
2424}
+1-1
pkgs/misc/cups/pdf-filter.nix
···3232 meta = {
3333 homepage = http://www.cups.org/;
3434 description = "Image and pdf filters for CUPS";
3535- license = "GPLv2";
3535+ license = stdenv.lib.licenses.gpl2;
3636 maintainers = [ stdenv.lib.maintainers.urkud ];
3737 platforms = stdenv.lib.platforms.linux;
3838 };
+3-5
pkgs/misc/drivers/hplip/default.nix
···5656 ''
5757 + (stdenv.lib.optionalString withPlugin
5858 (let hplip_arch =
5959- if builtins.currentSystem == "i686-linux"
6060- then "x86_32"
6161- else if builtins.currentSystem == "x86_64-linux"
6262- then "x86_64"
6363- else abort "Platform must be i686-linux or x86_64-linux!";
5959+ if stdenv.system == "i686-linux" then "x86_32"
6060+ else if stdenv.system == "x86_64-linux" then "x86_64"
6161+ else abort "Platform must be i686-linux or x86_64-linux!";
6462 in
6563 ''
6664 sh ${plugin} --noexec --keep
+1-1
pkgs/misc/emulators/VisualBoyAdvance/default.nix
···16161717 meta = {
1818 description = "A Game Boy/Game Boy Color/Game Boy Advance Emulator";
1919- license = "GPLv2+";
1919+ license = stdenv.lib.licenses.gpl2Plus;
2020 maintainers = [ stdenv.lib.maintainers.sander ];
2121 homepage = http://vba.ngemu.com;
2222 broken = true;
+1-1
pkgs/misc/emulators/bsod/default.nix
···2323 blue screen of death on the console. Errors and drivers causing the
2424 error are selected randomly from a large set of examples.";
2525 homepage = "http://www.vanheusden.com/bsod/";
2626- license = "GPLv2";
2626+ license = stdenv.lib.licenses.gpl2;
2727 platforms = stdenv.lib.platforms.unix;
2828 maintainers = [ stdenv.lib.maintainers.antono ];
2929 };
···4848 meta = {
4949 description = "Non-Photorealistic Line Drawing rendering from 3D scenes";
5050 homepage = http://freestyle.sourceforge.net;
5151- license = "GPL2";
5151+ license = stdenv.lib.licenses.gpl2;
5252 };
5353}
+1-1
pkgs/misc/ghostscript/default.nix
···2323 of output drivers for various file formats and printers.
2424 '';
25252626- license = "GPLv3+";
2626+ license = stdenv.lib.licenses.gpl3Plus;
27272828 platforms = stdenv.lib.platforms.all;
2929 maintainers = [ stdenv.lib.maintainers.viric ];
+1-1
pkgs/os-specific/gnu/default.nix
···8282 mig = callPackage ./mig {
8383 # Build natively, but force use of a 32-bit environment because we're
8484 # targeting `i586-pc-gnu'.
8585- stdenv = (forceSystem "i686-linux").stdenv;
8585+ stdenv = (forceSystem "i686-linux" "i386").stdenv;
8686 };
87878888 # XXX: Use this one for its `.crossDrv'. Using the one above from
···1818 meta = {
1919 homepage = http://www.open-mesh.org/projects/batman-adv/wiki/Wiki;
2020 description = "B.A.T.M.A.N. routing protocol in a linux kernel module for layer 2, control tool";
2121- license = "GPLv2";
2121+ license = stdenv.lib.licenses.gpl2;
2222 maintainers = with stdenv.lib.maintainers; [viric];
2323 platforms = with stdenv.lib.platforms; linux;
2424 };
+1-1
pkgs/os-specific/linux/batman-adv/default.nix
···1919 meta = {
2020 homepage = http://www.open-mesh.org/projects/batman-adv/wiki/Wiki;
2121 description = "B.A.T.M.A.N. routing protocol in a linux kernel module for layer 2";
2222- license = "GPLv2";
2222+ license = stdenv.lib.licenses.gpl2;
2323 maintainers = with stdenv.lib.maintainers; [viric];
2424 platforms = with stdenv.lib.platforms; linux;
2525 };
+1-1
pkgs/os-specific/linux/blcr/default.nix
···3434 meta = {
3535 description = "Berkeley Lab Checkpoint/Restart for Linux (BLCR)";
3636 homepage = https://ftg.lbl.gov/projects/CheckpointRestart/;
3737- license = "GPL2";
3737+ license = stdenv.lib.licenses.gpl2;
3838 platforms = stdenv.lib.platforms.linux;
3939 maintainers = with stdenv.lib.maintainers; [
4040 z77z
+6-2
pkgs/os-specific/linux/busybox/default.nix
···2828 nixConfig = ''
2929 CONFIG_PREFIX "$out"
3030 CONFIG_INSTALL_NO_USR y
3131+3232+ # Use the external mount.cifs program.
3333+ CONFIG_FEATURE_MOUNT_CIFS n
3434+ CONFIG_FEATURE_MOUNT_HELPERS y
3135 '';
32363337 staticConfig = stdenv.lib.optionalString enableStatic ''
···4953 ${configParser}
5054 cat << EOF | parseconfig
5155 ${staticConfig}
5252- ${extraConfig}
5356 ${nixConfig}
5757+ ${extraConfig}
5458 $extraCrossConfig
5559 EOF
5660 make oldconfig
···7074 meta = {
7175 description = "Tiny versions of common UNIX utilities in a single small executable";
7276 homepage = http://busybox.net/;
7373- license = "GPLv2";
7777+ license = stdenv.lib.licenses.gpl2;
7478 maintainers = with stdenv.lib.maintainers; [viric];
7579 platforms = with stdenv.lib.platforms; linux;
7680 };
+1-1
pkgs/os-specific/linux/cryptodev/default.nix
···2525 meta = {
2626 description = "Device that allows access to Linux kernel cryptographic drivers";
2727 homepage = http://home.gna.org/cryptodev-linux/;
2828- license = "GPLv2+";
2828+ license = stdenv.lib.licenses.gpl2Plus;
2929 };
3030}
+1-1
pkgs/os-specific/linux/cryptsetup/default.nix
···2121 meta = {
2222 homepage = http://code.google.com/p/cryptsetup/;
2323 description = "LUKS for dm-crypt";
2424- license = "GPLv2";
2424+ license = stdenv.lib.licenses.gpl2;
2525 maintainers = with stdenv.lib.maintainers; [ viric chaoflow ];
2626 platforms = with stdenv.lib.platforms; linux;
2727 };
+1-1
pkgs/os-specific/linux/disk-indicator/default.nix
···3030 Small program for Linux that will turn your Scroll, Caps or Num Lock LED
3131 or LED on your ThinkPad laptop into a hard disk activity indicator.
3232 '';
3333- license = "GPLv3";
3333+ license = stdenv.lib.licenses.gpl3;
3434 platforms = stdenv.lib.platforms.linux;
3535 };
3636}
···3838 it into "hibernation". It works both with Linux swsusp and Tux-on-Ice.
3939 '';
40404141- license = "GPLv2+";
4141+ license = stdenv.lib.licenses.gpl2Plus;
4242 homepage = http://www.tuxonice.net/;
4343 };
4444 }
+1-1
pkgs/os-specific/linux/hwdata/default.nix
···1515 meta = {
1616 homepage = "https://fedorahosted.org/hwdata/";
1717 description = "Hardware Database, including Monitors, pci.ids, usb.ids, and video cards";
1818- license = "GPLv2";
1818+ license = stdenv.lib.licenses.gpl2;
1919 platforms = stdenv.lib.platforms.linux;
2020 };
2121}
···4343 meta = {
4444 homepage = http://pamusb.org/;
4545 description = "Authentication using USB Flash Drives";
4646- license = "GPLv2";
4646+ license = stdenv.lib.licenses.gpl2;
4747 };
4848}
+1-1
pkgs/os-specific/linux/pcmciautils/default.nix
···5050 the PCMCIA subsystem to behave (almost) as every other
5151 hotpluggable bus system.
5252 ";
5353- license = "GPL2";
5353+ license = stdenv.lib.licenses.gpl2;
5454 };
5555}
+1-1
pkgs/os-specific/linux/pm-utils/default.nix
···4949 meta = {
5050 homepage = http://pm-utils.freedesktop.org/wiki/;
5151 description = "A small collection of scripts that handle suspend and resume on behalf of HAL";
5252- license = "GPLv2";
5252+ license = stdenv.lib.licenses.gpl2;
5353 platforms = stdenv.lib.platforms.linux;
5454 };
5555}
···2121 meta = {
2222 homepage = http://sebastien.godard.pagesperso-orange.fr/;
2323 description = "A collection of performance monitoring tools for Linux (such as sar, iostat and pidstat)";
2424- license = "GPLv2+";
2424+ license = stdenv.lib.licenses.gpl2Plus;
2525 platforms = stdenv.lib.platforms.linux;
2626 maintainers = [ stdenv.lib.maintainers.eelco ];
2727 };
+1-1
pkgs/os-specific/linux/tunctl/default.nix
···1616 meta = {
1717 homepage = http://tunctl.sourceforge.net/;
1818 description = "Utility to set up and maintain TUN/TAP network interfaces";
1919- license = "GPLv2";
1919+ license = stdenv.lib.licenses.gpl2;
2020 };
2121}
+1-1
pkgs/os-specific/linux/uclibc/default.nix
···9696 meta = {
9797 homepage = http://www.uclibc.org/;
9898 description = "A small implementation of the C library";
9999- license = "LGPLv2";
9999+ license = stdenv.lib.licenses.lgpl2;
100100 };
101101}
+1-1
pkgs/os-specific/linux/usermount/default.nix
···2121 meta = {
2222 homepage = https://github.com/tom5760/usermount;
2323 description = "A simple tool to automatically mount removable drives using UDisks2 and D-Bus.";
2424- license = "MIT";
2424+ license = stdenv.lib.licenses.mit;
2525 platforms = stdenv.lib.platforms.linux;
2626 maintainers = with stdenv.lib.maintainers; [ the-kenny ];
2727 };
···3434 $ELASTICMQ_DATA_PREFIX/conf/Default.scala. You can use the
3535 Default.scala included in the distribution as a template.
3636 '';
3737- license = "APLv2";
3737+ license = stdenv.lib.licenses.asl20;
3838 };
3939}
···2727 and group by, and is easy to setup and learn.
2828 '';
2929 homepage = http://www.rethinkdb.com;
3030- license = "AGPLv3";
3030+ license = stdenv.lib.licenses.agpl3;
31313232 maintainers = [ stdenv.lib.maintainers.bluescreen303 ];
3333 platforms = stdenv.lib.platforms.all;
+1-1
pkgs/servers/pies/default.nix
···3434 native utilities). Finally, it can replace the inetd utility!
3535 '';
36363737- license = "GPLv3+";
3737+ license = stdenv.lib.licenses.gpl3Plus;
38383939 homepage = http://www.gnu.org/software/pies/;
4040
+1-1
pkgs/servers/prayer/default.nix
···3131 meta = {
3232 homepage = http://www-uxsup.csx.cam.ac.uk/~dpc22/prayer/;
3333 description = "Yet another Webmail interface for IMAP servers on Unix systems written in C";
3434- license = "GPLv2+";
3434+ license = stdenv.lib.licenses.gpl2Plus;
3535 };
3636}
···1919 inherit version;
2020 homepage = "http://www.nongnu.org/autocutsel/";
2121 description = "Tracks changes in the server's cutbuffer and CLIPBOARD selection";
2222- license = "GPLv2+";
2222+ license = stdenv.lib.licenses.gpl2Plus;
2323 platforms = with stdenv.lib.platforms; all;
2424 updateWalker = true;
2525 };
+1-1
pkgs/tools/X11/bgs/default.nix
···16161717 meta = {
1818 description = "Extremely fast and small background setter for X";
1919- license = "MIT";
1919+ license = stdenv.lib.licenses.mit;
2020 hydraPlatforms = stdenv.lib.platforms.linux;
2121 maintainers = with stdenv.lib.maintainers; [pSub];
2222 };
+1-1
pkgs/tools/X11/hsetroot/default.nix
···1414 meta = {
1515 description = "hsetroot allows you to compose wallpapers ('root pixmaps') for X";
1616 homepage = http://thegraveyard.org/hsetroot.html;
1717- license = "GPLv2+";
1717+ license = stdenv.lib.licenses.gpl2Plus;
1818 };
1919}
+1-1
pkgs/tools/X11/xbindkeys/default.nix
···1313 meta = {
1414 homepage = http://www.nongnu.org/xbindkeys/xbindkeys.html;
1515 description = "Launch shell commands with your keyboard or your mouse under X Window";
1616- license = "GPLv2+";
1616+ license = stdenv.lib.licenses.gpl2Plus;
1717 maintainers = with stdenv.lib.maintainers; [viric];
1818 platforms = with stdenv.lib.platforms; linux;
1919 };
+1-1
pkgs/tools/X11/xchainkeys/default.nix
···1313 meta = {
1414 homepage = "https://code.google.com/p/xchainkeys/";
1515 description = "A standalone X11 program to create chained key bindings";
1616- license = "GPLv3";
1616+ license = stdenv.lib.licenses.gpl3;
1717 };
1818}
···2020 meta = {
2121 description = "backup system trying to combine best a mirror and an incremental backup system";
2222 homepage = http://rdiff-backup.nongnu.org/;
2323- license = "GPL-2";
2323+ license = stdenv.lib.licenses.gpl2;
2424 maintainers = with stdenv.lib.maintainers; [ the-kenny ];
2525 };
2626}
+1-1
pkgs/tools/backup/rsnapshot/default.nix
···3333 meta = {
3434 description = "A filesystem snapshot utility for making backups of local and remote systems";
3535 homepage = http://rsnapshot.org/;
3636- license = "GPLv2+";
3636+ license = stdenv.lib.licenses.gpl2Plus;
3737 };
3838}
···2929 meta = {
3030 homepage = http://upx.sourceforge.net/;
3131 description = "The Ultimate Packer for eXecutables";
3232- license = "GPLv2+";
3232+ license = stdenv.lib.licenses.gpl2Plus;
3333 };
3434}
+1-1
pkgs/tools/filesystems/archivemount/default.nix
···15151616 meta = {
1717 description = "Gateway between FUSE and libarchive: allows mounting of cpio, .tar.gz, .tar.bz2 archives";
1818- license = "GPL2";
1818+ license = stdenv.lib.licenses.gpl2;
19192020 platforms = stdenv.lib.platforms.linux;
2121 maintainers = [ stdenv.lib.maintainers.simons ];
+1-1
pkgs/tools/filesystems/chunkfs/default.nix
···2424 meta = {
2525 description = "(Un)ChunkFS is a pair of FUSE filesystems for viewing chunksync-style directory trees as a block device and vice versa.";
2626 homepage = "http://chunkfs.florz.de/";
2727- license = "GPLv2";
2727+ license = stdenv.lib.licenses.gpl2;
2828 platforms = with stdenv.lib.platforms; linux;
2929 };
3030}
+1-1
pkgs/tools/filesystems/ciopfs/default.nix
···1515 meta = {
1616 homepage = http://www.brain-dump.org/projects/ciopfs/;
1717 description = "A case-insensitive filesystem layered on top of any other filesystem";
1818- license = "GPLv2";
1818+ license = stdenv.lib.licenses.gpl2;
1919 };
2020}
+1-1
pkgs/tools/filesystems/fsfs/default.nix
···2525 meta = {
2626 homepage = http://fsfs.sourceforge.net/;
2727 description = "Secure distributed file system in user space";
2828- license = "GPLv2+";
2828+ license = stdenv.lib.licenses.gpl2Plus;
2929 };
3030}
···2121 classifications and corrections. It is based on a Bayesian
2222 filter.
2323 '';
2424- license = "GPLv2";
2424+ license = stdenv.lib.licenses.gpl2;
2525 };
2626}
···2020 meta = {
2121 homepage = "https://github.com/clvv/fasd";
2222 description = "quick command-line access to files and directories for POSIX shells";
2323- license = "free";
2323+ license = "free"; # https://github.com/clvv/fasd/blob/master/LICENSE
24242525 longDescription = ''
2626 Fasd is a command-line productivity booster.
···3333 platforms = stdenv.lib.platforms.all;
3434 };
3535}
3636-3737-
+1-1
pkgs/tools/misc/fdupes/default.nix
···1919 files within a set of directories.
2020 '';
2121 homepage = http://code.google.com/p/fdupes/;
2222- license = "MIT";
2222+ license = stdenv.lib.licenses.mit;
2323 platforms = stdenv.lib.platforms.all;
2424 maintainers = [
2525 stdenv.lib.maintainers.z77z
+1-1
pkgs/tools/misc/fileschanged/default.nix
···1717 meta = {
1818 homepage = "http://www.nongnu.org/fileschanged/";
1919 description = "A command-line utility that reports when files have been altered";
2020- license = "GPLv3+";
2020+ license = stdenv.lib.licenses.gpl3Plus;
21212222 longDescription = ''
2323 This utility is a client to FAM (File Alteration Monitor) servers
+1-1
pkgs/tools/misc/findutils/default.nix
···3838 * xargs - build and execute command lines from standard input.
3939 '';
40404141- license = "GPLv3+";
4141+ license = stdenv.lib.licenses.gpl3Plus;
4242 };
4343}
···2525 as well as run various tests on it.
2626 '';
2727 homepage = http://gsmartcontrol.sourceforge.net/;
2828- license = "GPLv2+";
2828+ license = stdenv.lib.licenses.gpl2Plus;
2929 maintainers = with stdenv.lib.maintainers; [qknight];
3030 platforms = with stdenv.lib.platforms; linux;
3131 };
+1-1
pkgs/tools/misc/hddtemp/default.nix
···2626 meta = {
2727 description = "Tool for displaying hard disk temperature";
2828 homepage = https://savannah.nongnu.org/projects/hddtemp/;
2929- license = "GPL2";
2929+ license = stdenv.lib.licenses.gpl2;
3030 };
3131}
+1-1
pkgs/tools/misc/heimdall/default.nix
···5252 meta = {
5353 homepage = http://www.glassechidna.com.au/products/heimdall/;
5454 description = "A cross-platform open-source tool suite used to flash firmware onto Samsung Galaxy S devices";
5555- license = "bsd";
5555+ license = stdenv.lib.licenses.mit;
5656 };
5757}
···30303131 meta = {
3232 description = "CLI program for LSI MegaRAID cards, which also works with some Dell PERC RAID cards";
3333- license = "unfree";
3333+ license = stdenv.lib.licenses.unfree;
3434 };
3535}
+1-1
pkgs/tools/misc/mktorrent/default.nix
···19192020 meta = {
2121 homepage = http://mktorrent.sourceforge.net/;
2222- license = "GPLv2+";
2222+ license = stdenv.lib.licenses.gpl2Plus;
2323 description = "Command line utility to create BitTorrent metainfo files";
2424 platforms = with stdenv.lib.platforms; linux;
2525 maintainers = with stdenv.lib.maintainers; [viric];
+1-1
pkgs/tools/misc/most/default.nix
···2626 windows and can scroll left and right. Why settle for less?
2727 '';
2828 homepage = http://www.jedsoft.org/most/index.html;
2929- license = "GPLv2";
2929+ license = stdenv.lib.licenses.gpl2;
3030 platforms = stdenv.lib.platforms.gnu; # random choice
3131 };
3232}
+1-1
pkgs/tools/misc/mssys/default.nix
···16161717 meta = {
1818 homepage = http://ms-sys.sourceforge.net/;
1919- license = "GPL";
1919+ license = stdenv.lib.licenses.gpl2;
2020 description = "A program for writing Microsoft compatible boot records";
2121 };
2222}
···1515 meta = {
1616 description = "program that connects stdin and stdout to a server somewhere on the network, through a standard HTTPS proxy";
1717 homepage = http://proxytunnel.sourceforge.net/download.php;
1818- license = "GPLv2";
1818+ license = stdenv.lib.licenses.gpl2;
1919 };
2020}
+1-1
pkgs/tools/misc/pv/default.nix
···1111 meta = {
1212 homepage = http://www.ivarch.com/programs/pv;
1313 description = "Tool for monitoring the progress of data through a pipeline";
1414- license = "free";
1414+ license = "Artistic-2";
1515 maintainers = with stdenv.lib.maintainers; [viric];
1616 platforms = with stdenv.lib.platforms; all;
1717 };
···21212222 meta = {
2323 homepage = http://www.tkl.iis.u-tokyo.ac.jp/~toyoda/index_e.html;
2424- license = "unfree"; # I couldn't find its license, only a copyright.
2424+ license = stdenv.lib.licenses.unfree; # I couldn't find its license, only a copyright.
2525 description = "Steam Locomotive runs across your terminal when you type 'sl'";
2626 platforms = with stdenv.lib.platforms; linux;
2727 };
···2929 stream audio or video content from all types of flash or rtmp servers.
3030 '';
31313232- license = "GPLv2+";
3232+ license = stdenv.lib.licenses.gpl2Plus;
33333434 homepage = http://savannah.nongnu.org/projects/flvstreamer;
3535
···2626 Mosh is a replacement for SSH. It's more robust and responsive,
2727 especially over Wi-Fi, cellular, and long-distance links.
2828 '';
2929- license = "GPLv3+";
2929+ license = stdenv.lib.licenses.gpl3Plus;
3030 maintainers = with stdenv.lib.maintainers; [viric];
3131 platforms = stdenv.lib.platforms.unix;
3232 };
+1-1
pkgs/tools/networking/mu/default.nix
···38383939 meta = {
4040 description = "A collection of utilties for indexing and searching Maildirs";
4141- license = "GPLv3+";
4141+ license = stdenv.lib.licenses.gpl3Plus;
4242 homepage = "http://www.djcbsoftware.nl/code/mu/";
4343 platforms = stdenv.lib.platforms.mesaPlatforms;
4444 maintainers = with stdenv.lib.maintainers; [ antono the-kenny ];
+1-1
pkgs/tools/networking/nbd/default.nix
···2626 meta = {
2727 homepage = "http://nbd.sourceforge.net";
2828 description = "map arbitrary files as block devices over the network";
2929- license = "GPLv2";
2929+ license = stdenv.lib.licenses.gpl2;
3030 maintainers = [ stdenv.lib.maintainers.simons ];
3131 platforms = stdenv.lib.platforms.unix;
3232 };
+1-1
pkgs/tools/networking/netkit/tftp/default.nix
···1818 meta = {
1919 description = "Netkit TFTP client and server";
2020 homepage = "ftp://ftp.uk.linux.org/pub/linux/Networking/netkit/";
2121- license = "BSD";
2121+ license = "BSD-Original";
2222 maintainers = with stdenv.lib.maintainers; [viric];
2323 platforms = with stdenv.lib.platforms; linux;
2424 };
+1-1
pkgs/tools/networking/ngrep/default.nix
···3232 # <ngrep>/doc/README.txt says that ngrep itself is licensed under a
3333 # 'BSD-like' license but that the 'regex' library (in the ngrep tarball) is
3434 # GPLv2.
3535- license = "BSD-like";
3535+ license = "ngrep"; # Some custom BSD-style, see LICENSE.txt
3636 platforms = platforms.linux;
3737 maintainers = [ maintainers.bjornfor ];
3838 };
+1-1
pkgs/tools/networking/nss-mdns/default.nix
···3131 '';
32323333 homepage = http://0pointer.de/lennart/projects/nss-mdns/;
3434- license = "LGPLv2+";
3434+ license = stdenv.lib.licenses.lgpl2Plus;
35353636 # Supports both the GNU and FreeBSD NSS.
3737 platforms = stdenv.lib.platforms.gnu ++ stdenv.lib.platforms.freebsd;
···1515 meta = {
1616 description = "free implementation of the OpenPGP standard for encrypting and signing data";
1717 homepage = http://www.gnupg.org/;
1818- license = "GPLv3+";
1818+ license = stdenv.lib.licenses.gpl3Plus;
1919 platforms = stdenv.lib.platforms.gnu; # arbitrary choice
2020 };
2121}
+1-1
pkgs/tools/security/meo/default.nix
···2727 meta = {
2828 homepage = http://oss.stamfest.net/wordpress/meo-multiple-eyepairs-only;
2929 description = "Tools to use cryptography for things like four-eyes principles";
3030- license = "AGPLv3+";
3030+ license = stdenv.lib.licenses.agpl3Plus;
3131 maintainers = with stdenv.lib.maintainers; [viric];
3232 platforms = with stdenv.lib.platforms; linux;
3333 };
+1-1
pkgs/tools/security/muscletool/default.nix
···1212 meta = {
1313 description = "Smart card applications for use with MUSCLE plugins";
1414 homepage = http://muscleapps.alioth.debian.org/;
1515- license = "BSD";
1515+ license = "BSD"; # http://anonscm.debian.org/viewvc/muscleapps/trunk/muscleTool/COPYING?view=markup
1616 maintainers = with stdenv.lib.maintainers; [viric];
1717 platforms = with stdenv.lib.platforms; linux;
1818 };
+28
pkgs/tools/security/paperkey/default.nix
···11+{ fetchurl, stdenv }:
22+33+stdenv.mkDerivation rec {
44+55+ version = "1.3";
66+ name = "paperkey-${version}";
77+88+ src = fetchurl {
99+ url = "http://www.jabberwocky.com/software/paperkey/${name}.tar.gz";
1010+ sha256 = "5b57d7522336fb65c4c398eec27bf44ec0aaa35926157b79a76423231792cbfb";
1111+ };
1212+1313+ enableParallelBuilding = true;
1414+1515+ meta = with stdenv.lib; {
1616+ description = "Store OpenPGP or GnuPG on paper";
1717+ longDescription = ''
1818+ A reasonable way to achieve a long term backup of OpenPGP (GnuPG, PGP, etc)
1919+ keys is to print them out on paper. Paper and ink have amazingly long
2020+ retention qualities - far longer than the magnetic or optical means that
2121+ are generally used to back up computer data.
2222+ '';
2323+ homepage = "http://www.jabberwocky.com/software/paperkey/";
2424+ license = licenses.gpl2;
2525+ platforms = platforms.linux;
2626+ maintainers = [ maintainers.skeidel ];
2727+ };
2828+}
···2323 meta = {
2424 description = "A set of text-mode partitioning tools for Globally Unique Identifier (GUID) Partition Table (GPT) disks";
25252626- license = "GPLv2";
2626+ license = stdenv.lib.licenses.gpl2;
27272828 homepage = http://www.rodsbooks.com/gdisk/;
2929···3232 platforms = stdenv.lib.platforms.linux;
3333 };
3434}
3535-
+1-1
pkgs/tools/system/gt5/default.nix
···1919 meta = {
2020 description = "A diff-capable 'du' browser";
2121 homepage = http://gt5.sourceforge.net/;
2222- license = "GPLv2+";
2222+ license = stdenv.lib.licenses.gpl2Plus;
2323 maintainers = with stdenv.lib.maintainers; [viric];
2424 platforms = with stdenv.lib.platforms; linux;
2525 };
+1-1
pkgs/tools/system/idle3tools/default.nix
···1515 meta = {
1616 homepage = http://idle3-tools.sourceforge.net/;
1717 description = "Tool to get/set the infamous idle3 timer in WD HDDs";
1818- license = "GPLv3";
1818+ license = stdenv.lib.licenses.gpl3;
1919 maintainers = with stdenv.lib.maintainers; [viric];
2020 platforms = with stdenv.lib.platforms; linux;
2121 };
+1-1
pkgs/tools/system/logcheck/default.nix
···3737 Logcheck was part of the Abacus Project of security tools, but this version has been rewritten.
3838 '';
3939 homepage = http://logcheck.org;
4040- license = "GPLv2";
4040+ license = stdenv.lib.licenses.gpl2;
41414242 maintainers = [ stdenv.lib.maintainers.bluescreen303 ];
4343 platforms = stdenv.lib.platforms.all;
···1919 meta = {
2020 homepage = "http://www.balabit.com/network-security/syslog-ng/";
2121 description = "Next-generation syslogd with advanced networking and filtering capabilities";
2222- license = "GPLv2";
2222+ license = stdenv.lib.licenses.gpl2;
2323 };
2424}
+1-1
pkgs/tools/system/tree/default.nix
···4343 meta = {
4444 homepage = "http://mama.indstate.edu/users/ice/tree/";
4545 description = "command to produce a depth indented directory listing";
4646- license = "GPLv2";
4646+ license = stdenv.lib.licenses.gpl2;
47474848 longDescription = ''
4949 Tree is a recursive directory listing command that produces a
+1-1
pkgs/tools/text/catdoc/default.nix
···1212 meta = with stdenv.lib; {
1313 description = "MS-Word/Excel/PowerPoint to text converter";
1414 platforms = platforms.all;
1515- license = "GPL2";
1515+ license = stdenv.lib.licenses.gpl2;
1616 maintainers = [ maintainers.urkud ];
1717 };
1818}
+1-1
pkgs/tools/text/convertlit/default.nix
···2828 meta = {
2929 homepage = http://www.convertlit.com/;
3030 description = "A tool for converting Microsoft Reader ebooks to more open formats";
3131- license = "GPL";
3131+ license = stdenv.lib.licenses.gpl2;
3232 };
3333}
+1-1
pkgs/tools/text/dos2unix/default.nix
···1717 meta = {
1818 homepage = http://waterlan.home.xs4all.nl/dos2unix.html;
1919 description = "Tools to transform text files from dos to unix formats and vicervesa";
2020- license = "BSD";
2020+ license = stdenv.lib.licenses.bsd2;
2121 maintainers = with stdenv.lib.maintainers; [viric];
2222 platforms = with stdenv.lib.platforms; all;
2323 };
···3333 it has many options that can be used to customize printouts.
3434 '';
35353636- license = "GPLv3+";
3636+ license = stdenv.lib.licenses.gpl3Plus;
37373838 homepage = http://www.gnu.org/software/enscript/;
3939
···2525 meta = {
2626 homepage = http://multitran.sourceforge.net/;
2727 description = "Multitran: simple command line utilities for dictionary maintainance";
2828- license = "GPLv2";
2828+ license = stdenv.lib.licenses.gpl2;
2929 maintainers = with stdenv.lib.maintainers; [viric];
3030 platforms = with stdenv.lib.platforms; linux;
3131 };
+1-1
pkgs/tools/text/namazu/default.nix
···3535 but also as a personal search system for email or other files.
3636 '';
37373838- license = "GPLv2+";
3838+ license = stdenv.lib.licenses.gpl2Plus;
3939 homepage = http://namazu.org/;
40404141 platforms = stdenv.lib.platforms.gnu; # arbitrary choice
···88 };
991010 meta = {
1111- license = "GPLv3";
1111+ license = stdenv.lib.licenses.gpl3;
1212 homepage = http://billposer.org/Software/uni2ascii.html;
1313 description = "Converts between UTF-8 and many 7-bit ASCII equivalents and back";
1414
+1-1
pkgs/tools/text/wdiff/default.nix
···1313 meta = {
1414 homepage = http://www.gnu.org/software/wdiff/;
1515 description = "GNU wdiff, comparing files on a word by word basis";
1616- license = "GPLv3+";
1616+ license = stdenv.lib.licenses.gpl3Plus;
1717 maintainers = [ stdenv.lib.maintainers.eelco ];
1818 platforms = stdenv.lib.platforms.linux;
1919 };
+1-1
pkgs/tools/text/xml/html-xml-utils/default.nix
···1414 meta = {
1515 description = "Utilities for manipulating HTML and XML files";
1616 homepage = http://www.w3.org/Tools/HTML-XML-utils/;
1717- license = "free-non-copyleft";
1717+ license = "free-non-copyleft"; #TODO W3C
1818 };
1919}
+1-1
pkgs/tools/text/xml/rxp/default.nix
···1313 cp rxp $out/bin
1414 '';
1515 meta = {
1616- license = "GPL";
1616+ license = stdenv.lib.licenses.gpl2Plus;
1717 description = "a validating XML parser written in C";
1818 homepage = "http://www.cogsci.ed.ac.uk/~richard/rxp.html";
1919 };
+1-1
pkgs/tools/text/xml/xmlstarlet/default.nix
···2626 meta = {
2727 description = "A command line tool for manipulating and querying XML data";
2828 homepage = http://xmlstar.sourceforge.net/;
2929- license = "bsd";
2929+ license = stdenv.lib.licenses.mit;
3030 };
3131}
+1-1
pkgs/tools/typesetting/docbook2x/default.nix
···5252 into the traditional Unix man page format and the GNU Texinfo
5353 format.
5454 '';
5555- license = "MIT-style";
5555+ license = stdenv.lib.licenses.mit;
5656 homepage = http://docbook2x.sourceforge.net/;
5757 };
5858}
+1-1
pkgs/tools/typesetting/halibut/default.nix
···2727 meta = {
2828 description = "Documentation production system for software manuals";
2929 homepage = http://www.chiark.greenend.org.uk/~sgtatham/halibut/;
3030- license = "free";
3030+ license = stdenv.lib.licenses.mit;
3131 };
3232}
···2525 meta = {
2626 description = "Simple tool for doing everyday things with PDF documents";
2727 homepage = http://www.accesspdf.com/pdftk/;
2828- license = "free";
2828+ license = stdenv.lib.licenses.gpl2;
2929 maintainers = with stdenv.lib.maintainers; [viric];
3030 platforms = with stdenv.lib.platforms; linux;
3131 };
+1-1
pkgs/tools/typesetting/rubber/default.nix
···2525 of pdfLaTeX to produce PDF documents.
2626 '';
27272828- license = "GPLv2+";
2828+ license = stdenv.lib.licenses.gpl2Plus;
29293030 homepage = http://www.pps.jussieu.fr/~beffara/soft/rubber/;
3131 };
+1-1
pkgs/tools/typesetting/tex/dblatex/default.nix
···5555 meta = {
5656 description = "A program to convert DocBook to DVI, PostScript or PDF via LaTeX or ConTeXt";
5757 homepage = http://dblatex.sourceforge.net/;
5858- license = "GPL";
5858+ license = stdenv.lib.licenses.gpl2Plus;
5959 };
6060}
+1-1
pkgs/tools/typesetting/tex/tex4ht/default.nix
···3030 meta = {
3131 homepage = "http://tug.org/tex4ht/";
3232 description = "a system to convert (La)TeX documents to HTML and various other formats";
3333- license = "LPPL"; # LaTeX Project Public License
3333+ license = "LPPL-1.2"; # LaTeX Project Public License
3434 };
3535}