Files
nixpkgs/pkgs/by-name/vl/vlc/deterministic-plugin-cache.diff
Dark Steveneq 646b892680
Some checks failed
Periodic Merges (6h) / master → staging-nixos (push) Failing after 12m50s
Periodic Merges (6h) / master → staging-next (push) Failing after 12m54s
Periodic Merges (24h) / merge-base(master,staging) → haskell-updates (push) Failing after 11m54s
Periodic Merges (6h) / staging-next → staging (push) Failing after 12m13s
Periodic Merges (24h) / staging-next-25.05 → staging-25.05 (push) Failing after 13m24s
Periodic Merges (24h) / release-25.05 → staging-next-25.05 (push) Failing after 14m28s
push sheeet
2025-10-09 14:15:47 +02:00

29 lines
893 B
Diff

diff --git a/src/modules/bank.c b/src/modules/bank.c
index 52037d5b59..c94e71fef9 100644
--- a/src/modules/bank.c
+++ b/src/modules/bank.c
@@ -461,6 +461,11 @@ static void AllocatePluginDir (module_bank_t *bank, unsigned maxdepth,
closedir (dh);
}
+static int plugin_cmp(const void *first, const void *second)
+{
+ return strcmp((*(vlc_plugin_t **) first)->path, (*(vlc_plugin_t **) second)->path);
+}
+
/**
* Scans for plug-ins within a file system hierarchy.
* \param path base directory to browse
@@ -500,8 +505,10 @@ static void AllocatePluginPath(vlc_object_t *obj, const char *path,
vlc_plugin_store(plugin);
}
- if (mode & CACHE_WRITE_FILE)
+ if (mode & CACHE_WRITE_FILE) {
+ qsort(bank.plugins, bank.size, sizeof(vlc_plugin_t *), plugin_cmp);
CacheSave(obj, path, bank.plugins, bank.size);
+ }
free(bank.plugins);
}