Compare commits

..
5 Commits
Author SHA1 Message Date
Ole André Vadla Ravnås 7b7d9acf8c subprojects: Prepare for release 2025-06-19 23:25:44 +02:00
Ole André Vadla Ravnås 215076a0fa subprojects: Bump outdated 2025-06-19 23:23:46 +02:00
Ole André Vadla Ravnås 3d47bf73b4 package-manager: Only report installed packages
The toplevel packages that were left untouched should not be included.

Also simplify the install() logic while at it.
2025-06-19 23:22:22 +02:00
Ole André Vadla Ravnås 7d84a44c7f package-manager: Fix the lockfile up-to-date path 2025-06-19 22:55:19 +02:00
Ole André Vadla Ravnås ef7e0a88e0 package-manager: Fix two stylistic inconsistencies 2025-06-19 22:53:09 +02:00
2 changed files with 28 additions and 39 deletions

No files matched your search

+27 -38
View File
@@ -120,9 +120,8 @@ namespace Frida {
install_progress (PREPARING_DEPENDENCIES, 0.05);
var wanted_deps_list = new Gee.ArrayList<PackageDependency> ();
foreach (var dep_entry in manifest.dependencies.all.values) {
foreach (var dep_entry in manifest.dependencies.all.values)
wanted_deps_list.add (dep_entry);
}
foreach (var e in specs.entries) {
string name = e.key;
string version_spec_val = e.value;
@@ -192,55 +191,36 @@ namespace Frida {
double physical_completion_start_fraction = dep_processing_start_fraction + dep_processing_span;
double physical_completion_span = 0.05;
install_progress (AWAITING_COMPLETION, physical_completion_start_fraction);
foreach (var promise in all_physical_installs.values)
yield promise.future.wait_async (cancellable);
install_progress (DEPENDENCIES_PROCESSED, physical_completion_start_fraction + physical_completion_span);
var finished_installs = new Gee.HashMap<string, PackageLockEntry> ();
install_progress (AWAITING_COMPLETION, physical_completion_start_fraction);
foreach (var entry in all_physical_installs.entries)
finished_installs[entry.key] = yield entry.value.future.wait_async (cancellable);
install_progress (DEPENDENCIES_PROCESSED, physical_completion_start_fraction + physical_completion_span);
var pkgs = new Gee.ArrayList<Package> ();
var new_manifest_dependencies = new PackageDependencies ();
foreach (var future_ple in initial_dep_link_futures) {
PackageLockEntry ple = yield future_ple.wait_async (cancellable);
PackageDependency? original_wanted_dep = null;
foreach (var wd in wanted_deps_list) {
if (wd == ple.toplevel_dep) {
original_wanted_dep = wd;
break;
}
}
if (original_wanted_dep != null) {
new_manifest_dependencies.add (new PackageDependency () {
name = ple.name,
version = original_wanted_dep.derive_version (ple.version),
role = original_wanted_dep.role,
});
}
if (ple.newly_installed)
pkgs.add (new Package (ple.name, ple.version, ple.description));
var original_dep = ple.toplevel_dep;
new_manifest_dependencies.add (new PackageDependency () {
name = ple.name,
version = original_dep.derive_version (ple.version),
role = original_dep.role,
});
}
manifest.dependencies = new_manifest_dependencies;
double finalizing_manifests_start_fraction = physical_completion_start_fraction + physical_completion_span;
install_progress (FINALIZING_MANIFESTS, finalizing_manifests_start_fraction);
yield write_back_manifests (manifest, finished_installs, pkg_json_file, lock_file, cancellable);
install_progress (FINALIZING_MANIFESTS, 0.95);
var pkgs = new Gee.ArrayList<Package> ();
foreach (var future_ple in initial_dep_link_futures) {
PackageLockEntry e = yield future_ple.wait_async (cancellable);
bool already_added = false;
foreach (var p in pkgs) {
if (p.name == e.name && p.version == e.version) {
already_added = true;
break;
}
}
if (!already_added)
pkgs.add (new Package (e.name, e.version, e.description));
}
install_progress (COMPLETE, 1.0);
return new PackageInstallResult (new PackageList (pkgs));
}
@@ -346,6 +326,7 @@ namespace Frida {
public string? license;
public PackageDependencies dependencies;
public PackageDependency toplevel_dep;
public bool newly_installed;
}
private async Manifest load_manifest (File pkg_json_file, File lock_file, Cancellable? cancellable) throws Error, IOError {
@@ -390,6 +371,11 @@ namespace Frida {
lock_r.read_member ("name");
pli.name = lock_r.get_string_value ();
lock_r.end_member ();
} else {
int last_start = path_key.last_index_of ("/node_modules/");
pli.name = (last_start != -1)
? path_key[last_start + 14:]
: path_key[13:];
}
lock_r.read_member ("version");
@@ -645,7 +631,8 @@ namespace Frida {
rpd_promise.resolve (rpd);
break;
}
} catch (Error e) { }
} catch (Error e) {
}
}
}
}
@@ -693,7 +680,8 @@ namespace Frida {
description = existing_ple.description,
license = existing_ple.license,
dependencies = existing_ple.dependencies,
toplevel_dep = toplevel_dep
toplevel_dep = toplevel_dep,
newly_installed = existing_ple.newly_installed
});
return;
}
@@ -773,7 +761,8 @@ namespace Frida {
description = rpd.description,
license = rpd.license,
dependencies = rpd.dependencies,
toplevel_dep = toplevel_dep
toplevel_dep = toplevel_dep,
newly_installed = !already_correctly_installed
});
} catch (GLib.Error e) {
+1 -1
View File
@@ -1,6 +1,6 @@
[wrap-git]
url = https://github.com/frida/frida-gum.git
revision = 17.2.1
revision = 17.2.2
depth = 1
[provide]