Compare commits
21 Commits
Author | SHA1 | Date |
---|---|---|
Florian Weimer | 20bc72a7ad | |
Florian Weimer | c401b67ea9 | |
Florian Weimer | 2c95f27fe8 | |
Florian Weimer | cc6e160762 | |
Florian Weimer | eb0a937957 | |
Florian Weimer | acf0890850 | |
Florian Weimer | 907cd9eb03 | |
Florian Weimer | 0a6fc45aa5 | |
Florian Weimer | bfe997b415 | |
Florian Weimer | 2cc7bf3f89 | |
Florian Weimer | 5e18929416 | |
Florian Weimer | 21ca1e16c4 | |
Florian Weimer | 8533f7d5fd | |
Florian Weimer | ca6590f21b | |
Florian Weimer | 52f40f6b72 | |
Arjun Shankar | e73e19f80f | |
Florian Weimer | fbc423659c | |
Carlos O'Donell | be6211a715 | |
Florian Weimer | 0a4bf01550 | |
Florian Weimer | b07a91c877 | |
Carlos O'Donell | 0d81242be1 |
|
@ -21,10 +21,11 @@
|
|||
# elf/rtld.c | 4 ----
|
||||
# 4 files changed, 7 insertions(+), 10 deletions(-)
|
||||
#
|
||||
diff -urN glibc-2.20-205-ga39208b/elf/dl-init.c glibc-2.20-205-ga39208b.mod/elf/dl-init.c
|
||||
--- glibc-2.20-205-ga39208b/elf/dl-init.c 2014-11-21 16:08:32.744913590 -0500
|
||||
+++ glibc-2.20-205-ga39208b.mod/elf/dl-init.c 2014-11-21 16:09:42.485708197 -0500
|
||||
@@ -119,8 +119,6 @@
|
||||
Index: b/elf/dl-init.c
|
||||
===================================================================
|
||||
--- a/elf/dl-init.c
|
||||
+++ b/elf/dl-init.c
|
||||
@@ -119,8 +119,6 @@ _dl_init (struct link_map *main_map, int
|
||||
while (i-- > 0)
|
||||
call_init (main_map->l_initfini[i], argc, argv, env);
|
||||
|
||||
|
@ -33,10 +34,11 @@ diff -urN glibc-2.20-205-ga39208b/elf/dl-init.c glibc-2.20-205-ga39208b.mod/elf/
|
|||
_dl_starting_up = 0;
|
||||
-#endif
|
||||
}
|
||||
diff -urN glibc-2.20-205-ga39208b/elf/dl-support.c glibc-2.20-205-ga39208b.mod/elf/dl-support.c
|
||||
--- glibc-2.20-205-ga39208b/elf/dl-support.c 2014-11-19 14:35:03.000000000 -0500
|
||||
+++ glibc-2.20-205-ga39208b.mod/elf/dl-support.c 2014-11-21 16:09:54.829671843 -0500
|
||||
@@ -118,10 +118,8 @@
|
||||
Index: b/elf/dl-support.c
|
||||
===================================================================
|
||||
--- a/elf/dl-support.c
|
||||
+++ b/elf/dl-support.c
|
||||
@@ -117,10 +117,8 @@ struct r_scope_elem _dl_initial_searchli
|
||||
.r_nlist = 1,
|
||||
};
|
||||
|
||||
|
@ -47,18 +49,19 @@ diff -urN glibc-2.20-205-ga39208b/elf/dl-support.c glibc-2.20-205-ga39208b.mod/e
|
|||
|
||||
/* Random data provided by the kernel. */
|
||||
void *_dl_random;
|
||||
diff -urN glibc-2.20-205-ga39208b/elf/rtld.c glibc-2.20-205-ga39208b.mod/elf/rtld.c
|
||||
--- glibc-2.20-205-ga39208b/elf/rtld.c 2014-11-21 16:08:32.745913587 -0500
|
||||
+++ glibc-2.20-205-ga39208b.mod/elf/rtld.c 2014-11-21 16:09:05.614816785 -0500
|
||||
@@ -107,7 +107,6 @@
|
||||
struct audit_list *next;
|
||||
} *audit_list;
|
||||
Index: b/elf/rtld.c
|
||||
===================================================================
|
||||
--- a/elf/rtld.c
|
||||
+++ b/elf/rtld.c
|
||||
@@ -214,7 +214,6 @@ audit_list_iter_next (struct audit_list_
|
||||
return iter->previous->name;
|
||||
}
|
||||
|
||||
-#ifndef HAVE_INLINED_SYSCALLS
|
||||
/* Set nonzero during loading and initialization of executable and
|
||||
libraries, cleared before the executable's entry point runs. This
|
||||
must not be initialized to nonzero, because the unused dynamic
|
||||
@@ -117,7 +116,6 @@
|
||||
@@ -224,7 +223,6 @@ audit_list_iter_next (struct audit_list_
|
||||
never be called. */
|
||||
int _dl_starting_up = 0;
|
||||
rtld_hidden_def (_dl_starting_up)
|
||||
|
@ -66,7 +69,7 @@ diff -urN glibc-2.20-205-ga39208b/elf/rtld.c glibc-2.20-205-ga39208b.mod/elf/rtl
|
|||
|
||||
/* This is the structure which defines all variables global to ld.so
|
||||
(except those which cannot be added for some reason). */
|
||||
@@ -776,10 +774,8 @@
|
||||
@@ -898,10 +896,8 @@ dl_main (const ElfW(Phdr) *phdr,
|
||||
/* Process the environment variable which control the behaviour. */
|
||||
process_envvars (&mode);
|
||||
|
||||
|
|
|
@ -0,0 +1,70 @@
|
|||
commit 1e9522c61c7a544d59db32cb7fbbd42e6793d848
|
||||
Author: Florian Weimer <fweimer@redhat.com>
|
||||
Date: Thu Oct 5 18:14:27 2017 +0200
|
||||
|
||||
nscd: Eliminate compilation time dependency in the build output
|
||||
|
||||
Reviewed-by: Carlos O'Donell <carlos@redhat.com>
|
||||
|
||||
diff --git a/nscd/nscd_stat.c b/nscd/nscd_stat.c
|
||||
index feb1c98ac31edcb8..b1bc81bd6d7d7fd1 100644
|
||||
--- a/nscd/nscd_stat.c
|
||||
+++ b/nscd/nscd_stat.c
|
||||
@@ -35,9 +35,23 @@
|
||||
# include <selinux/avc.h>
|
||||
#endif /* HAVE_SELINUX */
|
||||
|
||||
+/* We use this to make sure the receiver is the same. The lower 16
|
||||
+ bits are reserved for flags indicating compilation variants. This
|
||||
+ version needs to be updated if the definition of struct statdata
|
||||
+ changes. */
|
||||
+#define STATDATA_VERSION 0x01020000U
|
||||
|
||||
-/* We use this to make sure the receiver is the same. */
|
||||
-static const char compilation[21] = __DATE__ " " __TIME__;
|
||||
+#ifdef HAVE_SELINUX
|
||||
+# define STATDATA_VERSION_SELINUX_FLAG 0x0001U
|
||||
+#else
|
||||
+# define STATDATA_VERSION_SELINUX_FLAG 0x0000U
|
||||
+#endif
|
||||
+
|
||||
+/* All flags affecting the struct statdata layout. */
|
||||
+#define STATDATA_VERSION_FLAGS STATDATA_VERSION_SELINUX_FLAG
|
||||
+
|
||||
+/* The full version number for struct statdata. */
|
||||
+#define STATDATA_VERSION_FULL (STATDATA_VERSION | STATDATA_VERSION_FLAGS)
|
||||
|
||||
/* Statistic data for one database. */
|
||||
struct dbstat
|
||||
@@ -68,10 +82,11 @@ struct dbstat
|
||||
uintmax_t addfailed;
|
||||
};
|
||||
|
||||
-/* Record for transmitting statistics. */
|
||||
+/* Record for transmitting statistics. If this definition changes,
|
||||
+ update STATDATA_VERSION above. */
|
||||
struct statdata
|
||||
{
|
||||
- char version[sizeof (compilation)];
|
||||
+ unsigned int version; /* Must be STATDATA_VERSION_FULL. */
|
||||
int debug_level;
|
||||
time_t runtime;
|
||||
unsigned long int client_queued;
|
||||
@@ -96,7 +111,7 @@ send_stats (int fd, struct database_dyn dbs[lastdb])
|
||||
|
||||
memset (&data, 0, sizeof (data));
|
||||
|
||||
- memcpy (data.version, compilation, sizeof (compilation));
|
||||
+ data.version = STATDATA_VERSION_FULL;
|
||||
data.debug_level = debug_level;
|
||||
data.runtime = time (NULL) - start_time;
|
||||
data.client_queued = client_queued;
|
||||
@@ -196,7 +211,7 @@ receive_print_stats (void)
|
||||
|
||||
/* Read as much data as we expect. */
|
||||
if (TEMP_FAILURE_RETRY (read (fd, &data, sizeof (data))) != sizeof (data)
|
||||
- || (memcmp (data.version, compilation, sizeof (compilation)) != 0
|
||||
+ || (data.version != STATDATA_VERSION_FULL
|
||||
/* Yes, this is an assignment! */
|
||||
&& (errno = EINVAL)))
|
||||
{
|
|
@ -0,0 +1,448 @@
|
|||
commit 64d1e08ea822bf47cb2796ad0f727136227f983c
|
||||
Author: Andreas Schwab <schwab@suse.de>
|
||||
Date: Mon Oct 2 14:30:46 2017 +0200
|
||||
|
||||
Move nss_compat from nis to nss subdir and install it unconditionally
|
||||
|
||||
This has been tested that local lookup still works with and
|
||||
without an installed libnss_nis, and that NIS lookup works when
|
||||
libnss_nis is available.
|
||||
|
||||
diff --git a/nis/Makefile b/nis/Makefile
|
||||
index 991460faa6652413..e536b043e54d90f6 100644
|
||||
--- a/nis/Makefile
|
||||
+++ b/nis/Makefile
|
||||
@@ -34,7 +34,7 @@ databases = proto service hosts network grp pwd rpc ethers \
|
||||
spwd netgrp alias publickey
|
||||
|
||||
# Specify rules for the nss_* modules.
|
||||
-services := nis nisplus compat
|
||||
+services := nis nisplus
|
||||
|
||||
extra-libs = libnsl $(services:%=libnss_%)
|
||||
# These libraries will be built in the `others' pass rather than
|
||||
@@ -57,9 +57,6 @@ libnsl-routines = yp_xdr ypclnt ypupdate_xdr \
|
||||
nis_findserv nis_callback nis_clone_dir nis_clone_obj\
|
||||
nis_clone_res nss-default
|
||||
|
||||
-libnss_compat-routines := $(addprefix compat-,grp pwd spwd initgroups)
|
||||
-libnss_compat-inhibit-o = $(filter-out .os,$(object-suffixes))
|
||||
-
|
||||
libnss_nis-routines := $(addprefix nis-,$(databases)) nis-initgroups \
|
||||
nss-nis
|
||||
libnss_nis-inhibit-o = $(filter-out .os,$(object-suffixes))
|
||||
@@ -71,7 +68,6 @@ libnss_nisplus-inhibit-o = $(filter-out .os,$(object-suffixes))
|
||||
include ../Rules
|
||||
|
||||
|
||||
-$(objpfx)libnss_compat.so: $(objpfx)libnsl.so$(libnsl.so-version)
|
||||
$(objpfx)libnss_nis.so: $(objpfx)libnsl.so$(libnsl.so-version) \
|
||||
$(common-objpfx)nss/libnss_files.so
|
||||
$(objpfx)libnss_nisplus.so: $(objpfx)libnsl.so$(libnsl.so-version)
|
||||
diff --git a/nis/Versions b/nis/Versions
|
||||
index ef9a5124174ec0e8..90d3d9dfaa3d853b 100644
|
||||
--- a/nis/Versions
|
||||
+++ b/nis/Versions
|
||||
@@ -63,17 +63,6 @@ libnsl {
|
||||
}
|
||||
}
|
||||
|
||||
-libnss_compat {
|
||||
- GLIBC_PRIVATE {
|
||||
- _nss_compat_endgrent; _nss_compat_endpwent; _nss_compat_endspent;
|
||||
- _nss_compat_getgrent_r; _nss_compat_getgrgid_r; _nss_compat_getgrnam_r;
|
||||
- _nss_compat_getpwent_r; _nss_compat_getpwnam_r; _nss_compat_getpwuid_r;
|
||||
- _nss_compat_getspent_r; _nss_compat_getspnam_r;
|
||||
- _nss_compat_setgrent; _nss_compat_setpwent; _nss_compat_setspent;
|
||||
- _nss_compat_initgroups_dyn;
|
||||
- }
|
||||
-}
|
||||
-
|
||||
libnss_nis {
|
||||
GLIBC_PRIVATE {
|
||||
_nss_nis_endaliasent; _nss_nis_endetherent; _nss_nis_endgrent;
|
||||
diff --git a/nss/Makefile b/nss/Makefile
|
||||
index 1f016d99c78a7433..760a52acea20d059 100644
|
||||
--- a/nss/Makefile
|
||||
+++ b/nss/Makefile
|
||||
@@ -55,7 +55,7 @@ tests = test-netdb tst-nss-test1 test-digits-dots \
|
||||
xtests = bug-erange
|
||||
|
||||
# Specify rules for the nss_* modules. We have some services.
|
||||
-services := files db
|
||||
+services := files db compat
|
||||
|
||||
extra-libs = $(services:%=libnss_%)
|
||||
# These libraries will be built in the `others' pass rather than
|
||||
@@ -78,11 +78,15 @@ libnss_db-routines := $(libnss_db-dbs) db-open db-init hash-string
|
||||
generated += $(filter-out db-alias.c db-netgrp.c, \
|
||||
$(addsuffix .c,$(libnss_db-dbs)))
|
||||
|
||||
+libnss_compat-routines := $(addprefix compat-,grp pwd spwd initgroups) \
|
||||
+ nisdomain
|
||||
+
|
||||
install-others += $(inst_vardbdir)/Makefile
|
||||
|
||||
# Build static module into libc if requested
|
||||
libnss_files-inhibit-o = $(filter-out .os,$(object-suffixes))
|
||||
libnss_db-inhibit-o = $(filter-out .os,$(object-suffixes))
|
||||
+libnss_compat-inhibit-o = $(filter-out .os,$(object-suffixes))
|
||||
ifeq ($(build-static-nss),yes)
|
||||
routines += $(libnss_files-routines)
|
||||
static-only-routines += $(libnss_files-routines)
|
||||
diff --git a/nss/Versions b/nss/Versions
|
||||
index f8ababccc74d1dd2..14c2571468169e4d 100644
|
||||
--- a/nss/Versions
|
||||
+++ b/nss/Versions
|
||||
@@ -160,3 +160,14 @@ libnss_db {
|
||||
_nss_db_init;
|
||||
}
|
||||
}
|
||||
+
|
||||
+libnss_compat {
|
||||
+ GLIBC_PRIVATE {
|
||||
+ _nss_compat_endgrent; _nss_compat_endpwent; _nss_compat_endspent;
|
||||
+ _nss_compat_getgrent_r; _nss_compat_getgrgid_r; _nss_compat_getgrnam_r;
|
||||
+ _nss_compat_getpwent_r; _nss_compat_getpwnam_r; _nss_compat_getpwuid_r;
|
||||
+ _nss_compat_getspent_r; _nss_compat_getspnam_r;
|
||||
+ _nss_compat_setgrent; _nss_compat_setpwent; _nss_compat_setspent;
|
||||
+ _nss_compat_initgroups_dyn;
|
||||
+ }
|
||||
+}
|
||||
diff --git a/nis/nss_compat/compat-grp.c b/nss/nss_compat/compat-grp.c
|
||||
similarity index 97%
|
||||
rename from nis/nss_compat/compat-grp.c
|
||||
rename to nss/nss_compat/compat-grp.c
|
||||
index 736f1df10a276067..28bef2e3745175da 100644
|
||||
--- a/nis/nss_compat/compat-grp.c
|
||||
+++ b/nss/nss_compat/compat-grp.c
|
||||
@@ -24,7 +24,6 @@
|
||||
#include <nsswitch.h>
|
||||
#include <stdio_ext.h>
|
||||
#include <string.h>
|
||||
-#include <rpc/types.h>
|
||||
#include <libc-lock.h>
|
||||
#include <kernel-features.h>
|
||||
|
||||
@@ -58,14 +57,14 @@ struct blacklist_t
|
||||
|
||||
struct ent_t
|
||||
{
|
||||
- bool_t files;
|
||||
+ bool files;
|
||||
enum nss_status setent_status;
|
||||
FILE *stream;
|
||||
struct blacklist_t blacklist;
|
||||
};
|
||||
typedef struct ent_t ent_t;
|
||||
|
||||
-static ent_t ext_ent = { TRUE, NSS_STATUS_SUCCESS, NULL, { NULL, 0, 0 }};
|
||||
+static ent_t ext_ent = { true, NSS_STATUS_SUCCESS, NULL, { NULL, 0, 0 }};
|
||||
|
||||
/* Protect global state against multiple changers. */
|
||||
__libc_lock_define_initialized (static, lock)
|
||||
@@ -85,7 +84,7 @@ int __compat_have_cloexec;
|
||||
|
||||
/* Prototypes for local functions. */
|
||||
static void blacklist_store_name (const char *, ent_t *);
|
||||
-static int in_blacklist (const char *, int, ent_t *);
|
||||
+static bool in_blacklist (const char *, int, ent_t *);
|
||||
|
||||
/* Initialize the NSS interface/functions. The calling function must
|
||||
hold the lock. */
|
||||
@@ -107,7 +106,7 @@ internal_setgrent (ent_t *ent, int stayopen, int needent)
|
||||
{
|
||||
enum nss_status status = NSS_STATUS_SUCCESS;
|
||||
|
||||
- ent->files = TRUE;
|
||||
+ ent->files = true;
|
||||
|
||||
if (ent->blacklist.data != NULL)
|
||||
{
|
||||
@@ -369,7 +368,7 @@ getgrent_next_file (struct group *result, ent_t *ent,
|
||||
/* +:... */
|
||||
if (result->gr_name[0] == '+' && result->gr_name[1] == '\0')
|
||||
{
|
||||
- ent->files = FALSE;
|
||||
+ ent->files = false;
|
||||
|
||||
return getgrent_next_nss (result, ent, buffer, buflen, errnop);
|
||||
}
|
||||
@@ -514,7 +513,7 @@ enum nss_status
|
||||
_nss_compat_getgrnam_r (const char *name, struct group *grp,
|
||||
char *buffer, size_t buflen, int *errnop)
|
||||
{
|
||||
- ent_t ent = { TRUE, NSS_STATUS_SUCCESS, NULL, { NULL, 0, 0 }};
|
||||
+ ent_t ent = { true, NSS_STATUS_SUCCESS, NULL, { NULL, 0, 0 }};
|
||||
enum nss_status result;
|
||||
|
||||
if (name[0] == '-' || name[0] == '+')
|
||||
@@ -646,7 +645,7 @@ enum nss_status
|
||||
_nss_compat_getgrgid_r (gid_t gid, struct group *grp,
|
||||
char *buffer, size_t buflen, int *errnop)
|
||||
{
|
||||
- ent_t ent = { TRUE, NSS_STATUS_SUCCESS, NULL, { NULL, 0, 0 }};
|
||||
+ ent_t ent = { true, NSS_STATUS_SUCCESS, NULL, { NULL, 0, 0 }};
|
||||
enum nss_status result;
|
||||
|
||||
__libc_lock_lock (lock);
|
||||
@@ -713,15 +712,15 @@ blacklist_store_name (const char *name, ent_t *ent)
|
||||
return;
|
||||
}
|
||||
|
||||
-/* returns TRUE if ent->blacklist contains name, else FALSE */
|
||||
-static bool_t
|
||||
+/* Return whether ent->blacklist contains name. */
|
||||
+static bool
|
||||
in_blacklist (const char *name, int namelen, ent_t *ent)
|
||||
{
|
||||
char buf[namelen + 3];
|
||||
char *cp;
|
||||
|
||||
if (ent->blacklist.data == NULL)
|
||||
- return FALSE;
|
||||
+ return false;
|
||||
|
||||
buf[0] = '|';
|
||||
cp = stpcpy (&buf[1], name);
|
||||
diff --git a/nis/nss_compat/compat-initgroups.c b/nss/nss_compat/compat-initgroups.c
|
||||
similarity index 98%
|
||||
rename from nis/nss_compat/compat-initgroups.c
|
||||
rename to nss/nss_compat/compat-initgroups.c
|
||||
index 4843e5c28fe1128d..76117033004cfa97 100644
|
||||
--- a/nis/nss_compat/compat-initgroups.c
|
||||
+++ b/nss/nss_compat/compat-initgroups.c
|
||||
@@ -24,7 +24,6 @@
|
||||
#include <stdio_ext.h>
|
||||
#include <string.h>
|
||||
#include <unistd.h>
|
||||
-#include <rpc/types.h>
|
||||
#include <sys/param.h>
|
||||
#include <nsswitch.h>
|
||||
#include <libc-lock.h>
|
||||
@@ -93,7 +92,7 @@ extern int __compat_have_cloexec;
|
||||
|
||||
/* Prototypes for local functions. */
|
||||
static void blacklist_store_name (const char *, ent_t *);
|
||||
-static int in_blacklist (const char *, int, ent_t *);
|
||||
+static bool in_blacklist (const char *, int, ent_t *);
|
||||
|
||||
/* Initialize the NSS interface/functions. The calling function must
|
||||
hold the lock. */
|
||||
@@ -602,15 +601,15 @@ blacklist_store_name (const char *name, ent_t *ent)
|
||||
return;
|
||||
}
|
||||
|
||||
-/* returns TRUE if ent->blacklist contains name, else FALSE */
|
||||
-static bool_t
|
||||
+/* Return whether ent->blacklist contains name. */
|
||||
+static bool
|
||||
in_blacklist (const char *name, int namelen, ent_t *ent)
|
||||
{
|
||||
char buf[namelen + 3];
|
||||
char *cp;
|
||||
|
||||
if (ent->blacklist.data == NULL)
|
||||
- return FALSE;
|
||||
+ return false;
|
||||
|
||||
buf[0] = '|';
|
||||
cp = stpcpy (&buf[1], name);
|
||||
diff --git a/nis/nss_compat/compat-pwd.c b/nss/nss_compat/compat-pwd.c
|
||||
similarity index 99%
|
||||
rename from nis/nss_compat/compat-pwd.c
|
||||
rename to nss/nss_compat/compat-pwd.c
|
||||
index 16e9404e2263c4b5..638bfe23212205a6 100644
|
||||
--- a/nis/nss_compat/compat-pwd.c
|
||||
+++ b/nss/nss_compat/compat-pwd.c
|
||||
@@ -25,12 +25,11 @@
|
||||
#include <pwd.h>
|
||||
#include <stdio_ext.h>
|
||||
#include <string.h>
|
||||
-#include <rpc/types.h>
|
||||
-#include <rpcsvc/ypclnt.h>
|
||||
#include <libc-lock.h>
|
||||
#include <kernel-features.h>
|
||||
|
||||
#include "netgroup.h"
|
||||
+#include "nisdomain.h"
|
||||
|
||||
static service_user *ni;
|
||||
static enum nss_status (*nss_setpwent) (int stayopen);
|
||||
@@ -95,7 +94,7 @@ extern int __compat_have_cloexec;
|
||||
|
||||
/* Prototypes for local functions. */
|
||||
static void blacklist_store_name (const char *, ent_t *);
|
||||
-static int in_blacklist (const char *, int, ent_t *);
|
||||
+static bool in_blacklist (const char *, int, ent_t *);
|
||||
|
||||
/* Initialize the NSS interface/functions. The calling function must
|
||||
hold the lock. */
|
||||
@@ -394,7 +393,7 @@ getpwent_next_nss_netgr (const char *name, struct passwd *result, ent_t *ent,
|
||||
if (domain != NULL)
|
||||
{
|
||||
if (curdomain == NULL
|
||||
- && yp_get_default_domain (&curdomain) != YPERR_SUCCESS)
|
||||
+ && __nss_get_default_domain (&curdomain) != 0)
|
||||
{
|
||||
__internal_endnetgrent (&ent->netgrdata);
|
||||
ent->netgroup = false;
|
||||
@@ -1162,15 +1161,15 @@ blacklist_store_name (const char *name, ent_t *ent)
|
||||
return;
|
||||
}
|
||||
|
||||
-/* Returns TRUE if ent->blacklist contains name, else FALSE. */
|
||||
-static bool_t
|
||||
+/* Returns whether ent->blacklist contains name. */
|
||||
+static bool
|
||||
in_blacklist (const char *name, int namelen, ent_t *ent)
|
||||
{
|
||||
char buf[namelen + 3];
|
||||
char *cp;
|
||||
|
||||
if (ent->blacklist.data == NULL)
|
||||
- return FALSE;
|
||||
+ return false;
|
||||
|
||||
buf[0] = '|';
|
||||
cp = stpcpy (&buf[1], name);
|
||||
diff --git a/nis/nss_compat/compat-spwd.c b/nss/nss_compat/compat-spwd.c
|
||||
similarity index 98%
|
||||
rename from nis/nss_compat/compat-spwd.c
|
||||
rename to nss/nss_compat/compat-spwd.c
|
||||
index 4db96ef29df8d703..7cdd61b6edec8572 100644
|
||||
--- a/nis/nss_compat/compat-spwd.c
|
||||
+++ b/nss/nss_compat/compat-spwd.c
|
||||
@@ -25,12 +25,11 @@
|
||||
#include <shadow.h>
|
||||
#include <stdio_ext.h>
|
||||
#include <string.h>
|
||||
-#include <rpc/types.h>
|
||||
-#include <rpcsvc/ypclnt.h>
|
||||
#include <libc-lock.h>
|
||||
#include <kernel-features.h>
|
||||
|
||||
#include "netgroup.h"
|
||||
+#include "nisdomain.h"
|
||||
|
||||
static service_user *ni;
|
||||
static enum nss_status (*nss_setspent) (int stayopen);
|
||||
@@ -92,7 +91,7 @@ extern int __compat_have_cloexec;
|
||||
|
||||
/* Prototypes for local functions. */
|
||||
static void blacklist_store_name (const char *, ent_t *);
|
||||
-static int in_blacklist (const char *, int, ent_t *);
|
||||
+static bool in_blacklist (const char *, int, ent_t *);
|
||||
|
||||
/* Initialize the NSS interface/functions. The calling function must
|
||||
hold the lock. */
|
||||
@@ -354,7 +353,7 @@ getspent_next_nss_netgr (const char *name, struct spwd *result, ent_t *ent,
|
||||
if (domain != NULL)
|
||||
{
|
||||
if (curdomain == NULL
|
||||
- && yp_get_default_domain (&curdomain) != YPERR_SUCCESS)
|
||||
+ && __nss_get_default_domain (&curdomain) != 0)
|
||||
{
|
||||
__internal_endnetgrent (&ent->netgrdata);
|
||||
ent->netgroup = false;
|
||||
@@ -888,8 +887,8 @@ blacklist_store_name (const char *name, ent_t *ent)
|
||||
}
|
||||
|
||||
|
||||
-/* Returns TRUE if ent->blacklist contains name, else FALSE. */
|
||||
-static bool_t
|
||||
+/* Returns whether ent->blacklist contains name. */
|
||||
+static bool
|
||||
in_blacklist (const char *name, int namelen, ent_t *ent)
|
||||
{
|
||||
char buf[namelen + 3];
|
||||
diff --git a/nss/nss_compat/nisdomain.c b/nss/nss_compat/nisdomain.c
|
||||
new file mode 100644
|
||||
index 0000000000000000..220ae27234705855
|
||||
--- /dev/null
|
||||
+++ b/nss/nss_compat/nisdomain.c
|
||||
@@ -0,0 +1,58 @@
|
||||
+/* Copyright (C) 2017 Free Software Foundation, Inc.
|
||||
+ This file is part of the GNU C Library.
|
||||
+
|
||||
+ The GNU C Library is free software; you can redistribute it and/or
|
||||
+ modify it under the terms of the GNU Lesser General Public
|
||||
+ License as published by the Free Software Foundation; either
|
||||
+ version 2.1 of the License, or (at your option) any later version.
|
||||
+
|
||||
+ The GNU C Library is distributed in the hope that it will be useful,
|
||||
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
+ Lesser General Public License for more details.
|
||||
+
|
||||
+ You should have received a copy of the GNU Lesser General Public
|
||||
+ License along with the GNU C Library; if not, see
|
||||
+ <http://www.gnu.org/licenses/>. */
|
||||
+
|
||||
+#include <stdlib.h>
|
||||
+#include <string.h>
|
||||
+#include <errno.h>
|
||||
+#include <unistd.h>
|
||||
+#include <libc-lock.h>
|
||||
+#include "nisdomain.h"
|
||||
+
|
||||
+#define MAXDOMAINNAMELEN 1024
|
||||
+
|
||||
+static char domainname[MAXDOMAINNAMELEN];
|
||||
+
|
||||
+__libc_lock_define_initialized (static, domainname_lock)
|
||||
+
|
||||
+int
|
||||
+__nss_get_default_domain (char **outdomain)
|
||||
+{
|
||||
+ int result = 0;
|
||||
+ *outdomain = NULL;
|
||||
+
|
||||
+ __libc_lock_lock (domainname_lock);
|
||||
+
|
||||
+ if (domainname[0] != '\0')
|
||||
+ {
|
||||
+ if (getdomainname (domainname, MAXDOMAINNAMELEN) < 0)
|
||||
+ result = errno;
|
||||
+ else if (strcmp (domainname, "(none)") == 0)
|
||||
+ {
|
||||
+ /* If domainname is not set, some systems will return "(none)" */
|
||||
+ domainname[0] = '\0';
|
||||
+ result = ENOENT;
|
||||
+ }
|
||||
+ else
|
||||
+ *outdomain = domainname;
|
||||
+ }
|
||||
+ else
|
||||
+ *outdomain = domainname;
|
||||
+
|
||||
+ __libc_lock_unlock (domainname_lock);
|
||||
+
|
||||
+ return result;
|
||||
+}
|
||||
diff --git a/nss/nss_compat/nisdomain.h b/nss/nss_compat/nisdomain.h
|
||||
new file mode 100644
|
||||
index 0000000000000000..314f3f7c069835af
|
||||
--- /dev/null
|
||||
+++ b/nss/nss_compat/nisdomain.h
|
||||
@@ -0,0 +1,20 @@
|
||||
+/* Copyright (C) 2017 Free Software Foundation, Inc.
|
||||
+ This file is part of the GNU C Library.
|
||||
+
|
||||
+ The GNU C Library is free software; you can redistribute it and/or
|
||||
+ modify it under the terms of the GNU Lesser General Public
|
||||
+ License as published by the Free Software Foundation; either
|
||||
+ version 2.1 of the License, or (at your option) any later version.
|
||||
+
|
||||
+ The GNU C Library is distributed in the hope that it will be useful,
|
||||
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
+ Lesser General Public License for more details.
|
||||
+
|
||||
+ You should have received a copy of the GNU Lesser General Public
|
||||
+ License along with the GNU C Library; if not, see
|
||||
+ <http://www.gnu.org/licenses/>. */
|
||||
+
|
||||
+/* Set OUTDOMAIN to a pointer to the current NIS domain name, or NULL if
|
||||
+ not set. Return zero on success, an error number on failure. */
|
||||
+extern int __nss_get_default_domain (char **outdomain);
|
|
@ -10,7 +10,7 @@ Index: b/crypt-glibc/Makefile
|
|||
===================================================================
|
||||
--- /dev/null
|
||||
+++ b/crypt-glibc/Makefile
|
||||
@@ -0,0 +1,60 @@
|
||||
@@ -0,0 +1,61 @@
|
||||
+# Build libcrypt against internal cryptographic algorithms.
|
||||
+# Copyright (C) 1996-2016 Free Software Foundation, Inc.
|
||||
+# This file is part of the GNU C Library.
|
||||
|
@ -41,6 +41,7 @@ Index: b/crypt-glibc/Makefile
|
|||
+
|
||||
+# Use the sources in the crypt subdirectory.
|
||||
+vpath %.c ../crypt
|
||||
+vpath %.input ../crypt
|
||||
+
|
||||
+libcrypt-routines := \
|
||||
+ crypt-entry md5-crypt sha256-crypt sha512-crypt crypt crypt_util
|
||||
|
@ -85,7 +86,7 @@ Index: b/crypt/sha256.c
|
|||
===================================================================
|
||||
--- a/crypt/sha256.c
|
||||
+++ b/crypt/sha256.c
|
||||
@@ -212,4 +212,4 @@ __sha256_process_bytes (const void *buff
|
||||
@@ -211,4 +211,4 @@ __sha256_process_bytes (const void *buff
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -24,30 +24,33 @@ Date: Thu Mar 31 11:26:55 2016 +0200
|
|||
* elf/Makefile (tests): Add tst-dlsym-error.
|
||||
(tst-dlsym-error): Link against libdl.
|
||||
|
||||
Index: b/elf/Makefile
|
||||
Index: glibc-2.24-33-ge9e69e4/elf/Makefile
|
||||
===================================================================
|
||||
--- a/elf/Makefile
|
||||
+++ b/elf/Makefile
|
||||
--- glibc-2.24-33-ge9e69e4.orig/elf/Makefile
|
||||
+++ glibc-2.24-33-ge9e69e4/elf/Makefile
|
||||
@@ -149,7 +149,7 @@ tests += loadtest restest1 preloadtest l
|
||||
tst-nodelete) \
|
||||
tst-initorder tst-initorder2 tst-relsort1 tst-null-argv \
|
||||
tst-ptrguard1 tst-tlsalign tst-tlsalign-extern tst-nodelete-opened \
|
||||
- tst-nodelete2 tst-audit11 tst-audit12 tst-dlsym-error
|
||||
+ tst-nodelete2 tst-audit11 tst-audit12
|
||||
- tst-nodelete2 tst-audit11 tst-audit12 tst-dlsym-error \
|
||||
+ tst-nodelete2 tst-audit11 tst-audit12 \
|
||||
tst-nodelete-dlclose
|
||||
# reldep9
|
||||
ifeq ($(build-hardcoded-path-in-tests),yes)
|
||||
tests += tst-dlopen-aout
|
||||
@@ -1258,5 +1258,3 @@ $(objpfx)tst-prelink-cmp.out: tst-prelin
|
||||
$(objpfx)tst-ldconfig-X.out : tst-ldconfig-X.sh $(objpfx)ldconfig
|
||||
@@ -1268,8 +1268,6 @@ $(objpfx)tst-ldconfig-X.out : tst-ldconf
|
||||
$(SHELL) $< '$(common-objpfx)' '$(test-wrapper)' '$(test-wrapper-env)' > $@; \
|
||||
$(evaluate-test)
|
||||
-
|
||||
|
||||
-$(objpfx)tst-dlsym-error: $(libdl)
|
||||
Index: b/elf/dl-lookup.c
|
||||
-
|
||||
# The application depends on the DSO, and the DSO loads the plugin.
|
||||
# The plugin also depends on the DSO. This creates the circular
|
||||
# dependency via dlopen that we're testing to make sure works.
|
||||
Index: glibc-2.24-33-ge9e69e4/elf/dl-lookup.c
|
||||
===================================================================
|
||||
--- a/elf/dl-lookup.c
|
||||
+++ b/elf/dl-lookup.c
|
||||
@@ -858,6 +858,7 @@ _dl_lookup_symbol_x (const char *undef_n
|
||||
--- glibc-2.24-33-ge9e69e4.orig/elf/dl-lookup.c
|
||||
+++ glibc-2.24-33-ge9e69e4/elf/dl-lookup.c
|
||||
@@ -862,6 +862,7 @@ _dl_lookup_symbol_x (const char *undef_n
|
||||
if (__glibc_unlikely (current_value.s == NULL))
|
||||
{
|
||||
if ((*ref == NULL || ELFW(ST_BIND) ((*ref)->st_info) != STB_WEAK)
|
||||
|
@ -55,9 +58,9 @@ Index: b/elf/dl-lookup.c
|
|||
&& !(GLRO(dl_debug_mask) & DL_DEBUG_UNUSED))
|
||||
{
|
||||
/* We could find no value for a strong reference. */
|
||||
Index: b/elf/tst-dlsym-error.c
|
||||
Index: glibc-2.24-33-ge9e69e4/elf/tst-dlsym-error.c
|
||||
===================================================================
|
||||
--- a/elf/tst-dlsym-error.c
|
||||
--- glibc-2.24-33-ge9e69e4.orig/elf/tst-dlsym-error.c
|
||||
+++ /dev/null
|
||||
@@ -1,114 +0,0 @@
|
||||
-/* Test error reporting for dlsym, dlvsym failures.
|
||||
|
|
|
@ -0,0 +1,440 @@
|
|||
commit 799c8d6905433ad56f26ccab4855b36f1d1ddbfc
|
||||
Author: Mike FABIAN <mfabian@redhat.com>
|
||||
Date: Thu Sep 7 15:28:28 2017 +0200
|
||||
|
||||
Add new codepage charmaps/IBM858 [BZ #21084]
|
||||
|
||||
This code page is identical to code page 850 except that X'D5'
|
||||
has been changed from LI61 (dotless i) to SC20 (euro symbol).
|
||||
|
||||
The code points from /x01 to /x1f in the /localedata/charmaps/IBM858
|
||||
file have the same mapping as those in localedata/charmaps/ANSI_X3.4-1968.
|
||||
That means they disagree with with
|
||||
|
||||
ftp://ftp.software.ibm.com/software/globalization/gcoc/attachments/CP00858.txt
|
||||
|
||||
in that range.
|
||||
For example, localedata/charmaps/IBM858 and localedata/charmaps/ANSI_X3.4-1968 have:
|
||||
|
||||
“<U0001> /x01 START OF HEADING (SOH)”
|
||||
|
||||
whereas CP00858.txt has:
|
||||
|
||||
“01 SS000000 Smiling Face”
|
||||
|
||||
That means that CP00858.txt is not really ASCII-compatible and to make
|
||||
it ASCII-compatible we deviate fro CP00858.txt in the code points from /x01
|
||||
to /x1f.
|
||||
|
||||
[BZ #21084]
|
||||
* benchtests/strcoll-inputs/filelist#en_US.UTF-8: Add IBM858 and ibm858.c.
|
||||
* iconvdata/Makefile: Add IBM858.
|
||||
* iconvdata/gconv-modules: Add IBM858.
|
||||
* iconvdata/ibm858.c: New file.
|
||||
* iconvdata/tst-tables.sh: Add IBM858
|
||||
* localedata/charmaps/IBM858: New file.
|
||||
|
||||
diff --git a/benchtests/strcoll-inputs/filelist#en_US.UTF-8 b/benchtests/strcoll-inputs/filelist#en_US.UTF-8
|
||||
index b7b38017d836aee8..4fd74821feb0f22b 100644
|
||||
--- a/benchtests/strcoll-inputs/filelist#en_US.UTF-8
|
||||
+++ b/benchtests/strcoll-inputs/filelist#en_US.UTF-8
|
||||
@@ -11233,6 +11233,7 @@ ISO-8859-9E
|
||||
UTF-8
|
||||
ISO-8859-2
|
||||
IBM850
|
||||
+IBM858
|
||||
EUC-TW
|
||||
KOI8-U
|
||||
IBM903
|
||||
@@ -13922,6 +13923,7 @@ ibm12712.c
|
||||
ibm1145.h
|
||||
ibm932.c
|
||||
ibm850.c
|
||||
+ibm858.c
|
||||
ibm437.c
|
||||
ibm1399.c
|
||||
stdio-common
|
||||
diff --git a/iconvdata/Makefile b/iconvdata/Makefile
|
||||
index 3df5aa467da34163..1631ec569db07b81 100644
|
||||
--- a/iconvdata/Makefile
|
||||
+++ b/iconvdata/Makefile
|
||||
@@ -36,9 +36,9 @@ modules := ISO8859-1 ISO8859-2 ISO8859-3 ISO8859-4 ISO8859-5 \
|
||||
IBM874 CP737 CP775 ISO-2022-KR HP-TURKISH8 HP-THAI8 HP-GREEK8 \
|
||||
KOI8-R LATIN-GREEK LATIN-GREEK-1 IBM256 IBM273 IBM277 IBM278 \
|
||||
IBM280 IBM281 IBM284 IBM285 IBM290 IBM297 IBM420 IBM424 \
|
||||
- IBM437 IBM850 IBM851 IBM852 IBM855 IBM857 IBM860 IBM861 \
|
||||
- IBM862 IBM863 IBM864 IBM865 IBM868 IBM869 IBM875 IBM880 \
|
||||
- IBM866 CP1258 IBM922 IBM1124 IBM1129 IBM932 IBM943 \
|
||||
+ IBM437 IBM850 IBM851 IBM852 IBM855 IBM857 IBM858 IBM860 \
|
||||
+ IBM861 IBM862 IBM863 IBM864 IBM865 IBM868 IBM869 IBM875 \
|
||||
+ IBM880 IBM866 CP1258 IBM922 IBM1124 IBM1129 IBM932 IBM943 \
|
||||
IBM856 IBM930 IBM933 IBM935 IBM937 IBM939 IBM1046 \
|
||||
IBM1132 IBM1133 IBM1160 IBM1161 IBM1162 IBM1163 IBM1164 \
|
||||
IBM918 IBM1004 IBM1026 CP1125 CP1250 CP1251 CP1252 CP1253 \
|
||||
@@ -148,11 +148,11 @@ gen-8bit-modules := iso8859-2 iso8859-3 iso8859-4 iso8859-6 iso8859-9 koi-8 \
|
||||
gen-8bit-gap-modules := koi8-r latin-greek latin-greek-1 ibm256 ibm273 \
|
||||
ibm277 ibm278 ibm280 ibm281 ibm284 ibm285 ibm290 \
|
||||
ibm297 ibm420 ibm424 ibm437 ibm850 ibm851 ibm852 \
|
||||
- ibm855 ibm857 ibm860 ibm861 ibm862 ibm863 ibm864 \
|
||||
- ibm865 ibm868 ibm869 ibm875 ibm880 ibm918 ibm1004 \
|
||||
- ibm1026 cp1125 cp1250 cp1251 cp1252 cp1253 cp1254 \
|
||||
- cp1256 cp1257 ibm866 iso8859-5 iso8859-7 iso8859-8 \
|
||||
- iso8859-10 macintosh iec_p27-1 asmo_449 \
|
||||
+ ibm855 ibm857 ibm858 ibm860 ibm861 ibm862 ibm863 \
|
||||
+ ibm864 ibm865 ibm868 ibm869 ibm875 ibm880 ibm918 \
|
||||
+ ibm1004 ibm1026 cp1125 cp1250 cp1251 cp1252 cp1253 \
|
||||
+ cp1254 cp1256 cp1257 ibm866 iso8859-5 iso8859-7 \
|
||||
+ iso8859-8 iso8859-10 macintosh iec_p27-1 asmo_449 \
|
||||
csn_369103 cwi dec-mcs ecma-cyrillic gost_19768-74 \
|
||||
greek-ccitt greek7 greek7-old inis inis-8 \
|
||||
inis-cyrillic iso_2033 iso_5427 iso_5427-ext \
|
||||
diff --git a/iconvdata/gconv-modules b/iconvdata/gconv-modules
|
||||
index 7aa83e6120088db6..a1ebbdf4caf54328 100644
|
||||
--- a/iconvdata/gconv-modules
|
||||
+++ b/iconvdata/gconv-modules
|
||||
@@ -744,6 +744,13 @@ module IBM850// INTERNAL IBM850 1
|
||||
module INTERNAL IBM850// IBM850 1
|
||||
|
||||
# from to module cost
|
||||
+alias CP858// IBM858//
|
||||
+alias 858// IBM858//
|
||||
+alias CSPC858MULTILINGUAL// IBM858//
|
||||
+module IBM858// INTERNAL IBM858 1
|
||||
+module INTERNAL IBM858// IBM858 1
|
||||
+
|
||||
+# from to module cost
|
||||
alias CP851// IBM851//
|
||||
alias 851// IBM851//
|
||||
alias CSIBM851// IBM851//
|
||||
diff --git a/iconvdata/ibm858.c b/iconvdata/ibm858.c
|
||||
new file mode 100644
|
||||
index 0000000000000000..ed2a48e3cf79e2b9
|
||||
--- /dev/null
|
||||
+++ b/iconvdata/ibm858.c
|
||||
@@ -0,0 +1,27 @@
|
||||
+/* Conversion from and to IBM858.
|
||||
+ Copyright (C) 2017 Free Software Foundation, Inc.
|
||||
+ This file is part of the GNU C Library.
|
||||
+
|
||||
+ The GNU C Library is free software; you can redistribute it and/or
|
||||
+ modify it under the terms of the GNU Lesser General Public
|
||||
+ License as published by the Free Software Foundation; either
|
||||
+ version 2.1 of the License, or (at your option) any later version.
|
||||
+
|
||||
+ The GNU C Library is distributed in the hope that it will be useful,
|
||||
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
+ Lesser General Public License for more details.
|
||||
+
|
||||
+ You should have received a copy of the GNU Lesser General Public
|
||||
+ License along with the GNU C Library; if not, see
|
||||
+ <http://www.gnu.org/licenses/>. */
|
||||
+
|
||||
+#include <stdint.h>
|
||||
+
|
||||
+/* Get the conversion table. */
|
||||
+#define TABLES <ibm858.h>
|
||||
+
|
||||
+#define CHARSET_NAME "IBM858//"
|
||||
+#define HAS_HOLES 1 /* Not all 256 character are defined. */
|
||||
+
|
||||
+#include <8bit-gap.c>
|
||||
diff --git a/iconvdata/tst-tables.sh b/iconvdata/tst-tables.sh
|
||||
index 620471d239e82ee9..9045e0de8a0b201b 100755
|
||||
--- a/iconvdata/tst-tables.sh
|
||||
+++ b/iconvdata/tst-tables.sh
|
||||
@@ -125,6 +125,7 @@ cat <<EOF |
|
||||
IBM855
|
||||
IBM856
|
||||
IBM857
|
||||
+ IBM858
|
||||
IBM860
|
||||
IBM861
|
||||
IBM862
|
||||
diff --git a/localedata/charmaps/IBM858 b/localedata/charmaps/IBM858
|
||||
new file mode 100644
|
||||
index 0000000000000000..d8600e2456c87b48
|
||||
--- /dev/null
|
||||
+++ b/localedata/charmaps/IBM858
|
||||
@@ -0,0 +1,281 @@
|
||||
+<code_set_name> IBM858
|
||||
+<comment_char> %
|
||||
+<escape_char> /
|
||||
+% version: 1.0
|
||||
+% source: ftp://ftp.software.ibm.com/software/globalization/gcoc/attachments/CP00858.txt, 1998
|
||||
+
|
||||
+% source: UNICODE 1.0
|
||||
+
|
||||
+% This code page is identical to code page 850 except that X'D5'
|
||||
+% has been changed from LI61 (dotless i) to SC20 (euro symbol).
|
||||
+
|
||||
+% The code points from /x01 to /x1f in this file have the same mapping
|
||||
+% as those in ANSI_X3.4-1968. That means they disagree with with CP00858.txt
|
||||
+% in that range. For example, this file and ANSI_X3.4-1968 have:
|
||||
+% “<U0001> /x01 START OF HEADING (SOH)”
|
||||
+% whereas CP00858.txt has:
|
||||
+% “01 SS000000 Smiling Face”
|
||||
+% That means that CP00858.txt is not really ASCII-compatible and to make
|
||||
+% it ASCII-compatible we deviate fro CP00858.txt in the code points from /x01
|
||||
+% to /x1f.
|
||||
+
|
||||
+% alias CP858
|
||||
+% alias 858
|
||||
+CHARMAP
|
||||
+<U0000> /x00 NULL (NUL)
|
||||
+<U0001> /x01 START OF HEADING (SOH)
|
||||
+<U0002> /x02 START OF TEXT (STX)
|
||||
+<U0003> /x03 END OF TEXT (ETX)
|
||||
+<U0004> /x04 END OF TRANSMISSION (EOT)
|
||||
+<U0005> /x05 ENQUIRY (ENQ)
|
||||
+<U0006> /x06 ACKNOWLEDGE (ACK)
|
||||
+<U0007> /x07 BELL (BEL)
|
||||
+<U0008> /x08 BACKSPACE (BS)
|
||||
+<U0009> /x09 CHARACTER TABULATION (HT)
|
||||
+<U000A> /x0a LINE FEED (LF)
|
||||
+<U000B> /x0b LINE TABULATION (VT)
|
||||
+<U000C> /x0c FORM FEED (FF)
|
||||
+<U000D> /x0d CARRIAGE RETURN (CR)
|
||||
+<U000E> /x0e SHIFT OUT (SO)
|
||||
+<U000F> /x0f SHIFT IN (SI)
|
||||
+<U0010> /x10 DATALINK ESCAPE (DLE)
|
||||
+<U0011> /x11 DEVICE CONTROL ONE (DC1)
|
||||
+<U0012> /x12 DEVICE CONTROL TWO (DC2)
|
||||
+<U0013> /x13 DEVICE CONTROL THREE (DC3)
|
||||
+<U0014> /x14 DEVICE CONTROL FOUR (DC4)
|
||||
+<U0015> /x15 NEGATIVE ACKNOWLEDGE (NAK)
|
||||
+<U0016> /x16 SYNCHRONOUS IDLE (SYN)
|
||||
+<U0017> /x17 END OF TRANSMISSION BLOCK (ETB)
|
||||
+<U0018> /x18 CANCEL (CAN)
|
||||
+<U0019> /x19 END OF MEDIUM (EM)
|
||||
+<U001A> /x1a SUBSTITUTE (SUB)
|
||||
+<U001B> /x1b ESCAPE (ESC)
|
||||
+<U001C> /x1c FILE SEPARATOR (IS4)
|
||||
+<U001D> /x1d GROUP SEPARATOR (IS3)
|
||||
+<U001E> /x1e RECORD SEPARATOR (IS2)
|
||||
+<U001F> /x1f UNIT SEPARATOR (IS1)
|
||||
+<U0020> /x20 SPACE
|
||||
+<U0021> /x21 EXCLAMATION MARK
|
||||
+<U0022> /x22 QUOTATION MARK
|
||||
+<U0023> /x23 NUMBER SIGN
|
||||
+<U0024> /x24 DOLLAR SIGN
|
||||
+<U0025> /x25 PERCENT SIGN
|
||||
+<U0026> /x26 AMPERSAND
|
||||
+<U0027> /x27 APOSTROPHE
|
||||
+<U0028> /x28 LEFT PARENTHESIS
|
||||
+<U0029> /x29 RIGHT PARENTHESIS
|
||||
+<U002A> /x2a ASTERISK
|
||||
+<U002B> /x2b PLUS SIGN
|
||||
+<U002C> /x2c COMMA
|
||||
+<U002D> /x2d HYPHEN-MINUS
|
||||
+<U002E> /x2e FULL STOP
|
||||
+<U002F> /x2f SOLIDUS
|
||||
+<U0030> /x30 DIGIT ZERO
|
||||
+<U0031> /x31 DIGIT ONE
|
||||
+<U0032> /x32 DIGIT TWO
|
||||
+<U0033> /x33 DIGIT THREE
|
||||
+<U0034> /x34 DIGIT FOUR
|
||||
+<U0035> /x35 DIGIT FIVE
|
||||
+<U0036> /x36 DIGIT SIX
|
||||
+<U0037> /x37 DIGIT SEVEN
|
||||
+<U0038> /x38 DIGIT EIGHT
|
||||
+<U0039> /x39 DIGIT NINE
|
||||
+<U003A> /x3a COLON
|
||||
+<U003B> /x3b SEMICOLON
|
||||
+<U003C> /x3c LESS-THAN SIGN
|
||||
+<U003D> /x3d EQUALS SIGN
|
||||
+<U003E> /x3e GREATER-THAN SIGN
|
||||
+<U003F> /x3f QUESTION MARK
|
||||
+<U0040> /x40 COMMERCIAL AT
|
||||
+<U0041> /x41 LATIN CAPITAL LETTER A
|
||||
+<U0042> /x42 LATIN CAPITAL LETTER B
|
||||
+<U0043> /x43 LATIN CAPITAL LETTER C
|
||||
+<U0044> /x44 LATIN CAPITAL LETTER D
|
||||
+<U0045> /x45 LATIN CAPITAL LETTER E
|
||||
+<U0046> /x46 LATIN CAPITAL LETTER F
|
||||
+<U0047> /x47 LATIN CAPITAL LETTER G
|
||||
+<U0048> /x48 LATIN CAPITAL LETTER H
|
||||
+<U0049> /x49 LATIN CAPITAL LETTER I
|
||||
+<U004A> /x4a LATIN CAPITAL LETTER J
|
||||
+<U004B> /x4b LATIN CAPITAL LETTER K
|
||||
+<U004C> /x4c LATIN CAPITAL LETTER L
|
||||
+<U004D> /x4d LATIN CAPITAL LETTER M
|
||||
+<U004E> /x4e LATIN CAPITAL LETTER N
|
||||
+<U004F> /x4f LATIN CAPITAL LETTER O
|
||||
+<U0050> /x50 LATIN CAPITAL LETTER P
|
||||
+<U0051> /x51 LATIN CAPITAL LETTER Q
|
||||
+<U0052> /x52 LATIN CAPITAL LETTER R
|
||||
+<U0053> /x53 LATIN CAPITAL LETTER S
|
||||
+<U0054> /x54 LATIN CAPITAL LETTER T
|
||||
+<U0055> /x55 LATIN CAPITAL LETTER U
|
||||
+<U0056> /x56 LATIN CAPITAL LETTER V
|
||||
+<U0057> /x57 LATIN CAPITAL LETTER W
|
||||
+<U0058> /x58 LATIN CAPITAL LETTER X
|
||||
+<U0059> /x59 LATIN CAPITAL LETTER Y
|
||||
+<U005A> /x5a LATIN CAPITAL LETTER Z
|
||||
+<U005B> /x5b LEFT SQUARE BRACKET
|
||||
+<U005C> /x5c REVERSE SOLIDUS
|
||||
+<U005D> /x5d RIGHT SQUARE BRACKET
|
||||
+<U005E> /x5e CIRCUMFLEX ACCENT
|
||||
+<U005F> /x5f LOW LINE
|
||||
+<U0060> /x60 GRAVE ACCENT
|
||||
+<U0061> /x61 LATIN SMALL LETTER A
|
||||
+<U0062> /x62 LATIN SMALL LETTER B
|
||||
+<U0063> /x63 LATIN SMALL LETTER C
|
||||
+<U0064> /x64 LATIN SMALL LETTER D
|
||||
+<U0065> /x65 LATIN SMALL LETTER E
|
||||
+<U0066> /x66 LATIN SMALL LETTER F
|
||||
+<U0067> /x67 LATIN SMALL LETTER G
|
||||
+<U0068> /x68 LATIN SMALL LETTER H
|
||||
+<U0069> /x69 LATIN SMALL LETTER I
|
||||
+<U006A> /x6a LATIN SMALL LETTER J
|
||||
+<U006B> /x6b LATIN SMALL LETTER K
|
||||
+<U006C> /x6c LATIN SMALL LETTER L
|
||||
+<U006D> /x6d LATIN SMALL LETTER M
|
||||
+<U006E> /x6e LATIN SMALL LETTER N
|
||||
+<U006F> /x6f LATIN SMALL LETTER O
|
||||
+<U0070> /x70 LATIN SMALL LETTER P
|
||||
+<U0071> /x71 LATIN SMALL LETTER Q
|
||||
+<U0072> /x72 LATIN SMALL LETTER R
|
||||
+<U0073> /x73 LATIN SMALL LETTER S
|
||||
+<U0074> /x74 LATIN SMALL LETTER T
|
||||
+<U0075> /x75 LATIN SMALL LETTER U
|
||||
+<U0076> /x76 LATIN SMALL LETTER V
|
||||
+<U0077> /x77 LATIN SMALL LETTER W
|
||||
+<U0078> /x78 LATIN SMALL LETTER X
|
||||
+<U0079> /x79 LATIN SMALL LETTER Y
|
||||
+<U007A> /x7a LATIN SMALL LETTER Z
|
||||
+<U007B> /x7b LEFT CURLY BRACKET
|
||||
+<U007C> /x7c VERTICAL LINE
|
||||
+<U007D> /x7d RIGHT CURLY BRACKET
|
||||
+<U007E> /x7e TILDE
|
||||
+<U007F> /x7f DELETE (DEL)
|
||||
+<U00C7> /x80 LATIN CAPITAL LETTER C WITH CEDILLA
|
||||
+<U00FC> /x81 LATIN SMALL LETTER U WITH DIAERESIS
|
||||
+<U00E9> /x82 LATIN SMALL LETTER E WITH ACUTE
|
||||
+<U00E2> /x83 LATIN SMALL LETTER A WITH CIRCUMFLEX
|
||||
+<U00E4> /x84 LATIN SMALL LETTER A WITH DIAERESIS
|
||||
+<U00E0> /x85 LATIN SMALL LETTER A WITH GRAVE
|
||||
+<U00E5> /x86 LATIN SMALL LETTER A WITH RING ABOVE
|
||||
+<U00E7> /x87 LATIN SMALL LETTER C WITH CEDILLA
|
||||
+<U00EA> /x88 LATIN SMALL LETTER E WITH CIRCUMFLEX
|
||||
+<U00EB> /x89 LATIN SMALL LETTER E WITH DIAERESIS
|
||||
+<U00E8> /x8a LATIN SMALL LETTER E WITH GRAVE
|
||||
+<U00EF> /x8b LATIN SMALL LETTER I WITH DIAERESIS
|
||||
+<U00EE> /x8c LATIN SMALL LETTER I WITH CIRCUMFLEX
|
||||
+<U00EC> /x8d LATIN SMALL LETTER I WITH GRAVE
|
||||
+<U00C4> /x8e LATIN CAPITAL LETTER A WITH DIAERESIS
|
||||
+<U00C5> /x8f LATIN CAPITAL LETTER A WITH RING ABOVE
|
||||
+<U00C9> /x90 LATIN CAPITAL LETTER E WITH ACUTE
|
||||
+<U00E6> /x91 LATIN SMALL LETTER AE
|
||||
+<U00C6> /x92 LATIN CAPITAL LETTER AE
|
||||
+<U00F4> /x93 LATIN SMALL LETTER O WITH CIRCUMFLEX
|
||||
+<U00F6> /x94 LATIN SMALL LETTER O WITH DIAERESIS
|
||||
+<U00F2> /x95 LATIN SMALL LETTER O WITH GRAVE
|
||||
+<U00FB> /x96 LATIN SMALL LETTER U WITH CIRCUMFLEX
|
||||
+<U00F9> /x97 LATIN SMALL LETTER U WITH GRAVE
|
||||
+<U00FF> /x98 LATIN SMALL LETTER Y WITH DIAERESIS
|
||||
+<U00D6> /x99 LATIN CAPITAL LETTER O WITH DIAERESIS
|
||||
+<U00DC> /x9a LATIN CAPITAL LETTER U WITH DIAERESIS
|
||||
+<U00F8> /x9b LATIN SMALL LETTER O WITH STROKE
|
||||
+<U00A3> /x9c POUND SIGN
|
||||
+<U00D8> /x9d LATIN CAPITAL LETTER O WITH STROKE
|
||||
+<U00D7> /x9e MULTIPLICATION SIGN
|
||||
+<U0192> /x9f LATIN SMALL LETTER F WITH HOOK
|
||||
+<U00E1> /xa0 LATIN SMALL LETTER A WITH ACUTE
|
||||
+<U00ED> /xa1 LATIN SMALL LETTER I WITH ACUTE
|
||||
+<U00F3> /xa2 LATIN SMALL LETTER O WITH ACUTE
|
||||
+<U00FA> /xa3 LATIN SMALL LETTER U WITH ACUTE
|
||||
+<U00F1> /xa4 LATIN SMALL LETTER N WITH TILDE
|
||||
+<U00D1> /xa5 LATIN CAPITAL LETTER N WITH TILDE
|
||||
+<U00AA> /xa6 FEMININE ORDINAL INDICATOR
|
||||
+<U00BA> /xa7 MASCULINE ORDINAL INDICATOR
|
||||
+<U00BF> /xa8 INVERTED QUESTION MARK
|
||||
+<U00AE> /xa9 REGISTERED SIGN
|
||||
+<U00AC> /xaa NOT SIGN
|
||||
+<U00BD> /xab VULGAR FRACTION ONE HALF
|
||||
+<U00BC> /xac VULGAR FRACTION ONE QUARTER
|
||||
+<U00A1> /xad INVERTED EXCLAMATION MARK
|
||||
+<U00AB> /xae LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
|
||||
+<U00BB> /xaf RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
|
||||
+<U2591> /xb0 LIGHT SHADE
|
||||
+<U2592> /xb1 MEDIUM SHADE
|
||||
+<U2593> /xb2 DARK SHADE
|
||||
+<U2502> /xb3 BOX DRAWINGS LIGHT VERTICAL
|
||||
+<U2524> /xb4 BOX DRAWINGS LIGHT VERTICAL AND LEFT
|
||||
+<U00C1> /xb5 LATIN CAPITAL LETTER A WITH ACUTE
|
||||
+<U00C2> /xb6 LATIN CAPITAL LETTER A WITH CIRCUMFLEX
|
||||
+<U00C0> /xb7 LATIN CAPITAL LETTER A WITH GRAVE
|
||||
+<U00A9> /xb8 COPYRIGHT SIGN
|
||||
+<U2563> /xb9 BOX DRAWINGS DOUBLE VERTICAL AND LEFT
|
||||
+<U2551> /xba BOX DRAWINGS DOUBLE VERTICAL
|
||||
+<U2557> /xbb BOX DRAWINGS DOUBLE DOWN AND LEFT
|
||||
+<U255D> /xbc BOX DRAWINGS DOUBLE UP AND LEFT
|
||||
+<U00A2> /xbd CENT SIGN
|
||||
+<U00A5> /xbe YEN SIGN
|
||||
+<U2510> /xbf BOX DRAWINGS LIGHT DOWN AND LEFT
|
||||
+<U2514> /xc0 BOX DRAWINGS LIGHT UP AND RIGHT
|
||||
+<U2534> /xc1 BOX DRAWINGS LIGHT UP AND HORIZONTAL
|
||||
+<U252C> /xc2 BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
|
||||
+<U251C> /xc3 BOX DRAWINGS LIGHT VERTICAL AND RIGHT
|
||||
+<U2500> /xc4 BOX DRAWINGS LIGHT HORIZONTAL
|
||||
+<U253C> /xc5 BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
|
||||
+<U00E3> /xc6 LATIN SMALL LETTER A WITH TILDE
|
||||
+<U00C3> /xc7 LATIN CAPITAL LETTER A WITH TILDE
|
||||
+<U255A> /xc8 BOX DRAWINGS DOUBLE UP AND RIGHT
|
||||
+<U2554> /xc9 BOX DRAWINGS DOUBLE DOWN AND RIGHT
|
||||
+<U2569> /xca BOX DRAWINGS DOUBLE UP AND HORIZONTAL
|
||||
+<U2566> /xcb BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
|
||||
+<U2560> /xcc BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
|
||||
+<U2550> /xcd BOX DRAWINGS DOUBLE HORIZONTAL
|
||||
+<U256C> /xce BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
|
||||
+<U00A4> /xcf CURRENCY SIGN
|
||||
+<U00F0> /xd0 LATIN SMALL LETTER ETH (Icelandic)
|
||||
+<U00D0> /xd1 LATIN CAPITAL LETTER ETH (Icelandic)
|
||||
+<U00CA> /xd2 LATIN CAPITAL LETTER E WITH CIRCUMFLEX
|
||||
+<U00CB> /xd3 LATIN CAPITAL LETTER E WITH DIAERESIS
|
||||
+<U00C8> /xd4 LATIN CAPITAL LETTER E WITH GRAVE
|
||||
+<U20AC> /xd5 EURO SIGN
|
||||
+<U00CD> /xd6 LATIN CAPITAL LETTER I WITH ACUTE
|
||||
+<U00CE> /xd7 LATIN CAPITAL LETTER I WITH CIRCUMFLEX
|
||||
+<U00CF> /xd8 LATIN CAPITAL LETTER I WITH DIAERESIS
|
||||
+<U2518> /xd9 BOX DRAWINGS LIGHT UP AND LEFT
|
||||
+<U250C> /xda BOX DRAWINGS LIGHT DOWN AND RIGHT
|
||||
+<U2588> /xdb FULL BLOCK
|
||||
+<U2584> /xdc LOWER HALF BLOCK
|
||||
+<U00A6> /xdd BROKEN BAR
|
||||
+<U00CC> /xde LATIN CAPITAL LETTER I WITH GRAVE
|
||||
+<U2580> /xdf UPPER HALF BLOCK
|
||||
+<U00D3> /xe0 LATIN CAPITAL LETTER O WITH ACUTE
|
||||
+<U00DF> /xe1 LATIN SMALL LETTER SHARP S (German)
|
||||
+<U00D4> /xe2 LATIN CAPITAL LETTER O WITH CIRCUMFLEX
|
||||
+<U00D2> /xe3 LATIN CAPITAL LETTER O WITH GRAVE
|
||||
+<U00F5> /xe4 LATIN SMALL LETTER O WITH TILDE
|
||||
+<U00D5> /xe5 LATIN CAPITAL LETTER O WITH TILDE
|
||||
+<U00B5> /xe6 MICRO SIGN
|
||||
+<U00FE> /xe7 LATIN SMALL LETTER THORN (Icelandic)
|
||||
+<U00DE> /xe8 LATIN CAPITAL LETTER THORN (Icelandic)
|
||||
+<U00DA> /xe9 LATIN CAPITAL LETTER U WITH ACUTE
|
||||
+<U00DB> /xea LATIN CAPITAL LETTER U WITH CIRCUMFLEX
|
||||
+<U00D9> /xeb LATIN CAPITAL LETTER U WITH GRAVE
|
||||
+<U00FD> /xec LATIN SMALL LETTER Y WITH ACUTE
|
||||
+<U00DD> /xed LATIN CAPITAL LETTER Y WITH ACUTE
|
||||
+<U00AF> /xee MACRON
|
||||
+<U00B4> /xef ACUTE ACCENT
|
||||
+<U00AD> /xf0 SOFT HYPHEN
|
||||
+<U00B1> /xf1 PLUS-MINUS SIGN
|
||||
+<U2017> /xf2 DOUBLE LOW LINE
|
||||
+<U00BE> /xf3 VULGAR FRACTION THREE QUARTERS
|
||||
+<U00B6> /xf4 PILCROW SIGN
|
||||
+<U00A7> /xf5 SECTION SIGN
|
||||
+<U00F7> /xf6 DIVISION SIGN
|
||||
+<U00B8> /xf7 CEDILLA
|
||||
+<U00B0> /xf8 DEGREE SIGN
|
||||
+<U00A8> /xf9 DIAERESIS
|
||||
+<U00B7> /xfa MIDDLE DOT
|
||||
+<U00B9> /xfb SUPERSCRIPT ONE
|
||||
+<U00B3> /xfc SUPERSCRIPT THREE
|
||||
+<U00B2> /xfd SUPERSCRIPT TWO
|
||||
+<U25A0> /xfe BLACK SQUARE
|
||||
+<U00A0> /xff NO-BREAK SPACE
|
||||
+END CHARMAP
|
229
glibc.spec
229
glibc.spec
|
@ -1,6 +1,6 @@
|
|||
%define glibcsrcdir glibc-2.23-561-gf531f93
|
||||
%define glibcversion 2.23.90
|
||||
%define glibcrelease 30%{?dist}
|
||||
%define glibcsrcdir glibc-2.24-71-g79c6f51428
|
||||
%define glibcversion 2.24
|
||||
%define glibcrelease 12%{?dist}
|
||||
# Pre-release tarballs are pulled in from git using a command that is
|
||||
# effectively:
|
||||
#
|
||||
|
@ -9,7 +9,8 @@
|
|||
# gzip -9 $(git describe --match 'glibc-*').tar
|
||||
#
|
||||
# glibc_release_url is only defined when we have a release tarball.
|
||||
# % define glibc_release_url http://ftp.gnu.org/gnu/glibc/
|
||||
%{lua: if string.match(rpm.expand("%glibcsrcdir"), "^glibc%-[0-9.]+$") then
|
||||
rpm.define("glibc_release_url https://ftp.gnu.org/gnu/glibc/") end}
|
||||
##############################################################################
|
||||
# We support hte following options:
|
||||
# --with/--without,
|
||||
|
@ -307,6 +308,10 @@ Patch2110: glibc-rh1351108-update-to-unicode-9.0.0.patch
|
|||
Patch2111: glibc-rh1315476-1.patch
|
||||
Patch2112: glibc-rh1315476-2.patch
|
||||
|
||||
Patch61: glibc-nscd-reproducible.patch
|
||||
Patch62: glibc-nss_compat.patch
|
||||
Patch63: glibc-rh1416405.patch
|
||||
|
||||
##############################################################################
|
||||
# End of glibc patches.
|
||||
##############################################################################
|
||||
|
@ -617,47 +622,92 @@ The sources for all locales provided in the language packs.
|
|||
If you are building custom locales you will most likely use
|
||||
these sources as the basis for your new locale.
|
||||
|
||||
%define lang_package()\
|
||||
%package langpack-%{1}\
|
||||
Summary: Locale data for %{1}\
|
||||
Provides: glibc-langpack = %{version}-%{release}\
|
||||
Requires: %{name} = %{version}-%{release}\
|
||||
Requires: %{name}-common = %{version}-%{release}\
|
||||
%define supplements_list %(cat %{SOURCE11} | grep ^%{1}_ | cut -d / -f 1 | cut -d @ -f 1 | cut -d . -f 1 | sort -u | tr "\\\\n" " " | sed 's/ $//' | sed 's/ / or langpacks-/g' | sed 's/^/ or langpacks-/')\
|
||||
Supplements: (glibc = %{version}-%{release} and (langpacks-%{1}%{supplements_list}))\
|
||||
Group: System Environment/Base\
|
||||
%description langpack-%{1}\
|
||||
The glibc-langpack-%{1} package includes the basic information required\
|
||||
to support the %{1} language in your applications.\
|
||||
%ifnarch %{auxarches}\
|
||||
%files -f langpack-%{1}.filelist langpack-%{1}\
|
||||
%defattr(-,root,root)\
|
||||
%endif\
|
||||
%{nil}
|
||||
%{lua:
|
||||
-- Array of languages (ISO-639 codes).
|
||||
local languages = {}
|
||||
-- Dictionary from language codes (as in the languages array) to arrays
|
||||
-- of regions.
|
||||
local supplements = {}
|
||||
do
|
||||
-- Parse the SUPPORTED file. Eliminate duplicates.
|
||||
local lang_region_seen = {}
|
||||
for line in io.lines(rpm.expand("%{SOURCE11}")) do
|
||||
-- Match lines which contain a language (eo) or language/region
|
||||
-- (en_US) strings.
|
||||
local lang_region = string.match(line, "^([a-z][^/@.]+)")
|
||||
if lang_region ~= nil then
|
||||
if lang_region_seen[lang_region] == nil then
|
||||
lang_region_seen[lang_region] = true
|
||||
|
||||
# language_list will contain a list of all supported language
|
||||
# names in iso-639 format, i.e. something like "aa af ... yue zh zu"
|
||||
# We add "eo" (Esperanto) manually because currently glibc has no
|
||||
# Esperanto locale in SUPPORTED but translations for Esperanto exist.
|
||||
# Therefore, we want a glibc-langpack-eo sub-package containing these
|
||||
# translations.
|
||||
%define language_list eo %(cat %{SOURCE11} | grep -E '^[a-z]+_' | cut -d _ -f 1 | sort -u | tr "\\\\n" " " | sed 's/ $//')
|
||||
-- Split language/region pair.
|
||||
local lang, region = string.match(lang_region, "^(.+)_(.+)")
|
||||
if lang == nil then
|
||||
-- Region is missing, use only the language.
|
||||
lang = lang_region
|
||||
end
|
||||
local suppl = supplements[lang]
|
||||
if suppl == nil then
|
||||
suppl = {}
|
||||
supplements[lang] = suppl
|
||||
-- New language not seen before.
|
||||
languages[#languages + 1] = lang
|
||||
end
|
||||
if region ~= nil then
|
||||
-- New region because of the check against
|
||||
-- lang_region_seen above.
|
||||
suppl[#suppl + 1] = region
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
-- Sort for determinism.
|
||||
table.sort(languages)
|
||||
for _, supples in pairs(supplements) do
|
||||
table.sort(supplements)
|
||||
end
|
||||
end
|
||||
|
||||
%define create_lang_packages()\
|
||||
%{lua:\
|
||||
local languages = rpm.expand("%1")\
|
||||
string.gsub(languages, "(%a+)",\
|
||||
function(i) print(rpm.expand("%lang_package "..i.."")) end)}\
|
||||
%{nil}
|
||||
-- Compute the Supplements: list for a language, based on the regions.
|
||||
local function compute_supplements(lang)
|
||||
result = "langpacks-" .. lang
|
||||
regions = supplements[lang]
|
||||
if regions ~= nil then
|
||||
for i = 1, #regions do
|
||||
result = result .. " or langpacks-" .. lang .. "_" .. regions[i]
|
||||
end
|
||||
end
|
||||
return result
|
||||
end
|
||||
|
||||
%create_lang_packages %language_list
|
||||
-- Emit the definition of a language pack package.
|
||||
local function lang_package(lang)
|
||||
local suppl = compute_supplements(lang)
|
||||
print(rpm.expand([[
|
||||
|
||||
%define require_langpacks()\
|
||||
%{lua:\
|
||||
local languages = rpm.expand("%1")\
|
||||
string.gsub(languages, "(%a+)",\
|
||||
function(i) print(rpm.expand("Requires: %{name}-langpack-"..i.." = %{version}-%{release}\\n")) end)}\
|
||||
%{nil}
|
||||
%package langpack-]]..lang..[[
|
||||
|
||||
Summary: Locale data for ]]..lang..[[
|
||||
|
||||
Provides: glibc-langpack = %{version}-%{release}
|
||||
Requires: %{name} = %{version}-%{release}
|
||||
Requires: %{name}-common = %{version}-%{release}
|
||||
Supplements: (glibc = %{version}-%{release} and (]]..suppl..[[))
|
||||
%description langpack-]]..lang..[[
|
||||
|
||||
The glibc-langpack-]]..lang..[[ package includes the basic information required
|
||||
to support the ]]..lang..[[ language in your applications.
|
||||
%ifnarch %{auxarches}
|
||||
%files -f langpack-]]..lang..[[.filelist langpack-]]..lang..[[
|
||||
|
||||
%defattr(-,root,root)
|
||||
%endif
|
||||
]]))
|
||||
end
|
||||
|
||||
for i = 1, #languages do
|
||||
lang_package(languages[i])
|
||||
end
|
||||
}
|
||||
|
||||
# The glibc-all-langpacks provides the virtual glibc-langpack,
|
||||
# and thus satisfies glibc's requirement for installed locales.
|
||||
|
@ -730,9 +780,9 @@ Group: System Environment/Base
|
|||
Requires: %{name}%{_isa} = %{version}-%{release}
|
||||
|
||||
%description -n nss_nis
|
||||
The nss_nis, nss_nisplus, and nss_compat Name Service Switch modules
|
||||
uses the Network Information System (NIS) to obtain user, group, host
|
||||
name, and other data.
|
||||
The nss_nis and nss_nisplus Name Service Switch modules uses the
|
||||
Network Information System (NIS) to obtain user, group, host name, and
|
||||
other data.
|
||||
|
||||
%package -n nss_hesiod
|
||||
Summary: Name Service Switch (NSS) module using Hesiod
|
||||
|
@ -883,6 +933,9 @@ microbenchmark tests on the system.
|
|||
%patch2110 -p1
|
||||
%patch2111 -p1
|
||||
%patch2112 -p1
|
||||
%patch61 -p1
|
||||
%patch62 -p1
|
||||
%patch63 -p1
|
||||
|
||||
##############################################################################
|
||||
# %%prep - Additional prep required...
|
||||
|
@ -1625,8 +1678,8 @@ for module in db nis nisplus compat hesiod files dns; do
|
|||
grep -E "/libnss_$module(\.so\.[0-9.]+|-[0-9.]+\.so)$" \
|
||||
rpm.filelist > nss_$module.filelist
|
||||
done
|
||||
# nis includes nisplus and compat
|
||||
cat nss_nisplus.filelist nss_compat.filelist >> nss_nis.filelist
|
||||
# nis includes nisplus
|
||||
cat nss_nisplus.filelist >> nss_nis.filelist
|
||||
# Symlinks go into the nss-devel package (instead of the main devel
|
||||
# package).
|
||||
grep '/libnss_[a-z]*\.so$' devel.filelist > nss-devel.filelist
|
||||
|
@ -1636,7 +1689,7 @@ sed -i -e '\,/libnss_.*\.so[0-9.]*$,d' \
|
|||
-e '\,/var/db/Makefile,d' \
|
||||
rpm.filelist devel.filelist
|
||||
# Restore the built-in NSS modules.
|
||||
cat nss_files.filelist nss_dns.filelist >> rpm.filelist
|
||||
cat nss_files.filelist nss_dns.filelist nss_compat.filelist >> rpm.filelist
|
||||
|
||||
# Prepare the libcrypt-related file lists.
|
||||
grep '/libcrypt-[0-9.]*.so$' rpm.filelist > libcrypt.filelist
|
||||
|
@ -1782,9 +1835,7 @@ find_debuginfo_args="$find_debuginfo_args \
|
|||
-l nosegneg.filelist"
|
||||
%endif
|
||||
%endif
|
||||
eval /usr/lib/rpm/find-debuginfo.sh \
|
||||
"$find_debuginfo_args" \
|
||||
-o debuginfo.filelist
|
||||
/usr/lib/rpm/find-debuginfo.sh $find_debuginfo_args -o debuginfo.filelist
|
||||
|
||||
# List all of the *.a archives in the debug directory.
|
||||
list_debug_archives()
|
||||
|
@ -2266,6 +2317,84 @@ rm -f *.filelist*
|
|||
%endif
|
||||
|
||||
%changelog
|
||||
* Thu Oct 19 2017 Florian Weimer <fweimer@redhat.com> - 2.24-12
|
||||
- Make build of nscd reproducible
|
||||
- Remove libnsl dependency from nss_compat
|
||||
- Move nss_compat to the main glibc package (#1400538)
|
||||
- iconv: Support the IBM858 character set (#1416405)
|
||||
|
||||
* Thu Oct 19 2017 Florian Weimer <fweimer@redhat.com> - 2.24-11
|
||||
- Auto-sync with upstream branch release/2.24/master,
|
||||
commit 79c6f51428a9ec977e611e609a8be6aebcb00006:
|
||||
- Incorrect pointer alignment in NSS group merge result construction (#1471985)
|
||||
- Fix nss_nisplus build with mainline GCC (swbz#20978)
|
||||
- Fix rpcgen buffer overrun (swbz#20790)
|
||||
|
||||
* Wed Aug 16 2017 Florian Weimer <fweimer@redhat.com> - 2.24-10
|
||||
- Auto-sync with upstream release/2.24/master,
|
||||
commit d5a4092c367955ac0203ee603fdec625f6c924f9:
|
||||
- CVE-2017-12133: Avoid use-after-free read access in clntudp_call (#1478289)
|
||||
- x86-64: Use _dl_runtime_resolve_opt only with AVX512F (swbz#21871)
|
||||
- Avoid .symver on common symbols (swbz#21666)
|
||||
- aarch64: Use hidden __GI__dl_argv in rtld startup code
|
||||
|
||||
* Thu Jul 06 2017 Florian Weimer <fweimer@redhat.com> - 2.24-9
|
||||
- Auto-sync with upstream release/2.24/master,
|
||||
commit 605e6f9f4a4bf39416ac16fad1f41b5a93a0774d:
|
||||
- x86-64: Align the stack in __tls_get_addr (#1440287)
|
||||
|
||||
* Tue Jun 20 2017 Florian Weimer <fweimer@redhat.com> - 2.24-8
|
||||
- Auto-sync with upstream release/2.24/master,
|
||||
commit 86ac4a78a9218d1e1dcfbacc6f7d09957c1fe3a4.
|
||||
|
||||
* Tue Jun 20 2017 Florian Weimer <fweimer@redhat.com> - 2.24-7
|
||||
- Auto-sync with upstream release/2.24/master,
|
||||
commit 0578ef88fd6ea9bd0039ab8cbcbc9a964e3b9969, fixing:
|
||||
- CVE-2017-1000366: Avoid large allocas in the dynamic linker (#1462820)
|
||||
- Ignore and remove LD_HWCAP_MASK for AT_SECURE programs (swbz#21209)
|
||||
- Correct collation rules for Malayalam (swbz#19922, swbz#19919)
|
||||
- fork: Remove bogus parent PID assertions (swbz#21386)
|
||||
|
||||
* Wed Jun 07 2017 Arjun Shankar <arjun.is@lostca.se> - 2.24-6
|
||||
- Auto-sync with upstream release/2.24/master,
|
||||
commit 7b60553e360731338631ccdda71590ac5deca137, fixing:
|
||||
- Remove the PID cache (#1443976)
|
||||
|
||||
* Fri Jan 27 2017 Florian Weimer <fweimer@redhat.com> - 2.24-5
|
||||
- Use vpath in crypt-glibc/Makefile to obtain the test input file.
|
||||
|
||||
* Fri Dec 23 2016 Carlos O'Donell <carlos@systemhalted.org> - 2.24-4
|
||||
- Auto-sync with upstream release/2.24/master,
|
||||
commit e9e69e468039fcd57276f783a16aa771a8e4214e, fixing:
|
||||
- Shared object unload assert when calling dlclose (#1398370, swbz#11941)
|
||||
- Fix runtime resolver routines in the presence of AVX512 (swbz#20508)
|
||||
- Fix writes past the allocated array bounds in execvpe (swbz#20847)
|
||||
- Fix building with GCC 6.2 on i686 with stack protector.
|
||||
- Fix building with GCC 7.
|
||||
- Fix POWER6 memset with recent binutils.
|
||||
- Fix POWER math test expected failures.
|
||||
- Fix cancellation in posix_spawn.
|
||||
- Fix multiarch builds for POWER9.
|
||||
|
||||
* Thu Aug 18 2016 Florian Weimer <fweimer@redhat.com> - 2.24-3
|
||||
- Auto-sync with upstream release/2.24/master,
|
||||
commit 8c716c2e2f916bc18a3857129c181b96990a87d6, fixing:
|
||||
- argp: Do not override GCC keywords with macros (#1366830)
|
||||
- CVE-2016-6323: Backtraces can hang on ARM EABI (32-bit) (swbz#20435)
|
||||
- Avoid duplicating object files already in libc.a (#1352625)
|
||||
- powerpc: fix ifunc-sel.h with GCC 6
|
||||
- nptl: reduce time to expected tst-once5 failure
|
||||
|
||||
* Thu Aug 11 2016 Florian Weimer <fweimer@redhat.com> - 2.24-2
|
||||
- Auto-sync with upstream release/2.24/master,
|
||||
commit ea23815a795f72035262953dad5beb03e09c17dd.
|
||||
- Translation updates
|
||||
- malloc: Preserve arena free list/thread count invariant (#1356645)
|
||||
- x86: Use sysdep.o from libc.a in static libraries (#1352625)
|
||||
|
||||
* Tue Aug 02 2016 Carlos O'Donell <carlos@redhat.com> - 2.24-1
|
||||
- Update to final released glibc 2.24.
|
||||
|
||||
* Thu Jul 21 2016 Florian Weimer <fweimer@redhat.com> - 2.23.90-30
|
||||
- Drop sendmsg/recvmsg compatibility patch (#1344830)
|
||||
- glibc-devel depends on libgcc%%{_isa} (#1289356)
|
||||
|
|
|
@ -1,9 +1,10 @@
|
|||
#!/bin/bash
|
||||
set -e
|
||||
# Patches are in the current directory.
|
||||
export QUILT_PATCHES=$PWD
|
||||
# Extract source file name from sources file,
|
||||
# and assume it's the same name as the directory.
|
||||
source=`cat sources | sed -e 's,^.* ,,g'`
|
||||
source=`cat sources | sed -e 's,^.*(\(.*\)).*,\1,g'`
|
||||
srcdir=${source%.tar.gz}
|
||||
if [ "$1" == "-f" ] && [ -d "$srcdir" ]; then
|
||||
echo Cleaning up $srcdir
|
||||
|
|
Loading…
Reference in New Issue