diff --git a/flake.lock b/flake.lock --- a/flake.lock +++ b/flake.lock @@ -16,9 +16,26 @@ "type": "github" } }, + "nixpkgs-unstable": { + "locked": { + "lastModified": 1692190437, + "narHash": "sha256-yJUZzmzSmDYb9ONPnMQDru66RjZgGQZRvj3tQebkexk=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "9b2aa98db6b10503666a50f4eb93b2fc0d57bde5", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, "root": { "inputs": { "nixpkgs": "nixpkgs", + "nixpkgs-unstable": "nixpkgs-unstable", "utils": "utils" } }, diff --git a/flake.nix b/flake.nix --- a/flake.nix +++ b/flake.nix @@ -3,10 +3,12 @@ inputs = { utils.url = "github:numtide/flake-utils"; + nixpkgs-unstable.url = "github:nixos/nixpkgs/nixpkgs-unstable"; + # Do not update, used for EOL versions of mariaDB and arcanist+php8.0 nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable"; }; - outputs = { self, nixpkgs, utils, ... }: + outputs = { self, nixpkgs, nixpkgs-unstable, utils, ... }: let # Overlays allow for extending a package set, in this case, we are # extending nixpkgs with our devShell @@ -19,9 +21,20 @@ # Since we build for many systems (e.g. aarch64, x86_64-linux), we # create a helper function to help facilitate instantiation of the related # package set - pkgsForSystem = system: import nixpkgs { - inherit overlays system; - }; + pkgsForSystem = system: let + oldNixpkgs = import nixpkgs { inherit system; }; + in + import nixpkgs-unstable { + inherit system; + overlays = overlays ++ [ + # Re-introduce older packages that were removed in latest nixpkgs + (_: _: { + emscripten = oldNixpkgs.emscripten; # Changed signficantly + php80 = oldNixpkgs.php80; # Used for arcanist + mariadb = oldNixpkgs.mariadb_108; + }) + ]; + }; # utils.lib.eachSystem helps create a result set of expected flake outputs # of the form . diff --git a/native/ios/Podfile.lock b/native/ios/Podfile.lock --- a/native/ios/Podfile.lock +++ b/native/ios/Podfile.lock @@ -954,4 +954,4 @@ PODFILE CHECKSUM: 60ed9de6b14a66c6022cd82cafcb04594edd7eaf -COCOAPODS: 1.11.3 +COCOAPODS: 1.12.1 diff --git a/nix/dev-shell.nix b/nix/dev-shell.nix --- a/nix/dev-shell.nix +++ b/nix/dev-shell.nix @@ -32,7 +32,7 @@ , openjdk11 , openssl , pkg-config -, protobuf_3_15_cmake +, protobuf3_21 , python3 , rabbitmq-server , redis @@ -87,7 +87,7 @@ libuv localstack pkg-config - protobuf_3_15_cmake + protobuf3_21 grpc rabbitmq-server # runtime service ] ++ lib.optionals stdenv.isDarwin [ @@ -99,7 +99,7 @@ buildInputs = [ # protobuf exposes both a library and a command # thus should appear in both inputs - protobuf_3_15_cmake + protobuf3_21 aws-sdk-cpp # tunnelbroker corrosion # tunnelbroker double-conversion # tunnelbroker diff --git a/nix/overlay.nix b/nix/overlay.nix --- a/nix/overlay.nix +++ b/nix/overlay.nix @@ -10,36 +10,10 @@ prev: { - # Patch aws-sdk-cpp to automatically pick up header location - # specific to nixpkgs, as nixpkgs separates build-time and runtime - # depencenies (a saving of 400MB in header + generated files). - # In the case of c and c++, this means the header files are - # located in a separate directory from the libraries. - # - # From a developer perspective, this avoids having to manually specify - # the header location with `-DAWS_CORE_HEADER_FILE` each time - # one invokes `cmake` on the command line when using - # `find_package(AWSSDK COMPONENTS [comps])` - # - # For more information, see: - # - aws-sdk-cpp issue: https://github.com/aws/aws-sdk-cpp/issues/2009 - # - Nixpkgs fix: https://github.com/NixOS/nixpkgs/pull/182918 - aws-sdk-cpp = (prev.aws-sdk-cpp.overrideAttrs(oldAttrs:{ - postPatch = oldAttrs.postPatch + '' - substituteInPlace cmake/AWSSDKConfig.cmake \ - --replace 'C:/AWSSDK/''${AWSSDK_INSTALL_INCLUDEDIR}/aws/core' \ - 'C:/AWSSDK/''${AWSSDK_INSTALL_INCLUDEDIR}/aws/core" - "${placeholder "dev"}/include/aws/core' - ''; - })).override { - # avoid rebuildilng all 300+ apis - apis = [ "core" "s3" "dynamodb" ]; - }; - # add packages meant for just this repository amqp-cpp = prev.callPackage ./amqp-cpp.nix { }; - arcanist = prev.callPackage ./arcanist.nix { }; + arcanist = final.callPackage ./arcanist.nix { }; better-prompt = prev.callPackage ./better-prompt.nix { }; @@ -51,8 +25,6 @@ comm-blob = final.callPackage ./blob.nix { }; - protobuf_3_15_cmake = prev.callPackage ./protobuf_3_15.nix { }; - devShells.default = final.callPackage ./dev-shell.nix { }; devShell = final.devShells.default; @@ -60,10 +32,7 @@ localstack-up = prev.callPackage ./localstack-up.nix { }; - # Make our version of mariadb the default everywhere - mariadb = prev.mariadb_108; - - mariadb-up = prev.callPackage ./mariadb-up-mac.nix { }; + mariadb-up = final.callPackage ./mariadb-up-mac.nix { }; mysql-down = prev.callPackage ./mysql-down-linux.nix { }; @@ -71,15 +40,5 @@ redis-up = prev.callPackage ./redis-up-mac.nix { }; - olm = prev.olm.overrideAttrs(oldAttrs: { - # *.hh files aren't meant to be used externally - # so we patch installation to add it - postInstall = '' - cp \ - $NIX_BUILD_TOP/${oldAttrs.src.name}/include/olm/*.h* \ - ''${!outputDev}/include/olm - ''; - }); - rabbitmq-up = prev.callPackage ./rabbitmq-up-mac.nix { }; } diff --git a/scripts/comm-dev.sh b/scripts/comm-dev.sh --- a/scripts/comm-dev.sh +++ b/scripts/comm-dev.sh @@ -26,6 +26,7 @@ echo "Comm Development Services" echo "" echo "Commands:" + echo " clean - stop services and clean caches" echo " restart - restart services" echo " start - start localstack and rabbitmq" echo " stop - stop localstack and rabbitmq" @@ -36,6 +37,12 @@ services_command() { case "$1" in + clean) + "$0" services stop || true + log "Cleaning RabbitMQ cache" + [[ -n "${RABBITMQ_HOME}" ]] && \ + rm -r "${RABBITMQ_HOME}" + ;; restart) "$0" services stop || true "$0" services start