From e00a421e51b5747696f89b6611eba1d0010dd501 Mon Sep 17 00:00:00 2001 From: Karen Arutyunov Date: Wed, 20 Oct 2021 17:06:32 +0300 Subject: Release version 1.6.3+5 Prevent dropping of -framework options in Libs value Change manifest builds value from all to host Disable the success build emails Cleanup comments in tests/basic/driver.c --- TODO | 4 ---- libpkgconf/README-DEV | 9 +++++---- libpkgconf/dont-drop-fragments.patch | 28 ++++++++++++++++++++++++++++ libpkgconf/libpkgconf/fragment.c | 17 ++++++++++------- libpkgconf/manifest | 6 +++--- libpkgconf/tests/api/driver.c | 10 +++++++--- libpkgconf/tests/api/testscript | 28 ++++++++++++++++++++++++++++ 7 files changed, 81 insertions(+), 21 deletions(-) create mode 100644 libpkgconf/dont-drop-fragments.patch diff --git a/TODO b/TODO index 1c33134..da80960 100644 --- a/TODO +++ b/TODO @@ -1,9 +1,5 @@ On the revision: -- Disable the success build emails. - -- Remove the redundant empty comment line in tests/basic/driver.c. - On the release: - Use legal{} target type for legal documentation (LICENSE, AUTHORS, etc). diff --git a/libpkgconf/README-DEV b/libpkgconf/README-DEV index 06cd737..1a1dd23 100644 --- a/libpkgconf/README-DEV +++ b/libpkgconf/README-DEV @@ -40,10 +40,7 @@ $ mv fragment.c fragment.c.orig $ cp fragment.c.orig fragment.c $ git apply dont-merge-fragments.patch - -Note that the patch is produces by the following command: - -$ git diff >dont-merge-fragments.patch +$ git apply dont-drop-fragments.patch Also fix the MinGW GCC 10 -Wformat warning: @@ -51,3 +48,7 @@ $ mv stdinc.h stdinc.h.orig $ cp stdinc.h.orig stdinc.h $ git apply fix-mingw-wformat-warning.patch + +Note that the patches are produces by commands similar to the following: + +$ git diff >dont-merge-fragments.patch diff --git a/libpkgconf/dont-drop-fragments.patch b/libpkgconf/dont-drop-fragments.patch new file mode 100644 index 0000000..82b3935 --- /dev/null +++ b/libpkgconf/dont-drop-fragments.patch @@ -0,0 +1,28 @@ +diff --git a/libpkgconf/libpkgconf/fragment.c b/libpkgconf/libpkgconf/fragment.c +index 37830c8..42d5f95 100644 +--- a/libpkgconf/libpkgconf/fragment.c ++++ b/libpkgconf/libpkgconf/fragment.c +@@ -341,13 +341,16 @@ pkgconf_fragment_copy(const pkgconf_client_t *client, pkgconf_list_t *list, cons + { + pkgconf_fragment_t *frag; + +- if ((frag = pkgconf_fragment_exists(list, base, client->flags, is_private)) != NULL) +- { +- if (pkgconf_fragment_should_merge(frag)) +- pkgconf_fragment_delete(list, frag); +- } +- else if (!is_private && !pkgconf_fragment_can_merge_back(base, client->flags, is_private) && (pkgconf_fragment_lookup(list, base) != NULL)) +- return; ++ if (!(client->flags & PKGCONF_PKG_PKGF_DONT_MERGE_SPECIAL_FRAGMENTS)) ++ { ++ if ((frag = pkgconf_fragment_exists(list, base, client->flags, is_private)) != NULL) ++ { ++ if (pkgconf_fragment_should_merge(frag)) ++ pkgconf_fragment_delete(list, frag); ++ } ++ else if (!is_private && !pkgconf_fragment_can_merge_back(base, client->flags, is_private) && (pkgconf_fragment_lookup(list, base) != NULL)) ++ return; ++ } + + frag = calloc(sizeof(pkgconf_fragment_t), 1); + diff --git a/libpkgconf/libpkgconf/fragment.c b/libpkgconf/libpkgconf/fragment.c index 37830c8..42d5f95 100644 --- a/libpkgconf/libpkgconf/fragment.c +++ b/libpkgconf/libpkgconf/fragment.c @@ -341,13 +341,16 @@ pkgconf_fragment_copy(const pkgconf_client_t *client, pkgconf_list_t *list, cons { pkgconf_fragment_t *frag; - if ((frag = pkgconf_fragment_exists(list, base, client->flags, is_private)) != NULL) - { - if (pkgconf_fragment_should_merge(frag)) - pkgconf_fragment_delete(list, frag); - } - else if (!is_private && !pkgconf_fragment_can_merge_back(base, client->flags, is_private) && (pkgconf_fragment_lookup(list, base) != NULL)) - return; + if (!(client->flags & PKGCONF_PKG_PKGF_DONT_MERGE_SPECIAL_FRAGMENTS)) + { + if ((frag = pkgconf_fragment_exists(list, base, client->flags, is_private)) != NULL) + { + if (pkgconf_fragment_should_merge(frag)) + pkgconf_fragment_delete(list, frag); + } + else if (!is_private && !pkgconf_fragment_can_merge_back(base, client->flags, is_private) && (pkgconf_fragment_lookup(list, base) != NULL)) + return; + } frag = calloc(sizeof(pkgconf_fragment_t), 1); diff --git a/libpkgconf/manifest b/libpkgconf/manifest index 6d3c37a..1fc3170 100644 --- a/libpkgconf/manifest +++ b/libpkgconf/manifest @@ -1,6 +1,6 @@ : 1 name: libpkgconf -version: 1.6.3+4 +version: 1.6.3+5 project: pkgconf summary: C library for retriving pkg-config compiler and linker flags license: ISC AND MIT ; ISC for the most of original files. @@ -12,7 +12,7 @@ src-url: https://git.build2.org/cgit/packaging/pkgconf/pkgconf/tree/libpkgconf/ package-url: https://git.build2.org/cgit/packaging/pkgconf/ email: packaging@build2.org ; Report issues at https://todo.sr.ht/~kaniini/pkgconf. package-email: packaging@build2.org ; Mailing list. -build-email: builds@build2.org -builds: all +build-warning-email: builds@build2.org +builds: host depends: * build2 >= 0.11.0 depends: * bpkg >= 0.11.0 diff --git a/libpkgconf/tests/api/driver.c b/libpkgconf/tests/api/driver.c index 15b0685..447a223 100644 --- a/libpkgconf/tests/api/driver.c +++ b/libpkgconf/tests/api/driver.c @@ -24,7 +24,6 @@ error_handler (const char* msg, const pkgconf_client_t* c, const void* d) /* Seems it always have a trailing newline char. Probably it still a good * idea to check if it is. Let's see if it ever be missed. - * */ fprintf (stderr, "%s", msg); return true; @@ -127,7 +126,9 @@ main (int argc, const char* argv[]) int r = 1; int max_depth = 2000; - pkgconf_client_set_flags (c, PKGCONF_PKG_PKGF_DONT_MERGE_SPECIAL_FRAGMENTS); + const int pkgconf_flags = PKGCONF_PKG_PKGF_DONT_MERGE_SPECIAL_FRAGMENTS; + + pkgconf_client_set_flags (c, pkgconf_flags); pkgconf_pkg_t* p = pkgconf_pkg_find (c, path); if (p != NULL) @@ -138,7 +139,9 @@ main (int argc, const char* argv[]) { case dump_cflags: { - pkgconf_client_set_flags (c, PKGCONF_PKG_PKGF_SEARCH_PRIVATE); + pkgconf_client_set_flags (c, + pkgconf_flags | + PKGCONF_PKG_PKGF_SEARCH_PRIVATE); pkgconf_list_t list = PKGCONF_LIST_INITIALIZER; e = pkgconf_pkg_cflags (c, p, &list, max_depth); @@ -152,6 +155,7 @@ main (int argc, const char* argv[]) case dump_libs: { pkgconf_client_set_flags (c, + pkgconf_flags | PKGCONF_PKG_PKGF_SEARCH_PRIVATE | PKGCONF_PKG_PKGF_MERGE_PRIVATE_FRAGMENTS); diff --git a/libpkgconf/tests/api/testscript b/libpkgconf/tests/api/testscript index 0382f87..39341ba 100644 --- a/libpkgconf/tests/api/testscript +++ b/libpkgconf/tests/api/testscript @@ -143,3 +143,31 @@ Security EOO } + +: no-drop +: +: Test that the -framework options are not dropped. +: +{ + +cat <=libfoo.pc + Name: libfoo + Description: Foo library + Version: 1.0 + Libs: -L/Users/build/install/lib -lcurl -framework Cocoa -framework IOKit -framework CoreFoundation + EOI + + f = $~/libfoo.pc + + : libs + : + $* --libs $f >>EOO + L /Users/build/install/lib + l curl + -framework + Cocoa + -framework + IOKit + -framework + CoreFoundation + EOO +} -- cgit v1.1