]> git.ipfire.org Git - pakfire.git/commitdiff
build: Only send Perl files to the perl dependency scripts
authorMichael Tremer <michael.tremer@ipfire.org>
Thu, 8 Dec 2022 15:11:51 +0000 (15:11 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Thu, 8 Dec 2022 15:11:51 +0000 (15:11 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/libpakfire/build.c

index a3a99b9967d196a981f0c0e95683099d883ccf31..9ce8c82e89e6b622942a27bd4daf70ed3c7d3659 100644 (file)
@@ -257,6 +257,7 @@ struct pakfire_find_deps_ctx {
        struct pakfire_package* pkg;
        int dep;
        struct pakfire_filelist* filelist;
+       const char* pattern;
 };
 
 static int pakfire_build_send_file(struct pakfire* pakfire,
@@ -282,7 +283,7 @@ static int pakfire_build_send_file(struct pakfire* pakfire,
 static int pakfire_build_send_filelist(struct pakfire* pakfire, void* data, int fd) {
        const struct pakfire_find_deps_ctx* ctx = (struct pakfire_find_deps_ctx*)data;
 
-       return pakfire_filelist_walk(ctx->filelist, NULL,
+       return pakfire_filelist_walk(ctx->filelist, ctx->pattern,
                pakfire_build_send_file, &fd);
 }
 
@@ -318,13 +319,14 @@ static int pakfire_build_process_deps(struct pakfire* pakfire,
 */
 static int pakfire_build_find_deps(struct pakfire_build* build,
                struct pakfire_package* pkg, int dep, const char* script,
-               struct pakfire_filelist* filelist) {
+               struct pakfire_filelist* filelist, const char* pattern) {
 
        // Construct the context
        struct pakfire_find_deps_ctx ctx = {
                .pkg      = pkg,
                .dep      = dep,
                .filelist = filelist,
+               .pattern  = pattern,
        };
        int r;
 
@@ -349,25 +351,25 @@ static int pakfire_build_find_dependencies(struct pakfire_build* build,
 
        // Find all provides
        r = pakfire_build_find_deps(build, pkg,
-               PAKFIRE_PKG_PROVIDES, "find-provides", filelist);
+               PAKFIRE_PKG_PROVIDES, "find-provides", filelist, NULL);
        if (r)
                return r;
 
        // Find all Perl provides
        r = pakfire_build_find_deps(build, pkg,
-               PAKFIRE_PKG_PROVIDES, "perl.prov", filelist);
+               PAKFIRE_PKG_PROVIDES, "perl.prov", filelist, "*.pm");
        if (r)
                return r;
 
        // Find all requires
        r = pakfire_build_find_deps(build, pkg,
-               PAKFIRE_PKG_REQUIRES, "find-requires", filelist);
+               PAKFIRE_PKG_REQUIRES, "find-requires", filelist, NULL);
        if (r)
                return r;
 
        // Find all Perl requires
        r = pakfire_build_find_deps(build, pkg,
-               PAKFIRE_PKG_REQUIRES, "perl.req", filelist);
+               PAKFIRE_PKG_REQUIRES, "perl.req", filelist, "*.pm");
        if (r)
                return r;