]> git.ipfire.org Git - pakfire.git/commitdiff
filelist: Change walk callback to refer to the context
authorMichael Tremer <michael.tremer@ipfire.org>
Fri, 25 Oct 2024 10:16:19 +0000 (10:16 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Fri, 25 Oct 2024 10:16:19 +0000 (10:16 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/libpakfire/build.c
src/libpakfire/compress.c
src/libpakfire/filelist.c
src/libpakfire/include/pakfire/filelist.h
src/libpakfire/package.c
src/libpakfire/packager.c
src/libpakfire/stripper.c

index ca356ec8429b8464f40a53f7972e204f62d56cd2..37993821f6ab40ac80c24da7a9259a8b9ce37d6c 100644 (file)
@@ -588,8 +588,8 @@ ERROR:
 }
 
 static int __pakfire_build_package_mark_config_files(
-               struct pakfire* pakfire, struct pakfire_file* file, void* data) {
-       char** configfiles = (char**)data;
+               struct pakfire_ctx* ctx, struct pakfire_file* file, void* data) {
+       char** configfiles = data;
        int r;
 
        // Skip anything that isn't a regular file
@@ -1077,8 +1077,7 @@ enum {
 */
 static int pakfire_build_post_process_files(struct pakfire_build* build,
                struct pakfire_filelist* filelist, const char* description,
-               int (*callback)(struct pakfire* pakfire, struct pakfire_file* file, void* data),
-               int flags) {
+               pakfire_filelist_walk_callback callback, int flags) {
        struct pakfire_filelist* removees = NULL;
        int r;
 
@@ -1125,7 +1124,7 @@ ERROR:
 }
 
 static int __pakfire_build_remove_static_libraries(
-               struct pakfire* pakfire, struct pakfire_file* file, void* data) {
+               struct pakfire_ctx* ctx, struct pakfire_file* file, void* data) {
        struct pakfire_filelist* removees = (struct pakfire_filelist*)data;
        char path[PATH_MAX];
        int r;
@@ -1159,7 +1158,7 @@ static int pakfire_build_post_remove_static_libraries(
 }
 
 static int __pakfire_build_remove_libtool_archives(
-               struct pakfire* pakfire, struct pakfire_file* file, void* data) {
+               struct pakfire_ctx* ctx, struct pakfire_file* file, void* data) {
        struct pakfire_filelist* removees = (struct pakfire_filelist*)data;
 
        // Find all libtool archive files
@@ -1178,7 +1177,7 @@ static int pakfire_build_post_remove_libtool_archives(
 }
 
 static int __pakfire_build_check_broken_symlinks(
-               struct pakfire* pakfire, struct pakfire_file* file, void* data) {
+               struct pakfire_ctx* ctx, struct pakfire_file* file, void* data) {
        struct pakfire_filelist* broken = (struct pakfire_filelist*)data;
        int r;
 
@@ -1214,7 +1213,7 @@ static int pakfire_build_post_check_broken_symlinks(
 */
 
 static int __pakfire_build_post_check_files(
-               struct pakfire* pakfire, struct pakfire_file* file, void* data) {
+               struct pakfire_ctx* ctx, struct pakfire_file* file, void* data) {
        struct pakfire_filelist* broken = (struct pakfire_filelist*)data;
        int issues = 0;
        int r;
@@ -1845,13 +1844,11 @@ ERROR:
        return r;
 }
 
-static int __pakfire_build_unpackaged_file(struct pakfire* pakfire,
-               struct pakfire_file* file, void* p) {
-       struct pakfire_build* build = p;
-
+static int __pakfire_build_unpackaged_file(
+               struct pakfire_ctx* ctx, struct pakfire_file* file, void* p) {
        char* s = pakfire_file_dump(file, PAKFIRE_FILE_DUMP_FULL);
        if (s) {
-               CTX_ERROR(build->ctx, "%s\n", s);
+               CTX_ERROR(ctx, "%s\n", s);
                free(s);
        }
 
@@ -1875,7 +1872,7 @@ static int pakfire_build_check_unpackaged_files(struct pakfire_build* build) {
        if (!pakfire_filelist_is_empty(filelist)) {
                CTX_ERROR(build->ctx, "Unpackaged files found:\n");
 
-               r = pakfire_filelist_walk(filelist, __pakfire_build_unpackaged_file, build, 0);
+               r = pakfire_filelist_walk(filelist, __pakfire_build_unpackaged_file, NULL, 0);
                if (r)
                        goto ERROR;
 
index df24650e264f7d4f484ea2883b0447dfd5ab6f05..fb06916e5043093844b7d275557ad3a0152b60a4 100644 (file)
@@ -581,7 +581,7 @@ static int pakfire_copy_data_from_file(struct pakfire_ctx* ctx,
        return 0;
 }
 
-static int __pakfire_compress_entry(struct pakfire* pakfire, struct pakfire_file* file,
+static int __pakfire_compress_entry(struct pakfire_ctx* ctx, struct pakfire_file* file,
                struct pakfire_compress* data, struct archive_entry* entry) {
        FILE* f = NULL;
        int r;
@@ -629,7 +629,7 @@ ERROR:
        return r;
 }
 
-static int __pakfire_compress(struct pakfire* pakfire, struct pakfire_file* file, void* p) {
+static int __pakfire_compress(struct pakfire_ctx* ctx, struct pakfire_file* file, void* p) {
        struct archive_entry* entry = NULL;
        struct archive_entry* sparse_entry = NULL;
        int r = 1;
@@ -651,14 +651,14 @@ static int __pakfire_compress(struct pakfire* pakfire, struct pakfire_file* file
 
        // Write the main entry
        if (entry) {
-               r = __pakfire_compress_entry(pakfire, file, data, entry);
+               r = __pakfire_compress_entry(ctx, file, data, entry);
                if (r)
                        goto ERROR;
        }
 
        // Write the sparse entry
        if (sparse_entry) {
-               r = __pakfire_compress_entry(pakfire, file, data, sparse_entry);
+               r = __pakfire_compress_entry(ctx, file, data, sparse_entry);
                if (r)
                        goto ERROR;
        }
@@ -683,7 +683,7 @@ static int __pakfire_compress(struct pakfire* pakfire, struct pakfire_file* file
                        break;
 
                // Write the entry to the archive
-               r = __pakfire_compress_entry(pakfire, file, data, entry);
+               r = __pakfire_compress_entry(ctx, file, data, entry);
                if (r)
                        goto ERROR;
        }
index f6823441674cadb07c357f9c34504e01a8547454..5dd3994be46d83036e276a0f8c5b8ec889fdb603 100644 (file)
@@ -211,7 +211,7 @@ static int pakfire_filelist_remove(struct pakfire_filelist* list, struct pakfire
 }
 
 static int __pakfire_filelist_remove_one(
-               struct pakfire* pakfire, struct pakfire_file* file, void* data) {
+               struct pakfire_ctx* ctx, struct pakfire_file* file, void* data) {
        struct pakfire_filelist* list = (struct pakfire_filelist*)data;
 
        // Remove the file from the given filelist
@@ -464,7 +464,7 @@ int pakfire_filelist_walk(struct pakfire_filelist* list,
                        pakfire_progress_increment(progress, 1);
 
                // Call the callback
-               r = callback(list->pakfire, element->file, data);
+               r = callback(list->ctx, element->file, data);
                if (r)
                        break;
        }
@@ -485,10 +485,8 @@ ERROR:
 }
 
 static int __pakfire_filelist_dump(
-               struct pakfire* pakfire, struct pakfire_file* file, void* data) {
-       int* flags = (int*)data;
-
-       struct pakfire_ctx* ctx = pakfire_ctx(pakfire);
+               struct pakfire_ctx* ctx, struct pakfire_file* file, void* data) {
+       int* flags = data;
 
        char* s = pakfire_file_dump(file, *flags);
        if (s) {
@@ -496,8 +494,6 @@ static int __pakfire_filelist_dump(
                free(s);
        }
 
-       pakfire_ctx_unref(ctx);
-
        return 0;
 }
 
@@ -585,9 +581,9 @@ int pakfire_filelist_cleanup(struct pakfire_filelist* list, int flags) {
        return 0;
 }
 
-static int __pakfire_filelist_matches_class(struct pakfire* pakfire,
-               struct pakfire_file* file, void* p) {
-       int* class = (int*)p;
+static int __pakfire_filelist_matches_class(
+               struct pakfire_ctx* ctx, struct pakfire_file* file, void* data) {
+       int* class = data;
 
        return pakfire_file_matches_class(file, *class);
 }
index 835610751ef64c993f9e2f431dc3129d79bec0fb..4f1d933011edbc55e138128c5773e7752abe8576 100644 (file)
@@ -24,6 +24,7 @@
 struct pakfire_filelist;
 
 #include <pakfire/file.h>
+#include <pakfire/pakfire.h>
 
 int pakfire_filelist_create(struct pakfire_filelist** list, struct pakfire* pakfire);
 
@@ -42,6 +43,8 @@ int pakfire_filelist_add(struct pakfire_filelist* list, struct pakfire_file* fil
 
 #include <stdio.h>
 
+#include <pakfire/ctx.h>
+
 size_t pakfire_filelist_total_size(struct pakfire_filelist* list);
 
 int pakfire_filelist_remove_all(struct pakfire_filelist* list,
@@ -58,7 +61,7 @@ int pakfire_filelist_scan(struct pakfire_filelist* list, const char* root,
 int pakfire_filelist_contains(struct pakfire_filelist* list, const char* pattern);
 
 typedef int (*pakfire_filelist_walk_callback)
-       (struct pakfire* pakfire, struct pakfire_file* file, void* data);
+       (struct pakfire_ctx* ctx, struct pakfire_file* file, void* data);
 
 enum pakfire_filelist_walk_flags {
        PAKFIRE_FILELIST_SHOW_PROGRESS = (1 << 0),
index 225661f2eb4b7e2ecfd8d162fcee7733689bc8e6..50e2cfb795e3cecfe3cad1765c2ca34c612ff967 100644 (file)
@@ -1970,9 +1970,9 @@ int pakfire_package_append_file(struct pakfire_package* pkg, const char* path) {
        return 0;
 }
 
-static int __pakfire_package_set_filelist(struct pakfire* pakfire,
-               struct pakfire_file* file, void* data) {
-       struct pakfire_package* pkg = (struct pakfire_package*)data;
+static int __pakfire_package_set_filelist(
+               struct pakfire_ctx* ctx, struct pakfire_file* file, void* data) {
+       struct pakfire_package* pkg = data;
 
        // Fetch the path
        const char* path = pakfire_file_get_path(file);
@@ -2108,8 +2108,8 @@ ERROR:
        return r;
 }
 
-static int __pakfire_package_add_json_filelist(struct pakfire* pakfire,
-               struct pakfire_file* file, void* data) {
+static int __pakfire_package_add_json_filelist(
+               struct pakfire_ctx* ctx, struct pakfire_file* file, void* data) {
        struct json_object* filelist = (struct json_object*)data;
        int r = 1;
 
index 619d3f9cae210164f07f634c1dada1a51bf12e47..fe60feb5fe66ec2f87d9d2c644f31a70dd71ee39 100644 (file)
@@ -650,9 +650,9 @@ ERROR:
        return r;
 }
 
-static int __pakfire_packager_add_files(struct pakfire* pakfire,
-               struct pakfire_file* file, void* p) {
-       struct pakfire_packager* packager = (struct pakfire_packager*)p;
+static int __pakfire_packager_add_files(
+               struct pakfire_ctx* ctx, struct pakfire_file* file, void* data) {
+       struct pakfire_packager* packager = data;
 
        return pakfire_packager_add_file(packager, file);
 }
index cc73f51936afd1c807fab008c125d8e9564d7f87..b867085866b836e9d049777c6c4309f1c4f3ef48 100644 (file)
@@ -108,7 +108,7 @@ struct pakfire_stripper* pakfire_stripper_unref(struct pakfire_stripper* strippe
 }
 
 static int pakfire_stripper_find_elf(
-               struct pakfire* pakfire, struct pakfire_file* file, void* data) {
+               struct pakfire_ctx* ctx, struct pakfire_file* file, void* data) {
        struct pakfire_stripper* stripper = data;
        int r;
 
@@ -159,7 +159,7 @@ static int pakfire_stripper_copy_source_file(
 }
 
 static int pakfire_stripper_copy_sources(
-               struct pakfire* pakfire, struct pakfire_file* file, void* data) {
+               struct pakfire_ctx* ctx, struct pakfire_file* file, void* data) {
        struct pakfire_stripper* stripper = data;
        const char* filename = NULL;
        char basename[PATH_MAX];
@@ -184,8 +184,7 @@ static int pakfire_stripper_copy_sources(
        // Read DWARF information
        dwarf = dwarf_begin(fileno(f), DWARF_C_READ);
        if (!dwarf) {
-               CTX_ERROR(stripper->ctx, "Could not initialize DWARF context: %s\n",
-                               dwarf_errmsg(-1));
+               CTX_ERROR(ctx, "Could not initialize DWARF context: %s\n", dwarf_errmsg(-1));
                r = -errno;
                goto ERROR;
        }
@@ -204,8 +203,7 @@ static int pakfire_stripper_copy_sources(
                // Fetch the source files
                r = dwarf_getsrcfiles(die, &files, &count);
                if (r < 0) {
-                       CTX_ERROR(stripper->ctx, "Could not fetch the source files: %s\n",
-                                       dwarf_errmsg(-1));
+                       CTX_ERROR(ctx, "Could not fetch the source files: %s\n", dwarf_errmsg(-1));
                        r = -errno;
                        goto ERROR;
                }
@@ -228,13 +226,12 @@ static int pakfire_stripper_copy_sources(
                        if (pakfire_string_startswith(basename, "<") && pakfire_string_endswith(basename, ">"))
                                continue;
 
-                       CTX_DEBUG(stripper->ctx, "Found source file: %s\n", filename);
+                       CTX_DEBUG(ctx, "Found source file: %s\n", filename);
 
                        // Copy the file
                        r = pakfire_stripper_copy_source_file(stripper, filename);
                        if (r < 0) {
-                               CTX_ERROR(stripper->ctx, "Could not copy source file %s: %s\n",
-                                       filename, strerror(-r));
+                               CTX_ERROR(ctx, "Could not copy source file %s: %s\n", filename, strerror(-r));
                                goto ERROR;
                        }
                }