diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 6ec7d705ef2e..a55256a7ea42 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -8546,6 +8546,12 @@ githubId = 9636071; name = "Myrl Hex"; }; + n0emis = { + email = "nixpkgs@n0emis.network"; + github = "n0emis"; + githubId = 22817873; + name = "Ember Keske"; + }; nadrieril = { email = "nadrieril@gmail.com"; github = "nadrieril"; diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index 29fcc920f421..c6f4ec5f08c3 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -396,6 +396,7 @@ ./services/development/jupyterhub/default.nix ./services/development/rstudio-server/default.nix ./services/development/lorri.nix + ./services/development/zammad.nix ./services/display-managers/greetd.nix ./services/editors/emacs.nix ./services/editors/infinoted.nix diff --git a/nixos/modules/services/development/zammad.nix b/nixos/modules/services/development/zammad.nix new file mode 100644 index 000000000000..d457a6071873 --- /dev/null +++ b/nixos/modules/services/development/zammad.nix @@ -0,0 +1,323 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + cfg = config.services.zammad; + settingsFormat = pkgs.formats.yaml { }; + filterNull = filterAttrs (_: v: v != null); + serviceConfig = { + Type = "simple"; + Restart = "always"; + + User = "zammad"; + Group = "zammad"; + PrivateTmp = true; + StateDirectory = "zammad"; + WorkingDirectory = cfg.dataDir; + }; + environment = { + RAILS_ENV = "production"; + NODE_ENV = "production"; + RAILS_SERVE_STATIC_FILES = "true"; + RAILS_LOG_TO_STDOUT = "true"; + }; + databaseConfig = settingsFormat.generate "database.yml" cfg.database.settings; +in +{ + + options = { + services.zammad = { + enable = mkEnableOption "Zammad, a web-based, open source user support/ticketing solution."; + + package = mkOption { + type = types.package; + default = pkgs.zammad; + defaultText = literalExpression "pkgs.zammad"; + description = "Zammad package to use."; + }; + + dataDir = mkOption { + type = types.path; + default = "/var/lib/zammad"; + description = '' + Path to a folder that will contain Zammad working directory. + ''; + }; + + host = mkOption { + type = types.str; + default = "127.0.0.1"; + example = "192.168.23.42"; + description = "Host address."; + }; + + openPorts = mkOption { + type = types.bool; + default = false; + description = "Whether to open firewall ports for Zammad"; + }; + + port = mkOption { + type = types.port; + default = 3000; + description = "Web service port."; + }; + + websocketPort = mkOption { + type = types.port; + default = 6042; + description = "Websocket service port."; + }; + + database = { + type = mkOption { + type = types.enum [ "PostgreSQL" "MySQL" ]; + default = "PostgreSQL"; + example = "MySQL"; + description = "Database engine to use."; + }; + + host = mkOption { + type = types.nullOr types.str; + default = { + PostgreSQL = "/run/postgresql"; + MySQL = "localhost"; + }.${cfg.database.type}; + defaultText = literalExpression '' + { + PostgreSQL = "/run/postgresql"; + MySQL = "localhost"; + }.''${config.services.zammad.database.type}; + ''; + description = '' + Database host address. + ''; + }; + + port = mkOption { + type = types.nullOr types.port; + default = null; + description = "Database port. Use null for default port."; + }; + + name = mkOption { + type = types.str; + default = "zammad"; + description = '' + Database name. + ''; + }; + + user = mkOption { + type = types.nullOr types.str; + default = "zammad"; + description = "Database user."; + }; + + passwordFile = mkOption { + type = types.nullOr types.path; + default = null; + example = "/run/keys/zammad-dbpassword"; + description = '' + A file containing the password for . + ''; + }; + + createLocally = mkOption { + type = types.bool; + default = true; + description = "Whether to create a local database automatically."; + }; + + settings = mkOption { + type = settingsFormat.type; + default = { }; + example = literalExpression '' + { + } + ''; + description = '' + The database.yml configuration file as key value set. + See + for list of configuration parameters. + ''; + }; + }; + + secretKeyBaseFile = mkOption { + type = types.nullOr types.path; + default = null; + example = "/run/keys/secret_key_base"; + description = '' + The path to a file containing the + secret_key_base secret. + + Zammad uses secret_key_base to encrypt + the cookie store, which contains session data, and to digest + user auth tokens. + + Needs to be a 64 byte long string of hexadecimal + characters. You can generate one by running + + + $ openssl rand -hex 64 >/path/to/secret_key_base_file + + + This should be a string, not a nix path, since nix paths are + copied into the world-readable nix store. + ''; + }; + }; + }; + + config = mkIf cfg.enable { + + services.zammad.database.settings = { + production = mapAttrs (_: v: mkDefault v) (filterNull { + adapter = { + PostgreSQL = "postgresql"; + MySQL = "mysql2"; + }.${cfg.database.type}; + database = cfg.database.name; + pool = 50; + timeout = 5000; + encoding = "utf8"; + username = cfg.database.user; + host = cfg.database.host; + port = cfg.database.port; + }); + }; + + networking.firewall.allowedTCPPorts = mkIf cfg.openPorts [ + config.services.zammad.port + config.services.zammad.websocketPort + ]; + + users.users.zammad = { + isSystemUser = true; + home = cfg.dataDir; + group = "zammad"; + }; + + users.groups.zammad = { }; + + assertions = [ + { + assertion = cfg.database.createLocally -> cfg.database.user == "zammad"; + message = "services.zammad.database.user must be set to \"zammad\" if services.zammad.database.createLocally is set to true"; + } + { + assertion = cfg.database.createLocally -> cfg.database.passwordFile == null; + message = "a password cannot be specified if services.zammad.database.createLocally is set to true"; + } + ]; + + services.mysql = optionalAttrs (cfg.database.createLocally && cfg.database.type == "MySQL") { + enable = true; + package = mkDefault pkgs.mariadb; + ensureDatabases = [ cfg.database.name ]; + ensureUsers = [ + { + name = cfg.database.user; + ensurePermissions = { "${cfg.database.name}.*" = "ALL PRIVILEGES"; }; + } + ]; + }; + + services.postgresql = optionalAttrs (cfg.database.createLocally && cfg.database.type == "PostgreSQL") { + enable = true; + ensureDatabases = [ cfg.database.name ]; + ensureUsers = [ + { + name = cfg.database.user; + ensurePermissions = { "DATABASE ${cfg.database.name}" = "ALL PRIVILEGES"; }; + } + ]; + }; + + systemd.services.zammad-web = { + inherit environment; + serviceConfig = serviceConfig // { + # loading all the gems takes time + TimeoutStartSec = 1200; + }; + after = [ + "network.target" + "postgresql.service" + ]; + requires = [ + "postgresql.service" + ]; + description = "Zammad web"; + wantedBy = [ "multi-user.target" ]; + preStart = '' + # Blindly copy the whole project here. + chmod -R +w . + rm -rf ./public/assets/* + rm -rf ./tmp/* + rm -rf ./log/* + cp -r --no-preserve=owner ${cfg.package}/* . + chmod -R +w . + # config file + cp ${databaseConfig} ./config/database.yml + chmod -R +w . + ${optionalString (cfg.database.passwordFile != null) '' + { + echo -n " password: " + cat ${cfg.database.passwordFile} + } >> ./config/database.yml + ''} + ${optionalString (cfg.secretKeyBaseFile != null) '' + { + echo "production: " + echo -n " secret_key_base: " + cat ${cfg.secretKeyBaseFile} + } > ./config/secrets.yml + ''} + + if [ `${config.services.postgresql.package}/bin/psql \ + --host ${cfg.database.host} \ + ${optionalString + (cfg.database.port != null) + "--port ${toString cfg.database.port}"} \ + --username ${cfg.database.user} \ + --dbname ${cfg.database.name} \ + --command "SELECT COUNT(*) FROM pg_class c \ + JOIN pg_namespace s ON s.oid = c.relnamespace \ + WHERE s.nspname NOT IN ('pg_catalog', 'pg_toast', 'information_schema') \ + AND s.nspname NOT LIKE 'pg_temp%';" | sed -n 3p` -eq 0 ]; then + echo "Initialize database" + ./bin/rake --no-system db:migrate + ./bin/rake --no-system db:seed + else + echo "Migrate database" + ./bin/rake --no-system db:migrate + fi + echo "Done" + ''; + script = "./script/rails server -b ${cfg.host} -p ${toString cfg.port}"; + }; + + systemd.services.zammad-websocket = { + inherit serviceConfig environment; + after = [ "zammad-web.service" ]; + requires = [ "zammad-web.service" ]; + description = "Zammad websocket"; + wantedBy = [ "multi-user.target" ]; + script = "./script/websocket-server.rb -b ${cfg.host} -p ${toString cfg.websocketPort} start"; + }; + + systemd.services.zammad-scheduler = { + inherit environment; + serviceConfig = serviceConfig // { Type = "forking"; }; + after = [ "zammad-web.service" ]; + requires = [ "zammad-web.service" ]; + description = "Zammad scheduler"; + wantedBy = [ "multi-user.target" ]; + script = "./script/scheduler.rb start"; + }; + }; + + meta.maintainers = with lib.maintainers; [ garbas taeer ]; +} diff --git a/nixos/modules/virtualisation/amazon-image.nix b/nixos/modules/virtualisation/amazon-image.nix index bd7077ff7ea1..9a56b6950155 100644 --- a/nixos/modules/virtualisation/amazon-image.nix +++ b/nixos/modules/virtualisation/amazon-image.nix @@ -37,8 +37,13 @@ in { assertion = cfg.efi -> cfg.hvm; message = "EC2 instances using EFI must be HVM instances."; } + { assertion = versionOlder config.boot.kernelPackages.kernel.version "5.15"; + message = "ENA driver fails to build with kernel >= 5.15"; + } ]; + boot.kernelPackages = pkgs.linuxKernel.packages.linux_5_10; + boot.growPartition = cfg.hvm; fileSystems."/" = mkIf (!cfg.zfs.enable) { diff --git a/nixos/release-combined.nix b/nixos/release-combined.nix index ee3f3d19174e..295aa4ea84f7 100644 --- a/nixos/release-combined.nix +++ b/nixos/release-combined.nix @@ -130,7 +130,8 @@ in rec { (onFullSupported "nixos.tests.networking.networkd.virtual") (onFullSupported "nixos.tests.networking.networkd.vlan") (onFullSupported "nixos.tests.systemd-networkd-ipv6-prefix-delegation") - (onFullSupported "nixos.tests.nfs3.simple") + # fails with kernel >= 5.15 https://github.com/NixOS/nixpkgs/pull/152505#issuecomment-1005049314 + #(onFullSupported "nixos.tests.nfs3.simple") (onFullSupported "nixos.tests.nfs4.simple") (onFullSupported "nixos.tests.openssh") (onFullSupported "nixos.tests.pantheon") diff --git a/nixos/release-small.nix b/nixos/release-small.nix index 996db54c9a40..c2ac4c653ea1 100644 --- a/nixos/release-small.nix +++ b/nixos/release-small.nix @@ -107,7 +107,8 @@ in rec { "nixos.tests.nat.firewall-conntrack.x86_64-linux" "nixos.tests.nat.firewall.x86_64-linux" "nixos.tests.nat.standalone.x86_64-linux" - "nixos.tests.nfs3.simple.x86_64-linux" + # fails with kernel >= 5.15 https://github.com/NixOS/nixpkgs/pull/152505#issuecomment-1005049314 + #"nixos.tests.nfs3.simple.x86_64-linux" "nixos.tests.openssh.x86_64-linux" "nixos.tests.php.fpm.x86_64-linux" "nixos.tests.php.pcre.x86_64-linux" diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index da94fc6d042d..5d03893a56bd 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -572,6 +572,7 @@ in xxh = handleTest ./xxh.nix {}; yabar = handleTest ./yabar.nix {}; yggdrasil = handleTest ./yggdrasil.nix {}; + zammad = handleTest ./zammad.nix {}; zfs = handleTest ./zfs.nix {}; zigbee2mqtt = handleTest ./zigbee2mqtt.nix {}; zoneminder = handleTest ./zoneminder.nix {}; diff --git a/nixos/tests/zammad.nix b/nixos/tests/zammad.nix new file mode 100644 index 000000000000..4e466f6e3b9b --- /dev/null +++ b/nixos/tests/zammad.nix @@ -0,0 +1,60 @@ +import ./make-test-python.nix ( + { lib, pkgs, ... }: + + { + name = "zammad"; + + meta.maintainers = with lib.maintainers; [ garbas taeer ]; + + nodes.machine = { config, ... }: { + services.zammad.enable = true; + services.zammad.secretKeyBaseFile = pkgs.writeText "secret" '' + 52882ef142066e09ab99ce816ba72522e789505caba224a52d750ec7dc872c2c371b2fd19f16b25dfbdd435a4dd46cb3df9f82eb63fafad715056bdfe25740d6 + ''; + + systemd.services.zammad-locale-cheat = + let cfg = config.services.zammad; in + { + serviceConfig = { + Type = "simple"; + Restart = "always"; + + User = "zammad"; + Group = "zammad"; + PrivateTmp = true; + StateDirectory = "zammad"; + WorkingDirectory = cfg.dataDir; + }; + wantedBy = [ "zammad-web.service" ]; + description = "Hack in the locale files so zammad doesn't try to access the internet"; + script = '' + mkdir -p ./config/translations + VERSION=$(cat ${cfg.package}/VERSION) + + # If these files are not in place, zammad will try to access the internet. + # For the test, we only need to supply en-us. + echo '[{"locale":"en-us","alias":"en","name":"English (United States)","active":true,"dir":"ltr"}]' \ + > ./config/locales-$VERSION.yml + echo '[{"locale":"en-us","format":"time","source":"date","target":"mm/dd/yyyy","target_initial":"mm/dd/yyyy"},{"locale":"en-us","format":"time","source":"timestamp","target":"mm/dd/yyyy HH:MM","target_initial":"mm/dd/yyyy HH:MM"}]' \ + > ./config/translations/en-us-$VERSION.yml + ''; + }; + }; + + testScript = '' + start_all() + machine.wait_for_unit("postgresql.service") + machine.wait_for_unit("zammad-web.service") + machine.wait_for_unit("zammad-websocket.service") + machine.wait_for_unit("zammad-scheduler.service") + # wait for zammad to fully come up + machine.sleep(120) + + # without the grep the command does not produce valid utf-8 for some reason + with subtest("welcome screen loads"): + machine.succeed( + "curl -sSfL http://localhost:3000/ | grep 'Zammad Helpdesk'" + ) + ''; + } +) diff --git a/pkgs/applications/editors/rednotebook/default.nix b/pkgs/applications/editors/rednotebook/default.nix index e5bdc28b80ef..76c94693d24b 100644 --- a/pkgs/applications/editors/rednotebook/default.nix +++ b/pkgs/applications/editors/rednotebook/default.nix @@ -5,13 +5,13 @@ buildPythonApplication rec { pname = "rednotebook"; - version = "2.23"; + version = "2.24"; src = fetchFromGitHub { owner = "jendrikseipp"; repo = "rednotebook"; rev = "v${version}"; - sha256 = "sha256-CLQWbwwJnr6Al223GvV1hVNK13p2iAyjNF7PhdaU9N0="; + sha256 = "sha256-nTFyRNJAhTrVlKdLd2F0jv7VcNn2pGTAegvfMjfHY84="; }; # We have not packaged tests. diff --git a/pkgs/applications/editors/texworks/default.nix b/pkgs/applications/editors/texworks/default.nix index 9db68f71ea8e..67374b9b40b0 100644 --- a/pkgs/applications/editors/texworks/default.nix +++ b/pkgs/applications/editors/texworks/default.nix @@ -5,13 +5,13 @@ mkDerivation rec { pname = "texworks"; - version = "0.6.6"; + version = "0.6.7"; src = fetchFromGitHub { owner = "TeXworks"; repo = "texworks"; rev = "release-${version}"; - sha256 = "0l8jl1b8lpas7yz6m0qc2nikyn54lx2ljzmjjz3zgxgd6l502006"; + sha256 = "sha256-v0UukFM5brPtgq+zH5H1KfUc0eL0hjTC9z0tVQRqu2Q="; }; nativeBuildInputs = [ cmake pkg-config ]; diff --git a/pkgs/applications/editors/vim/plugins/generated.nix b/pkgs/applications/editors/vim/plugins/generated.nix index 71bbf865f15e..3651c6ac5e1e 100644 --- a/pkgs/applications/editors/vim/plugins/generated.nix +++ b/pkgs/applications/editors/vim/plugins/generated.nix @@ -7985,6 +7985,18 @@ final: prev: meta.homepage = "https://github.com/ap/vim-css-color/"; }; + vim-CtrlXA = buildVimPluginFrom2Nix { + pname = "vim-CtrlXA"; + version = "2021-08-09"; + src = fetchFromGitHub { + owner = "Konfekt"; + repo = "vim-CtrlXA"; + rev = "404ea1e055921db5679b3734108d72850d6faa76"; + sha256 = "10bgyqnwcqly3sxl27np1b690hnj1snqbcvg8pzh4zgdysfgy9xg"; + }; + meta.homepage = "https://github.com/Konfekt/vim-CtrlXA/"; + }; + vim-cue = buildVimPluginFrom2Nix { pname = "vim-cue"; version = "2021-06-18"; diff --git a/pkgs/applications/editors/vim/plugins/vim-plugin-names b/pkgs/applications/editors/vim/plugins/vim-plugin-names index 969bb19682c4..48e1b99d1d0b 100644 --- a/pkgs/applications/editors/vim/plugins/vim-plugin-names +++ b/pkgs/applications/editors/vim/plugins/vim-plugin-names @@ -378,6 +378,7 @@ kien/rainbow_parentheses.vim knubie/vim-kitty-navigator konfekt/fastfold Konfekt/vim-alias +Konfekt/vim-CtrlXA konfekt/vim-DetectSpellLang kosayoda/nvim-lightbulb kovisoft/slimv diff --git a/pkgs/applications/editors/vscode/extensions/default.nix b/pkgs/applications/editors/vscode/extensions/default.nix index 3e5bf42dd958..c08f48a405ed 100644 --- a/pkgs/applications/editors/vscode/extensions/default.nix +++ b/pkgs/applications/editors/vscode/extensions/default.nix @@ -1276,8 +1276,8 @@ let mktplcRef = { name = "vscode-clangd"; publisher = "llvm-vs-code-extensions"; - version = "0.1.13"; - sha256 = "/MpwbM+obcD3uqk8hnDrnbEK9Jot4fMe4sNzLt6mVGI="; + version = "0.1.15"; + sha256 = "0skasnc490wp0l5xzpdmwdzjr4qiy63kg2qi27060m5yqkq3h8xn"; }; meta = { license = lib.licenses.mit; @@ -1537,8 +1537,8 @@ let mktplcRef = { name = "java"; publisher = "redhat"; - version = "1.2.0"; - sha256 = "sha256-YmR3FWhPZSU2gE6NIVoA1HZBzaYaTNYFXC/uNwbDEdQ="; + version = "1.3.0"; + sha256 = "sha256-Y5hP/Rq9BsFwbCRQWOfiLHKoYkKBpZx8blg9o74obfk="; }; buildInputs = [ jdk ]; meta = { diff --git a/pkgs/applications/emulators/punes/default.nix b/pkgs/applications/emulators/punes/default.nix index 9b147de4fa93..dba83f41305d 100644 --- a/pkgs/applications/emulators/punes/default.nix +++ b/pkgs/applications/emulators/punes/default.nix @@ -20,25 +20,15 @@ mkDerivation rec { pname = "punes"; - version = "0.108"; + version = "0.109"; src = fetchFromGitHub { owner = "punesemu"; repo = "puNES"; rev = "v${version}"; - sha256 = "0inkwmvbr2w4addmgk9r4f13yismang9ylfgflhh9352lf0lirv8"; + sha256 = "sha256-6aRtR/d8nhzmpN9QKSZ62jye7qjfO+FpRMCXkX4Yubk="; }; - patches = [ - # Drop when version > 0.108 - # https://github.com/punesemu/puNES/issues/185 - (fetchpatch { - name = "0001-punes-Fixed-make-install.patch"; - url = "https://github.com/punesemu/puNES/commit/902434f50398ebcda0786ade4b28a0496084810e.patch"; - sha256 = "1a3052n3n1qipi4bd7f7gq4zl5jjjzzzpbijdisis2vxvhnfvcim"; - }) - ]; - postPatch = '' substituteInPlace configure.ac \ --replace '`$PKG_CONFIG --variable=host_bins Qt5Core`/lrelease' '${qttools.dev}/bin/lrelease' diff --git a/pkgs/applications/gis/qgis/unwrapped-ltr.nix b/pkgs/applications/gis/qgis/unwrapped-ltr.nix index 3de304f586fd..41408bc33072 100644 --- a/pkgs/applications/gis/qgis/unwrapped-ltr.nix +++ b/pkgs/applications/gis/qgis/unwrapped-ltr.nix @@ -35,6 +35,8 @@ , grass , withWebKit ? true , qtwebkit +, pdal +, zstd , makeWrapper }: @@ -67,14 +69,14 @@ let six ]; in mkDerivation rec { - version = "3.16.16"; + version = "3.22.4"; pname = "qgis-ltr-unwrapped"; src = fetchFromGitHub { owner = "qgis"; repo = "QGIS"; rev = "final-${lib.replaceStrings [ "." ] [ "_" ] version}"; - sha256 = "85RlV1Ik1BeN9B7UE51ktTWMiGkMga2E/fnhyiVwjIs="; + sha256 = "sha256-z2dCdaIJUKpZgJHtn1/qA07uMJpAWKL0cDx6B/n1Oxg="; }; passthru = { @@ -108,6 +110,8 @@ in mkDerivation rec { qtserialport qtxmlpatterns qt3d + pdal + zstd ] ++ lib.optional withGrass grass ++ lib.optional withWebKit qtwebkit ++ pythonBuildInputs; @@ -126,6 +130,7 @@ in mkDerivation rec { cmakeFlags = [ "-DCMAKE_SKIP_BUILD_RPATH=OFF" "-DWITH_3D=True" + "-DWITH_PDAL=TRUE" "-DPYQT5_SIP_DIR=${py.pkgs.pyqt5}/${py.pkgs.python.sitePackages}/PyQt5/bindings" "-DQSCI_SIP_DIR=${py.pkgs.qscintilla-qt5}/${py.pkgs.python.sitePackages}/PyQt5/bindings" ] ++ lib.optional (!withWebKit) "-DWITH_QTWEBKIT=OFF" @@ -138,11 +143,11 @@ in mkDerivation rec { --prefix PATH : ${lib.makeBinPath [ grass ]} ''; - meta = with lib; { + meta = { description = "A Free and Open Source Geographic Information System"; homepage = "https://www.qgis.org"; - license = licenses.gpl2Plus; - platforms = platforms.linux; - maintainers = with maintainers; [ lsix sikmir erictapen ]; + license = lib.licenses.gpl2Plus; + platforms = with lib.platforms; linux; + maintainers = with lib.maintainers; [ lsix sikmir erictapen willcohen ]; }; } diff --git a/pkgs/applications/gis/qgis/unwrapped.nix b/pkgs/applications/gis/qgis/unwrapped.nix index 816368bbabc6..9658cfe0608d 100644 --- a/pkgs/applications/gis/qgis/unwrapped.nix +++ b/pkgs/applications/gis/qgis/unwrapped.nix @@ -69,14 +69,14 @@ let six ]; in mkDerivation rec { - version = "3.22.3"; + version = "3.24.0"; pname = "qgis-unwrapped"; src = fetchFromGitHub { owner = "qgis"; repo = "QGIS"; rev = "final-${lib.replaceStrings [ "." ] [ "_" ] version}"; - sha256 = "TLXhXHU0dp0MnKHFw/+1rQnJbebnwje21Oasy0qWctk="; + sha256 = "sha256-EPF8sXAH7UAttLutxXGFovog3+XpXP0GXg2tu0mSU2s="; }; passthru = { @@ -148,6 +148,6 @@ in mkDerivation rec { homepage = "https://www.qgis.org"; license = lib.licenses.gpl2Plus; platforms = with lib.platforms; linux; - maintainers = with lib.maintainers; [ lsix sikmir erictapen ]; + maintainers = with lib.maintainers; [ lsix sikmir erictapen willcohen ]; }; } diff --git a/pkgs/applications/misc/archivy/default.nix b/pkgs/applications/misc/archivy/default.nix index 6da5d46f8816..2f07b6dbf959 100644 --- a/pkgs/applications/misc/archivy/default.nix +++ b/pkgs/applications/misc/archivy/default.nix @@ -3,31 +3,15 @@ let defaultOverrides = [ (self: super: { - flask = super.flask.overridePythonAttrs (oldAttrs: rec { - version = "1.1.2"; - pname = "Flask"; + wtforms = super.wtforms.overridePythonAttrs (oldAttrs: rec { + version = "2.3.1"; + pname = "WTForms"; src = super.fetchPypi { inherit pname version; - sha256 = "sha256-Tvoa4tfJhlr0iYbeiuuFBL8yx/PW/ck1PTSyH0sScGA="; + sha256 = "sha256-hhoTs65SHWcA2sOydxlwvTVKY7pwQ+zDqCtSiFlqGXI="; }; - checkInputs = [ self.pytest ]; - propagatedBuildInputs = with self; [ itsdangerous click werkzeug jinja2 ]; - - doCheck = false; - }); - }) - - (self: super: { - flask_login = super.flask_login.overridePythonAttrs (oldAttrs: rec { - pname = "Flask"; - version = "0.5.0"; - - src = fetchPypi { - inherit pname version; - sha256 = "6d33aef15b5bcead780acc339464aae8a6e28f13c90d8b1cf9de8b549d1c0b4b"; - }; doCheck = false; }); }) @@ -45,7 +29,7 @@ let py = python3.override { # Put packageOverrides at the start so they are applied after defaultOverrides - packageOverrides = lib.foldr lib.composeExtensions (self: super: { }) (defaultOverrides); + packageOverrides = lib.foldr lib.composeExtensions (self: super: { }) defaultOverrides; }; in @@ -53,11 +37,11 @@ with py.pkgs; buildPythonApplication rec { pname = "archivy"; - version = "1.6.1"; + version = "1.7.1"; src = fetchPypi { inherit pname version; - sha256 = "sha256-nwpH3V6hkPC8G3df+0hTZqvIbvT1Z796uOI/iKnXS1w="; + sha256 = "sha256-UNGl5Dl/E3+uQ4HIxzHYliHF4lqD3GYdeoL+DtqUwCo="; }; # Relax some dependencies @@ -72,7 +56,7 @@ buildPythonApplication rec { --replace 'validators ==' 'validators >=' \ --replace 'tinydb ==' 'tinydb >=' \ --replace 'Flask_WTF == 0.14.3' 'Flask_WTF' \ - --replace 'Werkzeug ==' 'Werkzeug >=' + --replace 'Flask ==' 'Flask >=' ''; propagatedBuildInputs = [ @@ -87,11 +71,11 @@ buildPythonApplication rec { html2text python-dotenv python-frontmatter + readability-lxml requests setuptools tinydb validators - werkzeug wtforms ]; diff --git a/pkgs/applications/misc/calibre/default.nix b/pkgs/applications/misc/calibre/default.nix index 1d6af843e2fd..5b3231856482 100644 --- a/pkgs/applications/misc/calibre/default.nix +++ b/pkgs/applications/misc/calibre/default.nix @@ -23,15 +23,16 @@ , xdg-utils , removeReferencesTo , libstemmer +, wrapGAppsHook }: mkDerivation rec { pname = "calibre"; - version = "5.34.0"; + version = "5.37.0"; src = fetchurl { url = "https://download.calibre-ebook.com/${version}/${pname}-${version}.tar.xz"; - hash = "sha256-1NQB7vrcU0hR308/8keUn/rHhdvJk5Ab0pOMPyiU1+M="; + hash = "sha256-x2u4v0k05WMATSsuo76NnqChIz8BcTuZfPkZa0uLnMY="; }; # https://sources.debian.org/patches/calibre/${version}+dfsg-1 @@ -62,7 +63,7 @@ mkDerivation rec { dontUseQmakeConfigure = true; - nativeBuildInputs = [ pkg-config qmake removeReferencesTo ]; + nativeBuildInputs = [ pkg-config qmake removeReferencesTo wrapGAppsHook ]; buildInputs = [ chmlib @@ -154,7 +155,6 @@ mkDerivation rec { # Wrap manually dontWrapQtApps = true; - dontWrapGApps = true; # Remove some references to shrink the closure size. This reference (as of # 2018-11-06) was a single string like the following: @@ -166,7 +166,6 @@ mkDerivation rec { for program in $out/bin/*; do wrapProgram $program \ ''${qtWrapperArgs[@]} \ - ''${gappsWrapperArgs[@]} \ --prefix PYTHONPATH : $PYTHONPATH \ --prefix PATH : ${poppler_utils.out}/bin done diff --git a/pkgs/applications/misc/gsctl/default.nix b/pkgs/applications/misc/gsctl/default.nix index 15d8b9663960..95a909c29a97 100644 --- a/pkgs/applications/misc/gsctl/default.nix +++ b/pkgs/applications/misc/gsctl/default.nix @@ -1,18 +1,23 @@ -{ lib, buildGoPackage, fetchFromGitHub }: +{ lib, buildGoModule, fetchFromGitHub }: -buildGoPackage rec { +buildGoModule rec { pname = "gsctl"; - version = "0.15.4"; - - goPackagePath = "github.com/giantswarm/gsctl"; + version = "1.1.4"; src = fetchFromGitHub { owner = "giantswarm"; repo = pname; - rev = version; - sha256 = "0s5bli08wfd9xszx3kc90k51vlgjc00r0qg4mikb6qdc4pxpgsxj"; + rev = version; + sha256 = "sha256-uCNWgaLZMm1vPxFduj8mpjKYuYlp1ChF6bK+bmAWy50="; }; + vendorSha256 = "sha256-lZgHrQYqoyoM1Iv6vCqTMcv62zSKyxaAsq56kUXHrIA="; + + ldflags = + [ "-s" "-w" "-X github.com/giantswarm/gsctl/buildinfo.Version=${version}" ]; + + doCheck = false; + meta = with lib; { description = "The Giant Swarm command line interface"; homepage = "https://github.com/giantswarm/gsctl"; diff --git a/pkgs/applications/misc/natural-docs/default.nix b/pkgs/applications/misc/natural-docs/default.nix index 15816b669286..be4bd5f430fa 100644 --- a/pkgs/applications/misc/natural-docs/default.nix +++ b/pkgs/applications/misc/natural-docs/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { pname = "natural-docs"; - version = "2.1.1"; + version = "2.2"; src = fetchzip { url = "https://naturaldocs.org/download/natural_docs/${version}/Natural_Docs_${version}.zip"; - sha256 = "03fizjgvhiw3lqyykqw1whdh97xyiy3f226c1348ll61ryjxamqw"; + sha256 = "sha256-W0E9wamzABnPleVhHHXTIdWJk8kWnrUHojM+pcsowy8="; }; dontPatch = true; diff --git a/pkgs/applications/networking/cluster/k3s/default.nix b/pkgs/applications/networking/cluster/k3s/default.nix index 5b5dfece1f1b..3beb8e9c23cf 100644 --- a/pkgs/applications/networking/cluster/k3s/default.nix +++ b/pkgs/applications/networking/cluster/k3s/default.nix @@ -49,6 +49,9 @@ let k3sVersion = "1.23.3+k3s1"; # k3s git tag k3sCommit = "6f4217a3405d16a1a51bbb40872d7dcb87207bb9"; # k3s git commit at the above version k3sRepoSha256 = "sha256-0dRusG1vL+1KbmViIUNCZK1b+FEgV6otcVUyFonHmm4="; + k3sVendorSha256 = "sha256-8Yp9csyRNSYi9wo8E8mF8cu92wG1t3l18wJ8Y4L7HEA="; + + k3sServerVendorSha256 = "sha256-9+2k/ipAOhc8JJU+L2dwaM01Dkw+0xyrF5kt6mL19G0="; # taken from ./manifests/traefik.yaml, extracted from '.spec.chart' https://github.com/k3s-io/k3s/blob/v1.23.3%2Bk3s1/scripts/download#L9 # The 'patch' and 'minor' versions are currently hardcoded as single digits only, so ignore the trailing two digits. Weird, I know. @@ -65,17 +68,17 @@ let # taken from go.mod, the 'github.com/containerd/containerd' line # run `grep github.com/containerd/containerd go.mod | head -n1 | awk '{print $4}'` - containerdVersion = "v1.5.9-k3s1"; + containerdVersion = "1.5.9-k3s1"; containerdSha256 = "sha256-7xlhBA6KuwFlw+jyThygv4Ow9F3xjjIUtS6x8YHwjic="; # run `grep github.com/kubernetes-sigs/cri-tools go.mod | head -n1 | awk '{print $4}'` in the k3s repo at the tag - criCtlVersion = "v1.22.0-k3s1"; + criCtlVersion = "1.22.0-k3s1"; baseMeta = { description = "A lightweight Kubernetes distribution"; license = licenses.asl20; homepage = "https://k3s.io"; - maintainers = with maintainers; [ euank mic92 ]; + maintainers = with maintainers; [ euank mic92 superherointj ]; platforms = platforms.linux; }; @@ -91,10 +94,8 @@ let "-X k8s.io/component-base/version.gitCommit=${k3sCommit}" "-X k8s.io/component-base/version.gitTreeState=clean" "-X k8s.io/component-base/version.buildDate=1970-01-01T01:01:01Z" - "-X github.com/kubernetes-sigs/cri-tools/pkg/version.Version=${criCtlVersion}" - "-X github.com/containerd/containerd/version.Version=${containerdVersion}" - "-X github.com/containerd/containerd/version.Package=github.com/k3s-io/containerd" - "-X github.com/containerd/containerd/version.Version=${containerdVersion}" + "-X github.com/kubernetes-sigs/cri-tools/pkg/version.Version=v${criCtlVersion}" + "-X github.com/containerd/containerd/version.Version=v${containerdVersion}" "-X github.com/containerd/containerd/version.Package=github.com/k3s-io/containerd" ]; @@ -168,12 +169,13 @@ let # strip/patchelf/remove-references step ourselves in the installPhase of the # derivation when we've built all the binaries, but haven't bundled them in # with generated bindata yet. + k3sServer = buildGoModule rec { pname = "k3s-server"; version = k3sVersion; src = k3sRepo; - vendorSha256 = "sha256-9+2k/ipAOhc8JJU+L2dwaM01Dkw+0xyrF5kt6mL19G0="; + vendorSha256 = k3sServerVendorSha256; nativeBuildInputs = [ pkg-config ]; buildInputs = [ libseccomp ]; @@ -203,11 +205,11 @@ let }; k3sContainerd = buildGoModule { pname = "k3s-containerd"; - version = k3sVersion; + version = containerdVersion; src = fetchFromGitHub { owner = "k3s-io"; repo = "containerd"; - rev = containerdVersion; + rev = "v${containerdVersion}"; sha256 = containerdSha256; }; vendorSha256 = null; @@ -222,7 +224,7 @@ buildGoModule rec { src = k3sRepo; proxyVendor = true; - vendorSha256 = "sha256-8Yp9csyRNSYi9wo8E8mF8cu92wG1t3l18wJ8Y4L7HEA="; + vendorSha256 = k3sVendorSha256; patches = [ ./patches/0001-scrips-download-strip-downloading-just-package-CRD.patch diff --git a/pkgs/applications/networking/cluster/k3s/update.sh b/pkgs/applications/networking/cluster/k3s/update.sh index 01b3434b5bae..eb79778c963d 100755 --- a/pkgs/applications/networking/cluster/k3s/update.sh +++ b/pkgs/applications/networking/cluster/k3s/update.sh @@ -1,12 +1,14 @@ #!/usr/bin/env nix-shell -#!nix-shell -i bash -p curl gnugrep gnused jq +#!nix-shell -i bash -p curl gnugrep gnused jq yq-go nix-prefetch set -x -eu -o pipefail WORKDIR=$(mktemp -d) trap "rm -rf ${WORKDIR}" EXIT -cd $(dirname "${BASH_SOURCE[0]}") +NIXPKGS_ROOT="$(git rev-parse --show-toplevel)"/ +NIXPKGS_K3S_FOLDER=${NIXPKGS_ROOT}$(dirname "${BASH_SOURCE[0]}")/ +cd ${NIXPKGS_K3S_FOLDER} LATEST_TAG_RAWFILE=${WORKDIR}/latest_tag.json curl --silent ${GITHUB_TOKEN:+"-u \":$GITHUB_TOKEN\""} \ @@ -32,22 +34,33 @@ curl --silent https://raw.githubusercontent.com/k3s-io/k3s/${K3S_COMMIT}/scripts FILE_MANIFESTS_TRAEFIK=${WORKDIR}/manifests-traefik.yaml curl --silent https://raw.githubusercontent.com/k3s-io/k3s/${K3S_COMMIT}/manifests/traefik.yaml > $FILE_MANIFESTS_TRAEFIK -TRAEFIK_CHART_VERSION=$(awk -F/ '/traefik-([[:digit:]]+\.)/ {sub(/traefik-/, "", $6) ; sub(/\.tgz/, "", $6); print $6}' $FILE_MANIFESTS_TRAEFIK) +FILE_GO_MOD=${WORKDIR}/go.mod +curl --silent https://raw.githubusercontent.com/k3s-io/k3s/${K3S_COMMIT}/go.mod > $FILE_GO_MOD +TRAEFIK_CHART_VERSION=$(yq e '.spec.chart' $FILE_MANIFESTS_TRAEFIK | awk 'match($0, /([0-9.]+)([0-9]{2})/, +m) { print m[1]; exit; }') TRAEFIK_CHART_SHA256=$(nix-prefetch-url --quiet "https://helm.traefik.io/traefik/traefik-${TRAEFIK_CHART_VERSION}.tgz") -K3S_ROOT_VERSION=$(grep 'ROOT_VERSION=' ${FILE_SCRIPTS_DOWNLOAD} \ - | cut -d'=' -f2 | cut -d' ' -f1 | sed 's/^v//') +K3S_ROOT_VERSION=$(grep 'VERSION_ROOT=' ${FILE_SCRIPTS_VERSION} \ + | cut -d'=' -f2 | sed -e 's/"//g' -e 's/^v//') K3S_ROOT_SHA256=$(nix-prefetch-url --quiet --unpack \ "https://github.com/k3s-io/k3s-root/releases/download/v${K3S_ROOT_VERSION}/k3s-root-amd64.tar") CNIPLUGINS_VERSION=$(grep 'VERSION_CNIPLUGINS=' ${FILE_SCRIPTS_VERSION} \ - | cut -d'=' -f2 | cut -d' ' -f1 | sed -e 's/"//g' -e 's/^v//') + | cut -d'=' -f2 | sed -e 's/"//g' -e 's/^v//') CNIPLUGINS_SHA256=$(nix-prefetch-url --quiet --unpack \ "https://github.com/rancher/plugins/archive/refs/tags/v${CNIPLUGINS_VERSION}.tar.gz") +CONTAINERD_VERSION=$(grep github.com/containerd/containerd ${FILE_GO_MOD} \ + | head -n1 | awk '{print $4}' | sed -e 's/"//g' -e 's/^v//') +CONTAINERD_SHA256=$(nix-prefetch-url --quiet --unpack \ + "https://github.com/k3s-io/containerd/archive/refs/tags/v${CONTAINERD_VERSION}.tar.gz") + +CRI_CTL_VERSION=$(grep github.com/kubernetes-sigs/cri-tools ${FILE_GO_MOD} \ + | head -n1 | awk '{print $4}' | sed -e 's/"//g' -e 's/^v//') + setKV () { - sed -i "s|$1 = \".*\"|$1 = \"${2:-}\"|" ./default.nix + sed -i "s|$1 = \".*\"|$1 = \"${2:-}\"|" ${NIXPKGS_K3S_FOLDER}default.nix } setKV k3sVersion ${K3S_VERSION} @@ -62,3 +75,32 @@ setKV k3sRootSha256 ${K3S_ROOT_SHA256} setKV k3sCNIVersion ${CNIPLUGINS_VERSION} setKV k3sCNISha256 ${CNIPLUGINS_SHA256} + +setKV containerdVersion ${CONTAINERD_VERSION} +setKV containerdSha256 ${CONTAINERD_SHA256} + +setKV criCtlVersion ${CRI_CTL_VERSION} + +setKV k3sServerVendorSha256 "0000000000000000000000000000000000000000000000000000" + +set +e +K3S_SERVER_VENDOR_SHA256=$(nix-build ${NIXPKGS_ROOT} --no-out-link -A k3s 2>&1 >/dev/null | grep "got:" | cut -d':' -f2 | sed 's| ||g') +set -e + +if [ -n "${K3S_SERVER_VENDOR_SHA256:-}" ]; then + setKV k3sServerVendorSha256 ${K3S_SERVER_VENDOR_SHA256} +else + echo "Update failed. K3S_SERVER_VENDOR_SHA256 is empty." + exit 1 +fi + +set +e +K3S_VENDOR_SHA256=$(nix-prefetch -I nixpkgs=${NIXPKGS_ROOT} "{ sha256 }: (import ${NIXPKGS_ROOT}. {}).k3s.go-modules.overrideAttrs (_: { vendorSha256 = sha256; })") +set -e + +if [ -n "${K3S_VENDOR_SHA256:-}" ]; then + setKV k3sVendorSha256 ${K3S_VENDOR_SHA256} +else + echo "Update failed. K3S_VENDOR_SHA256 is empty." + exit 1 +fi diff --git a/pkgs/applications/networking/irc/catgirl/default.nix b/pkgs/applications/networking/irc/catgirl/default.nix index 9f979781857d..d032238ca5b7 100644 --- a/pkgs/applications/networking/irc/catgirl/default.nix +++ b/pkgs/applications/networking/irc/catgirl/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { pname = "catgirl"; - version = "2.0a"; + version = "2.1"; src = fetchurl { url = "https://git.causal.agency/catgirl/snapshot/${pname}-${version}.tar.gz"; - sha256 = "sha256-AbzzTqaulPDplntwRYw4fVxZXUIJ2L0MKZvyWq4lvro="; + sha256 = "sha256-pov7gvYlvN97xbem4VKP41Wbze1B8NPJcvi36Ri87o4="; }; # catgirl's configure script uses pkg-config --variable exec_prefix openssl diff --git a/pkgs/applications/networking/misc/zammad/0001-nulldb.patch b/pkgs/applications/networking/misc/zammad/0001-nulldb.patch new file mode 100644 index 000000000000..61971525b99d --- /dev/null +++ b/pkgs/applications/networking/misc/zammad/0001-nulldb.patch @@ -0,0 +1,15 @@ +diff --git a/config/application.rb b/config/application.rb +index d85a17491..90ea5e387 100644 +--- a/config/application.rb ++++ b/config/application.rb +@@ -3,6 +3,7 @@ + require_relative 'boot' + + require 'rails/all' ++require 'nulldb' + require_relative 'issue_2656_workaround_for_rails_issue_33600' + + # DO NOT REMOVE THIS LINE - see issue #2037 +diff --git a/db/schema.rb b/db/schema.rb +new file mode 100644 +index 000000000..e69de29bb diff --git a/pkgs/applications/networking/misc/zammad/default.nix b/pkgs/applications/networking/misc/zammad/default.nix new file mode 100644 index 000000000000..21c9b98a01fb --- /dev/null +++ b/pkgs/applications/networking/misc/zammad/default.nix @@ -0,0 +1,137 @@ +{ stdenv +, lib +, fetchFromGitHub +, applyPatches +, bundlerEnv +, defaultGemConfig +, callPackage +, writeText +, procps +, ruby_2_7 +, postgresql +, imlib2 +, nodejs +, yarn +, yarn2nix-moretea +, v8 +, cacert +}: + +let + pname = "zammad"; + version = "5.0.2"; + + src = applyPatches { + + src = fetchFromGitHub (lib.importJSON ./source.json); + + patches = [ ./0001-nulldb.patch ]; + + postPatch = '' + sed -i -e "s|ruby '2.7.4'|ruby '${ruby_2_7.version}'|" Gemfile + sed -i -e "s|ruby 2.7.4p191|ruby ${ruby_2_7.version}|" Gemfile.lock + sed -i -e "s|2.7.4|${ruby_2_7.version}|" .ruby-version + ''; + }; + + databaseConfig = writeText "database.yml" '' + production: + url: <%= ENV['DATABASE_URL'] %> + ''; + + secretsConfig = writeText "secrets.yml" '' + production: + secret_key_base: <%= ENV['SECRET_KEY_BASE'] %> + ''; + + rubyEnv = bundlerEnv { + name = "${pname}-gems-${version}"; + inherit version; + + # Which ruby version to select: + # https://docs.zammad.org/en/latest/prerequisites/software.html#ruby-programming-language + inherit ruby_2_7; + + gemdir = src; + gemset = ./gemset.nix; + groups = [ + "assets" + "unicorn" # server + "nulldb" + "test" + "mysql" + "puma" + "development" + "postgres" # database + ]; + gemConfig = defaultGemConfig // { + pg = attrs: { + buildFlags = [ "--with-pg-config=${postgresql}/bin/pg_config" ]; + }; + rszr = attrs: { + buildInputs = [ imlib2 imlib2.dev ]; + }; + mini_racer = attrs: { + buildFlags = [ + "--with-v8-dir=\"${v8}\"" + ]; + dontBuild = false; + postPatch = '' + substituteInPlace ext/mini_racer_extension/extconf.rb \ + --replace Libv8.configure_makefile '$CPPFLAGS += " -x c++"; Libv8.configure_makefile' + ''; + }; + }; + }; + + yarnEnv = yarn2nix-moretea.mkYarnPackage { + pname = "${pname}-node-modules"; + inherit version src; + yarnLock = ./yarn.lock; + yarnNix = ./yarn.nix; + packageJSON = ./package.json; + }; + +in +stdenv.mkDerivation { + inherit pname version src; + + buildInputs = [ + rubyEnv + rubyEnv.wrappedRuby + rubyEnv.bundler + yarn + nodejs + procps + cacert + ]; + + RAILS_ENV = "production"; + + buildPhase = '' + node_modules=${yarnEnv}/libexec/Zammad/node_modules + ${yarn2nix-moretea.linkNodeModulesHook} + + rake DATABASE_URL="nulldb://user:pass@127.0.0.1/dbname" assets:precompile + ''; + + installPhase = '' + cp -R . $out + cp ${databaseConfig} $out/config/database.yml + cp ${secretsConfig} $out/config/secrets.yml + sed -i -e "s|info|debug|" $out/config/environments/production.rb + ''; + + passthru = { + inherit rubyEnv yarnEnv; + updateScript = [ "${callPackage ./update.nix {}}/bin/update.sh" pname (toString ./.) ]; + }; + + meta = with lib; { + description = "Zammad, a web-based, open source user support/ticketing solution."; + homepage = "https://zammad.org"; + license = licenses.agpl3Plus; + platforms = [ "x86_64-linux" ]; + maintainers = with maintainers; [ n0emis garbas taeer ]; + }; +} diff --git a/pkgs/applications/networking/misc/zammad/gemset.nix b/pkgs/applications/networking/misc/zammad/gemset.nix new file mode 100644 index 000000000000..57a54ef48395 --- /dev/null +++ b/pkgs/applications/networking/misc/zammad/gemset.nix @@ -0,0 +1,2834 @@ +{ + aasm = { + dependencies = [ "concurrent-ruby" ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "05j0rdhdzc628v5nyzrazp4704hh96j5sjbn48zxyk4v3a61f4m2"; + type = "gem"; + }; + version = "5.2.0"; + }; + actioncable = { + dependencies = [ "actionpack" "nio4r" "websocket-driver" ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1vv8dq95apmwsnam1l2c62ayjr2jwi5m24bcd2l4p324cqmds3ir"; + type = "gem"; + }; + version = "6.0.4.1"; + }; + actionmailbox = { + dependencies = [ "actionpack" "activejob" "activerecord" "activestorage" "activesupport" "mail" ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0q8bhmdi1jgybs18vaa3hpmydhw8mjx8hcpjlravkwc78ckl19vy"; + type = "gem"; + }; + version = "6.0.4.1"; + }; + actionmailer = { + dependencies = [ "actionpack" "actionview" "activejob" "mail" "rails-dom-testing" ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1nximq0hwcy5vhywsryn6y67zaqwhk5gk44d0rgyisbwl6s34zim"; + type = "gem"; + }; + version = "6.0.4.1"; + }; + actionpack = { + dependencies = [ "actionview" "activesupport" "rack" "rack-test" "rails-dom-testing" "rails-html-sanitizer" ]; + groups = [ "assets" "default" "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "00vsfvrbw1dx1xpvpca5szk1z9qqv5g00c2gyrvskvxbgn3298bg"; + type = "gem"; + }; + version = "6.0.4.1"; + }; + actiontext = { + dependencies = [ "actionpack" "activerecord" "activestorage" "activesupport" "nokogiri" ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "00yz34p7syz3wr7sbgn81b5qf97hv5lm2vbbf5xiny9cj1y8hrll"; + type = "gem"; + }; + version = "6.0.4.1"; + }; + actionview = { + dependencies = [ "activesupport" "builder" "erubi" "rails-dom-testing" "rails-html-sanitizer" ]; + groups = [ "assets" "default" "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "03dqdl0qkwmkxf6xar9lrxp547hj72ysqg6i13kw8jg8mprk1xk1"; + type = "gem"; + }; + version = "6.0.4.1"; + }; + activejob = { + dependencies = [ "activesupport" "globalid" ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0r4dk44x1kn16bsi4h9q13sq65waa940nrnf4i0wd2cssk34sx3i"; + type = "gem"; + }; + version = "6.0.4.1"; + }; + activemodel = { + dependencies = [ "activesupport" ]; + groups = [ "default" "nulldb" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1m254z419v5n6flqvvf923p5hxwqv43x6nr8gzaw378vl68sp8ff"; + type = "gem"; + }; + version = "6.0.4.1"; + }; + activerecord = { + dependencies = [ "activemodel" "activesupport" ]; + groups = [ "default" "nulldb" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1q48dsxkvlrr34w6hap2dyr1ym68azkmnhllng60pxaizml89azl"; + type = "gem"; + }; + version = "6.0.4.1"; + }; + activerecord-import = { + dependencies = [ "activerecord" ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "17ydad9gcsh0c9ny68fyvxmh6rbld4pyvyabnc7882678dnvfy8i"; + type = "gem"; + }; + version = "1.2.0"; + }; + activerecord-nulldb-adapter = { + dependencies = [ "activerecord" ]; + groups = [ "nulldb" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1iybn9vafw9vcdi966yidj4zk5vy6b0gg0zk39v1r0kgj9n9qm1v"; + type = "gem"; + }; + version = "0.7.0"; + }; + activerecord-session_store = { + dependencies = [ "actionpack" "activerecord" "multi_json" "rack" "railties" ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "06ddhz1b2yg72iv09n48gcd3ix5da7hxlzi7vvj13nrps2qwlffg"; + type = "gem"; + }; + version = "2.0.0"; + }; + activestorage = { + dependencies = [ "actionpack" "activejob" "activerecord" "marcel" ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1g6h5k478d9v14w09wnhflsk8xj06clkd6xbfw4sxbbww5n8vl55"; + type = "gem"; + }; + version = "6.0.4.1"; + }; + activesupport = { + dependencies = [ "concurrent-ruby" "i18n" "minitest" "tzinfo" "zeitwerk" ]; + groups = [ "assets" "default" "development" "nulldb" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1ldrpgy4gfqykzavgdp0svsm41hkzfi2aaq8as9lqd0sq19mgpqx"; + type = "gem"; + }; + version = "6.0.4.1"; + }; + acts_as_list = { + dependencies = [ "activerecord" ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "12p22h59c45dnccb51pqk275ziyi502azf9w3qcnkcsq827ma5jm"; + type = "gem"; + }; + version = "1.0.4"; + }; + addressable = { + dependencies = [ "public_suffix" ]; + groups = [ "default" "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "022r3m9wdxljpbya69y2i3h9g3dhhfaqzidf95m6qjzms792jvgp"; + type = "gem"; + }; + version = "2.8.0"; + }; + argon2 = { + dependencies = [ "ffi" "ffi-compiler" ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0285wr6ai2c1qswr67pybpbj28dv5nv1i4597hg3vg9w1fb7gmzl"; + type = "gem"; + }; + version = "2.0.3"; + }; + ast = { + groups = [ "default" "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "04nc8x27hlzlrr5c2gn7mar4vdr0apw5xg22wp6m8dx3wqr04a0y"; + type = "gem"; + }; + version = "2.4.2"; + }; + async = { + dependencies = [ "console" "nio4r" "timers" ]; + groups = [ "default" "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1lh36bsb41vllyrkiffs8qba2ilcjl7nrywizrb8ffrix50rfjn9"; + type = "gem"; + }; + version = "1.29.1"; + }; + async-http = { + dependencies = [ "async" "async-io" "async-pool" "protocol-http" "protocol-http1" "protocol-http2" ]; + groups = [ "default" "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1a1si0iz1m6b1lzd5f8cvf1cbniy8kqc06n10bn74l1ppx8a6lc2"; + type = "gem"; + }; + version = "0.56.3"; + }; + async-http-faraday = { + dependencies = [ "async-http" "faraday" ]; + groups = [ "default" "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0ndynkfknabv6m9wzcmdnj4r4bhlxqkg9c6rzsjc1pk8q057kslv"; + type = "gem"; + }; + version = "0.11.0"; + }; + async-io = { + dependencies = [ "async" ]; + groups = [ "default" "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1z58cgnw79idasx63knyjqihxp5v4wrp7r4jf251a8kyykwdd83a"; + type = "gem"; + }; + version = "1.32.1"; + }; + async-pool = { + dependencies = [ "async" ]; + groups = [ "default" "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1rq62gnhiy4a275wid465xqv6f6xsmp1zd9002xw4b37y83y5rqg"; + type = "gem"; + }; + version = "0.3.7"; + }; + autodiscover = { + dependencies = [ "httpclient" "logging" "nokogiri" "nori" ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + fetchSubmodules = false; + rev = "ee9b53dfa797ce6d4f970b82beea7fbdd2df56bb"; + sha256 = "1qffylir5i06vd3khwd182pslnqsa0kfc3dihvvjfdyl7p1lxv16"; + type = "git"; + url = "https://github.com/zammad-deps/autodiscover"; + }; + version = "1.0.2"; + }; + autoprefixer-rails = { + dependencies = [ "execjs" ]; + groups = [ "assets" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1bj8ajlq6ygyqxz7ykykaxfr4jn0ivc95sl64wrycwz7hxz29vda"; + type = "gem"; + }; + version = "10.3.3.0"; + }; + binding_of_caller = { + dependencies = [ "debug_inspector" ]; + groups = [ "default" "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "078n2dkpgsivcf0pr50981w95nfc2bsrp3wpf9wnxz1qsp8jbb9s"; + type = "gem"; + }; + version = "1.0.0"; + }; + biz = { + dependencies = [ "clavius" "tzinfo" ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1n2d7cs9jlnpi75nbssv77qlw0jsqnixaikpxsrbxz154q43gvlc"; + type = "gem"; + }; + version = "1.8.2"; + }; + bootsnap = { + dependencies = [ "msgpack" ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1ndjra3h86dq28njm2swmaw6n3vsywrycrf7i5iy9l8hrhfhv4x2"; + type = "gem"; + }; + version = "1.9.1"; + }; + brakeman = { + groups = [ "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0y71fqqd0azy5rn78fwiz9px0mql23zrl0ij0dzdkx22l4cscpb0"; + type = "gem"; + }; + version = "5.1.1"; + }; + browser = { + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0g4bcpax07kqqr9cp7cjc7i0pcij4nqpn1rdsg2wdwhzf00m6x32"; + type = "gem"; + }; + version = "5.3.1"; + }; + buftok = { + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1rzsy1vy50v55x9z0nivf23y0r9jkmq6i130xa75pq9i8qrn1mxs"; + type = "gem"; + }; + version = "0.2.0"; + }; + builder = { + groups = [ "assets" "default" "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "045wzckxpwcqzrjr353cxnyaxgf0qg22jh00dcx7z38cys5g1jlr"; + type = "gem"; + }; + version = "3.2.4"; + }; + byebug = { + groups = [ "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0nx3yjf4xzdgb8jkmk2344081gqr22pgjqnmjg2q64mj5d6r9194"; + type = "gem"; + }; + version = "11.1.3"; + }; + capybara = { + dependencies = [ "addressable" "mini_mime" "nokogiri" "rack" "rack-test" "regexp_parser" "xpath" ]; + groups = [ "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1viqcpsngy9fqjd68932m43ad6xj656d1x33nx9565q57chgi29k"; + type = "gem"; + }; + version = "3.35.3"; + }; + childprocess = { + groups = [ "default" "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1ic028k8xgm2dds9mqnvwwx3ibaz32j8455zxr9f4bcnviyahya5"; + type = "gem"; + }; + version = "3.0.0"; + }; + chunky_png = { + groups = [ "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1znw5x86hmm9vfhidwdsijz8m38pqgmv98l9ryilvky0aldv7mc9"; + type = "gem"; + }; + version = "1.4.0"; + }; + clavius = { + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0y58v8k860vafm1psm69f2ndcqmcifyvswsjdy8bxbxy30zrgad1"; + type = "gem"; + }; + version = "1.0.4"; + }; + clearbit = { + dependencies = [ "nestful" ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1ccgvxzgpll1wr5i9wjm1h0m2z600j6c4yf6pww423qhg8a25lbl"; + type = "gem"; + }; + version = "0.3.3"; + }; + coderay = { + groups = [ "default" "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0jvxqxzply1lwp7ysn94zjhh57vc14mcshw1ygw14ib8lhc00lyw"; + type = "gem"; + }; + version = "1.1.3"; + }; + coffee-rails = { + dependencies = [ "coffee-script" "railties" ]; + groups = [ "assets" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "170sp4y82bf6nsczkkkzypzv368sgjg6lfrkib4hfjgxa6xa3ajx"; + type = "gem"; + }; + version = "5.0.0"; + }; + coffee-script = { + dependencies = [ "coffee-script-source" "execjs" ]; + groups = [ "assets" "default" "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0rc7scyk7mnpfxqv5yy4y5q1hx3i7q3ahplcp4bq2g5r24g2izl2"; + type = "gem"; + }; + version = "2.4.1"; + }; + coffee-script-source = { + groups = [ "assets" "default" "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1907v9q1zcqmmyqzhzych5l7qifgls2rlbnbhy5vzyr7i7yicaz1"; + type = "gem"; + }; + version = "1.12.2"; + }; + coffeelint = { + dependencies = [ "coffee-script" "execjs" "json" ]; + groups = [ "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0k6nqia44m6jzzkav6wz1aafjipbygla3g6nl6i7sks854bwgdg1"; + type = "gem"; + }; + version = "1.16.1"; + }; + composite_primary_keys = { + dependencies = [ "activerecord" ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "08w8rns5dgjmvavqf1apfbd59dyqyv4igni940rklnqps297w2bn"; + type = "gem"; + }; + version = "12.0.10"; + }; + concurrent-ruby = { + groups = [ "assets" "default" "development" "nulldb" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0nwad3211p7yv9sda31jmbyw6sdafzmdi2i2niaz6f0wk5nq9h0f"; + type = "gem"; + }; + version = "1.1.9"; + }; + console = { + dependencies = [ "fiber-local" ]; + groups = [ "default" "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "04vhg3vnj2ky00fld4v6qywx32z4pjsa7l8i7sl1bl213s8334l9"; + type = "gem"; + }; + version = "1.13.1"; + }; + coveralls = { + dependencies = [ "multi_json" "rest-client" "simplecov" "term-ansicolor" "thor" ]; + groups = [ "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0b97bp3kndl1glfx8rlm19b1vxphirvkrjqn5hn9y1p975iwhl3w"; + type = "gem"; + }; + version = "0.7.1"; + }; + crack = { + dependencies = [ "rexml" ]; + groups = [ "default" "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1cr1kfpw3vkhysvkk3wg7c54m75kd68mbm9rs5azdjdq57xid13r"; + type = "gem"; + }; + version = "0.4.5"; + }; + crass = { + groups = [ "assets" "default" "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0pfl5c0pyqaparxaqxi6s4gfl21bdldwiawrc0aknyvflli60lfw"; + type = "gem"; + }; + version = "1.0.6"; + }; + csv = { + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "079al4y5rjgx12s7rg08rnf9w1n51a7ghycvmr7vhw6r6i81ry8s"; + type = "gem"; + }; + version = "3.2.0"; + }; + daemons = { + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "07cszb0zl8mqmwhc8a2yfg36vi6lbgrp4pa5bvmryrpcz9v6viwg"; + type = "gem"; + }; + version = "1.4.1"; + }; + dalli = { + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0br39scmr187w3ifl5gsddl2fhq6ahijgw6358plqjdzrizlg764"; + type = "gem"; + }; + version = "2.7.11"; + }; + debug_inspector = { + groups = [ "default" "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "01l678ng12rby6660pmwagmyg8nccvjfgs3487xna7ay378a59ga"; + type = "gem"; + }; + version = "1.1.0"; + }; + delayed_job = { + dependencies = [ "activesupport" ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "19ym3jw2jj1pxm6p22x2mpf69sdxiw07ddr69v92ccgg6d7q87rh"; + type = "gem"; + }; + version = "4.1.9"; + }; + delayed_job_active_record = { + dependencies = [ "activerecord" "delayed_job" ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0n6wjvk0yfkp1z19kvma7piasw1xgjh5ls51sf24c8g1jlmkmvdh"; + type = "gem"; + }; + version = "4.1.6"; + }; + deprecation_toolkit = { + dependencies = [ "activesupport" ]; + groups = [ "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1fh4d98irhph3ri7c2rrvvmmjd4z14702r8baq9flh5f34dap8d8"; + type = "gem"; + }; + version = "1.5.1"; + }; + diff-lcs = { + groups = [ "default" "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0m925b8xc6kbpnif9dldna24q1szg4mk0fvszrki837pfn46afmz"; + type = "gem"; + }; + version = "1.4.4"; + }; + diffy = { + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0nrg7kpgz6cn1gv2saj2fa5sfiykamvd7vn9lw2v625k7pjwf31l"; + type = "gem"; + }; + version = "3.4.0"; + }; + docile = { + groups = [ "default" "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1lxqxgq71rqwj1lpl9q1mbhhhhhhdkkj7my341f2889pwayk85sz"; + type = "gem"; + }; + version = "1.4.0"; + }; + domain_name = { + dependencies = [ "unf" ]; + groups = [ "default" "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0lcqjsmixjp52bnlgzh4lg9ppsk52x9hpwdjd53k8jnbah2602h0"; + type = "gem"; + }; + version = "0.5.20190701"; + }; + doorkeeper = { + dependencies = [ "railties" ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1hnwd7by65yyiz90ycs3pj4f78s7bnl09nzs1g1vs62509j4nz19"; + type = "gem"; + }; + version = "5.5.2"; + }; + dotenv = { + groups = [ "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0iym172c5337sm1x2ykc2i3f961vj3wdclbyg1x6sxs3irgfsl94"; + type = "gem"; + }; + version = "2.7.6"; + }; + eco = { + dependencies = [ "coffee-script" "eco-source" "execjs" ]; + groups = [ "assets" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "09jiwb7pkg0sxk730maxahra4whqw5l47zd7yg7fvd71pikdwdr0"; + type = "gem"; + }; + version = "1.0.0"; + }; + eco-source = { + groups = [ "assets" "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1ccxrvaac6mw5kdj1i490b5xb1wdka3a5q4jhvn8dvg41594yba1"; + type = "gem"; + }; + version = "1.1.0.rc.1"; + }; + em-websocket = { + dependencies = [ "eventmachine" "http_parser.rb" ]; + groups = [ "default" "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1mg1mx735a0k1l8y14ps2mxdwhi5r01ikydf34b0sp60v66nvbkb"; + type = "gem"; + }; + version = "0.5.2"; + }; + equalizer = { + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1kjmx3fygx8njxfrwcmn7clfhjhb6bvv3scy2lyyi0wqyi3brra4"; + type = "gem"; + }; + version = "0.0.11"; + }; + erubi = { + groups = [ "assets" "default" "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "09l8lz3j00m898li0yfsnb6ihc63rdvhw3k5xczna5zrjk104f2l"; + type = "gem"; + }; + version = "1.10.0"; + }; + eventmachine = { + groups = [ "default" "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0wh9aqb0skz80fhfn66lbpr4f86ya2z5rx6gm5xlfhd05bj1ch4r"; + type = "gem"; + }; + version = "1.2.7"; + }; + execjs = { + groups = [ "assets" "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "121h6af4i6wr3wxvv84y53jcyw2sk71j5wsncm6wq6yqrwcrk4vd"; + type = "gem"; + }; + version = "2.8.1"; + }; + factory_bot = { + dependencies = [ "activesupport" ]; + groups = [ "default" "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "04vxmjr200akcil9fqxc9ghbb9q0lyrh2q03xxncycd5vln910fi"; + type = "gem"; + }; + version = "6.2.0"; + }; + factory_bot_rails = { + dependencies = [ "factory_bot" "railties" ]; + groups = [ "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "18fhcihkc074gk62iwqgbdgc3ymim4fm0b4p3ipffy5hcsb9d2r7"; + type = "gem"; + }; + version = "6.2.0"; + }; + faker = { + dependencies = [ "i18n" ]; + groups = [ "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0hb9wfxyb4ss2vl2mrj1zgdk7dh4yaxghq22gbx62yxj5yb9w4zw"; + type = "gem"; + }; + version = "2.19.0"; + }; + faraday = { + dependencies = [ "faraday-em_http" "faraday-em_synchrony" "faraday-excon" "faraday-httpclient" "faraday-net_http" "faraday-net_http_persistent" "faraday-patron" "faraday-rack" "multipart-post" "ruby2_keywords" ]; + groups = [ "default" "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0afhlqgby2cizcwgh7h2sq5f77q01axjbdl25bsvfwsry9n7gyyi"; + type = "gem"; + }; + version = "1.8.0"; + }; + faraday-em_http = { + groups = [ "default" "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "12cnqpbak4vhikrh2cdn94assh3yxza8rq2p9w2j34bqg5q4qgbs"; + type = "gem"; + }; + version = "1.0.0"; + }; + faraday-em_synchrony = { + groups = [ "default" "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1vgrbhkp83sngv6k4mii9f2s9v5lmp693hylfxp2ssfc60fas3a6"; + type = "gem"; + }; + version = "1.0.0"; + }; + faraday-excon = { + groups = [ "default" "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0h09wkb0k0bhm6dqsd47ac601qiaah8qdzjh8gvxfd376x1chmdh"; + type = "gem"; + }; + version = "1.1.0"; + }; + faraday-http-cache = { + dependencies = [ "faraday" ]; + groups = [ "default" "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0lhfwlk4mhmw9pdlgdsl2bq4x45w7s51jkxjryf18wym8iiw36g7"; + type = "gem"; + }; + version = "2.2.0"; + }; + faraday-httpclient = { + groups = [ "default" "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0fyk0jd3ks7fdn8nv3spnwjpzx2lmxmg2gh4inz3by1zjzqg33sc"; + type = "gem"; + }; + version = "1.0.1"; + }; + faraday-net_http = { + groups = [ "default" "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1fi8sda5hc54v1w3mqfl5yz09nhx35kglyx72w7b8xxvdr0cwi9j"; + type = "gem"; + }; + version = "1.0.1"; + }; + faraday-net_http_persistent = { + groups = [ "default" "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0dc36ih95qw3rlccffcb0vgxjhmipsvxhn6cw71l7ffs0f7vq30b"; + type = "gem"; + }; + version = "1.2.0"; + }; + faraday-patron = { + groups = [ "default" "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "19wgsgfq0xkski1g7m96snv39la3zxz6x7nbdgiwhg5v82rxfb6w"; + type = "gem"; + }; + version = "1.0.0"; + }; + faraday-rack = { + groups = [ "default" "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1h184g4vqql5jv9s9im6igy00jp6mrah2h14py6mpf9bkabfqq7g"; + type = "gem"; + }; + version = "1.0.0"; + }; + faraday_middleware = { + dependencies = [ "faraday" ]; + groups = [ "default" "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0jik2kgfinwnfi6fpp512vlvs0mlggign3gkbpkg5fw1jr9his0r"; + type = "gem"; + }; + version = "1.0.0"; + }; + ffi = { + groups = [ "assets" "default" "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1wgvaclp4h9y8zkrgz8p2hqkrgr4j7kz0366mik0970w532cbmcq"; + type = "gem"; + }; + version = "1.15.3"; + }; + ffi-compiler = { + dependencies = [ "ffi" "rake" ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0c2caqm9wqnbidcb8dj4wd3s902z15qmgxplwyfyqbwa0ydki7q1"; + type = "gem"; + }; + version = "1.0.1"; + }; + fiber-local = { + groups = [ "default" "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1vrxxb09fc7aicb9zb0pmn5akggjy21dmxkdl3w949y4q05rldr9"; + type = "gem"; + }; + version = "1.0.0"; + }; + formatador = { + groups = [ "default" "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0mprf1dwznz5ld0q1jpbyl59fwnwk6azspnd0am7zz7kfg3pxhv5"; + type = "gem"; + }; + version = "0.3.0"; + }; + github_changelog_generator = { + dependencies = [ "activesupport" "async" "async-http-faraday" "faraday-http-cache" "multi_json" "octokit" "rainbow" "rake" ]; + groups = [ "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "04d6z2ysq3gzvpw91lq8mxmdlqcxkmvp8rw9zrzkmksh3pjdzli1"; + type = "gem"; + }; + version = "1.16.4"; + }; + gli = { + groups = [ "default" "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1sxpixpkbwi0g1lp9nv08hb4hw9g563zwxqfxd3nqp9c1ymcv5h3"; + type = "gem"; + }; + version = "2.20.1"; + }; + globalid = { + dependencies = [ "activesupport" ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0k6ww3shk3mv119xvr9m99l6ql0czq91xhd66hm8hqssb18r2lvm"; + type = "gem"; + }; + version = "0.5.2"; + }; + gmail_xoauth = { + dependencies = [ "oauth" ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0dslnb1kffcygcbs8sqw58w6ba0maq4w7k1i7kjrqpq0kxx6wklq"; + type = "gem"; + }; + version = "0.4.2"; + }; + guard = { + dependencies = [ "formatador" "listen" "lumberjack" "nenv" "notiffany" "pry" "shellany" "thor" ]; + groups = [ "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1zqy994fr0pf3pda0x3mmkhgnfg4hd12qp5bh1s1xm68l00viwhj"; + type = "gem"; + }; + version = "2.18.0"; + }; + guard-compat = { + groups = [ "default" "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1zj6sr1k8w59mmi27rsii0v8xyy2rnsi09nqvwpgj1q10yq1mlis"; + type = "gem"; + }; + version = "1.2.1"; + }; + guard-livereload = { + dependencies = [ "em-websocket" "guard" "guard-compat" "multi_json" ]; + groups = [ "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0yd74gdbbv2yz2caqwpsavzw8d5fd5y446wp8rdjw8wan0yd6k8j"; + type = "gem"; + }; + version = "2.5.2"; + }; + guard-symlink = { + dependencies = [ "guard" "guard-compat" ]; + groups = [ "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0s5lwl8v55lq0bbvj9k3fv0l4nkl0ydd7gr1k26ycs2a80cgd5mq"; + type = "gem"; + }; + version = "0.1.1"; + }; + hashdiff = { + groups = [ "default" "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1nynpl0xbj0nphqx1qlmyggq58ms1phf5i03hk64wcc0a17x1m1c"; + type = "gem"; + }; + version = "1.0.1"; + }; + hashie = { + groups = [ "default" "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "02bsx12ihl78x0vdm37byp78jjw2ff6035y7rrmbd90qxjwxr43q"; + type = "gem"; + }; + version = "4.1.0"; + }; + hiredis = { + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "04jj8k7lxqxw24sp0jiravigdkgsyrpprxpxm71ba93x1wr2w1bz"; + type = "gem"; + }; + version = "0.6.3"; + }; + htmlentities = { + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1nkklqsn8ir8wizzlakncfv42i32wc0w9hxp00hvdlgjr7376nhj"; + type = "gem"; + }; + version = "4.3.4"; + }; + http = { + dependencies = [ "addressable" "http-cookie" "http-form_data" "http-parser" ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0z8vmvnkrllkpzsxi94284di9r63g9v561a16an35izwak8g245y"; + type = "gem"; + }; + version = "4.4.1"; + }; + http-accept = { + groups = [ "default" "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "09m1facypsdjynfwrcv19xcb1mqg8z6kk31g8r33pfxzh838c9n6"; + type = "gem"; + }; + version = "1.7.0"; + }; + http-cookie = { + dependencies = [ "domain_name" ]; + groups = [ "default" "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "19370bc97gsy2j4hanij246hv1ddc85hw0xjb6sj7n1ykqdlx9l9"; + type = "gem"; + }; + version = "1.0.4"; + }; + http-form_data = { + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1wx591jdhy84901pklh1n9sgh74gnvq1qyqxwchni1yrc49ynknc"; + type = "gem"; + }; + version = "2.3.0"; + }; + http-parser = { + dependencies = [ "ffi-compiler" ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "18qqvckvqjffh88hfib6c8pl9qwk9gp89w89hl3f2s1x8hgyqka1"; + type = "gem"; + }; + version = "1.2.3"; + }; + "http_parser.rb" = { + groups = [ "default" "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "15nidriy0v5yqfjsgsra51wmknxci2n2grliz78sf9pga3n0l7gi"; + type = "gem"; + }; + version = "0.6.0"; + }; + httpclient = { + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "19mxmvghp7ki3klsxwrlwr431li7hm1lczhhj8z4qihl2acy8l99"; + type = "gem"; + }; + version = "2.8.3"; + }; + i18n = { + dependencies = [ "concurrent-ruby" ]; + groups = [ "assets" "default" "development" "nulldb" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0g2fnag935zn2ggm5cn6k4s4xvv53v2givj1j90szmvavlpya96a"; + type = "gem"; + }; + version = "1.8.10"; + }; + icalendar = { + dependencies = [ "ice_cube" ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1wv5wq6pzq6434bnxfanvijswj2rnfvjmgisj1qg399mc42g46ls"; + type = "gem"; + }; + version = "2.7.1"; + }; + icalendar-recurrence = { + dependencies = [ "icalendar" "ice_cube" ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "06li3cdbwkd9y2sadjlbwj54blqdaa056yx338s4ddfxywrngigh"; + type = "gem"; + }; + version = "1.1.3"; + }; + ice_cube = { + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1rzfydzgy6jppqvzzr76skfk07nmlszpcjzzn4wlzpsgmagmf0wq"; + type = "gem"; + }; + version = "0.16.3"; + }; + inflection = { + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0mfkk0j0dway3p4gwzk8fnpi4hwaywl2v0iywf1azf98zhk9pfnf"; + type = "gem"; + }; + version = "1.0.0"; + }; + iniparse = { + groups = [ "default" "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1wb1qy4i2xrrd92dc34pi7q7ibrjpapzk9y465v0n9caiplnb89n"; + type = "gem"; + }; + version = "1.5.0"; + }; + interception = { + groups = [ "default" "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "01vrkn28psdx1ysh5js3hn17nfp1nvvv46wc1pwqsakm6vb1hf55"; + type = "gem"; + }; + version = "0.5"; + }; + json = { + groups = [ "default" "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0lrirj0gw420kw71bjjlqkqhqbrplla61gbv1jzgsz6bv90qr3ci"; + type = "gem"; + }; + version = "2.5.1"; + }; + jwt = { + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "036i5fc09275ms49mw43mh4i9pwaap778ra2pmx06ipzyyjl6bfs"; + type = "gem"; + }; + version = "2.2.3"; + }; + kgio = { + groups = [ "default" "unicorn" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1ipzvw7n0kz1w8rkqybyxvf3hb601a770khm0xdqm68mc4aa59xx"; + type = "gem"; + }; + version = "2.11.4"; + }; + koala = { + dependencies = [ "addressable" "faraday" "json" ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1k7nlif8nwgb6bfkclry41xklaf4rqf18ycgq63sgkgj6zdpda4w"; + type = "gem"; + }; + version = "3.0.0"; + }; + libv8 = { + groups = [ "mini_racer" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0317sr3nrl51sp844bps71smkrwim3fjn47wdfpbycixnbxspivm"; + type = "gem"; + }; + version = "8.4.255.0"; + }; + listen = { + dependencies = [ "rb-fsevent" "rb-inotify" ]; + groups = [ "default" "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0h2v34xhi30w0d9gfzds2w6v89grq2gkpgvmdj9m8x1ld1845xnj"; + type = "gem"; + }; + version = "3.5.1"; + }; + little-plugger = { + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1frilv82dyxnlg8k1jhrvyd73l6k17mxc5vwxx080r4x1p04gwym"; + type = "gem"; + }; + version = "1.1.4"; + }; + logging = { + dependencies = [ "little-plugger" "multi_json" ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0pkmhcxi8lp74bq5gz9lxrvaiv5w0745kk7s4bw2b1x07qqri0n9"; + type = "gem"; + }; + version = "2.3.0"; + }; + loofah = { + dependencies = [ "crass" "nokogiri" ]; + groups = [ "assets" "default" "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1nqcya57x2n58y1dify60i0dpla40n4yir928khp4nj5jrn9mgmw"; + type = "gem"; + }; + version = "2.12.0"; + }; + lumberjack = { + groups = [ "default" "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "06pybb23hypc9gvs2p839ildhn26q68drb6431ng3s39i3fkkba8"; + type = "gem"; + }; + version = "1.2.8"; + }; + mail = { + dependencies = [ "mini_mime" ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + fetchSubmodules = false; + rev = "9265cf75bbe376f595944bd10d2dd953f863e765"; + sha256 = "04jxql35kwijapl37h9an6127hzz0y4pnj82a9iw39kz9vva890s"; + type = "git"; + url = "https://github.com/zammad-deps/mail"; + }; + version = "2.7.2.edge"; + }; + marcel = { + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0bp001p687nsa4a8sp3q1iv8pfhs24w7s3avychjp64sdkg6jxq3"; + type = "gem"; + }; + version = "1.0.1"; + }; + memoizable = { + dependencies = [ "thread_safe" ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0v42bvghsvfpzybfazl14qhkrjvx0xlmxz0wwqc960ga1wld5x5c"; + type = "gem"; + }; + version = "0.4.2"; + }; + messagebird-rest = { + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1nj994h4ziwb72g54ma3ivb3rbfkv3yk81wwcmgykl2ik3g7q2bm"; + type = "gem"; + }; + version = "3.0.0"; + }; + method_source = { + groups = [ "assets" "default" "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1pnyh44qycnf9mzi1j6fywd5fkskv3x7nmsqrrws0rjn5dd4ayfp"; + type = "gem"; + }; + version = "1.0.0"; + }; + mime-types = { + dependencies = [ "mime-types-data" ]; + groups = [ "default" "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1zj12l9qk62anvk9bjvandpa6vy4xslil15wl6wlivyf51z773vh"; + type = "gem"; + }; + version = "3.3.1"; + }; + mime-types-data = { + groups = [ "default" "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1phcq7z0zpipwd7y4fbqmlaqghv07fjjgrx99mwq3z3n0yvy7fmi"; + type = "gem"; + }; + version = "3.2021.0225"; + }; + mini_mime = { + groups = [ "default" "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "173dp4vqvx1sl6aq83daxwn5xvb5rn3jgynjmb91swl7gmgp17yl"; + type = "gem"; + }; + version = "1.1.1"; + }; + mini_portile2 = { + groups = [ "assets" "default" "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1lvxm91hi0pabnkkg47wh1siv56s6slm2mdq1idfm86dyfidfprq"; + type = "gem"; + }; + version = "2.6.1"; + }; + mini_racer = { + dependencies = [ "libv8" ]; + groups = [ "mini_racer" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0zi36qcg5qj4g1c11vwmc7lknjihirrmc6yxi6q8j6v4lfnyjbyg"; + type = "gem"; + }; + version = "0.2.9"; + }; + minitest = { + groups = [ "assets" "default" "development" "nulldb" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "19z7wkhg59y8abginfrm2wzplz7py3va8fyngiigngqvsws6cwgl"; + type = "gem"; + }; + version = "5.14.4"; + }; + msgpack = { + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "06iajjyhx0rvpn4yr3h1hc4w4w3k59bdmfhxnjzzh76wsrdxxrc6"; + type = "gem"; + }; + version = "1.4.2"; + }; + multi_json = { + groups = [ "default" "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0pb1g1y3dsiahavspyzkdy39j4q377009f6ix0bh1ag4nqw43l0z"; + type = "gem"; + }; + version = "1.15.0"; + }; + multi_xml = { + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0lmd4f401mvravi1i1yq7b2qjjli0yq7dfc4p1nj5nwajp7r6hyj"; + type = "gem"; + }; + version = "0.6.0"; + }; + multipart-post = { + groups = [ "default" "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1zgw9zlwh2a6i1yvhhc4a84ry1hv824d6g2iw2chs3k5aylpmpfj"; + type = "gem"; + }; + version = "2.1.1"; + }; + mysql2 = { + groups = [ "mysql" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0d14pcy5m4hjig0zdxnl9in5f4izszc7v9zcczf2gyi5kiyxk8jw"; + type = "gem"; + }; + version = "0.5.3"; + }; + naught = { + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1wwjx35zgbc0nplp8a866iafk4zsrbhwwz4pav5gydr2wm26nksg"; + type = "gem"; + }; + version = "1.1.0"; + }; + nenv = { + groups = [ "default" "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0r97jzknll9bhd8yyg2bngnnkj8rjhal667n7d32h8h7ny7nvpnr"; + type = "gem"; + }; + version = "0.3.0"; + }; + nestful = { + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0sn7lrdhp1dwn9xkqwkarby5bxx1g30givy3fi1dwp1xvqbrqikw"; + type = "gem"; + }; + version = "1.1.4"; + }; + net-ldap = { + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1j19yxrz7h3hj7kiiln13c7bz7hvpdqr31bwi88dj64zifr7896n"; + type = "gem"; + }; + version = "0.17.0"; + }; + netrc = { + groups = [ "default" "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0gzfmcywp1da8nzfqsql2zqi648mfnx6qwkig3cv36n9m0yy676y"; + type = "gem"; + }; + version = "0.11.0"; + }; + nio4r = { + groups = [ "default" "development" "puma" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0xk64wghkscs6bv2n22853k2nh39d131c6rfpnlw12mbjnnv9v1v"; + type = "gem"; + }; + version = "2.5.8"; + }; + nokogiri = { + dependencies = [ "mini_portile2" "racc" ]; + groups = [ "assets" "default" "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1v02g7k7cxiwdcahvlxrmizn3avj2q6nsjccgilq1idc89cr081b"; + type = "gem"; + }; + version = "1.12.5"; + }; + nori = { + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "066wc774a2zp4vrq3k7k8p0fhv30ymqmxma1jj7yg5735zls8agn"; + type = "gem"; + }; + version = "2.6.0"; + }; + notiffany = { + dependencies = [ "nenv" "shellany" ]; + groups = [ "default" "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0f47h3bmg1apr4x51szqfv3rh2vq58z3grh4w02cp3bzbdh6jxnk"; + type = "gem"; + }; + version = "0.1.3"; + }; + oauth = { + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1zwd6v39yqfdrpg1p3d9jvzs9ljg55ana2p06m0l7qn5w0lgx1a0"; + type = "gem"; + }; + version = "0.5.6"; + }; + oauth2 = { + dependencies = [ "faraday" "jwt" "multi_json" "multi_xml" "rack" ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1q6q2kgpxmygk8kmxqn54zkw8cs57a34zzz5cxpsh1bj3ag06rk3"; + type = "gem"; + }; + version = "1.4.7"; + }; + octokit = { + dependencies = [ "faraday" "sawyer" ]; + groups = [ "default" "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0ak64rb48d8z98nw6q70r6i0i3ivv61iqla40ss5l79491qfnn27"; + type = "gem"; + }; + version = "4.21.0"; + }; + omniauth = { + dependencies = [ "hashie" "rack" ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "002vi9gwamkmhf0dsj2im1d47xw2n1jfhnzl18shxf3ampkqfmyz"; + type = "gem"; + }; + version = "1.9.1"; + }; + omniauth-facebook = { + dependencies = [ "omniauth-oauth2" ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1z0f5sr2ddnvfva0jrfd4926nlv4528rfj7z595288n39304r092"; + type = "gem"; + }; + version = "8.0.0"; + }; + omniauth-github = { + dependencies = [ "omniauth" "omniauth-oauth2" ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0xbk0dbxqfpyfb33ghz6vrlz3m6442rp18ryf13gwzlnifcawhlb"; + type = "gem"; + }; + version = "1.4.0"; + }; + omniauth-gitlab = { + dependencies = [ "omniauth" "omniauth-oauth2" ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1nbrg93p0nqxs1i2ddyij2rr7jn4vr3la4la39q4fknpin535k3z"; + type = "gem"; + }; + version = "2.0.0"; + }; + omniauth-google-oauth2 = { + dependencies = [ "jwt" "oauth2" "omniauth" "omniauth-oauth2" ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "10pnxvb6wpnf58dja3yz4ja527443x3q13hzhcbays4amnnp8i4a"; + type = "gem"; + }; + version = "0.8.2"; + }; + omniauth-linkedin-oauth2 = { + dependencies = [ "omniauth-oauth2" ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1ydkj9f2hd3fskpc2gazz9dim70z2k6z6pb8j3glnlhkd67iyzci"; + type = "gem"; + }; + version = "1.0.0"; + }; + omniauth-microsoft-office365 = { + dependencies = [ "omniauth" "omniauth-oauth2" ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1vw6418gykxqd9z32ddq0mr6wa737la1zwppb1ilw9sgii24rg1v"; + type = "gem"; + }; + version = "0.0.8"; + }; + omniauth-oauth = { + dependencies = [ "oauth" "omniauth" ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0yw2vzx633p9wpdkd4jxsih6mw604mj7f6myyfikmj4d95c8d9z7"; + type = "gem"; + }; + version = "1.2.0"; + }; + omniauth-oauth2 = { + dependencies = [ "oauth2" "omniauth" ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "10fr2b58sp7l6nfdvxpbi67374hkrvsf507cvda89jjs0jacy319"; + type = "gem"; + }; + version = "1.7.1"; + }; + omniauth-rails_csrf_protection = { + dependencies = [ "actionpack" "omniauth" ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0xgkxwg17w39q3yjqcj0fm6hdkw37qm1l82dvm9zxn6q2pbzm2zv"; + type = "gem"; + }; + version = "0.1.2"; + }; + omniauth-saml = { + dependencies = [ "omniauth" "ruby-saml" ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0gxl14lbksnjkl8dfn23lsjkk63md77icm5racrh6fsp5n4ni9d4"; + type = "gem"; + }; + version = "1.10.3"; + }; + omniauth-twitter = { + dependencies = [ "omniauth-oauth" "rack" ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0r5j65hkpgzhvvbs90id3nfsjgsad6ymzggbm7zlaxvnrmvnrk65"; + type = "gem"; + }; + version = "1.4.0"; + }; + omniauth-weibo-oauth2 = { + dependencies = [ "omniauth" "omniauth-oauth2" ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "02cz73lj38cjqkbrdnfr7iymzqdcxgqcjy992r5hmawgpqqgxvwb"; + type = "gem"; + }; + version = "0.5.2"; + }; + openssl = { + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "03wbynzkhay7l1x76srjkg91q48mxl575vrxb3blfxlpqwsvvp0w"; + type = "gem"; + }; + version = "2.2.0"; + }; + overcommit = { + dependencies = [ "childprocess" "iniparse" "rexml" ]; + groups = [ "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0wbczp2pxwiggx5n925mdr2q17c6m9hq7h0q7ml2spmla29609sr"; + type = "gem"; + }; + version = "0.58.0"; + }; + parallel = { + groups = [ "default" "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1hkfpm78c2vs1qblnva3k1grijvxh87iixcnyd83s3lxrxsjvag4"; + type = "gem"; + }; + version = "1.21.0"; + }; + parser = { + dependencies = [ "ast" ]; + groups = [ "default" "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "06ma6w87ph8lnc9z4hi40ynmcdnjv0p8x53x0s3fjkz4q2p6sxh5"; + type = "gem"; + }; + version = "3.0.2.0"; + }; + pg = { + groups = [ "postgres" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "00vhasqwc4f98qb4wxqn2h07fjwzhp5lwyi41j2gndi2g02wrdqh"; + type = "gem"; + }; + version = "0.21.0"; + }; + power_assert = { + groups = [ "default" "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "01z44m715rb6nzfrc90c5rkkdiy42dv3q94jw1q8baf9dg33nwi5"; + type = "gem"; + }; + version = "2.0.1"; + }; + protocol-hpack = { + groups = [ "default" "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0sd85am1hj2w7z5hv19wy1nbisxfr1vqx3wlxjfz9xy7x7s6aczw"; + type = "gem"; + }; + version = "1.4.2"; + }; + protocol-http = { + groups = [ "default" "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0q7js6npc8flgipjpdykmbdmhf2ml8li5gy7763y6awkpli6s6p6"; + type = "gem"; + }; + version = "0.22.4"; + }; + protocol-http1 = { + dependencies = [ "protocol-http" ]; + groups = [ "default" "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0wp9pi1qjh1darrqv0r46i4bvax3n64aa0mn7kza4251qmk0dwz5"; + type = "gem"; + }; + version = "0.14.1"; + }; + protocol-http2 = { + dependencies = [ "protocol-hpack" "protocol-http" ]; + groups = [ "default" "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1a9klpfmi7w465zq5xz8y8h1qvj42hkm0qd0nlws9d2idd767q5j"; + type = "gem"; + }; + version = "0.14.2"; + }; + pry = { + dependencies = [ "coderay" "method_source" ]; + groups = [ "default" "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0m445x8fwcjdyv2bc0glzss2nbm1ll51bq45knixapc7cl3dzdlr"; + type = "gem"; + }; + version = "0.14.1"; + }; + pry-rails = { + dependencies = [ "pry" ]; + groups = [ "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1cf4ii53w2hdh7fn8vhqpzkymmchjbwij4l3m7s6fsxvb9bn51j6"; + type = "gem"; + }; + version = "0.3.9"; + }; + pry-remote = { + dependencies = [ "pry" "slop" ]; + groups = [ "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "10g1wrkcy5v5qyg9fpw1cag6g5rlcl1i66kn00r7kwqkzrdhd7nm"; + type = "gem"; + }; + version = "0.1.8"; + }; + pry-rescue = { + dependencies = [ "interception" "pry" ]; + groups = [ "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1wn72y8y3d3g0ng350ld92nyjln012432q2z2iy9lhwzjc4dwi65"; + type = "gem"; + }; + version = "1.5.2"; + }; + pry-stack_explorer = { + dependencies = [ "binding_of_caller" "pry" ]; + groups = [ "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0h7kp99r8vpvpbvia079i58932qjz2ci9qhwbk7h1bf48ydymnx2"; + type = "gem"; + }; + version = "0.6.1"; + }; + public_suffix = { + groups = [ "default" "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1xqcgkl7bwws1qrlnmxgh8g4g9m10vg60bhlw40fplninb3ng6d9"; + type = "gem"; + }; + version = "4.0.6"; + }; + puma = { + dependencies = [ "nio4r" ]; + groups = [ "puma" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0r22aq2shhmvi461pfs1c7pf66l4kbwndpi1jgxqydp0a1lfjbbk"; + type = "gem"; + }; + version = "4.3.10"; + }; + pundit = { + dependencies = [ "activesupport" ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1i3rccbzyw46xrx1ic95r11v15ia2kj8naiyi68gdvxfrisk1fxm"; + type = "gem"; + }; + version = "2.1.1"; + }; + pundit-matchers = { + dependencies = [ "rspec-rails" ]; + groups = [ "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "10kvf0pj5339fh3dgf9lvsv94d74x7x1wxdb0hp8a1ac7w5l6vmm"; + type = "gem"; + }; + version = "1.7.0"; + }; + racc = { + groups = [ "assets" "default" "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "178k7r0xn689spviqzhvazzvxfq6fyjldxb3ywjbgipbfi4s8j1g"; + type = "gem"; + }; + version = "1.5.2"; + }; + rack = { + groups = [ "assets" "default" "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0i5vs0dph9i5jn8dfc6aqd6njcafmb20rwqngrf759c9cvmyff16"; + type = "gem"; + }; + version = "2.2.3"; + }; + rack-livereload = { + dependencies = [ "rack" ]; + groups = [ "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1slzlmvlapgp2pc7389i0zndq3nka0s6sh445vf21cxpz7vz3p5i"; + type = "gem"; + }; + version = "0.3.17"; + }; + rack-test = { + dependencies = [ "rack" ]; + groups = [ "assets" "default" "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0rh8h376mx71ci5yklnpqqn118z3bl67nnv5k801qaqn1zs62h8m"; + type = "gem"; + }; + version = "1.1.0"; + }; + rails = { + dependencies = [ "actioncable" "actionmailbox" "actionmailer" "actionpack" "actiontext" "actionview" "activejob" "activemodel" "activerecord" "activestorage" "activesupport" "railties" "sprockets-rails" ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1q0y3nc0phg85zjxh9j78rs2hlc34zbhwn2zaw2w7bz2fc2vbxk2"; + type = "gem"; + }; + version = "6.0.4.1"; + }; + rails-controller-testing = { + dependencies = [ "actionpack" "actionview" "activesupport" ]; + groups = [ "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "151f303jcvs8s149mhx2g5mn67487x0blrf9dzl76q1nb7dlh53l"; + type = "gem"; + }; + version = "1.0.5"; + }; + rails-dom-testing = { + dependencies = [ "activesupport" "nokogiri" ]; + groups = [ "assets" "default" "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1lfq2a7kp2x64dzzi5p4cjcbiv62vxh9lyqk2f0rqq3fkzrw8h5i"; + type = "gem"; + }; + version = "2.0.3"; + }; + rails-html-sanitizer = { + dependencies = [ "loofah" ]; + groups = [ "assets" "default" "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0whc4d4jqm8kd4x3jzbax54sscm1k4pfkr5d1gpapjbzqkfj77yy"; + type = "gem"; + }; + version = "1.4.1"; + }; + railties = { + dependencies = [ "actionpack" "activesupport" "method_source" "rake" "thor" ]; + groups = [ "assets" "default" "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0v454xnsfh2sival85cah5wbagzzzzd7frqx9kwn4nc9m8m3yx74"; + type = "gem"; + }; + version = "6.0.4.1"; + }; + rainbow = { + groups = [ "default" "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0bb2fpjspydr6x0s8pn1pqkzmxszvkfapv0p4627mywl7ky4zkhk"; + type = "gem"; + }; + version = "3.0.0"; + }; + raindrops = { + groups = [ "default" "unicorn" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "07nikrdnsf6g55225njnzs1lm9s0lnbv2krvqd2gldwl49l7vl9x"; + type = "gem"; + }; + version = "0.19.2"; + }; + rake = { + groups = [ "assets" "default" "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "15whn7p9nrkxangbs9hh75q585yfn66lv0v2mhj6q6dl6x8bzr2w"; + type = "gem"; + }; + version = "13.0.6"; + }; + rb-fsevent = { + groups = [ "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1qsx9c4jr11vr3a9s5j83avczx9qn9rjaf32gxpc2v451hvbc0is"; + type = "gem"; + }; + version = "0.11.0"; + }; + rb-inotify = { + dependencies = [ "ffi" ]; + groups = [ "default" "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1jm76h8f8hji38z3ggf4bzi8vps6p7sagxn3ab57qc0xyga64005"; + type = "gem"; + }; + version = "0.10.1"; + }; + rchardet = { + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1isj1b3ywgg2m1vdlnr41lpvpm3dbyarf1lla4dfibfmad9csfk9"; + type = "gem"; + }; + version = "1.8.0"; + }; + redis = { + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1ig832dp0xmpp6a934nifzaj7wm9lzjxzasw911fagycs8p6m720"; + type = "gem"; + }; + version = "4.4.0"; + }; + regexp_parser = { + groups = [ "default" "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0vg7imjnfcqjx7kw94ccj5r78j4g190cqzi1i59sh4a0l940b9cr"; + type = "gem"; + }; + version = "2.1.1"; + }; + rest-client = { + dependencies = [ "http-accept" "http-cookie" "mime-types" "netrc" ]; + groups = [ "default" "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1qs74yzl58agzx9dgjhcpgmzfn61fqkk33k1js2y5yhlvc5l19im"; + type = "gem"; + }; + version = "2.1.0"; + }; + rexml = { + groups = [ "default" "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "08ximcyfjy94pm1rhcx04ny1vx2sk0x4y185gzn86yfsbzwkng53"; + type = "gem"; + }; + version = "3.2.5"; + }; + rspec-core = { + dependencies = [ "rspec-support" ]; + groups = [ "default" "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0wwnfhxxvrlxlk1a3yxlb82k2f9lm0yn0598x7lk8fksaz4vv6mc"; + type = "gem"; + }; + version = "3.10.1"; + }; + rspec-expectations = { + dependencies = [ "diff-lcs" "rspec-support" ]; + groups = [ "default" "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1sz9bj4ri28adsklnh257pnbq4r5ayziw02qf67wry0kvzazbb17"; + type = "gem"; + }; + version = "3.10.1"; + }; + rspec-mocks = { + dependencies = [ "diff-lcs" "rspec-support" ]; + groups = [ "default" "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1d13g6kipqqc9lmwz5b244pdwc97z15vcbnbq6n9rlf32bipdz4k"; + type = "gem"; + }; + version = "3.10.2"; + }; + rspec-rails = { + dependencies = [ "actionpack" "activesupport" "railties" "rspec-core" "rspec-expectations" "rspec-mocks" "rspec-support" ]; + groups = [ "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "152yz205p8zi5nxxhs8z581rjdvvqsfjndklkvn11f2vi50nv7n9"; + type = "gem"; + }; + version = "5.0.2"; + }; + rspec-support = { + groups = [ "default" "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "15j52parvb8cgvl6s0pbxi2ywxrv6x0764g222kz5flz0s4mycbl"; + type = "gem"; + }; + version = "3.10.2"; + }; + rszr = { + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0ns5qxdkgbqw1d52nz29lwx6xgs5bqwx1js1227n6l4q36g3snpp"; + type = "gem"; + }; + version = "0.5.2"; + }; + rubocop = { + dependencies = [ "parallel" "parser" "rainbow" "regexp_parser" "rexml" "rubocop-ast" "ruby-progressbar" "unicode-display_width" ]; + groups = [ "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1gqsacpqzcflc8j08qx1asvcr89jjg9gqhijhir6wivjbmz700cm"; + type = "gem"; + }; + version = "1.21.0"; + }; + rubocop-ast = { + dependencies = [ "parser" ]; + groups = [ "default" "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "06fkn66wrsfprvd7bh0bkjvdcr17b9jy3j0cs7lbd3f2yscvwr63"; + type = "gem"; + }; + version = "1.11.0"; + }; + rubocop-faker = { + dependencies = [ "faker" "rubocop" ]; + groups = [ "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "05d2mpi8xq50xh1s53h75hgvdhcz76lv9cnfn4jg35nbg67j1pdz"; + type = "gem"; + }; + version = "1.1.0"; + }; + rubocop-performance = { + dependencies = [ "rubocop" "rubocop-ast" ]; + groups = [ "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0whjb16w70z1x0x797cfbcmqq6ngf0vkhn5qn2f2zmcin0929kgm"; + type = "gem"; + }; + version = "1.11.5"; + }; + rubocop-rails = { + dependencies = [ "activesupport" "rack" "rubocop" ]; + groups = [ "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0sc2hbz434j6h3y1s6pzqrmdbbj6y0csfqdyjm23scwfdg7g3n07"; + type = "gem"; + }; + version = "2.12.2"; + }; + rubocop-rspec = { + dependencies = [ "rubocop" ]; + groups = [ "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "037v3zb1ia12sgqb2f2dd2cgrfj4scfvy29nfp5688av0wghb7fd"; + type = "gem"; + }; + version = "2.5.0"; + }; + ruby-progressbar = { + groups = [ "default" "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "02nmaw7yx9kl7rbaan5pl8x5nn0y4j5954mzrkzi9i3dhsrps4nc"; + type = "gem"; + }; + version = "1.11.0"; + }; + ruby-saml = { + dependencies = [ "nokogiri" "rexml" ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0v21hgbhaqvz99w3jdm3s1pxwc2idjgqyw4fghzj54g9sgm0dxii"; + type = "gem"; + }; + version = "1.12.2"; + }; + ruby2_keywords = { + groups = [ "default" "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1vz322p8n39hz3b4a9gkmz9y7a5jaz41zrm2ywf31dvkqm03glgz"; + type = "gem"; + }; + version = "0.0.5"; + }; + rubyntlm = { + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0b8hczk8hysv53ncsqzx4q6kma5gy5lqc7s5yx8h64x3vdb18cjv"; + type = "gem"; + }; + version = "0.6.3"; + }; + rubyzip = { + groups = [ "default" "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0590m2pr9i209pp5z4mx0nb1961ishdiqb28995hw1nln1d1b5ji"; + type = "gem"; + }; + version = "2.3.0"; + }; + sassc = { + dependencies = [ "ffi" ]; + groups = [ "assets" "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0gpqv48xhl8mb8qqhcifcp0pixn206a7imc07g48armklfqa4q2c"; + type = "gem"; + }; + version = "2.4.0"; + }; + sassc-rails = { + dependencies = [ "railties" "sassc" "sprockets" "sprockets-rails" "tilt" ]; + groups = [ "assets" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1d9djmwn36a5m8a83bpycs48g8kh1n2xkyvghn7dr6zwh4wdyksz"; + type = "gem"; + }; + version = "2.1.2"; + }; + sawyer = { + dependencies = [ "addressable" "faraday" ]; + groups = [ "default" "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0yrdchs3psh583rjapkv33mljdivggqn99wkydkjdckcjn43j3cz"; + type = "gem"; + }; + version = "0.8.2"; + }; + selenium-webdriver = { + dependencies = [ "childprocess" "rubyzip" ]; + groups = [ "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0adcvp86dinaqq3nhf8p3m0rl2g6q0a4h52k0i7kdnsg1qz9k86y"; + type = "gem"; + }; + version = "3.142.7"; + }; + shellany = { + groups = [ "default" "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1ryyzrj1kxmnpdzhlv4ys3dnl2r5r3d2rs2jwzbnd1v96a8pl4hf"; + type = "gem"; + }; + version = "0.0.1"; + }; + shoulda-matchers = { + dependencies = [ "activesupport" ]; + groups = [ "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0z6v2acldnvqrnvfk70f9xq39ppw5j03kbz2hpz7s17lgnn21vx8"; + type = "gem"; + }; + version = "5.0.0"; + }; + simple_oauth = { + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0dw9ii6m7wckml100xhjc6vxpjcry174lbi9jz5v7ibjr3i94y8l"; + type = "gem"; + }; + version = "0.3.1"; + }; + simplecov = { + dependencies = [ "docile" "simplecov-html" "simplecov_json_formatter" ]; + groups = [ "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1hrv046jll6ad1s964gsmcq4hvkr3zzr6jc7z1mns22mvfpbc3cr"; + type = "gem"; + }; + version = "0.21.2"; + }; + simplecov-html = { + groups = [ "default" "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0yx01bxa8pbf9ip4hagqkp5m0mqfnwnw2xk8kjraiywz4lrss6jb"; + type = "gem"; + }; + version = "0.12.3"; + }; + simplecov-rcov = { + dependencies = [ "simplecov" ]; + groups = [ "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "056fav5r7m73fkzpsrvbg0kgv905lkpmnj1l80q9msj3gfq23xn7"; + type = "gem"; + }; + version = "0.2.3"; + }; + simplecov_json_formatter = { + groups = [ "default" "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "19r15hyvh52jx7fmsrcflb58xh8l7l0zx4sxkh3hqzhq68y81pjl"; + type = "gem"; + }; + version = "0.1.3"; + }; + slack-notifier = { + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "001bipchr45sny33nlavqgxca9y1qqxa7xpi7pvjfqiybwzvm6nd"; + type = "gem"; + }; + version = "2.4.0"; + }; + slack-ruby-client = { + dependencies = [ "faraday" "faraday_middleware" "gli" "hashie" "websocket-driver" ]; + groups = [ "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "11q9v6ch9jpc82z1nghwibbbbxbi23q41fcw8i57dpjmq06ma9z2"; + type = "gem"; + }; + version = "0.17.0"; + }; + slop = { + groups = [ "default" "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "00w8g3j7k7kl8ri2cf1m58ckxk8rn350gp4chfscmgv6pq1spk3n"; + type = "gem"; + }; + version = "3.6.0"; + }; + spring = { + groups = [ "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "12kyz3jdnaarhf2jbykmd9mqg085gxsx00c16la5q7czxvpb2x2r"; + type = "gem"; + }; + version = "3.0.0"; + }; + spring-commands-rspec = { + dependencies = [ "spring" ]; + groups = [ "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0b0svpq3md1pjz5drpa5pxwg8nk48wrshq8lckim4x3nli7ya0k2"; + type = "gem"; + }; + version = "1.0.4"; + }; + spring-commands-testunit = { + dependencies = [ "spring" ]; + groups = [ "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0qqb0iyjgl9nr7w69p07nq8ghidjcp5n81xrsn8rvafana5lis5c"; + type = "gem"; + }; + version = "1.0.1"; + }; + sprockets = { + dependencies = [ "concurrent-ruby" "rack" ]; + groups = [ "assets" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "182jw5a0fbqah5w9jancvfmjbk88h8bxdbwnl4d3q809rpxdg8ay"; + type = "gem"; + }; + version = "3.7.2"; + }; + sprockets-rails = { + dependencies = [ "actionpack" "activesupport" "sprockets" ]; + groups = [ "assets" "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0mwmz36265646xqfyczgr1mhkm1hfxgxxvgdgr4xfcbf2g72p1k2"; + type = "gem"; + }; + version = "3.2.2"; + }; + sync = { + groups = [ "default" "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1z9qlq4icyiv3hz1znvsq1wz2ccqjb1zwd6gkvnwg6n50z65d0v6"; + type = "gem"; + }; + version = "0.5.0"; + }; + tcr = { + groups = [ "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "14678jlva69bxx24sz5i882x25h357xmbmqsichvq8vdiw2xf6aa"; + type = "gem"; + }; + version = "0.2.2"; + }; + telegramAPI = { + dependencies = [ "rest-client" ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "043blxqk5qps62jgjyr7hbf2y2fg5ldcmii8mxk09b3c6ps9ji6g"; + type = "gem"; + }; + version = "1.4.2"; + }; + telephone_number = { + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0231010c9rq0sp2iss6m9lrycpwrapl2hdg1fjg9d0jg5m1ly66v"; + type = "gem"; + }; + version = "1.4.12"; + }; + term-ansicolor = { + dependencies = [ "tins" ]; + groups = [ "default" "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1xq5kci9215skdh27npyd3y55p812v4qb4x2hv3xsjvwqzz9ycwj"; + type = "gem"; + }; + version = "1.7.1"; + }; + test-unit = { + dependencies = [ "power_assert" ]; + groups = [ "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "03pn837vgza8v550ggzhcxbvb80d6qivqnhv3n39lrfnsc8xgi7m"; + type = "gem"; + }; + version = "3.4.7"; + }; + thor = { + groups = [ "assets" "default" "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "18yhlvmfya23cs3pvhr1qy38y41b6mhr5q9vwv5lrgk16wmf3jna"; + type = "gem"; + }; + version = "1.1.0"; + }; + thread_safe = { + groups = [ "assets" "default" "development" "nulldb" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0nmhcgq6cgz44srylra07bmaw99f5271l0dpsvl5f75m44l0gmwy"; + type = "gem"; + }; + version = "0.3.6"; + }; + tilt = { + groups = [ "assets" "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0rn8z8hda4h41a64l0zhkiwz2vxw9b1nb70gl37h1dg2k874yrlv"; + type = "gem"; + }; + version = "2.0.10"; + }; + timers = { + groups = [ "default" "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "00xdi97gm01alfqhjgvv5sff9n1n2l6aym69s9jh8l9clg63b0jc"; + type = "gem"; + }; + version = "4.3.3"; + }; + tins = { + dependencies = [ "sync" ]; + groups = [ "default" "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0nzp88y19rqlcizp1nw8m44fvfxs9g3bhjpscz44dwfawfrmr0cb"; + type = "gem"; + }; + version = "1.29.1"; + }; + twilio-ruby = { + dependencies = [ "faraday" "jwt" "nokogiri" ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "07g0jrd5qxzgrv10pgyxajahvmfnqx26i8kp0sxmn2in2xj6fb6c"; + type = "gem"; + }; + version = "5.58.3"; + }; + twitter = { + dependencies = [ "addressable" "buftok" "equalizer" "http" "http-form_data" "http_parser.rb" "memoizable" "multipart-post" "naught" "simple_oauth" ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "13dmkjgsnym1avym9f7y2i2h3mlk8crqvc87drrzr4f0sf9l8g2y"; + type = "gem"; + }; + version = "7.0.0"; + }; + tzinfo = { + dependencies = [ "thread_safe" ]; + groups = [ "assets" "default" "development" "nulldb" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0zwqqh6138s8b321fwvfbywxy00lw1azw4ql3zr0xh1aqxf8cnvj"; + type = "gem"; + }; + version = "1.2.9"; + }; + uglifier = { + dependencies = [ "execjs" ]; + groups = [ "assets" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0wgh7bzy68vhv9v68061519dd8samcy8sazzz0w3k8kqpy3g4s5f"; + type = "gem"; + }; + version = "4.2.0"; + }; + unf = { + dependencies = [ "unf_ext" ]; + groups = [ "default" "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0bh2cf73i2ffh4fcpdn9ir4mhq8zi50ik0zqa1braahzadx536a9"; + type = "gem"; + }; + version = "0.1.4"; + }; + unf_ext = { + groups = [ "default" "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0wc47r23h063l8ysws8sy24gzh74mks81cak3lkzlrw4qkqb3sg4"; + type = "gem"; + }; + version = "0.0.7.7"; + }; + unicode-display_width = { + groups = [ "default" "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0csjm9shhfik0ci9mgimb7hf3xgh7nx45rkd9rzgdz6vkwr8rzxn"; + type = "gem"; + }; + version = "2.1.0"; + }; + unicorn = { + dependencies = [ "kgio" "raindrops" ]; + groups = [ "unicorn" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1jcm85d7j7njfgims712svlgml32zjim6qwabm99645aj5laayln"; + type = "gem"; + }; + version = "6.0.0"; + }; + valid_email2 = { + dependencies = [ "activemodel" "mail" ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0l4xkwvx7aj5z18h6vzp0wsfjbcrl76ixp0x95wwlrhn03qab6hs"; + type = "gem"; + }; + version = "4.0.0"; + }; + vcr = { + groups = [ "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1j9j257wjkjbh8slx6gjgcwch8x4f7pk53iaq2w71z35rm1a0a3a"; + type = "gem"; + }; + version = "6.0.0"; + }; + viewpoint = { + dependencies = [ "httpclient" "logging" "nokogiri" "rubyntlm" ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "14bvihfs0gzmam680xqqs07isxjk677yi3ph2pdvyyhhkbfys0l0"; + type = "gem"; + }; + version = "1.1.1"; + }; + webmock = { + dependencies = [ "addressable" "crack" "hashdiff" ]; + groups = [ "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1l8vh8p0g92cqcvv0ra3mblsa4nczh0rz8nbwbkc3g3yzbva85xk"; + type = "gem"; + }; + version = "3.14.0"; + }; + websocket-driver = { + dependencies = [ "websocket-extensions" ]; + groups = [ "default" "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0a3bwxd9v3ghrxzjc4vxmf4xa18c6m4xqy5wb0yk5c6b9psc7052"; + type = "gem"; + }; + version = "0.7.5"; + }; + websocket-extensions = { + groups = [ "default" "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0hc2g9qps8lmhibl5baa91b4qx8wqw872rgwagml78ydj8qacsqw"; + type = "gem"; + }; + version = "0.1.5"; + }; + writeexcel = { + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0waaf1drp17m5qdchxqlqzj51sfa9hxqccw7d71qdg73gzay1x34"; + type = "gem"; + }; + version = "1.0.5"; + }; + xpath = { + dependencies = [ "nokogiri" ]; + groups = [ "default" "development" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0bh8lk9hvlpn7vmi6h4hkcwjzvs2y0cmkk3yjjdr8fxvj6fsgzbd"; + type = "gem"; + }; + version = "3.2.0"; + }; + zeitwerk = { + groups = [ "assets" "default" "development" "nulldb" "test" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1746czsjarixq0x05f7p3hpzi38ldg6wxnxxw74kbjzh1sdjgmpl"; + type = "gem"; + }; + version = "2.4.2"; + }; + zendesk_api = { + dependencies = [ "faraday" "hashie" "inflection" "mini_mime" "multipart-post" ]; + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "1j50s7cw52hrjnd9v3lbfk76d44vx3sq4af7alz9hiy90gnxnd9z"; + type = "gem"; + }; + version = "1.33.0"; + }; +} diff --git a/pkgs/applications/networking/misc/zammad/package.json b/pkgs/applications/networking/misc/zammad/package.json new file mode 100644 index 000000000000..ed5407ada93e --- /dev/null +++ b/pkgs/applications/networking/misc/zammad/package.json @@ -0,0 +1,14 @@ +{ + "name": "Zammad", + "version": "1.0.0", + "devDependencies": { + "gulp": "^3.8.11", + "gulp-cheerio": "^0.6.2", + "gulp-rename": "^1.2.2", + "gulp-svgmin": "^1.1.2", + "gulp-svgstore": "^5.0.1", + "gulp-util": "^3.0.4", + "gulp-watch": "^4.2.4", + "through2": "^0.6.5" + } +} diff --git a/pkgs/applications/networking/misc/zammad/source.json b/pkgs/applications/networking/misc/zammad/source.json new file mode 100644 index 000000000000..0142e8d6fce5 --- /dev/null +++ b/pkgs/applications/networking/misc/zammad/source.json @@ -0,0 +1,7 @@ +{ + "owner": "zammad", + "repo": "zammad", + "rev": "ad12ad4e01f5e6d1d58da019107b66e562ae463c", + "sha256": "i50A0/dBsdvv7L/fZiA1LvJEcO3OghjjgwS/7oFjk2o=", + "fetchSubmodules": true +} diff --git a/pkgs/applications/networking/misc/zammad/update.nix b/pkgs/applications/networking/misc/zammad/update.nix new file mode 100644 index 000000000000..216feb3e3706 --- /dev/null +++ b/pkgs/applications/networking/misc/zammad/update.nix @@ -0,0 +1,35 @@ +{ stdenv +, lib +, makeWrapper +, bundix +, common-updater-scripts +, nix-prefetch-github +, yarn +, yarn2nix +}: + +stdenv.mkDerivation rec { + name = "zammad-update-script"; + installPhase = '' + mkdir -p $out/bin + cp ${./update.sh} $out/bin/update.sh + patchShebangs $out/bin/update.sh + wrapProgram $out/bin/update.sh --prefix PATH : ${lib.makeBinPath buildInputs} + ''; + phases = [ "installPhase" ]; + + nativeBuildInputs = [ makeWrapper ]; + buildInputs = [ + bundix + common-updater-scripts + nix-prefetch-github + yarn + yarn2nix + ]; + + meta = { + maintainers = with lib.maintainers; [ n0emis ]; + description = "Utility to generate Nix expressions for Zammad's dependencies"; + platforms = lib.platforms.unix; + }; +} diff --git a/pkgs/applications/networking/misc/zammad/update.sh b/pkgs/applications/networking/misc/zammad/update.sh new file mode 100755 index 000000000000..f1ddf27ac618 --- /dev/null +++ b/pkgs/applications/networking/misc/zammad/update.sh @@ -0,0 +1,68 @@ +#!/usr/bin/env bash + +set -euo pipefail + +if [ "$#" -gt 2 ] || [[ "$1" == -* ]]; then + echo "Regenerates packaging data for the zammad packages." + echo "Usage: $0 [package name] [zammad directory in nixpkgs]" + exit 1 +fi + +VERSION=$(curl -s https://ftp.zammad.com/ | grep -v latest | grep tar.gz | sed "s/zammad-//" | sort -h | tail -n 1 | awk '{print $1}' | sed 's/.tar.gz<\/a>//') +TARGET_DIR="$2" +WORK_DIR=$(mktemp -d) +SOURCE_DIR=$WORK_DIR/zammad-$VERSION + +pushd $TARGET_DIR + +rm -rf \ + ./source.json \ + ./gemset.nix \ + ./yarn.lock \ + ./yarn.nix + + +# Check that working directory was created. +if [[ ! "$WORK_DIR" || ! -d "$WORK_DIR" ]]; then + echo "Could not create temporary directory." + exit 1 +fi + +# Delete the working directory on exit. +function cleanup { + rm -rf "$WORK_DIR" +} +trap cleanup EXIT + + +pushd $WORK_DIR + +echo ":: Creating source.json" +nix-prefetch-github zammad zammad --rev $VERSION --json > $TARGET_DIR/source.json +echo >> $TARGET_DIR/source.json + +echo ":: Fetching source" +curl -L https://github.com/zammad/zammad/archive/$VERSION.tar.gz --output source.tar.gz +tar zxf source.tar.gz + +if [[ ! "$SOURCE_DIR" || ! -d "$SOURCE_DIR" ]]; then + echo "Source directory does not exists." + exit 1 +fi + +pushd $SOURCE_DIR + +echo ":: Creating gemset.nix" +bundix --lockfile=./Gemfile.lock --gemfile=./Gemfile --gemset=$TARGET_DIR/gemset.nix + +echo ":: Creating yarn.nix" +yarn install +cp yarn.lock $TARGET_DIR +yarn2nix > $TARGET_DIR/yarn.nix + +# needed to avoid import from derivation +cp package.json $TARGET_DIR + +popd +popd +popd diff --git a/pkgs/applications/networking/misc/zammad/yarn.lock b/pkgs/applications/networking/misc/zammad/yarn.lock new file mode 100644 index 000000000000..8f512464386c --- /dev/null +++ b/pkgs/applications/networking/misc/zammad/yarn.lock @@ -0,0 +1,2347 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +ansi-cyan@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/ansi-cyan/-/ansi-cyan-0.1.1.tgz#538ae528af8982f28ae30d86f2f17456d2609873" + integrity sha1-U4rlKK+JgvKK4w2G8vF0VtJgmHM= + dependencies: + ansi-wrap "0.1.0" + +ansi-gray@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/ansi-gray/-/ansi-gray-0.1.1.tgz#2962cf54ec9792c48510a3deb524436861ef7251" + integrity sha1-KWLPVOyXksSFEKPetSRDaGHvclE= + dependencies: + ansi-wrap "0.1.0" + +ansi-red@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/ansi-red/-/ansi-red-0.1.1.tgz#8c638f9d1080800a353c9c28c8a81ca4705d946c" + integrity sha1-jGOPnRCAgAo1PJwoyKgcpHBdlGw= + dependencies: + ansi-wrap "0.1.0" + +ansi-regex@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= + +ansi-styles@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" + integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= + +ansi-wrap@0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/ansi-wrap/-/ansi-wrap-0.1.0.tgz#a82250ddb0015e9a27ca82e82ea603bbfa45efaf" + integrity sha1-qCJQ3bABXponyoLoLqYDu/pF768= + +anymatch@^1.3.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.2.tgz#553dcb8f91e3c889845dfdba34c77721b90b9d7a" + integrity sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA== + dependencies: + micromatch "^2.1.5" + normalize-path "^2.0.0" + +archy@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40" + integrity sha1-+cjBN1fMHde8N5rHeyxipcKGjEA= + +argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== + dependencies: + sprintf-js "~1.0.2" + +arr-diff@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-1.1.0.tgz#687c32758163588fef7de7b36fabe495eb1a399a" + integrity sha1-aHwydYFjWI/vfeezb6vklesaOZo= + dependencies: + arr-flatten "^1.0.1" + array-slice "^0.2.3" + +arr-diff@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" + integrity sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8= + dependencies: + arr-flatten "^1.0.1" + +arr-diff@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" + integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= + +arr-flatten@^1.0.1, arr-flatten@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" + integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== + +arr-union@^2.0.1: + version "2.1.0" + resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-2.1.0.tgz#20f9eab5ec70f5c7d215b1077b1c39161d292c7d" + integrity sha1-IPnqtexw9cfSFbEHexw5Fh0pLH0= + +arr-union@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" + integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= + +array-differ@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-1.0.0.tgz#eff52e3758249d33be402b8bb8e564bb2b5d4031" + integrity sha1-7/UuN1gknTO+QCuLuOVkuytdQDE= + +array-each@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/array-each/-/array-each-1.0.1.tgz#a794af0c05ab1752846ee753a1f211a05ba0c44f" + integrity sha1-p5SvDAWrF1KEbudTofIRoFugxE8= + +array-slice@^0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/array-slice/-/array-slice-0.2.3.tgz#dd3cfb80ed7973a75117cdac69b0b99ec86186f5" + integrity sha1-3Tz7gO15c6dRF82sabC5nshhhvU= + +array-slice@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/array-slice/-/array-slice-1.1.0.tgz#e368ea15f89bc7069f7ffb89aec3a6c7d4ac22d4" + integrity sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w== + +array-uniq@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" + integrity sha1-r2rId6Jcx/dOBYiUdThY39sk/bY= + +array-unique@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" + integrity sha1-odl8yvy8JiXMcPrc6zalDFiwGlM= + +array-unique@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" + integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= + +assign-symbols@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" + integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= + +async-each@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" + integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== + +atob@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" + integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +base@^0.11.1: + version "0.11.2" + resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" + integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== + dependencies: + cache-base "^1.0.1" + class-utils "^0.3.5" + component-emitter "^1.2.1" + define-property "^1.0.0" + isobject "^3.0.1" + mixin-deep "^1.2.0" + pascalcase "^0.1.1" + +beeper@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/beeper/-/beeper-1.1.1.tgz#e6d5ea8c5dad001304a70b22638447f69cb2f809" + integrity sha1-5tXqjF2tABMEpwsiY4RH9pyy+Ak= + +binary-extensions@^1.0.0: + version "1.13.1" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" + integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== + +bindings@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" + integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== + dependencies: + file-uri-to-path "1.0.0" + +boolbase@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" + integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= + +brace-expansion@^1.0.0: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +braces@^1.8.2: + version "1.8.5" + resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" + integrity sha1-uneWLhLf+WnWt2cR6RS3N4V79qc= + dependencies: + expand-range "^1.8.1" + preserve "^0.2.0" + repeat-element "^1.1.2" + +braces@^2.3.1: + version "2.3.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" + integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== + dependencies: + arr-flatten "^1.1.0" + array-unique "^0.3.2" + extend-shallow "^2.0.1" + fill-range "^4.0.0" + isobject "^3.0.1" + repeat-element "^1.1.2" + snapdragon "^0.8.1" + snapdragon-node "^2.0.1" + split-string "^3.0.2" + to-regex "^3.0.1" + +cache-base@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" + integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== + dependencies: + collection-visit "^1.0.0" + component-emitter "^1.2.1" + get-value "^2.0.6" + has-value "^1.0.0" + isobject "^3.0.1" + set-value "^2.0.0" + to-object-path "^0.3.0" + union-value "^1.0.0" + unset-value "^1.0.0" + +chalk@^1.0.0, chalk@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" + integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= + dependencies: + ansi-styles "^2.2.1" + escape-string-regexp "^1.0.2" + has-ansi "^2.0.0" + strip-ansi "^3.0.0" + supports-color "^2.0.0" + +cheerio@0.*: + version "0.22.0" + resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-0.22.0.tgz#a9baa860a3f9b595a6b81b1a86873121ed3a269e" + integrity sha1-qbqoYKP5tZWmuBsahocxIe06Jp4= + dependencies: + css-select "~1.2.0" + dom-serializer "~0.1.0" + entities "~1.1.1" + htmlparser2 "^3.9.1" + lodash.assignin "^4.0.9" + lodash.bind "^4.1.4" + lodash.defaults "^4.0.1" + lodash.filter "^4.4.0" + lodash.flatten "^4.2.0" + lodash.foreach "^4.3.0" + lodash.map "^4.4.0" + lodash.merge "^4.4.0" + lodash.pick "^4.2.1" + lodash.reduce "^4.4.0" + lodash.reject "^4.4.0" + lodash.some "^4.4.0" + +chokidar@^1.6.1: + version "1.7.0" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468" + integrity sha1-eY5ol3gVHIB2tLNg5e3SjNortGg= + dependencies: + anymatch "^1.3.0" + async-each "^1.0.0" + glob-parent "^2.0.0" + inherits "^2.0.1" + is-binary-path "^1.0.0" + is-glob "^2.0.0" + path-is-absolute "^1.0.0" + readdirp "^2.0.0" + optionalDependencies: + fsevents "^1.0.0" + +clap@^1.0.9: + version "1.2.3" + resolved "https://registry.yarnpkg.com/clap/-/clap-1.2.3.tgz#4f36745b32008492557f46412d66d50cb99bce51" + integrity sha512-4CoL/A3hf90V3VIEjeuhSvlGFEHKzOz+Wfc2IVZc+FaUgU0ZQafJTP49fvnULipOPcAfqhyI2duwQyns6xqjYA== + dependencies: + chalk "^1.1.3" + +class-utils@^0.3.5: + version "0.3.6" + resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" + integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== + dependencies: + arr-union "^3.1.0" + define-property "^0.2.5" + isobject "^3.0.0" + static-extend "^0.1.1" + +clone-stats@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/clone-stats/-/clone-stats-0.0.1.tgz#b88f94a82cf38b8791d58046ea4029ad88ca99d1" + integrity sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE= + +clone@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/clone/-/clone-0.2.0.tgz#c6126a90ad4f72dbf5acdb243cc37724fe93fc1f" + integrity sha1-xhJqkK1Pctv1rNskPMN3JP6T/B8= + +clone@^1.0.0, clone@^1.0.2: + version "1.0.4" + resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" + integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4= + +coa@~1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/coa/-/coa-1.0.4.tgz#a9ef153660d6a86a8bdec0289a5c684d217432fd" + integrity sha1-qe8VNmDWqGqL3sAomlxoTSF0Mv0= + dependencies: + q "^1.1.2" + +collection-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" + integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= + dependencies: + map-visit "^1.0.0" + object-visit "^1.0.0" + +color-support@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2" + integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== + +colors@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63" + integrity sha1-FopHAXVran9RoSzgyXv6KMCE7WM= + +component-emitter@^1.2.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" + integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= + +copy-descriptor@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" + integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= + +core-util-is@~1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" + integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== + +css-select@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-1.2.0.tgz#2b3a110539c5355f1cd8d314623e870b121ec858" + integrity sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg= + dependencies: + boolbase "~1.0.0" + css-what "2.1" + domutils "1.5.1" + nth-check "~1.0.1" + +css-what@2.1: + version "2.1.3" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.3.tgz#a6d7604573365fe74686c3f311c56513d88285f2" + integrity sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg== + +csso@~2.3.1: + version "2.3.2" + resolved "https://registry.yarnpkg.com/csso/-/csso-2.3.2.tgz#ddd52c587033f49e94b71fc55569f252e8ff5f85" + integrity sha1-3dUsWHAz9J6Utx/FVWnyUuj/X4U= + dependencies: + clap "^1.0.9" + source-map "^0.5.3" + +dateformat@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-2.2.0.tgz#4065e2013cf9fb916ddfd82efb506ad4c6769062" + integrity sha1-QGXiATz5+5Ft39gu+1Bq1MZ2kGI= + +debug@^2.2.0, debug@^2.3.3: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +decode-uri-component@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" + integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= + +defaults@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d" + integrity sha1-xlYFHpgX2f8I7YgUd/P+QBnz730= + dependencies: + clone "^1.0.2" + +define-property@^0.2.5: + version "0.2.5" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" + integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= + dependencies: + is-descriptor "^0.1.0" + +define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" + integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY= + dependencies: + is-descriptor "^1.0.0" + +define-property@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" + integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== + dependencies: + is-descriptor "^1.0.2" + isobject "^3.0.1" + +deprecated@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/deprecated/-/deprecated-0.0.1.tgz#f9c9af5464afa1e7a971458a8bdef2aa94d5bb19" + integrity sha1-+cmvVGSvoeepcUWKi97yqpTVuxk= + +detect-file@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7" + integrity sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc= + +dom-serializer@0: + version "0.2.2" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51" + integrity sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g== + dependencies: + domelementtype "^2.0.1" + entities "^2.0.0" + +dom-serializer@~0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.1.tgz#1ec4059e284babed36eec2941d4a970a189ce7c0" + integrity sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA== + dependencies: + domelementtype "^1.3.0" + entities "^1.1.1" + +domelementtype@1, domelementtype@^1.3.0, domelementtype@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" + integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== + +domelementtype@^2.0.1: + version "2.2.0" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.2.0.tgz#9a0b6c2782ed6a1c7323d42267183df9bd8b1d57" + integrity sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A== + +domhandler@^2.3.0: + version "2.4.2" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.2.tgz#8805097e933d65e85546f726d60f5eb88b44f803" + integrity sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA== + dependencies: + domelementtype "1" + +domutils@1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf" + integrity sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8= + dependencies: + dom-serializer "0" + domelementtype "1" + +domutils@^1.5.1: + version "1.7.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" + integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg== + dependencies: + dom-serializer "0" + domelementtype "1" + +duplexer2@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.0.2.tgz#c614dcf67e2fb14995a91711e5a617e8a60a31db" + integrity sha1-xhTc9n4vsUmVqRcR5aYX6KYKMds= + dependencies: + readable-stream "~1.1.9" + +end-of-stream@~0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-0.1.5.tgz#8e177206c3c80837d85632e8b9359dfe8b2f6eaf" + integrity sha1-jhdyBsPICDfYVjLouTWd/osvbq8= + dependencies: + once "~1.3.0" + +entities@^1.1.1, entities@~1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56" + integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w== + +entities@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" + integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== + +escape-string-regexp@^1.0.2: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= + +esprima@^2.6.0: + version "2.7.3" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581" + integrity sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE= + +expand-brackets@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" + integrity sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s= + dependencies: + is-posix-bracket "^0.1.0" + +expand-brackets@^2.1.4: + version "2.1.4" + resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" + integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI= + dependencies: + debug "^2.3.3" + define-property "^0.2.5" + extend-shallow "^2.0.1" + posix-character-classes "^0.1.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +expand-range@^1.8.1: + version "1.8.2" + resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" + integrity sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc= + dependencies: + fill-range "^2.1.0" + +expand-tilde@^2.0.0, expand-tilde@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-2.0.2.tgz#97e801aa052df02454de46b02bf621642cdc8502" + integrity sha1-l+gBqgUt8CRU3kawK/YhZCzchQI= + dependencies: + homedir-polyfill "^1.0.1" + +extend-shallow@^1.1.2: + version "1.1.4" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-1.1.4.tgz#19d6bf94dfc09d76ba711f39b872d21ff4dd9071" + integrity sha1-Gda/lN/AnXa6cR85uHLSH/TdkHE= + dependencies: + kind-of "^1.1.0" + +extend-shallow@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" + integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= + dependencies: + is-extendable "^0.1.0" + +extend-shallow@^3.0.0, extend-shallow@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" + integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= + dependencies: + assign-symbols "^1.0.0" + is-extendable "^1.0.1" + +extend@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== + +extglob@^0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" + integrity sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE= + dependencies: + is-extglob "^1.0.0" + +extglob@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" + integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== + dependencies: + array-unique "^0.3.2" + define-property "^1.0.0" + expand-brackets "^2.1.4" + extend-shallow "^2.0.1" + fragment-cache "^0.2.1" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +fancy-log@^1.1.0: + version "1.3.3" + resolved "https://registry.yarnpkg.com/fancy-log/-/fancy-log-1.3.3.tgz#dbc19154f558690150a23953a0adbd035be45fc7" + integrity sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw== + dependencies: + ansi-gray "^0.1.1" + color-support "^1.1.3" + parse-node-version "^1.0.0" + time-stamp "^1.0.0" + +file-uri-to-path@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" + integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== + +filename-regex@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" + integrity sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY= + +fill-range@^2.1.0: + version "2.2.4" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.4.tgz#eb1e773abb056dcd8df2bfdf6af59b8b3a936565" + integrity sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q== + dependencies: + is-number "^2.1.0" + isobject "^2.0.0" + randomatic "^3.0.0" + repeat-element "^1.1.2" + repeat-string "^1.5.2" + +fill-range@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" + integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= + dependencies: + extend-shallow "^2.0.1" + is-number "^3.0.0" + repeat-string "^1.6.1" + to-regex-range "^2.1.0" + +find-index@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/find-index/-/find-index-0.1.1.tgz#675d358b2ca3892d795a1ab47232f8b6e2e0dde4" + integrity sha1-Z101iyyjiS15Whq0cjL4tuLg3eQ= + +findup-sync@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-2.0.0.tgz#9326b1488c22d1a6088650a86901b2d9a90a2cbc" + integrity sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw= + dependencies: + detect-file "^1.0.0" + is-glob "^3.1.0" + micromatch "^3.0.4" + resolve-dir "^1.0.1" + +fined@^1.0.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/fined/-/fined-1.2.0.tgz#d00beccf1aa2b475d16d423b0238b713a2c4a37b" + integrity sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng== + dependencies: + expand-tilde "^2.0.2" + is-plain-object "^2.0.3" + object.defaults "^1.1.0" + object.pick "^1.2.0" + parse-filepath "^1.0.1" + +first-chunk-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz#59bfb50cd905f60d7c394cd3d9acaab4e6ad934e" + integrity sha1-Wb+1DNkF9g18OUzT2ayqtOatk04= + +first-chunk-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/first-chunk-stream/-/first-chunk-stream-2.0.0.tgz#1bdecdb8e083c0664b91945581577a43a9f31d70" + integrity sha1-G97NuOCDwGZLkZRVgVd6Q6nzHXA= + dependencies: + readable-stream "^2.0.2" + +flagged-respawn@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/flagged-respawn/-/flagged-respawn-1.0.1.tgz#e7de6f1279ddd9ca9aac8a5971d618606b3aab41" + integrity sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q== + +for-in@^1.0.1, for-in@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" + integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= + +for-own@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce" + integrity sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4= + dependencies: + for-in "^1.0.1" + +for-own@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/for-own/-/for-own-1.0.0.tgz#c63332f415cedc4b04dbfe70cf836494c53cb44b" + integrity sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs= + dependencies: + for-in "^1.0.1" + +fragment-cache@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" + integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= + dependencies: + map-cache "^0.2.2" + +fsevents@^1.0.0: + version "1.2.13" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.13.tgz#f325cb0455592428bcf11b383370ef70e3bfcc38" + integrity sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw== + dependencies: + bindings "^1.5.0" + nan "^2.12.1" + +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + +gaze@^0.5.1: + version "0.5.2" + resolved "https://registry.yarnpkg.com/gaze/-/gaze-0.5.2.tgz#40b709537d24d1d45767db5a908689dfe69ac44f" + integrity sha1-QLcJU30k0dRXZ9takIaJ3+aaxE8= + dependencies: + globule "~0.1.0" + +get-value@^2.0.3, get-value@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" + integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= + +glob-base@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" + integrity sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q= + dependencies: + glob-parent "^2.0.0" + is-glob "^2.0.0" + +glob-parent@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" + integrity sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg= + dependencies: + is-glob "^2.0.0" + +glob-parent@^3.0.1: + version "3.1.0" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" + integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= + dependencies: + is-glob "^3.1.0" + path-dirname "^1.0.0" + +glob-stream@^3.1.5: + version "3.1.18" + resolved "https://registry.yarnpkg.com/glob-stream/-/glob-stream-3.1.18.tgz#9170a5f12b790306fdfe598f313f8f7954fd143b" + integrity sha1-kXCl8St5Awb9/lmPMT+PeVT9FDs= + dependencies: + glob "^4.3.1" + glob2base "^0.0.12" + minimatch "^2.0.1" + ordered-read-streams "^0.1.0" + through2 "^0.6.1" + unique-stream "^1.0.0" + +glob-watcher@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/glob-watcher/-/glob-watcher-0.0.6.tgz#b95b4a8df74b39c83298b0c05c978b4d9a3b710b" + integrity sha1-uVtKjfdLOcgymLDAXJeLTZo7cQs= + dependencies: + gaze "^0.5.1" + +glob2base@^0.0.12: + version "0.0.12" + resolved "https://registry.yarnpkg.com/glob2base/-/glob2base-0.0.12.tgz#9d419b3e28f12e83a362164a277055922c9c0d56" + integrity sha1-nUGbPijxLoOjYhZKJ3BVkiycDVY= + dependencies: + find-index "^0.1.1" + +glob@^4.3.1: + version "4.5.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-4.5.3.tgz#c6cb73d3226c1efef04de3c56d012f03377ee15f" + integrity sha1-xstz0yJsHv7wTePFbQEvAzd+4V8= + dependencies: + inflight "^1.0.4" + inherits "2" + minimatch "^2.0.1" + once "^1.3.0" + +glob@~3.1.21: + version "3.1.21" + resolved "https://registry.yarnpkg.com/glob/-/glob-3.1.21.tgz#d29e0a055dea5138f4d07ed40e8982e83c2066cd" + integrity sha1-0p4KBV3qUTj00H7UDomC6DwgZs0= + dependencies: + graceful-fs "~1.2.0" + inherits "1" + minimatch "~0.2.11" + +global-modules@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-1.0.0.tgz#6d770f0eb523ac78164d72b5e71a8877265cc3ea" + integrity sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg== + dependencies: + global-prefix "^1.0.1" + is-windows "^1.0.1" + resolve-dir "^1.0.0" + +global-prefix@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-1.0.2.tgz#dbf743c6c14992593c655568cb66ed32c0122ebe" + integrity sha1-2/dDxsFJklk8ZVVoy2btMsASLr4= + dependencies: + expand-tilde "^2.0.2" + homedir-polyfill "^1.0.1" + ini "^1.3.4" + is-windows "^1.0.1" + which "^1.2.14" + +globule@~0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/globule/-/globule-0.1.0.tgz#d9c8edde1da79d125a151b79533b978676346ae5" + integrity sha1-2cjt3h2nnRJaFRt5UzuXhnY0auU= + dependencies: + glob "~3.1.21" + lodash "~1.0.1" + minimatch "~0.2.11" + +glogg@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/glogg/-/glogg-1.0.2.tgz#2d7dd702beda22eb3bffadf880696da6d846313f" + integrity sha512-5mwUoSuBk44Y4EshyiqcH95ZntbDdTQqA3QYSrxmzj28Ai0vXBGMH1ApSANH14j2sIRtqCEyg6PfsuP7ElOEDA== + dependencies: + sparkles "^1.0.0" + +graceful-fs@^3.0.0: + version "3.0.12" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-3.0.12.tgz#0034947ce9ed695ec8ab0b854bc919e82b1ffaef" + integrity sha512-J55gaCS4iTTJfTXIxSVw3EMQckcqkpdRv3IR7gu6sq0+tbC363Zx6KH/SEwXASK9JRbhyZmVjJEVJIOxYsB3Qg== + dependencies: + natives "^1.1.3" + +graceful-fs@^4.1.11, graceful-fs@^4.1.2: + version "4.2.8" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.8.tgz#e412b8d33f5e006593cbd3cee6df9f2cebbe802a" + integrity sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg== + +graceful-fs@~1.2.0: + version "1.2.3" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-1.2.3.tgz#15a4806a57547cb2d2dbf27f42e89a8c3451b364" + integrity sha1-FaSAaldUfLLS2/J/QuiajDRRs2Q= + +gulp-cheerio@^0.6.2: + version "0.6.3" + resolved "https://registry.yarnpkg.com/gulp-cheerio/-/gulp-cheerio-0.6.3.tgz#40271c1703368c88408ab8750ba9bf3e1aea9c68" + integrity sha512-ZuRAq48qT9u2E8QUz1pHQZOq9500tQojOfGXzAER91CGYf8a3U5+fHuLWk5wvJ0iwrriaApg5Honvt3r5XMcNg== + dependencies: + cheerio "0.*" + plugin-error "^0.1.2" + through2 "^0.6.3" + +gulp-rename@^1.2.2: + version "1.4.0" + resolved "https://registry.yarnpkg.com/gulp-rename/-/gulp-rename-1.4.0.tgz#de1c718e7c4095ae861f7296ef4f3248648240bd" + integrity sha512-swzbIGb/arEoFK89tPY58vg3Ok1bw+d35PfUNwWqdo7KM4jkmuGA78JiDNqR+JeZFaeeHnRg9N7aihX3YPmsyg== + +gulp-svgmin@^1.1.2: + version "1.2.4" + resolved "https://registry.yarnpkg.com/gulp-svgmin/-/gulp-svgmin-1.2.4.tgz#a4aa9e2615cf1105ef555aea86e86296cc20e273" + integrity sha1-pKqeJhXPEQXvVVrqhuhilswg4nM= + dependencies: + gulp-util "^3.0.4" + svgo "^0.7.0" + +gulp-svgstore@^5.0.1: + version "5.0.5" + resolved "https://registry.yarnpkg.com/gulp-svgstore/-/gulp-svgstore-5.0.5.tgz#4ad5cec5d753a1624a00e49cef5fc86a45d97327" + integrity sha1-StXOxddToWJKAOSc71/IakXZcyc= + dependencies: + cheerio "0.*" + gulp-util "^3.0.0" + +gulp-util@^3.0.0, gulp-util@^3.0.4, gulp-util@^3.0.7: + version "3.0.8" + resolved "https://registry.yarnpkg.com/gulp-util/-/gulp-util-3.0.8.tgz#0054e1e744502e27c04c187c3ecc505dd54bbb4f" + integrity sha1-AFTh50RQLifATBh8PsxQXdVLu08= + dependencies: + array-differ "^1.0.0" + array-uniq "^1.0.2" + beeper "^1.0.0" + chalk "^1.0.0" + dateformat "^2.0.0" + fancy-log "^1.1.0" + gulplog "^1.0.0" + has-gulplog "^0.1.0" + lodash._reescape "^3.0.0" + lodash._reevaluate "^3.0.0" + lodash._reinterpolate "^3.0.0" + lodash.template "^3.0.0" + minimist "^1.1.0" + multipipe "^0.1.2" + object-assign "^3.0.0" + replace-ext "0.0.1" + through2 "^2.0.0" + vinyl "^0.5.0" + +gulp-watch@^4.2.4: + version "4.3.11" + resolved "https://registry.yarnpkg.com/gulp-watch/-/gulp-watch-4.3.11.tgz#162fc563de9fc770e91f9a7ce3955513a9a118c0" + integrity sha1-Fi/FY96fx3DpH5p845VVE6mhGMA= + dependencies: + anymatch "^1.3.0" + chokidar "^1.6.1" + glob-parent "^3.0.1" + gulp-util "^3.0.7" + object-assign "^4.1.0" + path-is-absolute "^1.0.1" + readable-stream "^2.2.2" + slash "^1.0.0" + vinyl "^1.2.0" + vinyl-file "^2.0.0" + +gulp@^3.8.11: + version "3.9.1" + resolved "https://registry.yarnpkg.com/gulp/-/gulp-3.9.1.tgz#571ce45928dd40af6514fc4011866016c13845b4" + integrity sha1-VxzkWSjdQK9lFPxAEYZgFsE4RbQ= + dependencies: + archy "^1.0.0" + chalk "^1.0.0" + deprecated "^0.0.1" + gulp-util "^3.0.0" + interpret "^1.0.0" + liftoff "^2.1.0" + minimist "^1.1.0" + orchestrator "^0.3.0" + pretty-hrtime "^1.0.0" + semver "^4.1.0" + tildify "^1.0.0" + v8flags "^2.0.2" + vinyl-fs "^0.3.0" + +gulplog@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/gulplog/-/gulplog-1.0.0.tgz#e28c4d45d05ecbbed818363ce8f9c5926229ffe5" + integrity sha1-4oxNRdBey77YGDY86PnFkmIp/+U= + dependencies: + glogg "^1.0.0" + +has-ansi@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" + integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE= + dependencies: + ansi-regex "^2.0.0" + +has-gulplog@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/has-gulplog/-/has-gulplog-0.1.0.tgz#6414c82913697da51590397dafb12f22967811ce" + integrity sha1-ZBTIKRNpfaUVkDl9r7EvIpZ4Ec4= + dependencies: + sparkles "^1.0.0" + +has-value@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" + integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= + dependencies: + get-value "^2.0.3" + has-values "^0.1.4" + isobject "^2.0.0" + +has-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" + integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= + dependencies: + get-value "^2.0.6" + has-values "^1.0.0" + isobject "^3.0.0" + +has-values@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" + integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= + +has-values@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" + integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= + dependencies: + is-number "^3.0.0" + kind-of "^4.0.0" + +has@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + dependencies: + function-bind "^1.1.1" + +homedir-polyfill@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz#743298cef4e5af3e194161fbadcc2151d3a058e8" + integrity sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA== + dependencies: + parse-passwd "^1.0.0" + +htmlparser2@^3.9.1: + version "3.10.1" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.10.1.tgz#bd679dc3f59897b6a34bb10749c855bb53a9392f" + integrity sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ== + dependencies: + domelementtype "^1.3.1" + domhandler "^2.3.0" + domutils "^1.5.1" + entities "^1.1.1" + inherits "^2.0.1" + readable-stream "^3.1.1" + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-1.0.2.tgz#ca4309dadee6b54cc0b8d247e8d7c7a0975bdc9b" + integrity sha1-ykMJ2t7mtUzAuNJH6NfHoJdb3Js= + +inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.1, inherits@~2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +ini@^1.3.4: + version "1.3.8" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" + integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== + +interpret@^1.0.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" + integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== + +is-absolute@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-absolute/-/is-absolute-1.0.0.tgz#395e1ae84b11f26ad1795e73c17378e48a301576" + integrity sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA== + dependencies: + is-relative "^1.0.0" + is-windows "^1.0.1" + +is-accessor-descriptor@^0.1.6: + version "0.1.6" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" + integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= + dependencies: + kind-of "^3.0.2" + +is-accessor-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" + integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== + dependencies: + kind-of "^6.0.0" + +is-binary-path@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" + integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg= + dependencies: + binary-extensions "^1.0.0" + +is-buffer@^1.1.5: + version "1.1.6" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" + integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== + +is-core-module@^2.2.0: + version "2.8.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.8.0.tgz#0321336c3d0925e497fd97f5d95cb114a5ccd548" + integrity sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw== + dependencies: + has "^1.0.3" + +is-data-descriptor@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" + integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= + dependencies: + kind-of "^3.0.2" + +is-data-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" + integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== + dependencies: + kind-of "^6.0.0" + +is-descriptor@^0.1.0: + version "0.1.6" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" + integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== + dependencies: + is-accessor-descriptor "^0.1.6" + is-data-descriptor "^0.1.4" + kind-of "^5.0.0" + +is-descriptor@^1.0.0, is-descriptor@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" + integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== + dependencies: + is-accessor-descriptor "^1.0.0" + is-data-descriptor "^1.0.0" + kind-of "^6.0.2" + +is-dotfile@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1" + integrity sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE= + +is-equal-shallow@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534" + integrity sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ= + dependencies: + is-primitive "^2.0.0" + +is-extendable@^0.1.0, is-extendable@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= + +is-extendable@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" + integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== + dependencies: + is-plain-object "^2.0.4" + +is-extglob@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" + integrity sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA= + +is-extglob@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= + +is-glob@^2.0.0, is-glob@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" + integrity sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM= + dependencies: + is-extglob "^1.0.0" + +is-glob@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" + integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= + dependencies: + is-extglob "^2.1.0" + +is-number@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" + integrity sha1-Afy7s5NGOlSPL0ZszhbezknbkI8= + dependencies: + kind-of "^3.0.2" + +is-number@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" + integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= + dependencies: + kind-of "^3.0.2" + +is-number@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-4.0.0.tgz#0026e37f5454d73e356dfe6564699867c6a7f0ff" + integrity sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ== + +is-plain-object@^2.0.3, is-plain-object@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" + integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== + dependencies: + isobject "^3.0.1" + +is-posix-bracket@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" + integrity sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q= + +is-primitive@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" + integrity sha1-IHurkWOEmcB7Kt8kCkGochADRXU= + +is-relative@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-relative/-/is-relative-1.0.0.tgz#a1bb6935ce8c5dba1e8b9754b9b2dcc020e2260d" + integrity sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA== + dependencies: + is-unc-path "^1.0.0" + +is-unc-path@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-unc-path/-/is-unc-path-1.0.0.tgz#d731e8898ed090a12c352ad2eaed5095ad322c9d" + integrity sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ== + dependencies: + unc-path-regex "^0.1.2" + +is-utf8@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" + integrity sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI= + +is-windows@^1.0.1, is-windows@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" + integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== + +isarray@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" + integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= + +isarray@1.0.0, isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= + +isobject@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" + integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= + dependencies: + isarray "1.0.0" + +isobject@^3.0.0, isobject@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" + integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= + +js-yaml@~3.7.0: + version "3.7.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.7.0.tgz#5c967ddd837a9bfdca5f2de84253abe8a1c03b80" + integrity sha1-XJZ93YN6m/3KXy3oQlOr6KHAO4A= + dependencies: + argparse "^1.0.7" + esprima "^2.6.0" + +kind-of@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-1.1.0.tgz#140a3d2d41a36d2efcfa9377b62c24f8495a5c44" + integrity sha1-FAo9LUGjbS78+pN3tiwk+ElaXEQ= + +kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: + version "3.2.2" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" + integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= + dependencies: + is-buffer "^1.1.5" + +kind-of@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" + integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= + dependencies: + is-buffer "^1.1.5" + +kind-of@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" + integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== + +kind-of@^6.0.0, kind-of@^6.0.2: + version "6.0.3" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" + integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== + +liftoff@^2.1.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/liftoff/-/liftoff-2.5.0.tgz#2009291bb31cea861bbf10a7c15a28caf75c31ec" + integrity sha1-IAkpG7Mc6oYbvxCnwVooyvdcMew= + dependencies: + extend "^3.0.0" + findup-sync "^2.0.0" + fined "^1.0.1" + flagged-respawn "^1.0.0" + is-plain-object "^2.0.4" + object.map "^1.0.0" + rechoir "^0.6.2" + resolve "^1.1.7" + +lodash._basecopy@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz#8da0e6a876cf344c0ad8a54882111dd3c5c7ca36" + integrity sha1-jaDmqHbPNEwK2KVIghEd08XHyjY= + +lodash._basetostring@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz#d1861d877f824a52f669832dcaf3ee15566a07d5" + integrity sha1-0YYdh3+CSlL2aYMtyvPuFVZqB9U= + +lodash._basevalues@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz#5b775762802bde3d3297503e26300820fdf661b7" + integrity sha1-W3dXYoAr3j0yl1A+JjAIIP32Ybc= + +lodash._getnative@^3.0.0: + version "3.9.1" + resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5" + integrity sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U= + +lodash._isiterateecall@^3.0.0: + version "3.0.9" + resolved "https://registry.yarnpkg.com/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz#5203ad7ba425fae842460e696db9cf3e6aac057c" + integrity sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw= + +lodash._reescape@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lodash._reescape/-/lodash._reescape-3.0.0.tgz#2b1d6f5dfe07c8a355753e5f27fac7f1cde1616a" + integrity sha1-Kx1vXf4HyKNVdT5fJ/rH8c3hYWo= + +lodash._reevaluate@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz#58bc74c40664953ae0b124d806996daca431e2ed" + integrity sha1-WLx0xAZklTrgsSTYBpltrKQx4u0= + +lodash._reinterpolate@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" + integrity sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0= + +lodash._root@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/lodash._root/-/lodash._root-3.0.1.tgz#fba1c4524c19ee9a5f8136b4609f017cf4ded692" + integrity sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI= + +lodash.assignin@^4.0.9: + version "4.2.0" + resolved "https://registry.yarnpkg.com/lodash.assignin/-/lodash.assignin-4.2.0.tgz#ba8df5fb841eb0a3e8044232b0e263a8dc6a28a2" + integrity sha1-uo31+4QesKPoBEIysOJjqNxqKKI= + +lodash.bind@^4.1.4: + version "4.2.1" + resolved "https://registry.yarnpkg.com/lodash.bind/-/lodash.bind-4.2.1.tgz#7ae3017e939622ac31b7d7d7dcb1b34db1690d35" + integrity sha1-euMBfpOWIqwxt9fX3LGzTbFpDTU= + +lodash.defaults@^4.0.1: + version "4.2.0" + resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c" + integrity sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw= + +lodash.escape@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/lodash.escape/-/lodash.escape-3.2.0.tgz#995ee0dc18c1b48cc92effae71a10aab5b487698" + integrity sha1-mV7g3BjBtIzJLv+ucaEKq1tIdpg= + dependencies: + lodash._root "^3.0.0" + +lodash.filter@^4.4.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.filter/-/lodash.filter-4.6.0.tgz#668b1d4981603ae1cc5a6fa760143e480b4c4ace" + integrity sha1-ZosdSYFgOuHMWm+nYBQ+SAtMSs4= + +lodash.flatten@^4.2.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f" + integrity sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8= + +lodash.foreach@^4.3.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.foreach/-/lodash.foreach-4.5.0.tgz#1a6a35eace401280c7f06dddec35165ab27e3e53" + integrity sha1-Gmo16s5AEoDH8G3d7DUWWrJ+PlM= + +lodash.isarguments@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a" + integrity sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo= + +lodash.isarray@^3.0.0: + version "3.0.4" + resolved "https://registry.yarnpkg.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55" + integrity sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U= + +lodash.keys@^3.0.0: + version "3.1.2" + resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-3.1.2.tgz#4dbc0472b156be50a0b286855d1bd0b0c656098a" + integrity sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo= + dependencies: + lodash._getnative "^3.0.0" + lodash.isarguments "^3.0.0" + lodash.isarray "^3.0.0" + +lodash.map@^4.4.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.map/-/lodash.map-4.6.0.tgz#771ec7839e3473d9c4cde28b19394c3562f4f6d3" + integrity sha1-dx7Hg540c9nEzeKLGTlMNWL09tM= + +lodash.merge@^4.4.0: + version "4.6.2" + resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" + integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== + +lodash.pick@^4.2.1: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3" + integrity sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM= + +lodash.reduce@^4.4.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.reduce/-/lodash.reduce-4.6.0.tgz#f1ab6b839299ad48f784abbf476596f03b914d3b" + integrity sha1-8atrg5KZrUj3hKu/R2WW8DuRTTs= + +lodash.reject@^4.4.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.reject/-/lodash.reject-4.6.0.tgz#80d6492dc1470864bbf583533b651f42a9f52415" + integrity sha1-gNZJLcFHCGS79YNTO2UfQqn1JBU= + +lodash.restparam@^3.0.0: + version "3.6.1" + resolved "https://registry.yarnpkg.com/lodash.restparam/-/lodash.restparam-3.6.1.tgz#936a4e309ef330a7645ed4145986c85ae5b20805" + integrity sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU= + +lodash.some@^4.4.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.some/-/lodash.some-4.6.0.tgz#1bb9f314ef6b8baded13b549169b2a945eb68e4d" + integrity sha1-G7nzFO9ri63tE7VJFpsqlF62jk0= + +lodash.template@^3.0.0: + version "3.6.2" + resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-3.6.2.tgz#f8cdecc6169a255be9098ae8b0c53d378931d14f" + integrity sha1-+M3sxhaaJVvpCYrosMU9N4kx0U8= + dependencies: + lodash._basecopy "^3.0.0" + lodash._basetostring "^3.0.0" + lodash._basevalues "^3.0.0" + lodash._isiterateecall "^3.0.0" + lodash._reinterpolate "^3.0.0" + lodash.escape "^3.0.0" + lodash.keys "^3.0.0" + lodash.restparam "^3.0.0" + lodash.templatesettings "^3.0.0" + +lodash.templatesettings@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz#fb307844753b66b9f1afa54e262c745307dba8e5" + integrity sha1-+zB4RHU7Zrnxr6VOJix0UwfbqOU= + dependencies: + lodash._reinterpolate "^3.0.0" + lodash.escape "^3.0.0" + +lodash@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-1.0.2.tgz#8f57560c83b59fc270bd3d561b690043430e2551" + integrity sha1-j1dWDIO1n8JwvT1WG2kAQ0MOJVE= + +lru-cache@2: + version "2.7.3" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-2.7.3.tgz#6d4524e8b955f95d4f5b58851ce21dd72fb4e952" + integrity sha1-bUUk6LlV+V1PW1iFHOId1y+06VI= + +make-iterator@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/make-iterator/-/make-iterator-1.0.1.tgz#29b33f312aa8f547c4a5e490f56afcec99133ad6" + integrity sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw== + dependencies: + kind-of "^6.0.2" + +map-cache@^0.2.0, map-cache@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" + integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= + +map-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" + integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= + dependencies: + object-visit "^1.0.0" + +math-random@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/math-random/-/math-random-1.0.4.tgz#5dd6943c938548267016d4e34f057583080c514c" + integrity sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A== + +micromatch@^2.1.5: + version "2.3.11" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" + integrity sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU= + dependencies: + arr-diff "^2.0.0" + array-unique "^0.2.1" + braces "^1.8.2" + expand-brackets "^0.1.4" + extglob "^0.3.1" + filename-regex "^2.0.0" + is-extglob "^1.0.0" + is-glob "^2.0.1" + kind-of "^3.0.2" + normalize-path "^2.0.1" + object.omit "^2.0.0" + parse-glob "^3.0.4" + regex-cache "^0.4.2" + +micromatch@^3.0.4, micromatch@^3.1.10: + version "3.1.10" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" + integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + braces "^2.3.1" + define-property "^2.0.2" + extend-shallow "^3.0.2" + extglob "^2.0.4" + fragment-cache "^0.2.1" + kind-of "^6.0.2" + nanomatch "^1.2.9" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.2" + +minimatch@^2.0.1: + version "2.0.10" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-2.0.10.tgz#8d087c39c6b38c001b97fca7ce6d0e1e80afbac7" + integrity sha1-jQh8OcazjAAbl/ynzm0OHoCvusc= + dependencies: + brace-expansion "^1.0.0" + +minimatch@~0.2.11: + version "0.2.14" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-0.2.14.tgz#c74e780574f63c6f9a090e90efbe6ef53a6a756a" + integrity sha1-x054BXT2PG+aCQ6Q775u9TpqdWo= + dependencies: + lru-cache "2" + sigmund "~1.0.0" + +minimist@^1.1.0, minimist@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" + integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== + +mixin-deep@^1.2.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" + integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== + dependencies: + for-in "^1.0.2" + is-extendable "^1.0.1" + +mkdirp@^0.5.0, mkdirp@~0.5.1: + version "0.5.5" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" + integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== + dependencies: + minimist "^1.2.5" + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= + +multipipe@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/multipipe/-/multipipe-0.1.2.tgz#2a8f2ddf70eed564dff2d57f1e1a137d9f05078b" + integrity sha1-Ko8t33Du1WTf8tV/HhoTfZ8FB4s= + dependencies: + duplexer2 "0.0.2" + +nan@^2.12.1: + version "2.15.0" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.15.0.tgz#3f34a473ff18e15c1b5626b62903b5ad6e665fee" + integrity sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ== + +nanomatch@^1.2.9: + version "1.2.13" + resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" + integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + define-property "^2.0.2" + extend-shallow "^3.0.2" + fragment-cache "^0.2.1" + is-windows "^1.0.2" + kind-of "^6.0.2" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +natives@^1.1.3: + version "1.1.6" + resolved "https://registry.yarnpkg.com/natives/-/natives-1.1.6.tgz#a603b4a498ab77173612b9ea1acdec4d980f00bb" + integrity sha512-6+TDFewD4yxY14ptjKaS63GVdtKiES1pTPyxn9Jb0rBqPMZ7VcCiooEhPNsr+mqHtMGxa/5c/HhcC4uPEUw/nA== + +normalize-path@^2.0.0, normalize-path@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" + integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= + dependencies: + remove-trailing-separator "^1.0.1" + +nth-check@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" + integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg== + dependencies: + boolbase "~1.0.0" + +object-assign@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-3.0.0.tgz#9bedd5ca0897949bca47e7ff408062d549f587f2" + integrity sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I= + +object-assign@^4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= + +object-copy@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" + integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw= + dependencies: + copy-descriptor "^0.1.0" + define-property "^0.2.5" + kind-of "^3.0.3" + +object-visit@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" + integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= + dependencies: + isobject "^3.0.0" + +object.defaults@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/object.defaults/-/object.defaults-1.1.0.tgz#3a7f868334b407dea06da16d88d5cd29e435fecf" + integrity sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8= + dependencies: + array-each "^1.0.1" + array-slice "^1.0.0" + for-own "^1.0.0" + isobject "^3.0.0" + +object.map@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/object.map/-/object.map-1.0.1.tgz#cf83e59dc8fcc0ad5f4250e1f78b3b81bd801d37" + integrity sha1-z4Plncj8wK1fQlDh94s7gb2AHTc= + dependencies: + for-own "^1.0.0" + make-iterator "^1.0.0" + +object.omit@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" + integrity sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo= + dependencies: + for-own "^0.1.4" + is-extendable "^0.1.1" + +object.pick@^1.2.0, object.pick@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" + integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= + dependencies: + isobject "^3.0.1" + +once@^1.3.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + dependencies: + wrappy "1" + +once@~1.3.0: + version "1.3.3" + resolved "https://registry.yarnpkg.com/once/-/once-1.3.3.tgz#b2e261557ce4c314ec8304f3fa82663e4297ca20" + integrity sha1-suJhVXzkwxTsgwTz+oJmPkKXyiA= + dependencies: + wrappy "1" + +orchestrator@^0.3.0: + version "0.3.8" + resolved "https://registry.yarnpkg.com/orchestrator/-/orchestrator-0.3.8.tgz#14e7e9e2764f7315fbac184e506c7aa6df94ad7e" + integrity sha1-FOfp4nZPcxX7rBhOUGx6pt+UrX4= + dependencies: + end-of-stream "~0.1.5" + sequencify "~0.0.7" + stream-consume "~0.1.0" + +ordered-read-streams@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/ordered-read-streams/-/ordered-read-streams-0.1.0.tgz#fd565a9af8eb4473ba69b6ed8a34352cb552f126" + integrity sha1-/VZamvjrRHO6abbtijQ1LLVS8SY= + +os-homedir@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" + integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= + +parse-filepath@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/parse-filepath/-/parse-filepath-1.0.2.tgz#a632127f53aaf3d15876f5872f3ffac763d6c891" + integrity sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE= + dependencies: + is-absolute "^1.0.0" + map-cache "^0.2.0" + path-root "^0.1.1" + +parse-glob@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" + integrity sha1-ssN2z7EfNVE7rdFz7wu246OIORw= + dependencies: + glob-base "^0.3.0" + is-dotfile "^1.0.0" + is-extglob "^1.0.0" + is-glob "^2.0.0" + +parse-node-version@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parse-node-version/-/parse-node-version-1.0.1.tgz#e2b5dbede00e7fa9bc363607f53327e8b073189b" + integrity sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA== + +parse-passwd@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" + integrity sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY= + +pascalcase@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" + integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= + +path-dirname@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" + integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= + +path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + +path-parse@^1.0.6: + version "1.0.7" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== + +path-root-regex@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/path-root-regex/-/path-root-regex-0.1.2.tgz#bfccdc8df5b12dc52c8b43ec38d18d72c04ba96d" + integrity sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0= + +path-root@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/path-root/-/path-root-0.1.1.tgz#9a4a6814cac1c0cd73360a95f32083c8ea4745b7" + integrity sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc= + dependencies: + path-root-regex "^0.1.0" + +pify@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= + +pinkie-promise@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" + integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o= + dependencies: + pinkie "^2.0.0" + +pinkie@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" + integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= + +plugin-error@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/plugin-error/-/plugin-error-0.1.2.tgz#3b9bb3335ccf00f425e07437e19276967da47ace" + integrity sha1-O5uzM1zPAPQl4HQ34ZJ2ln2kes4= + dependencies: + ansi-cyan "^0.1.1" + ansi-red "^0.1.1" + arr-diff "^1.0.1" + arr-union "^2.0.1" + extend-shallow "^1.1.2" + +posix-character-classes@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" + integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= + +preserve@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" + integrity sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks= + +pretty-hrtime@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz#b7e3ea42435a4c9b2759d99e0f201eb195802ee1" + integrity sha1-t+PqQkNaTJsnWdmeDyAesZWALuE= + +process-nextick-args@~2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + +q@^1.1.2: + version "1.5.1" + resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" + integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= + +randomatic@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-3.1.1.tgz#b776efc59375984e36c537b2f51a1f0aff0da1ed" + integrity sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw== + dependencies: + is-number "^4.0.0" + kind-of "^6.0.0" + math-random "^1.0.1" + +"readable-stream@>=1.0.33-1 <1.1.0-0": + version "1.0.34" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" + integrity sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw= + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + +readable-stream@^2.0.2, readable-stream@^2.2.2, readable-stream@~2.3.6: + version "2.3.7" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" + integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +readable-stream@^3.1.1: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" + integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +readable-stream@~1.1.9: + version "1.1.14" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" + integrity sha1-fPTFTvZI44EwhMY23SB54WbAgdk= + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + +readdirp@^2.0.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" + integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== + dependencies: + graceful-fs "^4.1.11" + micromatch "^3.1.10" + readable-stream "^2.0.2" + +rechoir@^0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" + integrity sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q= + dependencies: + resolve "^1.1.6" + +regex-cache@^0.4.2: + version "0.4.4" + resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd" + integrity sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ== + dependencies: + is-equal-shallow "^0.1.3" + +regex-not@^1.0.0, regex-not@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" + integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== + dependencies: + extend-shallow "^3.0.2" + safe-regex "^1.1.0" + +remove-trailing-separator@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" + integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= + +repeat-element@^1.1.2: + version "1.1.4" + resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.4.tgz#be681520847ab58c7568ac75fbfad28ed42d39e9" + integrity sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ== + +repeat-string@^1.5.2, repeat-string@^1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" + integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= + +replace-ext@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-0.0.1.tgz#29bbd92078a739f0bcce2b4ee41e837953522924" + integrity sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ= + +resolve-dir@^1.0.0, resolve-dir@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-1.0.1.tgz#79a40644c362be82f26effe739c9bb5382046f43" + integrity sha1-eaQGRMNivoLybv/nOcm7U4IEb0M= + dependencies: + expand-tilde "^2.0.0" + global-modules "^1.0.0" + +resolve-url@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" + integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= + +resolve@^1.1.6, resolve@^1.1.7: + version "1.20.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" + integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== + dependencies: + is-core-module "^2.2.0" + path-parse "^1.0.6" + +ret@~0.1.10: + version "0.1.15" + resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" + integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== + +safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +safe-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" + integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= + dependencies: + ret "~0.1.10" + +sax@~1.2.1: + version "1.2.4" + resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" + integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== + +semver@^4.1.0: + version "4.3.6" + resolved "https://registry.yarnpkg.com/semver/-/semver-4.3.6.tgz#300bc6e0e86374f7ba61068b5b1ecd57fc6532da" + integrity sha1-MAvG4OhjdPe6YQaLWx7NV/xlMto= + +sequencify@~0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/sequencify/-/sequencify-0.0.7.tgz#90cff19d02e07027fd767f5ead3e7b95d1e7380c" + integrity sha1-kM/xnQLgcCf9dn9erT57ldHnOAw= + +set-value@^2.0.0, set-value@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" + integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== + dependencies: + extend-shallow "^2.0.1" + is-extendable "^0.1.1" + is-plain-object "^2.0.3" + split-string "^3.0.1" + +sigmund@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/sigmund/-/sigmund-1.0.1.tgz#3ff21f198cad2175f9f3b781853fd94d0d19b590" + integrity sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA= + +slash@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" + integrity sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU= + +snapdragon-node@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" + integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== + dependencies: + define-property "^1.0.0" + isobject "^3.0.0" + snapdragon-util "^3.0.1" + +snapdragon-util@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" + integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== + dependencies: + kind-of "^3.2.0" + +snapdragon@^0.8.1: + version "0.8.2" + resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" + integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== + dependencies: + base "^0.11.1" + debug "^2.2.0" + define-property "^0.2.5" + extend-shallow "^2.0.1" + map-cache "^0.2.2" + source-map "^0.5.6" + source-map-resolve "^0.5.0" + use "^3.1.0" + +source-map-resolve@^0.5.0: + version "0.5.3" + resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" + integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== + dependencies: + atob "^2.1.2" + decode-uri-component "^0.2.0" + resolve-url "^0.2.1" + source-map-url "^0.4.0" + urix "^0.1.0" + +source-map-url@^0.4.0: + version "0.4.1" + resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.1.tgz#0af66605a745a5a2f91cf1bbf8a7afbc283dec56" + integrity sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw== + +source-map@^0.5.3, source-map@^0.5.6: + version "0.5.7" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= + +sparkles@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/sparkles/-/sparkles-1.0.1.tgz#008db65edce6c50eec0c5e228e1945061dd0437c" + integrity sha512-dSO0DDYUahUt/0/pD/Is3VIm5TGJjludZ0HVymmhYF6eNA53PVLhnUk0znSYbH8IYBuJdCE+1luR22jNLMaQdw== + +split-string@^3.0.1, split-string@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" + integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== + dependencies: + extend-shallow "^3.0.0" + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= + +static-extend@^0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" + integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= + dependencies: + define-property "^0.2.5" + object-copy "^0.1.0" + +stream-consume@~0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/stream-consume/-/stream-consume-0.1.1.tgz#d3bdb598c2bd0ae82b8cac7ac50b1107a7996c48" + integrity sha512-tNa3hzgkjEP7XbCkbRXe1jpg+ievoa0O4SCFlMOYEscGSS4JJsckGL8swUyAa/ApGU3Ae4t6Honor4HhL+tRyg== + +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +string_decoder@~0.10.x: + version "0.10.31" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" + integrity sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ= + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + +strip-ansi@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= + dependencies: + ansi-regex "^2.0.0" + +strip-bom-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-bom-stream/-/strip-bom-stream-2.0.0.tgz#f87db5ef2613f6968aa545abfe1ec728b6a829ca" + integrity sha1-+H217yYT9paKpUWr/h7HKLaoKco= + dependencies: + first-chunk-stream "^2.0.0" + strip-bom "^2.0.0" + +strip-bom@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-1.0.0.tgz#85b8862f3844b5a6d5ec8467a93598173a36f794" + integrity sha1-hbiGLzhEtabV7IRnqTWYFzo295Q= + dependencies: + first-chunk-stream "^1.0.0" + is-utf8 "^0.2.0" + +strip-bom@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" + integrity sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4= + dependencies: + is-utf8 "^0.2.0" + +supports-color@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" + integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= + +svgo@^0.7.0: + version "0.7.2" + resolved "https://registry.yarnpkg.com/svgo/-/svgo-0.7.2.tgz#9f5772413952135c6fefbf40afe6a4faa88b4bb5" + integrity sha1-n1dyQTlSE1xv779Ar+ak+qiLS7U= + dependencies: + coa "~1.0.1" + colors "~1.1.2" + csso "~2.3.1" + js-yaml "~3.7.0" + mkdirp "~0.5.1" + sax "~1.2.1" + whet.extend "~0.9.9" + +through2@^0.6.1, through2@^0.6.3, through2@^0.6.5: + version "0.6.5" + resolved "https://registry.yarnpkg.com/through2/-/through2-0.6.5.tgz#41ab9c67b29d57209071410e1d7a7a968cd3ad48" + integrity sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg= + dependencies: + readable-stream ">=1.0.33-1 <1.1.0-0" + xtend ">=4.0.0 <4.1.0-0" + +through2@^2.0.0: + version "2.0.5" + resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" + integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== + dependencies: + readable-stream "~2.3.6" + xtend "~4.0.1" + +tildify@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/tildify/-/tildify-1.2.0.tgz#dcec03f55dca9b7aa3e5b04f21817eb56e63588a" + integrity sha1-3OwD9V3Km3qj5bBPIYF+tW5jWIo= + dependencies: + os-homedir "^1.0.0" + +time-stamp@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/time-stamp/-/time-stamp-1.1.0.tgz#764a5a11af50561921b133f3b44e618687e0f5c3" + integrity sha1-dkpaEa9QVhkhsTPztE5hhofg9cM= + +to-object-path@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" + integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= + dependencies: + kind-of "^3.0.2" + +to-regex-range@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" + integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= + dependencies: + is-number "^3.0.0" + repeat-string "^1.6.1" + +to-regex@^3.0.1, to-regex@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" + integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== + dependencies: + define-property "^2.0.2" + extend-shallow "^3.0.2" + regex-not "^1.0.2" + safe-regex "^1.1.0" + +unc-path-regex@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/unc-path-regex/-/unc-path-regex-0.1.2.tgz#e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa" + integrity sha1-5z3T17DXxe2G+6xrCufYxqadUPo= + +union-value@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" + integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== + dependencies: + arr-union "^3.1.0" + get-value "^2.0.6" + is-extendable "^0.1.1" + set-value "^2.0.1" + +unique-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unique-stream/-/unique-stream-1.0.0.tgz#d59a4a75427447d9aa6c91e70263f8d26a4b104b" + integrity sha1-1ZpKdUJ0R9mqbJHnAmP40mpLEEs= + +unset-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" + integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= + dependencies: + has-value "^0.3.1" + isobject "^3.0.0" + +urix@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" + integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= + +use@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" + integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== + +user-home@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/user-home/-/user-home-1.1.1.tgz#2b5be23a32b63a7c9deb8d0f28d485724a3df190" + integrity sha1-K1viOjK2Onyd640PKNSFcko98ZA= + +util-deprecate@^1.0.1, util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= + +v8flags@^2.0.2: + version "2.1.1" + resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-2.1.1.tgz#aab1a1fa30d45f88dd321148875ac02c0b55e5b4" + integrity sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ= + dependencies: + user-home "^1.1.1" + +vinyl-file@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/vinyl-file/-/vinyl-file-2.0.0.tgz#a7ebf5ffbefda1b7d18d140fcb07b223efb6751a" + integrity sha1-p+v1/779obfRjRQPyweyI++2dRo= + dependencies: + graceful-fs "^4.1.2" + pify "^2.3.0" + pinkie-promise "^2.0.0" + strip-bom "^2.0.0" + strip-bom-stream "^2.0.0" + vinyl "^1.1.0" + +vinyl-fs@^0.3.0: + version "0.3.14" + resolved "https://registry.yarnpkg.com/vinyl-fs/-/vinyl-fs-0.3.14.tgz#9a6851ce1cac1c1cea5fe86c0931d620c2cfa9e6" + integrity sha1-mmhRzhysHBzqX+hsCTHWIMLPqeY= + dependencies: + defaults "^1.0.0" + glob-stream "^3.1.5" + glob-watcher "^0.0.6" + graceful-fs "^3.0.0" + mkdirp "^0.5.0" + strip-bom "^1.0.0" + through2 "^0.6.1" + vinyl "^0.4.0" + +vinyl@^0.4.0: + version "0.4.6" + resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-0.4.6.tgz#2f356c87a550a255461f36bbeb2a5ba8bf784847" + integrity sha1-LzVsh6VQolVGHza76ypbqL94SEc= + dependencies: + clone "^0.2.0" + clone-stats "^0.0.1" + +vinyl@^0.5.0: + version "0.5.3" + resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-0.5.3.tgz#b0455b38fc5e0cf30d4325132e461970c2091cde" + integrity sha1-sEVbOPxeDPMNQyUTLkYZcMIJHN4= + dependencies: + clone "^1.0.0" + clone-stats "^0.0.1" + replace-ext "0.0.1" + +vinyl@^1.1.0, vinyl@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-1.2.0.tgz#5c88036cf565e5df05558bfc911f8656df218884" + integrity sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ= + dependencies: + clone "^1.0.0" + clone-stats "^0.0.1" + replace-ext "0.0.1" + +whet.extend@~0.9.9: + version "0.9.9" + resolved "https://registry.yarnpkg.com/whet.extend/-/whet.extend-0.9.9.tgz#f877d5bf648c97e5aa542fadc16d6a259b9c11a1" + integrity sha1-+HfVv2SMl+WqVC+twW1qJZucEaE= + +which@^1.2.14: + version "1.3.1" + resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" + integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== + dependencies: + isexe "^2.0.0" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + +"xtend@>=4.0.0 <4.1.0-0", xtend@~4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" + integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== diff --git a/pkgs/applications/networking/misc/zammad/yarn.nix b/pkgs/applications/networking/misc/zammad/yarn.nix new file mode 100644 index 000000000000..d0edb7987ac0 --- /dev/null +++ b/pkgs/applications/networking/misc/zammad/yarn.nix @@ -0,0 +1,2669 @@ +{ fetchurl, fetchgit, linkFarm, runCommand, gnutar }: rec { + offline_cache = linkFarm "offline" packages; + packages = [ + { + name = "ansi_cyan___ansi_cyan_0.1.1.tgz"; + path = fetchurl { + name = "ansi_cyan___ansi_cyan_0.1.1.tgz"; + url = "https://registry.yarnpkg.com/ansi-cyan/-/ansi-cyan-0.1.1.tgz"; + sha1 = "538ae528af8982f28ae30d86f2f17456d2609873"; + }; + } + { + name = "ansi_gray___ansi_gray_0.1.1.tgz"; + path = fetchurl { + name = "ansi_gray___ansi_gray_0.1.1.tgz"; + url = "https://registry.yarnpkg.com/ansi-gray/-/ansi-gray-0.1.1.tgz"; + sha1 = "2962cf54ec9792c48510a3deb524436861ef7251"; + }; + } + { + name = "ansi_red___ansi_red_0.1.1.tgz"; + path = fetchurl { + name = "ansi_red___ansi_red_0.1.1.tgz"; + url = "https://registry.yarnpkg.com/ansi-red/-/ansi-red-0.1.1.tgz"; + sha1 = "8c638f9d1080800a353c9c28c8a81ca4705d946c"; + }; + } + { + name = "ansi_regex___ansi_regex_2.1.1.tgz"; + path = fetchurl { + name = "ansi_regex___ansi_regex_2.1.1.tgz"; + url = "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz"; + sha1 = "c3b33ab5ee360d86e0e628f0468ae7ef27d654df"; + }; + } + { + name = "ansi_styles___ansi_styles_2.2.1.tgz"; + path = fetchurl { + name = "ansi_styles___ansi_styles_2.2.1.tgz"; + url = "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz"; + sha1 = "b432dd3358b634cf75e1e4664368240533c1ddbe"; + }; + } + { + name = "ansi_wrap___ansi_wrap_0.1.0.tgz"; + path = fetchurl { + name = "ansi_wrap___ansi_wrap_0.1.0.tgz"; + url = "https://registry.yarnpkg.com/ansi-wrap/-/ansi-wrap-0.1.0.tgz"; + sha1 = "a82250ddb0015e9a27ca82e82ea603bbfa45efaf"; + }; + } + { + name = "anymatch___anymatch_1.3.2.tgz"; + path = fetchurl { + name = "anymatch___anymatch_1.3.2.tgz"; + url = "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.2.tgz"; + sha1 = "553dcb8f91e3c889845dfdba34c77721b90b9d7a"; + }; + } + { + name = "archy___archy_1.0.0.tgz"; + path = fetchurl { + name = "archy___archy_1.0.0.tgz"; + url = "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz"; + sha1 = "f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40"; + }; + } + { + name = "argparse___argparse_1.0.10.tgz"; + path = fetchurl { + name = "argparse___argparse_1.0.10.tgz"; + url = "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz"; + sha1 = "bcd6791ea5ae09725e17e5ad988134cd40b3d911"; + }; + } + { + name = "arr_diff___arr_diff_1.1.0.tgz"; + path = fetchurl { + name = "arr_diff___arr_diff_1.1.0.tgz"; + url = "https://registry.yarnpkg.com/arr-diff/-/arr-diff-1.1.0.tgz"; + sha1 = "687c32758163588fef7de7b36fabe495eb1a399a"; + }; + } + { + name = "arr_diff___arr_diff_2.0.0.tgz"; + path = fetchurl { + name = "arr_diff___arr_diff_2.0.0.tgz"; + url = "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz"; + sha1 = "8f3b827f955a8bd669697e4a4256ac3ceae356cf"; + }; + } + { + name = "arr_diff___arr_diff_4.0.0.tgz"; + path = fetchurl { + name = "arr_diff___arr_diff_4.0.0.tgz"; + url = "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz"; + sha1 = "d6461074febfec71e7e15235761a329a5dc7c520"; + }; + } + { + name = "arr_flatten___arr_flatten_1.1.0.tgz"; + path = fetchurl { + name = "arr_flatten___arr_flatten_1.1.0.tgz"; + url = "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz"; + sha1 = "36048bbff4e7b47e136644316c99669ea5ae91f1"; + }; + } + { + name = "arr_union___arr_union_2.1.0.tgz"; + path = fetchurl { + name = "arr_union___arr_union_2.1.0.tgz"; + url = "https://registry.yarnpkg.com/arr-union/-/arr-union-2.1.0.tgz"; + sha1 = "20f9eab5ec70f5c7d215b1077b1c39161d292c7d"; + }; + } + { + name = "arr_union___arr_union_3.1.0.tgz"; + path = fetchurl { + name = "arr_union___arr_union_3.1.0.tgz"; + url = "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz"; + sha1 = "e39b09aea9def866a8f206e288af63919bae39c4"; + }; + } + { + name = "array_differ___array_differ_1.0.0.tgz"; + path = fetchurl { + name = "array_differ___array_differ_1.0.0.tgz"; + url = "https://registry.yarnpkg.com/array-differ/-/array-differ-1.0.0.tgz"; + sha1 = "eff52e3758249d33be402b8bb8e564bb2b5d4031"; + }; + } + { + name = "array_each___array_each_1.0.1.tgz"; + path = fetchurl { + name = "array_each___array_each_1.0.1.tgz"; + url = "https://registry.yarnpkg.com/array-each/-/array-each-1.0.1.tgz"; + sha1 = "a794af0c05ab1752846ee753a1f211a05ba0c44f"; + }; + } + { + name = "array_slice___array_slice_0.2.3.tgz"; + path = fetchurl { + name = "array_slice___array_slice_0.2.3.tgz"; + url = "https://registry.yarnpkg.com/array-slice/-/array-slice-0.2.3.tgz"; + sha1 = "dd3cfb80ed7973a75117cdac69b0b99ec86186f5"; + }; + } + { + name = "array_slice___array_slice_1.1.0.tgz"; + path = fetchurl { + name = "array_slice___array_slice_1.1.0.tgz"; + url = "https://registry.yarnpkg.com/array-slice/-/array-slice-1.1.0.tgz"; + sha1 = "e368ea15f89bc7069f7ffb89aec3a6c7d4ac22d4"; + }; + } + { + name = "array_uniq___array_uniq_1.0.3.tgz"; + path = fetchurl { + name = "array_uniq___array_uniq_1.0.3.tgz"; + url = "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz"; + sha1 = "af6ac877a25cc7f74e058894753858dfdb24fdb6"; + }; + } + { + name = "array_unique___array_unique_0.2.1.tgz"; + path = fetchurl { + name = "array_unique___array_unique_0.2.1.tgz"; + url = "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz"; + sha1 = "a1d97ccafcbc2625cc70fadceb36a50c58b01a53"; + }; + } + { + name = "array_unique___array_unique_0.3.2.tgz"; + path = fetchurl { + name = "array_unique___array_unique_0.3.2.tgz"; + url = "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz"; + sha1 = "a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428"; + }; + } + { + name = "assign_symbols___assign_symbols_1.0.0.tgz"; + path = fetchurl { + name = "assign_symbols___assign_symbols_1.0.0.tgz"; + url = "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz"; + sha1 = "59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367"; + }; + } + { + name = "async_each___async_each_1.0.3.tgz"; + path = fetchurl { + name = "async_each___async_each_1.0.3.tgz"; + url = "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz"; + sha1 = "b727dbf87d7651602f06f4d4ac387f47d91b0cbf"; + }; + } + { + name = "atob___atob_2.1.2.tgz"; + path = fetchurl { + name = "atob___atob_2.1.2.tgz"; + url = "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz"; + sha1 = "6d9517eb9e030d2436666651e86bd9f6f13533c9"; + }; + } + { + name = "balanced_match___balanced_match_1.0.2.tgz"; + path = fetchurl { + name = "balanced_match___balanced_match_1.0.2.tgz"; + url = "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz"; + sha1 = "e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"; + }; + } + { + name = "base___base_0.11.2.tgz"; + path = fetchurl { + name = "base___base_0.11.2.tgz"; + url = "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz"; + sha1 = "7bde5ced145b6d551a90db87f83c558b4eb48a8f"; + }; + } + { + name = "beeper___beeper_1.1.1.tgz"; + path = fetchurl { + name = "beeper___beeper_1.1.1.tgz"; + url = "https://registry.yarnpkg.com/beeper/-/beeper-1.1.1.tgz"; + sha1 = "e6d5ea8c5dad001304a70b22638447f69cb2f809"; + }; + } + { + name = "binary_extensions___binary_extensions_1.13.1.tgz"; + path = fetchurl { + name = "binary_extensions___binary_extensions_1.13.1.tgz"; + url = "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz"; + sha1 = "598afe54755b2868a5330d2aff9d4ebb53209b65"; + }; + } + { + name = "bindings___bindings_1.5.0.tgz"; + path = fetchurl { + name = "bindings___bindings_1.5.0.tgz"; + url = "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz"; + sha1 = "10353c9e945334bc0511a6d90b38fbc7c9c504df"; + }; + } + { + name = "boolbase___boolbase_1.0.0.tgz"; + path = fetchurl { + name = "boolbase___boolbase_1.0.0.tgz"; + url = "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz"; + sha1 = "68dff5fbe60c51eb37725ea9e3ed310dcc1e776e"; + }; + } + { + name = "brace_expansion___brace_expansion_1.1.11.tgz"; + path = fetchurl { + name = "brace_expansion___brace_expansion_1.1.11.tgz"; + url = "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz"; + sha1 = "3c7fcbf529d87226f3d2f52b966ff5271eb441dd"; + }; + } + { + name = "braces___braces_1.8.5.tgz"; + path = fetchurl { + name = "braces___braces_1.8.5.tgz"; + url = "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz"; + sha1 = "ba77962e12dff969d6b76711e914b737857bf6a7"; + }; + } + { + name = "braces___braces_2.3.2.tgz"; + path = fetchurl { + name = "braces___braces_2.3.2.tgz"; + url = "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz"; + sha1 = "5979fd3f14cd531565e5fa2df1abfff1dfaee729"; + }; + } + { + name = "cache_base___cache_base_1.0.1.tgz"; + path = fetchurl { + name = "cache_base___cache_base_1.0.1.tgz"; + url = "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz"; + sha1 = "0a7f46416831c8b662ee36fe4e7c59d76f666ab2"; + }; + } + { + name = "chalk___chalk_1.1.3.tgz"; + path = fetchurl { + name = "chalk___chalk_1.1.3.tgz"; + url = "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz"; + sha1 = "a8115c55e4a702fe4d150abd3872822a7e09fc98"; + }; + } + { + name = "cheerio___cheerio_0.22.0.tgz"; + path = fetchurl { + name = "cheerio___cheerio_0.22.0.tgz"; + url = "https://registry.yarnpkg.com/cheerio/-/cheerio-0.22.0.tgz"; + sha1 = "a9baa860a3f9b595a6b81b1a86873121ed3a269e"; + }; + } + { + name = "chokidar___chokidar_1.7.0.tgz"; + path = fetchurl { + name = "chokidar___chokidar_1.7.0.tgz"; + url = "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz"; + sha1 = "798e689778151c8076b4b360e5edd28cda2bb468"; + }; + } + { + name = "clap___clap_1.2.3.tgz"; + path = fetchurl { + name = "clap___clap_1.2.3.tgz"; + url = "https://registry.yarnpkg.com/clap/-/clap-1.2.3.tgz"; + sha1 = "4f36745b32008492557f46412d66d50cb99bce51"; + }; + } + { + name = "class_utils___class_utils_0.3.6.tgz"; + path = fetchurl { + name = "class_utils___class_utils_0.3.6.tgz"; + url = "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz"; + sha1 = "f93369ae8b9a7ce02fd41faad0ca83033190c463"; + }; + } + { + name = "clone_stats___clone_stats_0.0.1.tgz"; + path = fetchurl { + name = "clone_stats___clone_stats_0.0.1.tgz"; + url = "https://registry.yarnpkg.com/clone-stats/-/clone-stats-0.0.1.tgz"; + sha1 = "b88f94a82cf38b8791d58046ea4029ad88ca99d1"; + }; + } + { + name = "clone___clone_0.2.0.tgz"; + path = fetchurl { + name = "clone___clone_0.2.0.tgz"; + url = "https://registry.yarnpkg.com/clone/-/clone-0.2.0.tgz"; + sha1 = "c6126a90ad4f72dbf5acdb243cc37724fe93fc1f"; + }; + } + { + name = "clone___clone_1.0.4.tgz"; + path = fetchurl { + name = "clone___clone_1.0.4.tgz"; + url = "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz"; + sha1 = "da309cc263df15994c688ca902179ca3c7cd7c7e"; + }; + } + { + name = "coa___coa_1.0.4.tgz"; + path = fetchurl { + name = "coa___coa_1.0.4.tgz"; + url = "https://registry.yarnpkg.com/coa/-/coa-1.0.4.tgz"; + sha1 = "a9ef153660d6a86a8bdec0289a5c684d217432fd"; + }; + } + { + name = "collection_visit___collection_visit_1.0.0.tgz"; + path = fetchurl { + name = "collection_visit___collection_visit_1.0.0.tgz"; + url = "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz"; + sha1 = "4bc0373c164bc3291b4d368c829cf1a80a59dca0"; + }; + } + { + name = "color_support___color_support_1.1.3.tgz"; + path = fetchurl { + name = "color_support___color_support_1.1.3.tgz"; + url = "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz"; + sha1 = "93834379a1cc9a0c61f82f52f0d04322251bd5a2"; + }; + } + { + name = "colors___colors_1.1.2.tgz"; + path = fetchurl { + name = "colors___colors_1.1.2.tgz"; + url = "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz"; + sha1 = "168a4701756b6a7f51a12ce0c97bfa28c084ed63"; + }; + } + { + name = "component_emitter___component_emitter_1.3.0.tgz"; + path = fetchurl { + name = "component_emitter___component_emitter_1.3.0.tgz"; + url = "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz"; + sha1 = "16e4070fba8ae29b679f2215853ee181ab2eabc0"; + }; + } + { + name = "concat_map___concat_map_0.0.1.tgz"; + path = fetchurl { + name = "concat_map___concat_map_0.0.1.tgz"; + url = "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz"; + sha1 = "d8a96bd77fd68df7793a73036a3ba0d5405d477b"; + }; + } + { + name = "copy_descriptor___copy_descriptor_0.1.1.tgz"; + path = fetchurl { + name = "copy_descriptor___copy_descriptor_0.1.1.tgz"; + url = "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz"; + sha1 = "676f6eb3c39997c2ee1ac3a924fd6124748f578d"; + }; + } + { + name = "core_util_is___core_util_is_1.0.3.tgz"; + path = fetchurl { + name = "core_util_is___core_util_is_1.0.3.tgz"; + url = "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz"; + sha1 = "a6042d3634c2b27e9328f837b965fac83808db85"; + }; + } + { + name = "css_select___css_select_1.2.0.tgz"; + path = fetchurl { + name = "css_select___css_select_1.2.0.tgz"; + url = "https://registry.yarnpkg.com/css-select/-/css-select-1.2.0.tgz"; + sha1 = "2b3a110539c5355f1cd8d314623e870b121ec858"; + }; + } + { + name = "css_what___css_what_2.1.3.tgz"; + path = fetchurl { + name = "css_what___css_what_2.1.3.tgz"; + url = "https://registry.yarnpkg.com/css-what/-/css-what-2.1.3.tgz"; + sha1 = "a6d7604573365fe74686c3f311c56513d88285f2"; + }; + } + { + name = "csso___csso_2.3.2.tgz"; + path = fetchurl { + name = "csso___csso_2.3.2.tgz"; + url = "https://registry.yarnpkg.com/csso/-/csso-2.3.2.tgz"; + sha1 = "ddd52c587033f49e94b71fc55569f252e8ff5f85"; + }; + } + { + name = "dateformat___dateformat_2.2.0.tgz"; + path = fetchurl { + name = "dateformat___dateformat_2.2.0.tgz"; + url = "https://registry.yarnpkg.com/dateformat/-/dateformat-2.2.0.tgz"; + sha1 = "4065e2013cf9fb916ddfd82efb506ad4c6769062"; + }; + } + { + name = "debug___debug_2.6.9.tgz"; + path = fetchurl { + name = "debug___debug_2.6.9.tgz"; + url = "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz"; + sha1 = "5d128515df134ff327e90a4c93f4e077a536341f"; + }; + } + { + name = "decode_uri_component___decode_uri_component_0.2.0.tgz"; + path = fetchurl { + name = "decode_uri_component___decode_uri_component_0.2.0.tgz"; + url = "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz"; + sha1 = "eb3913333458775cb84cd1a1fae062106bb87545"; + }; + } + { + name = "defaults___defaults_1.0.3.tgz"; + path = fetchurl { + name = "defaults___defaults_1.0.3.tgz"; + url = "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz"; + sha1 = "c656051e9817d9ff08ed881477f3fe4019f3ef7d"; + }; + } + { + name = "define_property___define_property_0.2.5.tgz"; + path = fetchurl { + name = "define_property___define_property_0.2.5.tgz"; + url = "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz"; + sha1 = "c35b1ef918ec3c990f9a5bc57be04aacec5c8116"; + }; + } + { + name = "define_property___define_property_1.0.0.tgz"; + path = fetchurl { + name = "define_property___define_property_1.0.0.tgz"; + url = "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz"; + sha1 = "769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6"; + }; + } + { + name = "define_property___define_property_2.0.2.tgz"; + path = fetchurl { + name = "define_property___define_property_2.0.2.tgz"; + url = "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz"; + sha1 = "d459689e8d654ba77e02a817f8710d702cb16e9d"; + }; + } + { + name = "deprecated___deprecated_0.0.1.tgz"; + path = fetchurl { + name = "deprecated___deprecated_0.0.1.tgz"; + url = "https://registry.yarnpkg.com/deprecated/-/deprecated-0.0.1.tgz"; + sha1 = "f9c9af5464afa1e7a971458a8bdef2aa94d5bb19"; + }; + } + { + name = "detect_file___detect_file_1.0.0.tgz"; + path = fetchurl { + name = "detect_file___detect_file_1.0.0.tgz"; + url = "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz"; + sha1 = "f0d66d03672a825cb1b73bdb3fe62310c8e552b7"; + }; + } + { + name = "dom_serializer___dom_serializer_0.2.2.tgz"; + path = fetchurl { + name = "dom_serializer___dom_serializer_0.2.2.tgz"; + url = "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.2.tgz"; + sha1 = "1afb81f533717175d478655debc5e332d9f9bb51"; + }; + } + { + name = "dom_serializer___dom_serializer_0.1.1.tgz"; + path = fetchurl { + name = "dom_serializer___dom_serializer_0.1.1.tgz"; + url = "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.1.tgz"; + sha1 = "1ec4059e284babed36eec2941d4a970a189ce7c0"; + }; + } + { + name = "domelementtype___domelementtype_1.3.1.tgz"; + path = fetchurl { + name = "domelementtype___domelementtype_1.3.1.tgz"; + url = "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz"; + sha1 = "d048c44b37b0d10a7f2a3d5fee3f4333d790481f"; + }; + } + { + name = "domelementtype___domelementtype_2.2.0.tgz"; + path = fetchurl { + name = "domelementtype___domelementtype_2.2.0.tgz"; + url = "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.2.0.tgz"; + sha1 = "9a0b6c2782ed6a1c7323d42267183df9bd8b1d57"; + }; + } + { + name = "domhandler___domhandler_2.4.2.tgz"; + path = fetchurl { + name = "domhandler___domhandler_2.4.2.tgz"; + url = "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.2.tgz"; + sha1 = "8805097e933d65e85546f726d60f5eb88b44f803"; + }; + } + { + name = "domutils___domutils_1.5.1.tgz"; + path = fetchurl { + name = "domutils___domutils_1.5.1.tgz"; + url = "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz"; + sha1 = "dcd8488a26f563d61079e48c9f7b7e32373682cf"; + }; + } + { + name = "domutils___domutils_1.7.0.tgz"; + path = fetchurl { + name = "domutils___domutils_1.7.0.tgz"; + url = "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz"; + sha1 = "56ea341e834e06e6748af7a1cb25da67ea9f8c2a"; + }; + } + { + name = "duplexer2___duplexer2_0.0.2.tgz"; + path = fetchurl { + name = "duplexer2___duplexer2_0.0.2.tgz"; + url = "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.0.2.tgz"; + sha1 = "c614dcf67e2fb14995a91711e5a617e8a60a31db"; + }; + } + { + name = "end_of_stream___end_of_stream_0.1.5.tgz"; + path = fetchurl { + name = "end_of_stream___end_of_stream_0.1.5.tgz"; + url = "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-0.1.5.tgz"; + sha1 = "8e177206c3c80837d85632e8b9359dfe8b2f6eaf"; + }; + } + { + name = "entities___entities_1.1.2.tgz"; + path = fetchurl { + name = "entities___entities_1.1.2.tgz"; + url = "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz"; + sha1 = "bdfa735299664dfafd34529ed4f8522a275fea56"; + }; + } + { + name = "entities___entities_2.2.0.tgz"; + path = fetchurl { + name = "entities___entities_2.2.0.tgz"; + url = "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz"; + sha1 = "098dc90ebb83d8dffa089d55256b351d34c4da55"; + }; + } + { + name = "escape_string_regexp___escape_string_regexp_1.0.5.tgz"; + path = fetchurl { + name = "escape_string_regexp___escape_string_regexp_1.0.5.tgz"; + url = "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz"; + sha1 = "1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"; + }; + } + { + name = "esprima___esprima_2.7.3.tgz"; + path = fetchurl { + name = "esprima___esprima_2.7.3.tgz"; + url = "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz"; + sha1 = "96e3b70d5779f6ad49cd032673d1c312767ba581"; + }; + } + { + name = "expand_brackets___expand_brackets_0.1.5.tgz"; + path = fetchurl { + name = "expand_brackets___expand_brackets_0.1.5.tgz"; + url = "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz"; + sha1 = "df07284e342a807cd733ac5af72411e581d1177b"; + }; + } + { + name = "expand_brackets___expand_brackets_2.1.4.tgz"; + path = fetchurl { + name = "expand_brackets___expand_brackets_2.1.4.tgz"; + url = "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz"; + sha1 = "b77735e315ce30f6b6eff0f83b04151a22449622"; + }; + } + { + name = "expand_range___expand_range_1.8.2.tgz"; + path = fetchurl { + name = "expand_range___expand_range_1.8.2.tgz"; + url = "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz"; + sha1 = "a299effd335fe2721ebae8e257ec79644fc85337"; + }; + } + { + name = "expand_tilde___expand_tilde_2.0.2.tgz"; + path = fetchurl { + name = "expand_tilde___expand_tilde_2.0.2.tgz"; + url = "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-2.0.2.tgz"; + sha1 = "97e801aa052df02454de46b02bf621642cdc8502"; + }; + } + { + name = "extend_shallow___extend_shallow_1.1.4.tgz"; + path = fetchurl { + name = "extend_shallow___extend_shallow_1.1.4.tgz"; + url = "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-1.1.4.tgz"; + sha1 = "19d6bf94dfc09d76ba711f39b872d21ff4dd9071"; + }; + } + { + name = "extend_shallow___extend_shallow_2.0.1.tgz"; + path = fetchurl { + name = "extend_shallow___extend_shallow_2.0.1.tgz"; + url = "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz"; + sha1 = "51af7d614ad9a9f610ea1bafbb989d6b1c56890f"; + }; + } + { + name = "extend_shallow___extend_shallow_3.0.2.tgz"; + path = fetchurl { + name = "extend_shallow___extend_shallow_3.0.2.tgz"; + url = "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz"; + sha1 = "26a71aaf073b39fb2127172746131c2704028db8"; + }; + } + { + name = "extend___extend_3.0.2.tgz"; + path = fetchurl { + name = "extend___extend_3.0.2.tgz"; + url = "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz"; + sha1 = "f8b1136b4071fbd8eb140aff858b1019ec2915fa"; + }; + } + { + name = "extglob___extglob_0.3.2.tgz"; + path = fetchurl { + name = "extglob___extglob_0.3.2.tgz"; + url = "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz"; + sha1 = "2e18ff3d2f49ab2765cec9023f011daa8d8349a1"; + }; + } + { + name = "extglob___extglob_2.0.4.tgz"; + path = fetchurl { + name = "extglob___extglob_2.0.4.tgz"; + url = "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz"; + sha1 = "ad00fe4dc612a9232e8718711dc5cb5ab0285543"; + }; + } + { + name = "fancy_log___fancy_log_1.3.3.tgz"; + path = fetchurl { + name = "fancy_log___fancy_log_1.3.3.tgz"; + url = "https://registry.yarnpkg.com/fancy-log/-/fancy-log-1.3.3.tgz"; + sha1 = "dbc19154f558690150a23953a0adbd035be45fc7"; + }; + } + { + name = "file_uri_to_path___file_uri_to_path_1.0.0.tgz"; + path = fetchurl { + name = "file_uri_to_path___file_uri_to_path_1.0.0.tgz"; + url = "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz"; + sha1 = "553a7b8446ff6f684359c445f1e37a05dacc33dd"; + }; + } + { + name = "filename_regex___filename_regex_2.0.1.tgz"; + path = fetchurl { + name = "filename_regex___filename_regex_2.0.1.tgz"; + url = "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz"; + sha1 = "c1c4b9bee3e09725ddb106b75c1e301fe2f18b26"; + }; + } + { + name = "fill_range___fill_range_2.2.4.tgz"; + path = fetchurl { + name = "fill_range___fill_range_2.2.4.tgz"; + url = "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.4.tgz"; + sha1 = "eb1e773abb056dcd8df2bfdf6af59b8b3a936565"; + }; + } + { + name = "fill_range___fill_range_4.0.0.tgz"; + path = fetchurl { + name = "fill_range___fill_range_4.0.0.tgz"; + url = "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz"; + sha1 = "d544811d428f98eb06a63dc402d2403c328c38f7"; + }; + } + { + name = "find_index___find_index_0.1.1.tgz"; + path = fetchurl { + name = "find_index___find_index_0.1.1.tgz"; + url = "https://registry.yarnpkg.com/find-index/-/find-index-0.1.1.tgz"; + sha1 = "675d358b2ca3892d795a1ab47232f8b6e2e0dde4"; + }; + } + { + name = "findup_sync___findup_sync_2.0.0.tgz"; + path = fetchurl { + name = "findup_sync___findup_sync_2.0.0.tgz"; + url = "https://registry.yarnpkg.com/findup-sync/-/findup-sync-2.0.0.tgz"; + sha1 = "9326b1488c22d1a6088650a86901b2d9a90a2cbc"; + }; + } + { + name = "fined___fined_1.2.0.tgz"; + path = fetchurl { + name = "fined___fined_1.2.0.tgz"; + url = "https://registry.yarnpkg.com/fined/-/fined-1.2.0.tgz"; + sha1 = "d00beccf1aa2b475d16d423b0238b713a2c4a37b"; + }; + } + { + name = "first_chunk_stream___first_chunk_stream_1.0.0.tgz"; + path = fetchurl { + name = "first_chunk_stream___first_chunk_stream_1.0.0.tgz"; + url = "https://registry.yarnpkg.com/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz"; + sha1 = "59bfb50cd905f60d7c394cd3d9acaab4e6ad934e"; + }; + } + { + name = "first_chunk_stream___first_chunk_stream_2.0.0.tgz"; + path = fetchurl { + name = "first_chunk_stream___first_chunk_stream_2.0.0.tgz"; + url = "https://registry.yarnpkg.com/first-chunk-stream/-/first-chunk-stream-2.0.0.tgz"; + sha1 = "1bdecdb8e083c0664b91945581577a43a9f31d70"; + }; + } + { + name = "flagged_respawn___flagged_respawn_1.0.1.tgz"; + path = fetchurl { + name = "flagged_respawn___flagged_respawn_1.0.1.tgz"; + url = "https://registry.yarnpkg.com/flagged-respawn/-/flagged-respawn-1.0.1.tgz"; + sha1 = "e7de6f1279ddd9ca9aac8a5971d618606b3aab41"; + }; + } + { + name = "for_in___for_in_1.0.2.tgz"; + path = fetchurl { + name = "for_in___for_in_1.0.2.tgz"; + url = "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz"; + sha1 = "81068d295a8142ec0ac726c6e2200c30fb6d5e80"; + }; + } + { + name = "for_own___for_own_0.1.5.tgz"; + path = fetchurl { + name = "for_own___for_own_0.1.5.tgz"; + url = "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz"; + sha1 = "5265c681a4f294dabbf17c9509b6763aa84510ce"; + }; + } + { + name = "for_own___for_own_1.0.0.tgz"; + path = fetchurl { + name = "for_own___for_own_1.0.0.tgz"; + url = "https://registry.yarnpkg.com/for-own/-/for-own-1.0.0.tgz"; + sha1 = "c63332f415cedc4b04dbfe70cf836494c53cb44b"; + }; + } + { + name = "fragment_cache___fragment_cache_0.2.1.tgz"; + path = fetchurl { + name = "fragment_cache___fragment_cache_0.2.1.tgz"; + url = "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz"; + sha1 = "4290fad27f13e89be7f33799c6bc5a0abfff0d19"; + }; + } + { + name = "fsevents___fsevents_1.2.13.tgz"; + path = fetchurl { + name = "fsevents___fsevents_1.2.13.tgz"; + url = "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.13.tgz"; + sha1 = "f325cb0455592428bcf11b383370ef70e3bfcc38"; + }; + } + { + name = "function_bind___function_bind_1.1.1.tgz"; + path = fetchurl { + name = "function_bind___function_bind_1.1.1.tgz"; + url = "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz"; + sha1 = "a56899d3ea3c9bab874bb9773b7c5ede92f4895d"; + }; + } + { + name = "gaze___gaze_0.5.2.tgz"; + path = fetchurl { + name = "gaze___gaze_0.5.2.tgz"; + url = "https://registry.yarnpkg.com/gaze/-/gaze-0.5.2.tgz"; + sha1 = "40b709537d24d1d45767db5a908689dfe69ac44f"; + }; + } + { + name = "get_value___get_value_2.0.6.tgz"; + path = fetchurl { + name = "get_value___get_value_2.0.6.tgz"; + url = "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz"; + sha1 = "dc15ca1c672387ca76bd37ac0a395ba2042a2c28"; + }; + } + { + name = "glob_base___glob_base_0.3.0.tgz"; + path = fetchurl { + name = "glob_base___glob_base_0.3.0.tgz"; + url = "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz"; + sha1 = "dbb164f6221b1c0b1ccf82aea328b497df0ea3c4"; + }; + } + { + name = "glob_parent___glob_parent_2.0.0.tgz"; + path = fetchurl { + name = "glob_parent___glob_parent_2.0.0.tgz"; + url = "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz"; + sha1 = "81383d72db054fcccf5336daa902f182f6edbb28"; + }; + } + { + name = "glob_parent___glob_parent_3.1.0.tgz"; + path = fetchurl { + name = "glob_parent___glob_parent_3.1.0.tgz"; + url = "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz"; + sha1 = "9e6af6299d8d3bd2bd40430832bd113df906c5ae"; + }; + } + { + name = "glob_stream___glob_stream_3.1.18.tgz"; + path = fetchurl { + name = "glob_stream___glob_stream_3.1.18.tgz"; + url = "https://registry.yarnpkg.com/glob-stream/-/glob-stream-3.1.18.tgz"; + sha1 = "9170a5f12b790306fdfe598f313f8f7954fd143b"; + }; + } + { + name = "glob_watcher___glob_watcher_0.0.6.tgz"; + path = fetchurl { + name = "glob_watcher___glob_watcher_0.0.6.tgz"; + url = "https://registry.yarnpkg.com/glob-watcher/-/glob-watcher-0.0.6.tgz"; + sha1 = "b95b4a8df74b39c83298b0c05c978b4d9a3b710b"; + }; + } + { + name = "glob2base___glob2base_0.0.12.tgz"; + path = fetchurl { + name = "glob2base___glob2base_0.0.12.tgz"; + url = "https://registry.yarnpkg.com/glob2base/-/glob2base-0.0.12.tgz"; + sha1 = "9d419b3e28f12e83a362164a277055922c9c0d56"; + }; + } + { + name = "glob___glob_4.5.3.tgz"; + path = fetchurl { + name = "glob___glob_4.5.3.tgz"; + url = "https://registry.yarnpkg.com/glob/-/glob-4.5.3.tgz"; + sha1 = "c6cb73d3226c1efef04de3c56d012f03377ee15f"; + }; + } + { + name = "glob___glob_3.1.21.tgz"; + path = fetchurl { + name = "glob___glob_3.1.21.tgz"; + url = "https://registry.yarnpkg.com/glob/-/glob-3.1.21.tgz"; + sha1 = "d29e0a055dea5138f4d07ed40e8982e83c2066cd"; + }; + } + { + name = "global_modules___global_modules_1.0.0.tgz"; + path = fetchurl { + name = "global_modules___global_modules_1.0.0.tgz"; + url = "https://registry.yarnpkg.com/global-modules/-/global-modules-1.0.0.tgz"; + sha1 = "6d770f0eb523ac78164d72b5e71a8877265cc3ea"; + }; + } + { + name = "global_prefix___global_prefix_1.0.2.tgz"; + path = fetchurl { + name = "global_prefix___global_prefix_1.0.2.tgz"; + url = "https://registry.yarnpkg.com/global-prefix/-/global-prefix-1.0.2.tgz"; + sha1 = "dbf743c6c14992593c655568cb66ed32c0122ebe"; + }; + } + { + name = "globule___globule_0.1.0.tgz"; + path = fetchurl { + name = "globule___globule_0.1.0.tgz"; + url = "https://registry.yarnpkg.com/globule/-/globule-0.1.0.tgz"; + sha1 = "d9c8edde1da79d125a151b79533b978676346ae5"; + }; + } + { + name = "glogg___glogg_1.0.2.tgz"; + path = fetchurl { + name = "glogg___glogg_1.0.2.tgz"; + url = "https://registry.yarnpkg.com/glogg/-/glogg-1.0.2.tgz"; + sha1 = "2d7dd702beda22eb3bffadf880696da6d846313f"; + }; + } + { + name = "graceful_fs___graceful_fs_3.0.12.tgz"; + path = fetchurl { + name = "graceful_fs___graceful_fs_3.0.12.tgz"; + url = "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-3.0.12.tgz"; + sha1 = "0034947ce9ed695ec8ab0b854bc919e82b1ffaef"; + }; + } + { + name = "graceful_fs___graceful_fs_4.2.8.tgz"; + path = fetchurl { + name = "graceful_fs___graceful_fs_4.2.8.tgz"; + url = "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.8.tgz"; + sha1 = "e412b8d33f5e006593cbd3cee6df9f2cebbe802a"; + }; + } + { + name = "graceful_fs___graceful_fs_1.2.3.tgz"; + path = fetchurl { + name = "graceful_fs___graceful_fs_1.2.3.tgz"; + url = "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-1.2.3.tgz"; + sha1 = "15a4806a57547cb2d2dbf27f42e89a8c3451b364"; + }; + } + { + name = "gulp_cheerio___gulp_cheerio_0.6.3.tgz"; + path = fetchurl { + name = "gulp_cheerio___gulp_cheerio_0.6.3.tgz"; + url = "https://registry.yarnpkg.com/gulp-cheerio/-/gulp-cheerio-0.6.3.tgz"; + sha1 = "40271c1703368c88408ab8750ba9bf3e1aea9c68"; + }; + } + { + name = "gulp_rename___gulp_rename_1.4.0.tgz"; + path = fetchurl { + name = "gulp_rename___gulp_rename_1.4.0.tgz"; + url = "https://registry.yarnpkg.com/gulp-rename/-/gulp-rename-1.4.0.tgz"; + sha1 = "de1c718e7c4095ae861f7296ef4f3248648240bd"; + }; + } + { + name = "gulp_svgmin___gulp_svgmin_1.2.4.tgz"; + path = fetchurl { + name = "gulp_svgmin___gulp_svgmin_1.2.4.tgz"; + url = "https://registry.yarnpkg.com/gulp-svgmin/-/gulp-svgmin-1.2.4.tgz"; + sha1 = "a4aa9e2615cf1105ef555aea86e86296cc20e273"; + }; + } + { + name = "gulp_svgstore___gulp_svgstore_5.0.5.tgz"; + path = fetchurl { + name = "gulp_svgstore___gulp_svgstore_5.0.5.tgz"; + url = "https://registry.yarnpkg.com/gulp-svgstore/-/gulp-svgstore-5.0.5.tgz"; + sha1 = "4ad5cec5d753a1624a00e49cef5fc86a45d97327"; + }; + } + { + name = "gulp_util___gulp_util_3.0.8.tgz"; + path = fetchurl { + name = "gulp_util___gulp_util_3.0.8.tgz"; + url = "https://registry.yarnpkg.com/gulp-util/-/gulp-util-3.0.8.tgz"; + sha1 = "0054e1e744502e27c04c187c3ecc505dd54bbb4f"; + }; + } + { + name = "gulp_watch___gulp_watch_4.3.11.tgz"; + path = fetchurl { + name = "gulp_watch___gulp_watch_4.3.11.tgz"; + url = "https://registry.yarnpkg.com/gulp-watch/-/gulp-watch-4.3.11.tgz"; + sha1 = "162fc563de9fc770e91f9a7ce3955513a9a118c0"; + }; + } + { + name = "gulp___gulp_3.9.1.tgz"; + path = fetchurl { + name = "gulp___gulp_3.9.1.tgz"; + url = "https://registry.yarnpkg.com/gulp/-/gulp-3.9.1.tgz"; + sha1 = "571ce45928dd40af6514fc4011866016c13845b4"; + }; + } + { + name = "gulplog___gulplog_1.0.0.tgz"; + path = fetchurl { + name = "gulplog___gulplog_1.0.0.tgz"; + url = "https://registry.yarnpkg.com/gulplog/-/gulplog-1.0.0.tgz"; + sha1 = "e28c4d45d05ecbbed818363ce8f9c5926229ffe5"; + }; + } + { + name = "has_ansi___has_ansi_2.0.0.tgz"; + path = fetchurl { + name = "has_ansi___has_ansi_2.0.0.tgz"; + url = "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz"; + sha1 = "34f5049ce1ecdf2b0649af3ef24e45ed35416d91"; + }; + } + { + name = "has_gulplog___has_gulplog_0.1.0.tgz"; + path = fetchurl { + name = "has_gulplog___has_gulplog_0.1.0.tgz"; + url = "https://registry.yarnpkg.com/has-gulplog/-/has-gulplog-0.1.0.tgz"; + sha1 = "6414c82913697da51590397dafb12f22967811ce"; + }; + } + { + name = "has_value___has_value_0.3.1.tgz"; + path = fetchurl { + name = "has_value___has_value_0.3.1.tgz"; + url = "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz"; + sha1 = "7b1f58bada62ca827ec0a2078025654845995e1f"; + }; + } + { + name = "has_value___has_value_1.0.0.tgz"; + path = fetchurl { + name = "has_value___has_value_1.0.0.tgz"; + url = "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz"; + sha1 = "18b281da585b1c5c51def24c930ed29a0be6b177"; + }; + } + { + name = "has_values___has_values_0.1.4.tgz"; + path = fetchurl { + name = "has_values___has_values_0.1.4.tgz"; + url = "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz"; + sha1 = "6d61de95d91dfca9b9a02089ad384bff8f62b771"; + }; + } + { + name = "has_values___has_values_1.0.0.tgz"; + path = fetchurl { + name = "has_values___has_values_1.0.0.tgz"; + url = "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz"; + sha1 = "95b0b63fec2146619a6fe57fe75628d5a39efe4f"; + }; + } + { + name = "has___has_1.0.3.tgz"; + path = fetchurl { + name = "has___has_1.0.3.tgz"; + url = "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz"; + sha1 = "722d7cbfc1f6aa8241f16dd814e011e1f41e8796"; + }; + } + { + name = "homedir_polyfill___homedir_polyfill_1.0.3.tgz"; + path = fetchurl { + name = "homedir_polyfill___homedir_polyfill_1.0.3.tgz"; + url = "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz"; + sha1 = "743298cef4e5af3e194161fbadcc2151d3a058e8"; + }; + } + { + name = "htmlparser2___htmlparser2_3.10.1.tgz"; + path = fetchurl { + name = "htmlparser2___htmlparser2_3.10.1.tgz"; + url = "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.10.1.tgz"; + sha1 = "bd679dc3f59897b6a34bb10749c855bb53a9392f"; + }; + } + { + name = "inflight___inflight_1.0.6.tgz"; + path = fetchurl { + name = "inflight___inflight_1.0.6.tgz"; + url = "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz"; + sha1 = "49bd6331d7d02d0c09bc910a1075ba8165b56df9"; + }; + } + { + name = "inherits___inherits_1.0.2.tgz"; + path = fetchurl { + name = "inherits___inherits_1.0.2.tgz"; + url = "https://registry.yarnpkg.com/inherits/-/inherits-1.0.2.tgz"; + sha1 = "ca4309dadee6b54cc0b8d247e8d7c7a0975bdc9b"; + }; + } + { + name = "inherits___inherits_2.0.4.tgz"; + path = fetchurl { + name = "inherits___inherits_2.0.4.tgz"; + url = "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz"; + sha1 = "0fa2c64f932917c3433a0ded55363aae37416b7c"; + }; + } + { + name = "ini___ini_1.3.8.tgz"; + path = fetchurl { + name = "ini___ini_1.3.8.tgz"; + url = "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz"; + sha1 = "a29da425b48806f34767a4efce397269af28432c"; + }; + } + { + name = "interpret___interpret_1.4.0.tgz"; + path = fetchurl { + name = "interpret___interpret_1.4.0.tgz"; + url = "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz"; + sha1 = "665ab8bc4da27a774a40584e812e3e0fa45b1a1e"; + }; + } + { + name = "is_absolute___is_absolute_1.0.0.tgz"; + path = fetchurl { + name = "is_absolute___is_absolute_1.0.0.tgz"; + url = "https://registry.yarnpkg.com/is-absolute/-/is-absolute-1.0.0.tgz"; + sha1 = "395e1ae84b11f26ad1795e73c17378e48a301576"; + }; + } + { + name = "is_accessor_descriptor___is_accessor_descriptor_0.1.6.tgz"; + path = fetchurl { + name = "is_accessor_descriptor___is_accessor_descriptor_0.1.6.tgz"; + url = "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz"; + sha1 = "a9e12cb3ae8d876727eeef3843f8a0897b5c98d6"; + }; + } + { + name = "is_accessor_descriptor___is_accessor_descriptor_1.0.0.tgz"; + path = fetchurl { + name = "is_accessor_descriptor___is_accessor_descriptor_1.0.0.tgz"; + url = "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz"; + sha1 = "169c2f6d3df1f992618072365c9b0ea1f6878656"; + }; + } + { + name = "is_binary_path___is_binary_path_1.0.1.tgz"; + path = fetchurl { + name = "is_binary_path___is_binary_path_1.0.1.tgz"; + url = "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz"; + sha1 = "75f16642b480f187a711c814161fd3a4a7655898"; + }; + } + { + name = "is_buffer___is_buffer_1.1.6.tgz"; + path = fetchurl { + name = "is_buffer___is_buffer_1.1.6.tgz"; + url = "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz"; + sha1 = "efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be"; + }; + } + { + name = "is_core_module___is_core_module_2.8.0.tgz"; + path = fetchurl { + name = "is_core_module___is_core_module_2.8.0.tgz"; + url = "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.8.0.tgz"; + sha1 = "0321336c3d0925e497fd97f5d95cb114a5ccd548"; + }; + } + { + name = "is_data_descriptor___is_data_descriptor_0.1.4.tgz"; + path = fetchurl { + name = "is_data_descriptor___is_data_descriptor_0.1.4.tgz"; + url = "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz"; + sha1 = "0b5ee648388e2c860282e793f1856fec3f301b56"; + }; + } + { + name = "is_data_descriptor___is_data_descriptor_1.0.0.tgz"; + path = fetchurl { + name = "is_data_descriptor___is_data_descriptor_1.0.0.tgz"; + url = "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz"; + sha1 = "d84876321d0e7add03990406abbbbd36ba9268c7"; + }; + } + { + name = "is_descriptor___is_descriptor_0.1.6.tgz"; + path = fetchurl { + name = "is_descriptor___is_descriptor_0.1.6.tgz"; + url = "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz"; + sha1 = "366d8240dde487ca51823b1ab9f07a10a78251ca"; + }; + } + { + name = "is_descriptor___is_descriptor_1.0.2.tgz"; + path = fetchurl { + name = "is_descriptor___is_descriptor_1.0.2.tgz"; + url = "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz"; + sha1 = "3b159746a66604b04f8c81524ba365c5f14d86ec"; + }; + } + { + name = "is_dotfile___is_dotfile_1.0.3.tgz"; + path = fetchurl { + name = "is_dotfile___is_dotfile_1.0.3.tgz"; + url = "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz"; + sha1 = "a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1"; + }; + } + { + name = "is_equal_shallow___is_equal_shallow_0.1.3.tgz"; + path = fetchurl { + name = "is_equal_shallow___is_equal_shallow_0.1.3.tgz"; + url = "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz"; + sha1 = "2238098fc221de0bcfa5d9eac4c45d638aa1c534"; + }; + } + { + name = "is_extendable___is_extendable_0.1.1.tgz"; + path = fetchurl { + name = "is_extendable___is_extendable_0.1.1.tgz"; + url = "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz"; + sha1 = "62b110e289a471418e3ec36a617d472e301dfc89"; + }; + } + { + name = "is_extendable___is_extendable_1.0.1.tgz"; + path = fetchurl { + name = "is_extendable___is_extendable_1.0.1.tgz"; + url = "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz"; + sha1 = "a7470f9e426733d81bd81e1155264e3a3507cab4"; + }; + } + { + name = "is_extglob___is_extglob_1.0.0.tgz"; + path = fetchurl { + name = "is_extglob___is_extglob_1.0.0.tgz"; + url = "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz"; + sha1 = "ac468177c4943405a092fc8f29760c6ffc6206c0"; + }; + } + { + name = "is_extglob___is_extglob_2.1.1.tgz"; + path = fetchurl { + name = "is_extglob___is_extglob_2.1.1.tgz"; + url = "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz"; + sha1 = "a88c02535791f02ed37c76a1b9ea9773c833f8c2"; + }; + } + { + name = "is_glob___is_glob_2.0.1.tgz"; + path = fetchurl { + name = "is_glob___is_glob_2.0.1.tgz"; + url = "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz"; + sha1 = "d096f926a3ded5600f3fdfd91198cb0888c2d863"; + }; + } + { + name = "is_glob___is_glob_3.1.0.tgz"; + path = fetchurl { + name = "is_glob___is_glob_3.1.0.tgz"; + url = "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz"; + sha1 = "7ba5ae24217804ac70707b96922567486cc3e84a"; + }; + } + { + name = "is_number___is_number_2.1.0.tgz"; + path = fetchurl { + name = "is_number___is_number_2.1.0.tgz"; + url = "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz"; + sha1 = "01fcbbb393463a548f2f466cce16dece49db908f"; + }; + } + { + name = "is_number___is_number_3.0.0.tgz"; + path = fetchurl { + name = "is_number___is_number_3.0.0.tgz"; + url = "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz"; + sha1 = "24fd6201a4782cf50561c810276afc7d12d71195"; + }; + } + { + name = "is_number___is_number_4.0.0.tgz"; + path = fetchurl { + name = "is_number___is_number_4.0.0.tgz"; + url = "https://registry.yarnpkg.com/is-number/-/is-number-4.0.0.tgz"; + sha1 = "0026e37f5454d73e356dfe6564699867c6a7f0ff"; + }; + } + { + name = "is_plain_object___is_plain_object_2.0.4.tgz"; + path = fetchurl { + name = "is_plain_object___is_plain_object_2.0.4.tgz"; + url = "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz"; + sha1 = "2c163b3fafb1b606d9d17928f05c2a1c38e07677"; + }; + } + { + name = "is_posix_bracket___is_posix_bracket_0.1.1.tgz"; + path = fetchurl { + name = "is_posix_bracket___is_posix_bracket_0.1.1.tgz"; + url = "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz"; + sha1 = "3334dc79774368e92f016e6fbc0a88f5cd6e6bc4"; + }; + } + { + name = "is_primitive___is_primitive_2.0.0.tgz"; + path = fetchurl { + name = "is_primitive___is_primitive_2.0.0.tgz"; + url = "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz"; + sha1 = "207bab91638499c07b2adf240a41a87210034575"; + }; + } + { + name = "is_relative___is_relative_1.0.0.tgz"; + path = fetchurl { + name = "is_relative___is_relative_1.0.0.tgz"; + url = "https://registry.yarnpkg.com/is-relative/-/is-relative-1.0.0.tgz"; + sha1 = "a1bb6935ce8c5dba1e8b9754b9b2dcc020e2260d"; + }; + } + { + name = "is_unc_path___is_unc_path_1.0.0.tgz"; + path = fetchurl { + name = "is_unc_path___is_unc_path_1.0.0.tgz"; + url = "https://registry.yarnpkg.com/is-unc-path/-/is-unc-path-1.0.0.tgz"; + sha1 = "d731e8898ed090a12c352ad2eaed5095ad322c9d"; + }; + } + { + name = "is_utf8___is_utf8_0.2.1.tgz"; + path = fetchurl { + name = "is_utf8___is_utf8_0.2.1.tgz"; + url = "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz"; + sha1 = "4b0da1442104d1b336340e80797e865cf39f7d72"; + }; + } + { + name = "is_windows___is_windows_1.0.2.tgz"; + path = fetchurl { + name = "is_windows___is_windows_1.0.2.tgz"; + url = "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz"; + sha1 = "d1850eb9791ecd18e6182ce12a30f396634bb19d"; + }; + } + { + name = "isarray___isarray_0.0.1.tgz"; + path = fetchurl { + name = "isarray___isarray_0.0.1.tgz"; + url = "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz"; + sha1 = "8a18acfca9a8f4177e09abfc6038939b05d1eedf"; + }; + } + { + name = "isarray___isarray_1.0.0.tgz"; + path = fetchurl { + name = "isarray___isarray_1.0.0.tgz"; + url = "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz"; + sha1 = "bb935d48582cba168c06834957a54a3e07124f11"; + }; + } + { + name = "isexe___isexe_2.0.0.tgz"; + path = fetchurl { + name = "isexe___isexe_2.0.0.tgz"; + url = "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz"; + sha1 = "e8fbf374dc556ff8947a10dcb0572d633f2cfa10"; + }; + } + { + name = "isobject___isobject_2.1.0.tgz"; + path = fetchurl { + name = "isobject___isobject_2.1.0.tgz"; + url = "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz"; + sha1 = "f065561096a3f1da2ef46272f815c840d87e0c89"; + }; + } + { + name = "isobject___isobject_3.0.1.tgz"; + path = fetchurl { + name = "isobject___isobject_3.0.1.tgz"; + url = "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz"; + sha1 = "4e431e92b11a9731636aa1f9c8d1ccbcfdab78df"; + }; + } + { + name = "js_yaml___js_yaml_3.7.0.tgz"; + path = fetchurl { + name = "js_yaml___js_yaml_3.7.0.tgz"; + url = "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.7.0.tgz"; + sha1 = "5c967ddd837a9bfdca5f2de84253abe8a1c03b80"; + }; + } + { + name = "kind_of___kind_of_1.1.0.tgz"; + path = fetchurl { + name = "kind_of___kind_of_1.1.0.tgz"; + url = "https://registry.yarnpkg.com/kind-of/-/kind-of-1.1.0.tgz"; + sha1 = "140a3d2d41a36d2efcfa9377b62c24f8495a5c44"; + }; + } + { + name = "kind_of___kind_of_3.2.2.tgz"; + path = fetchurl { + name = "kind_of___kind_of_3.2.2.tgz"; + url = "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz"; + sha1 = "31ea21a734bab9bbb0f32466d893aea51e4a3c64"; + }; + } + { + name = "kind_of___kind_of_4.0.0.tgz"; + path = fetchurl { + name = "kind_of___kind_of_4.0.0.tgz"; + url = "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz"; + sha1 = "20813df3d712928b207378691a45066fae72dd57"; + }; + } + { + name = "kind_of___kind_of_5.1.0.tgz"; + path = fetchurl { + name = "kind_of___kind_of_5.1.0.tgz"; + url = "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz"; + sha1 = "729c91e2d857b7a419a1f9aa65685c4c33f5845d"; + }; + } + { + name = "kind_of___kind_of_6.0.3.tgz"; + path = fetchurl { + name = "kind_of___kind_of_6.0.3.tgz"; + url = "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz"; + sha1 = "07c05034a6c349fa06e24fa35aa76db4580ce4dd"; + }; + } + { + name = "liftoff___liftoff_2.5.0.tgz"; + path = fetchurl { + name = "liftoff___liftoff_2.5.0.tgz"; + url = "https://registry.yarnpkg.com/liftoff/-/liftoff-2.5.0.tgz"; + sha1 = "2009291bb31cea861bbf10a7c15a28caf75c31ec"; + }; + } + { + name = "lodash._basecopy___lodash._basecopy_3.0.1.tgz"; + path = fetchurl { + name = "lodash._basecopy___lodash._basecopy_3.0.1.tgz"; + url = "https://registry.yarnpkg.com/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz"; + sha1 = "8da0e6a876cf344c0ad8a54882111dd3c5c7ca36"; + }; + } + { + name = "lodash._basetostring___lodash._basetostring_3.0.1.tgz"; + path = fetchurl { + name = "lodash._basetostring___lodash._basetostring_3.0.1.tgz"; + url = "https://registry.yarnpkg.com/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz"; + sha1 = "d1861d877f824a52f669832dcaf3ee15566a07d5"; + }; + } + { + name = "lodash._basevalues___lodash._basevalues_3.0.0.tgz"; + path = fetchurl { + name = "lodash._basevalues___lodash._basevalues_3.0.0.tgz"; + url = "https://registry.yarnpkg.com/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz"; + sha1 = "5b775762802bde3d3297503e26300820fdf661b7"; + }; + } + { + name = "lodash._getnative___lodash._getnative_3.9.1.tgz"; + path = fetchurl { + name = "lodash._getnative___lodash._getnative_3.9.1.tgz"; + url = "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz"; + sha1 = "570bc7dede46d61cdcde687d65d3eecbaa3aaff5"; + }; + } + { + name = "lodash._isiterateecall___lodash._isiterateecall_3.0.9.tgz"; + path = fetchurl { + name = "lodash._isiterateecall___lodash._isiterateecall_3.0.9.tgz"; + url = "https://registry.yarnpkg.com/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz"; + sha1 = "5203ad7ba425fae842460e696db9cf3e6aac057c"; + }; + } + { + name = "lodash._reescape___lodash._reescape_3.0.0.tgz"; + path = fetchurl { + name = "lodash._reescape___lodash._reescape_3.0.0.tgz"; + url = "https://registry.yarnpkg.com/lodash._reescape/-/lodash._reescape-3.0.0.tgz"; + sha1 = "2b1d6f5dfe07c8a355753e5f27fac7f1cde1616a"; + }; + } + { + name = "lodash._reevaluate___lodash._reevaluate_3.0.0.tgz"; + path = fetchurl { + name = "lodash._reevaluate___lodash._reevaluate_3.0.0.tgz"; + url = "https://registry.yarnpkg.com/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz"; + sha1 = "58bc74c40664953ae0b124d806996daca431e2ed"; + }; + } + { + name = "lodash._reinterpolate___lodash._reinterpolate_3.0.0.tgz"; + path = fetchurl { + name = "lodash._reinterpolate___lodash._reinterpolate_3.0.0.tgz"; + url = "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz"; + sha1 = "0ccf2d89166af03b3663c796538b75ac6e114d9d"; + }; + } + { + name = "lodash._root___lodash._root_3.0.1.tgz"; + path = fetchurl { + name = "lodash._root___lodash._root_3.0.1.tgz"; + url = "https://registry.yarnpkg.com/lodash._root/-/lodash._root-3.0.1.tgz"; + sha1 = "fba1c4524c19ee9a5f8136b4609f017cf4ded692"; + }; + } + { + name = "lodash.assignin___lodash.assignin_4.2.0.tgz"; + path = fetchurl { + name = "lodash.assignin___lodash.assignin_4.2.0.tgz"; + url = "https://registry.yarnpkg.com/lodash.assignin/-/lodash.assignin-4.2.0.tgz"; + sha1 = "ba8df5fb841eb0a3e8044232b0e263a8dc6a28a2"; + }; + } + { + name = "lodash.bind___lodash.bind_4.2.1.tgz"; + path = fetchurl { + name = "lodash.bind___lodash.bind_4.2.1.tgz"; + url = "https://registry.yarnpkg.com/lodash.bind/-/lodash.bind-4.2.1.tgz"; + sha1 = "7ae3017e939622ac31b7d7d7dcb1b34db1690d35"; + }; + } + { + name = "lodash.defaults___lodash.defaults_4.2.0.tgz"; + path = fetchurl { + name = "lodash.defaults___lodash.defaults_4.2.0.tgz"; + url = "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz"; + sha1 = "d09178716ffea4dde9e5fb7b37f6f0802274580c"; + }; + } + { + name = "lodash.escape___lodash.escape_3.2.0.tgz"; + path = fetchurl { + name = "lodash.escape___lodash.escape_3.2.0.tgz"; + url = "https://registry.yarnpkg.com/lodash.escape/-/lodash.escape-3.2.0.tgz"; + sha1 = "995ee0dc18c1b48cc92effae71a10aab5b487698"; + }; + } + { + name = "lodash.filter___lodash.filter_4.6.0.tgz"; + path = fetchurl { + name = "lodash.filter___lodash.filter_4.6.0.tgz"; + url = "https://registry.yarnpkg.com/lodash.filter/-/lodash.filter-4.6.0.tgz"; + sha1 = "668b1d4981603ae1cc5a6fa760143e480b4c4ace"; + }; + } + { + name = "lodash.flatten___lodash.flatten_4.4.0.tgz"; + path = fetchurl { + name = "lodash.flatten___lodash.flatten_4.4.0.tgz"; + url = "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz"; + sha1 = "f31c22225a9632d2bbf8e4addbef240aa765a61f"; + }; + } + { + name = "lodash.foreach___lodash.foreach_4.5.0.tgz"; + path = fetchurl { + name = "lodash.foreach___lodash.foreach_4.5.0.tgz"; + url = "https://registry.yarnpkg.com/lodash.foreach/-/lodash.foreach-4.5.0.tgz"; + sha1 = "1a6a35eace401280c7f06dddec35165ab27e3e53"; + }; + } + { + name = "lodash.isarguments___lodash.isarguments_3.1.0.tgz"; + path = fetchurl { + name = "lodash.isarguments___lodash.isarguments_3.1.0.tgz"; + url = "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz"; + sha1 = "2f573d85c6a24289ff00663b491c1d338ff3458a"; + }; + } + { + name = "lodash.isarray___lodash.isarray_3.0.4.tgz"; + path = fetchurl { + name = "lodash.isarray___lodash.isarray_3.0.4.tgz"; + url = "https://registry.yarnpkg.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz"; + sha1 = "79e4eb88c36a8122af86f844aa9bcd851b5fbb55"; + }; + } + { + name = "lodash.keys___lodash.keys_3.1.2.tgz"; + path = fetchurl { + name = "lodash.keys___lodash.keys_3.1.2.tgz"; + url = "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-3.1.2.tgz"; + sha1 = "4dbc0472b156be50a0b286855d1bd0b0c656098a"; + }; + } + { + name = "lodash.map___lodash.map_4.6.0.tgz"; + path = fetchurl { + name = "lodash.map___lodash.map_4.6.0.tgz"; + url = "https://registry.yarnpkg.com/lodash.map/-/lodash.map-4.6.0.tgz"; + sha1 = "771ec7839e3473d9c4cde28b19394c3562f4f6d3"; + }; + } + { + name = "lodash.merge___lodash.merge_4.6.2.tgz"; + path = fetchurl { + name = "lodash.merge___lodash.merge_4.6.2.tgz"; + url = "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz"; + sha1 = "558aa53b43b661e1925a0afdfa36a9a1085fe57a"; + }; + } + { + name = "lodash.pick___lodash.pick_4.4.0.tgz"; + path = fetchurl { + name = "lodash.pick___lodash.pick_4.4.0.tgz"; + url = "https://registry.yarnpkg.com/lodash.pick/-/lodash.pick-4.4.0.tgz"; + sha1 = "52f05610fff9ded422611441ed1fc123a03001b3"; + }; + } + { + name = "lodash.reduce___lodash.reduce_4.6.0.tgz"; + path = fetchurl { + name = "lodash.reduce___lodash.reduce_4.6.0.tgz"; + url = "https://registry.yarnpkg.com/lodash.reduce/-/lodash.reduce-4.6.0.tgz"; + sha1 = "f1ab6b839299ad48f784abbf476596f03b914d3b"; + }; + } + { + name = "lodash.reject___lodash.reject_4.6.0.tgz"; + path = fetchurl { + name = "lodash.reject___lodash.reject_4.6.0.tgz"; + url = "https://registry.yarnpkg.com/lodash.reject/-/lodash.reject-4.6.0.tgz"; + sha1 = "80d6492dc1470864bbf583533b651f42a9f52415"; + }; + } + { + name = "lodash.restparam___lodash.restparam_3.6.1.tgz"; + path = fetchurl { + name = "lodash.restparam___lodash.restparam_3.6.1.tgz"; + url = "https://registry.yarnpkg.com/lodash.restparam/-/lodash.restparam-3.6.1.tgz"; + sha1 = "936a4e309ef330a7645ed4145986c85ae5b20805"; + }; + } + { + name = "lodash.some___lodash.some_4.6.0.tgz"; + path = fetchurl { + name = "lodash.some___lodash.some_4.6.0.tgz"; + url = "https://registry.yarnpkg.com/lodash.some/-/lodash.some-4.6.0.tgz"; + sha1 = "1bb9f314ef6b8baded13b549169b2a945eb68e4d"; + }; + } + { + name = "lodash.template___lodash.template_3.6.2.tgz"; + path = fetchurl { + name = "lodash.template___lodash.template_3.6.2.tgz"; + url = "https://registry.yarnpkg.com/lodash.template/-/lodash.template-3.6.2.tgz"; + sha1 = "f8cdecc6169a255be9098ae8b0c53d378931d14f"; + }; + } + { + name = "lodash.templatesettings___lodash.templatesettings_3.1.1.tgz"; + path = fetchurl { + name = "lodash.templatesettings___lodash.templatesettings_3.1.1.tgz"; + url = "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz"; + sha1 = "fb307844753b66b9f1afa54e262c745307dba8e5"; + }; + } + { + name = "lodash___lodash_1.0.2.tgz"; + path = fetchurl { + name = "lodash___lodash_1.0.2.tgz"; + url = "https://registry.yarnpkg.com/lodash/-/lodash-1.0.2.tgz"; + sha1 = "8f57560c83b59fc270bd3d561b690043430e2551"; + }; + } + { + name = "lru_cache___lru_cache_2.7.3.tgz"; + path = fetchurl { + name = "lru_cache___lru_cache_2.7.3.tgz"; + url = "https://registry.yarnpkg.com/lru-cache/-/lru-cache-2.7.3.tgz"; + sha1 = "6d4524e8b955f95d4f5b58851ce21dd72fb4e952"; + }; + } + { + name = "make_iterator___make_iterator_1.0.1.tgz"; + path = fetchurl { + name = "make_iterator___make_iterator_1.0.1.tgz"; + url = "https://registry.yarnpkg.com/make-iterator/-/make-iterator-1.0.1.tgz"; + sha1 = "29b33f312aa8f547c4a5e490f56afcec99133ad6"; + }; + } + { + name = "map_cache___map_cache_0.2.2.tgz"; + path = fetchurl { + name = "map_cache___map_cache_0.2.2.tgz"; + url = "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz"; + sha1 = "c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf"; + }; + } + { + name = "map_visit___map_visit_1.0.0.tgz"; + path = fetchurl { + name = "map_visit___map_visit_1.0.0.tgz"; + url = "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz"; + sha1 = "ecdca8f13144e660f1b5bd41f12f3479d98dfb8f"; + }; + } + { + name = "math_random___math_random_1.0.4.tgz"; + path = fetchurl { + name = "math_random___math_random_1.0.4.tgz"; + url = "https://registry.yarnpkg.com/math-random/-/math-random-1.0.4.tgz"; + sha1 = "5dd6943c938548267016d4e34f057583080c514c"; + }; + } + { + name = "micromatch___micromatch_2.3.11.tgz"; + path = fetchurl { + name = "micromatch___micromatch_2.3.11.tgz"; + url = "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz"; + sha1 = "86677c97d1720b363431d04d0d15293bd38c1565"; + }; + } + { + name = "micromatch___micromatch_3.1.10.tgz"; + path = fetchurl { + name = "micromatch___micromatch_3.1.10.tgz"; + url = "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz"; + sha1 = "70859bc95c9840952f359a068a3fc49f9ecfac23"; + }; + } + { + name = "minimatch___minimatch_2.0.10.tgz"; + path = fetchurl { + name = "minimatch___minimatch_2.0.10.tgz"; + url = "https://registry.yarnpkg.com/minimatch/-/minimatch-2.0.10.tgz"; + sha1 = "8d087c39c6b38c001b97fca7ce6d0e1e80afbac7"; + }; + } + { + name = "minimatch___minimatch_0.2.14.tgz"; + path = fetchurl { + name = "minimatch___minimatch_0.2.14.tgz"; + url = "https://registry.yarnpkg.com/minimatch/-/minimatch-0.2.14.tgz"; + sha1 = "c74e780574f63c6f9a090e90efbe6ef53a6a756a"; + }; + } + { + name = "minimist___minimist_1.2.5.tgz"; + path = fetchurl { + name = "minimist___minimist_1.2.5.tgz"; + url = "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz"; + sha1 = "67d66014b66a6a8aaa0c083c5fd58df4e4e97602"; + }; + } + { + name = "mixin_deep___mixin_deep_1.3.2.tgz"; + path = fetchurl { + name = "mixin_deep___mixin_deep_1.3.2.tgz"; + url = "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz"; + sha1 = "1120b43dc359a785dce65b55b82e257ccf479566"; + }; + } + { + name = "mkdirp___mkdirp_0.5.5.tgz"; + path = fetchurl { + name = "mkdirp___mkdirp_0.5.5.tgz"; + url = "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz"; + sha1 = "d91cefd62d1436ca0f41620e251288d420099def"; + }; + } + { + name = "ms___ms_2.0.0.tgz"; + path = fetchurl { + name = "ms___ms_2.0.0.tgz"; + url = "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz"; + sha1 = "5608aeadfc00be6c2901df5f9861788de0d597c8"; + }; + } + { + name = "multipipe___multipipe_0.1.2.tgz"; + path = fetchurl { + name = "multipipe___multipipe_0.1.2.tgz"; + url = "https://registry.yarnpkg.com/multipipe/-/multipipe-0.1.2.tgz"; + sha1 = "2a8f2ddf70eed564dff2d57f1e1a137d9f05078b"; + }; + } + { + name = "nan___nan_2.15.0.tgz"; + path = fetchurl { + name = "nan___nan_2.15.0.tgz"; + url = "https://registry.yarnpkg.com/nan/-/nan-2.15.0.tgz"; + sha1 = "3f34a473ff18e15c1b5626b62903b5ad6e665fee"; + }; + } + { + name = "nanomatch___nanomatch_1.2.13.tgz"; + path = fetchurl { + name = "nanomatch___nanomatch_1.2.13.tgz"; + url = "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz"; + sha1 = "b87a8aa4fc0de8fe6be88895b38983ff265bd119"; + }; + } + { + name = "natives___natives_1.1.6.tgz"; + path = fetchurl { + name = "natives___natives_1.1.6.tgz"; + url = "https://registry.yarnpkg.com/natives/-/natives-1.1.6.tgz"; + sha1 = "a603b4a498ab77173612b9ea1acdec4d980f00bb"; + }; + } + { + name = "normalize_path___normalize_path_2.1.1.tgz"; + path = fetchurl { + name = "normalize_path___normalize_path_2.1.1.tgz"; + url = "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz"; + sha1 = "1ab28b556e198363a8c1a6f7e6fa20137fe6aed9"; + }; + } + { + name = "nth_check___nth_check_1.0.2.tgz"; + path = fetchurl { + name = "nth_check___nth_check_1.0.2.tgz"; + url = "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz"; + sha1 = "b2bd295c37e3dd58a3bf0700376663ba4d9cf05c"; + }; + } + { + name = "object_assign___object_assign_3.0.0.tgz"; + path = fetchurl { + name = "object_assign___object_assign_3.0.0.tgz"; + url = "https://registry.yarnpkg.com/object-assign/-/object-assign-3.0.0.tgz"; + sha1 = "9bedd5ca0897949bca47e7ff408062d549f587f2"; + }; + } + { + name = "object_assign___object_assign_4.1.1.tgz"; + path = fetchurl { + name = "object_assign___object_assign_4.1.1.tgz"; + url = "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz"; + sha1 = "2109adc7965887cfc05cbbd442cac8bfbb360863"; + }; + } + { + name = "object_copy___object_copy_0.1.0.tgz"; + path = fetchurl { + name = "object_copy___object_copy_0.1.0.tgz"; + url = "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz"; + sha1 = "7e7d858b781bd7c991a41ba975ed3812754e998c"; + }; + } + { + name = "object_visit___object_visit_1.0.1.tgz"; + path = fetchurl { + name = "object_visit___object_visit_1.0.1.tgz"; + url = "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz"; + sha1 = "f79c4493af0c5377b59fe39d395e41042dd045bb"; + }; + } + { + name = "object.defaults___object.defaults_1.1.0.tgz"; + path = fetchurl { + name = "object.defaults___object.defaults_1.1.0.tgz"; + url = "https://registry.yarnpkg.com/object.defaults/-/object.defaults-1.1.0.tgz"; + sha1 = "3a7f868334b407dea06da16d88d5cd29e435fecf"; + }; + } + { + name = "object.map___object.map_1.0.1.tgz"; + path = fetchurl { + name = "object.map___object.map_1.0.1.tgz"; + url = "https://registry.yarnpkg.com/object.map/-/object.map-1.0.1.tgz"; + sha1 = "cf83e59dc8fcc0ad5f4250e1f78b3b81bd801d37"; + }; + } + { + name = "object.omit___object.omit_2.0.1.tgz"; + path = fetchurl { + name = "object.omit___object.omit_2.0.1.tgz"; + url = "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz"; + sha1 = "1a9c744829f39dbb858c76ca3579ae2a54ebd1fa"; + }; + } + { + name = "object.pick___object.pick_1.3.0.tgz"; + path = fetchurl { + name = "object.pick___object.pick_1.3.0.tgz"; + url = "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz"; + sha1 = "87a10ac4c1694bd2e1cbf53591a66141fb5dd747"; + }; + } + { + name = "once___once_1.4.0.tgz"; + path = fetchurl { + name = "once___once_1.4.0.tgz"; + url = "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz"; + sha1 = "583b1aa775961d4b113ac17d9c50baef9dd76bd1"; + }; + } + { + name = "once___once_1.3.3.tgz"; + path = fetchurl { + name = "once___once_1.3.3.tgz"; + url = "https://registry.yarnpkg.com/once/-/once-1.3.3.tgz"; + sha1 = "b2e261557ce4c314ec8304f3fa82663e4297ca20"; + }; + } + { + name = "orchestrator___orchestrator_0.3.8.tgz"; + path = fetchurl { + name = "orchestrator___orchestrator_0.3.8.tgz"; + url = "https://registry.yarnpkg.com/orchestrator/-/orchestrator-0.3.8.tgz"; + sha1 = "14e7e9e2764f7315fbac184e506c7aa6df94ad7e"; + }; + } + { + name = "ordered_read_streams___ordered_read_streams_0.1.0.tgz"; + path = fetchurl { + name = "ordered_read_streams___ordered_read_streams_0.1.0.tgz"; + url = "https://registry.yarnpkg.com/ordered-read-streams/-/ordered-read-streams-0.1.0.tgz"; + sha1 = "fd565a9af8eb4473ba69b6ed8a34352cb552f126"; + }; + } + { + name = "os_homedir___os_homedir_1.0.2.tgz"; + path = fetchurl { + name = "os_homedir___os_homedir_1.0.2.tgz"; + url = "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz"; + sha1 = "ffbc4988336e0e833de0c168c7ef152121aa7fb3"; + }; + } + { + name = "parse_filepath___parse_filepath_1.0.2.tgz"; + path = fetchurl { + name = "parse_filepath___parse_filepath_1.0.2.tgz"; + url = "https://registry.yarnpkg.com/parse-filepath/-/parse-filepath-1.0.2.tgz"; + sha1 = "a632127f53aaf3d15876f5872f3ffac763d6c891"; + }; + } + { + name = "parse_glob___parse_glob_3.0.4.tgz"; + path = fetchurl { + name = "parse_glob___parse_glob_3.0.4.tgz"; + url = "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz"; + sha1 = "b2c376cfb11f35513badd173ef0bb6e3a388391c"; + }; + } + { + name = "parse_node_version___parse_node_version_1.0.1.tgz"; + path = fetchurl { + name = "parse_node_version___parse_node_version_1.0.1.tgz"; + url = "https://registry.yarnpkg.com/parse-node-version/-/parse-node-version-1.0.1.tgz"; + sha1 = "e2b5dbede00e7fa9bc363607f53327e8b073189b"; + }; + } + { + name = "parse_passwd___parse_passwd_1.0.0.tgz"; + path = fetchurl { + name = "parse_passwd___parse_passwd_1.0.0.tgz"; + url = "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz"; + sha1 = "6d5b934a456993b23d37f40a382d6f1666a8e5c6"; + }; + } + { + name = "pascalcase___pascalcase_0.1.1.tgz"; + path = fetchurl { + name = "pascalcase___pascalcase_0.1.1.tgz"; + url = "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz"; + sha1 = "b363e55e8006ca6fe21784d2db22bd15d7917f14"; + }; + } + { + name = "path_dirname___path_dirname_1.0.2.tgz"; + path = fetchurl { + name = "path_dirname___path_dirname_1.0.2.tgz"; + url = "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz"; + sha1 = "cc33d24d525e099a5388c0336c6e32b9160609e0"; + }; + } + { + name = "path_is_absolute___path_is_absolute_1.0.1.tgz"; + path = fetchurl { + name = "path_is_absolute___path_is_absolute_1.0.1.tgz"; + url = "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz"; + sha1 = "174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"; + }; + } + { + name = "path_parse___path_parse_1.0.7.tgz"; + path = fetchurl { + name = "path_parse___path_parse_1.0.7.tgz"; + url = "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz"; + sha1 = "fbc114b60ca42b30d9daf5858e4bd68bbedb6735"; + }; + } + { + name = "path_root_regex___path_root_regex_0.1.2.tgz"; + path = fetchurl { + name = "path_root_regex___path_root_regex_0.1.2.tgz"; + url = "https://registry.yarnpkg.com/path-root-regex/-/path-root-regex-0.1.2.tgz"; + sha1 = "bfccdc8df5b12dc52c8b43ec38d18d72c04ba96d"; + }; + } + { + name = "path_root___path_root_0.1.1.tgz"; + path = fetchurl { + name = "path_root___path_root_0.1.1.tgz"; + url = "https://registry.yarnpkg.com/path-root/-/path-root-0.1.1.tgz"; + sha1 = "9a4a6814cac1c0cd73360a95f32083c8ea4745b7"; + }; + } + { + name = "pify___pify_2.3.0.tgz"; + path = fetchurl { + name = "pify___pify_2.3.0.tgz"; + url = "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz"; + sha1 = "ed141a6ac043a849ea588498e7dca8b15330e90c"; + }; + } + { + name = "pinkie_promise___pinkie_promise_2.0.1.tgz"; + path = fetchurl { + name = "pinkie_promise___pinkie_promise_2.0.1.tgz"; + url = "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz"; + sha1 = "2135d6dfa7a358c069ac9b178776288228450ffa"; + }; + } + { + name = "pinkie___pinkie_2.0.4.tgz"; + path = fetchurl { + name = "pinkie___pinkie_2.0.4.tgz"; + url = "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz"; + sha1 = "72556b80cfa0d48a974e80e77248e80ed4f7f870"; + }; + } + { + name = "plugin_error___plugin_error_0.1.2.tgz"; + path = fetchurl { + name = "plugin_error___plugin_error_0.1.2.tgz"; + url = "https://registry.yarnpkg.com/plugin-error/-/plugin-error-0.1.2.tgz"; + sha1 = "3b9bb3335ccf00f425e07437e19276967da47ace"; + }; + } + { + name = "posix_character_classes___posix_character_classes_0.1.1.tgz"; + path = fetchurl { + name = "posix_character_classes___posix_character_classes_0.1.1.tgz"; + url = "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz"; + sha1 = "01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab"; + }; + } + { + name = "preserve___preserve_0.2.0.tgz"; + path = fetchurl { + name = "preserve___preserve_0.2.0.tgz"; + url = "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz"; + sha1 = "815ed1f6ebc65926f865b310c0713bcb3315ce4b"; + }; + } + { + name = "pretty_hrtime___pretty_hrtime_1.0.3.tgz"; + path = fetchurl { + name = "pretty_hrtime___pretty_hrtime_1.0.3.tgz"; + url = "https://registry.yarnpkg.com/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz"; + sha1 = "b7e3ea42435a4c9b2759d99e0f201eb195802ee1"; + }; + } + { + name = "process_nextick_args___process_nextick_args_2.0.1.tgz"; + path = fetchurl { + name = "process_nextick_args___process_nextick_args_2.0.1.tgz"; + url = "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz"; + sha1 = "7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"; + }; + } + { + name = "q___q_1.5.1.tgz"; + path = fetchurl { + name = "q___q_1.5.1.tgz"; + url = "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz"; + sha1 = "7e32f75b41381291d04611f1bf14109ac00651d7"; + }; + } + { + name = "randomatic___randomatic_3.1.1.tgz"; + path = fetchurl { + name = "randomatic___randomatic_3.1.1.tgz"; + url = "https://registry.yarnpkg.com/randomatic/-/randomatic-3.1.1.tgz"; + sha1 = "b776efc59375984e36c537b2f51a1f0aff0da1ed"; + }; + } + { + name = "readable_stream___readable_stream_1.0.34.tgz"; + path = fetchurl { + name = "readable_stream___readable_stream_1.0.34.tgz"; + url = "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz"; + sha1 = "125820e34bc842d2f2aaafafe4c2916ee32c157c"; + }; + } + { + name = "readable_stream___readable_stream_2.3.7.tgz"; + path = fetchurl { + name = "readable_stream___readable_stream_2.3.7.tgz"; + url = "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz"; + sha1 = "1eca1cf711aef814c04f62252a36a62f6cb23b57"; + }; + } + { + name = "readable_stream___readable_stream_3.6.0.tgz"; + path = fetchurl { + name = "readable_stream___readable_stream_3.6.0.tgz"; + url = "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz"; + sha1 = "337bbda3adc0706bd3e024426a286d4b4b2c9198"; + }; + } + { + name = "readable_stream___readable_stream_1.1.14.tgz"; + path = fetchurl { + name = "readable_stream___readable_stream_1.1.14.tgz"; + url = "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz"; + sha1 = "7cf4c54ef648e3813084c636dd2079e166c081d9"; + }; + } + { + name = "readdirp___readdirp_2.2.1.tgz"; + path = fetchurl { + name = "readdirp___readdirp_2.2.1.tgz"; + url = "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz"; + sha1 = "0e87622a3325aa33e892285caf8b4e846529a525"; + }; + } + { + name = "rechoir___rechoir_0.6.2.tgz"; + path = fetchurl { + name = "rechoir___rechoir_0.6.2.tgz"; + url = "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz"; + sha1 = "85204b54dba82d5742e28c96756ef43af50e3384"; + }; + } + { + name = "regex_cache___regex_cache_0.4.4.tgz"; + path = fetchurl { + name = "regex_cache___regex_cache_0.4.4.tgz"; + url = "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz"; + sha1 = "75bdc58a2a1496cec48a12835bc54c8d562336dd"; + }; + } + { + name = "regex_not___regex_not_1.0.2.tgz"; + path = fetchurl { + name = "regex_not___regex_not_1.0.2.tgz"; + url = "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz"; + sha1 = "1f4ece27e00b0b65e0247a6810e6a85d83a5752c"; + }; + } + { + name = "remove_trailing_separator___remove_trailing_separator_1.1.0.tgz"; + path = fetchurl { + name = "remove_trailing_separator___remove_trailing_separator_1.1.0.tgz"; + url = "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz"; + sha1 = "c24bce2a283adad5bc3f58e0d48249b92379d8ef"; + }; + } + { + name = "repeat_element___repeat_element_1.1.4.tgz"; + path = fetchurl { + name = "repeat_element___repeat_element_1.1.4.tgz"; + url = "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.4.tgz"; + sha1 = "be681520847ab58c7568ac75fbfad28ed42d39e9"; + }; + } + { + name = "repeat_string___repeat_string_1.6.1.tgz"; + path = fetchurl { + name = "repeat_string___repeat_string_1.6.1.tgz"; + url = "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz"; + sha1 = "8dcae470e1c88abc2d600fff4a776286da75e637"; + }; + } + { + name = "replace_ext___replace_ext_0.0.1.tgz"; + path = fetchurl { + name = "replace_ext___replace_ext_0.0.1.tgz"; + url = "https://registry.yarnpkg.com/replace-ext/-/replace-ext-0.0.1.tgz"; + sha1 = "29bbd92078a739f0bcce2b4ee41e837953522924"; + }; + } + { + name = "resolve_dir___resolve_dir_1.0.1.tgz"; + path = fetchurl { + name = "resolve_dir___resolve_dir_1.0.1.tgz"; + url = "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-1.0.1.tgz"; + sha1 = "79a40644c362be82f26effe739c9bb5382046f43"; + }; + } + { + name = "resolve_url___resolve_url_0.2.1.tgz"; + path = fetchurl { + name = "resolve_url___resolve_url_0.2.1.tgz"; + url = "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz"; + sha1 = "2c637fe77c893afd2a663fe21aa9080068e2052a"; + }; + } + { + name = "resolve___resolve_1.20.0.tgz"; + path = fetchurl { + name = "resolve___resolve_1.20.0.tgz"; + url = "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz"; + sha1 = "629a013fb3f70755d6f0b7935cc1c2c5378b1975"; + }; + } + { + name = "ret___ret_0.1.15.tgz"; + path = fetchurl { + name = "ret___ret_0.1.15.tgz"; + url = "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz"; + sha1 = "b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc"; + }; + } + { + name = "safe_buffer___safe_buffer_5.1.2.tgz"; + path = fetchurl { + name = "safe_buffer___safe_buffer_5.1.2.tgz"; + url = "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz"; + sha1 = "991ec69d296e0313747d59bdfd2b745c35f8828d"; + }; + } + { + name = "safe_buffer___safe_buffer_5.2.1.tgz"; + path = fetchurl { + name = "safe_buffer___safe_buffer_5.2.1.tgz"; + url = "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz"; + sha1 = "1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"; + }; + } + { + name = "safe_regex___safe_regex_1.1.0.tgz"; + path = fetchurl { + name = "safe_regex___safe_regex_1.1.0.tgz"; + url = "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz"; + sha1 = "40a3669f3b077d1e943d44629e157dd48023bf2e"; + }; + } + { + name = "sax___sax_1.2.4.tgz"; + path = fetchurl { + name = "sax___sax_1.2.4.tgz"; + url = "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz"; + sha1 = "2816234e2378bddc4e5354fab5caa895df7100d9"; + }; + } + { + name = "semver___semver_4.3.6.tgz"; + path = fetchurl { + name = "semver___semver_4.3.6.tgz"; + url = "https://registry.yarnpkg.com/semver/-/semver-4.3.6.tgz"; + sha1 = "300bc6e0e86374f7ba61068b5b1ecd57fc6532da"; + }; + } + { + name = "sequencify___sequencify_0.0.7.tgz"; + path = fetchurl { + name = "sequencify___sequencify_0.0.7.tgz"; + url = "https://registry.yarnpkg.com/sequencify/-/sequencify-0.0.7.tgz"; + sha1 = "90cff19d02e07027fd767f5ead3e7b95d1e7380c"; + }; + } + { + name = "set_value___set_value_2.0.1.tgz"; + path = fetchurl { + name = "set_value___set_value_2.0.1.tgz"; + url = "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz"; + sha1 = "a18d40530e6f07de4228c7defe4227af8cad005b"; + }; + } + { + name = "sigmund___sigmund_1.0.1.tgz"; + path = fetchurl { + name = "sigmund___sigmund_1.0.1.tgz"; + url = "https://registry.yarnpkg.com/sigmund/-/sigmund-1.0.1.tgz"; + sha1 = "3ff21f198cad2175f9f3b781853fd94d0d19b590"; + }; + } + { + name = "slash___slash_1.0.0.tgz"; + path = fetchurl { + name = "slash___slash_1.0.0.tgz"; + url = "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz"; + sha1 = "c41f2f6c39fc16d1cd17ad4b5d896114ae470d55"; + }; + } + { + name = "snapdragon_node___snapdragon_node_2.1.1.tgz"; + path = fetchurl { + name = "snapdragon_node___snapdragon_node_2.1.1.tgz"; + url = "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz"; + sha1 = "6c175f86ff14bdb0724563e8f3c1b021a286853b"; + }; + } + { + name = "snapdragon_util___snapdragon_util_3.0.1.tgz"; + path = fetchurl { + name = "snapdragon_util___snapdragon_util_3.0.1.tgz"; + url = "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz"; + sha1 = "f956479486f2acd79700693f6f7b805e45ab56e2"; + }; + } + { + name = "snapdragon___snapdragon_0.8.2.tgz"; + path = fetchurl { + name = "snapdragon___snapdragon_0.8.2.tgz"; + url = "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz"; + sha1 = "64922e7c565b0e14204ba1aa7d6964278d25182d"; + }; + } + { + name = "source_map_resolve___source_map_resolve_0.5.3.tgz"; + path = fetchurl { + name = "source_map_resolve___source_map_resolve_0.5.3.tgz"; + url = "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz"; + sha1 = "190866bece7553e1f8f267a2ee82c606b5509a1a"; + }; + } + { + name = "source_map_url___source_map_url_0.4.1.tgz"; + path = fetchurl { + name = "source_map_url___source_map_url_0.4.1.tgz"; + url = "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.1.tgz"; + sha1 = "0af66605a745a5a2f91cf1bbf8a7afbc283dec56"; + }; + } + { + name = "source_map___source_map_0.5.7.tgz"; + path = fetchurl { + name = "source_map___source_map_0.5.7.tgz"; + url = "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz"; + sha1 = "8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"; + }; + } + { + name = "sparkles___sparkles_1.0.1.tgz"; + path = fetchurl { + name = "sparkles___sparkles_1.0.1.tgz"; + url = "https://registry.yarnpkg.com/sparkles/-/sparkles-1.0.1.tgz"; + sha1 = "008db65edce6c50eec0c5e228e1945061dd0437c"; + }; + } + { + name = "split_string___split_string_3.1.0.tgz"; + path = fetchurl { + name = "split_string___split_string_3.1.0.tgz"; + url = "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz"; + sha1 = "7cb09dda3a86585705c64b39a6466038682e8fe2"; + }; + } + { + name = "sprintf_js___sprintf_js_1.0.3.tgz"; + path = fetchurl { + name = "sprintf_js___sprintf_js_1.0.3.tgz"; + url = "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz"; + sha1 = "04e6926f662895354f3dd015203633b857297e2c"; + }; + } + { + name = "static_extend___static_extend_0.1.2.tgz"; + path = fetchurl { + name = "static_extend___static_extend_0.1.2.tgz"; + url = "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz"; + sha1 = "60809c39cbff55337226fd5e0b520f341f1fb5c6"; + }; + } + { + name = "stream_consume___stream_consume_0.1.1.tgz"; + path = fetchurl { + name = "stream_consume___stream_consume_0.1.1.tgz"; + url = "https://registry.yarnpkg.com/stream-consume/-/stream-consume-0.1.1.tgz"; + sha1 = "d3bdb598c2bd0ae82b8cac7ac50b1107a7996c48"; + }; + } + { + name = "string_decoder___string_decoder_1.3.0.tgz"; + path = fetchurl { + name = "string_decoder___string_decoder_1.3.0.tgz"; + url = "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz"; + sha1 = "42f114594a46cf1a8e30b0a84f56c78c3edac21e"; + }; + } + { + name = "string_decoder___string_decoder_0.10.31.tgz"; + path = fetchurl { + name = "string_decoder___string_decoder_0.10.31.tgz"; + url = "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz"; + sha1 = "62e203bc41766c6c28c9fc84301dab1c5310fa94"; + }; + } + { + name = "string_decoder___string_decoder_1.1.1.tgz"; + path = fetchurl { + name = "string_decoder___string_decoder_1.1.1.tgz"; + url = "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz"; + sha1 = "9cf1611ba62685d7030ae9e4ba34149c3af03fc8"; + }; + } + { + name = "strip_ansi___strip_ansi_3.0.1.tgz"; + path = fetchurl { + name = "strip_ansi___strip_ansi_3.0.1.tgz"; + url = "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz"; + sha1 = "6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"; + }; + } + { + name = "strip_bom_stream___strip_bom_stream_2.0.0.tgz"; + path = fetchurl { + name = "strip_bom_stream___strip_bom_stream_2.0.0.tgz"; + url = "https://registry.yarnpkg.com/strip-bom-stream/-/strip-bom-stream-2.0.0.tgz"; + sha1 = "f87db5ef2613f6968aa545abfe1ec728b6a829ca"; + }; + } + { + name = "strip_bom___strip_bom_1.0.0.tgz"; + path = fetchurl { + name = "strip_bom___strip_bom_1.0.0.tgz"; + url = "https://registry.yarnpkg.com/strip-bom/-/strip-bom-1.0.0.tgz"; + sha1 = "85b8862f3844b5a6d5ec8467a93598173a36f794"; + }; + } + { + name = "strip_bom___strip_bom_2.0.0.tgz"; + path = fetchurl { + name = "strip_bom___strip_bom_2.0.0.tgz"; + url = "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz"; + sha1 = "6219a85616520491f35788bdbf1447a99c7e6b0e"; + }; + } + { + name = "supports_color___supports_color_2.0.0.tgz"; + path = fetchurl { + name = "supports_color___supports_color_2.0.0.tgz"; + url = "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz"; + sha1 = "535d045ce6b6363fa40117084629995e9df324c7"; + }; + } + { + name = "svgo___svgo_0.7.2.tgz"; + path = fetchurl { + name = "svgo___svgo_0.7.2.tgz"; + url = "https://registry.yarnpkg.com/svgo/-/svgo-0.7.2.tgz"; + sha1 = "9f5772413952135c6fefbf40afe6a4faa88b4bb5"; + }; + } + { + name = "through2___through2_0.6.5.tgz"; + path = fetchurl { + name = "through2___through2_0.6.5.tgz"; + url = "https://registry.yarnpkg.com/through2/-/through2-0.6.5.tgz"; + sha1 = "41ab9c67b29d57209071410e1d7a7a968cd3ad48"; + }; + } + { + name = "through2___through2_2.0.5.tgz"; + path = fetchurl { + name = "through2___through2_2.0.5.tgz"; + url = "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz"; + sha1 = "01c1e39eb31d07cb7d03a96a70823260b23132cd"; + }; + } + { + name = "tildify___tildify_1.2.0.tgz"; + path = fetchurl { + name = "tildify___tildify_1.2.0.tgz"; + url = "https://registry.yarnpkg.com/tildify/-/tildify-1.2.0.tgz"; + sha1 = "dcec03f55dca9b7aa3e5b04f21817eb56e63588a"; + }; + } + { + name = "time_stamp___time_stamp_1.1.0.tgz"; + path = fetchurl { + name = "time_stamp___time_stamp_1.1.0.tgz"; + url = "https://registry.yarnpkg.com/time-stamp/-/time-stamp-1.1.0.tgz"; + sha1 = "764a5a11af50561921b133f3b44e618687e0f5c3"; + }; + } + { + name = "to_object_path___to_object_path_0.3.0.tgz"; + path = fetchurl { + name = "to_object_path___to_object_path_0.3.0.tgz"; + url = "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz"; + sha1 = "297588b7b0e7e0ac08e04e672f85c1f4999e17af"; + }; + } + { + name = "to_regex_range___to_regex_range_2.1.1.tgz"; + path = fetchurl { + name = "to_regex_range___to_regex_range_2.1.1.tgz"; + url = "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz"; + sha1 = "7c80c17b9dfebe599e27367e0d4dd5590141db38"; + }; + } + { + name = "to_regex___to_regex_3.0.2.tgz"; + path = fetchurl { + name = "to_regex___to_regex_3.0.2.tgz"; + url = "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz"; + sha1 = "13cfdd9b336552f30b51f33a8ae1b42a7a7599ce"; + }; + } + { + name = "unc_path_regex___unc_path_regex_0.1.2.tgz"; + path = fetchurl { + name = "unc_path_regex___unc_path_regex_0.1.2.tgz"; + url = "https://registry.yarnpkg.com/unc-path-regex/-/unc-path-regex-0.1.2.tgz"; + sha1 = "e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa"; + }; + } + { + name = "union_value___union_value_1.0.1.tgz"; + path = fetchurl { + name = "union_value___union_value_1.0.1.tgz"; + url = "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz"; + sha1 = "0b6fe7b835aecda61c6ea4d4f02c14221e109847"; + }; + } + { + name = "unique_stream___unique_stream_1.0.0.tgz"; + path = fetchurl { + name = "unique_stream___unique_stream_1.0.0.tgz"; + url = "https://registry.yarnpkg.com/unique-stream/-/unique-stream-1.0.0.tgz"; + sha1 = "d59a4a75427447d9aa6c91e70263f8d26a4b104b"; + }; + } + { + name = "unset_value___unset_value_1.0.0.tgz"; + path = fetchurl { + name = "unset_value___unset_value_1.0.0.tgz"; + url = "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz"; + sha1 = "8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559"; + }; + } + { + name = "urix___urix_0.1.0.tgz"; + path = fetchurl { + name = "urix___urix_0.1.0.tgz"; + url = "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz"; + sha1 = "da937f7a62e21fec1fd18d49b35c2935067a6c72"; + }; + } + { + name = "use___use_3.1.1.tgz"; + path = fetchurl { + name = "use___use_3.1.1.tgz"; + url = "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz"; + sha1 = "d50c8cac79a19fbc20f2911f56eb973f4e10070f"; + }; + } + { + name = "user_home___user_home_1.1.1.tgz"; + path = fetchurl { + name = "user_home___user_home_1.1.1.tgz"; + url = "https://registry.yarnpkg.com/user-home/-/user-home-1.1.1.tgz"; + sha1 = "2b5be23a32b63a7c9deb8d0f28d485724a3df190"; + }; + } + { + name = "util_deprecate___util_deprecate_1.0.2.tgz"; + path = fetchurl { + name = "util_deprecate___util_deprecate_1.0.2.tgz"; + url = "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz"; + sha1 = "450d4dc9fa70de732762fbd2d4a28981419a0ccf"; + }; + } + { + name = "v8flags___v8flags_2.1.1.tgz"; + path = fetchurl { + name = "v8flags___v8flags_2.1.1.tgz"; + url = "https://registry.yarnpkg.com/v8flags/-/v8flags-2.1.1.tgz"; + sha1 = "aab1a1fa30d45f88dd321148875ac02c0b55e5b4"; + }; + } + { + name = "vinyl_file___vinyl_file_2.0.0.tgz"; + path = fetchurl { + name = "vinyl_file___vinyl_file_2.0.0.tgz"; + url = "https://registry.yarnpkg.com/vinyl-file/-/vinyl-file-2.0.0.tgz"; + sha1 = "a7ebf5ffbefda1b7d18d140fcb07b223efb6751a"; + }; + } + { + name = "vinyl_fs___vinyl_fs_0.3.14.tgz"; + path = fetchurl { + name = "vinyl_fs___vinyl_fs_0.3.14.tgz"; + url = "https://registry.yarnpkg.com/vinyl-fs/-/vinyl-fs-0.3.14.tgz"; + sha1 = "9a6851ce1cac1c1cea5fe86c0931d620c2cfa9e6"; + }; + } + { + name = "vinyl___vinyl_0.4.6.tgz"; + path = fetchurl { + name = "vinyl___vinyl_0.4.6.tgz"; + url = "https://registry.yarnpkg.com/vinyl/-/vinyl-0.4.6.tgz"; + sha1 = "2f356c87a550a255461f36bbeb2a5ba8bf784847"; + }; + } + { + name = "vinyl___vinyl_0.5.3.tgz"; + path = fetchurl { + name = "vinyl___vinyl_0.5.3.tgz"; + url = "https://registry.yarnpkg.com/vinyl/-/vinyl-0.5.3.tgz"; + sha1 = "b0455b38fc5e0cf30d4325132e461970c2091cde"; + }; + } + { + name = "vinyl___vinyl_1.2.0.tgz"; + path = fetchurl { + name = "vinyl___vinyl_1.2.0.tgz"; + url = "https://registry.yarnpkg.com/vinyl/-/vinyl-1.2.0.tgz"; + sha1 = "5c88036cf565e5df05558bfc911f8656df218884"; + }; + } + { + name = "whet.extend___whet.extend_0.9.9.tgz"; + path = fetchurl { + name = "whet.extend___whet.extend_0.9.9.tgz"; + url = "https://registry.yarnpkg.com/whet.extend/-/whet.extend-0.9.9.tgz"; + sha1 = "f877d5bf648c97e5aa542fadc16d6a259b9c11a1"; + }; + } + { + name = "which___which_1.3.1.tgz"; + path = fetchurl { + name = "which___which_1.3.1.tgz"; + url = "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz"; + sha1 = "a45043d54f5805316da8d62f9f50918d3da70b0a"; + }; + } + { + name = "wrappy___wrappy_1.0.2.tgz"; + path = fetchurl { + name = "wrappy___wrappy_1.0.2.tgz"; + url = "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz"; + sha1 = "b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"; + }; + } + { + name = "xtend___xtend_4.0.2.tgz"; + path = fetchurl { + name = "xtend___xtend_4.0.2.tgz"; + url = "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz"; + sha1 = "bb72779f5fa465186b1f438f674fa347fdb5db54"; + }; + } + ]; +} diff --git a/pkgs/applications/science/logic/alt-ergo/default.nix b/pkgs/applications/science/logic/alt-ergo/default.nix index 837f25e320f7..096a648b4ddf 100644 --- a/pkgs/applications/science/logic/alt-ergo/default.nix +++ b/pkgs/applications/science/logic/alt-ergo/default.nix @@ -12,36 +12,33 @@ let }; useDune2 = true; - - nativeBuildInputs = [ which ]; - in let alt-ergo-lib = ocamlPackages.buildDunePackage rec { pname = "alt-ergo-lib"; - inherit version src useDune2 nativeBuildInputs; + inherit version src useDune2; configureFlags = pname; + nativeBuildInputs = [ which ]; buildInputs = with ocamlPackages; [ dune-configurator ]; propagatedBuildInputs = with ocamlPackages; [ num ocplib-simplex stdlib-shims zarith ]; }; in let alt-ergo-parsers = ocamlPackages.buildDunePackage rec { pname = "alt-ergo-parsers"; - inherit version src useDune2 nativeBuildInputs; + inherit version src useDune2; configureFlags = pname; - buildInputs = with ocamlPackages; [ menhir ]; + nativeBuildInputs = [ which ocamlPackages.menhir ]; propagatedBuildInputs = [ alt-ergo-lib ] ++ (with ocamlPackages; [ camlzip psmt2-frontend ]); }; in ocamlPackages.buildDunePackage { - inherit pname version src useDune2 nativeBuildInputs; + inherit pname version src useDune2; configureFlags = pname; - buildInputs = [ alt-ergo-parsers ] ++ (with ocamlPackages; [ - cmdliner menhir ]) - ; + nativeBuildInputs = [ which ocamlPackages.menhir ]; + buildInputs = [ alt-ergo-parsers ocamlPackages.cmdliner ]; meta = { description = "High-performance theorem prover and SMT solver"; diff --git a/pkgs/applications/science/logic/anders/default.nix b/pkgs/applications/science/logic/anders/default.nix index 72e412fc3bdc..bb60b2b8321a 100644 --- a/pkgs/applications/science/logic/anders/default.nix +++ b/pkgs/applications/science/logic/anders/default.nix @@ -13,7 +13,10 @@ ocamlPackages.buildDunePackage rec { sha256 = "sha256-JUiZoo2rNLfgs94TlJqUNzul/7ODisCjSFAzhgSp1z4="; }; - buildInputs = with ocamlPackages; [ zarith menhir ]; + strictDeps = true; + + nativeBuildInputs = [ ocamlPackages.menhir ]; + buildInputs = [ ocamlPackages.zarith ]; meta = with lib; { description = "Modal Homotopy Type System"; diff --git a/pkgs/applications/science/math/sage/default.nix b/pkgs/applications/science/math/sage/default.nix index 2066087692a0..70e24e2608d0 100644 --- a/pkgs/applications/science/math/sage/default.nix +++ b/pkgs/applications/science/math/sage/default.nix @@ -1,5 +1,7 @@ { pkgs , withDoc ? false +, requireSageTests ? true +, extraPythonPackages ? ps: [] }: # Here sage and its dependencies are put together. Some dependencies may be pinned @@ -109,7 +111,7 @@ let rpy2 sphinx pillow - ]; + ] ++ extraPythonPackages python3.pkgs; pythonEnv = python3.buildEnv.override { extraLibs = pythonRuntimeDeps; @@ -166,5 +168,5 @@ in # A wrapper around sage that makes sure sage finds its docs (if they were build). callPackage ./sage.nix { inherit sage-tests sage-with-env sagedoc jupyter-kernel-definition; - inherit withDoc; + inherit withDoc requireSageTests; } diff --git a/pkgs/applications/science/math/sage/sage.nix b/pkgs/applications/science/math/sage/sage.nix index 5805a5c7b0c7..96122fba5ab4 100644 --- a/pkgs/applications/science/math/sage/sage.nix +++ b/pkgs/applications/science/math/sage/sage.nix @@ -6,6 +6,7 @@ , jupyter-kernel , sagedoc , withDoc +, requireSageTests }: # A wrapper that makes sure sage finds its docs (if they were build) and the @@ -26,7 +27,7 @@ stdenv.mkDerivation rec { buildInputs = [ makeWrapper - + ] ++ lib.optionals requireSageTests [ # This is a hack to make sure sage-tests is evaluated. It doesn't acutally # produce anything of value, it just decouples the tests from the build. sage-tests diff --git a/pkgs/build-support/build-fhs-userenv-bubblewrap/env.nix b/pkgs/build-support/build-fhs-userenv-bubblewrap/env.nix index 0051961d9f17..1c4e2b607696 100644 --- a/pkgs/build-support/build-fhs-userenv-bubblewrap/env.nix +++ b/pkgs/build-support/build-fhs-userenv-bubblewrap/env.nix @@ -41,7 +41,7 @@ let basePkgs = with pkgs; [ glibcLocales (if isMultiBuild then glibc_multi else glibc) - (toString gcc.cc.lib) bashInteractive coreutils less shadow su + (toString gcc.cc.lib) bashInteractiveFHS coreutils less shadow su gawk diffutils findutils gnused gnugrep gnutar gzip bzip2 xz ]; diff --git a/pkgs/build-support/build-fhs-userenv/env.nix b/pkgs/build-support/build-fhs-userenv/env.nix index 44c8adb06e18..abf577baa2d1 100644 --- a/pkgs/build-support/build-fhs-userenv/env.nix +++ b/pkgs/build-support/build-fhs-userenv/env.nix @@ -45,7 +45,7 @@ let basePkgs = with pkgs; [ glibcLocales (if isMultiBuild then glibc_multi else glibc) - (toString gcc.cc.lib) bashInteractive coreutils less shadow su + (toString gcc.cc.lib) bashInteractiveFHS coreutils less shadow su gawk diffutils findutils gnused gnugrep gnutar gzip bzip2 xz ]; diff --git a/pkgs/build-support/ocaml/default.nix b/pkgs/build-support/ocaml/default.nix index 1fe99bb6320e..38029e8a4800 100644 --- a/pkgs/build-support/ocaml/default.nix +++ b/pkgs/build-support/ocaml/default.nix @@ -21,6 +21,8 @@ stdenv.mkDerivation (args // { nativeBuildInputs = [ ocaml findlib ocamlbuild camlp4 ] ++ nativeBuildInputs; + strictDeps = true; + setupHook = if setupHook == null && hasSharedObjects then writeText "setupHook.sh" '' export CAML_LD_LIBRARY_PATH="''${CAML_LD_LIBRARY_PATH-}''${CAML_LD_LIBRARY_PATH:+:}''$1/lib/ocaml/${ocaml.version}/site-lib/${pname}/" diff --git a/pkgs/build-support/ocaml/oasis.nix b/pkgs/build-support/ocaml/oasis.nix index ee231a6e258c..8f81344daf09 100644 --- a/pkgs/build-support/ocaml/oasis.nix +++ b/pkgs/build-support/ocaml/oasis.nix @@ -1,6 +1,6 @@ { lib, stdenv, ocaml_oasis, ocaml, findlib, ocamlbuild }: -{ pname, version, buildInputs ? [], meta ? { platforms = ocaml.meta.platforms or []; }, +{ pname, version, nativeBuildInputs ? [], meta ? { platforms = ocaml.meta.platforms or []; }, minimumOCamlVersion ? null, createFindlibDestdir ? true, dontStrip ? true, @@ -15,11 +15,13 @@ else stdenv.mkDerivation (args // { name = "ocaml${ocaml.version}-${pname}-${version}"; - buildInputs = [ ocaml findlib ocamlbuild ocaml_oasis ] ++ buildInputs; + nativeBuildInputs = [ ocaml findlib ocamlbuild ocaml_oasis ] ++ nativeBuildInputs; inherit createFindlibDestdir; inherit dontStrip; + strictDeps = true; + buildPhase = '' runHook preBuild oasis setup diff --git a/pkgs/data/fonts/redhat-official/default.nix b/pkgs/data/fonts/redhat-official/default.nix index 37ca9db9fa0b..9daaffd0b4ba 100644 --- a/pkgs/data/fonts/redhat-official/default.nix +++ b/pkgs/data/fonts/redhat-official/default.nix @@ -1,6 +1,6 @@ { lib, fetchFromGitHub }: let - version = "2.3.2"; + version = "4.0.2"; in fetchFromGitHub { name = "redhat-official-${version}"; @@ -11,11 +11,13 @@ fetchFromGitHub { postFetch = '' tar xf $downloadedFile --strip=1 - install -m444 -Dt $out/share/fonts/opentype OTF/*.otf - install -m444 -Dt $out/share/fonts/truetype TTF/*.ttf + for kind in mono proportional; do + install -m444 -Dt $out/share/fonts/opentype fonts/$kind/static/otf/*.otf + install -m444 -Dt $out/share/fonts/truetype fonts/$kind/static/ttf/*.ttf + done ''; - sha256 = "1afvxmgif61hb17g8inmxvq30vkzwh30mydlqpf0zgvaaz8qdwmv"; + sha256 = "sha256-904uQtbAdLx9MJudLk/vVk/+uK0nsPbWbAeXrWxTHm8="; meta = with lib; { homepage = "https://github.com/RedHatOfficial/RedHatFont"; diff --git a/pkgs/development/compilers/fstar/default.nix b/pkgs/development/compilers/fstar/default.nix index 25abd7949071..fc0f50d0797f 100644 --- a/pkgs/development/compilers/fstar/default.nix +++ b/pkgs/development/compilers/fstar/default.nix @@ -11,20 +11,26 @@ stdenv.mkDerivation rec { sha256 = "sha256-bK3McF/wTjT9q6luihPaEXjx7Lu6+ZbQ9G61Mc4KoB0="; }; - nativeBuildInputs = [ makeWrapper installShellFiles ]; + strictDeps = true; - buildInputs = [ - z3 + nativeBuildInputs = [ + makeWrapper + installShellFiles ] ++ (with ocamlPackages; [ ocaml findlib ocamlbuild + menhir + ]); + + buildInputs = [ + z3 + ] ++ (with ocamlPackages; [ batteries zarith stdint yojson fileutils - menhir menhirLib pprint sedlex_2 diff --git a/pkgs/development/compilers/llvm/14/bintools/default.nix b/pkgs/development/compilers/llvm/14/bintools/default.nix new file mode 100644 index 000000000000..53f7941e3369 --- /dev/null +++ b/pkgs/development/compilers/llvm/14/bintools/default.nix @@ -0,0 +1,29 @@ +{ runCommand, stdenv, llvm, lld, version }: + +let + prefix = + if stdenv.hostPlatform != stdenv.targetPlatform + then "${stdenv.targetPlatform.config}-" + else ""; +in runCommand "llvm-binutils-${version}" { preferLocalBuild = true; } '' + mkdir -p $out/bin + for prog in ${lld}/bin/*; do + ln -s $prog $out/bin/${prefix}$(basename $prog) + done + for prog in ${llvm}/bin/*; do + ln -sf $prog $out/bin/${prefix}$(basename $prog) + done + + ln -s ${llvm}/bin/llvm-ar $out/bin/${prefix}ar + ln -s ${llvm}/bin/llvm-as $out/bin/${prefix}as + ln -s ${llvm}/bin/llvm-dwp $out/bin/${prefix}dwp + ln -s ${llvm}/bin/llvm-nm $out/bin/${prefix}nm + ln -s ${llvm}/bin/llvm-objcopy $out/bin/${prefix}objcopy + ln -s ${llvm}/bin/llvm-objdump $out/bin/${prefix}objdump + ln -s ${llvm}/bin/llvm-ranlib $out/bin/${prefix}ranlib + ln -s ${llvm}/bin/llvm-readelf $out/bin/${prefix}readelf + ln -s ${llvm}/bin/llvm-size $out/bin/${prefix}size + ln -s ${llvm}/bin/llvm-strip $out/bin/${prefix}strip + + ln -s ${lld}/bin/lld $out/bin/${prefix}ld +'' diff --git a/pkgs/development/compilers/llvm/14/clang/default.nix b/pkgs/development/compilers/llvm/14/clang/default.nix new file mode 100644 index 000000000000..9544494b356e --- /dev/null +++ b/pkgs/development/compilers/llvm/14/clang/default.nix @@ -0,0 +1,131 @@ +{ lib, stdenv, llvm_meta +, monorepoSrc, runCommand +, substituteAll, cmake, libxml2, libllvm, version, python3 +, buildLlvmTools +, fixDarwinDylibNames +, enableManpages ? false +}: + +let + self = stdenv.mkDerivation (rec { + pname = "clang"; + inherit version; + + src = runCommand "${pname}-src-${version}" {} '' + mkdir -p "$out" + cp -r ${monorepoSrc}/cmake "$out" + cp -r ${monorepoSrc}/${pname} "$out" + ''; + + sourceRoot = "${src.name}/${pname}"; + + nativeBuildInputs = [ cmake python3 ] + ++ lib.optional enableManpages python3.pkgs.sphinx + ++ lib.optional stdenv.hostPlatform.isDarwin fixDarwinDylibNames; + + buildInputs = [ libxml2 libllvm ]; + + cmakeFlags = [ + "-DCMAKE_CXX_FLAGS=-std=c++14" + "-DCLANGD_BUILD_XPC=OFF" + "-DLLVM_ENABLE_RTTI=ON" + ] ++ lib.optionals enableManpages [ + "-DCLANG_INCLUDE_DOCS=ON" + "-DLLVM_ENABLE_SPHINX=ON" + "-DSPHINX_OUTPUT_MAN=ON" + "-DSPHINX_OUTPUT_HTML=OFF" + "-DSPHINX_WARNINGS_AS_ERRORS=OFF" + ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ + "-DLLVM_TABLEGEN_EXE=${buildLlvmTools.llvm}/bin/llvm-tblgen" + "-DCLANG_TABLEGEN=${buildLlvmTools.libclang.dev}/bin/clang-tblgen" + ]; + + patches = [ + ./purity.patch + # https://reviews.llvm.org/D51899 + ./gnu-install-dirs.patch + (substituteAll { + src = ../../clang-11-12-LLVMgold-path.patch; + libllvmLibdir = "${libllvm.lib}/lib"; + }) + ]; + + postPatch = '' + (cd tools && ln -s ../../clang-tools-extra extra) + + sed -i -e 's/DriverArgs.hasArg(options::OPT_nostdlibinc)/true/' \ + -e 's/Args.hasArg(options::OPT_nostdlibinc)/true/' \ + lib/Driver/ToolChains/*.cpp + + # Patch for standalone doc building + sed -i '1s,^,find_package(Sphinx REQUIRED)\n,' docs/CMakeLists.txt + '' + lib.optionalString stdenv.hostPlatform.isMusl '' + sed -i -e 's/lgcc_s/lgcc_eh/' lib/Driver/ToolChains/*.cpp + ''; + + outputs = [ "out" "lib" "dev" "python" ]; + + postInstall = '' + ln -sv $out/bin/clang $out/bin/cpp + + # Move libclang to 'lib' output + moveToOutput "lib/libclang.*" "$lib" + moveToOutput "lib/libclang-cpp.*" "$lib" + substituteInPlace $out/lib/cmake/clang/ClangTargets-release.cmake \ + --replace "\''${_IMPORT_PREFIX}/lib/libclang." "$lib/lib/libclang." \ + --replace "\''${_IMPORT_PREFIX}/lib/libclang-cpp." "$lib/lib/libclang-cpp." + + mkdir -p $python/bin $python/share/clang/ + mv $out/bin/{git-clang-format,scan-view} $python/bin + if [ -e $out/bin/set-xcode-analyzer ]; then + mv $out/bin/set-xcode-analyzer $python/bin + fi + mv $out/share/clang/*.py $python/share/clang + rm $out/bin/c-index-test + + mkdir -p $dev/bin + cp bin/clang-tblgen $dev/bin + ''; + + passthru = { + isClang = true; + inherit libllvm; + }; + + meta = llvm_meta // { + homepage = "https://clang.llvm.org/"; + description = "A C language family frontend for LLVM"; + longDescription = '' + The Clang project provides a language front-end and tooling + infrastructure for languages in the C language family (C, C++, Objective + C/C++, OpenCL, CUDA, and RenderScript) for the LLVM project. + It aims to deliver amazingly fast compiles, extremely useful error and + warning messages and to provide a platform for building great source + level tools. The Clang Static Analyzer and clang-tidy are tools that + automatically find bugs in your code, and are great examples of the sort + of tools that can be built using the Clang frontend as a library to + parse C/C++ code. + ''; + }; + } // lib.optionalAttrs enableManpages { + pname = "clang-manpages"; + + buildPhase = '' + make docs-clang-man + ''; + + installPhase = '' + mkdir -p $out/share/man/man1 + # Manually install clang manpage + cp docs/man/*.1 $out/share/man/man1/ + ''; + + outputs = [ "out" ]; + + doCheck = false; + + meta = llvm_meta // { + description = "man page for Clang ${version}"; + }; + }); +in self diff --git a/pkgs/development/compilers/llvm/14/clang/gnu-install-dirs.patch b/pkgs/development/compilers/llvm/14/clang/gnu-install-dirs.patch new file mode 100644 index 000000000000..57c54e18c37b --- /dev/null +++ b/pkgs/development/compilers/llvm/14/clang/gnu-install-dirs.patch @@ -0,0 +1,50 @@ +diff --git a/cmake/modules/AddClang.cmake b/cmake/modules/AddClang.cmake +index 9bbbfc032b7d..947bd0da865d 100644 +--- a/cmake/modules/AddClang.cmake ++++ b/cmake/modules/AddClang.cmake +@@ -119,8 +119,8 @@ macro(add_clang_library name) + install(TARGETS ${lib} + COMPONENT ${lib} + ${export_to_clangtargets} +- LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX} +- ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX} ++ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX} ++ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX} + RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}") + + if (NOT LLVM_ENABLE_IDE) +@@ -175,7 +175,7 @@ endmacro() + macro(add_clang_symlink name dest) + add_llvm_tool_symlink(${name} ${dest} ALWAYS_GENERATE) + # Always generate install targets +- llvm_install_symlink(${name} ${dest} ALWAYS_GENERATE) ++ llvm_install_symlink(${name} ${dest} ${CMAKE_INSTALL_FULL_BINDIR} ALWAYS_GENERATE) + endmacro() + + function(clang_target_link_libraries target type) +diff --git a/lib/Headers/CMakeLists.txt b/lib/Headers/CMakeLists.txt +index 078988980c52..14b58614b40a 100644 +--- a/lib/Headers/CMakeLists.txt ++++ b/lib/Headers/CMakeLists.txt +@@ -234,7 +234,7 @@ set_target_properties(clang-resource-headers PROPERTIES + FOLDER "Misc" + RUNTIME_OUTPUT_DIRECTORY "${output_dir}") + +-set(header_install_dir lib${LLVM_LIBDIR_SUFFIX}/clang/${CLANG_VERSION}/include) ++set(header_install_dir ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/clang/${CLANG_VERSION}/include) + + install( + FILES ${files} ${generated_files} +diff --git a/tools/libclang/CMakeLists.txt b/tools/libclang/CMakeLists.txt +index 4e0647971ab4..68dd67fcc476 100644 +--- a/tools/libclang/CMakeLists.txt ++++ b/tools/libclang/CMakeLists.txt +@@ -216,7 +216,7 @@ foreach(PythonVersion ${CLANG_PYTHON_BINDINGS_VERSIONS}) + COMPONENT + libclang-python-bindings + DESTINATION +- "lib${LLVM_LIBDIR_SUFFIX}/python${PythonVersion}/site-packages") ++ "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/python${PythonVersion}/site-packages") + endforeach() + if(NOT LLVM_ENABLE_IDE) + add_custom_target(libclang-python-bindings) diff --git a/pkgs/development/compilers/llvm/14/clang/purity.patch b/pkgs/development/compilers/llvm/14/clang/purity.patch new file mode 100644 index 000000000000..deb230a36c5b --- /dev/null +++ b/pkgs/development/compilers/llvm/14/clang/purity.patch @@ -0,0 +1,28 @@ +From 4add81bba40dcec62c4ea4481be8e35ac53e89d8 Mon Sep 17 00:00:00 2001 +From: Will Dietz +Date: Thu, 18 May 2017 11:56:12 -0500 +Subject: [PATCH] "purity" patch for 5.0 + +--- + lib/Driver/ToolChains/Gnu.cpp | 7 ------- + 1 file changed, 7 deletions(-) + +diff --git a/lib/Driver/ToolChains/Gnu.cpp b/lib/Driver/ToolChains/Gnu.cpp +index fe3c0191bb..c6a482bece 100644 +--- a/lib/Driver/ToolChains/Gnu.cpp ++++ b/lib/Driver/ToolChains/Gnu.cpp +@@ -487,12 +487,6 @@ void tools::gnutools::Linker::ConstructJob(Compilation &C, const JobAction &JA, + if (!IsStatic) { + if (Args.hasArg(options::OPT_rdynamic)) + CmdArgs.push_back("-export-dynamic"); +- +- if (!Args.hasArg(options::OPT_shared) && !IsStaticPIE) { +- CmdArgs.push_back("-dynamic-linker"); +- CmdArgs.push_back(Args.MakeArgString(Twine(D.DyldPrefix) + +- ToolChain.getDynamicLinker(Args))); +- } + } + + CmdArgs.push_back("-o"); +-- +2.11.0 diff --git a/pkgs/development/compilers/llvm/14/compiler-rt/X86-support-extension.patch b/pkgs/development/compilers/llvm/14/compiler-rt/X86-support-extension.patch new file mode 100644 index 000000000000..66742e5b1498 --- /dev/null +++ b/pkgs/development/compilers/llvm/14/compiler-rt/X86-support-extension.patch @@ -0,0 +1,21 @@ +diff --git a/lib/builtins/CMakeLists.txt b/lib/builtins/CMakeLists.txt +index 3a66dd9c3fb..7efc85d9f9f 100644 +--- a/lib/builtins/CMakeLists.txt ++++ b/lib/builtins/CMakeLists.txt +@@ -345,4 +345,8 @@ if (NOT MSVC) + ++ set(i486_SOURCES ${i386_SOURCES}) ++ set(i586_SOURCES ${i386_SOURCES}) ++ set(i686_SOURCES ${i386_SOURCES}) ++ + if (WIN32) + set(i386_SOURCES + ${i386_SOURCES} +@@ -608,6 +612,7 @@ else () + endif() + + foreach (arch ${BUILTIN_SUPPORTED_ARCH}) ++ message("arch: ${arch}") + if (CAN_TARGET_${arch}) + # For ARM archs, exclude any VFP builtins if VFP is not supported + if (${arch} MATCHES "^(arm|armhf|armv7|armv7s|armv7k|armv7m|armv7em)$") diff --git a/pkgs/development/compilers/llvm/14/compiler-rt/armv7l.patch b/pkgs/development/compilers/llvm/14/compiler-rt/armv7l.patch new file mode 100644 index 000000000000..120cfe6feb2a --- /dev/null +++ b/pkgs/development/compilers/llvm/14/compiler-rt/armv7l.patch @@ -0,0 +1,32 @@ +diff -ur compiler-rt-10.0.0.src/cmake/builtin-config-ix.cmake compiler-rt-10.0.0.src-patched/cmake/builtin-config-ix.cmake +--- compiler-rt-10.0.0.src/cmake/builtin-config-ix.cmake 2020-03-24 00:01:02.000000000 +0900 ++++ compiler-rt-10.0.0.src-patched/cmake/builtin-config-ix.cmake 2020-05-10 03:42:00.883450706 +0900 +@@ -24,7 +24,7 @@ + + + set(ARM64 aarch64) +-set(ARM32 arm armhf armv6m armv7m armv7em armv7 armv7s armv7k) ++set(ARM32 arm armhf armv6m armv7m armv7em armv7 armv7s armv7k armv7l) + set(HEXAGON hexagon) + set(X86 i386) + set(X86_64 x86_64) +diff -ur compiler-rt-10.0.0.src/lib/builtins/CMakeLists.txt compiler-rt-10.0.0.src-patched/lib/builtins/CMakeLists.txt +--- compiler-rt-10.0.0.src/lib/builtins/CMakeLists.txt 2020-03-24 00:01:02.000000000 +0900 ++++ compiler-rt-10.0.0.src-patched/lib/builtins/CMakeLists.txt 2020-05-10 03:44:49.468579650 +0900 +@@ -474,6 +474,7 @@ + set(armv7_SOURCES ${arm_SOURCES}) + set(armv7s_SOURCES ${arm_SOURCES}) + set(armv7k_SOURCES ${arm_SOURCES}) ++set(armv7l_SOURCES ${arm_SOURCES}) + set(arm64_SOURCES ${aarch64_SOURCES}) + + # macho_embedded archs +@@ -595,7 +596,7 @@ + foreach (arch ${BUILTIN_SUPPORTED_ARCH}) + if (CAN_TARGET_${arch}) + # For ARM archs, exclude any VFP builtins if VFP is not supported +- if (${arch} MATCHES "^(arm|armhf|armv7|armv7s|armv7k|armv7m|armv7em)$") ++ if (${arch} MATCHES "^(arm|armhf|armv7|armv7s|armv7k|armv7l|armv7m|armv7em)$") + string(REPLACE ";" " " _TARGET_${arch}_CFLAGS "${TARGET_${arch}_CFLAGS}") + check_compile_definition(__VFP_FP__ "${CMAKE_C_FLAGS} ${_TARGET_${arch}_CFLAGS}" COMPILER_RT_HAS_${arch}_VFP) + if(NOT COMPILER_RT_HAS_${arch}_VFP) diff --git a/pkgs/development/compilers/llvm/14/compiler-rt/codesign.patch b/pkgs/development/compilers/llvm/14/compiler-rt/codesign.patch new file mode 100644 index 000000000000..065959d14d46 --- /dev/null +++ b/pkgs/development/compilers/llvm/14/compiler-rt/codesign.patch @@ -0,0 +1,33 @@ +From 3dec5f3475a26aeb4678627795c4b67c6b7b4785 Mon Sep 17 00:00:00 2001 +From: Will Dietz +Date: Tue, 19 Sep 2017 13:13:06 -0500 +Subject: [PATCH] remove codesign use on Apple, disable ios sim testing that + needs it + +--- + cmake/Modules/AddCompilerRT.cmake | 8 ------ + test/asan/CMakeLists.txt | 52 --------------------------------------- + test/tsan/CMakeLists.txt | 47 ----------------------------------- + 3 files changed, 107 deletions(-) + +diff --git a/cmake/Modules/AddCompilerRT.cmake b/cmake/Modules/AddCompilerRT.cmake +index bc69ec95c419..9f100fdcec2f 100644 +--- a/cmake/Modules/AddCompilerRT.cmake ++++ b/cmake/Modules/AddCompilerRT.cmake +@@ -366,14 +366,6 @@ function(add_compiler_rt_runtime name type) + set_target_properties(${libname} PROPERTIES IMPORT_PREFIX "") + set_target_properties(${libname} PROPERTIES IMPORT_SUFFIX ".lib") + endif() +- if(APPLE) +- # Ad-hoc sign the dylibs +- add_custom_command(TARGET ${libname} +- POST_BUILD +- COMMAND codesign --sign - $ +- WORKING_DIRECTORY ${COMPILER_RT_OUTPUT_LIBRARY_DIR} +- ) +- endif() + endif() + + set(parent_target_arg) +2.14.1 + diff --git a/pkgs/development/compilers/llvm/14/compiler-rt/darwin-targetconditionals.patch b/pkgs/development/compilers/llvm/14/compiler-rt/darwin-targetconditionals.patch new file mode 100644 index 000000000000..425dc2af01e7 --- /dev/null +++ b/pkgs/development/compilers/llvm/14/compiler-rt/darwin-targetconditionals.patch @@ -0,0 +1,71 @@ +diff --git a/lib/sanitizer_common/sanitizer_mac.cpp b/lib/sanitizer_common/sanitizer_mac.cpp +--- a/lib/sanitizer_common/sanitizer_mac.cpp ++++ b/lib/sanitizer_common/sanitizer_mac.cpp +@@ -613,9 +613,15 @@ HandleSignalMode GetHandleSignalMode(int signum) { + // Offset example: + // XNU 17 -- macOS 10.13 -- iOS 11 -- tvOS 11 -- watchOS 4 + constexpr u16 GetOSMajorKernelOffset() { +- if (TARGET_OS_OSX) return 4; +- if (TARGET_OS_IOS || TARGET_OS_TV) return 6; +- if (TARGET_OS_WATCH) return 13; ++#if TARGET_OS_OSX ++ return 4; ++#endif ++#if TARGET_OS_IOS || TARGET_OS_TV ++ return 6; ++#endif ++#if TARGET_OS_WATCH ++ return 13; ++#endif + } + + using VersStr = char[64]; +@@ -627,13 +633,13 @@ static uptr ApproximateOSVersionViaKernelVersion(VersStr vers) { + u16 os_major = kernel_major - offset; + + const char *format = "%d.0"; +- if (TARGET_OS_OSX) { +- if (os_major >= 16) { // macOS 11+ +- os_major -= 5; +- } else { // macOS 10.15 and below +- format = "10.%d"; +- } ++#if TARGET_OS_OSX ++ if (os_major >= 16) { // macOS 11+ ++ os_major -= 5; ++ } else { // macOS 10.15 and below ++ format = "10.%d"; + } ++#endif + return internal_snprintf(vers, sizeof(VersStr), format, os_major); + } + +@@ -681,15 +687,14 @@ void ParseVersion(const char *vers, u16 *major, u16 *minor) { + // Aligned versions example: + // macOS 10.15 -- iOS 13 -- tvOS 13 -- watchOS 6 + static void MapToMacos(u16 *major, u16 *minor) { +- if (TARGET_OS_OSX) +- return; +- +- if (TARGET_OS_IOS || TARGET_OS_TV) ++#if !TARGET_OS_OSX ++#if TARGET_OS_IOS || TARGET_OS_TV + *major += 2; +- else if (TARGET_OS_WATCH) ++#elif TARGET_OS_WATCH + *major += 9; +- else ++#else + UNREACHABLE("unsupported platform"); ++#endif + + if (*major >= 16) { // macOS 11+ + *major -= 5; +@@ -697,6 +702,7 @@ static void MapToMacos(u16 *major, u16 *minor) { + *minor = *major; + *major = 10; + } ++#endif + } + + static MacosVersion GetMacosAlignedVersionInternal() { diff --git a/pkgs/development/compilers/llvm/14/compiler-rt/default.nix b/pkgs/development/compilers/llvm/14/compiler-rt/default.nix new file mode 100644 index 000000000000..59ca5348fed4 --- /dev/null +++ b/pkgs/development/compilers/llvm/14/compiler-rt/default.nix @@ -0,0 +1,126 @@ +{ lib, stdenv, llvm_meta, version +, monorepoSrc, runCommand +, cmake, python3, libllvm, libcxxabi +}: + +let + + useLLVM = stdenv.hostPlatform.useLLVM or false; + bareMetal = stdenv.hostPlatform.parsed.kernel.name == "none"; + haveLibc = stdenv.cc.libc != null; + inherit (stdenv.hostPlatform) isMusl; + + baseName = "compiler-rt"; + + src = runCommand "${baseName}-src-${version}" {} '' + mkdir -p "$out" + cp -r ${monorepoSrc}/cmake "$out" + cp -r ${monorepoSrc}/${baseName} "$out" + ''; +in + +stdenv.mkDerivation { + pname = baseName + lib.optionalString (haveLibc) "-libc"; + inherit version; + + inherit src; + sourceRoot = "${src.name}/${baseName}"; + + nativeBuildInputs = [ cmake python3 libllvm.dev ]; + buildInputs = lib.optional stdenv.hostPlatform.isDarwin libcxxabi; + + NIX_CFLAGS_COMPILE = [ + "-DSCUDO_DEFAULT_OPTIONS=DeleteSizeMismatch=0:DeallocationTypeMismatch=0" + ]; + + cmakeFlags = [ + "-DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON" + "-DCMAKE_C_COMPILER_TARGET=${stdenv.hostPlatform.config}" + "-DCMAKE_ASM_COMPILER_TARGET=${stdenv.hostPlatform.config}" + ] ++ lib.optionals (useLLVM || bareMetal || isMusl) [ + "-DCOMPILER_RT_BUILD_SANITIZERS=OFF" + "-DCOMPILER_RT_BUILD_XRAY=OFF" + "-DCOMPILER_RT_BUILD_LIBFUZZER=OFF" + "-DCOMPILER_RT_BUILD_PROFILE=OFF" + "-DCOMPILER_RT_BUILD_MEMPROF=OFF" + "-DCOMPILER_RT_BUILD_ORC=OFF" # may be possible to build with musl if necessary + ] ++ lib.optionals ((useLLVM || bareMetal) && !haveLibc) [ + "-DCMAKE_C_COMPILER_WORKS=ON" + "-DCMAKE_CXX_COMPILER_WORKS=ON" + "-DCOMPILER_RT_BAREMETAL_BUILD=ON" + "-DCMAKE_SIZEOF_VOID_P=${toString (stdenv.hostPlatform.parsed.cpu.bits / 8)}" + ] ++ lib.optionals (useLLVM && !haveLibc) [ + "-DCMAKE_C_FLAGS=-nodefaultlibs" + ] ++ lib.optionals (useLLVM) [ + "-DCOMPILER_RT_BUILD_BUILTINS=ON" + #https://stackoverflow.com/questions/53633705/cmake-the-c-compiler-is-not-able-to-compile-a-simple-test-program + "-DCMAKE_TRY_COMPILE_TARGET_TYPE=STATIC_LIBRARY" + ] ++ lib.optionals (bareMetal) [ + "-DCOMPILER_RT_OS_DIR=baremetal" + ] ++ lib.optionals (stdenv.hostPlatform.isDarwin) [ + "-DDARWIN_macosx_OVERRIDE_SDK_VERSION=ON" + "-DDARWIN_osx_ARCHS=${stdenv.hostPlatform.darwinArch}" + "-DDARWIN_osx_BUILTIN_ARCHS=${stdenv.hostPlatform.darwinArch}" + ]; + + outputs = [ "out" "dev" ]; + + patches = [ + ./codesign.patch # Revert compiler-rt commit that makes codesign mandatory + ./X86-support-extension.patch # Add support for i486 i586 i686 by reusing i386 config + ./gnu-install-dirs.patch + # ld-wrapper dislikes `-rpath-link //nix/store`, so we normalize away the + # extra `/`. + ./normalize-var.patch + ] # Prevent a compilation error on darwin + ++ lib.optional stdenv.hostPlatform.isDarwin ./darwin-targetconditionals.patch + ++ lib.optional stdenv.hostPlatform.isAarch32 ./armv7l.patch; + + # TSAN requires XPC on Darwin, which we have no public/free source files for. We can depend on the Apple frameworks + # to get it, but they're unfree. Since LLVM is rather central to the stdenv, we patch out TSAN support so that Hydra + # can build this. If we didn't do it, basically the entire nixpkgs on Darwin would have an unfree dependency and we'd + # get no binary cache for the entire platform. If you really find yourself wanting the TSAN, make this controllable by + # a flag and turn the flag off during the stdenv build. + postPatch = lib.optionalString (!stdenv.isDarwin) '' + substituteInPlace cmake/builtin-config-ix.cmake \ + --replace 'set(X86 i386)' 'set(X86 i386 i486 i586 i686)' + '' + lib.optionalString stdenv.isDarwin '' + substituteInPlace cmake/builtin-config-ix.cmake \ + --replace 'set(ARM64 arm64 arm64e)' 'set(ARM64)' + substituteInPlace cmake/config-ix.cmake \ + --replace 'set(COMPILER_RT_HAS_TSAN TRUE)' 'set(COMPILER_RT_HAS_TSAN FALSE)' + '' + lib.optionalString (useLLVM) '' + substituteInPlace lib/builtins/int_util.c \ + --replace "#include " "" + substituteInPlace lib/builtins/clear_cache.c \ + --replace "#include " "" + substituteInPlace lib/builtins/cpu_model.c \ + --replace "#include " "" + ''; + + # Hack around weird upsream RPATH bug + postInstall = lib.optionalString (stdenv.hostPlatform.isDarwin || stdenv.hostPlatform.isWasm) '' + ln -s "$out/lib"/*/* "$out/lib" + '' + lib.optionalString (useLLVM) '' + ln -s $out/lib/*/clang_rt.crtbegin-*.o $out/lib/crtbegin.o + ln -s $out/lib/*/clang_rt.crtend-*.o $out/lib/crtend.o + ln -s $out/lib/*/clang_rt.crtbegin_shared-*.o $out/lib/crtbeginS.o + ln -s $out/lib/*/clang_rt.crtend_shared-*.o $out/lib/crtendS.o + ''; + + meta = llvm_meta // { + homepage = "https://compiler-rt.llvm.org/"; + description = "Compiler runtime libraries"; + longDescription = '' + The compiler-rt project provides highly tuned implementations of the + low-level code generator support routines like "__fixunsdfdi" and other + calls generated when a target doesn't have a short sequence of native + instructions to implement a core IR operation. It also provides + implementations of run-time libraries for dynamic testing tools such as + AddressSanitizer, ThreadSanitizer, MemorySanitizer, and DataFlowSanitizer. + ''; + # "All of the code in the compiler-rt project is dual licensed under the MIT + # license and the UIUC License (a BSD-like license)": + license = with lib.licenses; [ mit ncsa ]; + }; +} diff --git a/pkgs/development/compilers/llvm/14/compiler-rt/gnu-install-dirs.patch b/pkgs/development/compilers/llvm/14/compiler-rt/gnu-install-dirs.patch new file mode 100644 index 000000000000..55837bd8e45b --- /dev/null +++ b/pkgs/development/compilers/llvm/14/compiler-rt/gnu-install-dirs.patch @@ -0,0 +1,42 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 3a41aa43e406..f000cee6eae0 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -5,6 +5,8 @@ + + cmake_minimum_required(VERSION 3.13.4) + ++include(GNUInstallDirs) ++ + # Check if compiler-rt is built as a standalone project. + if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR OR COMPILER_RT_STANDALONE_BUILD) + project(CompilerRT C CXX ASM) +diff --git a/cmake/base-config-ix.cmake b/cmake/base-config-ix.cmake +index d7b0124f3546..3e111146df4d 100644 +--- a/cmake/base-config-ix.cmake ++++ b/cmake/base-config-ix.cmake +@@ -67,7 +67,7 @@ if (LLVM_TREE_AVAILABLE) + else() + # Take output dir and install path from the user. + set(COMPILER_RT_OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR} CACHE PATH +- "Path where built compiler-rt libraries should be stored.") ++ "Path where built compiler-rt build artifacts should be stored.") + set(COMPILER_RT_EXEC_OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR}/bin CACHE PATH + "Path where built compiler-rt executables should be stored.") + set(COMPILER_RT_INSTALL_PATH "" CACHE PATH +@@ -99,13 +99,13 @@ endif() + if(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR AND NOT APPLE) + set(COMPILER_RT_OUTPUT_LIBRARY_DIR + ${COMPILER_RT_OUTPUT_DIR}/lib) +- extend_path(default_install_path "${COMPILER_RT_INSTALL_PATH}" lib) ++ extend_path(default_install_path "${COMPILER_RT_INSTALL_PATH}" "${CMAKE_INSTALL_LIBDIR}") + set(COMPILER_RT_INSTALL_LIBRARY_DIR "${default_install_path}" CACHE PATH + "Path where built compiler-rt libraries should be installed.") + else(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR AND NOT APPLE) + set(COMPILER_RT_OUTPUT_LIBRARY_DIR + ${COMPILER_RT_OUTPUT_DIR}/lib/${COMPILER_RT_OS_DIR}) +- extend_path(default_install_path "${COMPILER_RT_INSTALL_PATH}" "lib/${COMPILER_RT_OS_DIR}") ++ extend_path(default_install_path "${COMPILER_RT_INSTALL_PATH}" "${CMAKE_INSTALL_LIBDIR}/${COMPILER_RT_OS_DIR}") + set(COMPILER_RT_INSTALL_LIBRARY_DIR "${default_install_path}" CACHE PATH + "Path where built compiler-rt libraries should be installed.") + endif() diff --git a/pkgs/development/compilers/llvm/14/compiler-rt/normalize-var.patch b/pkgs/development/compilers/llvm/14/compiler-rt/normalize-var.patch new file mode 100644 index 000000000000..135cf625ef78 --- /dev/null +++ b/pkgs/development/compilers/llvm/14/compiler-rt/normalize-var.patch @@ -0,0 +1,16 @@ +diff --git a/compiler-rt/cmake/Modules/CompilerRTUtils.cmake b/compiler-rt/cmake/Modules/CompilerRTUtils.cmake +index f1f46fb9599c..6f19e69507ba 100644 +--- a/cmake/Modules/CompilerRTUtils.cmake ++++ b/cmake/Modules/CompilerRTUtils.cmake +@@ -302,8 +302,9 @@ macro(load_llvm_config) + # Get some LLVM variables from LLVMConfig. + include("${LLVM_CMAKE_PATH}/LLVMConfig.cmake") + +- set(LLVM_LIBRARY_OUTPUT_INTDIR +- ${LLVM_BINARY_DIR}/${CMAKE_CFG_INTDIR}/lib${LLVM_LIBDIR_SUFFIX}) ++ get_filename_component(LLVM_LIBRARY_OUTPUT_INTDIR ++ ${LLVM_BINARY_DIR}/${CMAKE_CFG_INTDIR}/lib${LLVM_LIBDIR_SUFFIX} ++ REALPATH) + endif() + endmacro() + diff --git a/pkgs/development/compilers/llvm/14/default.nix b/pkgs/development/compilers/llvm/14/default.nix new file mode 100644 index 000000000000..6f4a0d8ee754 --- /dev/null +++ b/pkgs/development/compilers/llvm/14/default.nix @@ -0,0 +1,278 @@ +{ lowPrio, newScope, pkgs, lib, stdenv, cmake +, gccForLibs, preLibcCrossHeaders +, libxml2, python3, isl, fetchFromGitHub, overrideCC, wrapCCWith, wrapBintoolsWith +, buildLlvmTools # tools, but from the previous stage, for cross +, targetLlvmLibraries # libraries, but from the next stage, for cross +# This is the default binutils, but with *this* version of LLD rather +# than the default LLVM verion's, if LLD is the choice. We use these for +# the `useLLVM` bootstrapping below. +, bootBintoolsNoLibc ? + if stdenv.targetPlatform.linker == "lld" + then null + else pkgs.bintoolsNoLibc +, bootBintools ? + if stdenv.targetPlatform.linker == "lld" + then null + else pkgs.bintools +, darwin +}: + +let + release_version = "14.0.0"; + candidate = "rc1"; # empty or "rcN" + dash-candidate = lib.optionalString (candidate != "") "-${candidate}"; + rev = ""; # When using a Git commit + rev-version = ""; # When using a Git commit + version = if rev != "" then rev-version else "${release_version}${dash-candidate}"; + targetConfig = stdenv.targetPlatform.config; + + monorepoSrc = fetchFromGitHub { + owner = "llvm"; + repo = "llvm-project"; + rev = if rev != "" then rev else "llvmorg-${version}"; + sha256 = "sha256-bO13J5bhE4YVGvoaTuzFgf62HYh+Shv6T0u07CFjI9E="; + }; + + llvm_meta = { + license = lib.licenses.ncsa; + maintainers = with lib.maintainers; [ lovek323 raskin dtzWill primeos ]; + platforms = lib.platforms.all; + }; + + tools = lib.makeExtensible (tools: let + callPackage = newScope (tools // { inherit stdenv cmake libxml2 python3 isl release_version version monorepoSrc buildLlvmTools; }); + mkExtraBuildCommands0 = cc: '' + rsrc="$out/resource-root" + mkdir "$rsrc" + ln -s "${cc.lib}/lib/clang/${release_version}/include" "$rsrc" + echo "-resource-dir=$rsrc" >> $out/nix-support/cc-cflags + ''; + mkExtraBuildCommands = cc: mkExtraBuildCommands0 cc + '' + ln -s "${targetLlvmLibraries.compiler-rt.out}/lib" "$rsrc/lib" + ln -s "${targetLlvmLibraries.compiler-rt.out}/share" "$rsrc/share" + ''; + + bintoolsNoLibc' = + if bootBintoolsNoLibc == null + then tools.bintoolsNoLibc + else bootBintoolsNoLibc; + bintools' = + if bootBintools == null + then tools.bintools + else bootBintools; + + in { + + libllvm = callPackage ./llvm { + inherit llvm_meta; + }; + + # `llvm` historically had the binaries. When choosing an output explicitly, + # we need to reintroduce `outputSpecified` to get the expected behavior e.g. of lib.get* + llvm = tools.libllvm.out // { outputSpecified = false; }; + + libclang = callPackage ./clang { + inherit llvm_meta; + }; + + clang-unwrapped = tools.libclang.out // { outputSpecified = false; }; + + llvm-manpages = lowPrio (tools.libllvm.override { + enableManpages = true; + python3 = pkgs.python3; # don't use python-boot + }); + + clang-manpages = lowPrio (tools.libclang.override { + enableManpages = true; + python3 = pkgs.python3; # don't use python-boot + }); + + # TODO: lldb/docs/index.rst:155:toctree contains reference to nonexisting document 'design/structureddataplugins' + # lldb-manpages = lowPrio (tools.lldb.override { + # enableManpages = true; + # python3 = pkgs.python3; # don't use python-boot + # }); + + # pick clang appropriate for package set we are targeting + clang = + /**/ if stdenv.targetPlatform.useLLVM or false then tools.clangUseLLVM + else if (pkgs.targetPackages.stdenv or stdenv).cc.isGNU then tools.libstdcxxClang + else tools.libcxxClang; + + libstdcxxClang = wrapCCWith rec { + cc = tools.clang-unwrapped; + # libstdcxx is taken from gcc in an ad-hoc way in cc-wrapper. + libcxx = null; + extraPackages = [ + targetLlvmLibraries.compiler-rt + ]; + extraBuildCommands = mkExtraBuildCommands cc; + }; + + libcxxClang = wrapCCWith rec { + cc = tools.clang-unwrapped; + libcxx = targetLlvmLibraries.libcxx; + extraPackages = [ + targetLlvmLibraries.libcxxabi + targetLlvmLibraries.compiler-rt + ]; + extraBuildCommands = mkExtraBuildCommands cc; + }; + + lld = callPackage ./lld { + inherit llvm_meta; + }; + + lldb = callPackage ./lldb { + inherit llvm_meta; + inherit (darwin) libobjc bootstrap_cmds; + inherit (darwin.apple_sdk.libs) xpc; + inherit (darwin.apple_sdk.frameworks) Foundation Carbon Cocoa; + }; + + # Below, is the LLVM bootstrapping logic. It handles building a + # fully LLVM toolchain from scratch. No GCC toolchain should be + # pulled in. As a consequence, it is very quick to build different + # targets provided by LLVM and we can also build for what GCC + # doesn’t support like LLVM. Probably we should move to some other + # file. + + bintools-unwrapped = callPackage ./bintools {}; + + bintoolsNoLibc = wrapBintoolsWith { + bintools = tools.bintools-unwrapped; + libc = preLibcCrossHeaders; + }; + + bintools = wrapBintoolsWith { + bintools = tools.bintools-unwrapped; + }; + + clangUseLLVM = wrapCCWith rec { + cc = tools.clang-unwrapped; + libcxx = targetLlvmLibraries.libcxx; + bintools = bintools'; + extraPackages = [ + targetLlvmLibraries.libcxxabi + targetLlvmLibraries.compiler-rt + ] ++ lib.optionals (!stdenv.targetPlatform.isWasm) [ + targetLlvmLibraries.libunwind + ]; + extraBuildCommands = '' + echo "-rtlib=compiler-rt -Wno-unused-command-line-argument" >> $out/nix-support/cc-cflags + echo "-B${targetLlvmLibraries.compiler-rt}/lib" >> $out/nix-support/cc-cflags + '' + lib.optionalString (!stdenv.targetPlatform.isWasm) '' + echo "--unwindlib=libunwind" >> $out/nix-support/cc-cflags + '' + lib.optionalString (!stdenv.targetPlatform.isWasm && stdenv.targetPlatform.useLLVM or false) '' + echo "-lunwind" >> $out/nix-support/cc-ldflags + '' + lib.optionalString stdenv.targetPlatform.isWasm '' + echo "-fno-exceptions" >> $out/nix-support/cc-cflags + '' + mkExtraBuildCommands cc; + }; + + clangNoLibcxx = wrapCCWith rec { + cc = tools.clang-unwrapped; + libcxx = null; + bintools = bintools'; + extraPackages = [ + targetLlvmLibraries.compiler-rt + ]; + extraBuildCommands = '' + echo "-rtlib=compiler-rt" >> $out/nix-support/cc-cflags + echo "-B${targetLlvmLibraries.compiler-rt}/lib" >> $out/nix-support/cc-cflags + echo "-nostdlib++" >> $out/nix-support/cc-cflags + '' + mkExtraBuildCommands cc; + }; + + clangNoLibc = wrapCCWith rec { + cc = tools.clang-unwrapped; + libcxx = null; + bintools = bintoolsNoLibc'; + extraPackages = [ + targetLlvmLibraries.compiler-rt + ]; + extraBuildCommands = '' + echo "-rtlib=compiler-rt" >> $out/nix-support/cc-cflags + echo "-B${targetLlvmLibraries.compiler-rt}/lib" >> $out/nix-support/cc-cflags + '' + mkExtraBuildCommands cc; + }; + + clangNoCompilerRt = wrapCCWith rec { + cc = tools.clang-unwrapped; + libcxx = null; + bintools = bintoolsNoLibc'; + extraPackages = [ ]; + extraBuildCommands = '' + echo "-nostartfiles" >> $out/nix-support/cc-cflags + '' + mkExtraBuildCommands0 cc; + }; + + clangNoCompilerRtWithLibc = wrapCCWith rec { + cc = tools.clang-unwrapped; + libcxx = null; + bintools = bintools'; + extraPackages = [ ]; + extraBuildCommands = mkExtraBuildCommands0 cc; + }; + + }); + + libraries = lib.makeExtensible (libraries: let + callPackage = newScope (libraries // buildLlvmTools // { inherit stdenv cmake libxml2 python3 isl release_version version monorepoSrc; }); + in { + + compiler-rt-libc = callPackage ./compiler-rt { + inherit llvm_meta; + stdenv = if stdenv.hostPlatform.useLLVM or false + then overrideCC stdenv buildLlvmTools.clangNoCompilerRtWithLibc + else stdenv; + }; + + compiler-rt-no-libc = callPackage ./compiler-rt { + inherit llvm_meta; + stdenv = if stdenv.hostPlatform.useLLVM or false + then overrideCC stdenv buildLlvmTools.clangNoCompilerRt + else stdenv; + }; + + # N.B. condition is safe because without useLLVM both are the same. + compiler-rt = if stdenv.hostPlatform.isAndroid + then libraries.compiler-rt-libc + else libraries.compiler-rt-no-libc; + + stdenv = overrideCC stdenv buildLlvmTools.clang; + + libcxxStdenv = overrideCC stdenv buildLlvmTools.libcxxClang; + + libcxx = callPackage ./libcxx { + inherit llvm_meta; + stdenv = if stdenv.hostPlatform.useLLVM or false + then overrideCC stdenv buildLlvmTools.clangNoLibcxx + else stdenv; + }; + + libcxxabi = let + stdenv_ = if stdenv.hostPlatform.useLLVM or false + then overrideCC stdenv buildLlvmTools.clangNoLibcxx + else stdenv; + cxx-headers = callPackage ./libcxx { + inherit llvm_meta; + stdenv = stdenv_; + headersOnly = true; + }; + in callPackage ./libcxxabi { + stdenv = stdenv_; + inherit llvm_meta cxx-headers; + }; + + libunwind = callPackage ./libunwind { + inherit llvm_meta; + stdenv = overrideCC stdenv buildLlvmTools.clangNoLibcxx; + }; + + openmp = callPackage ./openmp { + inherit llvm_meta; + }; + }); + +in { inherit tools libraries release_version; } // libraries // tools diff --git a/pkgs/development/compilers/llvm/14/libcxx/default.nix b/pkgs/development/compilers/llvm/14/libcxx/default.nix new file mode 100644 index 000000000000..8891a69937ab --- /dev/null +++ b/pkgs/development/compilers/llvm/14/libcxx/default.nix @@ -0,0 +1,89 @@ +{ lib, stdenv, llvm_meta +, monorepoSrc, runCommand +, cmake, python3, fixDarwinDylibNames, version +, libcxxabi +, enableShared ? !stdenv.hostPlatform.isStatic + +# If headersOnly is true, the resulting package would only include the headers. +# Use this to break the circular dependency between libcxx and libcxxabi. +# +# Some context: +# https://reviews.llvm.org/rG1687f2bbe2e2aaa092f942d4a97d41fad43eedfb +, headersOnly ? false +}: + +let + basename = "libcxx"; +in + +stdenv.mkDerivation rec { + pname = basename + lib.optionalString headersOnly "-headers"; + inherit version; + + src = runCommand "${pname}-src-${version}" {} '' + mkdir -p "$out" + cp -r ${monorepoSrc}/cmake "$out" + cp -r ${monorepoSrc}/${basename} "$out" + mkdir -p "$out/libcxxabi" + cp -r ${monorepoSrc}/libcxxabi/include "$out/libcxxabi" + mkdir -p "$out/llvm" + cp -r ${monorepoSrc}/llvm/cmake "$out/llvm" + cp -r ${monorepoSrc}/llvm/utils "$out/llvm" + ''; + + sourceRoot = "${src.name}/${basename}"; + + outputs = [ "out" ] ++ lib.optional (!headersOnly) "dev"; + + patches = [ + ./gnu-install-dirs.patch + ] ++ lib.optionals stdenv.hostPlatform.isMusl [ + ../../libcxx-0001-musl-hacks.patch + ]; + + preConfigure = lib.optionalString stdenv.hostPlatform.isMusl '' + patchShebangs utils/cat_files.py + ''; + + nativeBuildInputs = [ cmake python3 ] + ++ lib.optional stdenv.isDarwin fixDarwinDylibNames; + + buildInputs = lib.optionals (!headersOnly) [ libcxxabi ]; + + cmakeFlags = [ "-DLIBCXX_CXX_ABI=libcxxabi" ] + ++ lib.optional (stdenv.hostPlatform.isMusl || stdenv.hostPlatform.isWasi) "-DLIBCXX_HAS_MUSL_LIBC=1" + ++ lib.optional (stdenv.hostPlatform.useLLVM or false) "-DLIBCXX_USE_COMPILER_RT=ON" + ++ lib.optionals stdenv.hostPlatform.isWasm [ + "-DLIBCXX_ENABLE_THREADS=OFF" + "-DLIBCXX_ENABLE_FILESYSTEM=OFF" + "-DLIBCXX_ENABLE_EXCEPTIONS=OFF" + ] ++ lib.optional (!enableShared) "-DLIBCXX_ENABLE_SHARED=OFF"; + + buildFlags = lib.optional headersOnly "generate-cxx-headers"; + installTargets = lib.optional headersOnly "install-cxx-headers"; + + # At this point, cxxabi headers would be installed in the dev output, which + # prevents moveToOutput from doing its job later in the build process. + postInstall = lib.optionalString (!headersOnly) '' + mv "$dev/include/c++/v1/"* "$out/include/c++/v1/" + pushd "$dev" + rmdir -p include/c++/v1 + popd + ''; + + passthru = { + isLLVM = true; + }; + + meta = llvm_meta // { + homepage = "https://libcxx.llvm.org/"; + description = "C++ standard library"; + longDescription = '' + libc++ is an implementation of the C++ standard library, targeting C++11, + C++14 and above. + ''; + # "All of the code in libc++ is dual licensed under the MIT license and the + # UIUC License (a BSD-like license)": + license = with lib.licenses; [ mit ncsa ]; + }; +} diff --git a/pkgs/development/compilers/llvm/14/libcxx/gnu-install-dirs.patch b/pkgs/development/compilers/llvm/14/libcxx/gnu-install-dirs.patch new file mode 100644 index 000000000000..0f1d5c411ab8 --- /dev/null +++ b/pkgs/development/compilers/llvm/14/libcxx/gnu-install-dirs.patch @@ -0,0 +1,85 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index b0569a4a54ca..7d665f5a3258 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -10,6 +10,8 @@ endif() + #=============================================================================== + cmake_minimum_required(VERSION 3.13.4) + ++include(GNUInstallDirs) ++ + set(LLVM_COMMON_CMAKE_UTILS "${CMAKE_CURRENT_SOURCE_DIR}/../cmake") + + # Add path for custom modules +@@ -415,13 +417,13 @@ if(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR AND NOT APPLE) + set(LIBCXX_LIBRARY_DIR ${LLVM_LIBRARY_OUTPUT_INTDIR}/${LLVM_DEFAULT_TARGET_TRIPLE}) + set(LIBCXX_GENERATED_INCLUDE_DIR "${LLVM_BINARY_DIR}/include/c++/v1") + set(LIBCXX_GENERATED_INCLUDE_TARGET_DIR "${LLVM_BINARY_DIR}/include/${LLVM_DEFAULT_TARGET_TRIPLE}/c++/v1") +- set(LIBCXX_INSTALL_LIBRARY_DIR lib${LLVM_LIBDIR_SUFFIX}/${LLVM_DEFAULT_TARGET_TRIPLE} CACHE PATH ++ set(LIBCXX_INSTALL_LIBRARY_DIR "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/${LLVM_DEFAULT_TARGET_TRIPLE}" CACHE PATH + "Path where built libc++ libraries should be installed.") +- set(LIBCXX_INSTALL_RUNTIME_DIR bin CACHE PATH ++ set(LIBCXX_INSTALL_RUNTIME_DIR "${CMAKE_INSTALL_BINDIR}" CACHE PATH + "Path where built libc++ runtime libraries should be installed.") +- set(LIBCXX_INSTALL_INCLUDE_DIR "include/c++/v1" CACHE PATH ++ set(LIBCXX_INSTALL_INCLUDE_DIR "${CMAKE_INSTALL_INCLUDEDIR}/c++/v1" CACHE PATH + "Path where target-agnostic libc++ headers should be installed.") +- set(LIBCXX_INSTALL_INCLUDE_TARGET_DIR "include/${LLVM_DEFAULT_TARGET_TRIPLE}/c++/v1" CACHE PATH ++ set(LIBCXX_INSTALL_INCLUDE_TARGET_DIR "${CMAKE_INSTALL_INCLUDEDIR}/${LLVM_DEFAULT_TARGET_TRIPLE}/c++/v1" CACHE PATH + "Path where target-specific libc++ headers should be installed.") + if(LIBCXX_LIBDIR_SUBDIR) + string(APPEND LIBCXX_LIBRARY_DIR /${LIBCXX_LIBDIR_SUBDIR}) +@@ -431,11 +433,11 @@ elseif(LLVM_LIBRARY_OUTPUT_INTDIR) + set(LIBCXX_LIBRARY_DIR ${LLVM_LIBRARY_OUTPUT_INTDIR}) + set(LIBCXX_GENERATED_INCLUDE_DIR "${LLVM_BINARY_DIR}/include/c++/v1") + set(LIBCXX_GENERATED_INCLUDE_TARGET_DIR "${LIBCXX_GENERATED_INCLUDE_DIR}") +- set(LIBCXX_INSTALL_LIBRARY_DIR lib${LIBCXX_LIBDIR_SUFFIX} CACHE PATH ++ set(LIBCXX_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LIBCXX_LIBDIR_SUFFIX} CACHE PATH + "Path where built libc++ libraries should be installed.") +- set(LIBCXX_INSTALL_RUNTIME_DIR bin CACHE PATH ++ set(LIBCXX_INSTALL_RUNTIME_DIR "${CMAKE_INSTALL_BINDIR}/c++/v1" CACHE PATH + "Path where built libc++ runtime libraries should be installed.") +- set(LIBCXX_INSTALL_INCLUDE_DIR "include/c++/v1" CACHE PATH ++ set(LIBCXX_INSTALL_INCLUDE_DIR "${CMAKE_INSTALL_INCLUDEDIR}/c++/v1" CACHE PATH + "Path where target-agnostic libc++ headers should be installed.") + set(LIBCXX_INSTALL_INCLUDE_TARGET_DIR "${LIBCXX_INSTALL_INCLUDE_DIR}" CACHE PATH + "Path where target-specific libc++ headers should be installed.") +@@ -443,11 +445,11 @@ else() + set(LIBCXX_LIBRARY_DIR ${CMAKE_BINARY_DIR}/lib${LIBCXX_LIBDIR_SUFFIX}) + set(LIBCXX_GENERATED_INCLUDE_DIR "${CMAKE_BINARY_DIR}/include/c++/v1") + set(LIBCXX_GENERATED_INCLUDE_TARGET_DIR "${LIBCXX_GENERATED_INCLUDE_DIR}") +- set(LIBCXX_INSTALL_LIBRARY_DIR lib${LIBCXX_LIBDIR_SUFFIX} CACHE PATH ++ set(LIBCXX_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LIBCXX_LIBDIR_SUFFIX} CACHE PATH + "Path where built libc++ libraries should be installed.") +- set(LIBCXX_INSTALL_RUNTIME_DIR bin CACHE PATH ++ set(LIBCXX_INSTALL_RUNTIME_DIR "${CMAKE_INSTALL_BINDIR}" CACHE PATH + "Path where built libc++ runtime libraries should be installed.") +- set(LIBCXX_INSTALL_INCLUDE_DIR "include/c++/v1" CACHE PATH ++ set(LIBCXX_INSTALL_INCLUDE_DIR "${CMAKE_INSTALL_INCLUDEDIR}/c++/v1" CACHE PATH + "Path where target-agnostic libc++ headers should be installed.") + set(LIBCXX_INSTALL_INCLUDE_TARGET_DIR "${LIBCXX_INSTALL_INCLUDE_DIR}" CACHE PATH + "Path where target-specific libc++ headers should be installed.") +diff --git a/cmake/Modules/HandleLibCXXABI.cmake b/cmake/Modules/HandleLibCXXABI.cmake +index 5a8a4a270a1a..d69405ddeeac 100644 +--- a/cmake/Modules/HandleLibCXXABI.cmake ++++ b/cmake/Modules/HandleLibCXXABI.cmake +@@ -1,8 +1,9 @@ +- + #=============================================================================== + # Add an ABI library if appropriate + #=============================================================================== + ++include(GNUInstallDirs) ++ + # + # _setup_abi: Set up the build to use an ABI library + # +@@ -63,7 +64,7 @@ macro(setup_abi_lib abidefines abishared abistatic abifiles abidirs) + + if (LIBCXX_INSTALL_HEADERS) + install(FILES "${LIBCXX_BINARY_INCLUDE_DIR}/${fpath}" +- DESTINATION include/c++/v1/${dstdir} ++ DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/c++/v1/${dstdir}" + COMPONENT cxx-headers + PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ + ) diff --git a/pkgs/development/compilers/llvm/14/libcxxabi/default.nix b/pkgs/development/compilers/llvm/14/libcxxabi/default.nix new file mode 100644 index 000000000000..d64708ab040a --- /dev/null +++ b/pkgs/development/compilers/llvm/14/libcxxabi/default.nix @@ -0,0 +1,86 @@ +{ lib, stdenv, llvm_meta, cmake, python3 +, monorepoSrc, runCommand +, cxx-headers, libunwind, version +, enableShared ? !stdenv.hostPlatform.isStatic +}: + +stdenv.mkDerivation rec { + pname = "libcxxabi"; + inherit version; + + src = runCommand "${pname}-src-${version}" {} '' + mkdir -p "$out" + cp -r ${monorepoSrc}/cmake "$out" + cp -r ${monorepoSrc}/${pname} "$out" + mkdir -p "$out/libcxx/src" + cp -r ${monorepoSrc}/libcxx/cmake "$out/libcxx" + cp -r ${monorepoSrc}/libcxx/include "$out/libcxx" + cp -r ${monorepoSrc}/libcxx/src/include "$out/libcxx/src" + mkdir -p "$out/llvm" + cp -r ${monorepoSrc}/llvm/cmake "$out/llvm" + ''; + + sourceRoot = "${src.name}/${pname}"; + + outputs = [ "out" "dev" ]; + + postUnpack = lib.optionalString stdenv.isDarwin '' + export TRIPLE=x86_64-apple-darwin + '' + lib.optionalString stdenv.hostPlatform.isWasm '' + patch -p1 -d llvm -i ${./wasm.patch} + ''; + + patches = [ + ./gnu-install-dirs.patch + ]; + + nativeBuildInputs = [ cmake python3 ]; + buildInputs = lib.optional (!stdenv.isDarwin && !stdenv.isFreeBSD && !stdenv.hostPlatform.isWasm) libunwind; + + cmakeFlags = [ + "-DLIBCXXABI_LIBCXX_INCLUDES=${cxx-headers}/include/c++/v1" + ] ++ lib.optionals (stdenv.hostPlatform.useLLVM or false) [ + "-DLLVM_ENABLE_LIBCXX=ON" + "-DLIBCXXABI_USE_LLVM_UNWINDER=ON" + ] ++ lib.optionals stdenv.hostPlatform.isWasm [ + "-DLIBCXXABI_ENABLE_THREADS=OFF" + "-DLIBCXXABI_ENABLE_EXCEPTIONS=OFF" + ] ++ lib.optionals (!enableShared) [ + "-DLIBCXXABI_ENABLE_SHARED=OFF" + ]; + + installPhase = if stdenv.isDarwin + then '' + for file in lib/*.dylib; do + # this should be done in CMake, but having trouble figuring out + # the magic combination of necessary CMake variables + # if you fancy a try, take a look at + # https://gitlab.kitware.com/cmake/community/-/wikis/doc/cmake/RPATH-handling + install_name_tool -id $out/$file $file + done + make install + install -d 755 $out/include + install -m 644 ../include/*.h $out/include + '' + else '' + install -d -m 755 $out/include $out/lib + install -m 644 lib/libc++abi.a $out/lib + install -m 644 ../include/cxxabi.h $out/include + '' + lib.optionalString enableShared '' + install -m 644 lib/libc++abi.so.1.0 $out/lib + ln -s libc++abi.so.1.0 $out/lib/libc++abi.so + ln -s libc++abi.so.1.0 $out/lib/libc++abi.so.1 + ''; + + meta = llvm_meta // { + homepage = "https://libcxxabi.llvm.org/"; + description = "Provides C++ standard library support"; + longDescription = '' + libc++abi is a new implementation of low level support for a standard C++ library. + ''; + # "All of the code in libc++abi is dual licensed under the MIT license and + # the UIUC License (a BSD-like license)": + license = with lib.licenses; [ mit ncsa ]; + maintainers = llvm_meta.maintainers ++ [ lib.maintainers.vlstill ]; + }; +} diff --git a/pkgs/development/compilers/llvm/14/libcxxabi/gnu-install-dirs.patch b/pkgs/development/compilers/llvm/14/libcxxabi/gnu-install-dirs.patch new file mode 100644 index 000000000000..a93348ded0c1 --- /dev/null +++ b/pkgs/development/compilers/llvm/14/libcxxabi/gnu-install-dirs.patch @@ -0,0 +1,46 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 858f5d5cfd7f..16c67d7062be 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -10,6 +10,8 @@ endif() + + cmake_minimum_required(VERSION 3.13.4) + ++include(GNUInstallDirs) ++ + set(LLVM_COMMON_CMAKE_UTILS "${CMAKE_CURRENT_SOURCE_DIR}/../cmake") + + # Add path for custom modules +@@ -213,9 +215,9 @@ set(CMAKE_MODULE_PATH + if(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR AND NOT APPLE) + set(LIBCXXABI_HEADER_DIR ${LLVM_BINARY_DIR}) + set(LIBCXXABI_LIBRARY_DIR ${LLVM_LIBRARY_OUTPUT_INTDIR}/${LLVM_DEFAULT_TARGET_TRIPLE}) +- set(LIBCXXABI_INSTALL_LIBRARY_DIR lib${LLVM_LIBDIR_SUFFIX}/${LLVM_DEFAULT_TARGET_TRIPLE} CACHE PATH ++ set(LIBCXXABI_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/${LLVM_DEFAULT_TARGET_TRIPLE} CACHE PATH + "Path where built libc++abi libraries should be installed.") +- set(LIBCXXABI_INSTALL_RUNTIME_DIR bin CACHE PATH ++ set(LIBCXXABI_INSTALL_RUNTIME_DIR "${CMAKE_INSTALL_BINDIR}" CACHE PATH + "Path where built libc++abi runtime libraries should be installed.") + if(LIBCXX_LIBDIR_SUBDIR) + string(APPEND LIBCXXABI_LIBRARY_DIR /${LIBCXXABI_LIBDIR_SUBDIR}) +@@ -224,16 +226,16 @@ if(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR AND NOT APPLE) + elseif(LLVM_LIBRARY_OUTPUT_INTDIR) + set(LIBCXXABI_HEADER_DIR ${LLVM_BINARY_DIR}) + set(LIBCXXABI_LIBRARY_DIR ${LLVM_LIBRARY_OUTPUT_INTDIR}) +- set(LIBCXXABI_INSTALL_LIBRARY_DIR lib${LIBCXXABI_LIBDIR_SUFFIX} CACHE PATH ++ set(LIBCXXABI_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LIBCXXABI_LIBDIR_SUFFIX} CACHE PATH + "Path where built libc++abi libraries should be installed.") +- set(LIBCXXABI_INSTALL_RUNTIME_DIR bin CACHE PATH ++ set(LIBCXXABI_INSTALL_RUNTIME_DIR "${CMAKE_INSTALL_BINDIR}" CACHE PATH + "Path where built libc++abi runtime libraries should be installed.") + else() + set(LIBCXXABI_HEADER_DIR ${CMAKE_BINARY_DIR}) + set(LIBCXXABI_LIBRARY_DIR ${CMAKE_BINARY_DIR}/lib${LIBCXXABI_LIBDIR_SUFFIX}) +- set(LIBCXXABI_INSTALL_LIBRARY_DIR lib${LIBCXXABI_LIBDIR_SUFFIX} CACHE PATH ++ set(LIBCXXABI_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LIBCXXABI_LIBDIR_SUFFIX} CACHE PATH + "Path where built libc++abi libraries should be installed.") +- set(LIBCXXABI_INSTALL_RUNTIME_DIR bin CACHE PATH ++ set(LIBCXXABI_INSTALL_RUNTIME_DIR "${CMAKE_INSTALL_BINDIR}" CACHE PATH + "Path where built libc++abi runtime libraries should be installed.") + endif() + diff --git a/pkgs/development/compilers/llvm/14/libcxxabi/wasm.patch b/pkgs/development/compilers/llvm/14/libcxxabi/wasm.patch new file mode 100644 index 000000000000..4ebfe46aa813 --- /dev/null +++ b/pkgs/development/compilers/llvm/14/libcxxabi/wasm.patch @@ -0,0 +1,16 @@ +diff --git a/cmake/modules/HandleLLVMOptions.cmake b/cmake/modules/HandleLLVMOptions.cmake +index 15497d405e0..33f7f18193a 100644 +--- a/cmake/modules/HandleLLVMOptions.cmake ++++ b/cmake/modules/HandleLLVMOptions.cmake +@@ -127,7 +127,10 @@ else(WIN32) + set(LLVM_HAVE_LINK_VERSION_SCRIPT 1) + endif() + else(FUCHSIA OR UNIX) +- MESSAGE(SEND_ERROR "Unable to determine platform") ++ if(${CMAKE_SYSTEM_NAME} MATCHES "Wasi") ++ else() ++ MESSAGE(SEND_ERROR "Unable to determine platform") ++ endif() + endif(FUCHSIA OR UNIX) + endif(WIN32) + diff --git a/pkgs/development/compilers/llvm/14/libunwind/default.nix b/pkgs/development/compilers/llvm/14/libunwind/default.nix new file mode 100644 index 000000000000..c6d9eda5e474 --- /dev/null +++ b/pkgs/development/compilers/llvm/14/libunwind/default.nix @@ -0,0 +1,47 @@ +{ lib, stdenv, llvm_meta, version +, monorepoSrc, runCommand +, cmake +, enableShared ? !stdenv.hostPlatform.isStatic +}: + +stdenv.mkDerivation rec { + pname = "libunwind"; + inherit version; + + # I am not so comfortable giving libc++ and friends the whole monorepo as + # requested, so I filter it to what is needed. + src = runCommand "${pname}-src-${version}" {} '' + mkdir -p "$out" + cp -r ${monorepoSrc}/cmake "$out" + cp -r ${monorepoSrc}/${pname} "$out" + mkdir -p "$out/libcxx" + cp -r ${monorepoSrc}/libcxx/cmake "$out/libcxx" + cp -r ${monorepoSrc}/libcxx/utils "$out/libcxx" + mkdir -p "$out/llvm" + cp -r ${monorepoSrc}/llvm/cmake "$out/llvm" + ''; + + sourceRoot = "${src.name}/${pname}"; + + patches = [ + ./gnu-install-dirs.patch + ]; + + outputs = [ "out" "dev" ]; + + nativeBuildInputs = [ cmake ]; + + cmakeFlags = lib.optional (!enableShared) "-DLIBUNWIND_ENABLE_SHARED=OFF"; + + meta = llvm_meta // { + # Details: https://github.com/llvm/llvm-project/blob/main/libunwind/docs/index.rst + homepage = "https://clang.llvm.org/docs/Toolchain.html#unwind-library"; + description = "LLVM's unwinder library"; + longDescription = '' + The unwind library provides a family of _Unwind_* functions implementing + the language-neutral stack unwinding portion of the Itanium C++ ABI (Level + I). It is a dependency of the C++ ABI library, and sometimes is a + dependency of other runtimes. + ''; + }; +} diff --git a/pkgs/development/compilers/llvm/14/libunwind/gnu-install-dirs.patch b/pkgs/development/compilers/llvm/14/libunwind/gnu-install-dirs.patch new file mode 100644 index 000000000000..3f05d2a87269 --- /dev/null +++ b/pkgs/development/compilers/llvm/14/libunwind/gnu-install-dirs.patch @@ -0,0 +1,65 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index e3cc66dd2226..1299b596ce0d 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -8,6 +8,8 @@ endif() + + cmake_minimum_required(VERSION 3.13.4) + ++include(GNUInstallDirs) ++ + set(LLVM_COMMON_CMAKE_UTILS "${CMAKE_CURRENT_SOURCE_DIR}/../cmake") + + # Add path for custom modules +@@ -139,25 +141,27 @@ set(CMAKE_MODULE_PATH + + if(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR AND NOT APPLE) + set(LIBUNWIND_LIBRARY_DIR ${LLVM_LIBRARY_OUTPUT_INTDIR}/${LLVM_DEFAULT_TARGET_TRIPLE}) +- set(LIBUNWIND_INSTALL_LIBRARY_DIR lib${LLVM_LIBDIR_SUFFIX}/${LLVM_DEFAULT_TARGET_TRIPLE} CACHE PATH ++ set(LIBUNWIND_INSTALL_INCLUDE_DIR "${CMAKE_INSTALL_INCLUDEDIR}/${LLVM_DEFAULT_TARGET_TRIPLE}" CACHE PATH ++ "Path where built libunwind headers should be installed.") ++ set(LIBUNWIND_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/${LLVM_DEFAULT_TARGET_TRIPLE} CACHE PATH + "Path where built libunwind libraries should be installed.") +- set(LIBUNWIND_INSTALL_RUNTIME_DIR bin CACHE PATH ++ set(LIBUNWIND_INSTALL_RUNTIME_DIR "${CMAKE_INSTALL_BINDIR}" CACHE PATH + "Path where built libunwind runtime libraries should be installed.") + if(LIBCXX_LIBDIR_SUBDIR) + string(APPEND LIBUNWIND_LIBRARY_DIR /${LIBUNWIND_LIBDIR_SUBDIR}) + string(APPEND LIBUNWIND_INSTALL_LIBRARY_DIR /${LIBUNWIND_LIBDIR_SUBDIR}) + endif() +-elseif(LLVM_LIBRARY_OUTPUT_INTDIR) +- set(LIBUNWIND_LIBRARY_DIR ${LLVM_LIBRARY_OUTPUT_INTDIR}) +- set(LIBUNWIND_INSTALL_LIBRARY_DIR lib${LIBUNWIND_LIBDIR_SUFFIX} CACHE PATH +- "Path where built libunwind libraries should be installed.") +- set(LIBUNWIND_INSTALL_RUNTIME_DIR bin CACHE PATH +- "Path where built libunwind runtime libraries should be installed.") + else() +- set(LIBUNWIND_LIBRARY_DIR ${CMAKE_BINARY_DIR}/lib${LIBUNWIND_LIBDIR_SUFFIX}) +- set(LIBUNWIND_INSTALL_LIBRARY_DIR lib${LIBUNWIND_LIBDIR_SUFFIX} CACHE PATH ++ if(LLVM_LIBRARY_OUTPUT_INTDIR) ++ set(LIBUNWIND_LIBRARY_DIR ${LLVM_LIBRARY_OUTPUT_INTDIR}) ++ else() ++ set(LIBUNWIND_LIBRARY_DIR ${CMAKE_BINARY_DIR}/lib${LIBUNWIND_LIBDIR_SUFFIX}) ++ endif() ++ set(LIBUNWIND_INSTALL_INCLUDE_DIR "${CMAKE_INSTALL_INCLUDEDIR}" CACHE PATH ++ "Path where built libunwind headers should be installed.") ++ set(LIBUNWIND_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LIBUNWIND_LIBDIR_SUFFIX} CACHE PATH + "Path where built libunwind libraries should be installed.") +- set(LIBUNWIND_INSTALL_RUNTIME_DIR bin CACHE PATH ++ set(LIBUNWIND_INSTALL_RUNTIME_DIR "${CMAKE_INSTALL_BINDIR}" CACHE PATH + "Path where built libunwind runtime libraries should be installed.") + endif() + +diff --git a/include/CMakeLists.txt b/include/CMakeLists.txt +index c3bb1dd0f69f..adf1766c44cb 100644 +--- a/include/CMakeLists.txt ++++ b/include/CMakeLists.txt +@@ -14,7 +14,7 @@ if(LIBUNWIND_INSTALL_HEADERS) + foreach(file ${files}) + get_filename_component(dir ${file} DIRECTORY) + install(FILES ${file} +- DESTINATION "include/${dir}" ++ DESTINATION "${LIBUNWIND_INSTALL_INCLUDE_DIR}/${dir}" + COMPONENT unwind-headers + PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ + ) diff --git a/pkgs/development/compilers/llvm/14/lld/default.nix b/pkgs/development/compilers/llvm/14/lld/default.nix new file mode 100644 index 000000000000..fe655c761129 --- /dev/null +++ b/pkgs/development/compilers/llvm/14/lld/default.nix @@ -0,0 +1,55 @@ +{ lib, stdenv, llvm_meta +, buildLlvmTools +, monorepoSrc, runCommand +, cmake +, libxml2 +, libllvm +, version +}: + +stdenv.mkDerivation rec { + pname = "lld"; + inherit version; + + # Blank llvm dir just so relative path works + src = runCommand "${pname}-src-${version}" {} '' + mkdir -p "$out" + cp -r ${monorepoSrc}/cmake "$out" + cp -r ${monorepoSrc}/${pname} "$out" + mkdir -p "$out/libunwind" + cp -r ${monorepoSrc}/libunwind/include "$out/libunwind" + mkdir -p "$out/llvm" + ''; + + sourceRoot = "${src.name}/${pname}"; + + patches = [ + ./gnu-install-dirs.patch + # On Darwin the llvm-config is perhaps not working fine as the + # LLVM_MAIN_SRC_DIR is not getting set correctly, and the build fails as + # the include path is not correct. + ./fix-root-src-dir.patch + ]; + + nativeBuildInputs = [ cmake ]; + buildInputs = [ libllvm libxml2 ]; + + cmakeFlags = lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ + "-DLLVM_TABLEGEN_EXE=${buildLlvmTools.llvm}/bin/llvm-tblgen" + ]; + + outputs = [ "out" "lib" "dev" ]; + + meta = llvm_meta // { + homepage = "https://lld.llvm.org/"; + description = "The LLVM linker"; + longDescription = '' + LLD is a linker from the LLVM project that is a drop-in replacement for + system linkers and runs much faster than them. It also provides features + that are useful for toolchain developers. + The linker supports ELF (Unix), PE/COFF (Windows), Mach-O (macOS), and + WebAssembly in descending order of completeness. Internally, LLD consists + of several different linkers. + ''; + }; +} diff --git a/pkgs/development/compilers/llvm/14/lld/fix-root-src-dir.patch b/pkgs/development/compilers/llvm/14/lld/fix-root-src-dir.patch new file mode 100644 index 000000000000..26ecef256495 --- /dev/null +++ b/pkgs/development/compilers/llvm/14/lld/fix-root-src-dir.patch @@ -0,0 +1,13 @@ +diff --git a/lld/CMakeLists.txt b/lld/CMakeLists.txt +index e1a29b884d17..9d542f8fbfc1 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -64,7 +64,7 @@ if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR) + + set(LLVM_MAIN_INCLUDE_DIR ${MAIN_INCLUDE_DIR} CACHE PATH "Path to llvm/include") + set(LLVM_BINARY_DIR ${LLVM_OBJ_ROOT} CACHE PATH "Path to LLVM build tree") +- set(LLVM_MAIN_SRC_DIR ${MAIN_SRC_DIR} CACHE PATH "Path to LLVM source tree") ++ set(LLVM_MAIN_SRC_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../llvm" CACHE PATH "Path to LLVM source tree") + + find_program(LLVM_TABLEGEN_EXE "llvm-tblgen" ${LLVM_TOOLS_BINARY_DIR} + NO_DEFAULT_PATH) diff --git a/pkgs/development/compilers/llvm/14/lld/gnu-install-dirs.patch b/pkgs/development/compilers/llvm/14/lld/gnu-install-dirs.patch new file mode 100644 index 000000000000..89a5822df49c --- /dev/null +++ b/pkgs/development/compilers/llvm/14/lld/gnu-install-dirs.patch @@ -0,0 +1,22 @@ +diff --git a/cmake/modules/AddLLD.cmake b/cmake/modules/AddLLD.cmake +index dd2898ce6236..ebbea040ff54 100644 +--- a/cmake/modules/AddLLD.cmake ++++ b/cmake/modules/AddLLD.cmake +@@ -18,8 +18,8 @@ macro(add_lld_library name) + install(TARGETS ${name} + COMPONENT ${name} + ${export_to_lldtargets} +- LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX} +- ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX} ++ LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" ++ ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" + RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}") + + if (${ARG_SHARED} AND NOT CMAKE_CONFIGURATION_TYPES) +@@ -62,5 +62,5 @@ endmacro() + macro(add_lld_symlink name dest) + add_llvm_tool_symlink(${name} ${dest} ALWAYS_GENERATE) + # Always generate install targets +- llvm_install_symlink(${name} ${dest} ALWAYS_GENERATE) ++ llvm_install_symlink(${name} ${dest} ${CMAKE_INSTALL_FULL_BINDIR} ALWAYS_GENERATE) + endmacro() diff --git a/pkgs/development/compilers/llvm/14/lldb/default.nix b/pkgs/development/compilers/llvm/14/lldb/default.nix new file mode 100644 index 000000000000..a2c68b224775 --- /dev/null +++ b/pkgs/development/compilers/llvm/14/lldb/default.nix @@ -0,0 +1,144 @@ +{ lib, stdenv, llvm_meta +, runCommand +, monorepoSrc +, cmake +, zlib +, ncurses +, swig +, which +, libedit +, libxml2 +, libllvm +, libclang +, python3 +, version +, libobjc +, xpc +, Foundation +, bootstrap_cmds +, Carbon +, Cocoa +, lit +, makeWrapper +, enableManpages ? false +}: + +stdenv.mkDerivation (rec { + pname = "lldb"; + inherit version; + + src = runCommand "${pname}-src-${version}" {} '' + mkdir -p "$out" + cp -r ${monorepoSrc}/cmake "$out" + cp -r ${monorepoSrc}/${pname} "$out" + ''; + + sourceRoot = "${src.name}/${pname}"; + + patches = [ + ./procfs.patch + (runCommand "resource-dir.patch" { + clangLibDir = "${libclang.lib}/lib"; + } '' + substitute '${./resource-dir.patch}' "$out" --subst-var clangLibDir + '') + ./gnu-install-dirs.patch + ]; + + outputs = [ "out" "lib" "dev" ]; + + nativeBuildInputs = [ + cmake python3 which swig lit makeWrapper + ] ++ lib.optionals enableManpages [ + python3.pkgs.sphinx python3.pkgs.recommonmark + ]; + + buildInputs = [ + ncurses + zlib + libedit + libxml2 + libllvm + ] ++ lib.optionals stdenv.isDarwin [ + libobjc + xpc + Foundation + bootstrap_cmds + Carbon + Cocoa + ]; + + hardeningDisable = [ "format" ]; + + cmakeFlags = [ + "-DLLDB_INCLUDE_TESTS=${if doCheck then "YES" else "NO"}" + "-DLLVM_ENABLE_RTTI=OFF" + "-DClang_DIR=${libclang.dev}/lib/cmake" + "-DLLVM_EXTERNAL_LIT=${lit}/bin/lit" + ] ++ lib.optionals stdenv.isDarwin [ + "-DLLDB_USE_SYSTEM_DEBUGSERVER=ON" + ] ++ lib.optionals (!stdenv.isDarwin) [ + "-DLLDB_CODESIGN_IDENTITY=" # codesigning makes nondeterministic + ] ++ lib.optionals enableManpages [ + "-DLLVM_ENABLE_SPHINX=ON" + "-DSPHINX_OUTPUT_MAN=ON" + "-DSPHINX_OUTPUT_HTML=OFF" + ] ++ lib.optionals doCheck [ + "-DLLDB_TEST_C_COMPILER=${stdenv.cc}/bin/${stdenv.cc.targetPrefix}cc" + "-DLLDB_TEST_CXX_COMPILER=${stdenv.cc}/bin/${stdenv.cc.targetPrefix}c++" + ]; + + doCheck = false; + + installCheckPhase = '' + if [ ! -e "$lib/${python3.sitePackages}/lldb/_lldb.so" ] ; then + return 1; + fi + ''; + + postInstall = '' + wrapProgram $out/bin/lldb --prefix PYTHONPATH : $lib/${python3.sitePackages}/ + + # Editor support + # vscode: + install -D ../tools/lldb-vscode/package.json $out/share/vscode/extensions/llvm-org.lldb-vscode-0.1.0/package.json + mkdir -p $out/share/vscode/extensions/llvm-org.lldb-vscode-0.1.0/bin + ln -s $out/bin/lldb-vscode $out/share/vscode/extensions/llvm-org.lldb-vscode-0.1.0/bin + ''; + + meta = llvm_meta // { + homepage = "https://lldb.llvm.org/"; + description = "A next-generation high-performance debugger"; + longDescription = '' + LLDB is a next generation, high-performance debugger. It is built as a set + of reusable components which highly leverage existing libraries in the + larger LLVM Project, such as the Clang expression parser and LLVM + disassembler. + ''; + }; +} // lib.optionalAttrs enableManpages { + pname = "lldb-manpages"; + + buildPhase = '' + make docs-lldb-man + ''; + + propagatedBuildInputs = []; + + # manually install lldb man page + installPhase = '' + mkdir -p $out/share/man/man1 + install docs/man/lldb.1 -t $out/share/man/man1/ + ''; + + postPatch = null; + postInstall = null; + + outputs = [ "out" ]; + + doCheck = false; + + meta = llvm_meta // { + description = "man pages for LLDB ${version}"; + }; +}) diff --git a/pkgs/development/compilers/llvm/14/lldb/gnu-install-dirs.patch b/pkgs/development/compilers/llvm/14/lldb/gnu-install-dirs.patch new file mode 100644 index 000000000000..f69ed9e162fb --- /dev/null +++ b/pkgs/development/compilers/llvm/14/lldb/gnu-install-dirs.patch @@ -0,0 +1,36 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 79d451965ed4..78188978d6de 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -12,6 +12,8 @@ set(CMAKE_MODULE_PATH + # If we are not building as part of LLVM, build LLDB as a standalone project, + # using LLVM as an external library. + if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR) ++ include(GNUInstallDirs) ++ + project(lldb) + include(LLDBStandalone) + +diff --git a/cmake/modules/AddLLDB.cmake b/cmake/modules/AddLLDB.cmake +index 3291a7c808e1..b27d27ce6a87 100644 +--- a/cmake/modules/AddLLDB.cmake ++++ b/cmake/modules/AddLLDB.cmake +@@ -109,7 +109,7 @@ function(add_lldb_library name) + endif() + + if(PARAM_SHARED) +- set(install_dest lib${LLVM_LIBDIR_SUFFIX}) ++ set(install_dest ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}) + if(PARAM_INSTALL_PREFIX) + set(install_dest ${PARAM_INSTALL_PREFIX}) + endif() +diff --git a/tools/intel-features/CMakeLists.txt b/tools/intel-features/CMakeLists.txt +index 7d48491ec89a..c04543585588 100644 +--- a/tools/intel-features/CMakeLists.txt ++++ b/tools/intel-features/CMakeLists.txt +@@ -30,4 +30,4 @@ add_lldb_library(lldbIntelFeatures SHARED + ) + + install(TARGETS lldbIntelFeatures +- LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX}) ++ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}) diff --git a/pkgs/development/compilers/llvm/14/lldb/procfs.patch b/pkgs/development/compilers/llvm/14/lldb/procfs.patch new file mode 100644 index 000000000000..b075dbaeee0a --- /dev/null +++ b/pkgs/development/compilers/llvm/14/lldb/procfs.patch @@ -0,0 +1,31 @@ +--- a/source/Plugins/Process/Linux/Procfs.h ++++ b/source/Plugins/Process/Linux/Procfs.h +@@ -11,21 +11,12 @@ + // sys/procfs.h on Android/Linux for all supported architectures. + + #include ++#include + +-#ifdef __ANDROID__ +-#if defined(__arm64__) || defined(__aarch64__) +-typedef unsigned long elf_greg_t; +-typedef elf_greg_t +- elf_gregset_t[(sizeof(struct user_pt_regs) / sizeof(elf_greg_t))]; +-typedef struct user_fpsimd_state elf_fpregset_t; +-#ifndef NT_FPREGSET +-#define NT_FPREGSET NT_PRFPREG +-#endif // NT_FPREGSET +-#elif defined(__mips__) +-#ifndef NT_FPREGSET +-#define NT_FPREGSET NT_PRFPREG +-#endif // NT_FPREGSET +-#endif +-#else // __ANDROID__ ++#if !defined(__GLIBC__) && defined(__powerpc__) ++#define pt_regs musl_pt_regs ++#include ++#undef pt_regs ++#else + #include +-#endif // __ANDROID__ ++#endif diff --git a/pkgs/development/compilers/llvm/14/lldb/resource-dir.patch b/pkgs/development/compilers/llvm/14/lldb/resource-dir.patch new file mode 100644 index 000000000000..e0db80afeb9f --- /dev/null +++ b/pkgs/development/compilers/llvm/14/lldb/resource-dir.patch @@ -0,0 +1,13 @@ +diff --git a/lldb/cmake/modules/LLDBConfig.cmake b/lldb/cmake/modules/LLDBConfig.cmake +index 37364341ff8b..7f74c1a3e257 100644 +--- a/cmake/modules/LLDBConfig.cmake ++++ b/cmake/modules/LLDBConfig.cmake +@@ -257,7 +257,7 @@ if (NOT TARGET clang-resource-headers) + # Iterate over the possible places where the external resource directory + # could be and pick the first that exists. + foreach(CANDIDATE "${Clang_DIR}/../.." "${LLVM_DIR}" "${LLVM_LIBRARY_DIRS}" +- "${LLVM_BUILD_LIBRARY_DIR}" ++ "${LLVM_BUILD_LIBRARY_DIR}" "@clangLibDir@" + "${LLVM_BINARY_DIR}/lib${LLVM_LIBDIR_SUFFIX}") + # Build the resource directory path by appending 'clang/'. + set(CANDIDATE_RESOURCE_DIR "${CANDIDATE}/clang/${LLDB_CLANG_RESOURCE_DIR_NAME}") diff --git a/pkgs/development/compilers/llvm/14/llvm/default.nix b/pkgs/development/compilers/llvm/14/llvm/default.nix new file mode 100644 index 000000000000..d2059cc66ba2 --- /dev/null +++ b/pkgs/development/compilers/llvm/14/llvm/default.nix @@ -0,0 +1,254 @@ +{ lib, stdenv, llvm_meta +, pkgsBuildBuild +, monorepoSrc +, runCommand +, fetchpatch +, cmake +, python3 +, libffi +, libbfd +, libpfm +, libxml2 +, ncurses +, version +, release_version +, zlib +, which +, buildLlvmTools +, debugVersion ? false +, enableManpages ? false +, enableSharedLibraries ? !stdenv.hostPlatform.isStatic +, enablePFM ? !(stdenv.isDarwin + || stdenv.isAarch64 # broken for Ampere eMAG 8180 (c2.large.arm on Packet) #56245 + || stdenv.isAarch32 # broken for the armv7l builder +) +, enablePolly ? false +} @args: + +let + inherit (lib) optional optionals optionalString; + + # Used when creating a version-suffixed symlink of libLLVM.dylib + shortVersion = with lib; + concatStringsSep "." (take 1 (splitString "." release_version)); + +in stdenv.mkDerivation (rec { + pname = "llvm"; + inherit version; + + src = runCommand "${pname}-src-${version}" {} ('' + mkdir -p "$out" + cp -r ${monorepoSrc}/cmake "$out" + cp -r ${monorepoSrc}/${pname} "$out" + cp -r ${monorepoSrc}/third-party "$out" + '' + lib.optionalString enablePolly '' + cp -r ${monorepoSrc}/polly "$out/llvm/tools" + ''); + + sourceRoot = "${src.name}/${pname}"; + + outputs = [ "out" "lib" "dev" "python" ]; + + nativeBuildInputs = [ cmake python3 ] + ++ optionals enableManpages [ python3.pkgs.sphinx python3.pkgs.recommonmark ]; + + buildInputs = [ libxml2 libffi ] + ++ optional enablePFM libpfm; # exegesis + + propagatedBuildInputs = [ ncurses zlib ]; + + checkInputs = [ which ]; + + patches = [ + ./gnu-install-dirs.patch + ] ++ lib.optional enablePolly ./gnu-install-dirs-polly.patch; + + postPatch = optionalString stdenv.isDarwin '' + substituteInPlace cmake/modules/AddLLVM.cmake \ + --replace 'set(_install_name_dir INSTALL_NAME_DIR "@rpath")' "set(_install_name_dir)" \ + --replace 'set(_install_rpath "@loader_path/../''${CMAKE_INSTALL_LIBDIR}''${LLVM_LIBDIR_SUFFIX}" ''${extra_libdir})' "" + '' + '' + # FileSystem permissions tests fail with various special bits + substituteInPlace unittests/Support/CMakeLists.txt \ + --replace "Path.cpp" "" + rm unittests/Support/Path.cpp + substituteInPlace unittests/IR/CMakeLists.txt \ + --replace "PassBuilderCallbacksTest.cpp" "" + rm unittests/IR/PassBuilderCallbacksTest.cpp + rm test/tools/llvm-objcopy/ELF/mirror-permissions-unix.test + '' + optionalString stdenv.hostPlatform.isMusl '' + patch -p1 -i ${../../TLI-musl.patch} + substituteInPlace unittests/Support/CMakeLists.txt \ + --replace "add_subdirectory(DynamicLibrary)" "" + rm unittests/Support/DynamicLibrary/DynamicLibraryTest.cpp + # valgrind unhappy with musl or glibc, but fails w/musl only + rm test/CodeGen/AArch64/wineh4.mir + '' + optionalString stdenv.hostPlatform.isAarch32 '' + # skip failing X86 test cases on 32-bit ARM + rm test/DebugInfo/X86/convert-debugloc.ll + rm test/DebugInfo/X86/convert-inlined.ll + rm test/DebugInfo/X86/convert-linked.ll + rm test/tools/dsymutil/X86/op-convert.test + '' + optionalString (stdenv.hostPlatform.system == "armv6l-linux") '' + # Seems to require certain floating point hardware (NEON?) + rm test/ExecutionEngine/frem.ll + '' + '' + patchShebangs test/BugPoint/compile-custom.ll.py + ''; + + # hacky fix: created binaries need to be run before installation + preBuild = '' + mkdir -p $out/ + ln -sv $PWD/lib $out + ''; + + # E.g. mesa.drivers use the build-id as a cache key (see #93946): + LDFLAGS = optionalString (enableSharedLibraries && !stdenv.isDarwin) "-Wl,--build-id=sha1"; + + cmakeFlags = with stdenv; let + # These flags influence llvm-config's BuildVariables.inc in addition to the + # general build. We need to make sure these are also passed via + # CROSS_TOOLCHAIN_FLAGS_NATIVE when cross-compiling or llvm-config-native + # will return different results from the cross llvm-config. + # + # Some flags don't need to be repassed because LLVM already does so (like + # CMAKE_BUILD_TYPE), others are irrelevant to the result. + flagsForLlvmConfig = [ + "-DLLVM_INSTALL_CMAKE_DIR=${placeholder "dev"}/lib/cmake/llvm/" + "-DLLVM_ENABLE_RTTI=ON" + ] ++ optionals enableSharedLibraries [ + "-DLLVM_LINK_LLVM_DYLIB=ON" + ]; + in flagsForLlvmConfig ++ [ + "-DCMAKE_BUILD_TYPE=${if debugVersion then "Debug" else "Release"}" + "-DLLVM_INSTALL_UTILS=ON" # Needed by rustc + "-DLLVM_BUILD_TESTS=${if doCheck then "ON" else "OFF"}" + "-DLLVM_ENABLE_FFI=ON" + "-DLLVM_HOST_TRIPLE=${stdenv.hostPlatform.config}" + "-DLLVM_DEFAULT_TARGET_TRIPLE=${stdenv.hostPlatform.config}" + "-DLLVM_ENABLE_DUMP=ON" + ] ++ optionals stdenv.hostPlatform.isStatic [ + # Disables building of shared libs, -fPIC is still injected by cc-wrapper + "-DLLVM_ENABLE_PIC=OFF" + "-DLLVM_BUILD_STATIC=ON" + # libxml2 needs to be disabled because the LLVM build system ignores its .la + # file and doesn't link zlib as well. + # https://github.com/ClangBuiltLinux/tc-build/issues/150#issuecomment-845418812 + "-DLLVM_ENABLE_LIBXML2=OFF" + ] ++ optionals enableManpages [ + "-DLLVM_BUILD_DOCS=ON" + "-DLLVM_ENABLE_SPHINX=ON" + "-DSPHINX_OUTPUT_MAN=ON" + "-DSPHINX_OUTPUT_HTML=OFF" + "-DSPHINX_WARNINGS_AS_ERRORS=OFF" + ] ++ optionals (!isDarwin) [ + "-DLLVM_BINUTILS_INCDIR=${libbfd.dev}/include" + ] ++ optionals isDarwin [ + "-DLLVM_ENABLE_LIBCXX=ON" + "-DCAN_TARGET_i386=false" + ] ++ optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ + "-DCMAKE_CROSSCOMPILING=True" + "-DLLVM_TABLEGEN=${buildLlvmTools.llvm}/bin/llvm-tblgen" + ( + let + nativeCC = pkgsBuildBuild.targetPackages.stdenv.cc; + nativeBintools = nativeCC.bintools.bintools; + nativeToolchainFlags = [ + "-DCMAKE_C_COMPILER=${nativeCC}/bin/${nativeCC.targetPrefix}cc" + "-DCMAKE_CXX_COMPILER=${nativeCC}/bin/${nativeCC.targetPrefix}c++" + "-DCMAKE_AR=${nativeBintools}/bin/${nativeBintools.targetPrefix}ar" + "-DCMAKE_STRIP=${nativeBintools}/bin/${nativeBintools.targetPrefix}strip" + "-DCMAKE_RANLIB=${nativeBintools}/bin/${nativeBintools.targetPrefix}ranlib" + ]; + # We need to repass the custom GNUInstallDirs values, otherwise CMake + # will choose them for us, leading to wrong results in llvm-config-native + nativeInstallFlags = [ + "-DCMAKE_INSTALL_PREFIX=${placeholder "out"}" + "-DCMAKE_INSTALL_BINDIR=${placeholder "out"}/bin" + "-DCMAKE_INSTALL_INCLUDEDIR=${placeholder "dev"}/include" + "-DCMAKE_INSTALL_LIBDIR=${placeholder "lib"}/lib" + "-DCMAKE_INSTALL_LIBEXECDIR=${placeholder "lib"}/libexec" + ]; + in "-DCROSS_TOOLCHAIN_FLAGS_NATIVE:list=" + + lib.concatStringsSep ";" (lib.concatLists [ + flagsForLlvmConfig + nativeToolchainFlags + nativeInstallFlags + ]) + ) + ]; + + postBuild = '' + rm -fR $out + ''; + + preCheck = '' + export LD_LIBRARY_PATH=$LD_LIBRARY_PATH''${LD_LIBRARY_PATH:+:}$PWD/lib + ''; + + postInstall = '' + mkdir -p $python/share + mv $out/share/opt-viewer $python/share/opt-viewer + moveToOutput "bin/llvm-config*" "$dev" + substituteInPlace "$dev/lib/cmake/llvm/LLVMExports-${if debugVersion then "debug" else "release"}.cmake" \ + --replace "\''${_IMPORT_PREFIX}/lib/lib" "$lib/lib/lib" \ + --replace "$out/bin/llvm-config" "$dev/bin/llvm-config" + substituteInPlace "$dev/lib/cmake/llvm/LLVMConfig.cmake" \ + --replace 'set(LLVM_BINARY_DIR "''${LLVM_INSTALL_PREFIX}")' 'set(LLVM_BINARY_DIR "''${LLVM_INSTALL_PREFIX}'"$lib"'")' + '' + + optionalString (stdenv.isDarwin && enableSharedLibraries) '' + ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${shortVersion}.dylib + ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${release_version}.dylib + '' + + optionalString (stdenv.buildPlatform != stdenv.hostPlatform) '' + cp NATIVE/bin/llvm-config $dev/bin/llvm-config-native + ''; + + doCheck = stdenv.isLinux && (!stdenv.isx86_32) && (!stdenv.hostPlatform.isMusl) + && (stdenv.hostPlatform == stdenv.buildPlatform); + + checkTarget = "check-all"; + + requiredSystemFeatures = [ "big-parallel" ]; + meta = llvm_meta // { + homepage = "https://llvm.org/"; + description = "A collection of modular and reusable compiler and toolchain technologies"; + longDescription = '' + The LLVM Project is a collection of modular and reusable compiler and + toolchain technologies. Despite its name, LLVM has little to do with + traditional virtual machines. The name "LLVM" itself is not an acronym; it + is the full name of the project. + LLVM began as a research project at the University of Illinois, with the + goal of providing a modern, SSA-based compilation strategy capable of + supporting both static and dynamic compilation of arbitrary programming + languages. Since then, LLVM has grown to be an umbrella project consisting + of a number of subprojects, many of which are being used in production by + a wide variety of commercial and open source projects as well as being + widely used in academic research. Code in the LLVM project is licensed + under the "Apache 2.0 License with LLVM exceptions". + ''; + }; +} // lib.optionalAttrs enableManpages { + pname = "llvm-manpages"; + + buildPhase = '' + make docs-llvm-man + ''; + + propagatedBuildInputs = []; + + installPhase = '' + make -C docs install + ''; + + postPatch = null; + postInstall = null; + + outputs = [ "out" ]; + + doCheck = false; + + meta = llvm_meta // { + description = "man pages for LLVM ${version}"; + }; +}) diff --git a/pkgs/development/compilers/llvm/14/llvm/gnu-install-dirs-polly.patch b/pkgs/development/compilers/llvm/14/llvm/gnu-install-dirs-polly.patch new file mode 100644 index 000000000000..98e998e65a96 --- /dev/null +++ b/pkgs/development/compilers/llvm/14/llvm/gnu-install-dirs-polly.patch @@ -0,0 +1,102 @@ +diff --git a/tools/polly/CMakeLists.txt b/tools/polly/CMakeLists.txt +index ca7c04c565bb..6a6155806ffa 100644 +--- a/tools/polly/CMakeLists.txt ++++ b/tools/polly/CMakeLists.txt +@@ -3,6 +3,8 @@ if (NOT DEFINED LLVM_MAIN_SRC_DIR) + project(Polly) + cmake_minimum_required(VERSION 3.13.4) + ++ include(GNUInstallDirs) ++ + # Where is LLVM installed? + find_package(LLVM CONFIG REQUIRED) + set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${LLVM_CMAKE_DIR}) +@@ -122,13 +124,13 @@ include_directories( + + if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY) + install(DIRECTORY include/ +- DESTINATION include ++ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} + FILES_MATCHING + PATTERN "*.h" + ) + + install(DIRECTORY ${POLLY_BINARY_DIR}/include/ +- DESTINATION include ++ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} + FILES_MATCHING + PATTERN "*.h" + PATTERN "CMakeFiles" EXCLUDE +diff --git a/tools/polly/cmake/CMakeLists.txt b/tools/polly/cmake/CMakeLists.txt +index 7cc129ba2e90..137be25e4b80 100644 +--- a/tools/polly/cmake/CMakeLists.txt ++++ b/tools/polly/cmake/CMakeLists.txt +@@ -79,18 +79,18 @@ file(GENERATE + + # Generate PollyConfig.cmake for the install tree. + unset(POLLY_EXPORTS) +-set(POLLY_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") ++set(POLLY_INSTALL_PREFIX "") + set(POLLY_CONFIG_LLVM_CMAKE_DIR "${LLVM_BINARY_DIR}/${LLVM_INSTALL_PACKAGE_DIR}") +-set(POLLY_CONFIG_CMAKE_DIR "${POLLY_INSTALL_PREFIX}/${POLLY_INSTALL_PACKAGE_DIR}") +-set(POLLY_CONFIG_LIBRARY_DIRS "${POLLY_INSTALL_PREFIX}/lib${LLVM_LIBDIR_SUFFIX}") ++set(POLLY_CONFIG_CMAKE_DIR "${POLLY_INSTALL_PREFIX}${CMAKE_INSTALL_PREFIX}/${POLLY_INSTALL_PACKAGE_DIR}") ++set(POLLY_CONFIG_LIBRARY_DIRS "${POLLY_INSTALL_PREFIX}${CMAKE_INSTALL_FULL_LIBDIR}${LLVM_LIBDIR_SUFFIX}") + if (POLLY_BUNDLED_ISL) + set(POLLY_CONFIG_INCLUDE_DIRS +- "${POLLY_INSTALL_PREFIX}/include" +- "${POLLY_INSTALL_PREFIX}/include/polly" ++ "${POLLY_INSTALL_PREFIX}${CMAKE_INSTALL_FULL_LIBDIR}" ++ "${POLLY_INSTALL_PREFIX}${CMAKE_INSTALL_FULL_LIBDIR}/polly" + ) + else() + set(POLLY_CONFIG_INCLUDE_DIRS +- "${POLLY_INSTALL_PREFIX}/include" ++ "${POLLY_INSTALL_PREFIX}${CMAKE_INSTALL_FULL_INCLUDEDIR}" + ${ISL_INCLUDE_DIRS} + ) + endif() +@@ -100,12 +100,12 @@ endif() + foreach(tgt IN LISTS POLLY_CONFIG_EXPORTED_TARGETS) + get_target_property(tgt_type ${tgt} TYPE) + if (tgt_type STREQUAL "EXECUTABLE") +- set(tgt_prefix "bin/") ++ set(tgt_prefix "${CMAKE_INSTALL_BINDIR}/") + else() +- set(tgt_prefix "lib/") ++ set(tgt_prefix "${CMAKE_INSTALL_LIBDIR}/") + endif() + +- set(tgt_path "${CMAKE_INSTALL_PREFIX}/${tgt_prefix}$") ++ set(tgt_path "${tgt_prefix}$") + file(RELATIVE_PATH tgt_path ${POLLY_CONFIG_CMAKE_DIR} ${tgt_path}) + + if (NOT tgt_type STREQUAL "INTERFACE_LIBRARY") +diff --git a/tools/polly/cmake/polly_macros.cmake b/tools/polly/cmake/polly_macros.cmake +index 518a09b45a42..bd9d6f5542ad 100644 +--- a/tools/polly/cmake/polly_macros.cmake ++++ b/tools/polly/cmake/polly_macros.cmake +@@ -44,8 +44,8 @@ macro(add_polly_library name) + if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY OR ${name} STREQUAL "LLVMPolly") + install(TARGETS ${name} + EXPORT LLVMExports +- LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX} +- ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX}) ++ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX} ++ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}) + endif() + set_property(GLOBAL APPEND PROPERTY LLVM_EXPORTS ${name}) + endmacro(add_polly_library) +diff --git a/tools/polly/lib/External/CMakeLists.txt b/tools/polly/lib/External/CMakeLists.txt +index e3a5683fccdc..293b482eb28a 100644 +--- a/tools/polly/lib/External/CMakeLists.txt ++++ b/tools/polly/lib/External/CMakeLists.txt +@@ -290,7 +290,7 @@ if (POLLY_BUNDLED_ISL) + install(DIRECTORY + ${ISL_SOURCE_DIR}/include/ + ${ISL_BINARY_DIR}/include/ +- DESTINATION include/polly ++ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/polly + FILES_MATCHING + PATTERN "*.h" + PATTERN "CMakeFiles" EXCLUDE diff --git a/pkgs/development/compilers/llvm/14/llvm/gnu-install-dirs.patch b/pkgs/development/compilers/llvm/14/llvm/gnu-install-dirs.patch new file mode 100644 index 000000000000..55862ab39304 --- /dev/null +++ b/pkgs/development/compilers/llvm/14/llvm/gnu-install-dirs.patch @@ -0,0 +1,220 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index fec956091cd5..5a766f5c5d7c 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -303,6 +303,9 @@ set(LLVM_EXAMPLES_INSTALL_DIR "examples" CACHE STRING + "Path for examples subdirectory (enabled by LLVM_BUILD_EXAMPLES=ON) (defaults to 'examples')") + mark_as_advanced(LLVM_EXAMPLES_INSTALL_DIR) + ++set(LLVM_INSTALL_CMAKE_DIR "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/cmake/llvm" CACHE STRING ++ "Path for CMake subdirectory (defaults to lib/cmake/llvm)" ) ++ + # They are used as destination of target generators. + set(LLVM_RUNTIME_OUTPUT_INTDIR ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/bin) + set(LLVM_LIBRARY_OUTPUT_INTDIR ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/lib${LLVM_LIBDIR_SUFFIX}) +diff --git a/cmake/modules/AddLLVM.cmake b/cmake/modules/AddLLVM.cmake +index fed1fec7d72e..4baed19b9e98 100644 +--- a/cmake/modules/AddLLVM.cmake ++++ b/cmake/modules/AddLLVM.cmake +@@ -838,8 +838,8 @@ macro(add_llvm_library name) + get_target_export_arg(${name} LLVM export_to_llvmexports ${umbrella}) + install(TARGETS ${name} + ${export_to_llvmexports} +- LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX} COMPONENT ${name} +- ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX} COMPONENT ${name} ++ LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" COMPONENT ${name} ++ ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" COMPONENT ${name} + RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT ${name}) + + if (NOT LLVM_ENABLE_IDE) +@@ -1056,7 +1056,7 @@ function(process_llvm_pass_plugins) + "set(LLVM_STATIC_EXTENSIONS ${LLVM_STATIC_EXTENSIONS})") + install(FILES + ${llvm_cmake_builddir}/LLVMConfigExtensions.cmake +- DESTINATION ${LLVM_INSTALL_PACKAGE_DIR} ++ DESTINATION ${LLVM_INSTALL_CMAKE_DIR} + COMPONENT cmake-exports) + + set(ExtensionDef "${LLVM_BINARY_DIR}/include/llvm/Support/Extension.def") +@@ -1902,7 +1902,7 @@ function(llvm_install_library_symlink name dest type) + set(full_name ${CMAKE_${type}_LIBRARY_PREFIX}${name}${CMAKE_${type}_LIBRARY_SUFFIX}) + set(full_dest ${CMAKE_${type}_LIBRARY_PREFIX}${dest}${CMAKE_${type}_LIBRARY_SUFFIX}) + +- set(output_dir lib${LLVM_LIBDIR_SUFFIX}) ++ set(output_dir ${CMAKE_INSTALL_FULL_LIBDIR}${LLVM_LIBDIR_SUFFIX}) + if(WIN32 AND "${type}" STREQUAL "SHARED") + set(output_dir bin) + endif() +@@ -1913,7 +1913,7 @@ function(llvm_install_library_symlink name dest type) + + endfunction() + +-function(llvm_install_symlink name dest) ++function(llvm_install_symlink name dest output_dir) + cmake_parse_arguments(ARG "ALWAYS_GENERATE" "COMPONENT" "" ${ARGN}) + foreach(path ${CMAKE_MODULE_PATH}) + if(EXISTS ${path}/LLVMInstallSymlink.cmake) +@@ -1936,7 +1936,7 @@ function(llvm_install_symlink name dest) + set(full_dest ${dest}${CMAKE_EXECUTABLE_SUFFIX}) + + install(SCRIPT ${INSTALL_SYMLINK} +- CODE "install_symlink(${full_name} ${full_dest} ${LLVM_TOOLS_INSTALL_DIR})" ++ CODE "install_symlink(${full_name} ${full_dest} ${output_dir})" + COMPONENT ${component}) + + if (NOT LLVM_ENABLE_IDE AND NOT ARG_ALWAYS_GENERATE) +@@ -2019,7 +2019,8 @@ function(add_llvm_tool_symlink link_name target) + endif() + + if ((TOOL_IS_TOOLCHAIN OR NOT LLVM_INSTALL_TOOLCHAIN_ONLY) AND LLVM_BUILD_TOOLS) +- llvm_install_symlink(${link_name} ${target}) ++ GNUInstallDirs_get_absolute_install_dir(output_dir LLVM_TOOLS_INSTALL_DIR) ++ llvm_install_symlink(${link_name} ${target} ${output_dir}) + endif() + endif() + endfunction() +@@ -2148,9 +2149,9 @@ function(llvm_setup_rpath name) + # Since BUILD_SHARED_LIBS is only recommended for use by developers, + # hardcode the rpath to build/install lib dir first in this mode. + # FIXME: update this when there is better solution. +- set(_install_rpath "${LLVM_LIBRARY_OUTPUT_INTDIR}" "${CMAKE_INSTALL_PREFIX}/lib${LLVM_LIBDIR_SUFFIX}" ${extra_libdir}) ++ set(_install_rpath "${LLVM_LIBRARY_OUTPUT_INTDIR}" "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" ${extra_libdir}) + elseif(UNIX) +- set(_install_rpath "\$ORIGIN/../lib${LLVM_LIBDIR_SUFFIX}" ${extra_libdir}) ++ set(_install_rpath "\$ORIGIN/../${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" ${extra_libdir}) + if(${CMAKE_SYSTEM_NAME} MATCHES "(FreeBSD|DragonFly)") + set_property(TARGET ${name} APPEND_STRING PROPERTY + LINK_FLAGS " -Wl,-z,origin ") +diff --git a/cmake/modules/AddOCaml.cmake b/cmake/modules/AddOCaml.cmake +index 891c9e6d618c..8d963f3b0069 100644 +--- a/cmake/modules/AddOCaml.cmake ++++ b/cmake/modules/AddOCaml.cmake +@@ -147,9 +147,9 @@ function(add_ocaml_library name) + endforeach() + + if( APPLE ) +- set(ocaml_rpath "@executable_path/../../../lib${LLVM_LIBDIR_SUFFIX}") ++ set(ocaml_rpath "@executable_path/../../../${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}") + elseif( UNIX ) +- set(ocaml_rpath "\\$ORIGIN/../../../lib${LLVM_LIBDIR_SUFFIX}") ++ set(ocaml_rpath "\\$ORIGIN/../../../${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}") + endif() + list(APPEND ocaml_flags "-ldopt" "-Wl,-rpath,${ocaml_rpath}") + +diff --git a/cmake/modules/CMakeLists.txt b/cmake/modules/CMakeLists.txt +index cea0c1df0a14..eedcd9450312 100644 +--- a/cmake/modules/CMakeLists.txt ++++ b/cmake/modules/CMakeLists.txt +@@ -2,7 +2,7 @@ include(ExtendPath) + include(LLVMDistributionSupport) + include(FindPrefixFromConfig) + +-set(LLVM_INSTALL_PACKAGE_DIR lib${LLVM_LIBDIR_SUFFIX}/cmake/llvm) ++set(LLVM_INSTALL_PACKAGE_DIR ${LLVM_INSTALL_CMAKE_DIR} CACHE STRING "Path for CMake subdirectory (defaults to 'cmake/llvm')") + set(llvm_cmake_builddir "${LLVM_BINARY_DIR}/${LLVM_INSTALL_PACKAGE_DIR}") + + # First for users who use an installed LLVM, create the LLVMExports.cmake file. +@@ -122,7 +122,7 @@ set(LLVM_CONFIG_INCLUDE_DIRS + ) + list(REMOVE_DUPLICATES LLVM_CONFIG_INCLUDE_DIRS) + +-extend_path(LLVM_CONFIG_LIBRARY_DIR "\${LLVM_INSTALL_PREFIX}" "lib\${LLVM_LIBDIR_SUFFIX}") ++extend_path(LLVM_CONFIG_LIBRARY_DIR "\${LLVM_INSTALL_PREFIX}" "${CMAKE_INSTALL_LIBDIR}\${LLVM_LIBDIR_SUFFIX}") + set(LLVM_CONFIG_LIBRARY_DIRS + "${LLVM_CONFIG_LIBRARY_DIR}" + # FIXME: Should there be other entries here? +diff --git a/cmake/modules/LLVMInstallSymlink.cmake b/cmake/modules/LLVMInstallSymlink.cmake +index b5c35f706cb7..9261ab797de6 100644 +--- a/cmake/modules/LLVMInstallSymlink.cmake ++++ b/cmake/modules/LLVMInstallSymlink.cmake +@@ -6,7 +6,7 @@ include(GNUInstallDirs) + + function(install_symlink name target outdir) + set(DESTDIR $ENV{DESTDIR}) +- set(bindir "${DESTDIR}${CMAKE_INSTALL_PREFIX}/${outdir}") ++ set(bindir "${DESTDIR}${outdir}/") + + message(STATUS "Creating ${name}") + +diff --git a/docs/CMake.rst b/docs/CMake.rst +index 044ec8a4d39d..504d0eac3ade 100644 +--- a/docs/CMake.rst ++++ b/docs/CMake.rst +@@ -224,7 +224,7 @@ description is in `LLVM-related variables`_ below. + **LLVM_LIBDIR_SUFFIX**:STRING + Extra suffix to append to the directory where libraries are to be + installed. On a 64-bit architecture, one could use ``-DLLVM_LIBDIR_SUFFIX=64`` +- to install libraries to ``/usr/lib64``. ++ to install libraries to ``/usr/lib64``. See also ``CMAKE_INSTALL_LIBDIR``. + + **LLVM_PARALLEL_{COMPILE,LINK}_JOBS**:STRING + Building the llvm toolchain can use a lot of resources, particularly +@@ -910,9 +910,11 @@ the ``cmake`` command or by setting it directly in ``ccmake`` or ``cmake-gui``). + + This file is available in two different locations. + +-* ``/lib/cmake/llvm/LLVMConfig.cmake`` where +- ```` is the install prefix of an installed version of LLVM. +- On Linux typically this is ``/usr/lib/cmake/llvm/LLVMConfig.cmake``. ++* ``LLVMConfig.cmake`` where ++ ```` is the location where LLVM CMake modules are ++ installed as part of an installed version of LLVM. This is typically ++ ``cmake/llvm/`` within the lib directory. On Linux, this is typically ++ ``/usr/lib/cmake/llvm/LLVMConfig.cmake``. + + * ``/lib/cmake/llvm/LLVMConfig.cmake`` where + ```` is the root of the LLVM build tree. **Note: this is only +diff --git a/include/llvm/CMakeLists.txt b/include/llvm/CMakeLists.txt +index b46319f24fc8..2feabd1954e4 100644 +--- a/include/llvm/CMakeLists.txt ++++ b/include/llvm/CMakeLists.txt +@@ -5,5 +5,5 @@ add_subdirectory(Frontend) + # If we're doing an out-of-tree build, copy a module map for generated + # header files into the build area. + if (NOT "${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_BINARY_DIR}") +- configure_file(module.modulemap.build module.modulemap COPYONLY) ++ configure_file(module.modulemap.build ${LLVM_INCLUDE_DIR}/module.modulemap COPYONLY) + endif (NOT "${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_BINARY_DIR}") +diff --git a/tools/llvm-config/BuildVariables.inc.in b/tools/llvm-config/BuildVariables.inc.in +index abbb8a450da6..70c497be12f5 100644 +--- a/tools/llvm-config/BuildVariables.inc.in ++++ b/tools/llvm-config/BuildVariables.inc.in +@@ -23,7 +23,10 @@ + #define LLVM_CXXFLAGS "@LLVM_CXXFLAGS@" + #define LLVM_BUILDMODE "@LLVM_BUILDMODE@" + #define LLVM_LIBDIR_SUFFIX "@LLVM_LIBDIR_SUFFIX@" ++#define LLVM_INSTALL_BINDIR "@CMAKE_INSTALL_BINDIR@" ++#define LLVM_INSTALL_LIBDIR "@CMAKE_INSTALL_LIBDIR@" + #define LLVM_INSTALL_INCLUDEDIR "@CMAKE_INSTALL_INCLUDEDIR@" ++#define LLVM_INSTALL_CMAKEDIR "@LLVM_INSTALL_CMAKE_DIR@" + #define LLVM_TARGETS_BUILT "@LLVM_TARGETS_BUILT@" + #define LLVM_SYSTEM_LIBS "@LLVM_SYSTEM_LIBS@" + #define LLVM_BUILD_SYSTEM "@LLVM_BUILD_SYSTEM@" +diff --git a/tools/llvm-config/llvm-config.cpp b/tools/llvm-config/llvm-config.cpp +index 8ed88f33ead4..5e7184bab90d 100644 +--- a/tools/llvm-config/llvm-config.cpp ++++ b/tools/llvm-config/llvm-config.cpp +@@ -363,12 +363,20 @@ int main(int argc, char **argv) { + ActiveIncludeDir = std::string(Path.str()); + } + { +- SmallString<256> Path(LLVM_TOOLS_INSTALL_DIR); ++ SmallString<256> Path(LLVM_INSTALL_BINDIR); + sys::fs::make_absolute(ActivePrefix, Path); + ActiveBinDir = std::string(Path.str()); + } +- ActiveLibDir = ActivePrefix + "/lib" + LLVM_LIBDIR_SUFFIX; +- ActiveCMakeDir = ActiveLibDir + "/cmake/llvm"; ++ { ++ SmallString<256> Path(LLVM_INSTALL_LIBDIR LLVM_LIBDIR_SUFFIX); ++ sys::fs::make_absolute(ActivePrefix, Path); ++ ActiveLibDir = std::string(Path.str()); ++ } ++ { ++ SmallString<256> Path(LLVM_INSTALL_CMAKEDIR); ++ sys::fs::make_absolute(ActivePrefix, Path); ++ ActiveCMakeDir = std::string(Path.str()); ++ } + ActiveIncludeOption = "-I" + ActiveIncludeDir; + } + diff --git a/pkgs/development/compilers/llvm/14/openmp/default.nix b/pkgs/development/compilers/llvm/14/openmp/default.nix new file mode 100644 index 000000000000..7add0c7ed465 --- /dev/null +++ b/pkgs/development/compilers/llvm/14/openmp/default.nix @@ -0,0 +1,54 @@ +{ lib +, stdenv +, llvm_meta +, monorepoSrc +, runCommand +, cmake +, llvm +, clang-unwrapped +, perl +, pkg-config +, version +}: + +stdenv.mkDerivation rec { + pname = "openmp"; + inherit version; + + src = runCommand "${pname}-src-${version}" {} '' + mkdir -p "$out" + cp -r ${monorepoSrc}/cmake "$out" + cp -r ${monorepoSrc}/${pname} "$out" + ''; + + sourceRoot = "${src.name}/${pname}"; + + patches = [ + ./gnu-install-dirs.patch + ./fix-find-tool.patch + ]; + + outputs = [ "out" "dev" ]; + + nativeBuildInputs = [ cmake perl pkg-config clang-unwrapped ]; + buildInputs = [ llvm ]; + + cmakeFlags = [ + "-DLIBOMPTARGET_BUILD_AMDGCN_BCLIB=OFF" # Building the AMDGCN device RTL currently fails + ]; + + meta = llvm_meta // { + homepage = "https://openmp.llvm.org/"; + description = "Support for the OpenMP language"; + longDescription = '' + The OpenMP subproject of LLVM contains the components required to build an + executable OpenMP program that are outside the compiler itself. + Contains the code for the runtime library against which code compiled by + "clang -fopenmp" must be linked before it can run and the library that + supports offload to target devices. + ''; + # "All of the code is dual licensed under the MIT license and the UIUC + # License (a BSD-like license)": + license = with lib.licenses; [ mit ncsa ]; + }; +} diff --git a/pkgs/development/compilers/llvm/14/openmp/fix-find-tool.patch b/pkgs/development/compilers/llvm/14/openmp/fix-find-tool.patch new file mode 100644 index 000000000000..b5d0e7b41775 --- /dev/null +++ b/pkgs/development/compilers/llvm/14/openmp/fix-find-tool.patch @@ -0,0 +1,54 @@ +diff --git a/libomptarget/DeviceRTL/CMakeLists.txt b/libomptarget/DeviceRTL/CMakeLists.txt +index 242df638f80d..a4654e96371f 100644 +--- a/libomptarget/DeviceRTL/CMakeLists.txt ++++ b/libomptarget/DeviceRTL/CMakeLists.txt +@@ -25,16 +25,16 @@ endif() + + if (LLVM_DIR) + # Builds that use pre-installed LLVM have LLVM_DIR set. +- find_program(CLANG_TOOL clang PATHS ${LLVM_TOOLS_BINARY_DIR} NO_DEFAULT_PATH) ++ find_program(CLANG_TOOL clang PATHS ${LLVM_TOOLS_BINARY_DIR} REQUIRED) + find_program(LINK_TOOL llvm-link PATHS ${LLVM_TOOLS_BINARY_DIR} +- NO_DEFAULT_PATH) +- find_program(OPT_TOOL opt PATHS ${LLVM_TOOLS_BINARY_DIR} NO_DEFAULT_PATH) ++ REQUIRED) ++ find_program(OPT_TOOL opt PATHS ${LLVM_TOOLS_BINARY_DIR} REQUIRED) + libomptarget_say("Building DeviceRTL. Using clang: ${CLANG_TOOL}") + elseif (LLVM_TOOL_CLANG_BUILD AND NOT CMAKE_CROSSCOMPILING AND NOT OPENMP_STANDALONE_BUILD) + # LLVM in-tree builds may use CMake target names to discover the tools. +- set(CLANG_TOOL $) +- set(LINK_TOOL $) +- set(OPT_TOOL $) ++ set(CLANG_TOOL $ REQUIRED) ++ set(LINK_TOOL $ REQUIRED) ++ set(OPT_TOOL $ REQUIRED) + libomptarget_say("Building DeviceRTL. Using clang from in-tree build") + else() + libomptarget_say("Not building DeviceRTL. No appropriate clang found") +diff --git a/libomptarget/deviceRTLs/amdgcn/CMakeLists.txt b/libomptarget/deviceRTLs/amdgcn/CMakeLists.txt +index 3f4c02671aeb..be9f4677d7b5 100644 +--- a/libomptarget/deviceRTLs/amdgcn/CMakeLists.txt ++++ b/libomptarget/deviceRTLs/amdgcn/CMakeLists.txt +@@ -38,16 +38,16 @@ endif() + + if (LLVM_DIR) + # Builds that use pre-installed LLVM have LLVM_DIR set. +- find_program(CLANG_TOOL clang PATHS ${LLVM_TOOLS_BINARY_DIR} NO_DEFAULT_PATH) ++ find_program(CLANG_TOOL clang PATHS ${LLVM_TOOLS_BINARY_DIR} REQUIRED) + find_program(LINK_TOOL llvm-link PATHS ${LLVM_TOOLS_BINARY_DIR} +- NO_DEFAULT_PATH) +- find_program(OPT_TOOL opt PATHS ${LLVM_TOOLS_BINARY_DIR} NO_DEFAULT_PATH) ++ REQUIRED) ++ find_program(OPT_TOOL opt PATHS ${LLVM_TOOLS_BINARY_DIR} REQUIRED) + libomptarget_say("Building AMDGCN device RTL. Using clang: ${CLANG_TOOL}") + elseif (LLVM_TOOL_CLANG_BUILD AND NOT CMAKE_CROSSCOMPILING AND NOT OPENMP_STANDALONE_BUILD) + # LLVM in-tree builds may use CMake target names to discover the tools. +- set(CLANG_TOOL $) +- set(LINK_TOOL $) +- set(OPT_TOOL $) ++ set(CLANG_TOOL $ REQUIRED) ++ set(LINK_TOOL $ REQUIRED) ++ set(OPT_TOOL $ REQUIRED) + libomptarget_say("Building AMDGCN device RTL. Using clang from in-tree build") + else() + libomptarget_say("Not building AMDGCN device RTL. No appropriate clang found") diff --git a/pkgs/development/compilers/llvm/14/openmp/gnu-install-dirs.patch b/pkgs/development/compilers/llvm/14/openmp/gnu-install-dirs.patch new file mode 100644 index 000000000000..352a46923115 --- /dev/null +++ b/pkgs/development/compilers/llvm/14/openmp/gnu-install-dirs.patch @@ -0,0 +1,89 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 7f11a05f5622..fb90f8f6a49b 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -8,6 +8,8 @@ if (OPENMP_STANDALONE_BUILD OR "${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_CURRENT_S + set(OPENMP_STANDALONE_BUILD TRUE) + project(openmp C CXX) + ++ include(GNUInstallDirs) ++ + # CMAKE_BUILD_TYPE was not set, default to Release. + if (NOT CMAKE_BUILD_TYPE) + set(CMAKE_BUILD_TYPE Release) +@@ -19,7 +21,7 @@ if (OPENMP_STANDALONE_BUILD OR "${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_CURRENT_S + set(OPENMP_LIBDIR_SUFFIX "" CACHE STRING + "Suffix of lib installation directory, e.g. 64 => lib64") + # Do not use OPENMP_LIBDIR_SUFFIX directly, use OPENMP_INSTALL_LIBDIR. +- set(OPENMP_INSTALL_LIBDIR "lib${OPENMP_LIBDIR_SUFFIX}") ++ set(OPENMP_INSTALL_LIBDIR "${CMAKE_INSTALL_LIBDIR}${OPENMP_LIBDIR_SUFFIX}") + + # Group test settings. + set(OPENMP_TEST_C_COMPILER ${CMAKE_C_COMPILER} CACHE STRING +@@ -30,7 +32,7 @@ if (OPENMP_STANDALONE_BUILD OR "${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_CURRENT_S + else() + set(OPENMP_ENABLE_WERROR ${LLVM_ENABLE_WERROR}) + # If building in tree, we honor the same install suffix LLVM uses. +- set(OPENMP_INSTALL_LIBDIR "lib${LLVM_LIBDIR_SUFFIX}") ++ set(OPENMP_INSTALL_LIBDIR "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}") + + if (NOT MSVC) + set(OPENMP_TEST_C_COMPILER ${LLVM_RUNTIME_OUTPUT_INTDIR}/clang) +index 0e1ce2afd154..8b3810f83713 100644 +--- a/libomptarget/plugins/amdgpu/CMakeLists.txt ++++ b/libomptarget/plugins/amdgpu/CMakeLists.txt +@@ -80,7 +80,7 @@ add_library(omptarget.rtl.amdgpu SHARED + + # Install plugin under the lib destination folder. + # When we build for debug, OPENMP_LIBDIR_SUFFIX get set to -debug +-install(TARGETS omptarget.rtl.amdgpu LIBRARY DESTINATION "lib${OPENMP_LIBDIR_SUFFIX}") ++install(TARGETS omptarget.rtl.amdgpu LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}${OPENMP_LIBDIR_SUFFIX}") + set_property(TARGET omptarget.rtl.amdgpu PROPERTY INSTALL_RPATH_USE_LINK_PATH ON) + + if(CMAKE_SYSTEM_NAME MATCHES "FreeBSD") +diff --git a/libomptarget/plugins/ve/CMakeLists.txt b/libomptarget/plugins/ve/CMakeLists.txt +index 16ce0891ca23..db30ee9c769f 100644 +--- a/libomptarget/plugins/ve/CMakeLists.txt ++++ b/libomptarget/plugins/ve/CMakeLists.txt +@@ -32,7 +32,7 @@ if(${LIBOMPTARGET_DEP_VEO_FOUND}) + + # Install plugin under the lib destination folder. + install(TARGETS "omptarget.rtl.${tmachine_libname}" +- LIBRARY DESTINATION lib${OPENMP_LIBDIR_SUFFIX}) ++ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}${OPENMP_LIBDIR_SUFFIX}) + + target_link_libraries( + "omptarget.rtl.${tmachine_libname}" +diff --git a/runtime/src/CMakeLists.txt b/runtime/src/CMakeLists.txt +index e4f4e6e1e73f..1164b3b22b0e 100644 +--- a/runtime/src/CMakeLists.txt ++++ b/runtime/src/CMakeLists.txt +@@ -346,13 +346,13 @@ add_dependencies(libomp-micro-tests libomp-test-deps) + # We want to install libomp in DESTDIR/CMAKE_INSTALL_PREFIX/lib + # We want to install headers in DESTDIR/CMAKE_INSTALL_PREFIX/include + if(${OPENMP_STANDALONE_BUILD}) +- set(LIBOMP_HEADERS_INSTALL_PATH include) ++ set(LIBOMP_HEADERS_INSTALL_PATH "${CMAKE_INSTALL_INCLUDEDIR}") + else() + string(REGEX MATCH "[0-9]+\\.[0-9]+(\\.[0-9]+)?" CLANG_VERSION ${PACKAGE_VERSION}) + set(LIBOMP_HEADERS_INSTALL_PATH "${OPENMP_INSTALL_LIBDIR}/clang/${CLANG_VERSION}/include") + endif() + if(WIN32) +- install(TARGETS omp RUNTIME DESTINATION bin) ++ install(TARGETS omp RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) + install(TARGETS ${LIBOMP_IMP_LIB_TARGET} ARCHIVE DESTINATION "${OPENMP_INSTALL_LIBDIR}") + # Create aliases (regular copies) of the library for backwards compatibility + set(LIBOMP_ALIASES "libiomp5md") +diff --git a/tools/multiplex/CMakeLists.txt b/tools/multiplex/CMakeLists.txt +index 64317c112176..4002784da736 100644 +--- a/tools/multiplex/CMakeLists.txt ++++ b/tools/multiplex/CMakeLists.txt +@@ -4,7 +4,7 @@ if(LIBOMP_OMPT_SUPPORT) + add_library(ompt-multiplex INTERFACE) + target_include_directories(ompt-multiplex INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}) + +- install(FILES ompt-multiplex.h DESTINATION include) ++ install(FILES ompt-multiplex.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) + + add_subdirectory(tests) + endif() diff --git a/pkgs/development/compilers/llvm/git/lld/default.nix b/pkgs/development/compilers/llvm/git/lld/default.nix index cdd2f5f0fa7f..fe655c761129 100644 --- a/pkgs/development/compilers/llvm/git/lld/default.nix +++ b/pkgs/development/compilers/llvm/git/lld/default.nix @@ -25,9 +25,9 @@ stdenv.mkDerivation rec { patches = [ ./gnu-install-dirs.patch - # On Darwin the llvm-config is perhaps not working fine as the - # LLVM_MAIN_SRC_DIR is not getting set correctly, and the build fails as - # the include path is not correct. + # On Darwin the llvm-config is perhaps not working fine as the + # LLVM_MAIN_SRC_DIR is not getting set correctly, and the build fails as + # the include path is not correct. ./fix-root-src-dir.patch ]; diff --git a/pkgs/development/compilers/purescript/purescript/default.nix b/pkgs/development/compilers/purescript/purescript/default.nix index 5dd2b6a23b1a..cbf36516465b 100644 --- a/pkgs/development/compilers/purescript/purescript/default.nix +++ b/pkgs/development/compilers/purescript/purescript/default.nix @@ -18,7 +18,7 @@ let in stdenv.mkDerivation rec { pname = "purescript"; - version = "0.14.6"; + version = "0.14.7"; # These hashes can be updated automatically by running the ./update.sh script. src = @@ -26,12 +26,12 @@ in stdenv.mkDerivation rec { then fetchurl { url = "https://github.com/${pname}/${pname}/releases/download/v${version}/macos.tar.gz"; - sha256 = "0yfl4galaqzbbkql2vfsg4zrc5cv037286764kv8qibdk2yrhap3"; + sha256 = "0pc07xv5h7jgiy04rcrnsjb97nk5zs7jrvcsqggn0izlnrcyi8rc"; } else fetchurl { url = "https://github.com/${pname}/${pname}/releases/download/v${version}/linux64.tar.gz"; - sha256 = "01mf850a9jhqba6a3hsbl9fjxp2khplwnlr15wzp637s5vf7rd79"; + sha256 = "0vcjxb1v76wg4hmisnw0pp6wl0pwp4fa19cw08zdhgy62w06mqfa"; }; diff --git a/pkgs/development/libraries/cmark-gfm/default.nix b/pkgs/development/libraries/cmark-gfm/default.nix index b25688acfa15..7641b6043ef8 100644 --- a/pkgs/development/libraries/cmark-gfm/default.nix +++ b/pkgs/development/libraries/cmark-gfm/default.nix @@ -14,6 +14,12 @@ stdenv.mkDerivation rec { # tests load the library dynamically which for unknown reason failed doCheck = false; + # remove when https://github.com/github/cmark-gfm/pull/248 merged and released + postInstall = '' + substituteInPlace $out/include/cmark-gfm-core-extensions.h \ + --replace '#include "config.h"' '#include ' + ''; + meta = with lib; { description = "GitHub's fork of cmark, a CommonMark parsing and rendering library and program in C"; homepage = "https://github.com/github/cmark-gfm"; diff --git a/pkgs/development/libraries/libbap/default.nix b/pkgs/development/libraries/libbap/default.nix index c15de88f6a76..0b378c583ad1 100644 --- a/pkgs/development/libraries/libbap/default.nix +++ b/pkgs/development/libraries/libbap/default.nix @@ -17,8 +17,8 @@ stdenv.mkDerivation { --replace "-linkpkg" "-thread -linkpkg" ''; - nativeBuildInputs = [ autoreconfHook which ]; - buildInputs = [ ocaml bap findlib ctypes ]; + nativeBuildInputs = [ autoreconfHook which ocaml findlib ]; + buildInputs = [ bap ctypes ]; preInstall = '' mkdir -p $out/lib diff --git a/pkgs/development/libraries/science/biology/htslib/default.nix b/pkgs/development/libraries/science/biology/htslib/default.nix index 8a9df7601d28..d93b4fb2a5a7 100644 --- a/pkgs/development/libraries/science/biology/htslib/default.nix +++ b/pkgs/development/libraries/science/biology/htslib/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { pname = "htslib"; - version = "1.14"; + version = "1.15"; src = fetchurl { url = "https://github.com/samtools/htslib/releases/download/${version}/${pname}-${version}.tar.bz2"; - sha256 = "sha256-7SIbj1L0gS+BDuvgzFbNg1WlydIcYtFCrAWtDaFHk18="; + sha256 = "sha256-Gp9JkRUDoi9WgXzILqm4f7fnRntf+YnKWqYcEufVMtk="; }; # perl is only used during the check phase. diff --git a/pkgs/development/ocaml-modules/apron/default.nix b/pkgs/development/ocaml-modules/apron/default.nix index c9edfd62e06d..9a072482d328 100644 --- a/pkgs/development/ocaml-modules/apron/default.nix +++ b/pkgs/development/ocaml-modules/apron/default.nix @@ -10,9 +10,12 @@ stdenv.mkDerivation rec { sha256 = "14ymjahqdxj26da8wik9d5dzlxn81b3z1iggdl7rn2nn06jy7lvy"; }; - buildInputs = [ perl gmp mpfr ppl ocaml findlib camlidl ]; + nativeBuildInputs = [ ocaml findlib perl ]; + buildInputs = [ gmp mpfr ppl camlidl ]; propagatedBuildInputs = [ mlgmpidl ]; + strictDeps = true; + outputs = [ "out" "bin" "dev" ]; configurePhase = '' diff --git a/pkgs/development/ocaml-modules/astring/default.nix b/pkgs/development/ocaml-modules/astring/default.nix index 8ecac1c124d6..f7478f93b91c 100644 --- a/pkgs/development/ocaml-modules/astring/default.nix +++ b/pkgs/development/ocaml-modules/astring/default.nix @@ -22,7 +22,10 @@ stdenv.mkDerivation { inherit (param) sha256; }; - buildInputs = [ ocaml findlib ocamlbuild topkg ]; + nativeBuildInputs = [ ocaml findlib ocamlbuild topkg ]; + buildInputs = [ topkg ]; + + strictDeps = true; inherit (topkg) buildPhase installPhase; diff --git a/pkgs/development/ocaml-modules/atd/default.nix b/pkgs/development/ocaml-modules/atd/default.nix index de6ade61518a..7468900e07e6 100644 --- a/pkgs/development/ocaml-modules/atd/default.nix +++ b/pkgs/development/ocaml-modules/atd/default.nix @@ -13,9 +13,11 @@ buildDunePackage rec { sha256 = "17jm79np69ixp53a4njxnlb1pg8sd1g47nm3nyki9clkc8d4qsyv"; }; - buildInputs = [ which menhir ]; + nativeBuildInputs = [ which menhir ]; propagatedBuildInputs = [ easy-format re ]; + strictDeps = true; + doCheck = true; passthru.tests = { diff --git a/pkgs/development/ocaml-modules/bap/default.nix b/pkgs/development/ocaml-modules/bap/default.nix index f8e07fd1265c..ea009083e8d1 100644 --- a/pkgs/development/ocaml-modules/bap/default.nix +++ b/pkgs/development/ocaml-modules/bap/default.nix @@ -36,10 +36,9 @@ stdenv.mkDerivation rec { export CAML_LD_LIBRARY_PATH="''${CAML_LD_LIBRARY_PATH-}''${CAML_LD_LIBRARY_PATH:+:}''$1/lib/ocaml/${ocaml.version}/site-lib/ocaml${ocaml.version}-bap-${version}-llvm-plugins/" ''; - nativeBuildInputs = [ which makeWrapper ]; + nativeBuildInputs = [ which makeWrapper ocaml findlib ocamlbuild ocaml_oasis ]; - buildInputs = [ ocaml findlib ocamlbuild ocaml_oasis - linenoise + buildInputs = [ linenoise ounit ppx_bitstring z3 diff --git a/pkgs/development/ocaml-modules/batteries/default.nix b/pkgs/development/ocaml-modules/batteries/default.nix index 69e8289df2cd..184f10a52be4 100644 --- a/pkgs/development/ocaml-modules/batteries/default.nix +++ b/pkgs/development/ocaml-modules/batteries/default.nix @@ -1,4 +1,4 @@ -{ stdenv, lib, fetchFromGitHub, ocaml, findlib, ocamlbuild, qtest, num +{ stdenv, lib, fetchFromGitHub, ocaml, findlib, ocamlbuild, qtest, num, ounit , doCheck ? lib.versionAtLeast ocaml.version "4.08" && !stdenv.isAarch64 }: @@ -17,10 +17,12 @@ stdenv.mkDerivation rec { sha256 = "sha256:1cd7475n1mxhq482aidmhh27mq5p2vmb8d9fkb1mlza9pz5z66yq"; }; - buildInputs = [ ocaml findlib ocamlbuild ]; - checkInputs = [ qtest ]; + nativeBuildInputs = [ ocaml findlib ocamlbuild ]; + checkInputs = [ qtest ounit ]; propagatedBuildInputs = [ num ]; + strictDeps = !doCheck; + inherit doCheck; checkTarget = "test"; diff --git a/pkgs/development/ocaml-modules/benchmark/default.nix b/pkgs/development/ocaml-modules/benchmark/default.nix index 3397821319e3..c80162307241 100644 --- a/pkgs/development/ocaml-modules/benchmark/default.nix +++ b/pkgs/development/ocaml-modules/benchmark/default.nix @@ -9,7 +9,10 @@ stdenv.mkDerivation rec { sha256 = "16wi8ld7c3mq77ylpgbnj8qqqqimyzwxs47v06vyrwpma5pab5xa"; }; - buildInputs = [ ocaml findlib ocamlbuild ocaml_pcre ]; + nativeBuildInputs = [ ocaml findlib ocamlbuild ]; + buildInputs = [ ocaml_pcre ]; + + strictDeps = true; createFindlibDestdir = true; diff --git a/pkgs/development/ocaml-modules/bigarray-overlap/default.nix b/pkgs/development/ocaml-modules/bigarray-overlap/default.nix index e02b1159a9c7..a5f5ae33ede7 100644 --- a/pkgs/development/ocaml-modules/bigarray-overlap/default.nix +++ b/pkgs/development/ocaml-modules/bigarray-overlap/default.nix @@ -14,9 +14,12 @@ buildDunePackage rec { minimumOCamlVersion = "4.07"; useDune2 = true; + strictDeps = !doCheck; + propagatedBuildInputs = [ bigarray-compat ]; - checkInputs = [ alcotest astring fpath bos findlib pkg-config ]; + nativeBuildInputs = [ findlib pkg-config ]; + checkInputs = [ alcotest astring fpath bos ]; doCheck = true; meta = with lib; { diff --git a/pkgs/development/ocaml-modules/bigstringaf/default.nix b/pkgs/development/ocaml-modules/bigstringaf/default.nix index 852459c2bac1..e8d36526d228 100644 --- a/pkgs/development/ocaml-modules/bigstringaf/default.nix +++ b/pkgs/development/ocaml-modules/bigstringaf/default.nix @@ -1,4 +1,4 @@ -{ lib, fetchFromGitHub, buildDunePackage, ocaml, alcotest, bigarray-compat }: +{ lib, fetchFromGitHub, buildDunePackage, ocaml, alcotest, bigarray-compat, pkg-config }: buildDunePackage rec { pname = "bigstringaf"; @@ -15,6 +15,10 @@ buildDunePackage rec { sha256 = "1q1sqxzdnlrpl95ccrhl7lwy3zswgd9rbn19ildclh0lyi2vazbj"; }; + # This currently fails with dune + strictDeps = false; + + nativeBuildInputs = [ pkg-config ]; checkInputs = [ alcotest ]; propagatedBuildInputs = [ bigarray-compat ]; doCheck = lib.versionAtLeast ocaml.version "4.05"; diff --git a/pkgs/development/ocaml-modules/biniou/1.0.nix b/pkgs/development/ocaml-modules/biniou/1.0.nix index 795e63401290..5a2e2ea9a7fa 100644 --- a/pkgs/development/ocaml-modules/biniou/1.0.nix +++ b/pkgs/development/ocaml-modules/biniou/1.0.nix @@ -16,7 +16,10 @@ stdenv.mkDerivation rec { sha256 = "14j3hrhbjqxbizr1pr8fcig9dmfzhbjjwzwyc99fcsdic67w8izb"; }; - buildInputs = [ ocaml findlib easy-format ]; + nativeBuildInputs = [ ocaml findlib ]; + buildInputs = [ easy-format ]; + + strictDeps = true; createFindlibDestdir = true; diff --git a/pkgs/development/ocaml-modules/biniou/default.nix b/pkgs/development/ocaml-modules/biniou/default.nix index 535b34b03dcd..75725f135518 100644 --- a/pkgs/development/ocaml-modules/biniou/default.nix +++ b/pkgs/development/ocaml-modules/biniou/default.nix @@ -15,6 +15,8 @@ buildDunePackage rec { propagatedBuildInputs = [ easy-format ]; + strictDeps = true; + postPatch = '' patchShebangs . ''; diff --git a/pkgs/development/ocaml-modules/bitv/default.nix b/pkgs/development/ocaml-modules/bitv/default.nix index 2ac3a0ba3e76..07649f3655b8 100644 --- a/pkgs/development/ocaml-modules/bitv/default.nix +++ b/pkgs/development/ocaml-modules/bitv/default.nix @@ -15,7 +15,9 @@ stdenv.mkDerivation rec { sha256 = "sha256-sZwq6c10hBBS9tGvKlWD9GE3JBrZPByfDrXE6xIPcG4="; }; - buildInputs = [ autoreconfHook which ocaml findlib ]; + nativeBuildInputs = [ autoreconfHook which ocaml findlib ]; + + strictDeps = true; createFindlibDestdir = true; diff --git a/pkgs/development/ocaml-modules/bolt/default.nix b/pkgs/development/ocaml-modules/bolt/default.nix index a6b63676e775..46e3b6f16cce 100644 --- a/pkgs/development/ocaml-modules/bolt/default.nix +++ b/pkgs/development/ocaml-modules/bolt/default.nix @@ -18,7 +18,9 @@ stdenv.mkDerivation rec { sha256 = "1c807wrpxra9sbb34lajhimwra28ldxv04m570567lh2b04n38zy"; }; - buildInputs = [ ocaml findlib ocamlbuild which camlp4 ]; + nativeBuildInputs = [ ocaml findlib ocamlbuild which camlp4 ]; + + strictDeps = true; patches = [ (fetchpatch { diff --git a/pkgs/development/ocaml-modules/bos/default.nix b/pkgs/development/ocaml-modules/bos/default.nix index 17a0185829e9..07d4d4864d82 100644 --- a/pkgs/development/ocaml-modules/bos/default.nix +++ b/pkgs/development/ocaml-modules/bos/default.nix @@ -11,10 +11,12 @@ stdenv.mkDerivation rec { sha256 = "1s10iqx8rgnxr5n93lf4blwirjf8nlm272yg5sipr7lsr35v49wc"; }; - nativeBuildInputs = [ ocaml findlib ocamlbuild ]; - buildInputs = [ findlib topkg ]; + nativeBuildInputs = [ ocaml findlib ocamlbuild topkg ]; + buildInputs = [ topkg ]; propagatedBuildInputs = [ astring fmt fpath logs rresult ]; + strictDeps = true; + inherit (topkg) buildPhase installPhase; meta = { diff --git a/pkgs/development/ocaml-modules/bz2/default.nix b/pkgs/development/ocaml-modules/bz2/default.nix index 617715fc6edc..4ac0262e1ee3 100644 --- a/pkgs/development/ocaml-modules/bz2/default.nix +++ b/pkgs/development/ocaml-modules/bz2/default.nix @@ -19,9 +19,6 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ autoreconfHook - ]; - - buildInputs = [ ocaml findlib ]; @@ -30,6 +27,8 @@ stdenv.mkDerivation rec { bzip2 ]; + strictDeps = true; + preInstall = "mkdir -p $OCAMLFIND_DESTDIR/stublibs"; meta = with lib; { diff --git a/pkgs/development/ocaml-modules/calendar/default.nix b/pkgs/development/ocaml-modules/calendar/default.nix index 29927aae04a7..4c089b76f3ed 100644 --- a/pkgs/development/ocaml-modules/calendar/default.nix +++ b/pkgs/development/ocaml-modules/calendar/default.nix @@ -9,7 +9,9 @@ stdenv.mkDerivation rec { sha256 = "04pvhwb664g3s644c7v7419a3kvf5s3pynkhmk5j59dvlfm1yf0f"; }; - buildInputs = [ ocaml findlib ]; + nativeBuildInputs = [ ocaml findlib ]; + + strictDeps = true; createFindlibDestdir = true; diff --git a/pkgs/development/ocaml-modules/camlimages/default.nix b/pkgs/development/ocaml-modules/camlimages/default.nix index ba36cfa05b99..a83c7c474ac5 100644 --- a/pkgs/development/ocaml-modules/camlimages/default.nix +++ b/pkgs/development/ocaml-modules/camlimages/default.nix @@ -17,7 +17,10 @@ buildDunePackage rec { sha256 = "1m2c76ghisg73dikz2ifdkrbkgiwa0hcmp21f2fm2rkbf02rq3f4"; }; - buildInputs = [ dune-configurator cppo graphics lablgtk stdio ]; + strictDeps = true; + + nativeBuildInputs = [ cppo ]; + buildInputs = [ dune-configurator graphics lablgtk stdio ]; meta = with lib; { branch = "5.0"; diff --git a/pkgs/development/ocaml-modules/camlpdf/default.nix b/pkgs/development/ocaml-modules/camlpdf/default.nix index 42c27f15a5b1..06456b9c930e 100644 --- a/pkgs/development/ocaml-modules/camlpdf/default.nix +++ b/pkgs/development/ocaml-modules/camlpdf/default.nix @@ -15,7 +15,9 @@ stdenv.mkDerivation rec { sha256 = "sha256:1qmsa0xgi960y7r20mvf8hxiiml7l1908s4dm7nq262f19w51gsl"; }; - buildInputs = [ which ocaml findlib ]; + nativeBuildInputs = [ which ocaml findlib ]; + + strictDeps = true; preInstall = '' mkdir -p $out/lib/ocaml/${ocaml.version}/site-lib/stublibs diff --git a/pkgs/development/ocaml-modules/camlzip/default.nix b/pkgs/development/ocaml-modules/camlzip/default.nix index c2c2e98b2e06..8124b8d8e437 100644 --- a/pkgs/development/ocaml-modules/camlzip/default.nix +++ b/pkgs/development/ocaml-modules/camlzip/default.nix @@ -33,10 +33,12 @@ stdenv.mkDerivation { inherit (param) sha256; }; - buildInputs = [ ocaml findlib ]; + nativeBuildInputs = [ ocaml findlib ]; propagatedBuildInputs = [zlib]; + strictDeps = true; + inherit (param) patches; createFindlibDestdir = true; diff --git a/pkgs/development/ocaml-modules/camomile/0.8.2.nix b/pkgs/development/ocaml-modules/camomile/0.8.2.nix index 79c7a46e6e99..43bbfe7b6a6d 100644 --- a/pkgs/development/ocaml-modules/camomile/0.8.2.nix +++ b/pkgs/development/ocaml-modules/camomile/0.8.2.nix @@ -13,7 +13,9 @@ stdenv.mkDerivation rec { sha256 = "0x43pjxx70kgip86mmdn08s97k4qzdqc8i79xfyyx28smy1bsa00"; }; - buildInputs = [ocaml findlib camlp4]; + nativeBuildInputs = [ ocaml findlib camlp4 ]; + + strictDeps = true; createFindlibDestdir = true; diff --git a/pkgs/development/ocaml-modules/camomile/0.8.5.nix b/pkgs/development/ocaml-modules/camomile/0.8.5.nix index 67bd8b8c755d..e63953836982 100644 --- a/pkgs/development/ocaml-modules/camomile/0.8.5.nix +++ b/pkgs/development/ocaml-modules/camomile/0.8.5.nix @@ -14,7 +14,9 @@ stdenv.mkDerivation { sha256 = "167279lia6qx62mdcyc5rjsi4gf4yi52wn9mhgd9y1v3754z7fwb"; })]; - buildInputs = [ocaml findlib camlp4]; + nativeBuildInputs = [ocaml findlib camlp4 ]; + + strictDeps = true; createFindlibDestdir = true; diff --git a/pkgs/development/ocaml-modules/camomile/default.nix b/pkgs/development/ocaml-modules/camomile/default.nix index 090b96ece0cc..a75f05b33f2e 100644 --- a/pkgs/development/ocaml-modules/camomile/default.nix +++ b/pkgs/development/ocaml-modules/camomile/default.nix @@ -13,7 +13,9 @@ buildDunePackage rec { sha256 = "00i910qjv6bpk0nkafp5fg97isqas0bwjf7m6rz11rsxilpalzad"; }; - buildInputs = [ cppo ]; + nativeBuildInputs = [ cppo ]; + + strictDeps = true; configurePhase = '' runHook preConfigure diff --git a/pkgs/development/ocaml-modules/caqti/default.nix b/pkgs/development/ocaml-modules/caqti/default.nix index 105a6a9dfe18..d9606cda1fa3 100644 --- a/pkgs/development/ocaml-modules/caqti/default.nix +++ b/pkgs/development/ocaml-modules/caqti/default.nix @@ -14,7 +14,7 @@ buildDunePackage rec { sha256 = "1vl61kdyj89whc3mh4k9bis6rbj9x2scf6hnv9afyalp4j65sqx1"; }; - buildInputs = [ cppo ]; + nativeBuildInputs = [ cppo ]; propagatedBuildInputs = [ logs ptime uri ]; meta = { diff --git a/pkgs/development/ocaml-modules/carton/default.nix b/pkgs/development/ocaml-modules/carton/default.nix index 97e00dc71b62..6868ddc7851c 100644 --- a/pkgs/development/ocaml-modules/carton/default.nix +++ b/pkgs/development/ocaml-modules/carton/default.nix @@ -48,13 +48,15 @@ buildDunePackage rec { ]; doCheck = true; + nativeBuildInputs = [ + findlib + ]; checkInputs = [ base64 alcotest alcotest-lwt crowbar lwt - findlib mirage-flow ]; diff --git a/pkgs/development/ocaml-modules/cfstream/default.nix b/pkgs/development/ocaml-modules/cfstream/default.nix index 303fdc01011d..62a29a5d4141 100644 --- a/pkgs/development/ocaml-modules/cfstream/default.nix +++ b/pkgs/development/ocaml-modules/cfstream/default.nix @@ -17,7 +17,10 @@ buildDunePackage rec { patches = [ ./git_commit.patch ]; - buildInputs = [ m4 ]; + # This currently fails with dune + strictDeps = false; + + nativeBuildInputs = [ m4 ]; checkInputs = [ ounit ]; propagatedBuildInputs = [ core_kernel ]; diff --git a/pkgs/development/ocaml-modules/checkseum/default.nix b/pkgs/development/ocaml-modules/checkseum/default.nix index 3483af1dd416..3a07707a4cd1 100644 --- a/pkgs/development/ocaml-modules/checkseum/default.nix +++ b/pkgs/development/ocaml-modules/checkseum/default.nix @@ -18,10 +18,8 @@ buildDunePackage rec { sha256 = "9cdd282ea1cfc424095d7284e39e4d0ad091de3c3f2580539d03f6966d45ccd5"; }; - nativeBuildInputs = [ - dune-configurator - pkg-config - ]; + buildInputs = [ dune-configurator ]; + nativeBuildInputs = [ pkg-config ]; propagatedBuildInputs = [ bigarray-compat optint diff --git a/pkgs/development/ocaml-modules/cil/default.nix b/pkgs/development/ocaml-modules/cil/default.nix index c5a3dcde2263..7a8a3f2e70a4 100644 --- a/pkgs/development/ocaml-modules/cil/default.nix +++ b/pkgs/development/ocaml-modules/cil/default.nix @@ -13,7 +13,9 @@ stdenv.mkDerivation rec { sha256 = "05739da0b0msx6kmdavr3y2bwi92jbh3szc35d7d8pdisa8g5dv9"; }; - buildInputs = [ perl ocaml findlib ocamlbuild ]; + nativeBuildInputs = [ perl ocaml findlib ocamlbuild ]; + + strictDeps = true; createFindlibDestdir = true; diff --git a/pkgs/development/ocaml-modules/cmdliner/default.nix b/pkgs/development/ocaml-modules/cmdliner/default.nix index 7e49679406ab..9536cc25290e 100644 --- a/pkgs/development/ocaml-modules/cmdliner/default.nix +++ b/pkgs/development/ocaml-modules/cmdliner/default.nix @@ -25,7 +25,7 @@ stdenv.mkDerivation rec { inherit (param) sha256; }; - nativeBuildInputs = [ ocaml ocamlbuild findlib ]; + nativeBuildInputs = [ ocaml ocamlbuild findlib topkg ]; buildInputs = [ topkg ]; propagatedBuildInputs = [ result ]; diff --git a/pkgs/development/ocaml-modules/coin/default.nix b/pkgs/development/ocaml-modules/coin/default.nix index f0697a9d880b..f2e0919bdee4 100644 --- a/pkgs/development/ocaml-modules/coin/default.nix +++ b/pkgs/development/ocaml-modules/coin/default.nix @@ -24,9 +24,11 @@ buildDunePackage rec { useDune2 = true; - nativeBuildInputs = [ menhir ]; + nativeBuildInputs = [ menhir findlib ]; + buildInputs = [ re ]; + + strictDeps = true; - checkInputs = [ re ]; doCheck = true; meta = { diff --git a/pkgs/development/ocaml-modules/comparelib/default.nix b/pkgs/development/ocaml-modules/comparelib/default.nix index 1d7c314f005c..1da631d683cc 100644 --- a/pkgs/development/ocaml-modules/comparelib/default.nix +++ b/pkgs/development/ocaml-modules/comparelib/default.nix @@ -1,4 +1,4 @@ -{ lib, buildOcaml, fetchFromGitHub, type_conv }: +{ lib, buildOcaml, fetchFromGitHub, type_conv, camlp4 }: buildOcaml rec { pname = "comparelib"; @@ -13,6 +13,7 @@ buildOcaml rec { sha256 = "sha256-gtJvXAUxiIt/L9bCzS+8wHcCQ+QpBubwcjDcyN0K2MA="; }; + buildInputs = [ camlp4 ]; propagatedBuildInputs = [ type_conv ]; meta = with lib; { diff --git a/pkgs/development/ocaml-modules/config-file/default.nix b/pkgs/development/ocaml-modules/config-file/default.nix index c408d1a392f1..b9dde0e6425f 100644 --- a/pkgs/development/ocaml-modules/config-file/default.nix +++ b/pkgs/development/ocaml-modules/config-file/default.nix @@ -9,7 +9,9 @@ stdenv.mkDerivation rec { sha256 = "1b02yxcnsjhr05ssh2br2ka4hxsjpdw34ldl3nk33wfnkwk7g67q"; }; - buildInputs = [ ocaml findlib camlp4 ]; + nativeBuildInputs = [ ocaml findlib camlp4 ]; + + strictDeps = true; createFindlibDestdir = true; diff --git a/pkgs/development/ocaml-modules/cpdf/default.nix b/pkgs/development/ocaml-modules/cpdf/default.nix index 632430fe4f7f..3f60263736e8 100644 --- a/pkgs/development/ocaml-modules/cpdf/default.nix +++ b/pkgs/development/ocaml-modules/cpdf/default.nix @@ -15,9 +15,12 @@ stdenv.mkDerivation rec { sha256 = "sha256:1qmx229nij7g6qmiacmyy4mcgx3k9509p4slahivshqm79d6wiwl"; }; - buildInputs = [ ocaml findlib ncurses ]; + nativeBuildInputs = [ ocaml findlib ]; + buildInputs = [ ncurses ]; propagatedBuildInputs = [ camlpdf ]; + strictDeps = true; + preInstall = '' mkdir -p $OCAMLFIND_DESTDIR mkdir -p $out/bin diff --git a/pkgs/development/ocaml-modules/cryptgps/default.nix b/pkgs/development/ocaml-modules/cryptgps/default.nix index 6011c6953baa..aeaa87aaf75f 100644 --- a/pkgs/development/ocaml-modules/cryptgps/default.nix +++ b/pkgs/development/ocaml-modules/cryptgps/default.nix @@ -13,7 +13,9 @@ stdenv.mkDerivation { sha256 = "1mp7i42cm9w9grmcsa69m3h1ycpn6a48p43y4xj8rsc12x9nav3s"; }; - buildInputs = [ocaml findlib]; + nativeBuildInputs = [ ocaml findlib ]; + + strictDeps = true; dontConfigure = true; # Skip configure phase diff --git a/pkgs/development/ocaml-modules/csv/1.5.nix b/pkgs/development/ocaml-modules/csv/1.5.nix index ee68782313c5..cd298fb39a9f 100644 --- a/pkgs/development/ocaml-modules/csv/1.5.nix +++ b/pkgs/development/ocaml-modules/csv/1.5.nix @@ -9,7 +9,9 @@ stdenv.mkDerivation rec { sha256 = "1ca7jgg58j24pccs5fshis726s06fdcjshnwza5kwxpjgdbvc63g"; }; - buildInputs = [ ocaml findlib ocamlbuild ]; + nativeBuildInputs = [ ocaml findlib ocamlbuild ]; + + strictDeps = true; createFindlibDestdir = true; diff --git a/pkgs/development/ocaml-modules/ctypes/default.nix b/pkgs/development/ocaml-modules/ctypes/default.nix index 8c20a68c2746..833ea45a8692 100644 --- a/pkgs/development/ocaml-modules/ctypes/default.nix +++ b/pkgs/development/ocaml-modules/ctypes/default.nix @@ -15,10 +15,12 @@ stdenv.mkDerivation rec { sha256 = "sha256-eu5RAuPYC97IM4XUsUw3HQ1BJlEHQ+eBpsdUE6hd+Q8="; }; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ ocaml findlib ncurses ]; + nativeBuildInputs = [ pkg-config ocaml findlib ]; + buildInputs = [ ncurses ]; propagatedBuildInputs = [ integers libffi bigarray-compat ]; + strictDeps = true; + buildPhase = '' make XEN=false libffi.config ctypes-base ctypes-stubs make XEN=false ctypes-foreign diff --git a/pkgs/development/ocaml-modules/digestif/default.nix b/pkgs/development/ocaml-modules/digestif/default.nix index 2ddaec5c7c1d..dba0bcb9269e 100644 --- a/pkgs/development/ocaml-modules/digestif/default.nix +++ b/pkgs/development/ocaml-modules/digestif/default.nix @@ -1,4 +1,5 @@ { lib, ocaml, fetchurl, buildDunePackage +, pkg-config, which , bigarray-compat, eqaf, stdlib-shims , alcotest, astring, bos, findlib, fpath }: @@ -14,8 +15,13 @@ buildDunePackage rec { sha256 = "01gwkbrznci4xdcbww4ysgsciz2qs0r8jsmhp0siwbcgcrf1jjv5"; }; + nativeBuildInputs = [ findlib which ]; + buildInputs = [ ocaml ]; + propagatedBuildInputs = [ bigarray-compat eqaf stdlib-shims ]; + strictDeps = !doCheck; + checkInputs = [ alcotest astring bos fpath ]; doCheck = lib.versionAtLeast ocaml.version "4.05"; diff --git a/pkgs/development/ocaml-modules/dolmen/default.nix b/pkgs/development/ocaml-modules/dolmen/default.nix index 9a21da986814..7a7a14192f9e 100644 --- a/pkgs/development/ocaml-modules/dolmen/default.nix +++ b/pkgs/development/ocaml-modules/dolmen/default.nix @@ -16,7 +16,9 @@ buildDunePackage rec { sha256 = "133l23mwxa9xy340izvk4zp5jqjz2cwsm2innsgs2kg85pd39c41"; }; - buildInputs = [ menhir ]; + strictDeps = true; + + nativeBuildInputs = [ menhir ]; propagatedBuildInputs = [ menhirLib fmt ]; # Testr are not compatible with menhir 20211128 diff --git a/pkgs/development/ocaml-modules/dolog/default.nix b/pkgs/development/ocaml-modules/dolog/default.nix index 64fb2b2c5a59..599cc356031b 100644 --- a/pkgs/development/ocaml-modules/dolog/default.nix +++ b/pkgs/development/ocaml-modules/dolog/default.nix @@ -11,7 +11,9 @@ stdenv.mkDerivation rec { sha256 = "sha256-6wfqT5sqo4YA8XoHH3QhG6/TyzzXCzqjmnPuBArRoj8="; }; - buildInputs = [ ocaml findlib ocamlbuild ]; + nativeBuildInputs = [ ocaml findlib ocamlbuild ]; + + strictDeps = true; createFindlibDestdir = true; diff --git a/pkgs/development/ocaml-modules/dum/default.nix b/pkgs/development/ocaml-modules/dum/default.nix index 7bdaf2dfad90..3faef36e8ec4 100644 --- a/pkgs/development/ocaml-modules/dum/default.nix +++ b/pkgs/development/ocaml-modules/dum/default.nix @@ -13,9 +13,11 @@ stdenv.mkDerivation rec { sha256 = "0yrxl97szjc0s2ghngs346x3y0xszx2chidgzxk93frjjpsr1mlr"; }; - buildInputs = [ ocaml findlib ]; + nativeBuildInputs = [ ocaml findlib ]; propagatedBuildInputs = [ easy-format ]; + strictDeps = true; + createFindlibDestdir = true; meta = with lib; { diff --git a/pkgs/development/ocaml-modules/dypgen/default.nix b/pkgs/development/ocaml-modules/dypgen/default.nix index 5b5b107b694b..64017bd65fe2 100644 --- a/pkgs/development/ocaml-modules/dypgen/default.nix +++ b/pkgs/development/ocaml-modules/dypgen/default.nix @@ -17,7 +17,9 @@ stdenv.mkDerivation rec { sha256 = "ecb53d6e469e9ec4d57ee6323ff498d45b78883ae13618492488e7c5151fdd97"; }; - buildInputs = [ocaml findlib]; + nativeBuildInputs = [ ocaml findlib ]; + + strictDeps = true; createFindlibDestdir = true; diff --git a/pkgs/development/ocaml-modules/elina/default.nix b/pkgs/development/ocaml-modules/elina/default.nix index 2ddef0f40529..df7f140e5458 100644 --- a/pkgs/development/ocaml-modules/elina/default.nix +++ b/pkgs/development/ocaml-modules/elina/default.nix @@ -8,10 +8,12 @@ stdenv.mkDerivation rec { sha256 = "1nymykskq1yx87y4xl6hl9i4q6kv0qaq25rniqgl1bfn883p1ysc"; }; - buildInputs = [ perl ocaml findlib ]; + nativeBuildInputs = [ perl ocaml findlib ]; propagatedBuildInputs = [ apron camlidl gmp mpfr ]; + strictDeps = true; + prefixKey = "--prefix "; configureFlags = [ "--use-apron" diff --git a/pkgs/development/ocaml-modules/eliom/default.nix b/pkgs/development/ocaml-modules/eliom/default.nix index 69ac628d2014..e3af173edc91 100644 --- a/pkgs/development/ocaml-modules/eliom/default.nix +++ b/pkgs/development/ocaml-modules/eliom/default.nix @@ -6,6 +6,7 @@ , ocaml , lwt_react , opaline +, ocamlbuild , ppx_deriving , findlib , js_of_ocaml-ocamlbuild @@ -28,13 +29,16 @@ stdenv.mkDerivation rec { sha256 = "sha256-VNxzpVpXEGlixyjadbW0GjL83jcKV5TWd46UReNYO6w="; }; - buildInputs = [ + nativeBuildInputs = [ ocaml which findlib + opaline + ocamlbuild + ]; + buildInputs = [ js_of_ocaml-ocamlbuild js_of_ocaml-ppx_deriving_json - opaline ocamlnet ]; @@ -48,6 +52,8 @@ stdenv.mkDerivation rec { ppx_deriving ]; + strictDeps = true; + installPhase = "opaline -prefix $out -libdir $OCAMLFIND_DESTDIR"; setupHook = [ ./setup-hook.sh ]; diff --git a/pkgs/development/ocaml-modules/enumerate/default.nix b/pkgs/development/ocaml-modules/enumerate/default.nix index d7f467e8eb98..9bedc4215108 100644 --- a/pkgs/development/ocaml-modules/enumerate/default.nix +++ b/pkgs/development/ocaml-modules/enumerate/default.nix @@ -15,9 +15,11 @@ stdenv.mkDerivation rec { sha256 = "0b6mx5p01lcpimvak4wx6aj2119707wsfzd83rwgb91bhpgzh156"; }; - buildInputs = [ ocaml findlib ocamlbuild ]; + nativeBuildInputs = [ ocaml findlib ocamlbuild ]; propagatedBuildInputs = [ type_conv camlp4 ]; + strictDeps = true; + createFindlibDestdir = true; meta = { diff --git a/pkgs/development/ocaml-modules/erm_xml/default.nix b/pkgs/development/ocaml-modules/erm_xml/default.nix index fa072f8bd1c1..ebf9cdaad69a 100644 --- a/pkgs/development/ocaml-modules/erm_xml/default.nix +++ b/pkgs/development/ocaml-modules/erm_xml/default.nix @@ -15,7 +15,9 @@ stdenv.mkDerivation rec { sha256 = "sha256-OQdLTq9tJZc6XlcuPv2gxzYiQAUGd6AiBzfSi169XL0="; }; - buildInputs = [ ocaml findlib ocamlbuild ]; + nativeBuildInputs = [ ocaml findlib ocamlbuild ]; + + strictDeps = true; createFindlibDestdir = true; diff --git a/pkgs/development/ocaml-modules/erm_xmpp/default.nix b/pkgs/development/ocaml-modules/erm_xmpp/default.nix index 3447d590ea23..1507154d2f64 100644 --- a/pkgs/development/ocaml-modules/erm_xmpp/default.nix +++ b/pkgs/development/ocaml-modules/erm_xmpp/default.nix @@ -13,9 +13,12 @@ stdenv.mkDerivation rec { sha256 = "0spzyd9kbyizzwl8y3mq8z19zlkzxnkh2fppry4lyc7vaw7bqrwq"; }; - buildInputs = [ ocaml findlib ocamlbuild camlp4 ]; + nativeBuildInputs = [ ocaml findlib ocamlbuild camlp4 ]; + buildInputs = [ camlp4 ]; propagatedBuildInputs = [ erm_xml mirage-crypto mirage-crypto-rng base64 ]; + strictDeps = true; + configurePhase = '' runHook preConfigure ocaml setup.ml -configure --prefix $out diff --git a/pkgs/development/ocaml-modules/expat/0.9.nix b/pkgs/development/ocaml-modules/expat/0.9.nix index 219b8164e7c9..326ffc60b1ad 100644 --- a/pkgs/development/ocaml-modules/expat/0.9.nix +++ b/pkgs/development/ocaml-modules/expat/0.9.nix @@ -18,7 +18,10 @@ stdenv.mkDerivation rec { sha256 = "16n2j3y0jc9xgqyshw9plrwqnjiz30vnpbhahmgxlidbycw8rgjz"; }; - buildInputs = [ocaml findlib ounit expat]; + nativeBuildInputs = [ocaml findlib ]; + buildInputs = [ ounit expat]; + + strictDeps = true; createFindlibDestdir = true; diff --git a/pkgs/development/ocaml-modules/expat/default.nix b/pkgs/development/ocaml-modules/expat/default.nix index e951acaa71a5..6fb7927073d4 100644 --- a/pkgs/development/ocaml-modules/expat/default.nix +++ b/pkgs/development/ocaml-modules/expat/default.nix @@ -15,7 +15,10 @@ stdenv.mkDerivation rec { substituteInPlace Makefile --replace "gcc" "\$(CC)" ''; - buildInputs = [ ocaml findlib expat ounit ]; + nativeBuildInputs = [ ocaml findlib ]; + buildInputs = [ expat ounit ]; + + strictDeps = true; doCheck = !lib.versionAtLeast ocaml.version "4.06"; checkTarget = "testall"; diff --git a/pkgs/development/ocaml-modules/extlib/default.nix b/pkgs/development/ocaml-modules/extlib/default.nix index d1860788838a..7f50548f4b87 100644 --- a/pkgs/development/ocaml-modules/extlib/default.nix +++ b/pkgs/development/ocaml-modules/extlib/default.nix @@ -12,7 +12,9 @@ stdenv.mkDerivation rec { sha256 = "0npq4hq3zym8nmlyji7l5cqk6drx2rkcx73d60rxqh5g8dla8p4k"; }; - buildInputs = [ ocaml findlib cppo ]; + nativeBuildInputs = [ ocaml findlib cppo ]; + + strictDeps = true; createFindlibDestdir = true; diff --git a/pkgs/development/ocaml-modules/farfadet/default.nix b/pkgs/development/ocaml-modules/farfadet/default.nix index 79b742da575d..1ac5595a015b 100644 --- a/pkgs/development/ocaml-modules/farfadet/default.nix +++ b/pkgs/development/ocaml-modules/farfadet/default.nix @@ -15,10 +15,13 @@ stdenv.mkDerivation rec { sha256 = "0nlafnp0pwx0n4aszpsk6nvcvqi9im306p4jhx70si7k3xprlr2j"; }; - buildInputs = [ ocaml findlib ocamlbuild topkg ]; + nativeBuildInputs = [ ocaml findlib ocamlbuild topkg ]; + buildInputs = [ topkg ]; propagatedBuildInputs = [ faraday ]; + strictDeps = true; + inherit (topkg) buildPhase installPhase; meta = { diff --git a/pkgs/development/ocaml-modules/fmt/default.nix b/pkgs/development/ocaml-modules/fmt/default.nix index a66976b4a2b5..edf8d08eaaba 100644 --- a/pkgs/development/ocaml-modules/fmt/default.nix +++ b/pkgs/development/ocaml-modules/fmt/default.nix @@ -13,9 +13,11 @@ stdenv.mkDerivation rec { sha256 = "0gkkkj4x678vxdda4xaw2dd44qjacavsvn5nx8gydfwah6pjbkxk"; }; - nativeBuildInputs = [ ocaml findlib ocamlbuild ]; - buildInputs = [ findlib topkg cmdliner ]; - propagatedBuildInputs = [ seq stdlib-shims ]; + nativeBuildInputs = [ ocaml findlib ocamlbuild topkg ]; + buildInputs = [ topkg ]; + propagatedBuildInputs = [ cmdliner seq stdlib-shims ]; + + strictDeps = true; inherit (topkg) buildPhase installPhase; diff --git a/pkgs/development/ocaml-modules/fontconfig/default.nix b/pkgs/development/ocaml-modules/fontconfig/default.nix index f4afe80d532d..2eca9a4644b5 100644 --- a/pkgs/development/ocaml-modules/fontconfig/default.nix +++ b/pkgs/development/ocaml-modules/fontconfig/default.nix @@ -11,8 +11,11 @@ stdenv.mkDerivation { sha256 = "1fw6bzydmnyh2g4x35mcbg0hypnxqhynivk4nakcsx7prr8zr3yh"; }; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ ocaml fontconfig ]; + nativeBuildInputs = [ pkg-config ocaml ]; + buildInputs = [ fontconfig ]; + + strictDeps = true; + makeFlags = [ "OCAML_STDLIB_DIR=$(out)/lib/ocaml/${lib.getVersion ocaml}/site-lib/" "OCAML_HAVE_OCAMLOPT=yes" diff --git a/pkgs/development/ocaml-modules/fpath/default.nix b/pkgs/development/ocaml-modules/fpath/default.nix index 532210888bf3..53489f69cc3e 100644 --- a/pkgs/development/ocaml-modules/fpath/default.nix +++ b/pkgs/development/ocaml-modules/fpath/default.nix @@ -13,10 +13,13 @@ stdenv.mkDerivation rec { sha256 = "03z7mj0sqdz465rc4drj1gr88l9q3nfs374yssvdjdyhjbqqzc0j"; }; - buildInputs = [ ocaml findlib ocamlbuild topkg ]; + nativeBuildInputs = [ ocaml findlib ocamlbuild topkg ]; + buildInputs = [ topkg ]; propagatedBuildInputs = [ astring ]; + strictDeps = true; + inherit (topkg) buildPhase installPhase; meta = { diff --git a/pkgs/development/ocaml-modules/frontc/default.nix b/pkgs/development/ocaml-modules/frontc/default.nix index bc74a5b58a08..c05422497ee7 100644 --- a/pkgs/development/ocaml-modules/frontc/default.nix +++ b/pkgs/development/ocaml-modules/frontc/default.nix @@ -18,7 +18,9 @@ stdenv.mkDerivation rec { sha256 = "1dq5nks0c9gsbr1m8k39m1bniawr5hqcy1r8x5px7naa95ch06ak"; }; - buildInputs = [ ocaml findlib ]; + nativeBuildInputs = [ ocaml findlib ]; + + strictDeps = true; meta = with lib; { inherit (src.meta) homepage; diff --git a/pkgs/development/ocaml-modules/functory/default.nix b/pkgs/development/ocaml-modules/functory/default.nix index 959963c4752a..a05472366a21 100644 --- a/pkgs/development/ocaml-modules/functory/default.nix +++ b/pkgs/development/ocaml-modules/functory/default.nix @@ -21,7 +21,9 @@ stdenv.mkDerivation { inherit (param) sha256; }; - buildInputs = [ ocaml findlib ]; + nativeBuildInputs = [ ocaml findlib ]; + + strictDeps = true; installTargets = [ "ocamlfind-install" ]; diff --git a/pkgs/development/ocaml-modules/getopt/default.nix b/pkgs/development/ocaml-modules/getopt/default.nix index 3400774d4c07..e3bf2fb5d641 100644 --- a/pkgs/development/ocaml-modules/getopt/default.nix +++ b/pkgs/development/ocaml-modules/getopt/default.nix @@ -9,12 +9,14 @@ stdenv.mkDerivation rec { sha256 = "0bng2mmdixpmj23xn8krlnaq66k22iclwz46r8zjrsrq3wcn1xgn"; }; - buildInputs = [ + nativeBuildInputs = [ ocaml findlib ocamlbuild ]; + strictDeps = true; + doCheck = true; createFindlibDestdir = true; diff --git a/pkgs/development/ocaml-modules/gg/default.nix b/pkgs/development/ocaml-modules/gg/default.nix index fb1920776900..ec8bbb31617d 100644 --- a/pkgs/development/ocaml-modules/gg/default.nix +++ b/pkgs/development/ocaml-modules/gg/default.nix @@ -18,7 +18,8 @@ stdenv.mkDerivation { sha256 = "sha256:0j7bpj8k17csnz6v6frkz9aycywsb7xmznnb31g8rbfk3626f3ci"; }; - buildInputs = [ ocaml findlib ocamlbuild topkg ]; + nativeBuildInputs = [ ocaml findlib ocamlbuild topkg ]; + buildInputs = [ topkg ]; inherit (topkg) buildPhase installPhase; diff --git a/pkgs/development/ocaml-modules/gmetadom/default.nix b/pkgs/development/ocaml-modules/gmetadom/default.nix index 29df5ce8f4e4..50be2adcb384 100644 --- a/pkgs/development/ocaml-modules/gmetadom/default.nix +++ b/pkgs/development/ocaml-modules/gmetadom/default.nix @@ -21,11 +21,12 @@ stdenv.mkDerivation rec { configureFlags="--with-ocaml-lib-prefix=$out/lib/ocaml/${ocaml.version}/site-lib" ''; - - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ocaml findlib gdome2 libxslt]; + nativeBuildInputs = [ pkg-config ocaml findlib ]; + buildInputs = [ gdome2 libxslt]; propagatedBuildInputs = [gdome2]; + strictDeps = true; + meta = { homepage = "http://gmetadom.sourceforge.net/"; description = "A collection of librares, each library providing a DOM implementation"; diff --git a/pkgs/development/ocaml-modules/hacl-star/default.nix b/pkgs/development/ocaml-modules/hacl-star/default.nix index 8a29439c7a59..004aa5c9a449 100644 --- a/pkgs/development/ocaml-modules/hacl-star/default.nix +++ b/pkgs/development/ocaml-modules/hacl-star/default.nix @@ -12,7 +12,9 @@ buildDunePackage { zarith ]; - buildInputs = [ + nativeBuildInputs = [ cppo ]; + + strictDeps = true; } diff --git a/pkgs/development/ocaml-modules/hacl-star/raw.nix b/pkgs/development/ocaml-modules/hacl-star/raw.nix index c7852338253c..58fa1eb00212 100644 --- a/pkgs/development/ocaml-modules/hacl-star/raw.nix +++ b/pkgs/development/ocaml-modules/hacl-star/raw.nix @@ -28,7 +28,7 @@ stdenv.mkDerivation rec { dontAddStaticConfigureFlags = true; configurePlatforms = []; - buildInputs = [ + nativeBuildInputs = [ which ocaml findlib @@ -42,6 +42,8 @@ stdenv.mkDerivation rec { cppo ]; + strictDeps = true; + doCheck = true; meta = { diff --git a/pkgs/development/ocaml-modules/herelib/default.nix b/pkgs/development/ocaml-modules/herelib/default.nix index 14c775d25fcd..f9267ede60ae 100644 --- a/pkgs/development/ocaml-modules/herelib/default.nix +++ b/pkgs/development/ocaml-modules/herelib/default.nix @@ -1,4 +1,4 @@ -{ lib, buildOcaml, fetchFromGitHub }: +{ lib, buildOcaml, fetchFromGitHub, camlp4 }: buildOcaml rec { version = "112.35.00"; @@ -13,6 +13,10 @@ buildOcaml rec { sha256 = "sha256-EuMhHu2na3lcpsJ1wMVOgBr6VKndlonq8jgAW01eelI="; }; + strictDeps = true; + + buildInputs = [ camlp4 ]; + meta = with lib; { homepage = "https://github.com/janestreet/herelib"; description = "Syntax extension for inserting the current location"; diff --git a/pkgs/development/ocaml-modules/hidapi/default.nix b/pkgs/development/ocaml-modules/hidapi/default.nix index 2caa25654e39..44b1d5f150a8 100644 --- a/pkgs/development/ocaml-modules/hidapi/default.nix +++ b/pkgs/development/ocaml-modules/hidapi/default.nix @@ -13,9 +13,12 @@ buildDunePackage rec { sha256 = "1j7rd7ajrzla76r3sxljx6fb18f4f4s3jd7vhv59l2ilxyxycai2"; }; + strictDeps = true; + minimumOCamlVersion = "4.03"; - buildInputs = [ pkgs.hidapi pkg-config dune-configurator ]; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ pkgs.hidapi dune-configurator ]; propagatedBuildInputs = [ bigstring ]; doCheck = true; diff --git a/pkgs/development/ocaml-modules/hmap/default.nix b/pkgs/development/ocaml-modules/hmap/default.nix index 67622a8ef6a0..d0ae47031b23 100644 --- a/pkgs/development/ocaml-modules/hmap/default.nix +++ b/pkgs/development/ocaml-modules/hmap/default.nix @@ -22,7 +22,10 @@ stdenv.mkDerivation rec { sha256 = "10xyjy4ab87z7jnghy0wnla9wrmazgyhdwhr4hdmxxdn28dxn03a"; }; - buildInputs = [ ocaml ocamlbuild findlib topkg ]; + nativeBuildInputs = [ ocaml ocamlbuild findlib topkg ]; + buildInputs = [ topkg ]; + + strictDeps = true; inherit (topkg) installPhase; diff --git a/pkgs/development/ocaml-modules/hxd/default.nix b/pkgs/development/ocaml-modules/hxd/default.nix index 0775e21b1f8d..0b05a83dd7ef 100644 --- a/pkgs/development/ocaml-modules/hxd/default.nix +++ b/pkgs/development/ocaml-modules/hxd/default.nix @@ -21,14 +21,11 @@ buildDunePackage rec { sed -i 's|yes ".\+"|& 2> /dev/null|' test/*.t ''; - nativeBuildInputs = [ - dune-configurator - ]; - propagatedBuildInputs = lib.optional withLwt lwt; buildInputs = [ cmdliner + dune-configurator ]; doCheck = true; diff --git a/pkgs/development/ocaml-modules/inifiles/default.nix b/pkgs/development/ocaml-modules/inifiles/default.nix index 90308ee7d6d9..cbeae7bca839 100644 --- a/pkgs/development/ocaml-modules/inifiles/default.nix +++ b/pkgs/development/ocaml-modules/inifiles/default.nix @@ -16,9 +16,11 @@ stdenv.mkDerivation rec { }) ]; - buildInputs = [ ocaml findlib ]; + nativeBuildInputs = [ ocaml findlib ]; propagatedBuildInputs = [ ocaml_pcre ]; + strictDeps = true; + buildFlags = [ "all" "opt" ]; createFindlibDestdir = true; diff --git a/pkgs/development/ocaml-modules/inotify/default.nix b/pkgs/development/ocaml-modules/inotify/default.nix index e8289d929637..d1c6dc376164 100644 --- a/pkgs/development/ocaml-modules/inotify/default.nix +++ b/pkgs/development/ocaml-modules/inotify/default.nix @@ -19,9 +19,13 @@ stdenv.mkDerivation rec { sha256 = "04lfxrrsmk2mc704kaln8jqx93jc4bkxhijmfy2d4cmk1cim7r6k"; }) ]; - buildInputs = [ ocaml findlib ocamlbuild ocaml_lwt ]; + nativeBuildInputs = [ ocaml findlib ocamlbuild ]; + buildInputs = [ ocaml_lwt ]; checkInputs = [ ounit fileutils ]; + # Otherwise checkInputs can't be found + strictDeps = false; + configureFlags = [ "--enable-lwt" (lib.optionalString doCheck "--enable-tests") ]; diff --git a/pkgs/development/ocaml-modules/iso8601/default.nix b/pkgs/development/ocaml-modules/iso8601/default.nix index add18281008c..ff9ce94bbbd4 100644 --- a/pkgs/development/ocaml-modules/iso8601/default.nix +++ b/pkgs/development/ocaml-modules/iso8601/default.nix @@ -11,7 +11,10 @@ stdenv.mkDerivation rec { sha256 = "sha256-sXnYAJcU88797orzzfbA2XG91Lk8mDV677J1Am5o7Xo="; }; - buildInputs = [ ocaml findlib ocamlbuild ]; + nativeBuildInputs = [ ocaml findlib ocamlbuild ]; + + strictDeps = true; + createFindlibDestdir = true; meta = { diff --git a/pkgs/development/ocaml-modules/janestreet/0.12.nix b/pkgs/development/ocaml-modules/janestreet/0.12.nix index 10d8886d9947..ec2f793caf91 100644 --- a/pkgs/development/ocaml-modules/janestreet/0.12.nix +++ b/pkgs/development/ocaml-modules/janestreet/0.12.nix @@ -24,6 +24,7 @@ with self; hash = "0gl89zpgsf3n30nb6v5cns27g2bfg4rf3s2427gqvwbkr5gcf7ri"; meta.description = "Full standard library replacement for OCaml"; propagatedBuildInputs = [ sexplib0 ]; + buildInputs = [ dune-configurator ]; }; stdio = janePackage { diff --git a/pkgs/development/ocaml-modules/janestreet/0.14.nix b/pkgs/development/ocaml-modules/janestreet/0.14.nix index d22a87a92f3f..7d1c85447097 100644 --- a/pkgs/development/ocaml-modules/janestreet/0.14.nix +++ b/pkgs/development/ocaml-modules/janestreet/0.14.nix @@ -203,6 +203,8 @@ with self; meta.description = "Trivial metaprogramming tool"; propagatedBuildInputs = [ re ]; checkInputs = [ ppx_jane ]; + # This currently fails with dune + strictDeps = false; }; core = janePackage { @@ -761,6 +763,8 @@ with self; buildInputs = [ jst-config ]; propagatedBuildInputs = [ textutils ]; checkInputs = [ ounit ]; + # This currently fails with dune + strictDeps = false; }; shexp = janePackage { diff --git a/pkgs/development/ocaml-modules/janestreet/janePackage.nix b/pkgs/development/ocaml-modules/janestreet/janePackage.nix index 9a67db4966ce..63c4a900fced 100644 --- a/pkgs/development/ocaml-modules/janestreet/janePackage.nix +++ b/pkgs/development/ocaml-modules/janestreet/janePackage.nix @@ -1,9 +1,9 @@ { lib, fetchFromGitHub, buildDunePackage, defaultVersion ? "0.11.0" }: -{ pname, version ? defaultVersion, hash, ...}@args: +{ pname, version ? defaultVersion, hash, buildInputs ? [], ...}@args: buildDunePackage (args // { - inherit version; + inherit version buildInputs; minimumOCamlVersion = "4.04"; @@ -14,6 +14,8 @@ buildDunePackage (args // { sha256 = hash; }; + strictDeps = true; + meta = { license = lib.licenses.asl20; homepage = "https://github.com/janestreet/${pname}"; diff --git a/pkgs/development/ocaml-modules/janestreet/janePackage_0_12.nix b/pkgs/development/ocaml-modules/janestreet/janePackage_0_12.nix index 6c7d746e9481..ebde7b240ef7 100644 --- a/pkgs/development/ocaml-modules/janestreet/janePackage_0_12.nix +++ b/pkgs/development/ocaml-modules/janestreet/janePackage_0_12.nix @@ -1,12 +1,14 @@ { lib, fetchFromGitHub, buildDunePackage, defaultVersion ? "0.12.0" }: -{ pname, version ? defaultVersion, hash, ...}@args: +{ pname, version ? defaultVersion, hash, buildInputs ? [], ...}@args: buildDunePackage (args // { - inherit version; + inherit version buildInputs; minimumOCamlVersion = "4.07"; + useDune2 = true; + src = fetchFromGitHub { owner = "janestreet"; repo = pname; @@ -14,6 +16,8 @@ buildDunePackage (args // { sha256 = hash; }; + strictDeps = true; + meta = { license = lib.licenses.mit; homepage = "https://github.com/janestreet/${pname}"; diff --git a/pkgs/development/ocaml-modules/janestreet/janePackage_0_14.nix b/pkgs/development/ocaml-modules/janestreet/janePackage_0_14.nix index 1ed2e6bc4f20..d124baea8972 100644 --- a/pkgs/development/ocaml-modules/janestreet/janePackage_0_14.nix +++ b/pkgs/development/ocaml-modules/janestreet/janePackage_0_14.nix @@ -5,11 +5,13 @@ , hash , minimumOCamlVersion ? "4.08" , doCheck ? true +, buildInputs ? [] +, strictDeps ? true , ...}@args: buildDunePackage (args // { useDune2 = true; - inherit version; + inherit version buildInputs strictDeps; inherit minimumOCamlVersion; diff --git a/pkgs/development/ocaml-modules/javalib/default.nix b/pkgs/development/ocaml-modules/javalib/default.nix index 78b61de8d9c1..ccd3fa19a92c 100644 --- a/pkgs/development/ocaml-modules/javalib/default.nix +++ b/pkgs/development/ocaml-modules/javalib/default.nix @@ -23,7 +23,9 @@ stdenv.mkDerivation rec { sha256 = "sha256-du1h+S+A7CetMXofsYxdGeSsobCgspDB9oUE9WNUbbo="; }; - buildInputs = [ which ocaml findlib ]; + nativeBuildInputs = [ which ocaml findlib ]; + + strictDeps = true; patches = [ ./configure.sh.patch ./Makefile.config.example.patch ]; diff --git a/pkgs/development/ocaml-modules/jsonm/default.nix b/pkgs/development/ocaml-modules/jsonm/default.nix index c228242fda9e..2b9c9918382b 100644 --- a/pkgs/development/ocaml-modules/jsonm/default.nix +++ b/pkgs/development/ocaml-modules/jsonm/default.nix @@ -9,10 +9,12 @@ stdenv.mkDerivation rec { sha256 = "1176dcmxb11fnw49b7yysvkjh0kpzx4s48lmdn5psq9vshp5c29w"; }; - buildInputs = [ findlib topkg ]; - nativeBuildInputs = [ ocaml findlib ocamlbuild ]; + nativeBuildInputs = [ ocaml findlib ocamlbuild topkg ]; + buildInputs = [ topkg ]; propagatedBuildInputs = [ uutf ]; + strictDeps = true; + inherit (topkg) buildPhase installPhase; meta = { diff --git a/pkgs/development/ocaml-modules/lablgl/default.nix b/pkgs/development/ocaml-modules/lablgl/default.nix index da4318aef4c1..85c27f93a091 100644 --- a/pkgs/development/ocaml-modules/lablgl/default.nix +++ b/pkgs/development/ocaml-modules/lablgl/default.nix @@ -15,7 +15,8 @@ stdenv.mkDerivation rec { sha256 = "sha256:141kc816iv59z96738i3vn9m9iw9g2zhi45hk4cchpwd99ar5l6k"; }; - buildInputs = [ ocaml findlib freeglut ]; + nativeBuildInputs = [ ocaml findlib ]; + buildInputs = [ freeglut ]; propagatedBuildInputs = [ libGLU libGL ]; patches = [ ./Makefile.config.patch ./META.patch ]; diff --git a/pkgs/development/ocaml-modules/lablgtk-extras/1.4.nix b/pkgs/development/ocaml-modules/lablgtk-extras/1.4.nix index f2fbc71b5a93..bcf82e1c3842 100644 --- a/pkgs/development/ocaml-modules/lablgtk-extras/1.4.nix +++ b/pkgs/development/ocaml-modules/lablgtk-extras/1.4.nix @@ -9,7 +9,7 @@ stdenv.mkDerivation rec { sha256 = "09fqxwdib7r9yxynknc9gv3jw2hnhj5cak7q5jngk6m8rzvmhfcc"; }; - buildInputs = [ ocaml findlib camlp4 ]; + nativeBuildInputs = [ ocaml findlib camlp4 ]; propagatedBuildInputs = [ config-file lablgtk xmlm ]; createFindlibDestdir = true; diff --git a/pkgs/development/ocaml-modules/lablgtk-extras/default.nix b/pkgs/development/ocaml-modules/lablgtk-extras/default.nix index d97f2f5bffd2..736e345dfb35 100644 --- a/pkgs/development/ocaml-modules/lablgtk-extras/default.nix +++ b/pkgs/development/ocaml-modules/lablgtk-extras/default.nix @@ -16,7 +16,7 @@ stdenv.mkDerivation rec { sha256 = "1bbdp5j18s582mmyd7qiaq1p08g2ag4gl7x65pmzahbhg719hjda"; }; - buildInputs = [ ocaml findlib camlp4 ]; + nativeBuildInputs = [ ocaml findlib camlp4 ]; propagatedBuildInputs = [ config-file lablgtk xmlm ]; createFindlibDestdir = true; diff --git a/pkgs/development/ocaml-modules/lablgtk/2.14.0.nix b/pkgs/development/ocaml-modules/lablgtk/2.14.0.nix index f64b6571970b..f37c3b5c6f9a 100644 --- a/pkgs/development/ocaml-modules/lablgtk/2.14.0.nix +++ b/pkgs/development/ocaml-modules/lablgtk/2.14.0.nix @@ -16,8 +16,8 @@ stdenv.mkDerivation (rec { sha256 = "1fnh0amm7lwgyjdhmlqgsp62gwlar1140425yc1j6inwmgnsp0a9"; }; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ ocaml findlib gtk2 libgnomecanvas gtksourceview camlp4 ]; + nativeBuildInputs = [ pkg-config ocaml findlib camlp4 ]; + buildInputs = [ gtk2 libgnomecanvas gtksourceview ]; configureFlags = [ "--with-libdir=$(out)/lib/ocaml/${ocaml.version}/site-lib" ]; buildFlags = [ "world" ]; diff --git a/pkgs/development/ocaml-modules/lablgtk/default.nix b/pkgs/development/ocaml-modules/lablgtk/default.nix index a442ae35aa52..36ade6979c3e 100644 --- a/pkgs/development/ocaml-modules/lablgtk/default.nix +++ b/pkgs/development/ocaml-modules/lablgtk/default.nix @@ -23,8 +23,8 @@ stdenv.mkDerivation { pname = "lablgtk"; inherit (param) version src; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ ocaml findlib gtk2 libgnomecanvas gtksourceview ]; + nativeBuildInputs = [ pkg-config ocaml findlib ]; + buildInputs = [ gtk2 libgnomecanvas gtksourceview ]; configureFlags = [ "--with-libdir=$(out)/lib/ocaml/${ocaml.version}/site-lib" ]; buildFlags = [ "world" ]; diff --git a/pkgs/development/ocaml-modules/labltk/default.nix b/pkgs/development/ocaml-modules/labltk/default.nix index 971668ce0e11..56e79ffc5904 100644 --- a/pkgs/development/ocaml-modules/labltk/default.nix +++ b/pkgs/development/ocaml-modules/labltk/default.nix @@ -51,7 +51,8 @@ stdenv.mkDerivation rec { inherit (param) version src; pname = "ocaml${ocaml.version}-labltk"; - buildInputs = [ ocaml findlib tcl tk makeWrapper ]; + nativeBuildInputs = [ ocaml findlib makeWrapper ]; + buildInputs = [ tcl tk ]; configureFlags = [ "--use-findlib" "--installbindir" "$(out)/bin" ]; dontAddPrefix = true; diff --git a/pkgs/development/ocaml-modules/llvm/default.nix b/pkgs/development/ocaml-modules/llvm/default.nix index 264d95f39f67..9ab3d906ab1e 100644 --- a/pkgs/development/ocaml-modules/llvm/default.nix +++ b/pkgs/development/ocaml-modules/llvm/default.nix @@ -8,10 +8,12 @@ stdenv.mkDerivation { inherit (libllvm) src; - nativeBuildInputs = [ cmake ]; - buildInputs = [ python2 ocaml findlib ctypes ]; + nativeBuildInputs = [ cmake python2 ocaml findlib ]; + buildInputs = [ ctypes ]; propagatedBuildInputs = [ libllvm ]; + strictDeps = true; + cmakeFlags = [ "-DBUILD_SHARED_LIBS=YES" # fixes bytecode builds "-DLLVM_OCAML_OUT_OF_TREE=TRUE" diff --git a/pkgs/development/ocaml-modules/logs/default.nix b/pkgs/development/ocaml-modules/logs/default.nix index 157e7c52fee1..4359f09ebd32 100644 --- a/pkgs/development/ocaml-modules/logs/default.nix +++ b/pkgs/development/ocaml-modules/logs/default.nix @@ -21,11 +21,13 @@ stdenv.mkDerivation rec { sha256 = "1jnmd675wmsmdwyb5mx5b0ac66g4c6gpv5s4mrx2j6pb0wla1x46"; }; - nativeBuildInputs = [ ocaml findlib ocamlbuild ]; - buildInputs = [ findlib topkg fmt cmdliner lwt ] + nativeBuildInputs = [ ocaml findlib ocamlbuild topkg ]; + buildInputs = [ fmt cmdliner lwt topkg ] ++ lib.optional jsooSupport js_of_ocaml; propagatedBuildInputs = [ result ]; + strictDeps = true; + buildPhase = "${topkg.run} build --with-js_of_ocaml ${lib.boolToString jsooSupport}"; inherit (topkg) installPhase; diff --git a/pkgs/development/ocaml-modules/lua-ml/default.nix b/pkgs/development/ocaml-modules/lua-ml/default.nix index 8a4f58ccbbd7..586fc395064f 100644 --- a/pkgs/development/ocaml-modules/lua-ml/default.nix +++ b/pkgs/development/ocaml-modules/lua-ml/default.nix @@ -16,8 +16,9 @@ stdenv.mkDerivation rec { sha256 = "04lv98nxmzanvyn4c0k6k0ax29f5xfdl8qzpf5hwadslq213a044"; }; - nativeBuildInputs = [ opaline ]; - buildInputs = [ ocaml findlib ocamlbuild ]; + nativeBuildInputs = [ opaline ocaml findlib ocamlbuild ]; + + strictDeps = true; buildFlags = [ "lib" ]; diff --git a/pkgs/development/ocaml-modules/lwt-exit/default.nix b/pkgs/development/ocaml-modules/lwt-exit/default.nix index 34aadc8761fb..a2a6f14524f9 100644 --- a/pkgs/development/ocaml-modules/lwt-exit/default.nix +++ b/pkgs/development/ocaml-modules/lwt-exit/default.nix @@ -24,7 +24,8 @@ buildDunePackage rec { ptime ]; - doCheck = true; + # for some reason this never exits + doCheck = false; meta = { description = "An opinionated clean-exit and signal-handling library for Lwt programs"; diff --git a/pkgs/development/ocaml-modules/lwt/default.nix b/pkgs/development/ocaml-modules/lwt/default.nix index 76e973a813e4..c9d5200d8768 100644 --- a/pkgs/development/ocaml-modules/lwt/default.nix +++ b/pkgs/development/ocaml-modules/lwt/default.nix @@ -19,9 +19,12 @@ buildDunePackage rec { sha256 = "sha256-XpoRKcdNo2j05Gxm5wmKSdwqimFDSWvmLyooPYTHAjM="; }; - nativeBuildInputs = [ pkg-config cppo dune-configurator ]; - buildInputs = optional (!versionAtLeast ocaml.version "4.08") ocaml-syntax-shims - ++ optional (!versionAtLeast ocaml.version "4.07") ncurses; + strictDeps = true; + + nativeBuildInputs = [ pkg-config cppo ]; + buildInputs = [ dune-configurator ] + ++ optional (!versionAtLeast ocaml.version "4.08") ocaml-syntax-shims + ++ optional (!versionAtLeast ocaml.version "4.07") ncurses; propagatedBuildInputs = [ libev mmap ocplib-endian seq result ]; meta = { diff --git a/pkgs/development/ocaml-modules/macaque/default.nix b/pkgs/development/ocaml-modules/macaque/default.nix index a91e898227d6..d47c0c4f11c5 100644 --- a/pkgs/development/ocaml-modules/macaque/default.nix +++ b/pkgs/development/ocaml-modules/macaque/default.nix @@ -11,8 +11,10 @@ stdenv.mkDerivation rec { sha256 = "sha256-W9ZFaINYYtIikKy/ZqdlKeFQSA7DQT9plc3+ZhlSIJI="; }; - buildInputs = [ ocaml findlib ocamlbuild camlp4 ]; - propagatedBuildInputs = [ pgocaml ]; + nativeBuildInputs = [ ocaml findlib ocamlbuild camlp4 ]; + propagatedBuildInputs = [ pgocaml camlp4 ]; + + strictDeps = true; createFindlibDestdir = true; diff --git a/pkgs/development/ocaml-modules/magick/default.nix b/pkgs/development/ocaml-modules/magick/default.nix index f9fec120a625..87c43fb68693 100644 --- a/pkgs/development/ocaml-modules/magick/default.nix +++ b/pkgs/development/ocaml-modules/magick/default.nix @@ -13,8 +13,10 @@ stdenv.mkDerivation rec { sha256 = "0gn9l2qdr8gby2x8c2mb59x1kipb2plr45rbq6ymcxyi0wmzfh3q"; }; - nativeBuildInputs = [ which pkg-config ]; - buildInputs = [ ocaml findlib imagemagick ]; + nativeBuildInputs = [ which pkg-config ocaml findlib ]; + buildInputs = [ imagemagick ]; + + strictDeps = true; createFindlibDestdir = true; diff --git a/pkgs/development/ocaml-modules/merlin-extend/default.nix b/pkgs/development/ocaml-modules/merlin-extend/default.nix index 6d4fcad09775..9cb35f34c1c2 100644 --- a/pkgs/development/ocaml-modules/merlin-extend/default.nix +++ b/pkgs/development/ocaml-modules/merlin-extend/default.nix @@ -11,7 +11,9 @@ buildDunePackage rec { sha256 = "0hvc4mz92x3rl2dxwrhvhzwl4gilnyvvwcqgr45vmdpyjyp3dwn2"; }; - buildInputs = [ cppo ]; + strictDeps = true; + + nativeBuildInputs = [ cppo ]; meta = with lib; { homepage = "https://github.com/let-def/merlin-extend"; diff --git a/pkgs/development/ocaml-modules/mirage-crypto/default.nix b/pkgs/development/ocaml-modules/mirage-crypto/default.nix index 102d3d2de07e..c942972597ad 100644 --- a/pkgs/development/ocaml-modules/mirage-crypto/default.nix +++ b/pkgs/development/ocaml-modules/mirage-crypto/default.nix @@ -19,13 +19,16 @@ buildDunePackage rec { doCheck = true; checkInputs = [ ounit ]; - nativeBuildInputs = [ dune-configurator pkg-config ]; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ dune-configurator ]; propagatedBuildInputs = [ cstruct eqaf ] ++ lib.optionals withFreestanding [ ocaml-freestanding ]; + strictDeps = !doCheck; + meta = with lib; { homepage = "https://github.com/mirage/mirage-crypto"; description = "Simple symmetric cryptography for the modern age"; diff --git a/pkgs/development/ocaml-modules/mirage-crypto/ec.nix b/pkgs/development/ocaml-modules/mirage-crypto/ec.nix index bcd7a1f04f25..5506243ec3a4 100644 --- a/pkgs/development/ocaml-modules/mirage-crypto/ec.nix +++ b/pkgs/development/ocaml-modules/mirage-crypto/ec.nix @@ -1,4 +1,5 @@ { lib +, ocaml , buildDunePackage , mirage-crypto , dune-configurator @@ -16,18 +17,18 @@ , ocaml-freestanding }: -buildDunePackage { +buildDunePackage rec { pname = "mirage-crypto-ec"; inherit (mirage-crypto) minimumOCamlVersion src version - useDune2 - ; + useDune2; - nativeBuildInputs = [ - pkg-config + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + ocaml dune-configurator ]; propagatedBuildInputs = [ @@ -38,6 +39,8 @@ buildDunePackage { ocaml-freestanding ]; + strictDeps = !doCheck; + doCheck = true; checkInputs = [ hex diff --git a/pkgs/development/ocaml-modules/mirage-crypto/pk.nix b/pkgs/development/ocaml-modules/mirage-crypto/pk.nix index 82400b5da7c2..9a2b9c98e458 100644 --- a/pkgs/development/ocaml-modules/mirage-crypto/pk.nix +++ b/pkgs/development/ocaml-modules/mirage-crypto/pk.nix @@ -1,7 +1,7 @@ { buildDunePackage, ounit, randomconv, mirage-crypto, mirage-crypto-rng , cstruct, sexplib0, zarith, eqaf, gmp }: -buildDunePackage { +buildDunePackage rec { pname = "mirage-crypto-pk"; inherit (mirage-crypto) version src useDune2 minimumOCamlVersion; @@ -10,6 +10,8 @@ buildDunePackage { propagatedBuildInputs = [ cstruct mirage-crypto mirage-crypto-rng zarith eqaf sexplib0 ]; + strictDeps = !doCheck; + doCheck = true; checkInputs = [ ounit randomconv ]; diff --git a/pkgs/development/ocaml-modules/mirage-crypto/rng-async.nix b/pkgs/development/ocaml-modules/mirage-crypto/rng-async.nix index e8c8dd06eab5..91da7aa56816 100644 --- a/pkgs/development/ocaml-modules/mirage-crypto/rng-async.nix +++ b/pkgs/development/ocaml-modules/mirage-crypto/rng-async.nix @@ -8,7 +8,7 @@ buildDunePackage { inherit (mirage-crypto) useDune2 version minimumOCamlVersion src; - nativeBuildInputs = [ + buildInputs = [ dune-configurator ]; @@ -19,6 +19,8 @@ buildDunePackage { mirage-crypto-rng ]; + strictDeps = true; + meta = mirage-crypto.meta // { description = "Feed the entropy source in an Async-friendly way"; }; diff --git a/pkgs/development/ocaml-modules/mirage-crypto/rng-mirage.nix b/pkgs/development/ocaml-modules/mirage-crypto/rng-mirage.nix index 5152d3c8ecde..8d67ade9b465 100644 --- a/pkgs/development/ocaml-modules/mirage-crypto/rng-mirage.nix +++ b/pkgs/development/ocaml-modules/mirage-crypto/rng-mirage.nix @@ -3,7 +3,7 @@ , logs, lwt }: -buildDunePackage { +buildDunePackage rec { pname = "mirage-crypto-rng-mirage"; inherit (mirage-crypto-rng) version src useDune2 minimumOCamlVersion; @@ -14,6 +14,8 @@ buildDunePackage { propagatedBuildInputs = [ duration cstruct mirage-crypto-rng mirage-runtime mirage-time mirage-clock logs lwt ]; + strictDeps = !doCheck; + meta = mirage-crypto-rng.meta // { description = "Entropy collection for a cryptographically secure PRNG"; }; diff --git a/pkgs/development/ocaml-modules/mirage-crypto/rng.nix b/pkgs/development/ocaml-modules/mirage-crypto/rng.nix index b4da06816351..2281f10580cd 100644 --- a/pkgs/development/ocaml-modules/mirage-crypto/rng.nix +++ b/pkgs/development/ocaml-modules/mirage-crypto/rng.nix @@ -1,7 +1,7 @@ { buildDunePackage, mirage-crypto, ounit, randomconv, dune-configurator , cstruct, duration, logs, mtime, ocaml_lwt }: -buildDunePackage { +buildDunePackage rec { pname = "mirage-crypto-rng"; inherit (mirage-crypto) version src useDune2 minimumOCamlVersion; @@ -9,9 +9,11 @@ buildDunePackage { doCheck = true; checkInputs = [ ounit randomconv ]; - nativeBuildInputs = [ dune-configurator ]; + buildInputs = [ dune-configurator ]; propagatedBuildInputs = [ cstruct mirage-crypto duration logs mtime ocaml_lwt ]; + strictDeps = !doCheck; + meta = mirage-crypto.meta // { description = "A cryptographically secure PRNG"; }; diff --git a/pkgs/development/ocaml-modules/mlgmp/default.nix b/pkgs/development/ocaml-modules/mlgmp/default.nix index ffd78150689a..a396549d76f4 100644 --- a/pkgs/development/ocaml-modules/mlgmp/default.nix +++ b/pkgs/development/ocaml-modules/mlgmp/default.nix @@ -21,7 +21,10 @@ stdenv.mkDerivation rec { ]; preConfigure = "make clean"; - buildInputs = [ocaml findlib gmp mpfr ncurses]; + nativeBuildInputs = [ocaml findlib ]; + buildInputs = [ gmp mpfr ncurses]; + + strictDeps = true; createFindlibDestdir = true; diff --git a/pkgs/development/ocaml-modules/mlgmpidl/default.nix b/pkgs/development/ocaml-modules/mlgmpidl/default.nix index 4e27c8ff3bb7..d12329b811e6 100644 --- a/pkgs/development/ocaml-modules/mlgmpidl/default.nix +++ b/pkgs/development/ocaml-modules/mlgmpidl/default.nix @@ -10,7 +10,10 @@ stdenv.mkDerivation rec { sha256 = "17xqiclaqs4hmnb92p9z6z9a1xfr31vcn8nlnj8ykk57by31vfza"; }; - buildInputs = [ perl gmp mpfr ocaml findlib camlidl ]; + nativeBuildInputs = [ perl ocaml findlib mpfr camlidl ]; + buildInputs = [ gmp mpfr ]; + + strictDeps = true; prefixKey = "-prefix "; configureFlags = [ @@ -20,7 +23,7 @@ stdenv.mkDerivation rec { postConfigure = '' sed -i Makefile \ - -e 's|^ /bin/rm | rm |' + -e 's|/bin/rm|rm|' mkdir -p $out/lib/ocaml/${ocaml.version}/site-lib/stublibs ''; diff --git a/pkgs/development/ocaml-modules/mtime/default.nix b/pkgs/development/ocaml-modules/mtime/default.nix index 3e4438f6da58..ace29633964b 100644 --- a/pkgs/development/ocaml-modules/mtime/default.nix +++ b/pkgs/development/ocaml-modules/mtime/default.nix @@ -24,9 +24,10 @@ stdenv.mkDerivation { inherit (param) sha256; }; - nativeBuildInputs = [ ocaml findlib ocamlbuild ]; - buildInputs = [ findlib topkg ] - ++ optional jsooSupport js_of_ocaml; + nativeBuildInputs = [ ocaml findlib ocamlbuild topkg ]; + buildInputs = [ topkg ] ++ optional jsooSupport js_of_ocaml; + + strictDeps = true; buildPhase = "${topkg.buildPhase} --with-js_of_ocaml ${boolToString jsooSupport}"; diff --git a/pkgs/development/ocaml-modules/mysql/default.nix b/pkgs/development/ocaml-modules/mysql/default.nix index 6ccdfa9cf81c..c980984a26c8 100644 --- a/pkgs/development/ocaml-modules/mysql/default.nix +++ b/pkgs/development/ocaml-modules/mysql/default.nix @@ -22,12 +22,14 @@ stdenv.mkDerivation rec { "--libdir=$out/lib/ocaml/${ocaml.version}/site-lib/mysql" ]; - buildInputs = [ ocaml findlib ]; + nativeBuildInputs = [ ocaml findlib ]; createFindlibDestdir = true; propagatedBuildInputs = [ libmysqlclient ]; + strictDeps = true; + patches = [ (fetchpatch { url = "https://github.com/ygrek/ocaml-mysql/compare/v1.2.1...d6d1b3b262ae2cf493ef56f1dd7afcf663a70a26.patch"; diff --git a/pkgs/development/ocaml-modules/nocrypto/default.nix b/pkgs/development/ocaml-modules/nocrypto/default.nix index fdd24094c17b..d179c8c1c901 100644 --- a/pkgs/development/ocaml-modules/nocrypto/default.nix +++ b/pkgs/development/ocaml-modules/nocrypto/default.nix @@ -56,9 +56,11 @@ stdenv.mkDerivation rec { ]; nativeBuildInputs = [ ocaml findlib ocamlbuild cc-wrapper ]; - buildInputs = [ ocamlbuild findlib topkg cpuid ocb-stubblr ]; + buildInputs = [ topkg cpuid ocb-stubblr ocamlbuild ]; propagatedBuildInputs = [ cstruct ppx_deriving ppx_sexp_conv sexplib zarith ] ++ optional withLwt cstruct-lwt; + strictDeps = true; + buildPhase = "${topkg.buildPhase} --accelerate false --with-lwt ${boolToString withLwt}"; inherit (topkg) installPhase; diff --git a/pkgs/development/ocaml-modules/notty/default.nix b/pkgs/development/ocaml-modules/notty/default.nix index 94342bb31282..1598b2ee5cd3 100644 --- a/pkgs/development/ocaml-modules/notty/default.nix +++ b/pkgs/development/ocaml-modules/notty/default.nix @@ -19,10 +19,13 @@ stdenv.mkDerivation rec { sha256 = "1y3hx8zjri3x50nyiqal5gak1sw54gw3xssrqbj7srinvkdmrz1q"; }; - buildInputs = [ ocaml findlib ocamlbuild topkg ocb-stubblr ]; + nativeBuildInputs = [ ocaml findlib ocamlbuild ]; + buildInputs = [ ocb-stubblr topkg ocamlbuild ]; propagatedBuildInputs = [ result uucp uuseg uutf ] ++ optional withLwt lwt; + strictDeps = true; + buildPhase = topkg.buildPhase + " --with-lwt ${boolToString withLwt}"; diff --git a/pkgs/development/ocaml-modules/num/default.nix b/pkgs/development/ocaml-modules/num/default.nix index b1293a2ab553..1f978a90df45 100644 --- a/pkgs/development/ocaml-modules/num/default.nix +++ b/pkgs/development/ocaml-modules/num/default.nix @@ -17,11 +17,11 @@ stdenv.mkDerivation rec { ] ++ lib.optional withStatic ./enable-static.patch; nativeBuildInputs = [ ocaml findlib ]; - buildInputs = [ ocaml findlib ]; + + strictDeps = true; createFindlibDestdir = true; - meta = { description = "Legacy Num library for arbitrary-precision integer and rational arithmetic"; license = lib.licenses.lgpl21; diff --git a/pkgs/development/ocaml-modules/ocaml-cairo/default.nix b/pkgs/development/ocaml-modules/ocaml-cairo/default.nix index 7d2960fc5a66..6748619d4928 100644 --- a/pkgs/development/ocaml-modules/ocaml-cairo/default.nix +++ b/pkgs/development/ocaml-modules/ocaml-cairo/default.nix @@ -19,9 +19,8 @@ stdenv.mkDerivation rec { patches = [ ./META.patch ]; - nativeBuildInputs = [ pkg-config unzip ]; - buildInputs = [ ocaml automake gnum4 autoconf - findlib freetype lablgtk cairo gdk-pixbuf gtk2 pango ]; + nativeBuildInputs = [ pkg-config unzip ocaml automake gnum4 autoconf findlib ]; + buildInputs = [ freetype lablgtk cairo gdk-pixbuf gtk2 pango ]; createFindlibDestdir = true; diff --git a/pkgs/development/ocaml-modules/ocaml-libvirt/default.nix b/pkgs/development/ocaml-modules/ocaml-libvirt/default.nix index 581890178eae..b4410981afbd 100644 --- a/pkgs/development/ocaml-modules/ocaml-libvirt/default.nix +++ b/pkgs/development/ocaml-modules/ocaml-libvirt/default.nix @@ -13,9 +13,9 @@ stdenv.mkDerivation rec { propagatedBuildInputs = [ libvirt ]; - nativeBuildInputs = [ autoreconfHook pkg-config findlib perl ]; + nativeBuildInputs = [ autoreconfHook pkg-config findlib perl ocaml ]; - buildInputs = [ ocaml ]; + strictDeps = true; buildFlags = [ "all" "opt" "CPPFLAGS=-Wno-error" ]; installTargets = "install-opt"; diff --git a/pkgs/development/ocaml-modules/ocaml-r/default.nix b/pkgs/development/ocaml-modules/ocaml-r/default.nix index d76a98fc05c9..fcee63de3b5d 100644 --- a/pkgs/development/ocaml-modules/ocaml-r/default.nix +++ b/pkgs/development/ocaml-modules/ocaml-r/default.nix @@ -27,7 +27,11 @@ buildDunePackage rec { ' libRmath"' '"' ''; - buildInputs = [ pkg-config R dune-configurator stdio ]; + # This currently fails with dune + strictDeps = false; + + nativeBuildInputs = [ pkg-config R ]; + buildInputs = [ dune-configurator stdio R ]; doCheck = true; checkInputs = [ alcotest ]; diff --git a/pkgs/development/ocaml-modules/ocamlfuse/default.nix b/pkgs/development/ocaml-modules/ocamlfuse/default.nix index c2ca6a2cc8aa..4dcaca427886 100644 --- a/pkgs/development/ocaml-modules/ocamlfuse/default.nix +++ b/pkgs/development/ocaml-modules/ocamlfuse/default.nix @@ -1,4 +1,4 @@ -{ lib, buildDunePackage, fetchFromGitHub, camlidl, fuse }: +{ lib, buildDunePackage, fetchFromGitHub, camlidl, fuse, dune-configurator }: buildDunePackage { pname = "ocamlfuse"; @@ -11,6 +11,11 @@ buildDunePackage { sha256 = "1v9g0wh7rnjkrjrnw50145g6ry38plyjs8fq8w0nlzwizhf3qhff"; }; + # This currently fails with dune + strictDeps = false; + + nativeBuildInputs = [ camlidl ]; + buildInputs = [ dune-configurator ]; propagatedBuildInputs = [ camlidl fuse ]; meta = { diff --git a/pkgs/development/ocaml-modules/ocamlnat/default.nix b/pkgs/development/ocaml-modules/ocamlnat/default.nix index f8d20b7124bc..66bd00707add 100644 --- a/pkgs/development/ocaml-modules/ocamlnat/default.nix +++ b/pkgs/development/ocaml-modules/ocamlnat/default.nix @@ -12,7 +12,10 @@ stdenv.mkDerivation rec { sha256 = "0dyvy0j6f47laxhnadvm71z1py9hz9zd49hamf6bij99cggb2ij1"; }; - buildInputs = [ocaml findlib ounit]; + nativeBuildInputs = [ocaml findlib ]; + buildInputs = [ ounit]; + + strictDeps = true; prefixKey = "--prefix "; diff --git a/pkgs/development/ocaml-modules/ocamlnet/default.nix b/pkgs/development/ocaml-modules/ocamlnet/default.nix index d6e8f83968aa..d435d7a04842 100644 --- a/pkgs/development/ocaml-modules/ocamlnet/default.nix +++ b/pkgs/development/ocaml-modules/ocamlnet/default.nix @@ -15,8 +15,10 @@ stdenv.mkDerivation rec { sha256 = "1vlwxjxr946gdl61a1d7yk859cijq45f60dhn54ik3w4g6cx33pr"; }; - nativeBuildInputs = [ pkg-config which ]; - buildInputs = [ ncurses ocaml findlib ocaml_pcre camlzip gnutls nettle ]; + nativeBuildInputs = [ pkg-config which ocaml findlib ]; + buildInputs = [ ncurses ocaml_pcre camlzip gnutls nettle ]; + + strictDeps = true; createFindlibDestdir = true; diff --git a/pkgs/development/ocaml-modules/ocamlsdl/default.nix b/pkgs/development/ocaml-modules/ocamlsdl/default.nix index 7c782b5268fd..3482aa37e750 100644 --- a/pkgs/development/ocaml-modules/ocamlsdl/default.nix +++ b/pkgs/development/ocaml-modules/ocamlsdl/default.nix @@ -17,8 +17,8 @@ stdenv.mkDerivation rec { sha256 = "abfb295b263dc11e97fffdd88ea1a28b46df8cc2b196777093e4fe7f509e4f8f"; }; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ocaml findlib SDL SDL_image SDL_mixer SDL_ttf SDL_gfx lablgl]; + nativeBuildInputs = [ pkg-config ocaml findlib ]; + buildInputs = [ SDL SDL_image SDL_mixer SDL_ttf SDL_gfx lablgl ]; propagatedBuildInputs = [ SDL SDL_image SDL_mixer SDL_ttf SDL_gfx pkg-config ]; createFindlibDestdir = true; diff --git a/pkgs/development/ocaml-modules/ocb-stubblr/default.nix b/pkgs/development/ocaml-modules/ocb-stubblr/default.nix index 2f26eb32ffb6..fcd63ced7a80 100644 --- a/pkgs/development/ocaml-modules/ocb-stubblr/default.nix +++ b/pkgs/development/ocaml-modules/ocb-stubblr/default.nix @@ -12,10 +12,13 @@ stdenv.mkDerivation rec { patches = [ ./pkg-config.patch ]; - buildInputs = [ ocaml findlib ocamlbuild topkg ]; + nativeBuildInputs = [ ocaml findlib ocamlbuild topkg ]; + buildInputs = [ topkg ocamlbuild ]; propagatedBuildInputs = [ astring ]; + strictDeps = true; + inherit (topkg) buildPhase installPhase; meta = { diff --git a/pkgs/development/ocaml-modules/ocp-ocamlres/default.nix b/pkgs/development/ocaml-modules/ocp-ocamlres/default.nix index 7635f3a686cd..763617be1328 100644 --- a/pkgs/development/ocaml-modules/ocp-ocamlres/default.nix +++ b/pkgs/development/ocaml-modules/ocp-ocamlres/default.nix @@ -14,7 +14,11 @@ stdenv.mkDerivation rec { sha256 = "0smfwrj8qhzknhzawygxi0vgl2af4vyi652fkma59rzjpvscqrnn"; }; - buildInputs = [ ocaml findlib astring pprint ]; + nativeBuildInputs = [ ocaml findlib ]; + buildInputs = [ astring pprint ]; + + strictDeps = true; + createFindlibDestdir = true; installFlags = [ "BINDIR=$(out)/bin" ]; diff --git a/pkgs/development/ocaml-modules/ocplib-simplex/default.nix b/pkgs/development/ocaml-modules/ocplib-simplex/default.nix index 8435d1c5e516..474f69546d1a 100644 --- a/pkgs/development/ocaml-modules/ocplib-simplex/default.nix +++ b/pkgs/development/ocaml-modules/ocplib-simplex/default.nix @@ -15,8 +15,9 @@ stdenv.mkDerivation { sha256 = "09niyidrjzrj8g1qwx4wgsdf5m6cwrnzg7zsgala36jliic4di60"; }; - nativeBuildInputs = [ autoreconfHook ]; - buildInputs = [ ocaml findlib ]; + nativeBuildInputs = [ autoreconfHook ocaml findlib ]; + + strictDeps = true; installFlags = [ "LIBDIR=$(OCAMLFIND_DESTDIR)" ]; diff --git a/pkgs/development/ocaml-modules/ocsigen-deriving/default.nix b/pkgs/development/ocaml-modules/ocsigen-deriving/default.nix index d2e20838ecaf..480ea6daf203 100644 --- a/pkgs/development/ocaml-modules/ocsigen-deriving/default.nix +++ b/pkgs/development/ocaml-modules/ocsigen-deriving/default.nix @@ -26,7 +26,10 @@ stdenv.mkDerivation rec { createFindlibDestdir = true; - buildInputs = [ ocaml findlib ocamlbuild oasis camlp4 num ]; + nativeBuildInputs = [ ocaml findlib ocamlbuild oasis camlp4 ]; + buildInputs = [ oasis camlp4 ocamlbuild num ]; + + strictDeps = true; meta = { homepage = "https://github.com/ocsigen/deriving"; diff --git a/pkgs/development/ocaml-modules/ocsigen-start/default.nix b/pkgs/development/ocaml-modules/ocsigen-start/default.nix index 1fccbbb9b30c..118138dc8fd0 100644 --- a/pkgs/development/ocaml-modules/ocsigen-start/default.nix +++ b/pkgs/development/ocaml-modules/ocsigen-start/default.nix @@ -1,5 +1,5 @@ { stdenv, lib, fetchFromGitHub, ocaml, findlib, ocsigen-toolkit, pgocaml_ppx, safepass, yojson -, cohttp-lwt-unix +, cohttp-lwt-unix, eliom , resource-pooling , ocamlnet }: @@ -8,9 +8,11 @@ stdenv.mkDerivation rec { pname = "ocaml${ocaml.version}-ocsigen-start"; version = "4.3.0"; - buildInputs = [ ocaml findlib ]; + nativeBuildInputs = [ ocaml findlib eliom ]; propagatedBuildInputs = [ pgocaml_ppx safepass ocsigen-toolkit yojson resource-pooling cohttp-lwt-unix ocamlnet ]; + strictDeps = true; + patches = [ ./templates-dir.patch ]; src = fetchFromGitHub { diff --git a/pkgs/development/ocaml-modules/ocsigen-toolkit/default.nix b/pkgs/development/ocaml-modules/ocsigen-toolkit/default.nix index 78420d09779b..1b2dd72a2ec3 100644 --- a/pkgs/development/ocaml-modules/ocsigen-toolkit/default.nix +++ b/pkgs/development/ocaml-modules/ocsigen-toolkit/default.nix @@ -8,7 +8,9 @@ stdenv.mkDerivation rec { version = "3.0.1"; propagatedBuildInputs = [ calendar js_of_ocaml-ppx_deriving_json eliom ]; - buildInputs = [ ocaml findlib opaline ]; + nativeBuildInputs = [ ocaml findlib opaline eliom ]; + + strictDeps = true; installPhase = '' runHook preInstall diff --git a/pkgs/development/ocaml-modules/ocurl/default.nix b/pkgs/development/ocaml-modules/ocurl/default.nix index ea2af8dd4c82..5e815d4dca6b 100644 --- a/pkgs/development/ocaml-modules/ocurl/default.nix +++ b/pkgs/development/ocaml-modules/ocurl/default.nix @@ -13,8 +13,12 @@ stdenv.mkDerivation rec { sha256 = "0n621cxb9012pj280c7821qqsdhypj8qy9qgrah79dkh6a8h2py6"; }; - buildInputs = [ pkg-config ocaml findlib ncurses ]; + nativeBuildInputs = [ pkg-config ocaml findlib ]; + buildInputs = [ ncurses ]; propagatedBuildInputs = [ curl lwt ]; + + strictDeps = true; + createFindlibDestdir = true; meta = { description = "OCaml bindings to libcurl"; diff --git a/pkgs/development/ocaml-modules/odate/default.nix b/pkgs/development/ocaml-modules/odate/default.nix index aed5e92765f8..8967a3815471 100644 --- a/pkgs/development/ocaml-modules/odate/default.nix +++ b/pkgs/development/ocaml-modules/odate/default.nix @@ -17,7 +17,9 @@ buildDunePackage rec { sha256 = "1dk33lr0g2jnia2gqsm6nnc7nf256qgkm3v30w477gm6y2ppfm3h"; }; - buildInputs = [ menhir ]; + strictDeps = true; + + nativeBuildInputs = [ menhir ]; meta = { description = "Date and duration in OCaml"; diff --git a/pkgs/development/ocaml-modules/odn/default.nix b/pkgs/development/ocaml-modules/odn/default.nix index 9179ce3f1d16..66fc5d1f1872 100644 --- a/pkgs/development/ocaml-modules/odn/default.nix +++ b/pkgs/development/ocaml-modules/odn/default.nix @@ -13,7 +13,10 @@ stdenv.mkDerivation rec { sha256 = "09a8zdyifpc2nl4hdvg9206142y31cq95ajgij011s1qcg3z93lj"; }; - buildInputs = [ ocaml findlib ocamlbuild type_conv ounit camlp4 ]; + nativeBuildInputs = [ ocaml findlib ocamlbuild ]; + buildInputs = [ type_conv ounit camlp4 ]; + + strictDeps = true; createFindlibDestdir = true; diff --git a/pkgs/development/ocaml-modules/omd/default.nix b/pkgs/development/ocaml-modules/omd/default.nix index d6cea183d85c..b9797e257abc 100644 --- a/pkgs/development/ocaml-modules/omd/default.nix +++ b/pkgs/development/ocaml-modules/omd/default.nix @@ -9,7 +9,9 @@ stdenv.mkDerivation rec { sha256 = "1sgdgzpx96br7npj8mh91cli5mqmzsjpngwm7x4212n3k1d0ivwa"; }; - buildInputs = [ ocaml findlib ocamlbuild ]; + nativeBuildInputs = [ ocaml findlib ocamlbuild ]; + + strictDeps = true; createFindlibDestdir = true; diff --git a/pkgs/development/ocaml-modules/opam-repository/default.nix b/pkgs/development/ocaml-modules/opam-repository/default.nix index 1480a7d5915a..ff9ad75fad86 100644 --- a/pkgs/development/ocaml-modules/opam-repository/default.nix +++ b/pkgs/development/ocaml-modules/opam-repository/default.nix @@ -15,8 +15,9 @@ buildDunePackage rec { --replace "SUBSTITUTE_NIXOS_CURL_PATH" "\"${curl}/bin/curl\"" ''; - nativeBuildInputs = [ unzip ]; - buildInputs = [ curl ]; + strictDeps = true; + + nativeBuildInputs = [ unzip curl ]; propagatedBuildInputs = [ opam-format ]; meta = opam-format.meta // { diff --git a/pkgs/development/ocaml-modules/otfm/default.nix b/pkgs/development/ocaml-modules/otfm/default.nix index 0642b30699c2..91d91bdc46fe 100644 --- a/pkgs/development/ocaml-modules/otfm/default.nix +++ b/pkgs/development/ocaml-modules/otfm/default.nix @@ -17,10 +17,13 @@ stdenv.mkDerivation { sha256 = "054s82539k3kc9na6s47g3scsl04icjahpas7pv5351jmsgqcq3k"; }; - buildInputs = [ ocaml findlib ocamlbuild topkg ]; + nativeBuildInputs = [ ocaml findlib ocamlbuild topkg ]; + buildInputs = [ topkg ]; propagatedBuildInputs = [ uutf result ]; + strictDeps = true; + inherit (topkg) buildPhase installPhase; meta = with lib; { diff --git a/pkgs/development/ocaml-modules/otoml/default.nix b/pkgs/development/ocaml-modules/otoml/default.nix index 17e8fc855ea0..c3f53fc611e5 100644 --- a/pkgs/development/ocaml-modules/otoml/default.nix +++ b/pkgs/development/ocaml-modules/otoml/default.nix @@ -19,7 +19,9 @@ buildDunePackage rec { sha256 = "0l0c60rzgk11y8xq05kr8q9hkzb3c8vi995mq84x98ys73wb42j3"; }; - buildInputs = [ menhir ]; + strictDeps = true; + + nativeBuildInputs = [ menhir ]; propagatedBuildInputs = [ menhirLib uutf ]; diff --git a/pkgs/development/ocaml-modules/ounit/default.nix b/pkgs/development/ocaml-modules/ounit/default.nix index fbb75e613309..a40111cd3b37 100644 --- a/pkgs/development/ocaml-modules/ounit/default.nix +++ b/pkgs/development/ocaml-modules/ounit/default.nix @@ -4,9 +4,11 @@ stdenv.mkDerivation { pname = "ocaml${ocaml.version}-ounit"; inherit (ounit2) version src meta; - buildInputs = [ findlib ]; + nativeBuildInputs = [ findlib ]; propagatedBuildInputs = [ ounit2 ]; + strictDeps = true; + dontBuild = true; createFindlibDestdir = true; diff --git a/pkgs/development/ocaml-modules/pipebang/default.nix b/pkgs/development/ocaml-modules/pipebang/default.nix index 489ca3d2c708..251aeb8de8ec 100644 --- a/pkgs/development/ocaml-modules/pipebang/default.nix +++ b/pkgs/development/ocaml-modules/pipebang/default.nix @@ -1,4 +1,4 @@ -{ lib, buildOcaml, fetchFromGitHub }: +{ lib, buildOcaml, fetchFromGitHub, camlp4 }: buildOcaml rec { pname = "pipebang"; @@ -13,6 +13,10 @@ buildOcaml rec { sha256 = "sha256-9A3X/ciL5HtuKQ5awS+hDDBLL5ytOr12wHsmJLNRn+Q="; }; + strictDeps = true; + + buildInputs = [ camlp4 ]; + meta = with lib; { homepage = "https://github.com/janestreet/pipebang"; description = "Syntax extension to transform x |! f into f x"; diff --git a/pkgs/development/ocaml-modules/piqi-ocaml/default.nix b/pkgs/development/ocaml-modules/piqi-ocaml/default.nix index 590c001c4195..4f2e4693357f 100644 --- a/pkgs/development/ocaml-modules/piqi-ocaml/default.nix +++ b/pkgs/development/ocaml-modules/piqi-ocaml/default.nix @@ -12,7 +12,10 @@ stdenv.mkDerivation rec { sha256 = "1913jpsb8mvqi8609j4g4sm5jhg50dq0xqxgy8nmvknfryyc89nm"; }; - buildInputs = [ ocaml findlib piqi stdlib-shims ]; + nativeBuildInputs = [ ocaml findlib ]; + buildInputs = [ piqi stdlib-shims ]; + + strictDeps = true; createFindlibDestdir = true; diff --git a/pkgs/development/ocaml-modules/piqi/default.nix b/pkgs/development/ocaml-modules/piqi/default.nix index faeb804d8aa8..45d65a5be04f 100644 --- a/pkgs/development/ocaml-modules/piqi/default.nix +++ b/pkgs/development/ocaml-modules/piqi/default.nix @@ -12,9 +12,11 @@ stdenv.mkDerivation rec { sha256 = "0v04hs85xv6d4ysqxyv1dik34dx49yab9shpi4x7iv19qlzl7csb"; }; - buildInputs = [ ocaml findlib which ]; + nativeBuildInputs = [ ocaml findlib which ]; propagatedBuildInputs = [ sedlex_2 xmlm easy-format base64 ]; + strictDeps = true; + patches = [ ./no-ocamlpath-override.patch ]; createFindlibDestdir = true; diff --git a/pkgs/development/ocaml-modules/ppx_cstubs/default.nix b/pkgs/development/ocaml-modules/ppx_cstubs/default.nix index 935d67f70845..f4794eea76ed 100644 --- a/pkgs/development/ocaml-modules/ppx_cstubs/default.nix +++ b/pkgs/development/ocaml-modules/ppx_cstubs/default.nix @@ -9,6 +9,7 @@ , num , ppxlib , re +, findlib }: buildDunePackage rec { @@ -26,17 +27,21 @@ buildDunePackage rec { sha256 = "15cjb9ygnvp2kv85rrb7ncz7yalifyl7wd2hp2cl8r1qrpgi1d0w"; }; + nativeBuildInputs = [ cppo ]; + buildInputs = [ bigarray-compat containers - cppo ctypes integers num ppxlib re + findlib ]; + strictDeps = true; + meta = with lib; { homepage = "https://github.com/fdopen/ppx_cstubs"; changelog = "https://github.com/fdopen/ppx_cstubs/raw/${version}/CHANGES.md"; diff --git a/pkgs/development/ocaml-modules/ppx_deriving/default.nix b/pkgs/development/ocaml-modules/ppx_deriving/default.nix index 5563e6113462..090c8113ce48 100644 --- a/pkgs/development/ocaml-modules/ppx_deriving/default.nix +++ b/pkgs/development/ocaml-modules/ppx_deriving/default.nix @@ -5,7 +5,7 @@ , ppxlib , ppx_derivers , result -, ounit +, ounit2 , ocaml-migrate-parsetree , ocaml-migrate-parsetree-2 }: @@ -37,7 +37,11 @@ buildDunePackage rec { inherit (params) sha256; }; - buildInputs = [ ppxlib cppo ]; + # This currently fails with dune + strictDeps = false; + + nativeBuildInputs = [ cppo ]; + buildInputs = [ ppxlib ]; propagatedBuildInputs = [ (if params.useOMP2 then ocaml-migrate-parsetree-2 @@ -47,7 +51,7 @@ buildDunePackage rec { ]; doCheck = true; - checkInputs = [ ounit ]; + checkInputs = [ ounit2 ]; meta = with lib; { description = "deriving is a library simplifying type-driven code generation on OCaml >=4.02."; diff --git a/pkgs/development/ocaml-modules/ppx_tools/default.nix b/pkgs/development/ocaml-modules/ppx_tools/default.nix index 64948c29ae50..59b7c29730aa 100644 --- a/pkgs/development/ocaml-modules/ppx_tools/default.nix +++ b/pkgs/development/ocaml-modules/ppx_tools/default.nix @@ -5,6 +5,7 @@ let param = version = "6.4"; sha256 = "15v7yfv6gyp8lzlgwi9garz10wpg34dk4072jdv19n6v20zfg7n1"; useDune2 = true; + nativeBuildInputs = [cppo]; buildInputs = [cppo]; }; in { @@ -54,7 +55,9 @@ if lib.versionAtLeast param.version "6.0" then buildDunePackage { inherit pname src meta; - inherit (param) version useDune2 buildInputs; + inherit (param) version useDune2 buildInputs nativeBuildInputs; + + strictDeps = true; } else stdenv.mkDerivation { @@ -63,7 +66,8 @@ else inherit src; nativeBuildInputs = [ ocaml findlib ]; - buildInputs = [ ocaml findlib ]; + + strictDeps = true; createFindlibDestdir = true; diff --git a/pkgs/development/ocaml-modules/psmt2-frontend/default.nix b/pkgs/development/ocaml-modules/psmt2-frontend/default.nix index dbdf3970f636..25c9ec4b870c 100644 --- a/pkgs/development/ocaml-modules/psmt2-frontend/default.nix +++ b/pkgs/development/ocaml-modules/psmt2-frontend/default.nix @@ -15,7 +15,9 @@ buildDunePackage rec { minimumOCamlVersion = "4.03"; - buildInputs = [ menhir ]; + strictDeps = true; + + nativeBuildInputs = [ menhir ]; meta = { description = "A simple parser and type-checker for polomorphic extension of the SMT-LIB 2 language"; diff --git a/pkgs/development/ocaml-modules/ptime/default.nix b/pkgs/development/ocaml-modules/ptime/default.nix index 7015c6058b4f..ac30876520a6 100644 --- a/pkgs/development/ocaml-modules/ptime/default.nix +++ b/pkgs/development/ocaml-modules/ptime/default.nix @@ -11,9 +11,10 @@ stdenv.mkDerivation rec { sha256 = "1fxq57xy1ajzfdnvv5zfm7ap2nf49znw5f9gbi4kb9vds942ij27"; }; - nativeBuildInputs = [ ocaml findlib ocamlbuild ]; - buildInputs = [ findlib topkg ] - ++ lib.optional jsooSupport js_of_ocaml; + nativeBuildInputs = [ ocaml findlib ocamlbuild topkg ]; + buildInputs = [ topkg ] ++ lib.optional jsooSupport js_of_ocaml; + + strictDeps = true; propagatedBuildInputs = [ result ]; diff --git a/pkgs/development/ocaml-modules/ptmap/default.nix b/pkgs/development/ocaml-modules/ptmap/default.nix index 018f1e3edf06..fd59368f82df 100644 --- a/pkgs/development/ocaml-modules/ptmap/default.nix +++ b/pkgs/development/ocaml-modules/ptmap/default.nix @@ -14,12 +14,13 @@ buildDunePackage rec { sha256 = "1apk61fc1y1g7x3m3c91fnskvxp6i0vk5nxwvipj56k7x2pzilgb"; }; + strictDeps = true; + + buildInputs = [ stdlib-shims ]; propagatedBuildInputs = [ seq ]; doCheck = true; - checkInputs = [ stdlib-shims ]; - meta = { homepage = "https://www.lri.fr/~filliatr/software.en.html"; description = "Maps over integers implemented as Patricia trees"; diff --git a/pkgs/development/ocaml-modules/pyml/default.nix b/pkgs/development/ocaml-modules/pyml/default.nix index 4f7c4b1b2a28..afcc47e38dc4 100644 --- a/pkgs/development/ocaml-modules/pyml/default.nix +++ b/pkgs/development/ocaml-modules/pyml/default.nix @@ -11,9 +11,11 @@ stdenv.mkDerivation rec { sha256 = "sha256-GCO6KlRhJmADFjQ5QF4naMQBskF63yqnJnLnuQsagEk="; }; - buildInputs = [ + nativeBuildInputs = [ ocaml findlib + ]; + buildInputs = [ utop ncurses ]; @@ -23,6 +25,8 @@ stdenv.mkDerivation rec { stdcompat ]; + strictDeps = true; + buildPhase = '' make all pymltop pymlutop PREFIX=$out ''; diff --git a/pkgs/development/ocaml-modules/react/default.nix b/pkgs/development/ocaml-modules/react/default.nix index 0edae9830698..4e07a2021e32 100644 --- a/pkgs/development/ocaml-modules/react/default.nix +++ b/pkgs/development/ocaml-modules/react/default.nix @@ -9,7 +9,10 @@ stdenv.mkDerivation rec { sha256 = "1aj8w79gdd9xnrbz7s5p8glcb4pmimi8jp9f439dqnf6ih3mqb3v"; }; - buildInputs = [ ocaml findlib topkg ocamlbuild ]; + nativeBuildInputs = [ ocaml findlib ocamlbuild ]; + buildInputs = [ topkg ]; + + strictDeps = true; inherit (topkg) buildPhase installPhase; diff --git a/pkgs/development/ocaml-modules/reactivedata/default.nix b/pkgs/development/ocaml-modules/reactivedata/default.nix index bc0c8f9e9b8c..23ebb3144d11 100644 --- a/pkgs/development/ocaml-modules/reactivedata/default.nix +++ b/pkgs/development/ocaml-modules/reactivedata/default.nix @@ -15,9 +15,11 @@ stdenv.mkDerivation rec { sha256 = "sha256-YLkacIbjxZQ/ThgSxjTqviBYih6eW2GX5H7iybQDv1A="; }; - buildInputs = [ ocaml findlib ocamlbuild opaline ]; + nativeBuildInputs = [ ocaml findlib ocamlbuild opaline ]; propagatedBuildInputs = [ react ]; + strictDeps = true; + buildPhase = "ocaml pkg/build.ml native=true native-dynlink=true"; installPhase = "opaline -prefix $out -libdir $OCAMLFIND_DESTDIR"; diff --git a/pkgs/development/ocaml-modules/reason-native/cli.nix b/pkgs/development/ocaml-modules/reason-native/cli.nix index 1a4c020dc352..ee5e7d2774d2 100644 --- a/pkgs/development/ocaml-modules/reason-native/cli.nix +++ b/pkgs/development/ocaml-modules/reason-native/cli.nix @@ -3,9 +3,12 @@ { pname = "cli"; + nativeBuildInputs = [ + reason + ]; + buildInputs = [ re - reason pastel ]; } diff --git a/pkgs/development/ocaml-modules/reason-native/console.nix b/pkgs/development/ocaml-modules/reason-native/console.nix index c11c12b46730..b4b30cab4a0c 100644 --- a/pkgs/development/ocaml-modules/reason-native/console.nix +++ b/pkgs/development/ocaml-modules/reason-native/console.nix @@ -3,7 +3,7 @@ { pname = "console"; - buildInputs = [ + nativeBuildInputs = [ reason ]; diff --git a/pkgs/development/ocaml-modules/reason-native/dir.nix b/pkgs/development/ocaml-modules/reason-native/dir.nix index e6eb9c0c403f..6b2aa0c3cd8f 100644 --- a/pkgs/development/ocaml-modules/reason-native/dir.nix +++ b/pkgs/development/ocaml-modules/reason-native/dir.nix @@ -3,7 +3,7 @@ { pname = "dir"; - buildInputs = [ + nativeBuildInputs = [ reason ]; diff --git a/pkgs/development/ocaml-modules/reason-native/file-context-printer.nix b/pkgs/development/ocaml-modules/reason-native/file-context-printer.nix index 749e727feeca..a7c663493ef5 100644 --- a/pkgs/development/ocaml-modules/reason-native/file-context-printer.nix +++ b/pkgs/development/ocaml-modules/reason-native/file-context-printer.nix @@ -3,7 +3,7 @@ { pname = "file-context-printer"; - buildInputs = [ + nativeBuildInputs = [ reason ]; diff --git a/pkgs/development/ocaml-modules/reason-native/fp.nix b/pkgs/development/ocaml-modules/reason-native/fp.nix index ae6ae50705d5..8ff2ed65c4c0 100644 --- a/pkgs/development/ocaml-modules/reason-native/fp.nix +++ b/pkgs/development/ocaml-modules/reason-native/fp.nix @@ -3,7 +3,7 @@ { pname = "fp"; - buildInputs = [ + nativeBuildInputs = [ reason ]; diff --git a/pkgs/development/ocaml-modules/reason-native/pastel-console.nix b/pkgs/development/ocaml-modules/reason-native/pastel-console.nix index f1d2c7cc7264..968b9f88af91 100644 --- a/pkgs/development/ocaml-modules/reason-native/pastel-console.nix +++ b/pkgs/development/ocaml-modules/reason-native/pastel-console.nix @@ -3,7 +3,7 @@ { pname = "pastel-console"; - buildInputs = [ + nativeBuildInputs = [ reason ]; diff --git a/pkgs/development/ocaml-modules/reason-native/pastel.nix b/pkgs/development/ocaml-modules/reason-native/pastel.nix index a5abc4e219c5..f2c975d938e0 100644 --- a/pkgs/development/ocaml-modules/reason-native/pastel.nix +++ b/pkgs/development/ocaml-modules/reason-native/pastel.nix @@ -5,7 +5,7 @@ minimalOCamlVersion = "4.05"; - buildInputs = [ + nativeBuildInputs = [ reason ]; propagatedBuildInputs = [ diff --git a/pkgs/development/ocaml-modules/reason-native/qcheck-rely.nix b/pkgs/development/ocaml-modules/reason-native/qcheck-rely.nix index 993bcbefafdc..1250dc2d3a71 100644 --- a/pkgs/development/ocaml-modules/reason-native/qcheck-rely.nix +++ b/pkgs/development/ocaml-modules/reason-native/qcheck-rely.nix @@ -3,7 +3,7 @@ { pname = "qcheck-rely"; - buildInputs = [ + nativeBuildInputs = [ reason ]; diff --git a/pkgs/development/ocaml-modules/reason-native/refmterr.nix b/pkgs/development/ocaml-modules/reason-native/refmterr.nix index 9b14d4a8ba31..b4d6708467f0 100644 --- a/pkgs/development/ocaml-modules/reason-native/refmterr.nix +++ b/pkgs/development/ocaml-modules/reason-native/refmterr.nix @@ -3,7 +3,7 @@ { pname = "refmterr"; - buildInputs = [ + nativeBuildInputs = [ reason ]; diff --git a/pkgs/development/ocaml-modules/reason-native/rely-junit-reporter.nix b/pkgs/development/ocaml-modules/reason-native/rely-junit-reporter.nix index 6e8b41bbd1c4..8a7080f624df 100644 --- a/pkgs/development/ocaml-modules/reason-native/rely-junit-reporter.nix +++ b/pkgs/development/ocaml-modules/reason-native/rely-junit-reporter.nix @@ -3,9 +3,12 @@ { pname = "rely-junit-reporter"; + nativeBuildInputs = [ + reason + ]; + buildInputs = [ atdgen - reason ]; propagatedBuildInputs = [ diff --git a/pkgs/development/ocaml-modules/reason-native/rely.nix b/pkgs/development/ocaml-modules/reason-native/rely.nix index a2230426bec1..f29565f9c463 100644 --- a/pkgs/development/ocaml-modules/reason-native/rely.nix +++ b/pkgs/development/ocaml-modules/reason-native/rely.nix @@ -3,7 +3,7 @@ { pname = "rely"; - buildInputs = [ + nativeBuildInputs = [ reason ]; diff --git a/pkgs/development/ocaml-modules/rope/default.nix b/pkgs/development/ocaml-modules/rope/default.nix index 9410ab21ea34..9ac090a780e9 100644 --- a/pkgs/development/ocaml-modules/rope/default.nix +++ b/pkgs/development/ocaml-modules/rope/default.nix @@ -6,7 +6,7 @@ let param = version = "0.6.2"; url = "https://github.com/Chris00/ocaml-rope/releases/download/${version}/rope-${version}.tbz"; sha256 = "15cvfa0s1vjx7gjd07d3fkznilishqf4z4h2q5f20wm9ysjh2h2i"; - buildInputs = [ dune_2 ]; + nativeBuildInputs = [ dune_2 ]; extra = { buildPhase = "dune build -p rope"; installPhase = '' @@ -17,7 +17,7 @@ let param = version = "0.5"; url = "https://forge.ocamlcore.org/frs/download.php/1156/rope-0.5.tar.gz"; sha256 = "05fr2f5ch2rqhyaj06rv5218sbg99p1m9pq5sklk04hpslxig21f"; - buildInputs = [ ocamlbuild ]; + nativeBuildInputs = [ ocamlbuild ]; extra = { createFindlibDestdir = true; }; }; in @@ -30,7 +30,10 @@ stdenv.mkDerivation ({ inherit (param) url sha256; }; - buildInputs = [ ocaml findlib benchmark ] ++ param.buildInputs; + nativeBuildInputs = [ ocaml findlib ] ++ param.nativeBuildInputs; + buildInputs = [ benchmark ] ; + + strictDeps = true; meta = { homepage = "http://rope.forge.ocamlcore.org/"; diff --git a/pkgs/development/ocaml-modules/rresult/default.nix b/pkgs/development/ocaml-modules/rresult/default.nix index 1198ca957f01..cdc3a1dba68a 100644 --- a/pkgs/development/ocaml-modules/rresult/default.nix +++ b/pkgs/development/ocaml-modules/rresult/default.nix @@ -8,10 +8,13 @@ stdenv.mkDerivation rec { sha256 = "1k69a3gvrk7f2cshwjzvk7818f0bwxhacgd14wxy6d4gmrggci86"; }; - buildInputs = [ ocaml findlib ocamlbuild topkg ]; + nativeBuildInputs = [ ocaml findlib ocamlbuild topkg ]; + buildInputs = [ topkg ]; propagatedBuildInputs = [ result ]; + strictDeps = true; + inherit (topkg) buildPhase installPhase; meta = { diff --git a/pkgs/development/ocaml-modules/sawja/default.nix b/pkgs/development/ocaml-modules/sawja/default.nix index 284ba97b9c70..3b0878155a53 100644 --- a/pkgs/development/ocaml-modules/sawja/default.nix +++ b/pkgs/development/ocaml-modules/sawja/default.nix @@ -23,9 +23,9 @@ stdenv.mkDerivation { sha256 = "sha256:0k51rscs9mdgpg3qn4cahql5ncdvlb207m015hr8v6r1vfgn0ddq"; }; - nativeBuildInputs = [ which ]; + nativeBuildInputs = [ which ocaml findlib ]; - buildInputs = [ ocaml findlib ]; + strictDeps = true; patches = [ ./configure.sh.patch ./Makefile.config.example.patch ]; diff --git a/pkgs/development/ocaml-modules/sedlex/default.nix b/pkgs/development/ocaml-modules/sedlex/default.nix index c1ea56b5c506..b808145bcbbc 100644 --- a/pkgs/development/ocaml-modules/sedlex/default.nix +++ b/pkgs/development/ocaml-modules/sedlex/default.nix @@ -15,10 +15,12 @@ stdenv.mkDerivation rec { sha256 = "sha256-VhzlDTYBFXgKWT69PqZYLuHkiaDwzhmyX2XfaqzHFl4="; }; - buildInputs = [ ocaml findlib ]; + nativeBuildInputs = [ ocaml findlib ]; propagatedBuildInputs = [ gen ocaml-migrate-parsetree ppx_tools_versioned ]; + strictDeps = true; + buildFlags = [ "all" "opt" ]; createFindlibDestdir = true; diff --git a/pkgs/development/ocaml-modules/sha/default.nix b/pkgs/development/ocaml-modules/sha/default.nix index c1a76e4149e6..4cbb658b6549 100644 --- a/pkgs/development/ocaml-modules/sha/default.nix +++ b/pkgs/development/ocaml-modules/sha/default.nix @@ -1,4 +1,4 @@ -{ lib, fetchurl, buildDunePackage, stdlib-shims, ounit }: +{ lib, fetchurl, buildDunePackage, stdlib-shims, dune-configurator, ounit }: buildDunePackage rec { pname = "sha"; @@ -11,6 +11,8 @@ buildDunePackage rec { useDune2 = true; + buildInputs = [ dune-configurator ]; + propagatedBuildInputs = [ stdlib-shims ]; diff --git a/pkgs/development/ocaml-modules/sodium/default.nix b/pkgs/development/ocaml-modules/sodium/default.nix index cff3d6186d1a..040a34ef6f1d 100644 --- a/pkgs/development/ocaml-modules/sodium/default.nix +++ b/pkgs/development/ocaml-modules/sodium/default.nix @@ -16,9 +16,11 @@ stdenv.mkDerivation rec { ./lib-gen-link-bigarray.patch ]; - buildInputs = [ ocaml findlib ocamlbuild ]; + nativeBuildInputs = [ ocaml findlib ocamlbuild ]; propagatedBuildInputs = [ ctypes libsodium ]; + strictDeps = true; + createFindlibDestdir = true; hardeningDisable = lib.optional stdenv.isDarwin "strictoverflow"; diff --git a/pkgs/development/ocaml-modules/sosa/default.nix b/pkgs/development/ocaml-modules/sosa/default.nix index 1605a15bea8e..141e2a50193d 100644 --- a/pkgs/development/ocaml-modules/sosa/default.nix +++ b/pkgs/development/ocaml-modules/sosa/default.nix @@ -17,7 +17,9 @@ stdenv.mkDerivation rec { sha256 = "053hdv6ww0q4mivajj4iyp7krfvgq8zajq9d8x4mia4lid7j0dyk"; }; - buildInputs = [ ocaml ocamlbuild findlib ]; + nativeBuildInputs = [ ocaml ocamlbuild findlib ]; + + strictDeps = true; buildPhase = "make build"; diff --git a/pkgs/development/ocaml-modules/sqlite3EZ/default.nix b/pkgs/development/ocaml-modules/sqlite3EZ/default.nix index 02a281740b9f..6009eaecce1d 100644 --- a/pkgs/development/ocaml-modules/sqlite3EZ/default.nix +++ b/pkgs/development/ocaml-modules/sqlite3EZ/default.nix @@ -17,10 +17,13 @@ stdenv.mkDerivation rec { sha256 = "sha256-pKysvth0efxJeyJQY2Dnqarg7OtsKyyLnFV/1ZhsfDY="; }; - buildInputs = [ ocaml findlib ocamlbuild twt ]; + nativeBuildInputs = [ ocaml findlib ocamlbuild ]; + buildInputs = [ twt ]; propagatedBuildInputs = [ ocaml_sqlite3 ]; + strictDeps = true; + createFindlibDestdir = true; meta = with lib; { diff --git a/pkgs/development/ocaml-modules/stdcompat/default.nix b/pkgs/development/ocaml-modules/stdcompat/default.nix index 0f3b5377fc51..eae9b264ba1f 100644 --- a/pkgs/development/ocaml-modules/stdcompat/default.nix +++ b/pkgs/development/ocaml-modules/stdcompat/default.nix @@ -11,7 +11,10 @@ stdenv.mkDerivation rec { sha256 = "sha256:01y67rndjlzfp5zq0gbqpg9skqq2hfbvhbq9lfhhk5xidr98sfj8"; }; - buildInputs = [ ocaml findlib ]; + nativeBuildInputs = [ ocaml findlib ]; + + strictDeps = true; + # build fails otherwise enableParallelBuilding = false; diff --git a/pkgs/development/ocaml-modules/tezos/legacy-store.nix b/pkgs/development/ocaml-modules/tezos/legacy-store.nix index 6029401e3618..b6d9f20df3c7 100644 --- a/pkgs/development/ocaml-modules/tezos/legacy-store.nix +++ b/pkgs/development/ocaml-modules/tezos/legacy-store.nix @@ -23,10 +23,12 @@ buildDunePackage { lwt-watcher ]; - buildInputs = [ + nativeBuildInputs = [ tezos-protocol-compiler ]; + strictDeps = true; + checkInputs = [ alcotest-lwt ]; diff --git a/pkgs/development/ocaml-modules/tezos/lmdb.nix b/pkgs/development/ocaml-modules/tezos/lmdb.nix index 6eaed942317f..5b5690707ab3 100644 --- a/pkgs/development/ocaml-modules/tezos/lmdb.nix +++ b/pkgs/development/ocaml-modules/tezos/lmdb.nix @@ -25,7 +25,7 @@ buildDunePackage { useDune2 = true; - buildInputs = [ + nativeBuildInputs = [ pkg-config ]; @@ -34,6 +34,8 @@ buildDunePackage { lmdb ]; + strictDeps = true; + checkInputs = [ cstruct alcotest diff --git a/pkgs/development/ocaml-modules/tezos/protocol-010-PtGRANAD.nix b/pkgs/development/ocaml-modules/tezos/protocol-010-PtGRANAD.nix index 2321245220f6..85dc33dc98f1 100644 --- a/pkgs/development/ocaml-modules/tezos/protocol-010-PtGRANAD.nix +++ b/pkgs/development/ocaml-modules/tezos/protocol-010-PtGRANAD.nix @@ -2,6 +2,7 @@ , buildDunePackage , tezos-stdlib , tezos-protocol-compiler +, tezos-protocol-environment }: buildDunePackage { @@ -9,10 +10,16 @@ buildDunePackage { inherit (tezos-stdlib) version useDune2; src = "${tezos-stdlib.base_src}/src"; - buildInputs = [ + nativeBuildInputs = [ tezos-protocol-compiler ]; + buildInputs = [ + tezos-protocol-environment + ]; + + strictDeps = true; + doCheck = true; meta = tezos-stdlib.meta // { diff --git a/pkgs/development/ocaml-modules/tezos/protocol-011-PtHangz2.nix b/pkgs/development/ocaml-modules/tezos/protocol-011-PtHangz2.nix index 2dec60851770..3cfb8cced04d 100644 --- a/pkgs/development/ocaml-modules/tezos/protocol-011-PtHangz2.nix +++ b/pkgs/development/ocaml-modules/tezos/protocol-011-PtHangz2.nix @@ -2,6 +2,7 @@ , buildDunePackage , tezos-stdlib , tezos-protocol-compiler +, tezos-protocol-environment }: buildDunePackage { @@ -9,10 +10,16 @@ buildDunePackage { inherit (tezos-stdlib) version useDune2; src = "${tezos-stdlib.base_src}/src"; - buildInputs = [ + nativeBuildInputs = [ tezos-protocol-compiler ]; + buildInputs = [ + tezos-protocol-environment + ]; + + strictDeps = true; + doCheck = true; meta = tezos-stdlib.meta // { diff --git a/pkgs/development/ocaml-modules/tezos/store.nix b/pkgs/development/ocaml-modules/tezos/store.nix index 69dad7512707..3fbe945d07b7 100644 --- a/pkgs/development/ocaml-modules/tezos/store.nix +++ b/pkgs/development/ocaml-modules/tezos/store.nix @@ -31,10 +31,12 @@ buildDunePackage { tezos-legacy-store ]; - buildInputs = [ + nativeBuildInputs = [ tezos-protocol-compiler ]; + strictDeps = true; + checkInputs = [ alcotest-lwt ]; diff --git a/pkgs/development/ocaml-modules/tezos/validation.nix b/pkgs/development/ocaml-modules/tezos/validation.nix index b26b81f4a779..44a7576cc065 100644 --- a/pkgs/development/ocaml-modules/tezos/validation.nix +++ b/pkgs/development/ocaml-modules/tezos/validation.nix @@ -14,10 +14,12 @@ buildDunePackage { tezos-protocol-updater ]; - buildInputs = [ + nativeBuildInputs = [ tezos-protocol-compiler ]; + strictDeps = true; + doCheck = true; meta = tezos-stdlib.meta // { diff --git a/pkgs/development/ocaml-modules/toml/default.nix b/pkgs/development/ocaml-modules/toml/default.nix index 6980a148e105..dd765e388235 100644 --- a/pkgs/development/ocaml-modules/toml/default.nix +++ b/pkgs/development/ocaml-modules/toml/default.nix @@ -15,7 +15,7 @@ buildDunePackage rec { sha256 = "08ywzqckllvwawl1wpgg7qzvx6jhq7d6vysa0d5hj7qdwq213ggm"; }; - buildInputs = [ menhir ]; + nativeBuildInputs = [ menhir ]; propagatedBuildInputs = [ iso8601 ]; meta = { diff --git a/pkgs/development/ocaml-modules/topkg/default.nix b/pkgs/development/ocaml-modules/topkg/default.nix index 9e1369a8567b..10104228c839 100644 --- a/pkgs/development/ocaml-modules/topkg/default.nix +++ b/pkgs/development/ocaml-modules/topkg/default.nix @@ -38,6 +38,8 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ ocaml findlib ocamlbuild ]; propagatedBuildInputs = param.propagatedBuildInputs or []; + strictDeps = true; + buildPhase = "${run} build"; createFindlibDestdir = true; installPhase = "${opaline}/bin/opaline -prefix $out -libdir $OCAMLFIND_DESTDIR"; diff --git a/pkgs/development/ocaml-modules/tsdl/default.nix b/pkgs/development/ocaml-modules/tsdl/default.nix index 7c09e8cd9d7a..a56cccbe0717 100644 --- a/pkgs/development/ocaml-modules/tsdl/default.nix +++ b/pkgs/development/ocaml-modules/tsdl/default.nix @@ -18,8 +18,8 @@ stdenv.mkDerivation { sha256 = "1zwv0ixkigh1gzk5n49rwvz2f2m62jdkkqg40j7dclg4gri7691f"; }; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ ocaml findlib ocamlbuild topkg ]; + nativeBuildInputs = [ pkg-config ocaml findlib ocamlbuild topkg ]; + buildInputs = [ topkg ]; propagatedBuildInputs = [ SDL2 ctypes ]; preConfigure = '' diff --git a/pkgs/development/ocaml-modules/twt/default.nix b/pkgs/development/ocaml-modules/twt/default.nix index 407601c7a46c..4e76f0c16d38 100644 --- a/pkgs/development/ocaml-modules/twt/default.nix +++ b/pkgs/development/ocaml-modules/twt/default.nix @@ -11,7 +11,9 @@ stdenv.mkDerivation rec { sha256 = "sha256-xbjLPd7P1KyuC3i6WHLBcdLwd14atcBsd5ER+l97KAk="; }; - buildInputs = [ ocaml findlib ]; + nativeBuildInputs = [ ocaml findlib ]; + + strictDeps = true; preInstall = '' mkdir -p $out/bin diff --git a/pkgs/development/ocaml-modules/type_conv/108.08.00.nix b/pkgs/development/ocaml-modules/type_conv/108.08.00.nix index 337874e11a94..fb3977223f7e 100644 --- a/pkgs/development/ocaml-modules/type_conv/108.08.00.nix +++ b/pkgs/development/ocaml-modules/type_conv/108.08.00.nix @@ -13,7 +13,10 @@ stdenv.mkDerivation rec { sha256 = "08ysikwwp69zvc147lzzg79nwlrzrk738rj0ggcfadi8h5il42sl"; }; - buildInputs = [ ocaml findlib camlp4 ]; + nativeBuildInputs = [ ocaml findlib ]; + buildInputs = [ camlp4 ]; + + strictDeps = true; createFindlibDestdir = true; diff --git a/pkgs/development/ocaml-modules/type_conv/109.60.01.nix b/pkgs/development/ocaml-modules/type_conv/109.60.01.nix index 4ec160a92230..1f6500c6ed17 100644 --- a/pkgs/development/ocaml-modules/type_conv/109.60.01.nix +++ b/pkgs/development/ocaml-modules/type_conv/109.60.01.nix @@ -15,7 +15,10 @@ stdenv.mkDerivation rec { sha256 = "sha256-8Oz/fPL3+RghyxQp5u6seSEdf0BgfP6XNcsMYty0rNs="; }; - buildInputs = [ ocaml findlib camlp4 ]; + nativeBuildInputs = [ ocaml findlib ]; + buildInputs = [ camlp4 ]; + + strictDeps = true; createFindlibDestdir = true; diff --git a/pkgs/development/ocaml-modules/type_conv/112.01.01.nix b/pkgs/development/ocaml-modules/type_conv/112.01.01.nix index e90ca2d16a64..468b872ec3d0 100644 --- a/pkgs/development/ocaml-modules/type_conv/112.01.01.nix +++ b/pkgs/development/ocaml-modules/type_conv/112.01.01.nix @@ -1,4 +1,4 @@ -{ lib, fetchFromGitHub, buildOcaml}: +{ lib, fetchFromGitHub, buildOcaml, camlp4}: buildOcaml rec { minimumSupportedOcamlVersion = "4.02"; @@ -13,6 +13,10 @@ buildOcaml rec { sha256 = "sha256-HzH0hnceCQ2kDRATjl+tfKk3XSBDsGnPzVUGYpDQUmU="; }; + strictDeps = true; + + buildInputs = [ camlp4 ]; + meta = { homepage = "https://github.com/janestreet/type_conv/"; description = "Support library for preprocessor type conversions"; diff --git a/pkgs/development/ocaml-modules/uchar/default.nix b/pkgs/development/ocaml-modules/uchar/default.nix index 7d7d87af8532..09004e8a9438 100644 --- a/pkgs/development/ocaml-modules/uchar/default.nix +++ b/pkgs/development/ocaml-modules/uchar/default.nix @@ -10,7 +10,9 @@ stdenv.mkDerivation rec { }; nativeBuildInputs = [ ocaml ocamlbuild findlib ]; - buildInputs = [ findlib ocaml ocamlbuild ]; + + strictDeps = true; + buildPhase = "ocaml pkg/build.ml native=true native-dynlink=${lib.boolToString withShared}"; installPhase = "${opaline}/bin/opaline -libdir $OCAMLFIND_DESTDIR"; configurePlatforms = [ ]; diff --git a/pkgs/development/ocaml-modules/ulex/default.nix b/pkgs/development/ocaml-modules/ulex/default.nix index f1ada5d09981..9a5848db3f7b 100644 --- a/pkgs/development/ocaml-modules/ulex/default.nix +++ b/pkgs/development/ocaml-modules/ulex/default.nix @@ -25,8 +25,9 @@ stdenv.mkDerivation rec { createFindlibDestdir = true; - buildInputs = [ ocaml findlib ocamlbuild ]; - propagatedBuildInputs = [ camlp4 ]; + nativeBuildInputs = [ ocaml findlib ocamlbuild camlp4 ]; + + strictDeps = true; buildFlags = [ "all" "all.opt" ]; diff --git a/pkgs/development/ocaml-modules/uucd/default.nix b/pkgs/development/ocaml-modules/uucd/default.nix index 244f3f36dc39..0c71ddf0d700 100644 --- a/pkgs/development/ocaml-modules/uucd/default.nix +++ b/pkgs/development/ocaml-modules/uucd/default.nix @@ -13,7 +13,10 @@ stdenv.mkDerivation rec { sha256 = "sha256:0fc737v5gj3339jx4x9xr096lxrpwvp6vaiylhavcvsglcwbgm30"; }; - buildInputs = [ ocaml findlib ocamlbuild topkg ]; + nativeBuildInputs = [ ocaml findlib ocamlbuild topkg ]; + buildInputs = [ topkg ]; + + strictDeps = true; inherit (topkg) buildPhase installPhase; diff --git a/pkgs/development/ocaml-modules/uucp/default.nix b/pkgs/development/ocaml-modules/uucp/default.nix index 2e8a360d4550..9031087f5053 100644 --- a/pkgs/development/ocaml-modules/uucp/default.nix +++ b/pkgs/development/ocaml-modules/uucp/default.nix @@ -21,10 +21,13 @@ stdenv.mkDerivation { sha256 = "sha256:1yx9nih3d9prb9zizq8fzmmqylf24a6yifhf81h33znrj5xn1mpj"; }; - buildInputs = [ ocaml findlib ocamlbuild topkg uutf uunf ]; + nativeBuildInputs = [ ocaml findlib ocamlbuild topkg ]; + buildInputs = [ topkg uutf uunf uucd ]; propagatedBuildInputs = [ uchar ]; + strictDeps = true; + buildPhase = '' runHook preBuild ${topkg.buildPhase} --with-cmdliner false --tests ${lib.boolToString doCheck} diff --git a/pkgs/development/ocaml-modules/uuidm/default.nix b/pkgs/development/ocaml-modules/uuidm/default.nix index b260a05505bc..336d66cb0a64 100644 --- a/pkgs/development/ocaml-modules/uuidm/default.nix +++ b/pkgs/development/ocaml-modules/uuidm/default.nix @@ -8,7 +8,7 @@ stdenv.mkDerivation rec { sha256 = "1ivxb3hxn9bk62rmixx6px4fvn52s4yr1bpla7rgkcn8981v45r8"; }; - nativeBuildInputs = [ ocaml findlib ocamlbuild ]; + nativeBuildInputs = [ ocaml findlib ocamlbuild topkg ]; configurePlatforms = []; buildInputs = [ topkg cmdliner ]; diff --git a/pkgs/development/ocaml-modules/uunf/default.nix b/pkgs/development/ocaml-modules/uunf/default.nix index 073e6865fcdd..12031c53927c 100644 --- a/pkgs/development/ocaml-modules/uunf/default.nix +++ b/pkgs/development/ocaml-modules/uunf/default.nix @@ -18,10 +18,13 @@ stdenv.mkDerivation { sha256 = "sha256:17wv0nm3vvwcbzb1b09akw8jblmigyhbfmh1sy9lkb5756ni94a2"; }; - buildInputs = [ ocaml findlib ocamlbuild topkg uutf cmdliner ]; + nativeBuildInputs = [ ocaml findlib ocamlbuild topkg ]; + buildInputs = [ topkg uutf cmdliner ]; propagatedBuildInputs = [ uchar ]; + strictDeps = true; + prePatch = lib.optionalString stdenv.isAarch64 "ulimit -s 16384"; inherit (topkg) buildPhase installPhase; diff --git a/pkgs/development/ocaml-modules/uuseg/default.nix b/pkgs/development/ocaml-modules/uuseg/default.nix index 1fbcb57f3a6a..42642d2dc24e 100644 --- a/pkgs/development/ocaml-modules/uuseg/default.nix +++ b/pkgs/development/ocaml-modules/uuseg/default.nix @@ -15,9 +15,12 @@ stdenv.mkDerivation rec { sha256 = "sha256:1g9zyzjkhqxgbb9mh3cgaawscwdazv6y8kdqvmy6yhnimmfqv25p"; }; - buildInputs = [ ocaml findlib ocamlbuild cmdliner topkg uutf ]; + nativeBuildInputs = [ ocaml findlib ocamlbuild topkg ]; + buildInputs = [ topkg cmdliner uutf ]; propagatedBuildInputs = [ uucp ]; + strictDeps = true; + inherit (topkg) buildPhase installPhase; meta = with lib; { diff --git a/pkgs/development/ocaml-modules/uutf/default.nix b/pkgs/development/ocaml-modules/uutf/default.nix index e8179e369afa..6701c8650513 100644 --- a/pkgs/development/ocaml-modules/uutf/default.nix +++ b/pkgs/development/ocaml-modules/uutf/default.nix @@ -13,10 +13,12 @@ stdenv.mkDerivation rec { sha256 = "1nx1rly3qj23jzn9yk3x6fwqimcxjd84kv5859vvhdg56psq26p6"; }; - nativeBuildInputs = [ ocaml ocamlbuild findlib ]; - buildInputs = [ findlib topkg cmdliner ]; + nativeBuildInputs = [ ocaml ocamlbuild findlib topkg ]; + buildInputs = [ topkg cmdliner ]; propagatedBuildInputs = [ uchar ]; + strictDeps = true; + inherit (topkg) buildPhase installPhase; meta = with lib; { diff --git a/pkgs/development/ocaml-modules/uuuu/default.nix b/pkgs/development/ocaml-modules/uuuu/default.nix index 7d2eaac181df..4f400d1ec75b 100644 --- a/pkgs/development/ocaml-modules/uuuu/default.nix +++ b/pkgs/development/ocaml-modules/uuuu/default.nix @@ -24,10 +24,12 @@ buildDunePackage rec { useDune2 = true; - nativeBuildInputs = [ menhir ]; + nativeBuildInputs = [ menhir findlib ]; buildInputs = [ angstrom ]; + strictDeps = !doCheck; + checkInputs = [ re ]; doCheck = true; diff --git a/pkgs/development/ocaml-modules/vg/default.nix b/pkgs/development/ocaml-modules/vg/default.nix index a9a4c0d3d6b4..9dc7a4eeeeff 100644 --- a/pkgs/development/ocaml-modules/vg/default.nix +++ b/pkgs/development/ocaml-modules/vg/default.nix @@ -28,12 +28,15 @@ stdenv.mkDerivation { sha256 = "181sz6l5xrj5jvwg4m2yqsjzwp2s5h8v0mwhjcwbam90kdfx2nak"; }; - buildInputs = [ ocaml findlib ocamlbuild topkg ]; + nativeBuildInputs = [ ocaml findlib ocamlbuild ]; + buildInputs = [ topkg ]; propagatedBuildInputs = [ uchar result gg ] ++ optionals pdfBackend [ uutf otfm ] ++ optionals htmlcBackend [ js_of_ocaml js_of_ocaml-ppx ]; + strictDeps = true; + buildPhase = topkg.buildPhase + " --with-uutf ${boolToString pdfBackend}" + " --with-otfm ${boolToString pdfBackend}" diff --git a/pkgs/development/ocaml-modules/webbrowser/default.nix b/pkgs/development/ocaml-modules/webbrowser/default.nix index 6a21a1e1f751..a8adced93882 100644 --- a/pkgs/development/ocaml-modules/webbrowser/default.nix +++ b/pkgs/development/ocaml-modules/webbrowser/default.nix @@ -11,9 +11,11 @@ stdenv.mkDerivation rec { }; nativeBuildInputs = [ ocaml findlib ocamlbuild topkg ]; - buildInputs = []; + buildInputs = [ topkg ]; propagatedBuildInputs = [ astring bos cmdliner rresult ]; + strictDeps = true; + inherit (topkg) buildPhase installPhase; meta = { diff --git a/pkgs/development/ocaml-modules/xml-light/default.nix b/pkgs/development/ocaml-modules/xml-light/default.nix index 683d2ec214f1..8eb700a4d14a 100644 --- a/pkgs/development/ocaml-modules/xml-light/default.nix +++ b/pkgs/development/ocaml-modules/xml-light/default.nix @@ -11,7 +11,9 @@ stdenv.mkDerivation rec { sha256 = "sha256-2txmkl/ZN5RGaLQJmr+orqwB4CbFk2RpLJd4gr7kPiE="; }; - buildInputs = [ ocaml findlib ]; + nativeBuildInputs = [ ocaml findlib ]; + + strictDeps = true; createFindlibDestdir = true; diff --git a/pkgs/development/ocaml-modules/xmlm/default.nix b/pkgs/development/ocaml-modules/xmlm/default.nix index 43b0bf5faa7e..f7aa1fdf113e 100644 --- a/pkgs/development/ocaml-modules/xmlm/default.nix +++ b/pkgs/development/ocaml-modules/xmlm/default.nix @@ -17,7 +17,10 @@ stdenv.mkDerivation rec { sha256 = "1rrdxg5kh9zaqmgapy9bhdqyxbbvxxib3bdfg1vhw4rrkp1z0x8n"; }; - buildInputs = [ ocaml findlib ocamlbuild topkg ]; + nativeBuildInputs = [ ocaml findlib ocamlbuild topkg ]; + buildInputs = [ topkg ]; + + strictDeps = true; inherit (topkg) buildPhase installPhase; diff --git a/pkgs/development/ocaml-modules/z3/default.nix b/pkgs/development/ocaml-modules/z3/default.nix index 43fc5b245c8d..b17f29b43531 100644 --- a/pkgs/development/ocaml-modules/z3/default.nix +++ b/pkgs/development/ocaml-modules/z3/default.nix @@ -29,9 +29,11 @@ stdenv.mkDerivation { runHook postInstall ''; - buildInputs = [ findlib ]; + nativeBuildInputs = [ findlib ]; propagatedBuildInputs = [ zarith ]; + strictDeps = true; + meta = z3.meta // { description = "Z3 Theorem Prover (OCaml API)"; }; diff --git a/pkgs/development/python-modules/APScheduler/default.nix b/pkgs/development/python-modules/APScheduler/default.nix index 52d4ecdc3b71..9ba564fcaac5 100644 --- a/pkgs/development/python-modules/APScheduler/default.nix +++ b/pkgs/development/python-modules/APScheduler/default.nix @@ -18,7 +18,7 @@ buildPythonPackage rec { pname = "apscheduler"; - version = "3.8.1"; + version = "3.9.0.post1"; format = "setuptools"; disabled = pythonOlder "3.7"; @@ -26,7 +26,7 @@ buildPythonPackage rec { src = fetchPypi { pname = "APScheduler"; inherit version; - hash = "sha256-XPNE68+9qkiuF4wCnAVc7HvHpKR8IeMV5NHwi9NfI1U="; + hash = "sha256-I22/ckQgD/x5xsC5/30u0Q5+mF839I1KI/QUL0ln3LU="; }; buildInputs = [ diff --git a/pkgs/development/python-modules/aiogithubapi/default.nix b/pkgs/development/python-modules/aiogithubapi/default.nix index 747aa3f4d471..82c1145f9e3f 100644 --- a/pkgs/development/python-modules/aiogithubapi/default.nix +++ b/pkgs/development/python-modules/aiogithubapi/default.nix @@ -12,7 +12,7 @@ buildPythonPackage rec { pname = "aiogithubapi"; - version = "22.2.3"; + version = "22.2.4"; format = "setuptools"; disabled = pythonOlder "3.8"; @@ -21,7 +21,7 @@ buildPythonPackage rec { owner = "ludeeus"; repo = pname; rev = version; - sha256 = "sha256-oeUcyClTmOYF6vdhwiOp2L7x27DXEbujdtRV4NwGcYo="; + sha256 = "sha256-2RYpeyX88+eEilK/wLDJ6Ock1JBgIUPWbm/ZBJSQ2pg="; }; propagatedBuildInputs = [ diff --git a/pkgs/development/python-modules/celery/default.nix b/pkgs/development/python-modules/celery/default.nix index eabb3521416e..247d25bf420a 100644 --- a/pkgs/development/python-modules/celery/default.nix +++ b/pkgs/development/python-modules/celery/default.nix @@ -19,6 +19,7 @@ , pythonOlder , pytz , vine +, nixosTests }: buildPythonPackage rec { @@ -78,6 +79,10 @@ buildPythonPackage rec { "celery" ]; + passthru.tests = { + inherit (nixosTests) sourcehut; + }; + meta = with lib; { description = "Distributed task queue"; homepage = "https://github.com/celery/celery/"; diff --git a/pkgs/development/python-modules/django-dynamic-preferences/default.nix b/pkgs/development/python-modules/django-dynamic-preferences/default.nix index 9f04f25f4648..c9a0f10947ea 100644 --- a/pkgs/development/python-modules/django-dynamic-preferences/default.nix +++ b/pkgs/development/python-modules/django-dynamic-preferences/default.nix @@ -4,11 +4,11 @@ buildPythonPackage rec { pname = "django-dynamic-preferences"; - version = "1.11.0"; + version = "1.12.0"; src = fetchPypi { inherit pname version; - sha256 = "f214c938b5872a17647e2b2ccfd9ad00a90a3c6c4aa83fa65d3c5c446e7a66c7"; + sha256 = "sha256-zYmHz45N024BmtPoolxYm8S0EMpKZs38vlwlpRenwK0="; }; propagatedBuildInputs = [ six django persisting-theory ]; diff --git a/pkgs/development/python-modules/fontparts/default.nix b/pkgs/development/python-modules/fontparts/default.nix index 7c04c54d424c..7830cb117128 100644 --- a/pkgs/development/python-modules/fontparts/default.nix +++ b/pkgs/development/python-modules/fontparts/default.nix @@ -6,11 +6,11 @@ buildPythonPackage rec { pname = "fontParts"; - version = "0.10.2"; + version = "0.10.3"; src = fetchPypi { inherit pname version; - sha256 = "a3a3926e977f82ae19e6823760b59f2338085973da1eaad5badaf969f261a737"; + sha256 = "sha256-aHtjLHdc2/s3ppF8fz8qFAqxwEKMZJJAFNlBaZ7FAb4="; extension = "zip"; }; diff --git a/pkgs/development/python-modules/hg-evolve/default.nix b/pkgs/development/python-modules/hg-evolve/default.nix index 27c2167ff1dd..9b1264e738b4 100644 --- a/pkgs/development/python-modules/hg-evolve/default.nix +++ b/pkgs/development/python-modules/hg-evolve/default.nix @@ -6,11 +6,11 @@ buildPythonPackage rec { pname = "hg-evolve"; - version = "10.4.1"; + version = "10.5.0"; src = fetchPypi { inherit pname version; - sha256 = "b47d9a1e0af3d7b54edd646581ac3e3ab046a572368eeb22dfd89dff7f9964d2"; + sha256 = "sha256-p2zPUCc+KrsNxPChdW3ZgkOo+HJB7IcYtqh5Uh0Qnaw="; }; checkInputs = [ diff --git a/pkgs/development/python-modules/ipython/default.nix b/pkgs/development/python-modules/ipython/default.nix index c1c0b049dc8c..29e8627a7df2 100644 --- a/pkgs/development/python-modules/ipython/default.nix +++ b/pkgs/development/python-modules/ipython/default.nix @@ -26,7 +26,7 @@ , testpath }: -buildPythonPackage rec { +buildPythonPackage (rec { pname = "ipython"; version = "8.0.1"; format = "pyproject"; @@ -87,4 +87,8 @@ buildPythonPackage rec { license = licenses.bsd3; maintainers = with maintainers; [ bjornfor fridh ]; }; -} +} // lib.optionalAttrs stdenv.isDarwin { + disabledTests = [ + "test_clipboard_get" # uses pbpaste + ]; +}) diff --git a/pkgs/development/python-modules/pyamg/default.nix b/pkgs/development/python-modules/pyamg/default.nix index 59e807f11fcb..b2a230685cc8 100644 --- a/pkgs/development/python-modules/pyamg/default.nix +++ b/pkgs/development/python-modules/pyamg/default.nix @@ -10,11 +10,11 @@ buildPythonPackage rec { pname = "pyamg"; - version = "4.2.1"; + version = "4.2.2"; src = fetchPypi { inherit pname version; - sha256 = "48d9be622049d8363cda84125c45d18b89e0ab7d99be5a93c0246f375ebad344"; + sha256 = "sha256-mtrFqUwEustYlCcCiV1FQZm7dJKohu650xHdiNg6D6E="; }; nativeBuildInputs = [ diff --git a/pkgs/development/python-modules/python-izone/default.nix b/pkgs/development/python-modules/python-izone/default.nix index f1f8be9d3d27..e3ce43109725 100644 --- a/pkgs/development/python-modules/python-izone/default.nix +++ b/pkgs/development/python-modules/python-izone/default.nix @@ -11,7 +11,7 @@ buildPythonPackage rec { pname = "python-izone"; - version = "1.2.4"; + version = "1.2.7"; format = "setuptools"; disabled = pythonOlder "3.8"; @@ -20,7 +20,7 @@ buildPythonPackage rec { owner = "Swamp-Ig"; repo = "pizone"; rev = "v${version}"; - hash = "sha256-HV8aQlwJ7VbGlJU0HpS9fK/QnRfYrk4ijKTGPWj0Jww="; + hash = "sha256-CvFOhs56dfNerK3junWElQfTJi1YXA86zMbv0tseQC8="; }; propagatedBuildInputs = [ diff --git a/pkgs/development/python-modules/readability-lxml/default.nix b/pkgs/development/python-modules/readability-lxml/default.nix new file mode 100644 index 000000000000..e012bf75fe58 --- /dev/null +++ b/pkgs/development/python-modules/readability-lxml/default.nix @@ -0,0 +1,33 @@ +{ lib +, buildPythonPackage +, fetchPypi +, pytestCheckHook +, chardet +, cssselect +, lxml +}: + +buildPythonPackage rec { + pname = "readability-lxml"; + version = "0.8.1"; + + src = fetchPypi { + inherit pname version; + sha256 = "sha256-5R/qVrWQmq+IbTB9SOeeCWKTJVr6Vnt9CLypTSWxpOE="; + }; + + propagatedBuildInputs = [ chardet cssselect lxml ]; + + postPatch = '' + substituteInPlace setup.py --replace 'sys.platform == "darwin"' "False" + ''; + + doCheck = false; + + meta = with lib; { + description = "Fast python port of arc90's readability tool"; + homepage = "https://github.com/buriy/python-readability"; + license = licenses.apsl20; + maintainers = with maintainers; [ siraben ]; + }; +} diff --git a/pkgs/development/python-modules/rpyc/default.nix b/pkgs/development/python-modules/rpyc/default.nix index 61a2f1e75605..a8849fd17cd3 100644 --- a/pkgs/development/python-modules/rpyc/default.nix +++ b/pkgs/development/python-modules/rpyc/default.nix @@ -8,7 +8,7 @@ buildPythonPackage rec { pname = "rpyc"; - version = "5.0.1"; + version = "5.1.0"; format = "setuptools"; disabled = pythonOlder "3.6"; @@ -17,7 +17,7 @@ buildPythonPackage rec { owner = "tomerfiliba"; repo = pname; rev = version; - sha256 = "1g75k4valfjgab00xri4pf8c8bb2zxkhgkpyy44fjk7s5j66daa1"; + sha256 = "sha256-Xeot4QEgTZjvdO0ydmKjccp6zwC93Yp/HkRlSgyDf8k="; }; propagatedBuildInputs = [ diff --git a/pkgs/development/python-modules/weconnect-mqtt/default.nix b/pkgs/development/python-modules/weconnect-mqtt/default.nix index 82bf024c824c..42a3877cffc1 100644 --- a/pkgs/development/python-modules/weconnect-mqtt/default.nix +++ b/pkgs/development/python-modules/weconnect-mqtt/default.nix @@ -4,12 +4,13 @@ , pytestCheckHook , pythonOlder , paho-mqtt +, python-dateutil , weconnect }: buildPythonPackage rec { pname = "weconnect-mqtt"; - version = "0.29.1"; + version = "0.30.0"; format = "setuptools"; disabled = pythonOlder "3.7"; @@ -18,11 +19,12 @@ buildPythonPackage rec { owner = "tillsteinbach"; repo = "WeConnect-mqtt"; rev = "v${version}"; - sha256 = "sha256-/hFlH0naE62d2dyYIJD/+TuSQDOVgS8tQsSX8JuReC0="; + sha256 = "sha256-/mlN9gEEy8DJSFef0Pp2PLjHhwStKwANKSzw4nT19eM="; }; propagatedBuildInputs = [ paho-mqtt + python-dateutil weconnect ]; diff --git a/pkgs/development/python-modules/weconnect/default.nix b/pkgs/development/python-modules/weconnect/default.nix index 794fde431671..f5af3e5aa504 100644 --- a/pkgs/development/python-modules/weconnect/default.nix +++ b/pkgs/development/python-modules/weconnect/default.nix @@ -12,7 +12,7 @@ buildPythonPackage rec { pname = "weconnect"; - version = "0.36.4"; + version = "0.37.0"; format = "setuptools"; disabled = pythonOlder "3.7"; @@ -21,7 +21,7 @@ buildPythonPackage rec { owner = "tillsteinbach"; repo = "WeConnect-python"; rev = "v${version}"; - sha256 = "sha256-B4RZftGngV85Trm0iPj50WAv1M0H+sjQ9ABiGh070/M="; + sha256 = "sha256-h6jKtQt9vCh5bnhIqWLniUIJ41GxCs0uSi4vBVNs8tE="; }; propagatedBuildInputs = [ diff --git a/pkgs/development/tools/ocaml/camlidl/default.nix b/pkgs/development/tools/ocaml/camlidl/default.nix index 1c3da92273ce..5c3153a88493 100644 --- a/pkgs/development/tools/ocaml/camlidl/default.nix +++ b/pkgs/development/tools/ocaml/camlidl/default.nix @@ -13,7 +13,7 @@ stdenv.mkDerivation rec { sha256 = "0483cs66zsxsavcllpw1qqvyhxb39ddil3h72clcd69g7fyxazl5"; }; - buildInputs = [ ocaml ]; + nativeBuildInputs = [ ocaml ]; # build fails otherwise enableParallelBuilding = false; diff --git a/pkgs/development/tools/ocaml/merlin/4.x.nix b/pkgs/development/tools/ocaml/merlin/4.x.nix index 831360cd858d..2d030b2d1560 100644 --- a/pkgs/development/tools/ocaml/merlin/4.x.nix +++ b/pkgs/development/tools/ocaml/merlin/4.x.nix @@ -57,11 +57,19 @@ buildDunePackage { useDune2 = true; + strictDeps = true; + + nativeBuildInputs = [ + menhir + jq + ]; buildInputs = [ dot-merlin-reader yojson csexp result + menhirSdk + menhirLib ]; doCheck = true; @@ -71,12 +79,6 @@ buildDunePackage { dune runtest # filtering with -p disables tests runHook postCheck ''; - checkInputs = [ - jq - menhir - menhirLib - menhirSdk - ]; meta = with lib; { description = "An editor-independent tool to ease the development of programs in OCaml"; diff --git a/pkgs/development/tools/ocaml/merlin/default.nix b/pkgs/development/tools/ocaml/merlin/default.nix index 1c9b549d6120..3db5d1377831 100644 --- a/pkgs/development/tools/ocaml/merlin/default.nix +++ b/pkgs/development/tools/ocaml/merlin/default.nix @@ -1,5 +1,5 @@ { lib, fetchurl, buildDunePackage, substituteAll -, dot-merlin-reader, dune_2, yojson, csexp, result }: +, dot-merlin-reader, dune_2, yojson, csexp, result, menhirSdk }: buildDunePackage rec { pname = "merlin"; @@ -22,7 +22,9 @@ buildDunePackage rec { }) ]; - buildInputs = [ dot-merlin-reader yojson csexp result ]; + strictDeps = true; + + buildInputs = [ dot-merlin-reader yojson csexp result menhirSdk ]; meta = with lib; { description = "An editor-independent tool to ease the development of programs in OCaml"; diff --git a/pkgs/development/tools/ocaml/oasis/default.nix b/pkgs/development/tools/ocaml/oasis/default.nix index 10c7bf63aa41..d35ddbe210bf 100644 --- a/pkgs/development/tools/ocaml/oasis/default.nix +++ b/pkgs/development/tools/ocaml/oasis/default.nix @@ -13,11 +13,15 @@ stdenv.mkDerivation { createFindlibDestdir = true; - buildInputs = + strictDeps = true; + + nativeBuildInputs = [ ocaml findlib ocamlbuild ocamlmod ocamlify ]; + buildInputs = [ ocamlbuild ]; + configurePhase = '' runHook preConfigure ocaml setup.ml -configure --prefix $out diff --git a/pkgs/development/tools/ocaml/obelisk/default.nix b/pkgs/development/tools/ocaml/obelisk/default.nix index 0d92840a82be..a37a8c8b3927 100644 --- a/pkgs/development/tools/ocaml/obelisk/default.nix +++ b/pkgs/development/tools/ocaml/obelisk/default.nix @@ -1,4 +1,4 @@ -{ lib, fetchFromGitHub, ocamlPackages }: +{ lib, fetchFromGitHub, ocamlPackages, menhir }: ocamlPackages.buildDunePackage rec { pname = "obelisk"; @@ -11,7 +11,10 @@ ocamlPackages.buildDunePackage rec { sha256 = "1jjaqa2b7msl9qd3x7j34vdh1s9alq8hbvzk8a5srb4yyfyim15b"; }; - buildInputs = with ocamlPackages; [ menhir re ]; + strictDeps = true; + + nativeBuildInputs = [ menhir ]; + buildInputs = with ocamlPackages; [ re ]; meta = { description = "A simple tool which produces pretty-printed output from a Menhir parser file (.mly)"; diff --git a/pkgs/development/tools/ocaml/ocamlformat/generic.nix b/pkgs/development/tools/ocaml/ocamlformat/generic.nix index 5686e33f9b73..7cd3196317fa 100644 --- a/pkgs/development/tools/ocaml/ocamlformat/generic.nix +++ b/pkgs/development/tools/ocaml/ocamlformat/generic.nix @@ -48,6 +48,12 @@ buildDunePackage { useDune2 = true; + strictDeps = true; + + nativeBuildInputs = [ + menhir + ]; + buildInputs = if lib.versionAtLeast version "0.20.0" then [ @@ -57,7 +63,6 @@ buildDunePackage { either fix fpath - menhir menhirLib menhirSdk ocaml-version @@ -78,7 +83,6 @@ buildDunePackage { uuseg uutf fix - menhir menhirLib menhirSdk ocp-indent @@ -96,7 +100,6 @@ buildDunePackage { uuseg uutf fix - menhir menhirLib menhirSdk dune-build-info @@ -115,7 +118,6 @@ buildDunePackage { uuseg uutf fix - menhir menhirLib menhirSdk dune-build-info @@ -135,7 +137,6 @@ buildDunePackage { uuseg uutf fix - menhir menhirLib menhirSdk (ppxlib.override { version = "0.18.0"; }) @@ -154,7 +155,6 @@ buildDunePackage { uuseg uutf fix - menhir menhirLib menhirSdk ] else [ diff --git a/pkgs/development/tools/ocaml/ocp-index/default.nix b/pkgs/development/tools/ocaml/ocp-index/default.nix index 716e2679a94a..1ca8cfb5c52c 100644 --- a/pkgs/development/tools/ocaml/ocp-index/default.nix +++ b/pkgs/development/tools/ocaml/ocp-index/default.nix @@ -13,7 +13,10 @@ buildDunePackage rec { sha256 = "120w72fqymjp6ibicbp31jyx9yv34mdvgkr0zdfpzvfb7lgd8rc7"; }; - buildInputs = [ cppo cmdliner re ]; + strictDeps = true; + + nativeBuildInputs = [ cppo ]; + buildInputs = [ cmdliner re ]; propagatedBuildInputs = [ ocp-indent ]; diff --git a/pkgs/development/tools/ocaml/utop/default.nix b/pkgs/development/tools/ocaml/utop/default.nix index 913871314cfe..a31b6f6f6f9e 100644 --- a/pkgs/development/tools/ocaml/utop/default.nix +++ b/pkgs/development/tools/ocaml/utop/default.nix @@ -17,8 +17,7 @@ buildDunePackage rec { sha256 = "0mi571ifjzq4wcjarn8q1b7yl8nxjm1jfx3afac224lqwn6bhb2d"; }; - nativeBuildInputs = [ makeWrapper ]; - buildInputs = [ cppo ]; + nativeBuildInputs = [ makeWrapper cppo ]; propagatedBuildInputs = [ lambdaTerm ]; diff --git a/pkgs/development/tools/omnisharp-roslyn/default.nix b/pkgs/development/tools/omnisharp-roslyn/default.nix index 7fd1fff89d20..1099e7cc800c 100644 --- a/pkgs/development/tools/omnisharp-roslyn/default.nix +++ b/pkgs/development/tools/omnisharp-roslyn/default.nix @@ -98,7 +98,7 @@ in stdenv.mkDerivation rec { meta = with lib; { description = "OmniSharp based on roslyn workspaces"; homepage = "https://github.com/OmniSharp/omnisharp-roslyn"; - platforms = platforms.linux; + platforms = platforms.unix; license = licenses.mit; maintainers = with maintainers; [ tesq0 ericdallo corngood ]; }; diff --git a/pkgs/development/tools/scalafmt/default.nix b/pkgs/development/tools/scalafmt/default.nix index ee49ee1bf6d9..6a442424c4f7 100644 --- a/pkgs/development/tools/scalafmt/default.nix +++ b/pkgs/development/tools/scalafmt/default.nix @@ -2,7 +2,7 @@ let baseName = "scalafmt"; - version = "3.4.0"; + version = "3.4.3"; deps = stdenv.mkDerivation { name = "${baseName}-deps-${version}"; buildCommand = '' @@ -13,7 +13,7 @@ let ''; outputHashMode = "recursive"; outputHashAlgo = "sha256"; - outputHash = "l5F09bjRev2eBHKTMzojC7+USkW7qf3YtA2KSoN7MxM="; + outputHash = "FWGvhKK/VnvetnHS35/z1errYTRZCrcfWyEAHlhKApk="; }; in stdenv.mkDerivation { diff --git a/pkgs/games/lgogdownloader/default.nix b/pkgs/games/lgogdownloader/default.nix index 93f17dbb8135..0c40d537fcec 100644 --- a/pkgs/games/lgogdownloader/default.nix +++ b/pkgs/games/lgogdownloader/default.nix @@ -11,17 +11,19 @@ , rhash , tinyxml-2 , help2man +, testVersion +, lgogdownloader }: stdenv.mkDerivation rec { pname = "lgogdownloader"; - version = "3.8"; + version = "3.9"; src = fetchFromGitHub { owner = "Sude-"; repo = "lgogdownloader"; rev = "v${version}"; - sha256 = "sha256-LywFJCZevlhthOkAZo7JkXcPT9V6Zh28VD/MVQnMQjo="; + sha256 = "sha256-Qt9uTKsD0kQ6b9Y5+eC+YWpCHMIJGzP+pMfuUBt/fME="; }; nativeBuildInputs = [ @@ -40,15 +42,9 @@ stdenv.mkDerivation rec { tinyxml-2 ]; - doInstallCheck = true; - installCheckPhase = '' - if [[ "$("$out/bin/${pname}" --version)" == "LGOGDownloader ${version}" ]]; then - echo '${pname} smoke check passed' - else - echo '${pname} smoke check failed' - return 1 - fi - ''; + passthru.tests = { + version = testVersion { package = lgogdownloader; }; + }; meta = with lib; { description = "Unofficial downloader to GOG.com for Linux users. It uses the same API as the official GOGDownloader"; diff --git a/pkgs/games/steam/fhsenv.nix b/pkgs/games/steam/fhsenv.nix index eb90c6dd24da..447ff94bf9d3 100644 --- a/pkgs/games/steam/fhsenv.nix +++ b/pkgs/games/steam/fhsenv.nix @@ -117,6 +117,7 @@ in buildFHSUserEnv rec { xorg.xkeyboardconfig xorg.libpciaccess udev # shadow of the tomb raider + icu # dotnet runtime, e.g. stardew valley # screeps dependencies gtk3 diff --git a/pkgs/misc/scrcpy/default.nix b/pkgs/misc/scrcpy/default.nix index ef1d7b140144..75caa3fcfb3c 100644 --- a/pkgs/misc/scrcpy/default.nix +++ b/pkgs/misc/scrcpy/default.nix @@ -2,6 +2,7 @@ , meson , ninja , pkg-config +, installShellFiles , platform-tools , ffmpeg @@ -10,10 +11,10 @@ }: let - version = "1.22"; + version = "1.23"; prebuilt_server = fetchurl { url = "https://github.com/Genymobile/scrcpy/releases/download/v${version}/scrcpy-server-v${version}"; - sha256 = "sha256-wF0nPux1M8DhBiguAlTPBOf16PDCkgyjlEiGX6sqQZs="; + sha256 = "sha256-KpE/1HR4wLMG/KUHywvrYl5JoZ/5/Hq5BONu9bn+fmg="; }; in stdenv.mkDerivation rec { @@ -24,7 +25,7 @@ stdenv.mkDerivation rec { owner = "Genymobile"; repo = pname; rev = "v${version}"; - sha256 = "sha256-bYLvrCw6NNCZqgLWIEObnytgD74cE9pm/Z7dgB8S5x0="; + sha256 = "sha256-WR70wV+EfNFFkMFkffnwaTridd33CpJ0zTAlXYyjZgM="; }; # postPatch: @@ -36,11 +37,9 @@ stdenv.mkDerivation rec { --replace "SDL_RENDERER_ACCELERATED" "SDL_RENDERER_ACCELERATED || SDL_RENDERER_SOFTWARE" ''; - nativeBuildInputs = [ makeWrapper meson ninja pkg-config ]; + nativeBuildInputs = [ makeWrapper meson ninja pkg-config installShellFiles ]; - buildInputs = [ ffmpeg SDL2 ] ++ lib.optionals stdenv.isLinux [ - libusb1 - ]; + buildInputs = [ ffmpeg SDL2 libusb1 ]; # Manually install the server jar to prevent Meson from "fixing" it preConfigure = '' diff --git a/pkgs/os-specific/linux/kernel/linux-5.15.nix b/pkgs/os-specific/linux/kernel/linux-5.15.nix index 92fa05dbb027..e02262c79a47 100644 --- a/pkgs/os-specific/linux/kernel/linux-5.15.nix +++ b/pkgs/os-specific/linux/kernel/linux-5.15.nix @@ -1,4 +1,4 @@ -{ lib, buildPackages, fetchurl, perl, buildLinux, nixosTests, modDirVersionArg ? null, ... } @ args: +{ lib, stdenv, buildPackages, fetchurl, perl, buildLinux, nixosTests, modDirVersionArg ? null, ... } @ args: with lib; @@ -11,6 +11,8 @@ buildLinux (args // rec { # branchVersion needs to be x.y extraMeta.branch = versions.majorMinor version; + extraMeta.broken = stdenv.isi686; + src = fetchurl { url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz"; sha256 = "0y9qahkya5dfnr6g04w5ym0p6h9ixmcdhvgz9g2b64aaaazgz6a3"; diff --git a/pkgs/os-specific/linux/pam_p11/default.nix b/pkgs/os-specific/linux/pam_p11/default.nix index 1ed47ba53c2a..35199d3357b1 100644 --- a/pkgs/os-specific/linux/pam_p11/default.nix +++ b/pkgs/os-specific/linux/pam_p11/default.nix @@ -1,4 +1,4 @@ -{ lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config, openssl, libp11, pam }: +{ lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config, openssl, libp11, pam, libintl }: stdenv.mkDerivation rec { pname = "pam_p11"; @@ -12,7 +12,8 @@ stdenv.mkDerivation rec { }; nativeBuildInputs = [ autoreconfHook pkg-config ]; - buildInputs = [ pam openssl libp11 ]; + buildInputs = [ pam openssl libp11 ] + ++ lib.optionals stdenv.isDarwin [ libintl ]; meta = with lib; { homepage = "https://github.com/OpenSC/pam_p11"; diff --git a/pkgs/servers/minio/default.nix b/pkgs/servers/minio/default.nix index a3f151a19aba..e05d77d8a137 100644 --- a/pkgs/servers/minio/default.nix +++ b/pkgs/servers/minio/default.nix @@ -15,16 +15,16 @@ let in buildGoModule rec { pname = "minio"; - version = "2022-02-18T01-50-10Z"; + version = "2022-02-24T22-12-01Z"; src = fetchFromGitHub { owner = "minio"; repo = "minio"; rev = "RELEASE.${version}"; - sha256 = "sha256-4SUmnUrO89hRcr2w1v6qZiY3swlIZsPgmCHa+q+iFK0="; + sha256 = "sha256-7bnT+rxQw2h1wCkXjsYm8ystU9F4EUL0KASkJmqLgXQ="; }; - vendorSha256 = "sha256-5OJntT5ed4pmugB1yw0fa906McREzv5aPuC8vBVx5o0="; + vendorSha256 = "sha256-fYpnYMt6VrC2eem8XvK8oAR1B0rQ4DV6ZWo0cLNCjCs="; doCheck = false; diff --git a/pkgs/servers/pim6sd/default.nix b/pkgs/servers/pim6sd/default.nix index 0889deee92a9..e1bc6ce48ff4 100644 --- a/pkgs/servers/pim6sd/default.nix +++ b/pkgs/servers/pim6sd/default.nix @@ -19,5 +19,6 @@ stdenv.mkDerivation rec { license = licenses.bsd3; maintainers = with maintainers; [ hexa ]; platforms = platforms.unix; + broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/trunk/pim6sd.x86_64-darwin }; } diff --git a/pkgs/shells/bash/5.1.nix b/pkgs/shells/bash/5.1.nix index 3a11858747e6..a30c9a4a5072 100644 --- a/pkgs/shells/bash/5.1.nix +++ b/pkgs/shells/bash/5.1.nix @@ -10,6 +10,7 @@ , readline81 ? null , withDocs ? false , texinfo ? null +, forFHSEnv ? false }: with lib; @@ -39,8 +40,10 @@ stdenv.mkDerivation rec { NIX_CFLAGS_COMPILE = '' -DSYS_BASHRC="/etc/bashrc" -DSYS_BASH_LOGOUT="/etc/bash_logout" + '' + optionalString (!forFHSEnv) '' -DDEFAULT_PATH_VALUE="/no-such-path" -DSTANDARD_UTILS_PATH="/no-such-path" + '' + '' -DNON_INTERACTIVE_LOGIN_SHELLS -DSSH_SOURCE_BASHRC ''; diff --git a/pkgs/tools/X11/opentabletdriver/default.nix b/pkgs/tools/X11/opentabletdriver/default.nix index 87fc049a6d53..a8ba509c78c9 100644 --- a/pkgs/tools/X11/opentabletdriver/default.nix +++ b/pkgs/tools/X11/opentabletdriver/default.nix @@ -19,13 +19,13 @@ buildDotnetModule rec { pname = "OpenTabletDriver"; - version = "0.6.0.2"; + version = "0.6.0.3"; src = fetchFromGitHub { owner = "OpenTabletDriver"; repo = "OpenTabletDriver"; rev = "v${version}"; - sha256 = "sha256-qPlya5f12Cc1yAK8dliWelA7drAoeeIkFXOD+aDeToo="; + sha256 = "sha256-/Tow25ycQEK8HN1IaB12ZXCXEsuKItD+aYLF/IX8Eos="; }; debPkg = fetchurl { diff --git a/pkgs/tools/X11/opentabletdriver/deps.nix b/pkgs/tools/X11/opentabletdriver/deps.nix index 1cfb58299a29..8ead5fc8a118 100644 --- a/pkgs/tools/X11/opentabletdriver/deps.nix +++ b/pkgs/tools/X11/opentabletdriver/deps.nix @@ -71,7 +71,7 @@ (fetchNuGet { pname = "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.2"; sha256 = "0q0n5q1r1wnqmr5i5idsrd9ywl33k0js4pngkwq9p368mbxp8x1w"; }) (fetchNuGet { pname = "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "1p4dgxax6p7rlgj4q73k73rslcnz4wdcv8q2flg1s8ygwcm58ld5"; }) (fetchNuGet { pname = "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.2"; sha256 = "1x0g58pbpjrmj2x2qw17rdwwnrcl0wvim2hdwz48lixvwvp22n9c"; }) - (fetchNuGet { pname = "SharpZipLib"; version = "1.3.1"; sha256 = "09zypjfils38143da507s5fi4hzvdlz32wfav219hksnpl35y8x0"; }) + (fetchNuGet { pname = "SharpZipLib"; version = "1.3.3"; sha256 = "1gij11wfj1mqm10631cjpnhzw882bnzx699jzwhdqakxm1610q8x"; }) (fetchNuGet { pname = "StreamJsonRpc"; version = "2.6.121"; sha256 = "0xzvpk17w2skndzdg47j7gkrrvw6521db4mv8lc3v8hm97vs9m76"; }) (fetchNuGet { pname = "System.AppContext"; version = "4.3.0"; sha256 = "1649qvy3dar900z3g817h17nl8jp4ka5vcfmsr05kh0fshn7j3ya"; }) (fetchNuGet { pname = "System.Buffers"; version = "4.3.0"; sha256 = "0fgns20ispwrfqll4q1zc1waqcmylb3zc50ys9x8zlwxh9pmd9jy"; }) diff --git a/pkgs/tools/graphics/icoutils/default.nix b/pkgs/tools/graphics/icoutils/default.nix index 62b4ab6b303e..07f605a4cbff 100644 --- a/pkgs/tools/graphics/icoutils/default.nix +++ b/pkgs/tools/graphics/icoutils/default.nix @@ -13,6 +13,10 @@ stdenv.mkDerivation rec { buildInputs = [ libpng perl ]; propagatedBuildInputs = [ perlPackages.LWP ]; + # Fixes a build failure on aarch64-darwin. Define for all Darwin targets for when x86_64-darwin + # upgrades to a newer SDK. + NIX_CFLAGS_COMPILE = lib.optional stdenv.isDarwin "-DTARGET_OS_IPHONE=0"; + patchPhase = '' patchShebangs extresso/extresso patchShebangs extresso/extresso.in diff --git a/pkgs/tools/misc/aquosctl/default.nix b/pkgs/tools/misc/aquosctl/default.nix new file mode 100644 index 000000000000..d67005053b15 --- /dev/null +++ b/pkgs/tools/misc/aquosctl/default.nix @@ -0,0 +1,34 @@ +{ lib +, stdenv +, fetchFromGitHub +}: + +let + pname = "aquosctl"; +in +stdenv.mkDerivation { + inherit pname; + version = "unstable-2014-04-06"; + + src = fetchFromGitHub { + owner = "jdwhite"; + repo = pname; + rev = "b5e48d9ef848188b97dfb24bfcc99d5196cab5f6"; + hash = "sha256-FA3LR58KMG5RzSxxnOkVw1+inM/gMGPtw5+JQwSHBYs="; + }; + + installPhase = '' + runHook preInstall + install -Dm0755 aquosctl $out/bin/aquosctl + runHook postInstall + ''; + + meta = with lib; { + description = "Sharp Aquos television RS-232 control application"; + homepage = "https://github.com/jdwhite/aquosctl"; + license = licenses.mit; + maintainers = with maintainers; [ hexa ]; + platforms = platforms.linux; + }; +} + diff --git a/pkgs/tools/misc/pgbadger/default.nix b/pkgs/tools/misc/pgbadger/default.nix index d6e3588f6bb9..c7c4fd1f89b5 100644 --- a/pkgs/tools/misc/pgbadger/default.nix +++ b/pkgs/tools/misc/pgbadger/default.nix @@ -1,4 +1,4 @@ -{ buildPerlPackage, lib, fetchFromGitHub, which, bzip2, PodMarkdown, JSONXS +{ buildPerlPackage, stdenv, lib, fetchFromGitHub, which, bzip2, PodMarkdown, JSONXS , TextCSV }: buildPerlPackage rec { pname = "pgbadger"; @@ -27,5 +27,6 @@ buildPerlPackage rec { description = "A fast PostgreSQL Log Analyzer"; license = lib.licenses.postgresql; maintainers = lib.teams.determinatesystems.members; + broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/trunk/pgbadger.x86_64-darwin }; } diff --git a/pkgs/tools/networking/minio-client/default.nix b/pkgs/tools/networking/minio-client/default.nix index 7423abc82858..cee280c8ec9e 100644 --- a/pkgs/tools/networking/minio-client/default.nix +++ b/pkgs/tools/networking/minio-client/default.nix @@ -2,16 +2,16 @@ buildGoModule rec { pname = "minio-client"; - version = "2022-02-23T03-15-59Z"; + version = "2022-02-26T03-58-31Z"; src = fetchFromGitHub { owner = "minio"; repo = "mc"; rev = "RELEASE.${version}"; - sha256 = "sha256-XiCOVFVKc1emujrZ5I93steH606bgvvNzqZJZT1Dk2E="; + sha256 = "sha256-9JA9xwg+U8BQa66xPVghaGZQO5+efwG8/CqAXm2kg3Q="; }; - vendorSha256 = "sha256-6t2H8ub8tLPAschB5091rpPjOtT1eoGUFFaAm/le7No="; + vendorSha256 = "sha256-mk0ga3o6LeZ4uwV3vlP6qyFXLiORwNQLhXoCxSmvXsU="; subPackages = [ "." ]; diff --git a/pkgs/tools/package-management/nfpm/default.nix b/pkgs/tools/package-management/nfpm/default.nix index 459f21756bdf..dc877ee2d812 100644 --- a/pkgs/tools/package-management/nfpm/default.nix +++ b/pkgs/tools/package-management/nfpm/default.nix @@ -2,16 +2,16 @@ buildGoModule rec { pname = "nfpm"; - version = "2.13.0"; + version = "2.14.0"; src = fetchFromGitHub { owner = "goreleaser"; repo = pname; rev = "v${version}"; - sha256 = "sha256-7wEwTw/CMKS9K377oXfGkJoRnAmBLjvZTNZzRMorWEM="; + sha256 = "sha256-KZeamXMhTX8CbPR66f4ij29GsIvzSbDUZtla+EXPRG4="; }; - vendorSha256 = "sha256-VzkfqIWkcMwQeGzisw7JBQyTNVz+m7wF6N65MtOFyEc="; + vendorSha256 = "sha256-j4ebzVOzlmQwSkP8epDGClT7fhSUtC6uWdcoo+tFbnc="; doCheck = false; diff --git a/pkgs/tools/security/scorecard/default.nix b/pkgs/tools/security/scorecard/default.nix index a865e441f1ea..35ce8e900fb7 100644 --- a/pkgs/tools/security/scorecard/default.nix +++ b/pkgs/tools/security/scorecard/default.nix @@ -2,13 +2,13 @@ buildGoModule rec { pname = "scorecard"; - version = "4.0.1"; + version = "4.1.0"; src = fetchFromGitHub { owner = "ossf"; repo = pname; rev = "v${version}"; - sha256 = "sha256-xZBK2gIIxuvO2fuSYyWitO1xT8ItfBVqt2JRJoyH+gg="; + sha256 = "sha256-QOWQhuEEnwtHmQwl5WCCHcKMjwhgxn9xerR0Bxi3660="; # populate values otherwise taken care of by goreleaser, # unfortunately these require us to use git. By doing # this in postFetch we can delete .git afterwards and @@ -27,7 +27,7 @@ buildGoModule rec { find "$out" -name .git -print0 | xargs -0 rm -rf ''; }; - vendorSha256 = "sha256-NSV7mDn1efQAO4jm6bJm12ExDFTN76TkmD4r61V6D2Q="; + vendorSha256 = "sha256-AFadBzkRj0D1MXLHzexvomJ0cqirhW82tnNRGx/gChI="; # Install completions post-install nativeBuildInputs = [ installShellFiles ]; @@ -48,6 +48,8 @@ buildGoModule rec { getGoDirs() { go list ./... | grep -v e2e } + # Ensure other e2e tests that have escaped the e2e dir dont run + export SKIP_GINKGO=1 ''; postInstall = '' diff --git a/pkgs/tools/system/monit/default.nix b/pkgs/tools/system/monit/default.nix index 96c1c91591dd..0f116c046184 100644 --- a/pkgs/tools/system/monit/default.nix +++ b/pkgs/tools/system/monit/default.nix @@ -12,11 +12,11 @@ stdenv.mkDerivation rec { pname = "monit"; - version = "5.30.0"; + version = "5.31.0"; src = fetchurl { url = "${meta.homepage}dist/monit-${version}.tar.gz"; - sha256 = "sha256-6FZJ36hYb0/N00oClcVd3Wmw7abPvaxHEFomc9ELEAg="; + sha256 = "sha256-6ucfKJQftmPux0waWbaVRsZZUpeWVQvZwMVE6bUqwFU="; }; nativeBuildInputs = [ bison flex ]; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 0a2099114318..e3334f7e0e58 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -1025,6 +1025,8 @@ with pkgs; albert = libsForQt5.callPackage ../applications/misc/albert {}; + aquosctl = callPackage ../tools/misc/aquosctl { }; + arch-install-scripts = callPackage ../tools/misc/arch-install-scripts {}; auditwheel = callPackage ../tools/package-management/auditwheel { }; @@ -11553,6 +11555,12 @@ with pkgs; interactive = true; withDocs = true; }; + bashInteractiveFHS = callPackage ../shells/bash/5.1.nix { + binutils = stdenv.cc.bintools; + interactive = true; + withDocs = true; + forFHSEnv = true; + }; bash-completion = callPackage ../shells/bash/bash-completion { }; @@ -11842,6 +11850,7 @@ with pkgs; }; }; + clang_14 = llvmPackages_14.clang; clang_13 = llvmPackages_13.clang; clang_12 = llvmPackages_12.clang; clang_11 = llvmPackages_11.clang; @@ -12784,6 +12793,7 @@ with pkgs; lld_11 = llvmPackages_11.lld; lld_12 = llvmPackages_12.lld; lld_13 = llvmPackages_13.lld; + lld_14 = llvmPackages_14.lld; lldb = llvmPackages_latest.lldb; lldb_5 = llvmPackages_5.lldb; @@ -12795,11 +12805,13 @@ with pkgs; lldb_11 = llvmPackages_11.lldb; lldb_12 = llvmPackages_12.lldb; lldb_13 = llvmPackages_13.lldb; + lldb_14 = llvmPackages_14.lldb; llvm = llvmPackages.llvm; libllvm = llvmPackages.libllvm; llvm-manpages = llvmPackages.llvm-manpages; + llvm_14 = llvmPackages_14.llvm; llvm_13 = llvmPackages_13.llvm; llvm_12 = llvmPackages_12.llvm; llvm_11 = llvmPackages_11.llvm; @@ -12889,6 +12901,14 @@ with pkgs; stdenv = gcc7Stdenv; })); + llvmPackages_14 = recurseIntoAttrs (callPackage ../development/compilers/llvm/14 ({ + inherit (stdenvAdapters) overrideCC; + buildLlvmTools = buildPackages.llvmPackages_14.tools; + targetLlvmLibraries = targetPackages.llvmPackages_14.libraries or llvmPackages_14.libraries; + } // lib.optionalAttrs (stdenv.hostPlatform.isi686 && buildPackages.stdenv.cc.isGNU) { + stdenv = gcc7Stdenv; + })); + llvmPackages_latest = llvmPackages_13; llvmPackages_rocm = recurseIntoAttrs (callPackage ../development/compilers/llvm/rocm { }); @@ -15346,7 +15366,7 @@ with pkgs; nrfutil = callPackage ../development/tools/misc/nrfutil { }; - obelisk = callPackage ../development/tools/ocaml/obelisk { }; + obelisk = callPackage ../development/tools/ocaml/obelisk { menhir = ocamlPackages.menhir; }; obuild = callPackage ../development/tools/ocaml/obuild { }; @@ -30159,6 +30179,8 @@ with pkgs; zam-plugins = callPackage ../applications/audio/zam-plugins { }; + zammad = callPackage ../applications/networking/misc/zammad { }; + zanshin = libsForQt5.callPackage ../applications/office/zanshin { }; zathuraPkgs = callPackage ../applications/misc/zathura { }; diff --git a/pkgs/top-level/linux-kernels.nix b/pkgs/top-level/linux-kernels.nix index 6390bde6f930..8490870e5894 100644 --- a/pkgs/top-level/linux-kernels.nix +++ b/pkgs/top-level/linux-kernels.nix @@ -532,7 +532,7 @@ in { }); packageAliases = { - linux_default = packages.linux_5_10; + linux_default = if stdenv.hostPlatform.isi686 then packages.linux_5_10 else packages.linux_5_15; # Update this when adding the newest kernel major version! linux_latest = packages.linux_5_16; linux_mptcp = packages.linux_mptcp_95; diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index ed7845962cc8..d0952f9c2608 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -8569,6 +8569,8 @@ in { re-assert = callPackage ../development/python-modules/re-assert { }; + readability-lxml = callPackage ../development/python-modules/readability-lxml { }; + readchar = callPackage ../development/python-modules/readchar { }; readlike = callPackage ../development/python-modules/readlike { };