summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKaren Arutyunov <karen@codesynthesis.com>2020-07-24 17:28:11 +0300
committerKaren Arutyunov <karen@codesynthesis.com>2020-07-24 17:28:11 +0300
commit463d6e68a8f42423169e4359cc5c8636f6c92589 (patch)
treee43d5b69827070479905686f07b61c808a7b5e18
parenta881eefe7a5fe884e5b958bb2b861e58e90a044b (diff)
Release version 1.6.3+4v1.6.3+4
Fix GCC 10 -Wformat warning Canonicalize license in manifest Add glue buildfile Fix typo in .gitattributes
-rw-r--r--.gitattributes2
-rw-r--r--buildfile7
-rw-r--r--libpkgconf/README-DEV7
-rw-r--r--libpkgconf/fix-mingw-wformat-warning.patch53
-rw-r--r--libpkgconf/libpkgconf/libpkgconf.h12
-rw-r--r--[l---------]libpkgconf/libpkgconf/stdinc.h80
l---------libpkgconf/libpkgconf/stdinc.h.orig1
-rw-r--r--libpkgconf/manifest4
-rw-r--r--libpkgconf/tests/api/driver.c17
-rw-r--r--libpkgconf/tests/basic/driver.c18
10 files changed, 173 insertions, 28 deletions
diff --git a/.gitattributes b/.gitattributes
index 9fce1b0..1631641 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -10,7 +10,7 @@
#*.bat text eol=crlf
# Use `eol=lf` for files that should have the LF line ending both in the
-# working tree (even on Windows) in the repository.
+# working tree (even on Windows) and in the repository.
#
#*.sh text eol=lf
diff --git a/buildfile b/buildfile
new file mode 100644
index 0000000..c50bc3c
--- /dev/null
+++ b/buildfile
@@ -0,0 +1,7 @@
+# file : buildfile
+# license : ISC; see accompanying COPYING file
+
+# Glue buildfile that "pulls" all the packages.
+
+import pkgs = {*/ -upstream/}
+./: $pkgs
diff --git a/libpkgconf/README-DEV b/libpkgconf/README-DEV
index 37a1317..06cd737 100644
--- a/libpkgconf/README-DEV
+++ b/libpkgconf/README-DEV
@@ -44,3 +44,10 @@ $ git apply dont-merge-fragments.patch
Note that the patch is produces by the following command:
$ git diff >dont-merge-fragments.patch
+
+Also fix the MinGW GCC 10 -Wformat warning:
+
+$ mv stdinc.h stdinc.h.orig
+$ cp stdinc.h.orig stdinc.h
+
+$ git apply fix-mingw-wformat-warning.patch
diff --git a/libpkgconf/fix-mingw-wformat-warning.patch b/libpkgconf/fix-mingw-wformat-warning.patch
new file mode 100644
index 0000000..f4961c5
--- /dev/null
+++ b/libpkgconf/fix-mingw-wformat-warning.patch
@@ -0,0 +1,53 @@
+diff --git a/libpkgconf/libpkgconf/libpkgconf.h b/libpkgconf/libpkgconf/libpkgconf.h
+index 6f4c8b5..a7d9f9d 100644
+--- a/libpkgconf/libpkgconf/libpkgconf.h
++++ b/libpkgconf/libpkgconf/libpkgconf.h
+@@ -257,9 +257,17 @@ PKGCONF_API pkgconf_cross_personality_t *pkgconf_cross_personality_find(const ch
+ #define PKGCONF_PKG_ERRF_PACKAGE_CONFLICT 0x4
+ #define PKGCONF_PKG_ERRF_DEPGRAPH_BREAK 0x8
+
++/* Note that MinGW's printf() format semantics have changed starting GCC 10
++ * (see stdinc.h for details).
++ */
+ #if defined(__GNUC__) || defined(__INTEL_COMPILER)
+-#define PRINTFLIKE(fmtarg, firstvararg) \
+- __attribute__((__format__ (__printf__, fmtarg, firstvararg)))
++# if defined (_WIN32) && defined(__GNUC__) && __GNUC__ >= 10
++# define PRINTFLIKE(fmtarg, firstvararg) \
++ __attribute__((__format__ (gnu_printf, fmtarg, firstvararg)))
++# else
++# define PRINTFLIKE(fmtarg, firstvararg) \
++ __attribute__((__format__ (__printf__, fmtarg, firstvararg)))
++#endif
+ #define DEPRECATED \
+ __attribute__((deprecated))
+ #else
+diff --git a/libpkgconf/libpkgconf/stdinc.h b/libpkgconf/libpkgconf/stdinc.h
+index 6858503..361f27e 100644
+--- a/libpkgconf/libpkgconf/stdinc.h
++++ b/libpkgconf/libpkgconf/stdinc.h
+@@ -31,11 +31,21 @@
+ # include <windows.h>
+ # include <malloc.h>
+ # define PATH_DEV_NULL "nul"
+-# ifdef _WIN64
+-# define SIZE_FMT_SPECIFIER "%I64u"
++
++/* Note that MinGW's printf() format semantics have changed starting GCC 10.
++ * In particular, GCC 10 complains about MSVC's 'I64' length modifier but now
++ * accepts the standard (C99) 'z' modifier.
++ */
++# if defined(__GNUC__) && __GNUC__ >= 10
++# define SIZE_FMT_SPECIFIER "%zu"
+ # else
+-# define SIZE_FMT_SPECIFIER "%u"
++# ifdef _WIN64
++# define SIZE_FMT_SPECIFIER "%I64u"
++# else
++# define SIZE_FMT_SPECIFIER "%u"
++# endif
+ # endif
++
+ # ifndef ssize_t
+ # ifndef __MINGW32__
+ # include <BaseTsd.h>
diff --git a/libpkgconf/libpkgconf/libpkgconf.h b/libpkgconf/libpkgconf/libpkgconf.h
index 6f4c8b5..a7d9f9d 100644
--- a/libpkgconf/libpkgconf/libpkgconf.h
+++ b/libpkgconf/libpkgconf/libpkgconf.h
@@ -257,9 +257,17 @@ PKGCONF_API pkgconf_cross_personality_t *pkgconf_cross_personality_find(const ch
#define PKGCONF_PKG_ERRF_PACKAGE_CONFLICT 0x4
#define PKGCONF_PKG_ERRF_DEPGRAPH_BREAK 0x8
+/* Note that MinGW's printf() format semantics have changed starting GCC 10
+ * (see stdinc.h for details).
+ */
#if defined(__GNUC__) || defined(__INTEL_COMPILER)
-#define PRINTFLIKE(fmtarg, firstvararg) \
- __attribute__((__format__ (__printf__, fmtarg, firstvararg)))
+# if defined (_WIN32) && defined(__GNUC__) && __GNUC__ >= 10
+# define PRINTFLIKE(fmtarg, firstvararg) \
+ __attribute__((__format__ (gnu_printf, fmtarg, firstvararg)))
+# else
+# define PRINTFLIKE(fmtarg, firstvararg) \
+ __attribute__((__format__ (__printf__, fmtarg, firstvararg)))
+#endif
#define DEPRECATED \
__attribute__((deprecated))
#else
diff --git a/libpkgconf/libpkgconf/stdinc.h b/libpkgconf/libpkgconf/stdinc.h
index a0d601c..361f27e 120000..100644
--- a/libpkgconf/libpkgconf/stdinc.h
+++ b/libpkgconf/libpkgconf/stdinc.h
@@ -1 +1,79 @@
-../../upstream/libpkgconf/stdinc.h \ No newline at end of file
+/*
+ * stdinc.h
+ * pull in standard headers (including portability hacks)
+ *
+ * Copyright (c) 2012 pkgconf authors (see AUTHORS).
+ *
+ * Permission to use, copy, modify, and/or distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * This software is provided 'as is' and without any warranty, express or
+ * implied. In no event shall the authors be liable for any damages arising
+ * from the use of this software.
+ */
+
+#ifndef LIBPKGCONF_STDINC_H
+#define LIBPKGCONF_STDINC_H
+
+#include <ctype.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <stddef.h>
+#include <stdbool.h>
+#include <stdarg.h>
+#include <string.h>
+#include <sys/types.h>
+#include <stdint.h>
+
+#ifdef _WIN32
+# define WIN32_LEAN_AND_MEAN
+# include <windows.h>
+# include <malloc.h>
+# define PATH_DEV_NULL "nul"
+
+/* Note that MinGW's printf() format semantics have changed starting GCC 10.
+ * In particular, GCC 10 complains about MSVC's 'I64' length modifier but now
+ * accepts the standard (C99) 'z' modifier.
+ */
+# if defined(__GNUC__) && __GNUC__ >= 10
+# define SIZE_FMT_SPECIFIER "%zu"
+# else
+# ifdef _WIN64
+# define SIZE_FMT_SPECIFIER "%I64u"
+# else
+# define SIZE_FMT_SPECIFIER "%u"
+# endif
+# endif
+
+# ifndef ssize_t
+# ifndef __MINGW32__
+# include <BaseTsd.h>
+# else
+# include <basetsd.h>
+# endif
+# define ssize_t SSIZE_T
+# endif
+# ifndef __MINGW32__
+# include "win-dirent.h"
+# else
+# include <dirent.h>
+# endif
+# define PKGCONF_ITEM_SIZE (_MAX_PATH + 1024)
+#else
+# define PATH_DEV_NULL "/dev/null"
+# define SIZE_FMT_SPECIFIER "%zu"
+# ifdef __HAIKU__
+# include <FindDirectory.h>
+# endif
+# include <dirent.h>
+# include <unistd.h>
+# include <limits.h>
+# ifdef PATH_MAX
+# define PKGCONF_ITEM_SIZE (PATH_MAX + 1024)
+# else
+# define PKGCONF_ITEM_SIZE (4096 + 1024)
+# endif
+#endif
+
+#endif
diff --git a/libpkgconf/libpkgconf/stdinc.h.orig b/libpkgconf/libpkgconf/stdinc.h.orig
new file mode 120000
index 0000000..a0d601c
--- /dev/null
+++ b/libpkgconf/libpkgconf/stdinc.h.orig
@@ -0,0 +1 @@
+../../upstream/libpkgconf/stdinc.h \ No newline at end of file
diff --git a/libpkgconf/manifest b/libpkgconf/manifest
index 6099c0f..6d3c37a 100644
--- a/libpkgconf/manifest
+++ b/libpkgconf/manifest
@@ -1,9 +1,9 @@
: 1
name: libpkgconf
-version: 1.6.3+3
+version: 1.6.3+4
project: pkgconf
summary: C library for retriving pkg-config compiler and linker flags
-license: ISC, MIT ; ISC for the most of original files.
+license: ISC AND MIT ; ISC for the most of original files.
topics: C, build system, build toolchain
description-file: README
url: https://git.sr.ht/~kaniini/pkgconf
diff --git a/libpkgconf/tests/api/driver.c b/libpkgconf/tests/api/driver.c
index 6035771..15b0685 100644
--- a/libpkgconf/tests/api/driver.c
+++ b/libpkgconf/tests/api/driver.c
@@ -2,8 +2,7 @@
* license : ISC; see accompanying COPYING file
*/
-/*
- * Enable assertions.
+/* Enable assertions.
*/
#ifdef NDEBUG
# undef NDEBUG
@@ -23,8 +22,7 @@ error_handler (const char* msg, const pkgconf_client_t* c, const void* d)
(void) c; /* Unused. */
(void) d; /* Unused. */
- /*
- * Seems it always have a trailing newline char. Probably it still a good
+ /* 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.
*
*/
@@ -53,15 +51,14 @@ tuples_print (pkgconf_list_t *list)
{
pkgconf_tuple_t *tuple = node->data;
- // Skip the automatically added variable.
- //
+ /* Skip the automatically added variable.
+ */
if (strcmp (tuple->key, "pcfiledir") != 0)
printf("%s %s\n", tuple->key, tuple->value);
}
}
-/*
- * Usage: argv[0] (--cflags|--libs|--vars) <path>
+/* Usage: argv[0] (--cflags|--libs|--vars) <path>
*
* Print package compiler flags, linker flags or variable name/values one per
* line. The specified package file must have .pc extension.
@@ -115,8 +112,8 @@ main (int argc, const char* argv[])
assert (i + 1 == argc);
const char* path = argv[i];
- // Make sure the file has .pc extension.
- //
+ /* Make sure the file has .pc extension.
+ */
size_t n = strlen (path);
assert (n > 3 && strcmp (path + n - 3, ".pc") == 0);
diff --git a/libpkgconf/tests/basic/driver.c b/libpkgconf/tests/basic/driver.c
index c443d1a..b974592 100644
--- a/libpkgconf/tests/basic/driver.c
+++ b/libpkgconf/tests/basic/driver.c
@@ -2,8 +2,7 @@
* license : ISC; see accompanying COPYING file
*/
-/*
- * Enable assertions.
+/* Enable assertions.
*/
#ifdef NDEBUG
# undef NDEBUG
@@ -24,8 +23,7 @@ error_handler (const char* msg, const pkgconf_client_t* c, const void* d)
(void) c; /* Unused. */
(void) d; /* Unused. */
- /*
- * Seems it always have a trailing newline char. Probably it still a good
+ /* 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.
*
*/
@@ -45,8 +43,7 @@ print_and_free (pkgconf_list_t* list)
pkgconf_fragment_free (list);
}
-/*
- * Usage: argv[0] [--cflags] [--libs] (--with-path <dir>)* <name>
+/* Usage: argv[0] [--cflags] [--libs] (--with-path <dir>)* <name>
*
* Print package compiler and linker flags. If the package name has '.pc'
* extension it is interpreted as a file name. Prints all flags, as pkgconf
@@ -109,8 +106,7 @@ main (int argc, const char* argv[])
pkgconf_client_set_flags (c, client_flags);
- /*
- * Bootstrap the package search default paths if not specified explicitly.
+ /* Bootstrap the package search default paths if not specified explicitly.
*/
if (default_dirs)
pkgconf_client_dir_list_build (c, pkgconf_cross_personality_default ());
@@ -121,8 +117,7 @@ main (int argc, const char* argv[])
{
int e = PKGCONF_PKG_ERRF_OK;
- /*
- * Print C flags.
+ /* Print C flags.
*/
if (cflags)
{
@@ -139,8 +134,7 @@ main (int argc, const char* argv[])
pkgconf_client_set_flags (c, client_flags); /* Restore. */
}
- /*
- * Print libs.
+ /* Print libs.
*/
if (libs && e == PKGCONF_PKG_ERRF_OK)
{