Add patches to allow PGI to build Tar properly (#3177)
This commit is contained in:
parent
4397ce8118
commit
49d7f9db3d
25
var/spack/repos/builtin/packages/tar/argp-pgi.patch
Normal file
25
var/spack/repos/builtin/packages/tar/argp-pgi.patch
Normal file
@ -0,0 +1,25 @@
|
||||
From 8b3e22b18791f2148da46e60040fc4d9270936b5 Mon Sep 17 00:00:00 2001
|
||||
From: Paul Eggert <eggert@cs.ucla.edu>
|
||||
Date: Tue, 14 Feb 2017 08:40:23 -0800
|
||||
Subject: argp: port to PGI 16.10
|
||||
|
||||
* gnu/argp-pin.c (dummy): Declare as needed to make file nonempty.
|
||||
|
||||
diff --git a/gnu/argp-pin.c b/gnu/argp-pin.c
|
||||
index 261191f..64d831d 100644
|
||||
--- a/gnu/argp-pin.c
|
||||
+++ b/gnu/argp-pin.c
|
||||
@@ -24,3 +24,10 @@ char *program_invocation_short_name = 0;
|
||||
#ifndef HAVE_PROGRAM_INVOCATION_NAME
|
||||
char *program_invocation_name = 0;
|
||||
#endif
|
||||
+
|
||||
+#if (defined HAVE_PROGRAM_INVOCATION_SHORT_NAME \
|
||||
+ && defined HAVE_PROGRAM_INVOCATION_NAME)
|
||||
+/* This declaration is solely to ensure that after preprocessing
|
||||
+ this file is never empty. */
|
||||
+typedef int dummy;
|
||||
+#endif
|
||||
--
|
||||
cgit v1.0-41-gc330
|
||||
|
10
var/spack/repos/builtin/packages/tar/config-pgi.patch
Normal file
10
var/spack/repos/builtin/packages/tar/config-pgi.patch
Normal file
@ -0,0 +1,10 @@
|
||||
--- a/config.h.in
|
||||
+++ b/config.h.in
|
||||
@@ -2182,6 +2182,7 @@
|
||||
? defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__ \
|
||||
: (199901L <= __STDC_VERSION__ \
|
||||
&& !defined __HP_cc \
|
||||
+ && !defined __PGI \
|
||||
&& !(defined __SUNPRO_C && __STDC__))) \
|
||||
&& !defined _GL_EXTERN_INLINE_STDHEADER_BUG)
|
||||
# define _GL_INLINE inline
|
@ -1,3 +1,7 @@
|
||||
Fixes major build errors on macOS
|
||||
|
||||
See http://lists.gnu.org/archive/html/bug-tar/2014-08/msg00001.html
|
||||
|
||||
diff --git a/Makefile.in b/Makefile.in
|
||||
index f9f1d1d..b403e46 100644
|
||||
--- a/Makefile.in
|
||||
@ -479,4 +483,4 @@ index 82b2d46..42daaef 100644
|
||||
-tar_LDADD += -lattr
|
||||
-endif
|
||||
--
|
||||
1.9.3
|
||||
1.9.3
|
||||
|
@ -28,13 +28,15 @@
|
||||
class Tar(AutotoolsPackage):
|
||||
"""GNU Tar provides the ability to create tar archives, as well as various
|
||||
other kinds of manipulation."""
|
||||
|
||||
homepage = "https://www.gnu.org/software/tar/"
|
||||
url = "https://ftp.gnu.org/gnu/tar/tar-1.28.tar.gz"
|
||||
url = "https://ftp.gnu.org/gnu/tar/tar-1.29.tar.gz"
|
||||
|
||||
version('1.29', 'cae466e6e58c7292355e7080248f244db3a4cf755f33f4fa25ca7f9a7ed09af0')
|
||||
version('1.28', '6ea3dbea1f2b0409b234048e021a9fd7')
|
||||
|
||||
# see http://lists.gnu.org/archive/html/bug-tar/2014-08/msg00001.html and
|
||||
# https://github.com/Homebrew/homebrew-core/commit/aef9a1792de4648d0322b4b04d32287532f046bb
|
||||
# TODO: when=sys.platform=='darwin' ?
|
||||
patch('tar-pgi.patch', when='@1.29')
|
||||
patch('config-pgi.patch', when='@:1.29')
|
||||
patch('se-selinux.patch', when='@:1.29')
|
||||
patch('argp-pgi.patch', when='@:1.29')
|
||||
patch('gnutar-configure-xattrs.patch', when='@1.28')
|
||||
|
66
var/spack/repos/builtin/packages/tar/se-selinux.patch
Normal file
66
var/spack/repos/builtin/packages/tar/se-selinux.patch
Normal file
@ -0,0 +1,66 @@
|
||||
From e041ac5f63e23b20c322f2777d6330074c8a7215 Mon Sep 17 00:00:00 2001
|
||||
From: Paul Eggert <eggert@cs.ucla.edu>
|
||||
Date: Tue, 14 Feb 2017 08:46:05 -0800
|
||||
Subject: selinux-h: port to PGI 16.10
|
||||
|
||||
* gnu/se-selinux.in.h: Don't assume that include_next skips over
|
||||
duplicate -I DIR options.
|
||||
|
||||
diff --git a/gnu/se-selinux.in.h b/gnu/se-selinux.in.h
|
||||
index cd19951..1cf7c00 100644
|
||||
--- a/gnu/se-selinux.in.h
|
||||
+++ b/gnu/se-selinux.in.h
|
||||
@@ -14,26 +14,25 @@
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||
|
||||
-#ifndef _@GUARD_PREFIX@_SELINUX_SELINUX_H
|
||||
-# define _@GUARD_PREFIX@_SELINUX_SELINUX_H
|
||||
-
|
||||
-# if __GNUC__ >= 3
|
||||
+#if __GNUC__ >= 3
|
||||
@PRAGMA_SYSTEM_HEADER@
|
||||
-# endif
|
||||
+#endif
|
||||
@PRAGMA_COLUMNS@
|
||||
|
||||
-# if HAVE_SELINUX_SELINUX_H
|
||||
+#if HAVE_SELINUX_SELINUX_H
|
||||
|
||||
#@INCLUDE_NEXT@ @NEXT_SELINUX_SELINUX_H@
|
||||
|
||||
-# else
|
||||
+#else
|
||||
+# if !defined _@GUARD_PREFIX@_SELINUX_SELINUX_H
|
||||
+# define _@GUARD_PREFIX@_SELINUX_SELINUX_H
|
||||
|
||||
# include <sys/types.h>
|
||||
# include <errno.h>
|
||||
|
||||
-#ifndef _GL_INLINE_HEADER_BEGIN
|
||||
- #error "Please include config.h first."
|
||||
-#endif
|
||||
+# ifndef _GL_INLINE_HEADER_BEGIN
|
||||
+ #error "Please include config.h first."
|
||||
+# endif
|
||||
_GL_INLINE_HEADER_BEGIN
|
||||
# ifndef SE_SELINUX_INLINE
|
||||
# define SE_SELINUX_INLINE _GL_INLINE
|
||||
@@ -114,10 +113,10 @@ matchpathcon_init_prefix (char const *path _GL_UNUSED_PARAMETER,
|
||||
# define GNULIB_defined_security_types 1
|
||||
# endif
|
||||
|
||||
-#ifndef _GL_INLINE_HEADER_BEGIN
|
||||
- #error "Please include config.h first."
|
||||
-#endif
|
||||
+# ifndef _GL_INLINE_HEADER_BEGIN
|
||||
+ #error "Please include config.h first."
|
||||
+# endif
|
||||
_GL_INLINE_HEADER_BEGIN
|
||||
|
||||
# endif
|
||||
-#endif /* _@GUARD_PREFIX@_SELINUX_SELINUX_H */
|
||||
+#endif
|
||||
--
|
||||
cgit v1.0-41-gc330
|
||||
|
66
var/spack/repos/builtin/packages/tar/tar-pgi.patch
Normal file
66
var/spack/repos/builtin/packages/tar/tar-pgi.patch
Normal file
@ -0,0 +1,66 @@
|
||||
From 2be02a7c9afa5b4f01261e5b66c64217f7f3c29a Mon Sep 17 00:00:00 2001
|
||||
From: Paul Eggert <eggert@cs.ucla.edu>
|
||||
Date: Tue, 14 Feb 2017 08:55:05 -0800
|
||||
Subject: Fix incompatibility with PGI 16.10
|
||||
|
||||
* src/tar.c (options): Fix incompatibility with the C standard,
|
||||
which says that arguments to macro calls cannot contain # directives.
|
||||
|
||||
diff --git a/src/tar.c b/src/tar.c
|
||||
index fd29cd3..ea68c82 100644
|
||||
--- a/src/tar.c
|
||||
+++ b/src/tar.c
|
||||
@@ -548,11 +548,11 @@ static struct argp_option options[] = {
|
||||
N_("cancel the effect of --delay-directory-restore option"), GRID+1 },
|
||||
{"sort", SORT_OPTION, N_("ORDER"), 0,
|
||||
#if D_INO_IN_DIRENT
|
||||
- N_("directory sorting order: none (default), name or inode"
|
||||
+ N_("directory sorting order: none (default), name or inode")
|
||||
#else
|
||||
- N_("directory sorting order: none (default) or name"
|
||||
+ N_("directory sorting order: none (default) or name")
|
||||
#endif
|
||||
- ), GRID+1 },
|
||||
+ , GRID+1 },
|
||||
#undef GRID
|
||||
|
||||
#define GRID 55
|
||||
@@ -1758,7 +1758,7 @@ parse_opt (int key, char *arg, struct argp_state *state)
|
||||
case GROUP_MAP_OPTION:
|
||||
group_map_read (arg);
|
||||
break;
|
||||
-
|
||||
+
|
||||
case MODE_OPTION:
|
||||
mode_option = mode_compile (arg);
|
||||
if (!mode_option)
|
||||
@@ -1829,7 +1829,7 @@ parse_opt (int key, char *arg, struct argp_state *state)
|
||||
case OWNER_MAP_OPTION:
|
||||
owner_map_read (arg);
|
||||
break;
|
||||
-
|
||||
+
|
||||
case QUOTE_CHARS_OPTION:
|
||||
for (;*arg; arg++)
|
||||
set_char_quoting (NULL, *arg, 1);
|
||||
@@ -2123,7 +2123,7 @@ find_argp_option (struct argp *ap, int key)
|
||||
{
|
||||
struct argp_option const *p = NULL;
|
||||
struct argp_child const *child;
|
||||
-
|
||||
+
|
||||
p = find_argp_option_key (ap->options, key);
|
||||
if (!p && ap->children)
|
||||
{
|
||||
@@ -2136,7 +2136,7 @@ find_argp_option (struct argp *ap, int key)
|
||||
}
|
||||
return p;
|
||||
}
|
||||
-
|
||||
+
|
||||
static const char *tar_authors[] = {
|
||||
"John Gilmore",
|
||||
"Jay Fenlason",
|
||||
--
|
||||
cgit v1.0-41-gc330
|
||||
|
Loading…
Reference in New Issue
Block a user