···19192020stdenv.mkDerivation rec {
2121 pname = "bluemail";
2222- version = "1.131.4-1795";
2222+ version = "1.136.21-1884";
23232424 # Taking a snapshot of the DEB release because there are no tagged version releases.
2525 # For new versions, download the upstream release, extract it and check for the version string.
2626 # In case there's a new version, create a snapshot of it on https://archive.org before updating it here.
2727 src = fetchurl {
2828- url = "https://web.archive.org/web/20220921124548/https://download.bluemail.me/BlueMail/deb/BlueMail.deb";
2929- sha256 = "sha256-deO+D9HSfj1YEDSO5Io0MA7H8ZK9iFSRwB/e+8GkgOU=";
2828+ url = "https://archive.org/download/blue-mail-1.136.21-1884/BlueMail.deb";
2929+ hash = "sha256-L9mCUjsEcalVxzl80P3QzVclCKa75So2sBG7KjjBVIc=";
3030 };
31313232 nativeBuildInputs = [
···7878 pkgs, deps_map = _resolve(ctx.io, ctx.env, ctx.registries, pkgs, PRESERVE_NONE, ctx.julia_version)
79798080 if VERSION >= VersionNumber("1.9")
8181- # Check for weak dependencies, which appear on the RHS of the deps_map but not in pkgs.
8282- # Build up weak_name_to_uuid
8383- uuid_to_name = Dict()
8484- for pkg in pkgs
8585- uuid_to_name[pkg.uuid] = pkg.name
8686- end
8787- weak_name_to_uuid = Dict()
8888- for (uuid, deps) in pairs(deps_map)
8989- for (dep_name, dep_uuid) in pairs(deps)
9090- if !haskey(uuid_to_name, dep_uuid)
9191- weak_name_to_uuid[dep_name] = dep_uuid
8181+ while true
8282+ # Check for weak dependencies, which appear on the RHS of the deps_map but not in pkgs.
8383+ # Build up weak_name_to_uuid
8484+ uuid_to_name = Dict()
8585+ for pkg in pkgs
8686+ uuid_to_name[pkg.uuid] = pkg.name
8787+ end
8888+ weak_name_to_uuid = Dict()
8989+ for (uuid, deps) in pairs(deps_map)
9090+ for (dep_name, dep_uuid) in pairs(deps)
9191+ if !haskey(uuid_to_name, dep_uuid)
9292+ weak_name_to_uuid[dep_name] = dep_uuid
9393+ end
9294 end
9395 end
9494- end
9696+9797+ if isempty(weak_name_to_uuid)
9898+ break
9999+ end
951009696- # If we have nontrivial weak dependencies, add each one to the initial pkgs and then re-run _resolve
9797- if !isempty(weak_name_to_uuid)
101101+ # We have nontrivial weak dependencies, so add each one to the initial pkgs and then re-run _resolve
98102 println("Found weak dependencies: $(keys(weak_name_to_uuid))")
99103100104 orig_uuids = Set([pkg.uuid for pkg in orig_pkgs])
···113117 orig_pkgs[length(orig_pkgs)] = update_package_add(ctx, pkg, entry, false)
114118 end
115119116116- pkgs, deps_map = _resolve(ctx.io, ctx.env, ctx.registries, orig_pkgs, PRESERVE_NONE, ctx.julia_version)
120120+ global pkgs, deps_map = _resolve(ctx.io, ctx.env, ctx.registries, orig_pkgs, PRESERVE_NONE, ctx.julia_version)
117121 end
118122 end
119123 '';