Hello community, here is the log from the commit of package pkgconf for openSUSE:Factory checked in at 2020-06-21 19:03:40 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/pkgconf (Old) and /work/SRC/openSUSE:Factory/.pkgconf.new.3606 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "pkgconf" Sun Jun 21 19:03:40 2020 rev:8 rq:814689 version:1.7.3 Changes: -------- --- /work/SRC/openSUSE:Factory/pkgconf/pkgconf.changes 2019-08-19 20:46:40.397107669 +0200 +++ /work/SRC/openSUSE:Factory/.pkgconf.new.3606/pkgconf.changes 2020-06-21 19:53:34.966612035 +0200 @@ -1,0 +2,40 @@ +Mon Jun 15 08:30:00 UTC 2020 - Callum Farmer <[email protected]> + +- Update to 1.7.3 + - Bug fixes: + + Fix a possible out of boundary write when evaluating dependencies. + Patch by Tobias Stöckmann. + + Fix escaping logic on Windows. Patch by Vincent Torri. + + Fix out of boundary reads and writes with a malformed fragment. + Patches by Tobias Stöckmann. + + Fix a possible out of boundary write when evaluating tuples. + Patch by Tobias Stöckmann. + + Fix a windows-specific crash relating to path fixups. + + Fix a possible out of boundary access in the parser for the + cross-compile database. Patch by Tobias Stöckmann. + + Missing files for building with Meson are now included in the + tarball. Patch by Neal Gompa. + + Fix calculation of package atoms on Windows with paths that + use both directory separator characters. + + Fix a possible buffer overflow involving newline escaping. + Patch by Tobias Stöckmann. + + Fix an out of boundary access in the parser. + Patch by Tobias Stöckmann. + + Fix leakage of strcmp() result value in pkgconf_compare_version() + responses. + + Return the default personality if loading a cross-compile + personality file failed. + + Do not complain about newlines when validating package versions. + + Properly detect strndup() on Windows when building with Meson. + - Enhancements: + + A new --shared option and WantDefaultStatic cross-compile + configuration option have been added. This allows for toolchains + to specify that static linking should be used by default. + + Support for the PKG_CONFIG_MSVC_SYNTAX environment variable has + been added. Patch by Dan Kegel. + + Support for the PKGCONF_PKG_PKGF_DONT_MERGE_SPECIAL_FRAGMENTS + client flag which disables emulation of freedesktop.org pkg-config + fragment merging semantics has been added. + Patch by Karen Arutyunov. + +------------------------------------------------------------------- Old: ---- pkgconf-1.6.3.tar.xz New: ---- pkgconf-1.7.3.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ pkgconf.spec ++++++ --- /var/tmp/diff_new_pack.EKd1zd/_old 2020-06-21 19:53:35.394613397 +0200 +++ /var/tmp/diff_new_pack.EKd1zd/_new 2020-06-21 19:53:35.394613397 +0200 @@ -45,7 +45,7 @@ %global devname lib%{name}-devel Name: pkgconf -Version: 1.6.3 +Version: 1.7.3 Release: 0 Summary: Package compiler and linker metadata toolkit License: ISC ++++++ pkgconf-1.6.3.tar.xz -> pkgconf-1.7.3.tar.xz ++++++ ++++ 4861 lines of diff (skipped) ++++ retrying with extended exclude list diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/pkgconf-1.6.3/Makefile.am new/pkgconf-1.7.3/Makefile.am --- old/pkgconf-1.6.3/Makefile.am 2019-07-12 13:15:24.000000000 +0200 +++ new/pkgconf-1.7.3/Makefile.am 2020-05-25 13:59:35.000000000 +0200 @@ -15,6 +15,10 @@ lib_LTLIBRARIES = libpkgconf.la EXTRA_DIST = pkg.m4 \ + meson.build \ + meson_options.txt \ + libpkgconf/meson.build \ + libpkgconf/config.h.meson \ libpkgconf/win-dirent.h \ tests/lib-relocatable/lib/pkgconfig/foo.pc \ tests/lib1/argv-parse-2.pc \ @@ -93,7 +97,6 @@ tests/lib1/tuple-quoting.pc \ tests/lib1/empty-tuple.pc \ tests/lib1/orphaned-requires-private.pc \ - tests/test_env.sh \ $(test_scripts) \ doc/conf.py \ doc/extract.py \ @@ -110,7 +113,7 @@ doc/libpkgconf-queue.rst \ doc/libpkgconf-tuple.rst -test_scripts= \ +test_scripts= tests/meson.build \ tests/basic.sh \ tests/builtins.sh \ tests/conflicts.sh \ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/pkgconf-1.6.3/NEWS new/pkgconf-1.7.3/NEWS --- old/pkgconf-1.6.3/NEWS 2019-07-12 13:46:22.000000000 +0200 +++ new/pkgconf-1.7.3/NEWS 2020-05-31 03:20:25.000000000 +0200 @@ -1,6 +1,61 @@ Changes from previous version of pkgconf ======================================== +Changes from 1.7.2 to 1.7.3: +---------------------------- + +* Bug fixes: + - Fix a possible out of boundary write when evaluating dependencies. + Patch by Tobias Stöckmann. + - Fix escaping logic on Windows. Patch by Vincent Torri. + - Fix out of boundary reads and writes with a malformed fragment. + Patches by Tobias Stöckmann. + - Fix a possible out of boundary write when evaluating tuples. + Patch by Tobias Stöckmann. + +Changes from 1.7.1 to 1.7.2: +---------------------------- + +* Bug fixes: + - Fix a windows-specific crash relating to path fixups. + +Changes from 1.7.0 to 1.7.1: +---------------------------- + +* Bug fixes: + - Fix a possible out of boundary access in the parser for the + cross-compile database. Patch by Tobias Stöckmann. + - Missing files for building with Meson are now included in the + tarball. Patch by Neal Gompa. + - Fix calculation of package atoms on Windows with paths that + use both directory separator characters. + +Changes from 1.6.3 to 1.7.0: +---------------------------- + +* Bug fixes: + - Fix a possible buffer overflow involving newline escaping. + Patch by Tobias Stöckmann. + - Fix an out of boundary access in the parser. + Patch by Tobias Stöckmann. + - Fix leakage of strcmp() result value in pkgconf_compare_version() + responses. + - Return the default personality if loading a cross-compile + personality file failed. + - Do not complain about newlines when validating package versions. + - Properly detect strndup() on Windows when building with Meson. + +* Enhancements: + - A new --shared option and WantDefaultStatic cross-compile + configuration option have been added. This allows for toolchains + to specify that static linking should be used by default. + - Support for the PKG_CONFIG_MSVC_SYNTAX environment variable has + been added. Patch by Dan Kegel. + - Support for the PKGCONF_PKG_PKGF_DONT_MERGE_SPECIAL_FRAGMENTS + client flag which disables emulation of freedesktop.org pkg-config + fragment merging semantics has been added. + Patch by Karen Arutyunov. + Changes from 1.6.2 to 1.6.3: ---------------------------- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/pkgconf-1.6.3/cli/main.c new/pkgconf-1.7.3/cli/main.c --- old/pkgconf-1.6.3/cli/main.c 2019-07-12 13:53:12.000000000 +0200 +++ new/pkgconf-1.7.3/cli/main.c 2020-05-26 18:57:48.000000000 +0200 @@ -69,6 +69,7 @@ #define PKG_MSVC_SYNTAX (((uint64_t) 1) << 41) #define PKG_INTERNAL_CFLAGS (((uint64_t) 1) << 42) #define PKG_DUMP_PERSONALITY (((uint64_t) 1) << 43) +#define PKG_SHARED (((uint64_t) 1) << 44) static pkgconf_client_t pkg_client; static const pkgconf_fragment_render_ops_t *want_render_ops = NULL; @@ -602,7 +603,7 @@ about(void) { printf("%s %s\n", PACKAGE_NAME, PACKAGE_VERSION); - printf("Copyright (c) 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019\n"); + printf("Copyright (c) 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020\n"); printf(" pkgconf authors (see AUTHORS in documentation directory).\n\n"); printf("Permission to use, copy, modify, and/or distribute this software for any\n"); printf("purpose with or without fee is hereby granted, provided that the above\n"); @@ -664,6 +665,7 @@ printf(" --maximum-traverse-depth maximum allowed depth for dependency graph\n"); printf(" --static be more aggressive when computing dependency graph\n"); printf(" (for static linking)\n"); + printf(" --shared use a simplified dependency graph (usually default)\n"); printf(" --pure optimize a static dependency graph as if it were a normal\n"); printf(" dependency graph\n"); printf(" --env-only look only for package entries in PKG_CONFIG_PATH\n"); @@ -827,6 +829,7 @@ { "short-errors", no_argument, &want_flags, PKG_SHORT_ERRORS, }, { "maximum-traverse-depth", required_argument, NULL, 11, }, { "static", no_argument, &want_flags, PKG_STATIC, }, + { "shared", no_argument, &want_flags, PKG_SHARED, }, { "pure", no_argument, &want_flags, PKG_PURE, }, { "print-requires", no_argument, &want_flags, PKG_REQUIRES, }, { "print-variables", no_argument, &want_flags, PKG_VARIABLES|PKG_PRINT_ERRORS, }, @@ -968,7 +971,7 @@ pkgconf_client_init(&pkg_client, error_handler, NULL, personality); #ifndef PKGCONF_LITE - if ((want_flags & PKG_MSVC_SYNTAX) == PKG_MSVC_SYNTAX) + if ((want_flags & PKG_MSVC_SYNTAX) == PKG_MSVC_SYNTAX || getenv("PKG_CONFIG_MSVC_SYNTAX") != NULL) want_render_ops = msvc_renderer_get(); #endif @@ -1002,18 +1005,8 @@ if ((want_flags & PKG_VERSION) == PKG_VERSION) { - if (argc > 2) - { - fprintf(stderr, "%s: --version specified with other options or module names, assuming --modversion.\n", argv[0]); - - want_flags &= ~PKG_VERSION; - want_flags |= PKG_MODVERSION; - } - else - { - version(); - return EXIT_SUCCESS; - } + version(); + return EXIT_SUCCESS; } if ((want_flags & PKG_HELP) == PKG_HELP) @@ -1037,9 +1030,12 @@ if ((want_flags & PKG_IGNORE_CONFLICTS) == PKG_IGNORE_CONFLICTS || getenv("PKG_CONFIG_IGNORE_CONFLICTS") != NULL) want_client_flags |= PKGCONF_PKG_PKGF_SKIP_CONFLICTS; - if ((want_flags & PKG_STATIC) == PKG_STATIC) + if ((want_flags & PKG_STATIC) == PKG_STATIC || personality->want_default_static) want_client_flags |= (PKGCONF_PKG_PKGF_SEARCH_PRIVATE | PKGCONF_PKG_PKGF_MERGE_PRIVATE_FRAGMENTS); + if ((want_flags & PKG_SHARED) == PKG_SHARED) + want_client_flags &= ~(PKGCONF_PKG_PKGF_SEARCH_PRIVATE | PKGCONF_PKG_PKGF_MERGE_PRIVATE_FRAGMENTS); + /* if --static and --pure are both specified, then disable merge-back. * this allows for a --static which searches private modules, but has the same fragment behaviour as if * --static were disabled. see <https://github.com/pkgconf/pkgconf/issues/83> for rationale. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/pkgconf-1.6.3/compile new/pkgconf-1.7.3/compile --- old/pkgconf-1.6.3/compile 2018-03-26 01:44:27.000000000 +0200 +++ new/pkgconf-1.7.3/compile 2020-03-22 06:59:00.000000000 +0100 @@ -1,9 +1,9 @@ #! /bin/sh # Wrapper for compilers which do not understand '-c -o'. -scriptversion=2012-10-14.11; # UTC +scriptversion=2018-03-07.03; # UTC -# Copyright (C) 1999-2014 Free Software Foundation, Inc. +# Copyright (C) 1999-2020 Free Software Foundation, Inc. # Written by Tom Tromey <[email protected]>. # # This program is free software; you can redistribute it and/or modify @@ -17,7 +17,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. +# along with this program. If not, see <https://www.gnu.org/licenses/>. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a @@ -53,7 +53,7 @@ MINGW*) file_conv=mingw ;; - CYGWIN*) + CYGWIN* | MSYS*) file_conv=cygwin ;; *) @@ -67,7 +67,7 @@ mingw/*) file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'` ;; - cygwin/*) + cygwin/* | msys/*) file=`cygpath -m "$file" || echo "$file"` ;; wine/*) @@ -255,7 +255,8 @@ echo "compile $scriptversion" exit $? ;; - cl | *[/\\]cl | cl.exe | *[/\\]cl.exe ) + cl | *[/\\]cl | cl.exe | *[/\\]cl.exe | \ + icl | *[/\\]icl | icl.exe | *[/\\]icl.exe ) func_cl_wrapper "$@" # Doesn't return... ;; esac @@ -339,9 +340,9 @@ # Local Variables: # mode: shell-script # sh-indentation: 2 -# eval: (add-hook 'write-file-hooks 'time-stamp) +# eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-time-zone: "UTC" +# time-stamp-time-zone: "UTC0" # time-stamp-end: "; # UTC" # End: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/pkgconf-1.6.3/configure.ac new/pkgconf-1.7.3/configure.ac --- old/pkgconf-1.6.3/configure.ac 2019-07-12 13:53:33.000000000 +0200 +++ new/pkgconf-1.7.3/configure.ac 2020-05-31 03:20:25.000000000 +0200 @@ -12,9 +12,9 @@ dnl from the use of this software. AC_PREREQ([2.68]) -AC_INIT([pkgconf], [1.6.3], [https://todo.sr.ht/~kaniini/pkgconf]) +AC_INIT([pkgconf], [1.7.3], [https://todo.sr.ht/~kaniini/pkgconf]) AC_CONFIG_SRCDIR([cli/main.c]) -AC_CONFIG_MACRO_DIRS([m4]) +AC_CONFIG_MACRO_DIR([m4]) AX_CHECK_COMPILE_FLAG([-Wall], [CFLAGS="$CFLAGS -Wall"]) AX_CHECK_COMPILE_FLAG([-Wextra], [CFLAGS="$CFLAGS -Wextra"]) AX_CHECK_COMPILE_FLAG([-Wformat=2], [CFLAGS="$CFLAGS -Wformat=2"]) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/pkgconf-1.6.3/libpkgconf/argvsplit.c new/pkgconf-1.7.3/libpkgconf/argvsplit.c --- old/pkgconf-1.6.3/libpkgconf/argvsplit.c 2019-07-12 13:10:54.000000000 +0200 +++ new/pkgconf-1.7.3/libpkgconf/argvsplit.c 2020-05-30 20:36:46.000000000 +0200 @@ -118,9 +118,11 @@ } else switch(*src_iter) { +#ifndef _WIN32 case '\\': escaped = true; break; +#endif case '\"': case '\'': diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/pkgconf-1.6.3/libpkgconf/config.h.meson new/pkgconf-1.7.3/libpkgconf/config.h.meson --- old/pkgconf-1.6.3/libpkgconf/config.h.meson 1970-01-01 01:00:00.000000000 +0100 +++ new/pkgconf-1.7.3/libpkgconf/config.h.meson 2019-07-12 13:10:54.000000000 +0200 @@ -0,0 +1,89 @@ +/* libpkgconf/config.h.in. Generated from configure.ac by autoheader. */ + +/* Define to 1 if you have the `cygwin_conv_path' function. */ +#mesondefine HAVE_CYGWIN_CONV_PATH + +/* Define to 1 if you have the <dlfcn.h> header file. */ +#mesondefine HAVE_DLFCN_H + +/* Define to 1 if you have the <inttypes.h> header file. */ +#mesondefine HAVE_INTTYPES_H + +/* Define to 1 if you have the <memory.h> header file. */ +#mesondefine HAVE_MEMORY_H + +/* Define to 1 if you have the <stdint.h> header file. */ +#mesondefine HAVE_STDINT_H + +/* Define to 1 if you have the <stdlib.h> header file. */ +#mesondefine HAVE_STDLIB_H + +/* Define to 1 if you have the <strings.h> header file. */ +#mesondefine HAVE_STRINGS_H + +/* Define to 1 if you have the <string.h> header file. */ +#mesondefine HAVE_STRING_H + +/* Define to 1 if you have the `strlcat' function. */ +#mesondefine HAVE_STRLCAT + +/* Define to 1 if you have the `strlcpy' function. */ +#mesondefine HAVE_STRLCPY + +/* Define to 1 if you have the `strndup' function. */ +#mesondefine HAVE_STRNDUP + +/* Define to 1 if you have the <sys/stat.h> header file. */ +#mesondefine HAVE_SYS_STAT_H + +/* Define to 1 if you have the <sys/types.h> header file. */ +#mesondefine HAVE_SYS_TYPES_H + +/* Define to 1 if you have the <unistd.h> header file. */ +#mesondefine HAVE_UNISTD_H + +/* Define to the sub-directory where libtool stores uninstalled libraries. */ +#mesondefine LT_OBJDIR + +/* Name of package */ +#mesondefine PACKAGE + +/* Define to the address where bug reports for this package should be sent. */ +#mesondefine PACKAGE_BUGREPORT + +/* Define to the full name of this package. */ +#mesondefine PACKAGE_NAME + +/* Define to the full name and version of this package. */ +#mesondefine PACKAGE_STRING + +/* Define to the one symbol short name of this package. */ +#mesondefine PACKAGE_TARNAME + +/* Define to the home page for this package. */ +#mesondefine PACKAGE_URL + +/* Define to the version of this package. */ +#mesondefine PACKAGE_VERSION + +/* Define to 1 if you have the ANSI C header files. */ +#mesondefine STDC_HEADERS + +/* Version number of package */ +#mesondefine VERSION + +/* Enable large inode numbers on Mac OS X 10.5. */ +#ifndef _DARWIN_USE_64_BIT_INODE +# define _DARWIN_USE_64_BIT_INODE 1 +#endif + +/* Number of bits in a file offset, on hosts where this is settable. */ +#mesondefine _FILE_OFFSET_BITS + +/* Define for large files, on AIX-style hosts. */ +#mesondefine _LARGE_FILES + +#mesondefine PKG_DEFAULT_PATH +#mesondefine SYSTEM_INCLUDEDIR +#mesondefine SYSTEM_LIBDIR +#mesondefine PERSONALITY_PATH diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/pkgconf-1.6.3/libpkgconf/dependency.c new/pkgconf-1.7.3/libpkgconf/dependency.c --- old/pkgconf-1.6.3/libpkgconf/dependency.c 2019-07-12 13:10:54.000000000 +0200 +++ new/pkgconf-1.7.3/libpkgconf/dependency.c 2020-05-26 22:03:55.000000000 +0200 @@ -237,6 +237,7 @@ char *vstart = NULL; char *package = NULL, *version = NULL; char *cnameptr = cmpname; + char *cnameend = cmpname + PKGCONF_ITEM_SIZE - 1; memset(cmpname, '\0', sizeof cmpname); @@ -304,7 +305,8 @@ if (PKGCONF_IS_OPERATOR_CHAR(*ptr)) { state = INSIDE_OPERATOR; - *cnameptr++ = *ptr; + if (cnameptr < cnameend) + *cnameptr++ = *ptr; } break; @@ -315,7 +317,7 @@ state = AFTER_OPERATOR; compare = pkgconf_pkg_comparator_lookup_by_name(cmpname); } - else + else if (cnameptr < cnameend) *cnameptr++ = *ptr; break; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/pkgconf-1.6.3/libpkgconf/fileio.c new/pkgconf-1.7.3/libpkgconf/fileio.c --- old/pkgconf-1.6.3/libpkgconf/fileio.c 2019-07-12 13:10:54.000000000 +0200 +++ new/pkgconf-1.7.3/libpkgconf/fileio.c 2020-05-24 22:09:44.000000000 +0200 @@ -20,7 +20,7 @@ pkgconf_fgetline(char *line, size_t size, FILE *stream) { char *s = line; - char *end = line + size - 1; + char *end = line + size - 2; bool quoted = false; int c = '\0', c2; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/pkgconf-1.6.3/libpkgconf/fragment.c new/pkgconf-1.7.3/libpkgconf/fragment.c --- old/pkgconf-1.6.3/libpkgconf/fragment.c 2019-07-12 13:10:54.000000000 +0200 +++ new/pkgconf-1.7.3/libpkgconf/fragment.c 2020-05-31 03:05:53.000000000 +0200 @@ -137,7 +137,7 @@ if (*string == '\0') return; - if (!pkgconf_fragment_is_special(string)) + if (strlen(string) > 1 && !pkgconf_fragment_is_special(string)) { frag = calloc(sizeof(pkgconf_fragment_t), 1); @@ -150,7 +150,8 @@ { char mungebuf[PKGCONF_ITEM_SIZE]; - if (list->tail != NULL && list->tail->data != NULL) + if (list->tail != NULL && list->tail->data != NULL && + !(client->flags & PKGCONF_PKG_PKGF_DONT_MERGE_SPECIAL_FRAGMENTS)) { pkgconf_fragment_t *parent = list->tail->data; @@ -432,7 +433,11 @@ (*src > ')' && *src < '+') || (*src > ':' && *src < '=') || (*src > '=' && *src < '@') || - (*src > 'Z' && *src < '^') || + (*src > 'Z' && *src < '\\') || +#ifndef _WIN32 + (*src == '\\') || +#endif + (*src > '\\' && *src < '^') || (*src == '`') || (*src > 'z' && *src < '~') || (*src > '~'))) @@ -442,8 +447,10 @@ if ((ptrdiff_t)(dst - out) + 2 > outlen) { + ptrdiff_t offset = dst - out; outlen *= 2; out = realloc(out, outlen); + dst = out + offset; } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/pkgconf-1.6.3/libpkgconf/libpkgconf.h new/pkgconf-1.7.3/libpkgconf/libpkgconf.h --- old/pkgconf-1.6.3/libpkgconf/libpkgconf.h 2019-07-12 13:53:33.000000000 +0200 +++ new/pkgconf-1.7.3/libpkgconf/libpkgconf.h 2020-05-24 22:55:02.000000000 +0200 @@ -78,8 +78,8 @@ #define PKGCONF_FOREACH_LIST_ENTRY_REVERSE(tail, value) \ for ((value) = (tail); (value) != NULL; (value) = (value)->prev) -#define LIBPKGCONF_VERSION 10603 -#define LIBPKGCONF_VERSION_STR "1.6.3" +#define LIBPKGCONF_VERSION 10700 +#define LIBPKGCONF_VERSION_STR "1.7.0" struct pkgconf_fragment_ { pkgconf_node_t iter; @@ -202,6 +202,8 @@ pkgconf_list_t filter_includedirs; char *sysroot_dir; + + bool want_default_static; }; /* client.c */ @@ -247,6 +249,7 @@ #define PKGCONF_PKG_PKGF_DONT_RELOCATE_PATHS 0x0800 #define PKGCONF_PKG_PKGF_SIMPLIFY_ERRORS 0x1000 #define PKGCONF_PKG_PKGF_DONT_FILTER_INTERNAL_CFLAGS 0x2000 +#define PKGCONF_PKG_PKGF_DONT_MERGE_SPECIAL_FRAGMENTS 0x4000 #define PKGCONF_PKG_DEPF_INTERNAL 0x1 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/pkgconf-1.6.3/libpkgconf/meson.build new/pkgconf-1.7.3/libpkgconf/meson.build --- old/pkgconf-1.6.3/libpkgconf/meson.build 1970-01-01 01:00:00.000000000 +0100 +++ new/pkgconf-1.7.3/libpkgconf/meson.build 2019-07-12 13:10:54.000000000 +0200 @@ -0,0 +1,12 @@ +configure_file(input : 'config.h.meson', + output : 'config.h', + configuration : cdata) + + +install_headers('libpkgconf.h', + 'stdinc.h', + 'iter.h', + 'bsdstubs.h', + 'libpkgconf-api.h', + subdir : 'libpkgconf') + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/pkgconf-1.6.3/libpkgconf/parser.c new/pkgconf-1.7.3/libpkgconf/parser.c --- old/pkgconf-1.6.3/libpkgconf/parser.c 2019-07-12 13:10:54.000000000 +0200 +++ new/pkgconf-1.7.3/libpkgconf/parser.c 2020-05-24 22:10:18.000000000 +0200 @@ -66,8 +66,11 @@ } op = *p; - *p = '\0'; - p++; + if (*p != '\0') + { + *p = '\0'; + p++; + } while (*p && isspace((unsigned int)*p)) p++; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/pkgconf-1.6.3/libpkgconf/personality.c new/pkgconf-1.7.3/libpkgconf/personality.c --- old/pkgconf-1.6.3/libpkgconf/personality.c 2019-07-12 13:10:54.000000000 +0200 +++ new/pkgconf-1.7.3/libpkgconf/personality.c 2020-05-25 13:55:39.000000000 +0200 @@ -120,6 +120,16 @@ } personality_keyword_pair_t; static void +personality_bool_func(pkgconf_cross_personality_t *p, const char *keyword, const size_t lineno, const ptrdiff_t offset, char *value) +{ + (void) keyword; + (void) lineno; + + bool *dest = (bool *)((char *) p + offset); + *dest = strcasecmp(value, "true") || strcasecmp(value, "yes") || *value == '1'; +} + +static void personality_copy_func(pkgconf_cross_personality_t *p, const char *keyword, const size_t lineno, const ptrdiff_t offset, char *value) { (void) keyword; @@ -146,6 +156,7 @@ {"SystemIncludePaths", personality_fragment_func, offsetof(pkgconf_cross_personality_t, filter_includedirs)}, {"SystemLibraryPaths", personality_fragment_func, offsetof(pkgconf_cross_personality_t, filter_libdirs)}, {"Triplet", personality_copy_func, offsetof(pkgconf_cross_personality_t, name)}, + {"WantDefaultStatic", personality_bool_func, offsetof(pkgconf_cross_personality_t, want_default_static)}, }; static int @@ -168,7 +179,7 @@ pair->func(p, keyword, lineno, pair->offset, value); } -static const pkgconf_parser_operand_func_t personality_parser_ops[] = { +static const pkgconf_parser_operand_func_t personality_parser_ops[256] = { [':'] = (pkgconf_parser_operand_func_t) personality_keyword_set }; @@ -248,6 +259,6 @@ finish: pkgconf_path_free(&plist); - return out; + return out != NULL ? out : pkgconf_cross_personality_default(); } #endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/pkgconf-1.6.3/libpkgconf/pkg.c new/pkgconf-1.7.3/libpkgconf/pkg.c --- old/pkgconf-1.6.3/libpkgconf/pkg.c 2019-07-12 13:31:22.000000000 +0200 +++ new/pkgconf-1.7.3/libpkgconf/pkg.c 2020-05-26 21:41:17.000000000 +0200 @@ -99,7 +99,7 @@ /* cut at any detected whitespace */ p = pkgconf_tuple_parse(client, &pkg->vars, value); - len = strcspn(p, " \t\r\n"); + len = strcspn(p, " \t"); if (len) { i = p + (ptrdiff_t) len; @@ -381,13 +381,19 @@ /* make module id */ if ((idptr = strrchr(pkg->filename, PKG_DIR_SEP_S)) != NULL) idptr++; -#ifdef _WIN32 - else if ((idptr = strrchr(pkg->filename, '/')) != NULL) - idptr++; -#endif else idptr = pkg->filename; +#ifdef _WIN32 + /* On Windows, both \ and / are allowed in paths, so we have to chop both. + * strrchr() took us to the last \ in that case, so we just have to see if + * it is followed by a /. If so, lop it off. + */ + char *mungeptr; + if ((mungeptr = strrchr(idptr, '/')) != NULL) + idptr = mungeptr++; +#endif + pkg->id = strdup(idptr); idptr = strrchr(pkg->id, '.'); if (idptr) @@ -526,8 +532,8 @@ PKGCONF_TRACE(client, "trying path: %s for %s", path, name); - snprintf(locbuf, sizeof locbuf, "%s/%s" PKG_CONFIG_EXT, path, name); - snprintf(uninst_locbuf, sizeof uninst_locbuf, "%s/%s-uninstalled" PKG_CONFIG_EXT, path, name); + snprintf(locbuf, sizeof locbuf, "%s%c%s" PKG_CONFIG_EXT, path, PKG_DIR_SEP_S, name); + snprintf(uninst_locbuf, sizeof uninst_locbuf, "%s%c%s-uninstalled" PKG_CONFIG_EXT, path, PKG_DIR_SEP_S, name); if (!(client->flags & PKGCONF_PKG_PKGF_NO_UNINSTALLED) && (f = fopen(uninst_locbuf, "r")) != NULL) { @@ -860,8 +866,8 @@ } ret = strcmp(one, two); - if (ret) - return ret; + if (ret != 0) + return ret < 0 ? -1 : 1; *str1 = oldch1; *str2 = oldch2; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/pkgconf-1.6.3/libpkgconf/tuple.c new/pkgconf-1.7.3/libpkgconf/tuple.c --- old/pkgconf-1.6.3/libpkgconf/tuple.c 2019-07-12 13:10:54.000000000 +0200 +++ new/pkgconf-1.7.3/libpkgconf/tuple.c 2020-05-31 03:20:25.000000000 +0200 @@ -264,6 +264,7 @@ else if (*(ptr + 1) == '{') { char varname[PKGCONF_ITEM_SIZE]; + char *vend = varname + PKGCONF_ITEM_SIZE - 1; char *vptr = varname; const char *pptr; char *kv, *parsekv; @@ -273,7 +274,15 @@ for (pptr = ptr + 2; *pptr != '\0'; pptr++) { if (*pptr != '}') - *vptr++ = *pptr; + { + if (vptr < vend) + *vptr++ = *pptr; + else + { + *vptr = '\0'; + break; + } + } else { *vptr = '\0'; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/pkgconf-1.6.3/m4/libtool.m4 new/pkgconf-1.7.3/m4/libtool.m4 --- old/pkgconf-1.6.3/m4/libtool.m4 2016-08-20 14:34:31.000000000 +0200 +++ new/pkgconf-1.7.3/m4/libtool.m4 2019-11-27 15:10:12.000000000 +0100 @@ -728,6 +728,7 @@ cat <<_LT_EOF >> "$cfgfile" #! $SHELL # Generated automatically by $as_me ($PACKAGE) $VERSION +# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # NOTE: Changes made to this file will be lost: look at ltmain.sh. # Provide generalized library-building support services. @@ -2886,18 +2887,6 @@ dynamic_linker='GNU/Linux ld.so' ;; -netbsdelf*-gnu) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - dynamic_linker='NetBSD ld.elf_so' - ;; - netbsd*) version_type=sunos need_lib_prefix=no @@ -3557,7 +3546,7 @@ lt_cv_deplibs_check_method=pass_all ;; -netbsd* | netbsdelf*-gnu) +netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' else @@ -4435,7 +4424,7 @@ ;; esac ;; - netbsd* | netbsdelf*-gnu) + netbsd*) ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise @@ -4947,9 +4936,6 @@ ;; esac ;; - linux* | k*bsd*-gnu | gnu*) - _LT_TAGVAR(link_all_deplibs, $1)=no - ;; *) _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ;; @@ -5012,9 +4998,6 @@ openbsd* | bitrig*) with_gnu_ld=no ;; - linux* | k*bsd*-gnu | gnu*) - _LT_TAGVAR(link_all_deplibs, $1)=no - ;; esac _LT_TAGVAR(ld_shlibs, $1)=yes @@ -5269,7 +5252,7 @@ fi ;; - netbsd* | netbsdelf*-gnu) + netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= @@ -5790,7 +5773,6 @@ if test yes = "$lt_cv_irix_exported_symbol"; then _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations $wl-exports_file $wl$export_symbols -o $lib' fi - _LT_TAGVAR(link_all_deplibs, $1)=no else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -exports_file $export_symbols -o $lib' @@ -5812,7 +5794,7 @@ esac ;; - netbsd* | netbsdelf*-gnu) + netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/pkgconf-1.6.3/man/pkg.m4.7 new/pkgconf-1.7.3/man/pkg.m4.7 --- old/pkgconf-1.6.3/man/pkg.m4.7 2019-07-12 13:10:54.000000000 +0200 +++ new/pkgconf-1.7.3/man/pkg.m4.7 2019-07-12 16:54:02.000000000 +0200 @@ -87,7 +87,7 @@ .Nm DIRECTORY parameter. .Pp -This value can be overriden with the +This value can be overridden with the .Fl -with-pkgconfigdir configure parameter. .Ss "PKG_NOARCH_INSTALLDIR(DIRECTORY)" @@ -99,7 +99,7 @@ .Nm DIRECTORY parameter. .Pp -This value can be overriden with the +This value can be overridden with the .Fl -with-noarch-pkgconfigdir configure parameter. .Ss "PKG_CHECK_VAR(VARIABLE, MODULE, CONFIG-VARIABLE, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/pkgconf-1.6.3/man/pkgconf-personality.5 new/pkgconf-1.7.3/man/pkgconf-personality.5 --- old/pkgconf-1.6.3/man/pkgconf-personality.5 2019-07-12 13:10:54.000000000 +0200 +++ new/pkgconf-1.7.3/man/pkgconf-personality.5 2019-10-19 07:56:10.000000000 +0200 @@ -47,6 +47,11 @@ The property will be set to a list of fragments parsed from the text. The input text must be in a format that is suitable for passing to a POSIX shell without any shell expansions after variable substitution has been done. +Elements are delimited with a colon. +.\" +.It Boolean +The property will be set to true if the value is one of: true, yes or 1. +Otherwise it will be set to false. .\" .El .Ss PROPERTY KEYWORDS @@ -71,15 +76,18 @@ A list of directories that are included by default in the search path for libraries. (mandatory; fragment list) +.It WantDefaultStatic +If true, pkgconf will default to operating in static linking mode. +(optional; boolean; default is false) .\" +.El .Sh EXAMPLES An example .personality file: .Bd -literal # This is a comment Triplet: x86_64-pc-linux-gnu SysrootDir: /home/kaniini/sysroot/x86_64-pc-linux-gnu -DefaultSearchPaths: /home/kaniini/sysroot/x86_64-pc-linux-gnu/lib/pkgconfig \\ - /home/kaniini/sysroot/x86_64-pc-linux-gnu/share/pkgconfig +DefaultSearchPaths: /home/kaniini/sysroot/x86_64-pc-linux-gnu/lib/pkgconfig:/home/kaniini/sysroot/x86_64-pc-linux-gnu/share/pkgconfig SystemIncludePaths: /home/kaniini/sysroot/x86_64-pc-linux-gnu/include SystemLibraryPaths: /home/kaniini/sysroot/x86_64-pc-linux-gnu/lib .Ed diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/pkgconf-1.6.3/man/pkgconf.1 new/pkgconf-1.7.3/man/pkgconf.1 --- old/pkgconf-1.6.3/man/pkgconf.1 2019-07-12 13:10:54.000000000 +0200 +++ new/pkgconf-1.7.3/man/pkgconf.1 2020-05-24 22:33:35.000000000 +0200 @@ -58,6 +58,8 @@ .It Fl -static Compute a deeper dependency graph and use compiler/linker flags intended for static linking. +.It Fl -shared +Compute a simple dependency graph that is only suitable for shared linking. .It Fl -pure Treats the computed dependency graph as if it were pure. This is mainly intended for use with the @@ -209,6 +211,8 @@ The format of the debug log messages is implementation-specific. .It Va PKG_CONFIG_DONT_RELOCATE_PATHS If set, disables the path relocation feature. +.It Va PKG_CONFIG_MSVC_SYNTAX +If set, uses MSVC syntax for fragments. .El .Sh EXAMPLES Displaying the CFLAGS of a package: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/pkgconf-1.6.3/meson.build new/pkgconf-1.7.3/meson.build --- old/pkgconf-1.6.3/meson.build 1970-01-01 01:00:00.000000000 +0100 +++ new/pkgconf-1.7.3/meson.build 2020-05-31 03:20:25.000000000 +0200 @@ -0,0 +1,109 @@ +project('pkgconf', 'c', + version : '1.7.3', + license : 'ISC', + meson_version : '>=0.47') + + +cc = meson.get_compiler('c') + + +cdata = configuration_data() +check_headers = [ + ['HAVE_DLFCN_H', 'dlfcn.h'], + ['HAVE_INTTYPES_H', 'inttypes.h'], + ['HAVE_MEMORY_H', 'memory.h'], + ['HAVE_STDINT_H', 'stdint.h'], + ['HAVE_STDLIB_H', 'stdlib.h'], + ['HAVE_STRINGS_H', 'strings.h'], + ['HAVE_STRING_H', 'string.h'], + ['HAVE_SYS_STAT_H', 'sys/stat.h'], + ['HAVE_SYS_TYPES_H', 'sys/types.h'], + ['HAVE_UNISTD_H', 'unistd.h'], +] + +foreach h : check_headers + if cc.has_header(h.get(1)) + cdata.set(h.get(0), 1) + endif +endforeach + +check_functions = [ + ['HAVE_CYGWIN_CONV_PATH', 'cygwin_conv_path', 'sys/cygwin.h'], + ['HAVE_STRLCAT', 'strlcat', 'string.h'], + ['HAVE_STRLCPY', 'strlcpy', 'string.h'], + ['HAVE_STRNDUP', 'strndup', 'string.h'], +] + +foreach f : check_functions + if cc.has_function(f.get(1), prefix : '#include <' + f.get(2) + '>') and cc.has_header_symbol(f.get(2), f.get(1)) + cdata.set(f.get(0), 1) + endif +endforeach + +default_path = [] +foreach f : ['libdir', 'datadir'] + default_path += [join_paths(get_option('prefix'), get_option(f), 'pkgconfig')] +endforeach + +personality_path = [] +foreach f : ['libdir', 'datadir'] + personality_path += [join_paths(get_option('prefix'), get_option(f), 'pkgconfig', 'personality.d')] +endforeach + +cdata.set_quoted('SYSTEM_LIBDIR', join_paths(get_option('prefix'), get_option('libdir'))) +cdata.set_quoted('SYSTEM_INCLUDEDIR', join_paths(get_option('prefix'), get_option('includedir'))) +cdata.set_quoted('PKG_DEFAULT_PATH', ':'.join(default_path)) +cdata.set_quoted('PERSONALITY_PATH', ':'.join(personality_path)) +cdata.set_quoted('PACKAGE_NAME', meson.project_name()) +cdata.set_quoted('PACKAGE_VERSION', meson.project_version()) +cdata.set_quoted('PACKAGE_BUGREPORT', 'https://todo.sr.ht/~kaniini/pkgconf') +cdata.set('abs_top_srcdir', meson.source_root()) +cdata.set('abs_top_builddir', meson.build_root()) + + +subdir('libpkgconf') + +libpkgconf = shared_library('pkgconf', + 'libpkgconf/argvsplit.c', + 'libpkgconf/audit.c', + 'libpkgconf/bsdstubs.c', + 'libpkgconf/cache.c', + 'libpkgconf/client.c', + 'libpkgconf/dependency.c', + 'libpkgconf/fileio.c', + 'libpkgconf/fragment.c', + 'libpkgconf/parser.c', + 'libpkgconf/path.c', + 'libpkgconf/personality.c', + 'libpkgconf/pkg.c', + 'libpkgconf/queue.c', + 'libpkgconf/tuple.c', + c_args: '-DLIBPKGCONF_EXPORT', + install : true, + version : '3.0.0', + soversion : '3', +) + + +pkgconf_exe = executable('pkgconf', + 'cli/main.c', + 'cli/getopt_long.c', + 'cli/renderer-msvc.c', + link_with : libpkgconf, + install : true) + +if get_option('tests') + kyua_exe = find_program('kyua') + atf_sh_exe = find_program('atf-sh') + test('kyua', kyua_exe, args : ['--config=none', 'test', '--kyuafile=' + join_paths(meson.build_root(), 'Kyuafile'), '--build-root=' + meson.build_root()]) + + + configure_file(input : 'Kyuafile.in', output : 'Kyuafile', configuration : cdata) + subdir('tests') +endif + +install_man('man/pkgconf.1') +install_man('man/pkg.m4.7') +install_man('man/pc.5') +install_man('man/pkgconf-personality.5') +install_data('pkg.m4', install_dir: 'share/aclocal') diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/pkgconf-1.6.3/meson_options.txt new/pkgconf-1.7.3/meson_options.txt --- old/pkgconf-1.6.3/meson_options.txt 1970-01-01 01:00:00.000000000 +0100 +++ new/pkgconf-1.7.3/meson_options.txt 2019-08-23 19:48:06.000000000 +0200 @@ -0,0 +1,3 @@ +option('tests', type: 'boolean', value: true, + description: 'Build tests which depends upon the kyua framework' +) \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/pkgconf-1.6.3/missing new/pkgconf-1.7.3/missing --- old/pkgconf-1.6.3/missing 2018-03-26 01:44:27.000000000 +0200 +++ new/pkgconf-1.7.3/missing 2020-03-22 06:59:00.000000000 +0100 @@ -1,9 +1,9 @@ #! /bin/sh # Common wrapper for a few potentially missing GNU programs. -scriptversion=2013-10-28.13; # UTC +scriptversion=2018-03-07.03; # UTC -# Copyright (C) 1996-2014 Free Software Foundation, Inc. +# Copyright (C) 1996-2020 Free Software Foundation, Inc. # Originally written by Fran,cois Pinard <[email protected]>, 1996. # This program is free software; you can redistribute it and/or modify @@ -17,7 +17,7 @@ # GNU General Public License for more details. # You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. +# along with this program. If not, see <https://www.gnu.org/licenses/>. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a @@ -101,9 +101,9 @@ exit $st fi -perl_URL=http://www.perl.org/ -flex_URL=http://flex.sourceforge.net/ -gnu_software_URL=http://www.gnu.org/software +perl_URL=https://www.perl.org/ +flex_URL=https://github.com/westes/flex +gnu_software_URL=https://www.gnu.org/software program_details () { @@ -207,9 +207,9 @@ exit $st # Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) +# eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-time-zone: "UTC" +# time-stamp-time-zone: "UTC0" # time-stamp-end: "; # UTC" # End: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/pkgconf-1.6.3/tests/meson.build new/pkgconf-1.7.3/tests/meson.build --- old/pkgconf-1.6.3/tests/meson.build 1970-01-01 01:00:00.000000000 +0100 +++ new/pkgconf-1.7.3/tests/meson.build 2019-08-04 22:52:31.000000000 +0200 @@ -0,0 +1,23 @@ +configure_file(input: 'Kyuafile.in', output: 'Kyuafile', configuration: cdata) +configure_file(input: 'test_env.sh.in', output: 'test_env.sh', configuration: cdata) + + +tests = [ + 'basic', + 'builtins', + 'conflicts', + 'framework', + 'parser', + 'provides', + 'regress', + 'requires', + 'sysroot', + 'version' +] + + +# yuck +foreach test : tests + configure_file(input: test + '.sh', output: test, copy: true) + run_command('chmod', '755', join_paths(meson.build_root(), 'tests', test)) +endforeach diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/pkgconf-1.6.3/tests/test_env.sh new/pkgconf-1.7.3/tests/test_env.sh --- old/pkgconf-1.6.3/tests/test_env.sh 2019-07-12 13:55:32.000000000 +0200 +++ new/pkgconf-1.7.3/tests/test_env.sh 1970-01-01 01:00:00.000000000 +0100 @@ -1,51 +0,0 @@ -srcdir="$(atf_get_srcdir)" -export PATH="$srcdir/..:${PATH}" - -#--- begin windows kludge --- -# When building with Visual Studio, binaries are in a subdirectory named after the configration... -# and the configuration is not known unless you're in the IDE, or something. -# So just guess. This won't work well if you build more than one configuration. -the_configuration="" -for configuration in Debug Release RelWithDebInfo -do - if test -d "$srcdir/../$configuration" - then - if test "$the_configuration" != "" - then - echo "test_env.sh: FAIL: more than one configuration found" - exit 1 - fi - the_configuration=$configuration - export PATH="$srcdir/../${configuration}:${PATH}" - fi -done -#--- end kludge --- - -selfdir="/home/kaniini/pkgconf/tests" -LIBRARY_PATH_ENV="LIBRARY_PATH" -PATH_SEP=":" -SYSROOT_DIR="${selfdir}/test" -case "$(uname -s)" in -Msys|CYGWIN*) PATH_SEP=";";; -Haiku) LIBRARY_PATH_ENV="BELIBRARIES";; -esac - -prefix="/usr/local" -exec_prefix="${prefix}" -datarootdir="${prefix}/share" -pcpath="${exec_prefix}/lib/pkgconfig:${datarootdir}/pkgconfig" - -tests_init() -{ - TESTS="$@" - export TESTS - for t ; do - atf_test_case $t - done -} - -atf_init_test_cases() { - for t in ${TESTS}; do - atf_add_test_case $t - done -}
