about summary refs log tree commit diff
path: root/nixpkgs/pkgs/data/misc
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/data/misc')
-rw-r--r--nixpkgs/pkgs/data/misc/adapta-backgrounds/default.nix23
-rw-r--r--nixpkgs/pkgs/data/misc/brise/default.nix41
-rw-r--r--nixpkgs/pkgs/data/misc/brise/fetchPackages.nix130
-rw-r--r--nixpkgs/pkgs/data/misc/cacert/default.nix123
-rw-r--r--nixpkgs/pkgs/data/misc/cacert/setup-hook.sh3
-rwxr-xr-xnixpkgs/pkgs/data/misc/cacert/update.sh34
-rw-r--r--nixpkgs/pkgs/data/misc/cldr-emoji-annotation/default.nix27
-rw-r--r--nixpkgs/pkgs/data/misc/combinatorial_designs/default.nix31
-rw-r--r--nixpkgs/pkgs/data/misc/conway_polynomials/default.nix43
-rw-r--r--nixpkgs/pkgs/data/misc/ddccontrol-db/default.nix37
-rw-r--r--nixpkgs/pkgs/data/misc/dns-root-data/default.nix35
-rw-r--r--nixpkgs/pkgs/data/misc/dns-root-data/root.ds1
-rw-r--r--nixpkgs/pkgs/data/misc/dns-root-data/root.key1
-rwxr-xr-xnixpkgs/pkgs/data/misc/dns-root-data/update-root-key.sh10
-rw-r--r--nixpkgs/pkgs/data/misc/elliptic_curves/default.nix50
-rw-r--r--nixpkgs/pkgs/data/misc/fedora-backgrounds/default.nix23
-rw-r--r--nixpkgs/pkgs/data/misc/fedora-backgrounds/f33-fix-xfce-path.patch15
-rw-r--r--nixpkgs/pkgs/data/misc/fedora-backgrounds/generic.nix43
-rw-r--r--nixpkgs/pkgs/data/misc/freepats/default.nix24
-rw-r--r--nixpkgs/pkgs/data/misc/geolite-legacy/builder.sh20
-rw-r--r--nixpkgs/pkgs/data/misc/geolite-legacy/default.nix41
-rw-r--r--nixpkgs/pkgs/data/misc/graphs/default.nix25
-rw-r--r--nixpkgs/pkgs/data/misc/hackage/default.nix6
-rw-r--r--nixpkgs/pkgs/data/misc/iana-etc/default.nix21
-rw-r--r--nixpkgs/pkgs/data/misc/libkkc-data/default.nix21
-rw-r--r--nixpkgs/pkgs/data/misc/mailcap/default.nix30
-rw-r--r--nixpkgs/pkgs/data/misc/media-player-info/default.nix31
-rw-r--r--nixpkgs/pkgs/data/misc/mime-types/default.nix21
-rw-r--r--nixpkgs/pkgs/data/misc/miscfiles/default.nix18
-rw-r--r--nixpkgs/pkgs/data/misc/mobile-broadband-provider-info/default.nix25
-rw-r--r--nixpkgs/pkgs/data/misc/nixos-artwork/default.nix5
-rw-r--r--nixpkgs/pkgs/data/misc/nixos-artwork/grub2-theme.nix5
-rw-r--r--nixpkgs/pkgs/data/misc/nixos-artwork/icons.nix13
-rw-r--r--nixpkgs/pkgs/data/misc/nixos-artwork/wallpapers.nix159
-rw-r--r--nixpkgs/pkgs/data/misc/osinfo-db/default.nix27
-rw-r--r--nixpkgs/pkgs/data/misc/pari-galdata/default.nix26
-rw-r--r--nixpkgs/pkgs/data/misc/pari-seadata-small/default.nix26
-rw-r--r--nixpkgs/pkgs/data/misc/polytopes_db/default.nix25
-rw-r--r--nixpkgs/pkgs/data/misc/poppler-data/default.nix20
-rw-r--r--nixpkgs/pkgs/data/misc/publicsuffix-list/default.nix25
-rw-r--r--nixpkgs/pkgs/data/misc/scowl/default.nix112
-rw-r--r--nixpkgs/pkgs/data/misc/shared-desktop-ontologies/default.nix25
-rw-r--r--nixpkgs/pkgs/data/misc/shared-mime-info/default.nix40
-rw-r--r--nixpkgs/pkgs/data/misc/sound-theme-freedesktop/default.nix21
-rw-r--r--nixpkgs/pkgs/data/misc/spdx-license-list-data/default.nix26
-rw-r--r--nixpkgs/pkgs/data/misc/tzdata/default.nix74
-rw-r--r--nixpkgs/pkgs/data/misc/tzdata/tzdata-setup-hook.sh5
-rw-r--r--nixpkgs/pkgs/data/misc/unicode-character-database/default.nix38
-rw-r--r--nixpkgs/pkgs/data/misc/unicode-emoji/default.nix59
-rw-r--r--nixpkgs/pkgs/data/misc/unihan-database/default.nix38
-rw-r--r--nixpkgs/pkgs/data/misc/wireless-regdb/default.nix26
-rw-r--r--nixpkgs/pkgs/data/misc/xorg-rgb/default.nix21
52 files changed, 1769 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/data/misc/adapta-backgrounds/default.nix b/nixpkgs/pkgs/data/misc/adapta-backgrounds/default.nix
new file mode 100644
index 000000000000..6debaa9ebe22
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/adapta-backgrounds/default.nix
@@ -0,0 +1,23 @@
+{ lib, stdenv, fetchFromGitHub, meson, ninja, pkg-config, glib }:
+
+stdenv.mkDerivation rec {
+  pname = "adapta-backgrounds";
+  version = "0.5.3.1";
+
+  src = fetchFromGitHub {
+    owner = "adapta-project";
+    repo = "adapta-backgrounds";
+    rev = version;
+    sha256 = "04hmbmzf97rsii8gpwy3wkljy5xhxmlsl34d63s6hfy05knclydj";
+  };
+
+  nativeBuildInputs = [ meson ninja pkg-config glib ];
+
+  meta = with lib; {
+    description = "Wallpaper collection for adapta-project";
+    homepage = "https://github.com/adapta-project/adapta-backgrounds";
+    license = with licenses; [ gpl2 cc-by-sa-40 ];
+    platforms = platforms.all;
+    maintainers = with maintainers; [ romildo ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/misc/brise/default.nix b/nixpkgs/pkgs/data/misc/brise/default.nix
new file mode 100644
index 000000000000..f4e1a6d2905f
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/brise/default.nix
@@ -0,0 +1,41 @@
+{ lib, stdenv, fetchFromGitHub, librime }:
+
+stdenv.mkDerivation {
+  name = "brise-unstable-2017-09-16";
+
+  src = fetchFromGitHub {
+    owner = "rime";
+    repo = "brise";
+    rev = "1cfb0fe1d3a4190ce5d034f141941156dd271e80";
+    sha256 = "1l13j3cfwida0ycl874fizz2jwjvlxid589a1iciqa9y25k21ql7";
+  };
+
+  buildInputs = [ librime ];
+
+  postPatch = ''
+    patchShebangs scripts/*
+  '';
+
+  # we need to use fetchFromGitHub to fetch sub-packages before we 'make',
+  # since nix won't allow networking during 'make'
+  preBuild = import ./fetchPackages.nix fetchFromGitHub;
+
+  makeFlags = [ "BRISE_BUILD_BINARIES=yes" "PREFIX=$(out)" ];
+
+  enableParallelBuilding = true;
+
+  meta = with lib; {
+    description = "Rime Schema Repository";
+    longDescription = ''
+      This software is a collection of data packages used by Rime
+      to support various Chinese input methods, including those based on
+      modern dialects or historical diasystems of the Chinese language.
+    '';
+    homepage = "https://rime.im";
+    # Note that individual packages in this collection
+    # may be released under different licenses
+    license = licenses.gpl3;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.sifmelcara ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/misc/brise/fetchPackages.nix b/nixpkgs/pkgs/data/misc/brise/fetchPackages.nix
new file mode 100644
index 000000000000..92930c67cc90
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/brise/fetchPackages.nix
@@ -0,0 +1,130 @@
+fetchFromGitHub:
+# generated using https://gist.github.com/sifmelcara/895c71f99500b9d56d68e9a866b58821
+''
+ln -sv ${fetchFromGitHub {
+  owner = "rime";
+  repo = "rime-array";
+  rev = "9ca2b725ae52c9b3185213e3555df1f9d4f1c53f";
+  sha256 = "0x3sifdpdivr8ssynjhc4g1zfl6h9hm9nh9p9zb9wkh1ky9z7kha";
+}} array
+ln -sv ${fetchFromGitHub {
+  owner = "rime";
+  repo = "rime-bopomofo";
+  rev = "7046ffe42b46915947117f80d901fb9a6e19c1a7";
+  sha256 = "09w8jl2dlgp72k49x0l2jiaqb359v576kai4xww6cljgr24ng8pl";
+}} bopomofo
+ln -sv ${fetchFromGitHub {
+  owner = "rime";
+  repo = "rime-cangjie";
+  rev = "64242be99c1e6793c9f40fef296a81d07a84e976";
+  sha256 = "0v5sk8zrm5p5gg8lszqm0imj9jswjlnfq87nw6m9pg5h5al230ja";
+}} cangjie
+ln -sv ${fetchFromGitHub {
+  owner = "rime";
+  repo = "rime-combo-pinyin";
+  rev = "97a7dc4670e0f90ad28e7d67c1543f4f0adc531d";
+  sha256 = "0y8iyvq7z6xj3lk2ppk4ggz297wn1r2xxbv53f2710jc7gyzf04q";
+}} combo-pinyin
+ln -sv ${fetchFromGitHub {
+  owner = "rime";
+  repo = "rime-double-pinyin";
+  rev = "1b75af4239897fd1e4c99d625b62093e66baff14";
+  sha256 = "0p54qx5a6rr55hl997kdcfxjczd9lcddrc5xsy7nhlfyc6108s2v";
+}} double-pinyin
+ln -sv ${fetchFromGitHub {
+  owner = "rime";
+  repo = "rime-emoji";
+  rev = "7e527056fe055237fee59463e0d445f3909aaf0c";
+  sha256 = "04d35n254viw29yyjf3ml7xljmi63sqgg870swlbi5bikcx7n9jf";
+}} emoji
+ln -sv ${fetchFromGitHub {
+  owner = "rime";
+  repo = "rime-essay";
+  rev = "595e35756d16d57d09405e243302b65b4384b5b4";
+  sha256 = "10kqhvrz8x17b2pf6x2x2znz5y6cj05c4rgwi1f0xhxiyrgjw9gm";
+}} essay
+ln -sv ${fetchFromGitHub {
+  owner = "rime";
+  repo = "rime-ipa";
+  rev = "9e02f8a02e9febb7b2df25f6906881a1df934811";
+  sha256 = "1g4v4j1gnv1qspfz88liwj1aa4gaa3aax0x2cif4vxicsm7w372m";
+}} ipa
+ln -sv ${fetchFromGitHub {
+  owner = "rime";
+  repo = "rime-jyutping";
+  rev = "3cc76e6e15cc05f1f94b89e750c21f87ce8fc0e4";
+  sha256 = "1yggz0yb84z8810s2gmsxkm9lh57fdzddx5v2rb5mqcwnimsd6ap";
+}} jyutping
+ln -sv ${fetchFromGitHub {
+  owner = "rime";
+  repo = "rime-luna-pinyin";
+  rev = "da00c3a6f932f094666e98a09f6ce9c7d74c334c";
+  sha256 = "0q3g1hj9bay5865h3pz7gv46d7wfka1jdxnddxcbp4zn7gjpsd48";
+}} luna-pinyin
+ln -sv ${fetchFromGitHub {
+  owner = "rime";
+  repo = "rime-middle-chinese";
+  rev = "6f9731bac8f289f77d35f1090159f1937e38c1f7";
+  sha256 = "0xd9iwk4j5043gfmp7rb57hbarfm6sxr32wiasi6p3c5g355zn89";
+}} middle-chinese
+ln -sv ${fetchFromGitHub {
+  owner = "rime";
+  repo = "rime-pinyin-simp";
+  rev = "38c08403c22845f7e2965c1d7a1514b41755d7dc";
+  sha256 = "1c0cqljx3d93w27y2flxyqcfd3rd9fvixbw6mxgfjzdb3s42bn8h";
+}} pinyin-simp
+ln -sv ${fetchFromGitHub {
+  owner = "rime";
+  repo = "rime-prelude";
+  rev = "120c2aa73b1b5e1bce904901bf13f506295004a5";
+  sha256 = "1aah9z58gkqrc18zadsq598ybj8ra22bgka3gma2jmi3rls2znq4";
+}} prelude
+ln -sv ${fetchFromGitHub {
+  owner = "rime";
+  repo = "rime-quick";
+  rev = "638abf270e121bc2bfc6029a14ee85a3f4c2188b";
+  sha256 = "0l1pma0yxrypnb5cq7jiczy0wa42kdqsc1brqkkccdnp08pa1p1m";
+}} quick
+ln -sv ${fetchFromGitHub {
+  owner = "rime";
+  repo = "rime-scj";
+  rev = "6b74ce14be0464bf076d7adc40aea4b120f233ec";
+  sha256 = "0lr92knr41mlqd1s0g2lh2h2qr8xka1s46x7iv4d6ghjf0id4gz6";
+}} scj
+ln -sv ${fetchFromGitHub {
+  owner = "rime";
+  repo = "rime-soutzoe";
+  rev = "3ab93d1b9ca9ca7cf17ff32bb4418b7a095afc3c";
+  sha256 = "1glbvgzx4psasq23511k8ymd7mf1pqvm3z18nzszhs00iif66s3m";
+}} soutzoe
+ln -sv ${fetchFromGitHub {
+  owner = "rime";
+  repo = "rime-stenotype";
+  rev = "766f22565f83f5c63c0ea195c936779ec6ae824d";
+  sha256 = "0jsvfq7xim99zs5imyk7rpknlaimk6nlxy38fmfxa1r843781mfd";
+}} stenotype
+ln -sv ${fetchFromGitHub {
+  owner = "rime";
+  repo = "rime-stroke";
+  rev = "e048967a4c1b956575828f1a20e565efed4b1137";
+  sha256 = "10asdz5bj12pnji7afzls6jd9dn2v90l2dgdjf0jfp2kfzd6pxnl";
+}} stroke
+ln -sv ${fetchFromGitHub {
+  owner = "rime";
+  repo = "rime-terra-pinyin";
+  rev = "e303507e728def38739f5761c50722eae1f06dd5";
+  sha256 = "1krbmx2iq3zw4q1x4aa9c72b9xgrnjrhyxa4h5hnq5l29p9qms4d";
+}} terra-pinyin
+ln -sv ${fetchFromGitHub {
+  owner = "rime";
+  repo = "rime-wubi";
+  rev = "97b7d9f93378e98fd11167bd80d54c40e67076aa";
+  sha256 = "1cdpbqqkqjbizja0w3f7a826a5bxb39nlf9qf2130x9havmkc89z";
+}} wubi
+ln -sv ${fetchFromGitHub {
+  owner = "rime";
+  repo = "rime-wugniu";
+  rev = "de40b29f8218cc852bf82b315c7070f1d50bda02";
+  sha256 = "1m7miwsqpy49cgqd1bl7z5lkkirj3lc2bdwd1zqfg5zbgfwn0rp8";
+}} wugniu
+''
diff --git a/nixpkgs/pkgs/data/misc/cacert/default.nix b/nixpkgs/pkgs/data/misc/cacert/default.nix
new file mode 100644
index 000000000000..e50aa81656a9
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/cacert/default.nix
@@ -0,0 +1,123 @@
+{ lib, stdenv, fetchurl, nss, python3
+, blacklist ? []
+
+# Used for tests only
+, runCommand
+, cacert
+, openssl
+}:
+
+with lib;
+
+let
+
+  certdata2pem = fetchurl {
+    name = "certdata2pem.py";
+    url = "https://salsa.debian.org/debian/ca-certificates/raw/debian/20170717/mozilla/certdata2pem.py";
+    sha256 = "1d4q27j1gss0186a5m8bs5dk786w07ccyq0qi6xmd2zr1a8q16wy";
+  };
+
+  version = "3.60";
+  underscoreVersion = builtins.replaceStrings ["."] ["_"] version;
+in
+
+stdenv.mkDerivation {
+  name = "nss-cacert-${version}";
+
+  src = fetchurl {
+    url = "mirror://mozilla/security/nss/releases/NSS_${underscoreVersion}_RTM/src/nss-${version}.tar.gz";
+    sha256 = "hKvVV1q4dMU65RG9Rh5dCGjRobOE7kB1MVTN0dWQ/j0=";
+  };
+
+  outputs = [ "out" "unbundled" ];
+
+  nativeBuildInputs = [ python3 ];
+
+  configurePhase = ''
+    ln -s nss/lib/ckfw/builtins/certdata.txt
+
+    cat << EOF > blacklist.txt
+    ${concatStringsSep "\n" (map (c: ''"${c}"'') blacklist)}
+    EOF
+
+    cat ${certdata2pem} > certdata2pem.py
+  '';
+
+  buildPhase = ''
+    python certdata2pem.py | grep -vE '^(!|UNTRUSTED)'
+
+    for cert in *.crt; do
+      echo $cert | cut -d. -f1 | sed -e 's,_, ,g' >> ca-bundle.crt
+      cat $cert >> ca-bundle.crt
+      echo >> ca-bundle.crt
+    done
+  '';
+
+  installPhase = ''
+    mkdir -pv $out/etc/ssl/certs
+    cp -v ca-bundle.crt $out/etc/ssl/certs
+    # install individual certs in unbundled output
+    mkdir -pv $unbundled/etc/ssl/certs
+    cp -v *.crt $unbundled/etc/ssl/certs
+    rm -f $unbundled/etc/ssl/certs/ca-bundle.crt  # not wanted in unbundled
+  '';
+
+  setupHook = ./setup-hook.sh;
+
+  passthru.updateScript = ./update.sh;
+  passthru.tests = {
+    # Test that building this derivation with a blacklist works, and that UTF-8 is supported.
+    blacklist-utf8 = let
+      blacklistCAToFingerprint = {
+        # "blacklist" uses the CA name from the NSS bundle, but we check for presence using the SHA256 fingerprint.
+        "CFCA EV ROOT" = "5C:C3:D7:8E:4E:1D:5E:45:54:7A:04:E6:87:3E:64:F9:0C:F9:53:6D:1C:CC:2E:F8:00:F3:55:C4:C5:FD:70:FD";
+        "NetLock Arany (Class Gold) Főtanúsítvány" = "6C:61:DA:C3:A2:DE:F0:31:50:6B:E0:36:D2:A6:FE:40:19:94:FB:D1:3D:F9:C8:D4:66:59:92:74:C4:46:EC:98";
+      };
+      mapBlacklist = f: concatStringsSep "\n" (mapAttrsToList f blacklistCAToFingerprint);
+    in runCommand "verify-the-cacert-filter-output" {
+      cacert = cacert.unbundled;
+      cacertWithExcludes = (cacert.override {
+        blacklist = builtins.attrNames blacklistCAToFingerprint;
+      }).unbundled;
+
+      nativeBuildInputs = [ openssl ];
+    } ''
+      isPresent() {
+        # isPresent <unbundled-dir> <ca name> <ca sha256 fingerprint>
+        for f in $1/etc/ssl/certs/*.crt; do
+          fingerprint="$(openssl x509 -in "$f" -noout -fingerprint -sha256 | cut -f2 -d=)"
+          if [[ "x$fingerprint" == "x$3" ]]; then
+            return 0
+          fi
+        done
+        return 1
+      }
+
+      # Ensure that each certificate is in the main "cacert".
+      ${mapBlacklist (caName: caFingerprint: ''
+        isPresent "$cacert" "${caName}" "${caFingerprint}" || ({
+          echo "CA fingerprint ${caFingerprint} (${caName}) is missing from the CA bundle. Consider picking a different CA for the blacklist test." >&2
+          exit 1
+        })
+      '')}
+
+      # Ensure that each certificate is NOT in the "cacertWithExcludes".
+      ${mapBlacklist (caName: caFingerprint: ''
+        isPresent "$cacertWithExcludes" "${caName}" "${caFingerprint}" && ({
+          echo "CA fingerprint ${caFingerprint} (${caName}) is present in the cacertWithExcludes bundle." >&2
+          exit 1
+        })
+      '')}
+
+      touch $out
+    '';
+  };
+
+  meta = {
+    homepage = "https://curl.haxx.se/docs/caextract.html";
+    description = "A bundle of X.509 certificates of public Certificate Authorities (CA)";
+    platforms = platforms.all;
+    maintainers = with maintainers; [ andir fpletz lukegb ];
+    license = licenses.mpl20;
+  };
+}
diff --git a/nixpkgs/pkgs/data/misc/cacert/setup-hook.sh b/nixpkgs/pkgs/data/misc/cacert/setup-hook.sh
new file mode 100644
index 000000000000..77b68a5c251c
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/cacert/setup-hook.sh
@@ -0,0 +1,3 @@
+export NIX_SSL_CERT_FILE=@out@/etc/ssl/certs/ca-bundle.crt
+# left for compatibility
+export SSL_CERT_FILE=@out@/etc/ssl/certs/ca-bundle.crt
diff --git a/nixpkgs/pkgs/data/misc/cacert/update.sh b/nixpkgs/pkgs/data/misc/cacert/update.sh
new file mode 100755
index 000000000000..7bf3d46cb02f
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/cacert/update.sh
@@ -0,0 +1,34 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p nix common-updater-scripts jq
+
+# Build both the cacert package and an overriden version where we use the source attribute of NSS.
+# Cacert and NSS are both from the same upstream sources. They are decoupled as
+# the cacert output only cares about a few infrequently changing files in the
+# sources while the NSS source code changes frequently.
+#
+# By having cacert on a older source revision that produces the same
+# certificate output as a newer version we can avoid large amounts of
+# unnecessary rebuilds.
+#
+# As of this writing there are a few magnitudes more packages depending on
+# cacert than on nss.
+
+
+set -ex
+
+BASEDIR="$(dirname "$0")/../../../.."
+
+
+CURRENT_PATH=$(nix-build --no-out-link -A cacert.out)
+PATCHED_PATH=$(nix-build --no-out-link -E "with import $BASEDIR {}; (cacert.overrideAttrs (_: { inherit (nss) src version; })).out")
+
+# Check the hash of the etc subfolder
+# We can't check the entire output as that contains the nix-support folder
+# which contains the output path itself.
+CURRENT_HASH=$(nix-hash "$CURRENT_PATH/etc")
+PATCHED_HASH=$(nix-hash "$PATCHED_PATH/etc")
+
+if [[ "$CURRENT_HASH" !=  "$PATCHED_HASH" ]]; then
+    NSS_VERSION=$(nix-instantiate --json --eval -E "with import $BASEDIR {}; nss.version" | jq -r .)
+    update-source-version cacert "$NSS_VERSION"
+fi
diff --git a/nixpkgs/pkgs/data/misc/cldr-emoji-annotation/default.nix b/nixpkgs/pkgs/data/misc/cldr-emoji-annotation/default.nix
new file mode 100644
index 000000000000..e51f5639cbc6
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/cldr-emoji-annotation/default.nix
@@ -0,0 +1,27 @@
+{ lib, stdenv
+, fetchFromGitHub
+, autoreconfHook
+}:
+
+stdenv.mkDerivation rec {
+  pname = "cldr-emoji-annotation";
+  version = "37.0_13.0_0_2";
+
+  src = fetchFromGitHub {
+    owner = "fujiwarat";
+    repo = "cldr-emoji-annotation";
+    rev = version;
+    sha256 = "0la3h6l58j9jfjvzwz65x56ijx7sppirwpqbqc06if4c2g0kzswj";
+  };
+
+  nativeBuildInputs = [
+    autoreconfHook
+  ];
+
+  meta = with lib; {
+    description = "Emoji annotation files in CLDR";
+    homepage = "https://www.unicode.org/";
+    license = licenses.unicode-dfs-2016;
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/misc/combinatorial_designs/default.nix b/nixpkgs/pkgs/data/misc/combinatorial_designs/default.nix
new file mode 100644
index 000000000000..5457b4e54d4b
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/combinatorial_designs/default.nix
@@ -0,0 +1,31 @@
+{ lib, stdenv
+, fetchurl
+}:
+
+stdenv.mkDerivation rec {
+  pname = "combinatorial_designs";
+  version = "20140630";
+
+  src = fetchurl {
+    url = "mirror://sageupstream/combinatorial_designs/combinatorial_designs-${version}.tar.bz2";
+    sha256 = "0bj8ngiq59hipa6izi6g5ph5akmy4cbk0vlsb0wa67f7grnnqj69";
+  };
+
+  installPhase = ''
+    mkdir -p "$out/share/combinatorial_designs"
+    mv * "$out/share/combinatorial_designs"
+  '';
+
+  meta = with lib; {
+    description = "Data for Combinatorial Designs";
+    longDescription = ''
+      Current content:
+
+      - The table of MOLS (10 000 integers) from the Handbook of Combinatorial
+        Designs, 2ed.
+    '';
+    license = licenses.publicDomain;
+    platforms = platforms.all;
+    maintainers = teams.sage.members;
+  };
+}
diff --git a/nixpkgs/pkgs/data/misc/conway_polynomials/default.nix b/nixpkgs/pkgs/data/misc/conway_polynomials/default.nix
new file mode 100644
index 000000000000..f7da9381e610
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/conway_polynomials/default.nix
@@ -0,0 +1,43 @@
+{ lib, stdenv
+, fetchurl
+, python
+}:
+
+stdenv.mkDerivation rec {
+  pname = "conway_polynomials";
+  version = "0.5";
+
+  pythonEnv = python.withPackages (ps: with ps; [ six ]);
+
+  src = fetchurl {
+    url = "mirror://sageupstream/conway_polynomials/conway_polynomials-${version}.tar.bz2";
+    sha256 = "05zb1ly9x2bbscqv0jgc45g48xx77mfs7qdbqhn4ihmihn57iwnq";
+  };
+
+  # Script that creates the "database" (nested python array) and pickles it
+  spkg-install = fetchurl {
+    url = "https://git.sagemath.org/sage.git/plain/build/pkgs/conway_polynomials/spkg-install.py?id=07d6c37d18811e2b377a9689790a7c5e24da16ba";
+    sha256 = "0m12nfb37j3bn4bp06ddgnyp2d6z0hg5f83pbbjszxw7vxs33a82";
+  };
+
+  installPhase = ''
+    # directory layout as spkg-install.py expects
+    dir="$PWD"
+    cd ..
+    ln -s "$dir" "src"
+
+    # environment spkg-install.py expects
+    mkdir -p "$out/share"
+    export SAGE_SHARE="$out/share"
+    export PYTHONPATH=$PWD
+
+    ${pythonEnv.interpreter} ${spkg-install}
+  '';
+
+  meta = with lib; {
+    description = "Contains a small database of Conway polynomials";
+    license = licenses.gpl2;
+    platforms = platforms.all;
+    maintainers = teams.sage.members;
+  };
+}
diff --git a/nixpkgs/pkgs/data/misc/ddccontrol-db/default.nix b/nixpkgs/pkgs/data/misc/ddccontrol-db/default.nix
new file mode 100644
index 000000000000..38f72b5a2efe
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/ddccontrol-db/default.nix
@@ -0,0 +1,37 @@
+{ lib, stdenv
+, autoconf
+, automake
+, libtool
+, intltool
+, fetchFromGitHub
+}:
+
+stdenv.mkDerivation {
+  name = "ddccontrol-db-20180908";
+  src = fetchFromGitHub {
+    owner = "ddccontrol";
+    repo = "ddccontrol-db";
+    rev = "5f211be363f77dc43e39f911b30f4fb19a2d7a84";
+    sha256 = "0vi3bzxpjdkn791vri68k7dah4v2liscniz7hxrarhl4fxlicc0w";
+  };
+
+  preConfigure = ''
+    ./autogen.sh
+  '';
+
+  buildInputs =
+    [
+      autoconf
+      automake
+      libtool
+      intltool
+    ];
+
+  meta = with lib; {
+    description = "Monitor database for DDCcontrol";
+    homepage = "https://github.com/ddccontrol/ddccontrol-db";
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+    maintainers = [ lib.maintainers.pakhfn ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/misc/dns-root-data/default.nix b/nixpkgs/pkgs/data/misc/dns-root-data/default.nix
new file mode 100644
index 000000000000..aad1fe61c4bf
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/dns-root-data/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, lib, fetchurl }:
+
+let
+
+  rootHints = fetchurl {
+    # Original source https://www.internic.net/domain/named.root
+    # occasionally suffers from pointless hash changes,
+    # and having stable sources for older versions has advantages, too.
+    urls = map (prefix: prefix + "cc5e14a264912/etc/root.hints") [
+      "https://gitlab.nic.cz/knot/knot-resolver/raw/"
+      "https://raw.githubusercontent.com/CZ-NIC/knot-resolver/"
+    ];
+    sha256 = "0vdrff4l8s8grif52dnh091s8qydhh88k25zqd9rj66sf1qwcwxl";
+  };
+
+  rootKey = ./root.key;
+  rootDs = ./root.ds;
+
+in
+
+stdenv.mkDerivation {
+  name = "dns-root-data-2019-01-11";
+
+  buildCommand = ''
+    mkdir $out
+    cp ${rootHints} $out/root.hints
+    cp ${rootKey} $out/root.key
+    cp ${rootDs} $out/root.ds
+  '';
+
+  meta = with lib; {
+    description = "DNS root data including root zone and DNSSEC key";
+    maintainers = with maintainers; [ fpletz vcunat ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/misc/dns-root-data/root.ds b/nixpkgs/pkgs/data/misc/dns-root-data/root.ds
new file mode 100644
index 000000000000..e292b5a7bf0c
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/dns-root-data/root.ds
@@ -0,0 +1 @@
+. IN DS 20326 8 2 E06D44B80B8F1D39A95C0B0D7C65D08458E880409BBC683457104237C7F8EC8D
diff --git a/nixpkgs/pkgs/data/misc/dns-root-data/root.key b/nixpkgs/pkgs/data/misc/dns-root-data/root.key
new file mode 100644
index 000000000000..edfc762ad602
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/dns-root-data/root.key
@@ -0,0 +1 @@
+.	172800	IN	DNSKEY	257 3 8 AwEAAaz/tAm8yTn4Mfeh5eyI96WSVexTBAvkMgJzkKTOiW1vkIbzxeF3+/4RgWOq7HrxRixHlFlExOLAJr5emLvN7SWXgnLh4+B5xQlNVz8Og8kvArMtNROxVQuCaSnIDdD5LKyWbRd2n9WGe2R8PzgCmr3EgVLrjyBxWezF0jLHwVN8efS3rCj/EWgvIWgb9tarpVUDK/b58Da+sqqls3eNbuv7pr+eoZG+SrDK6nWeL3c6H5Apxz7LjVc1uTIdsIXxuOLYA4/ilBmSVIzuDWfdRUfhHdY6+cn8HFRm+2hM8AnXGXws9555KrUB5qihylGa8subX2Nn6UwNR1AkUTV74bU= ;{id = 20326 (ksk), size = 2048b}
diff --git a/nixpkgs/pkgs/data/misc/dns-root-data/update-root-key.sh b/nixpkgs/pkgs/data/misc/dns-root-data/update-root-key.sh
new file mode 100755
index 000000000000..9a3141aef197
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/dns-root-data/update-root-key.sh
@@ -0,0 +1,10 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p busybox unbound
+
+TMP=`mktemp`
+unbound-anchor -a "$TMP"
+grep -Ev "^($$|;)" "$TMP" | sed -e 's/ ;;.*//' > root.key
+
+unbound-anchor -F -a "$TMP"
+sed '/^;/d' < "$TMP" > root.ds
+rm $TMP
diff --git a/nixpkgs/pkgs/data/misc/elliptic_curves/default.nix b/nixpkgs/pkgs/data/misc/elliptic_curves/default.nix
new file mode 100644
index 000000000000..988716f5429e
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/elliptic_curves/default.nix
@@ -0,0 +1,50 @@
+{ lib, stdenv
+, fetchurl
+, python
+}:
+
+stdenv.mkDerivation rec {
+  pname = "elliptic_curves";
+  version = "0.8";
+
+  src = fetchurl {
+    url = "mirror://sageupstream/${pname}/${pname}-${version}.tar.bz2";
+    sha256 = "0pzaym44x88dn8rydiwqgm73yghzlgf7gqvd7qqsrsdl2vyp091w";
+  };
+
+
+  # Script that creates the sqlite database from the allcurves textfile
+  spkg-install = fetchurl {
+    url = "https://git.sagemath.org/sage.git/plain/build/pkgs/${pname}/spkg-install.py?id=07d6c37d18811e2b377a9689790a7c5e24da16ba";
+    sha256 = "116g684i6mvs11fvb6fzfsr4fn903axn31vigdyb8bgpf8l4hvc5";
+  };
+
+  installPhase = ''
+    # directory layout as spkg-install.py expects
+    dir="$PWD"
+    cd ..
+    ln -s "$dir" "src"
+
+    # environment spkg-install.py expects
+    mkdir -p "$out/share"
+    export SAGE_SHARE="$out/share"
+    export PYTHONPATH=$PWD
+
+    ${python.interpreter} ${spkg-install}
+  '';
+
+  meta = with lib; {
+    description = "Databases of elliptic curves";
+    longDescription = ''
+      Includes two databases:
+
+       * A small subset of the data in John Cremona's database of elliptic curves up
+         to conductor 10000. See http://www.warwick.ac.uk/~masgaj/ftp/data/ or
+         http://sage.math.washington.edu/cremona/INDEX.html
+       * William Stein's database of interesting curves
+    '';
+    license = licenses.gpl2;
+    platforms = platforms.all;
+    maintainers = teams.sage.members;
+  };
+}
diff --git a/nixpkgs/pkgs/data/misc/fedora-backgrounds/default.nix b/nixpkgs/pkgs/data/misc/fedora-backgrounds/default.nix
new file mode 100644
index 000000000000..31bc28a9f9c1
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/fedora-backgrounds/default.nix
@@ -0,0 +1,23 @@
+{ callPackage, lib, fetchurl }:
+
+let
+  fedoraBackground = callPackage ./generic.nix { };
+in {
+  f32 = fedoraBackground rec {
+    version = "32.2.2";
+    src = fetchurl {
+      url = "https://github.com/fedoradesign/backgrounds/releases/download/v${version}/f${lib.versions.major version}-backgrounds-${version}.tar.xz";
+      hash = "sha256-1F75aae7Jj7M2IPn/vWKcUF+O5mZ0Yey7hWuFj/4Fhg=";
+    };
+  };
+
+  f33 = fedoraBackground rec {
+    version = "33.0.7";
+    src = fetchurl {
+      url = "https://github.com/fedoradesign/backgrounds/releases/download/v${version}/f${lib.versions.major version}-backgrounds-${version}.tar.xz";
+      hash = "sha256-lAn5diEYebCo2ZJCOn9rD87rOasUU0qnSOr0EnZKW4o=";
+    };
+    # Fix broken symlinks in the Xfce background directory.
+    patches = [ ./f33-fix-xfce-path.patch ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/misc/fedora-backgrounds/f33-fix-xfce-path.patch b/nixpkgs/pkgs/data/misc/fedora-backgrounds/f33-fix-xfce-path.patch
new file mode 100644
index 000000000000..eabdacddaa53
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/fedora-backgrounds/f33-fix-xfce-path.patch
@@ -0,0 +1,15 @@
+diff --git a/default/Makefile b/default/Makefile
+index ec8095a..9391f8f 100644
+--- a/default/Makefile
++++ b/default/Makefile
+@@ -48,8 +48,8 @@ install:
+ 	
+ 	#~ XFCE background
+ 	$(MKDIR) $(XFCE_BG_DIR)
+-	$(LN_S) ../default/$(WP_NAME)-02-day.png \
++	$(LN_S) ../../backgrounds/$(WP_NAME)/default/$(WP_NAME)-02-day.png \
+ 			$(XFCE_BG_DIR)/$(WP_NAME).png
+ 	for tod in 01-dawn 03-dusk 04-night; do \
+-	   $(LN_S) ../default/$(WP_NAME)-$${tod}.png $(XFCE_BG_DIR)/$(WP_NAME)-$${tod}.png; \
++	   $(LN_S) ../../backgrounds/$(WP_NAME)/default/$(WP_NAME)-$${tod}.png $(XFCE_BG_DIR)/$(WP_NAME)-$${tod}.png; \
+ 	done;
diff --git a/nixpkgs/pkgs/data/misc/fedora-backgrounds/generic.nix b/nixpkgs/pkgs/data/misc/fedora-backgrounds/generic.nix
new file mode 100644
index 000000000000..3e2e0928c3bc
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/fedora-backgrounds/generic.nix
@@ -0,0 +1,43 @@
+{ lib
+, stdenvNoCC
+, coreutils
+}:
+
+{ version
+, src
+, patches ? [ ]
+}:
+
+stdenvNoCC.mkDerivation {
+  inherit patches src version;
+
+  pname = "fedora${lib.versions.major version}-backgrounds";
+
+  dontBuild = true;
+
+  postPatch = ''
+    for f in default/Makefile extras/Makefile; do
+      substituteInPlace $f \
+        --replace "usr/share" "share" \
+        --replace "/usr/bin/" "" \
+        --replace "/bin/" ""
+    done
+
+    for f in $(find . -name '*.xml'); do
+      substituteInPlace $f \
+        --replace "/usr/share" "$out/share"
+    done;
+  '';
+
+  installFlags = [
+    "DESTDIR=$(out)"
+  ];
+
+  meta = with lib; {
+    homepage = "https://github.com/fedoradesign/backgrounds";
+    description = "A set of default and supplemental wallpapers for Fedora";
+    license = licenses.cc-by-sa-40;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ danieldk ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/misc/freepats/default.nix b/nixpkgs/pkgs/data/misc/freepats/default.nix
new file mode 100644
index 000000000000..3ba5e1b61de1
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/freepats/default.nix
@@ -0,0 +1,24 @@
+{ lib, stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  name = "freepats-20060219";
+
+  src = fetchurl {
+    url = "https://freepats.zenvoid.org/${name}.tar.bz2";
+    sha256 = "12iw36rd94zirll96cd5k0va7p5hxmf2shvjlhzihcmjaw8flq82";
+  };
+
+  installPhase = ''mkdir "$out"; cp -r . "$out"'';
+
+  meta = with lib; {
+    description = "Instrument patches, for MIDI synthesizers";
+    longDescription = ''
+      Freepats is a project to create a free and open set of instrument
+      patches, in any format, that can be used with softsynths.
+    '';
+    homepage = "http://freepats.zenvoid.org/";
+    license = licenses.gpl2;
+    platforms = platforms.all;
+    maintainers = [ maintainers.bjornfor ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/misc/geolite-legacy/builder.sh b/nixpkgs/pkgs/data/misc/geolite-legacy/builder.sh
new file mode 100644
index 000000000000..683b2e8606b8
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/geolite-legacy/builder.sh
@@ -0,0 +1,20 @@
+source "$stdenv/setup"
+
+mkdir -p $out/share/GeoIP
+cd $out/share/GeoIP
+
+# Iterate over all environment variable names beginning with "src":
+for var in "${!src@}"; do
+	# Store the value of the variable with name $var in $src:
+	eval src="\$$var"
+
+	# Copy $src to current directory, removing Nix hash from the filename:
+	dest="${src##*/}"
+	dest="${dest#*-}"
+	cp "$src" "$dest"
+done
+
+gzip -dv *.gz
+
+ln -s GeoLiteCity.dat GeoIPCity.dat
+ln -s GeoLiteCityv6.dat GeoIPCityv6.dat
diff --git a/nixpkgs/pkgs/data/misc/geolite-legacy/default.nix b/nixpkgs/pkgs/data/misc/geolite-legacy/default.nix
new file mode 100644
index 000000000000..735a66089492
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/geolite-legacy/default.nix
@@ -0,0 +1,41 @@
+{ lib, stdenv, fetchurl }:
+
+let
+  fetchDB = src: sha256: fetchurl {
+    inherit sha256;
+    url = "https://geolite.maxmind.com/download/geoip/database/${src}";
+  };
+in
+stdenv.mkDerivation {
+  pname = "geolite-legacy";
+  version = "2017-12-02";
+
+  srcGeoIP = fetchDB
+    "GeoLiteCountry/GeoIP.dat.gz"
+    "1nggml11wzlanmzk6wbw2kla91fj8ggd9kh9yz42lnyckdlf5ac4";
+  srcGeoIPv6 = fetchDB
+    "GeoIPv6.dat.gz"
+    "0w809xgmr5zi4fgm9q3lhrnh1vl62s49n737bhq4jplm5918ki50";
+  srcGeoLiteCity = fetchDB
+    "GeoLiteCity.dat.gz"
+    "0cibajsv5xdjpw1qfx22izm5azqcj0d7nvk39irgwflkim9jfjbs";
+  srcGeoLiteCityv6 = fetchDB
+    "GeoLiteCityv6-beta/GeoLiteCityv6.dat.gz"
+    "1ldwbzgs64irfgb3kq3jp8fmhwmwqk713dr4kkdqlglrblr9hfkc";
+  srcGeoIPASNum = fetchDB
+    "asnum/GeoIPASNum.dat.gz"
+    "06qqs8qr8vxqwd80npz7n66k3bpc1vs7w43i2bb4k0di5yxnjwr9";
+  srcGeoIPASNumv6 = fetchDB
+    "asnum/GeoIPASNumv6.dat.gz"
+    "1qyq4h8cja62giv6q1qqc502vsq53wzz1kx80mgvwngmycrxa21k";
+
+  meta = with lib; {
+    description = "GeoLite Legacy IP geolocation databases";
+    homepage = "https://geolite.maxmind.com/download/geoip";
+    license = licenses.cc-by-sa-30;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ fpletz ];
+  };
+
+  builder = ./builder.sh;
+}
diff --git a/nixpkgs/pkgs/data/misc/graphs/default.nix b/nixpkgs/pkgs/data/misc/graphs/default.nix
new file mode 100644
index 000000000000..54b6c16613e8
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/graphs/default.nix
@@ -0,0 +1,25 @@
+{ lib, stdenv
+, fetchurl
+}:
+
+stdenv.mkDerivation rec {
+  pname = "graphs";
+  version = "20161026";
+
+  src = fetchurl {
+    url = "mirror://sageupstream/${pname}/${pname}-${version}.tar.bz2";
+    sha256 = "0a2b5lly9nifphvknz88rrhfbbc8vqnlqcv19zdpfq8h8nnyjbb2";
+  };
+
+  installPhase = ''
+    mkdir -p "$out/share/graphs"
+    cp * "$out/share/graphs/"
+  '';
+
+  meta = with lib; {
+    description = "A database of graphs";
+    license = licenses.gpl2;
+    platforms = platforms.all;
+    maintainers = teams.sage.members;
+  };
+}
diff --git a/nixpkgs/pkgs/data/misc/hackage/default.nix b/nixpkgs/pkgs/data/misc/hackage/default.nix
new file mode 100644
index 000000000000..551610c5ad5a
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/hackage/default.nix
@@ -0,0 +1,6 @@
+{ fetchurl }:
+
+fetchurl {
+  url = "https://github.com/commercialhaskell/all-cabal-hashes/archive/214ceb3bed92d49a0dffc6c2d8d21b1d0bcc7c25.tar.gz";
+  sha256 = "1m8rm46w9xc8z8dvjg3i0bqpx9630i6ff681dp445q8wv7ji9y2v";
+}
diff --git a/nixpkgs/pkgs/data/misc/iana-etc/default.nix b/nixpkgs/pkgs/data/misc/iana-etc/default.nix
new file mode 100644
index 000000000000..1936bd6627a7
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/iana-etc/default.nix
@@ -0,0 +1,21 @@
+{ lib, stdenv, fetchzip }:
+
+let
+  version = "20200729";
+in fetchzip {
+  name = "iana-etc-${version}";
+  url = "https://github.com/Mic92/iana-etc/releases/download/${version}/iana-etc-${version}.tar.gz";
+  sha256 = "05cymmisfvpyd7fwzc6axvm5fsi1v6hzs0pjr4xp1i95wvpz7qpm";
+
+  postFetch = ''
+    tar -xzvf $downloadedFile --strip-components=1
+    install -D -m0644 -t $out/etc services protocols
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/Mic92/iana-etc";
+    description = "IANA protocol and port number assignments (/etc/protocols and /etc/services)";
+    platforms = platforms.unix;
+    license = licenses.mit;
+  };
+}
diff --git a/nixpkgs/pkgs/data/misc/libkkc-data/default.nix b/nixpkgs/pkgs/data/misc/libkkc-data/default.nix
new file mode 100644
index 000000000000..96130b2de5e1
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/libkkc-data/default.nix
@@ -0,0 +1,21 @@
+{ lib, stdenv, fetchurl, marisa, libkkc }:
+
+stdenv.mkDerivation rec {
+  pname = "libkkc-data";
+  version = "0.2.7";
+
+  src = fetchurl {
+    url = "${meta.homepage}/releases/download/v${libkkc.version}/${pname}-${version}.tar.xz";
+    sha256 = "16avb50jasq2f1n9xyziky39dhlnlad0991pisk3s11hl1aqfrwy";
+  };
+
+  nativeBuildInputs = [ marisa ];
+
+  meta = with lib; {
+    description = "Language model data package for libkkc";
+    homepage    = "https://github.com/ueno/libkkc";
+    license     = licenses.gpl3Plus;
+    maintainers = with maintainers; [ vanzef ];
+    platforms   = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/data/misc/mailcap/default.nix b/nixpkgs/pkgs/data/misc/mailcap/default.nix
new file mode 100644
index 000000000000..725d4ded0eba
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/mailcap/default.nix
@@ -0,0 +1,30 @@
+{ lib, fetchzip }:
+
+let
+  version = "2.1.48";
+
+in fetchzip {
+  name = "mailcap-${version}";
+
+  url = "https://releases.pagure.org/mailcap/mailcap-${version}.tar.xz";
+  sha256 = "08d0avz8971hkggd60dk9yyd14izz24yag3prpfafbvm670jlmqg";
+
+  postFetch = ''
+    tar -xavf $downloadedFile --strip-components=1
+    substituteInPlace mailcap --replace "/usr/bin/" ""
+    gzip mailcap.4
+    sh generate-nginx-mimetypes.sh < mime.types > nginx-mime.types
+
+    install -D -m0644 nginx-mime.types $out/etc/nginx/mime.types
+    install -D -m0644 -t $out/etc mailcap mime.types
+    install -D -m0644 -t $out/share/man/man4 mailcap.4.gz
+  '';
+
+  meta = with lib; {
+    description = "Helper application and MIME type associations for file types";
+    homepage = "https://pagure.io/mailcap";
+    license = licenses.mit;
+    maintainers = with maintainers; [ c0bw3b ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/misc/media-player-info/default.nix b/nixpkgs/pkgs/data/misc/media-player-info/default.nix
new file mode 100644
index 000000000000..56e4ace41f4d
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/media-player-info/default.nix
@@ -0,0 +1,31 @@
+{ lib, stdenv, fetchurl, pkg-config, python3, udev, systemd }:
+
+let
+  name = "media-player-info-24";
+in
+
+  stdenv.mkDerivation {
+    inherit name;
+
+    src = fetchurl {
+      url = "https://www.freedesktop.org/software/media-player-info/${name}.tar.gz";
+      sha256 = "0d0i7av8v369hzvlynwlrbickv1brlzsmiky80lrjgjh1gdldkz6";
+    };
+
+    buildInputs = [ udev systemd ];
+    nativeBuildInputs = [ pkg-config python3 ];
+
+    postPatch = ''
+      patchShebangs ./tools
+    '';
+
+    configureFlags = [ "--with-udevdir=${placeholder "out"}/lib/udev" ];
+
+    meta = with lib; {
+      description = "A repository of data files describing media player capabilities";
+      homepage = "https://www.freedesktop.org/wiki/Software/media-player-info/";
+      license = licenses.bsd3;
+      maintainers = with maintainers; [ ttuegel ];
+      platforms = with platforms; linux;
+    };
+  }
diff --git a/nixpkgs/pkgs/data/misc/mime-types/default.nix b/nixpkgs/pkgs/data/misc/mime-types/default.nix
new file mode 100644
index 000000000000..dc942868250d
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/mime-types/default.nix
@@ -0,0 +1,21 @@
+{ lib, stdenv, fetchzip }:
+
+let
+  version = "9";
+in fetchzip rec {
+  name = "mime-types-${version}";
+  url = "https://mirrors.kernel.org/gentoo/distfiles/${name}.tar.bz2";
+  postFetch = ''
+    mkdir -p $out/etc
+    tar xjvf $downloadedFile --directory=$out/etc --strip-components=1
+  '';
+  sha256 = "0gyla4wfiaccs0qh0hw7n08kdpnkkssglcg0z2jblb2lsdr4qna0";
+
+  meta = with lib; {
+    description = "A database of common mappings of file extensions to MIME types";
+    homepage = "https://packages.gentoo.org/packages/app-misc/mime-types";
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ peterhoeg ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/misc/miscfiles/default.nix b/nixpkgs/pkgs/data/misc/miscfiles/default.nix
new file mode 100644
index 000000000000..783dc29ecb2d
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/miscfiles/default.nix
@@ -0,0 +1,18 @@
+{lib, stdenv, fetchurl}:
+
+stdenv.mkDerivation rec {
+  name = "miscfiles-1.5";
+
+  src = fetchurl {
+    url = "mirror://gnu/miscfiles/${name}.tar.gz";
+    sha256 = "005588vfrwx8ghsdv9p7zczj9lbc9a3r4m5aphcaqv8gif4siaka";
+  };
+
+  meta = with lib; {
+    homepage = "https://www.gnu.org/software/miscfiles/";
+    license = licenses.gpl2Plus;
+    description = "Collection of files not of crucial importance for sysadmins";
+    maintainers = with maintainers; [ pSub ];
+    platforms = with platforms; unix;
+  };
+}
diff --git a/nixpkgs/pkgs/data/misc/mobile-broadband-provider-info/default.nix b/nixpkgs/pkgs/data/misc/mobile-broadband-provider-info/default.nix
new file mode 100644
index 000000000000..f487edba9815
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/mobile-broadband-provider-info/default.nix
@@ -0,0 +1,25 @@
+{ lib, stdenv, fetchurl, gnome3 }:
+
+stdenv.mkDerivation rec {
+  pname = "mobile-broadband-provider-info";
+  version = "20190116";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/${pname}/${version}/${pname}-${version}.tar.xz";
+    sha256 = "16y5lc7pfdvai9c8xwb825zc3v46039gghbip13fqslf5gw11fic";
+  };
+
+  passthru = {
+    updateScript = gnome3.updateScript {
+      packageName = pname;
+    };
+  };
+
+  meta = with lib; {
+    description = "Mobile broadband service provider database";
+    homepage = "https://wiki.gnome.org/Projects/NetworkManager/MobileBroadband/ServiceProviders";
+    license = licenses.publicDomain;
+    maintainers = [ ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/misc/nixos-artwork/default.nix b/nixpkgs/pkgs/data/misc/nixos-artwork/default.nix
new file mode 100644
index 000000000000..4814232fbfe7
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/nixos-artwork/default.nix
@@ -0,0 +1,5 @@
+{ callPackage }:
+
+{
+  wallpapers = callPackage ./wallpapers.nix { };
+}
diff --git a/nixpkgs/pkgs/data/misc/nixos-artwork/grub2-theme.nix b/nixpkgs/pkgs/data/misc/nixos-artwork/grub2-theme.nix
new file mode 100644
index 000000000000..0a5717ba3b27
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/nixos-artwork/grub2-theme.nix
@@ -0,0 +1,5 @@
+{fetchzip}:
+fetchzip {
+  url = "https://github.com/NixOS/nixos-artwork/releases/download/bootloader-18.09-pre/grub2-installer.tar.bz2";
+  sha256 = "0rhh061m1hpgadm7587inw3fxfacnd53xjc53w3vzghlck56djq5";
+}
diff --git a/nixpkgs/pkgs/data/misc/nixos-artwork/icons.nix b/nixpkgs/pkgs/data/misc/nixos-artwork/icons.nix
new file mode 100644
index 000000000000..caab674393a1
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/nixos-artwork/icons.nix
@@ -0,0 +1,13 @@
+{ stdenv, fetchFromGitHub, imagemagick }:
+
+stdenv.mkDerivation {
+  name = "nixos-icons-2017-03-16";
+  srcs = fetchFromGitHub {
+    owner = "NixOS";
+    repo = "nixos-artwork";
+    rev = "783ca1249fc4cfe523ad4e541f37e2229891bc8b";
+    sha256 = "0wp08b1gh2chs1xri43wziznyjcplx0clpsrb13wzyscv290ay5a";
+  };
+  makeFlags = [ "DESTDIR=$(out)" "prefix=" ];
+  nativeBuildInputs = [ imagemagick ];
+}
diff --git a/nixpkgs/pkgs/data/misc/nixos-artwork/wallpapers.nix b/nixpkgs/pkgs/data/misc/nixos-artwork/wallpapers.nix
new file mode 100644
index 000000000000..f8d22637cf3d
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/nixos-artwork/wallpapers.nix
@@ -0,0 +1,159 @@
+{ lib, stdenv, fetchurl }:
+
+let
+  mkNixBackground = { name, src, description }:
+
+  let
+    pkg = stdenv.mkDerivation {
+      inherit name src;
+
+      dontUnpack = true;
+
+      installPhase = ''
+        # GNOME
+        mkdir -p $out/share/backgrounds/nixos
+        ln -s $src $out/share/backgrounds/nixos/${src.name}
+
+        # TODO: is this path still needed?
+        mkdir -p $out/share/artwork/gnome
+        ln -s $src $out/share/artwork/gnome/${src.name}
+
+        # KDE
+        mkdir -p $out/share/wallpapers/${name}/contents/images
+        ln -s $src $out/share/wallpapers/${name}/contents/images/${src.name}
+        cat >>$out/share/wallpapers/${name}/metadata.desktop <<_EOF
+[Desktop Entry]
+Name=${name}
+X-KDE-PluginInfo-Name=${name}
+_EOF
+      '';
+
+      passthru = {
+        gnomeFilePath = "${pkg}/share/backgrounds/nixos/${src.name}";
+        kdeFilePath = "${pkg}/share/wallpapers/${name}/contents/images/${src.name}";
+      };
+
+      meta = with lib; {
+        inherit description;
+        homepage = "https://github.com/NixOS/nixos-artwork";
+        license = licenses.free;
+        platforms = platforms.all;
+      };
+    };
+in pkg;
+
+in
+
+rec {
+
+  dracula = mkNixBackground {
+    name = "dracula-2020-07-02";
+    description = "Nix background based on the Dracula color palette";
+    src = fetchurl {
+      url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/03c6c20be96c38827037d2238357f2c777ec4aa5/wallpapers/nix-wallpaper-dracula.png";
+      sha256 = "07ly21bhs6cgfl7pv4xlqzdqm44h22frwfhdqyd4gkn2jla1waab";
+    };
+  };
+
+  gnome-dark = simple-dark-gray-bottom;
+
+  mosaic-blue = mkNixBackground {
+    name = "mosaic-blue-2016-02-19";
+    description = "Mosaic blue background for Nix";
+    src = fetchurl {
+      url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/766f10e0c93cb1236a85925a089d861b52ed2905/wallpapers/nix-wallpaper-mosaic-blue.png";
+      sha256 = "1cbcssa8qi0giza0k240w5yy4yb2bhc1p1r7pw8qmziprcmwv5n5";
+    };
+  };
+
+  nineish = mkNixBackground {
+    name = "nineish-2019-12-04";
+    description = "Nix background inspired by simpler times";
+    src = fetchurl {
+      url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/da01f68d21ddfdc9f1c6e520c2170871c81f1cf5/wallpapers/nix-wallpaper-nineish.png";
+      sha256 = "1mwvnmflp0z1biyyhfz7mjn7i1nna94n7jyns3na2shbfkaq7i0h";
+    };
+  };
+
+  nineish-dark-gray = mkNixBackground {
+    name = "nineish-dark-gray-2020-07-02";
+    description = "Dark gray Nix background inspired by simpler times";
+    src = fetchurl {
+      url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/f07707cecfd89bc1459d5dad76a3a4c5315efba1/wallpapers/nix-wallpaper-nineish-dark-gray.png";
+      sha256 = "07zl1dlxqh9dav9pibnhr2x1llywwnyphmzcdqaby7dz5js184ly";
+    };
+  };
+
+  simple-blue = mkNixBackground {
+    name = "simple-blue-2016-02-19";
+    description = "Simple blue background for Nix";
+    src = fetchurl {
+      url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/766f10e0c93cb1236a85925a089d861b52ed2905/wallpapers/nix-wallpaper-simple-blue.png";
+      sha256 = "1llr175m454aqixxwbp3kb5qml2hi1kn7ia6lm7829ny6y7xrnms";
+    };
+  };
+
+  simple-dark-gray = mkNixBackground {
+    name = "simple-dark-gray-2016-02-19";
+    description = "Simple dark gray background for Nix";
+    src = fetchurl {
+      url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/766f10e0c93cb1236a85925a089d861b52ed2905/wallpapers/nix-wallpaper-simple-dark-gray.png";
+      sha256 = "1282cnqc5qynp0q9gdll7bgpw23yp5bhvaqpar59ibkh3iscg8i5";
+    };
+  };
+
+  simple-dark-gray-bootloader = mkNixBackground {
+    name = "simple-dark-gray-bootloader-2018-08-28";
+    description = "Simple dark gray background for NixOS, specifically bootloaders.";
+    src = fetchurl {
+      url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/9d1f11f652ed5ffe460b6c602fbfe2e7e9a08dff/bootloader/nix-wallpaper-simple-dark-gray_bootloader.png";
+      sha256 = "0v26kfydn7alr81f2qpgsqdiq2zk7yrwlgibx2j7k91z9h47dpj9";
+    };
+  };
+
+  simple-dark-gray-bottom = mkNixBackground {
+    name = "simple-dark-gray-2018-08-28";
+    description = "Simple dark gray background for NixOS, specifically bootloaders and graphical login.";
+    src = fetchurl {
+      url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/783c38b22de09f6ee33aacc817470a4513392d83/wallpapers/nix-wallpaper-simple-dark-gray_bottom.png";
+      sha256 = "13hi4jwp5ga06dpdw5l03b4znwn58fdjlkqjkg824isqsxzv6k15";
+    };
+  };
+
+  simple-light-gray = mkNixBackground {
+    name = "simple-light-gray-2016-02-19";
+    description = "Simple light gray background for Nix";
+    src = fetchurl {
+      url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/766f10e0c93cb1236a85925a089d861b52ed2905/wallpapers/nix-wallpaper-simple-light-gray.png";
+      sha256 = "0i6d0xv1nzrv7na9hjrgzl3jrwn81vnprnq2pxyznlxbjcgkjnk2";
+    };
+  };
+
+  simple-red = mkNixBackground {
+    name = "simple-red-2016-02-19";
+    description = "Simple red background for Nix";
+    src = fetchurl {
+      url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/766f10e0c93cb1236a85925a089d861b52ed2905/wallpapers/nix-wallpaper-simple-red.png";
+      sha256 = "16drprsi3q8xbxx3bxp54yld04c4lq6jankw8ww1irg7z61a6wjs";
+    };
+  };
+
+  stripes-logo = mkNixBackground {
+    name = "stripes-logo-2016-02-19";
+    description = "Stripes logo background for Nix";
+    src = fetchurl {
+      url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/766f10e0c93cb1236a85925a089d861b52ed2905/wallpapers/nix-wallpaper-stripes-logo.png";
+      sha256 = "0cqjkgp30428c1yy8s4418k4qz0ycr6fzcg4rdi41wkh5g1hzjnl";
+    };
+  };
+
+  stripes = mkNixBackground {
+    name = "stripes-2016-02-19";
+    description = "Stripes background for Nix";
+    src = fetchurl {
+      url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/766f10e0c93cb1236a85925a089d861b52ed2905/wallpapers/nix-wallpaper-stripes.png";
+      sha256 = "116337wv81xfg0g0bsylzzq2b7nbj6hjyh795jfc9mvzarnalwd3";
+    };
+  };
+
+}
diff --git a/nixpkgs/pkgs/data/misc/osinfo-db/default.nix b/nixpkgs/pkgs/data/misc/osinfo-db/default.nix
new file mode 100644
index 000000000000..36fc664a83bb
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/osinfo-db/default.nix
@@ -0,0 +1,27 @@
+{ lib, stdenv, fetchurl, osinfo-db-tools, gettext, libxml2 }:
+
+stdenv.mkDerivation rec {
+  pname = "osinfo-db";
+  version = "20201119";
+
+  src = fetchurl {
+    url = "https://releases.pagure.org/libosinfo/${pname}-${version}.tar.xz";
+    sha256 = "1a0c42rh3anl3wy4hpg36s8k37y8zxpi5lc67wjwnj4j6mwi7w3l";
+  };
+
+  nativeBuildInputs = [ osinfo-db-tools gettext libxml2 ];
+
+  phases = [ "installPhase" ];
+
+  installPhase = ''
+    osinfo-db-import --dir "$out/share/osinfo" "${src}"
+  '';
+
+  meta = with lib; {
+    description = "Osinfo database of information about operating systems for virtualization provisioning tools";
+    homepage = "https://gitlab.com/libosinfo/osinfo-db/";
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.bjornfor ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/misc/pari-galdata/default.nix b/nixpkgs/pkgs/data/misc/pari-galdata/default.nix
new file mode 100644
index 000000000000..c76734628050
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/pari-galdata/default.nix
@@ -0,0 +1,26 @@
+{ lib, stdenv
+, fetchurl
+}:
+
+stdenv.mkDerivation {
+  version = "20080411";
+  pname = "pari-galdata";
+
+  src = fetchurl {
+    url = "http://pari.math.u-bordeaux.fr/pub/pari/packages/galdata.tgz";
+    sha256 = "1pch6bk76f1i6cwwgm7hhxi5h71m52lqayp4mnyj0jmjk406bhdp";
+  };
+
+  installPhase = ''
+    mkdir -p "$out/share/pari"
+    cp -R * "$out/share/pari/"
+  '';
+
+  meta = with lib; {
+    description = "PARI database needed to compute Galois group in degrees 8 through 11";
+    homepage = "http://pari.math.u-bordeaux.fr/";
+    license = licenses.gpl2Plus;
+    platforms = platforms.all;
+    maintainers = teams.sage.members;
+  };
+}
diff --git a/nixpkgs/pkgs/data/misc/pari-seadata-small/default.nix b/nixpkgs/pkgs/data/misc/pari-seadata-small/default.nix
new file mode 100644
index 000000000000..86516fe1ddba
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/pari-seadata-small/default.nix
@@ -0,0 +1,26 @@
+{ lib, stdenv
+, fetchurl
+}:
+
+stdenv.mkDerivation {
+  version = "20090618";
+  pname = "pari-seadata-small";
+
+  src = fetchurl {
+    url = "http://pari.math.u-bordeaux.fr/pub/pari/packages/seadata-small.tgz";
+    sha256 = "13qafribxwkz8h3haa0cng7arz0kh7398br4y7vqs9ib8w9yjnxz";
+  };
+
+  installPhase = ''
+    mkdir -p "$out/share/pari"
+    cp -R * "$out/share/pari/"
+  '';
+
+  meta = with lib; {
+    description = "PARI database needed by ellap for large primes";
+    homepage = "http://pari.math.u-bordeaux.fr/";
+    license = licenses.gpl2Plus;
+    platforms = platforms.all;
+    maintainers = teams.sage.members;
+  };
+}
diff --git a/nixpkgs/pkgs/data/misc/polytopes_db/default.nix b/nixpkgs/pkgs/data/misc/polytopes_db/default.nix
new file mode 100644
index 000000000000..8e9e7b44a4aa
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/polytopes_db/default.nix
@@ -0,0 +1,25 @@
+{ lib, stdenv
+, fetchurl
+}:
+
+stdenv.mkDerivation rec {
+  pname = "polytopes_db";
+  version = "20170220";
+
+  src = fetchurl {
+    url = "mirror://sageupstream/${pname}/${pname}-${version}.tar.bz2";
+    sha256 = "1q0cd811ilhax4dsj9y5p7z8prlalqr7k9mzq178c03frbgqny6b";
+  };
+
+  installPhase = ''
+    mkdir -p "$out/share/reflexive_polytopes"
+    cp -R * "$out/share/reflexive_polytopes/"
+  '';
+
+  meta = with lib; {
+    description = "Reflexive polytopes database";
+    license = licenses.gpl2;
+    platforms = platforms.all;
+    maintainers = teams.sage.members;
+  };
+}
diff --git a/nixpkgs/pkgs/data/misc/poppler-data/default.nix b/nixpkgs/pkgs/data/misc/poppler-data/default.nix
new file mode 100644
index 000000000000..5d6e7b8e80dc
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/poppler-data/default.nix
@@ -0,0 +1,20 @@
+{ fetchurl, lib, stdenv, cmake, ninja }:
+
+stdenv.mkDerivation rec {
+  name = "poppler-data-0.4.10";
+
+  src = fetchurl {
+    url = "https://poppler.freedesktop.org/${name}.tar.gz";
+    sha256 = "0c3vjs3p7rjc4yfacnhd865r27czmzwcr4j2z4jldi68dvvcwbvf";
+  };
+
+  nativeBuildInputs = [ cmake ninja ];
+
+  meta = with lib; {
+    homepage = "https://poppler.freedesktop.org/";
+    description = "Encoding files for Poppler, a PDF rendering library";
+    platforms = platforms.all;
+    license = licenses.free; # more free licenses combined
+    maintainers = with maintainers; [ ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/misc/publicsuffix-list/default.nix b/nixpkgs/pkgs/data/misc/publicsuffix-list/default.nix
new file mode 100644
index 000000000000..ca79e251f28a
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/publicsuffix-list/default.nix
@@ -0,0 +1,25 @@
+{ lib, fetchFromGitHub }:
+
+let
+  pname = "publicsuffix-list";
+  version = "2019-05-24";
+in fetchFromGitHub {
+  name = "${pname}-${version}";
+  owner = "publicsuffix";
+  repo = "list";
+  rev = "a1db0e898956e126de65be1a5e977fbbbbeebe33";
+  sha256 = "092153w2jr7nx28p9wc9k6b5azi9c39ghnqfnfiwfzv1j8jm3znq";
+
+  postFetch = ''
+    tar xf $downloadedFile --strip=1
+    install -Dm0444 public_suffix_list.dat tests/test_psl.txt -t $out/share/publicsuffix
+  '';
+
+  meta = with lib; {
+    homepage = "https://publicsuffix.org/";
+    description = "Cross-vendor public domain suffix database";
+    platforms = platforms.all;
+    license = licenses.mpl20;
+    maintainers = [ maintainers.c0bw3b ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/misc/scowl/default.nix b/nixpkgs/pkgs/data/misc/scowl/default.nix
new file mode 100644
index 000000000000..a4d91eeb037a
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/scowl/default.nix
@@ -0,0 +1,112 @@
+{ lib, stdenv, fetchFromGitHub, unzip, zip, libiconv, perl, aspell, dos2unix
+, singleWordlist ? null
+}:
+
+stdenv.mkDerivation rec {
+  pname = "scowl";
+  version = "2019.10.06";
+
+  src = fetchFromGitHub {
+    owner = "en-wl";
+    repo = "wordlist";
+    rev = "rel-${version}";
+    sha256 = "1daag7h63gdijp1lv3v93bx5kmcb5zsyydsd57kv0a6kk3vs819x";
+  };
+
+  postPatch = ''
+    substituteInPlace scowl/src/Makefile \
+        --replace g++ c++
+  '';
+
+  nativeBuildInputs = [ unzip zip perl aspell dos2unix ];
+  buildInputs = lib.optional (!stdenv.isLinux) libiconv;
+
+  NIX_CFLAGS_COMPILE = "-Wno-narrowing";
+
+  preConfigure = ''
+    patchShebangs .
+    export PERL5LIB="$PERL5LIB''${PERL5LIB:+:}$PWD/varcon"
+  '';
+
+  postBuild = lib.optionalString (singleWordlist == null) ''
+    (
+    cd scowl/speller
+    make aspell
+    make hunspell
+    )
+  '';
+
+  enableParallelBuilding = false;
+
+  installPhase = if singleWordlist == null then ''
+    eval "$preInstall"
+
+    mkdir -p "$out/share/scowl"
+    mkdir -p "$out/lib" "$out/share/hunspell" "$out/share/myspell"
+    mkdir -p "$out/share/dict"
+
+    cp -r scowl/speller/aspell "$out/lib/aspell"
+    cp scowl/speller/*.{aff,dic} "$out/share/hunspell"
+    ln -s "$out/share/hunspell" "$out/share/myspell/dicts"
+
+    cp scowl/final/* "$out/share/scowl"
+
+    (
+      cd scowl
+      for region in american british british_s british_z canadian australian; do
+        case $region in
+          american)
+            regcode=en-us;
+            ;;
+          british)
+            regcode=en-gb-ise;
+            ;;
+          british_s)
+            regcode=en-gb-ise;
+            ;;
+          british_z)
+            regcode=en-gb-ize;
+            ;;
+          canadian)
+            regcode=en-ca;
+            ;;
+          australian)
+            regcode=en-au;
+            ;;
+        esac
+        regcode_var="$regcode"
+        if test "$region" = british; then
+          regcode_var="en-gb"
+        fi
+
+        echo $region $regcode $regcode_sz
+        for s in 10 20 30 35 40 50 55 60 70 80 90 95; do
+          ./mk-list $regcode $s > "$out/share/dict/w$region.$s"
+          ./mk-list --variants=1 $regcode_var $s > "$out/share/dict/w$region.variants.$s"
+          ./mk-list --variants=2 $regcode_var $s > "$out/share/dict/w$region.acceptable.$s"
+        done
+        ./mk-list $regcode 60 > "$out/share/dict/w$region.txt"
+        ./mk-list --variants=1 $regcode_var 60 > "$out/share/dict/w$region.variants.txt"
+        ./mk-list --variants=2 $regcode_var 80 > "$out/share/dict/w$region.scrabble.txt"
+      done
+      ./mk-list --variants=1 en-gb 60 > "$out/share/dict/words.variants.txt"
+      ./mk-list --variants=1 en-gb 80 > "$out/share/dict/words.scrabble.txt"
+      ./mk-list en-gb-ise 60 > "$out/share/dict/words.txt"
+    )
+
+    eval "$postInstall"
+  '' else ''
+    mkdir -p "$out/share/dict"
+    cd scowl
+    ./mk-list ${singleWordlist} > "$out/share/dict/words.txt"
+  '';
+
+  meta = {
+    inherit version;
+    description = "Spell checker oriented word lists";
+    license = lib.licenses.mit;
+    maintainers = [lib.maintainers.raskin];
+    platforms = lib.platforms.unix;
+    homepage = "http://wordlist.aspell.net/";
+  };
+}
diff --git a/nixpkgs/pkgs/data/misc/shared-desktop-ontologies/default.nix b/nixpkgs/pkgs/data/misc/shared-desktop-ontologies/default.nix
new file mode 100644
index 000000000000..88f9eec8fcad
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/shared-desktop-ontologies/default.nix
@@ -0,0 +1,25 @@
+{ lib, stdenv, fetchurl, cmake }:
+
+stdenv.mkDerivation rec {
+  name = "shared-desktop-ontologies-0.11.0";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/oscaf/${name}.tar.bz2";
+    sha256 = "1m5vnijg7rnwg41vig2ckg632dlczzdab1gsq51g4x7m9k1fdbw2";
+  };
+
+  nativeBuildInputs = [ cmake ];
+
+  meta = with lib; {
+    homepage = "http://oscaf.sourceforge.net/";
+    description = "Ontologies necessary for the Nepomuk semantic desktop";
+    longDescription = ''
+      The shared-desktop-ontologies package brings the semantic web to the
+      desktop in terms of vocabulary. It contains the well known core
+      ontologies such as RDF and RDFS as well as the Nepomuk ontologies which
+      are used by projects like KDE or Strigi.
+    '';
+    platforms = platforms.all;
+    maintainers = [ maintainers.sander ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/misc/shared-mime-info/default.nix b/nixpkgs/pkgs/data/misc/shared-mime-info/default.nix
new file mode 100644
index 000000000000..c69a9802c0c8
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/shared-mime-info/default.nix
@@ -0,0 +1,40 @@
+{ lib, stdenv
+, fetchurl
+, pkg-config
+, gettext
+, perlPackages
+, itstool
+, libxml2
+, glib
+}:
+
+stdenv.mkDerivation rec {
+  pname = "shared-mime-info";
+  version = "1.13.1";
+
+  src = fetchurl {
+    url = "https://gitlab.freedesktop.org/xdg/${pname}/uploads/5349e18c86eb96eee258a5c1f19122d0/${pname}-${version}.tar.xz";
+    sha256 = "1bic8z5nz08qxv1x6zlxnx2j4cmlzm12kygrn3rrh1djqxdhma3f";
+  };
+
+  nativeBuildInputs = [
+    pkg-config
+    gettext
+    itstool
+  ] ++ (with perlPackages; [
+    perl XMLParser
+  ]);
+
+  buildInputs = [
+    libxml2
+    glib
+  ];
+
+  meta = with lib; {
+    description = "A database of common MIME types";
+    homepage = "http://freedesktop.org/wiki/Software/shared-mime-info";
+    license = licenses.gpl2Plus;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.mimame ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/misc/sound-theme-freedesktop/default.nix b/nixpkgs/pkgs/data/misc/sound-theme-freedesktop/default.nix
new file mode 100644
index 000000000000..2b750a7e9e10
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/sound-theme-freedesktop/default.nix
@@ -0,0 +1,21 @@
+{ lib, stdenv, fetchurl, intltool }:
+
+stdenv.mkDerivation rec {
+  pname = "sound-theme-freedesktop";
+  version = "0.8";
+
+  src = fetchurl {
+    sha256 = "054abv4gmfk9maw93fis0bf605rc56dah7ys5plc4pphxqh8nlfb";
+    url = "https://people.freedesktop.org/~mccann/dist/${pname}-${version}.tar.bz2";
+  };
+
+  nativeBuildInputs = [ intltool ];
+
+  meta = with lib; {
+    description = "Freedesktop reference sound theme";
+    homepage = "http://freedesktop.org/wiki/Specifications/sound-theme-spec";
+    # See http://cgit.freedesktop.org/sound-theme-freedesktop/tree/CREDITS:
+    license = with licenses; [ cc-by-30 cc-by-sa-25 gpl2 gpl2Plus ];
+    platforms = with platforms; unix;
+  };
+}
diff --git a/nixpkgs/pkgs/data/misc/spdx-license-list-data/default.nix b/nixpkgs/pkgs/data/misc/spdx-license-list-data/default.nix
new file mode 100644
index 000000000000..19f02a16f470
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/spdx-license-list-data/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, lib, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  pname = "spdx-license-list-data";
+  version = "3.11";
+
+  src = fetchFromGitHub {
+    owner = "spdx";
+    repo = "license-list-data";
+    rev = "v${version}";
+    sha256 = "1iwyqhh6lh51a47mhfy98zvjan8yjsvlym8qz0isx2i1zzxlj47a";
+  };
+
+  phases = [ "unpackPhase" "installPhase" ];
+
+  installPhase = ''
+    install -vDt $out/json json/licenses.json
+  '';
+
+  meta = {
+    description = "Various data formats for the SPDX License List";
+    homepage = "https://github.com/spdx/license-list-data";
+    license = lib.licenses.cc0;
+    platforms = lib.platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/misc/tzdata/default.nix b/nixpkgs/pkgs/data/misc/tzdata/default.nix
new file mode 100644
index 000000000000..98a6b9877d15
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/tzdata/default.nix
@@ -0,0 +1,74 @@
+{ lib, stdenv, fetchurl, buildPackages }:
+
+stdenv.mkDerivation rec {
+  pname = "tzdata";
+  version = "2020f";
+
+  srcs =
+    [ (fetchurl {
+        url = "https://data.iana.org/time-zones/releases/tzdata${version}.tar.gz";
+        sha256 = "10b8cr55x6ji14n3kqkn3avj1s9b79b8gszh81fxrrisij8k248j";
+      })
+      (fetchurl {
+        url = "https://data.iana.org/time-zones/releases/tzcode${version}.tar.gz";
+        sha256 = "1i998crd9fxdfhv4jd241j1arx0ng7j7cvczpmj4y5j5fwmfmvng";
+      })
+    ];
+
+  sourceRoot = ".";
+
+  outputs = [ "out" "bin" "man" "dev" ];
+  propagatedBuildOutputs = [];
+
+  makeFlags = [
+    "TOPDIR=$(out)"
+    "TZDIR=$(out)/share/zoneinfo"
+    "BINDIR=$(bin)/bin"
+    "ZICDIR=$(bin)/bin"
+    "ETCDIR=$(TMPDIR)/etc"
+    "TZDEFAULT=$(TMPDIR)/etc"
+    "LIBDIR=$(dev)/lib"
+    "MANDIR=$(man)/share/man"
+    "AWK=awk"
+    "CFLAGS=-DHAVE_LINK=0"
+    "CFLAGS+=-DZIC_BLOAT_DEFAULT=\\\"fat\\\""
+    "cc=${stdenv.cc.targetPrefix}cc"
+    "AR=${stdenv.cc.targetPrefix}ar"
+  ];
+
+  depsBuildBuild = [ buildPackages.stdenv.cc ];
+
+  doCheck = false; # needs more tools
+
+  installFlags = [ "ZIC=./zic-native" ];
+
+  preInstall = ''
+     mv zic.o zic.o.orig
+     mv zic zic.orig
+     make $makeFlags cc=cc AR=ar zic
+     mv zic zic-native
+     mv zic.o.orig zic.o
+     mv zic.orig zic
+  '';
+
+  postInstall =
+    ''
+      rm $out/share/zoneinfo-posix
+      mkdir $out/share/zoneinfo/posix
+      ( cd $out/share/zoneinfo/posix; ln -s ../* .; rm posix )
+      mv $out/share/zoneinfo-leaps $out/share/zoneinfo/right
+
+      mkdir -p "$dev/include"
+      cp tzfile.h "$dev/include/tzfile.h"
+    '';
+
+  setupHook = ./tzdata-setup-hook.sh;
+
+  meta = with lib; {
+    homepage = "http://www.iana.org/time-zones";
+    description = "Database of current and historical time zones";
+    changelog = "https://github.com/eggert/tz/blob/${version}/NEWS";
+    platforms = platforms.all;
+    maintainers = with maintainers; [ fpletz ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/misc/tzdata/tzdata-setup-hook.sh b/nixpkgs/pkgs/data/misc/tzdata/tzdata-setup-hook.sh
new file mode 100644
index 000000000000..9975d0aec31a
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/tzdata/tzdata-setup-hook.sh
@@ -0,0 +1,5 @@
+tzdataHook() {
+    export TZDIR=@out@/share/zoneinfo
+}
+
+addEnvHooks "$targetOffset" tzdataHook
diff --git a/nixpkgs/pkgs/data/misc/unicode-character-database/default.nix b/nixpkgs/pkgs/data/misc/unicode-character-database/default.nix
new file mode 100644
index 000000000000..0f0a4d5fa15c
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/unicode-character-database/default.nix
@@ -0,0 +1,38 @@
+{ lib, stdenv
+, fetchurl
+, unzip
+}:
+
+stdenv.mkDerivation rec {
+  pname = "unicode-character-database";
+  version = "13.0.0";
+
+  src = fetchurl {
+    url = "https://www.unicode.org/Public/zipped/${version}/UCD.zip";
+    sha256 = "0ld97ppkb5f8d5b3mlkxfwnr6f3inijyqias9xc4bbin9lxrfxig";
+  };
+
+  nativeBuildInputs = [
+    unzip
+  ];
+
+  setSourceRoot = ''
+    sourceRoot=$PWD
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/unicode
+    cp -r * $out/share/unicode
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Unicode Character Database";
+    homepage = "https://www.unicode.org/";
+    license = licenses.unicode-dfs-2016;
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/misc/unicode-emoji/default.nix b/nixpkgs/pkgs/data/misc/unicode-emoji/default.nix
new file mode 100644
index 000000000000..60ff492330dc
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/unicode-emoji/default.nix
@@ -0,0 +1,59 @@
+{ stdenv
+, fetchurl
+, symlinkJoin
+, lib
+}:
+
+let
+  version = "12.1";
+
+  fetchData = { file, sha256 }: fetchurl {
+    url = "https://www.unicode.org/Public/emoji/${version}/${file}";
+    inherit sha256;
+    downloadToTemp = true;
+    recursiveHash = true;
+    postFetch = ''
+      installDir="$out/share/unicode/emoji"
+      mkdir -p "$installDir"
+      mv "$downloadedFile" "$installDir/${file}"
+    '';
+  };
+
+  srcs = {
+    emoji-data = fetchData {
+      file = "emoji-data.txt";
+      sha256 = "17gfm5a28lsymx36prbjy2g0b27gf3rcgggy0yxdshbxwf6zpf9k";
+    };
+    emoji-sequences = fetchData {
+      file = "emoji-sequences.txt";
+      sha256 = "1fckw5hfyvz5jfp2jczzx8qcs79vf0zyq0z2942230j99arq70vc";
+    };
+    emoji-test = fetchData {
+      file = "emoji-test.txt";
+      sha256 = "0w29lva7gp9g9lf7bz1i24qdalvf440bcq8npsbwr3cpp7na95kh";
+    };
+    emoji-variation-sequences = fetchData {
+      file = "emoji-variation-sequences.txt";
+      sha256 = "0akpib3cinr8xcs045hda5wnpfj6qfdjlkzmq5vgdc50gyhrd2z3";
+    };
+    emoji-zwj-sequences = fetchData {
+      file = "emoji-zwj-sequences.txt";
+      sha256 = "0s2mvy1nr2v1x0rr1fxlsv8ly1vyf9978rb4hwry5vnr678ls522";
+    };
+  };
+in
+
+symlinkJoin rec {
+  name = "unicode-emoji-${version}";
+
+  paths = lib.attrValues srcs;
+
+  passthru = srcs;
+
+  meta = with lib; {
+    description = "Unicode Emoji Data Files";
+    homepage = "https://home.unicode.org/emoji/";
+    license = licenses.unicode-dfs-2016;
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/misc/unihan-database/default.nix b/nixpkgs/pkgs/data/misc/unihan-database/default.nix
new file mode 100644
index 000000000000..02632b926448
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/unihan-database/default.nix
@@ -0,0 +1,38 @@
+{ lib, stdenv
+, fetchurl
+, unzip
+}:
+
+stdenv.mkDerivation rec {
+  pname = "unihan-database";
+  version = "12.1.0";
+
+  src = fetchurl {
+    url = "https://www.unicode.org/Public/zipped/${version}/Unihan.zip";
+    sha256 = "1kfdhgg2gm52x3s07bijb5cxjy0jxwhd097k5lqhvzpznprm6ibf";
+  };
+
+  nativeBuildInputs = [
+    unzip
+  ];
+
+  setSourceRoot = ''
+    sourceRoot=$PWD
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/unicode
+    cp -r * $out/share/unicode
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Unicode Han Database";
+    homepage = "https://www.unicode.org/";
+    license = licenses.unicode-dfs-2016;
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/misc/wireless-regdb/default.nix b/nixpkgs/pkgs/data/misc/wireless-regdb/default.nix
new file mode 100644
index 000000000000..fc238fbe149b
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/wireless-regdb/default.nix
@@ -0,0 +1,26 @@
+{ lib, stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  pname = "wireless-regdb";
+  version = "2020.04.29";
+
+  src = fetchurl {
+    url = "https://www.kernel.org/pub/software/network/${pname}/${pname}-${version}.tar.xz";
+    sha256 = "0yicda474ygahv8da18h1p4yf42s6x2f208mlwcw4xsrxld07zc9";
+  };
+
+  dontBuild = true;
+
+  makeFlags = [
+    "DESTDIR=${placeholder "out"}"
+    "PREFIX="
+  ];
+
+  meta = with lib; {
+    description = "Wireless regulatory database for CRDA";
+    homepage = "http://wireless.kernel.org/en/developers/Regulatory/";
+    license = licenses.isc;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ fpletz ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/misc/xorg-rgb/default.nix b/nixpkgs/pkgs/data/misc/xorg-rgb/default.nix
new file mode 100644
index 000000000000..24689d571da6
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/xorg-rgb/default.nix
@@ -0,0 +1,21 @@
+{lib, stdenv, fetchurl, pkg-config, xorgproto}:
+stdenv.mkDerivation rec {
+  pname = "rgb";
+  version = "1.0.6";
+
+  src = fetchurl {
+    url = "http://xorg.freedesktop.org/archive/individual/app/rgb-${version}.tar.bz2";
+    sha256 = "1c76zcjs39ljil6f6jpx1x17c8fnvwazz7zvl3vbjfcrlmm7rjmv";
+  };
+
+  nativeBuildInputs = [pkg-config];
+  buildInputs = [xorgproto];
+  meta = {
+    inherit version;
+    description = "X11 colorname to RGB mapping database";
+    license = lib.licenses.mit;
+    maintainers = [lib.maintainers.raskin];
+    platforms = lib.platforms.linux;
+    homepage = "http://xorg.freedesktop.org/";
+  };
+}