···469469 mkBefore = mkOrder 500;
470470 mkAfter = mkOrder 1500;
471471472472+472473 # Convenient property used to transfer all definitions and their
473474 # properties from one option to another. This property is useful for
474475 # renaming options, and also for including properties from another module
···497498498499 /* Compatibility. */
499500 fixMergeModules = modules: args: evalModules { inherit modules args; check = false; };
501501+502502+503503+ /* Return a module that causes a warning to be shown if the
504504+ specified option is defined. For example,
505505+506506+ mkRemovedOptionModule [ "boot" "loader" "grub" "bootDevice" ]
507507+508508+ causes a warning if the user defines boot.loader.grub.bootDevice.
509509+ */
510510+ mkRemovedOptionModule = optionName:
511511+ { options, ... }:
512512+ { options = setAttrByPath optionName (mkOption {
513513+ visible = false;
514514+ });
515515+ config.warnings =
516516+ let opt = getAttrFromPath optionName options; in
517517+ optional opt.isDefined
518518+ "The option definition `${showOption optionName}' in ${showFiles opt.files} no longer has any effect; please remove it.";
519519+ };
520520+521521+ /* Return a module that causes a warning to be shown if the
522522+ specified "from" option is defined; the defined value is however
523523+ forwarded to the "to" option. This can be used to rename options
524524+ while providing backward compatibility. For example,
525525+526526+ mkRenamedOptionModule [ "boot" "copyKernels" ] [ "boot" "loader" "grub" "copyKernels" ]
527527+528528+ forwards any definitions of boot.copyKernels to
529529+ boot.loader.grub.copyKernels while printing a warning.
530530+ */
531531+ mkRenamedOptionModule = from: to: doRename {
532532+ inherit from to;
533533+ visible = false;
534534+ warn = true;
535535+ use = builtins.trace "Obsolete option `${showOption from}' is used. It was renamed to `${showOption to}'.";
536536+ };
537537+538538+ /* Like ‘mkRenamedOptionModule’, but doesn't show a warning. */
539539+ mkAliasOptionModule = from: to: doRename {
540540+ inherit from to;
541541+ visible = true;
542542+ warn = false;
543543+ use = id;
544544+ };
545545+546546+ doRename = { from, to, visible, warn, use }:
547547+ let
548548+ toOf = attrByPath to
549549+ (abort "Renaming error: option `${showOption to}' does not exists.");
550550+ in
551551+ { config, options, ... }:
552552+ { options = setAttrByPath from (mkOption {
553553+ description = "Alias of <option>${showOption to}</option>.";
554554+ apply = x: use (toOf config);
555555+ });
556556+ config = {
557557+ /*
558558+ warnings =
559559+ let opt = getAttrFromPath from options; in
560560+ optional (warn && opt.isDefined)
561561+ "The option `${showOption from}' defined in ${showFiles opt.files} has been renamed to `${showOption to}'.";
562562+ */
563563+ } // setAttrByPath to (mkAliasDefinitions (getAttrFromPath from options));
564564+ };
500565501566}
···11+{ stdenv, fetchurl, unzip }:
22+33+stdenv.mkDerivation rec {
44+ name = "paratype-pt-mono";
55+66+ src = fetchurl rec {
77+ url = "http://www.paratype.ru/uni/public/PTMono.zip";
88+ sha256 = "1wqaai7d6xh552vvr5svch07kjn1q89ab5jimi2z0sbd0rbi86vl";
99+ };
1010+1111+ buildInputs = [unzip];
1212+1313+ phases = "unpackPhase installPhase";
1414+ sourceRoot = ".";
1515+1616+ installPhase = ''
1717+ mkdir -p $out/share/fonts/truetype
1818+ mkdir -p $out/share/doc/paratype
1919+ cp *.ttf $out/share/fonts/truetype
2020+ cp *.txt $out/share/doc/paratype
2121+ '';
2222+2323+ meta = with stdenv.lib; {
2424+ homepage = "http://www.paratype.ru/public/";
2525+ description = "An open Paratype font";
2626+2727+ license = "Open Paratype license";
2828+ # no commercial distribution of the font on its own
2929+ # must rename on modification
3030+ # http://www.paratype.ru/public/pt_openlicense.asp
3131+3232+ platforms = platforms.all;
3333+ maintainers = with maintainers; [ raskin ];
3434+ };
3535+}
3636+
+36
pkgs/data/fonts/paratype-pt/sans.nix
···11+{ stdenv, fetchurl, unzip }:
22+33+stdenv.mkDerivation rec {
44+ name = "paratype-pt-sane";
55+66+ src = fetchurl rec {
77+ url = "http://www.paratype.ru/uni/public/PTSans.zip";
88+ sha256 = "1j9gkbqyhxx8pih5agr9nl8vbpsfr9vdqmhx73ji3isahqm3bhv5";
99+ };
1010+1111+ buildInputs = [unzip];
1212+1313+ phases = "unpackPhase installPhase";
1414+ sourceRoot = ".";
1515+1616+ installPhase = ''
1717+ mkdir -p $out/share/fonts/truetype
1818+ mkdir -p $out/share/doc/paratype
1919+ cp *.ttf $out/share/fonts/truetype
2020+ cp *.txt $out/share/doc/paratype
2121+ '';
2222+2323+ meta = with stdenv.lib; {
2424+ homepage = "http://www.paratype.ru/public/";
2525+ description = "An open Paratype font";
2626+2727+ license = "Open Paratype license";
2828+ # no commercial distribution of the font on its own
2929+ # must rename on modification
3030+ # http://www.paratype.ru/public/pt_openlicense.asp
3131+3232+ platforms = platforms.all;
3333+ maintainers = with maintainers; [ raskin ];
3434+ };
3535+}
3636+
+36
pkgs/data/fonts/paratype-pt/serif.nix
···11+{ stdenv, fetchurl, unzip }:
22+33+stdenv.mkDerivation rec {
44+ name = "paratype-pt-serif";
55+66+ src = fetchurl rec {
77+ url = "http://www.paratype.ru/uni/public/PTSerif.zip";
88+ sha256 = "0x3l58c1rvwmh83bmmgqwwbw9av1mvvq68sw2hdkyyihjvamyvvs";
99+ };
1010+1111+ buildInputs = [unzip];
1212+1313+ phases = "unpackPhase installPhase";
1414+ sourceRoot = ".";
1515+1616+ installPhase = ''
1717+ mkdir -p $out/share/fonts/truetype
1818+ mkdir -p $out/share/doc/paratype
1919+ cp *.ttf $out/share/fonts/truetype
2020+ cp *.txt $out/share/doc/paratype
2121+ '';
2222+2323+ meta = with stdenv.lib; {
2424+ homepage = "http://www.paratype.ru/public/";
2525+ description = "An open Paratype font";
2626+2727+ license = "Open Paratype license";
2828+ # no commercial distribution of the font on its own
2929+ # must rename on modification
3030+ # http://www.paratype.ru/public/pt_openlicense.asp
3131+3232+ platforms = platforms.all;
3333+ maintainers = with maintainers; [ raskin ];
3434+ };
3535+}
3636+
+3-3
pkgs/data/misc/geolite-legacy/default.nix
···8899 # Annoyingly, these files are updated without a change in URL. This means that
1010 # builds will start failing every month or so, until the hashes are updated.
1111- version = "2015-10-09";
1111+ version = "2015-10-13";
1212in
1313stdenv.mkDerivation {
1414 name = "geolite-legacy-${version}";
···2727 "0jdgfcy90mk7q25rhb8ymnddkskmp2cmyzmbjr3ij0zvbbpzxl4i";
2828 srcGeoIPASNum = fetchDB
2929 "asnum/GeoIPASNum.dat.gz" "GeoIPASNum.dat.gz"
3030- "05j2nygvb7xi4s636dik12vgrdi37q5fdv5k3liqgswf9z0msz81";
3030+ "0j73lw2i6nnx1mgp1hspfa95zca5h0hqj12g16rln7pss868wnwi";
3131 srcGeoIPASNumv6 = fetchDB
3232 "asnum/GeoIPASNumv6.dat.gz" "GeoIPASNumv6.dat.gz"
3333- "17s7pcqmfd9xvq0hd7g7nh62sjayl24w04ifm39snrq2a32l667n";
3333+ "1id4rkxp5pppr274y276w2zmx44dn0h44d4ax780g8cbhlc9n2br";
34343535 meta = with stdenv.lib; {
3636 inherit version;
···5353 done
5454 ''}
55555656- # The android script used SWT and wants to dynamically load some GTK+ stuff.
5757- # The following wrapper ensures that they can be found:
5656+ # The following scripts used SWT and wants to dynamically load some GTK+ stuff.
5757+ # Creating these wrappers ensure that they can be found:
5858+5859 wrapProgram `pwd`/android \
5960 --prefix PATH : ${jdk}/bin \
6061 --prefix LD_LIBRARY_PATH : ${glib}/lib:${gtk}/lib:${libXtst}/lib
61626363+ wrapProgram `pwd`/uiautomatorviewer \
6464+ --prefix PATH : ${jdk}/bin \
6565+ --prefix LD_LIBRARY_PATH : ${glib}/lib:${gtk}/lib:${libXtst}/lib
6666+6767+ wrapProgram `pwd`/hierarchyviewer \
6868+ --prefix PATH : ${jdk}/bin \
6969+ --prefix LD_LIBRARY_PATH : ${glib}/lib:${gtk}/lib:${libXtst}/lib
7070+6271 # The emulators need additional libraries, which are dynamically loaded => let's wrap them
63726473 for i in emulator emulator-arm emulator-mips emulator-x86
···11-{stdenv, stdenv_32bit, fetchurl, unzip, zlib_32bit}:
11+{stdenv, stdenv_32bit, fetchurl, unzip, zlib_32bit, ncurses_32bit}:
2233stdenv.mkDerivation rec {
44 version = "23.0.1";
···2424 cd android-*
25252626 # Patch the interpreter
2727- for i in aapt aidl dexdump llvm-rs-cc
2727+ for i in aapt aidl bcc_compat dexdump llvm-rs-cc
2828 do
2929 patchelf --set-interpreter ${stdenv_32bit.cc.libc}/lib/ld-linux.so.2 $i
3030 done
···3636 done
37373838 # These binaries need to find libstdc++, libgcc_s and libraries in the current folder
3939- for i in lib/libbcc.so lib/libbcinfo.so lib/libclang.so llvm-rs-cc
3939+ for i in lib/libbcc.so lib/libbcinfo.so lib/libclang.so aidl
4040 do
4141 patchelf --set-rpath ${stdenv_32bit.cc.cc}/lib:`pwd`/lib $i
4242 done
4343+4444+ # Create link to make libtinfo.so.5 work
4545+ ln -s ${ncurses_32bit}/lib/libncurses.so.5 `pwd`/lib/libtinfo.so.5
4646+4747+ # These binaries need to find libstdc++, libgcc_s, ncurses, and libraries in the current folder
4848+ for i in bcc_compat llvm-rs-cc
4949+ do
5050+ patchelf --set-rpath ${stdenv_32bit.cc.cc}/lib:${ncurses_32bit}/lib:`pwd`/lib $i
5151+ done
43524453 # These binaries also need zlib in addition to libstdc++
4545- for i in zipalign
5454+ for i in arm-linux-androideabi-ld i686-linux-android-ld mipsel-linux-android-ld split-select zipalign
4655 do
4756 patchelf --set-interpreter ${stdenv_32bit.cc.libc}/lib/ld-linux.so.2 $i
4857 patchelf --set-rpath ${stdenv_32bit.cc.cc}/lib:${zlib_32bit}/lib:`pwd`/lib $i
···5454 if system == "armv7l-linux" then stdenvLinux else
5555 if system == "mips64el-linux" then stdenvLinux else
5656 if system == "powerpc-linux" then /* stdenvLinux */ stdenvNative else
5757- if system == "x86_64-darwin" then stdenvDarwin else
5757+ if system == "x86_64-darwin" then stdenvDarwinPure else
5858 if system == "x86_64-solaris" then stdenvNix else
5959 if system == "i686-cygwin" then stdenvNative else
6060 if system == "x86_64-cygwin" then stdenvNative else
+4-2
pkgs/stdenv/pure-darwin/default.nix
···6677let
88 # libSystem and its transitive dependencies. Get used to this; it's a recurring theme in darwin land
99- libSystemClosure = [
99+ libSystemClosure = if system == "x86_64-darwin"
1010+ then [
1011 "/usr/lib/libSystem.dylib"
1112 "/usr/lib/libSystem.B.dylib"
1213 "/usr/lib/libobjc.A.dylib"
···1617 "/usr/lib/libc++.1.dylib"
1718 "/usr/lib/libDiagnosticMessagesClient.dylib"
1819 "/usr/lib/system"
1919- ];
2020+ ]
2121+ else [];
20222123 fetch = { file, sha256 }: derivation ((import <nix/fetchurl.nix> {
2224 url = "https://dl.dropboxusercontent.com/u/2857322/${file}";
+23
pkgs/tools/X11/dex/default.nix
···11+{ stdenv, fetchFromGitHub, python3 }:
22+33+stdenv.mkDerivation rec {
44+ program = "dex";
55+ name = "${program}-${version}";
66+ version = "0.7";
77+88+ src = fetchFromGitHub {
99+ owner = "jceb";
1010+ repo = program;
1111+ rev = "v${version}";
1212+ sha256 = "041ms01snalapapaniabr92d8iim1qrxian626nharjmp2rd69v5";
1313+ };
1414+1515+ propagatedBuildInputs = [ python3 ];
1616+ makeFlags = [ "PREFIX=$(out)" "VERSION=$(version)" ];
1717+1818+ meta = {
1919+ description = "A program to generate and execute DesktopEntry files of the Application type";
2020+ homepage = https://github.com/jceb/dex;
2121+ platforms = stdenv.lib.platforms.linux;
2222+ };
2323+}
+10-8
pkgs/tools/backup/borg/default.nix
···11-{ stdenv, fetchzip, python3Packages, openssl, acl }:
11+{ stdenv, fetchurl, python3Packages, openssl, acl, lz4 }:
2233python3Packages.buildPythonPackage rec {
44- name = "borg-${version}";
55- version = "0.23.0";
44+ name = "borgbackup-${version}";
55+ version = "0.27.0";
66 namePrefix = "";
7788- src = fetchzip {
99- name = "${name}-src";
1010- url = "https://github.com/borgbackup/borg/archive/${version}.tar.gz";
1111- sha256 = "1ns00bhrh4zm1s70mm32gnahj7yh4jdpkb8ziarhvcnknz7aga67";
88+ src = fetchurl {
99+ url = "https://pypi.python.org/packages/source/b/borgbackup/borgbackup-${version}.tar.gz";
1010+ sha256 = "04iizidag4fwy6kx1747d633s1amr81slgk743qsfbwixaxfjq9b";
1211 };
13121413 propagatedBuildInputs = with python3Packages;
1515- [ cython msgpack openssl acl llfuse tox detox ];
1414+ [ cython msgpack openssl acl llfuse tox detox lz4 setuptools_scm ];
16151716 preConfigure = ''
1817 export BORG_OPENSSL_PREFIX="${openssl}"
1818+ export BORG_LZ4_PREFIX="${lz4}"
1919+ # note: fix for this issue already upstream and probably in 0.27.1 (or whatever the next release is called)
2020+ substituteInPlace setup.py --replace "possible_openssl_prefixes.insert(0, os.environ.get('BORG_LZ4_PREFIX'))" "possible_lz4_prefixes.insert(0, os.environ.get('BORG_LZ4_PREFIX'))"
1921 '';
20222123 meta = with stdenv.lib; {
+20
pkgs/tools/filesystems/djmount/default.nix
···11+{ stdenv, fetchurl, pkgconfig, fuse }:
22+33+stdenv.mkDerivation rec {
44+ name = "djmount-${version}";
55+ version = "0.71";
66+ src = fetchurl {
77+ url = "mirror://sourceforge/djmount/${version}/${name}.tar.gz";
88+ sha256 = "0kqf0cy3h4cfiy5a2sigmisx0lvvsi1n0fbyb9ll5gacmy1b8nxa";
99+ };
1010+1111+ buildInputs = [ pkgconfig fuse];
1212+1313+ meta = {
1414+ homepage = http://djmount.sourceforge.net/;
1515+ description = "UPnP AV client, mounts as a Linux filesystem the media content of compatible UPnP AV devices";
1616+ platforms = stdenv.lib.platforms.linux;
1717+ maintainers = [ stdenv.lib.maintainers.jagajaga ];
1818+ license = stdenv.lib.licenses.gpl2;
1919+ };
2020+}