diff options
-rw-r--r-- | meta/conf/bitbake.conf | 1 | ||||
-rw-r--r-- | meta/recipes-core/glibc/glibc.inc | 5 | ||||
-rw-r--r-- | meta/recipes-core/glibc/glibc/0031-nativesdk-deprecate-libcrypt.patch | 419 | ||||
-rw-r--r-- | meta/recipes-core/glibc/glibc_2.27.bb | 1 | ||||
-rw-r--r-- | meta/recipes-core/glibc/site_config/headers | 1 | ||||
-rw-r--r-- | meta/recipes-core/libxcrypt/libxcrypt_4.0.0.bb | 31 | ||||
-rw-r--r-- | meta/recipes-core/meta/uninative-tarball.bb | 1 | ||||
-rw-r--r-- | meta/recipes-core/musl/musl_git.bb | 2 | ||||
-rw-r--r-- | meta/recipes-core/util-linux/util-linux.inc | 2 | ||||
-rw-r--r-- | meta/recipes-devtools/perl/perl_5.24.1.bb | 2 | ||||
-rw-r--r-- | meta/recipes-extended/shadow/shadow.inc | 3 |
11 files changed, 461 insertions, 7 deletions
diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf index 93f57f3c9e..60590e23cc 100644 --- a/meta/conf/bitbake.conf +++ b/meta/conf/bitbake.conf | |||
@@ -187,6 +187,7 @@ ASSUME_PROVIDED = "\ | |||
187 | tar-native \ | 187 | tar-native \ |
188 | virtual/libintl-native \ | 188 | virtual/libintl-native \ |
189 | virtual/libiconv-native \ | 189 | virtual/libiconv-native \ |
190 | virtual/crypt-native \ | ||
190 | texinfo-native \ | 191 | texinfo-native \ |
191 | bash-native \ | 192 | bash-native \ |
192 | sed-native \ | 193 | sed-native \ |
diff --git a/meta/recipes-core/glibc/glibc.inc b/meta/recipes-core/glibc/glibc.inc index 361a6fde10..9e02ffdff1 100644 --- a/meta/recipes-core/glibc/glibc.inc +++ b/meta/recipes-core/glibc/glibc.inc | |||
@@ -35,7 +35,10 @@ siteconfig_do_siteconfig_gencache_prepend = " \ | |||
35 | DEPENDS = "virtual/${TARGET_PREFIX}gcc-initial libgcc-initial linux-libc-headers virtual/${TARGET_PREFIX}libc-initial" | 35 | DEPENDS = "virtual/${TARGET_PREFIX}gcc-initial libgcc-initial linux-libc-headers virtual/${TARGET_PREFIX}libc-initial" |
36 | # nptl needs libgcc but dlopens it, so our shlibs code doesn't detect this | 36 | # nptl needs libgcc but dlopens it, so our shlibs code doesn't detect this |
37 | #RDEPENDS_${PN} += "${@['','libgcc']['nptl' in '${GLIBC_ADDONS}']}" | 37 | #RDEPENDS_${PN} += "${@['','libgcc']['nptl' in '${GLIBC_ADDONS}']}" |
38 | PROVIDES = "virtual/libc virtual/${TARGET_PREFIX}libc-for-gcc" | 38 | |
39 | CRYPTPROVIDES = "virtual/crypt" | ||
40 | CRYPTPROVIDES_class-nativesdk = "" | ||
41 | PROVIDES = "virtual/libc virtual/${TARGET_PREFIX}libc-for-gcc ${CRYPTPROVIDES}" | ||
39 | PROVIDES += "virtual/libintl virtual/libiconv" | 42 | PROVIDES += "virtual/libintl virtual/libiconv" |
40 | inherit autotools texinfo distro_features_check systemd | 43 | inherit autotools texinfo distro_features_check systemd |
41 | 44 | ||
diff --git a/meta/recipes-core/glibc/glibc/0031-nativesdk-deprecate-libcrypt.patch b/meta/recipes-core/glibc/glibc/0031-nativesdk-deprecate-libcrypt.patch new file mode 100644 index 0000000000..a9132ed3d2 --- /dev/null +++ b/meta/recipes-core/glibc/glibc/0031-nativesdk-deprecate-libcrypt.patch | |||
@@ -0,0 +1,419 @@ | |||
1 | Background information: | ||
2 | |||
3 | https://sourceware.org/ml/libc-alpha/2017-08/msg01257.html | ||
4 | https://fedoraproject.org/wiki/Changes/Replace_glibc_libcrypt_with_libxcrypt | ||
5 | |||
6 | Upstream-Status: Submitted [libc-alpha@sourceware.org] | ||
7 | Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> | ||
8 | |||
9 | From: Zack Weinberg <zackw@panix.com> | ||
10 | Subject: [PATCH] Deprecate libcrypt and don't build it by default | ||
11 | |||
12 | Back in June, Björn Esser proposed to add OpenBSD-compatible bcrypt | ||
13 | support to our implementation of crypt(3), and Zack Weinberg replied | ||
14 | that it might actually make more sense to _remove_ libcrypt from | ||
15 | glibc, freeing up libcrypt.so.1 and crypt.h to be provided by a | ||
16 | separate project that could move faster. (For instance, libxcrypt: | ||
17 | https://github.com/besser82/libxcrypt) | ||
18 | |||
19 | This patch disables build and installation of libcrypt by default. It | ||
20 | can be re-enabled with --enable-obsolete-crypt to configure. Unlike | ||
21 | libnsl, we do *not* install a runtime shared library; that's left to | ||
22 | the replacement. (Unlike the SunRPC situation, I think we can | ||
23 | probably drop this code altogether in a release or two.) | ||
24 | |||
25 | The function prototypes for crypt and encrypt are removed from | ||
26 | unistd.h, and the function prototype for setkey is removed from | ||
27 | stdlib.h; they do *not* come back with --enable-obsolete-crypt. This | ||
28 | means glibc no longer provides the POSIX CRYPT option, and the macro | ||
29 | _XOPEN_CRYPT is also removed from unistd.h to indicate that. | ||
30 | (_SC_XOPEN_CRYPT is still defined, but sysconf(_SC_XOPEN_CRYPT) will | ||
31 | return -1 at runtime.) These functions are also unconditionally | ||
32 | removed from conform/data/{stdlib,unistd}.h-data. | ||
33 | |||
34 | * posix/unistd.h (_XOPEN_CRYPT, crypt, encrypt): Don't declare. | ||
35 | * stdlib/stdlib.h (setkey): Don't declare. | ||
36 | |||
37 | * configure.ac (--enable-obsolete-crypt): New configure option. | ||
38 | * configure: Regenerate. | ||
39 | * config.make.in (build-obsolete-crypt): New makefile variable. | ||
40 | * crypt/Banner: Delete file. | ||
41 | * crypt/Makefile: Don't build anything unless | ||
42 | $(build-obsolete-crypt) is 'yes'. | ||
43 | * sysdeps/sparc/sparc32/sparcv9/multiarch/Makefile: Only add things | ||
44 | to libcrypt-sysdep_routines when $(build-obsolete-crypt) is 'yes'. | ||
45 | * sysdeps/sparc/sparc64/multiarch/Makefile: Likewise. | ||
46 | * sysdeps/unix/sysv/linux/arm/Makefile: Likewise. | ||
47 | |||
48 | * conform/Makefile: Only include libcrypt.a in linknamespace tests | ||
49 | when $(build-obsolete-crypt) is 'yes'. | ||
50 | * conform/data/stdlib.h-data (setkey): Don't expect. | ||
51 | * conform/data/unistd.h-data (crypt, encrypt): Don't expect. | ||
52 | * elf/Makefile: Only perform various tests of libcrypt.so/libcrypt.a | ||
53 | when $(build-obsolete-crypt) is 'yes'. | ||
54 | * elf/tst-linkall-static.c: Don't include crypt.h when USE_CRYPT | ||
55 | is false. | ||
56 | --- | ||
57 | NEWS | 18 ++++++++++++++++++ | ||
58 | config.make.in | 1 + | ||
59 | configure | 13 +++++++++++++ | ||
60 | configure.ac | 8 ++++++++ | ||
61 | conform/Makefile | 14 ++++++++++---- | ||
62 | conform/data/stdlib.h-data | 3 --- | ||
63 | conform/data/unistd.h-data | 6 ------ | ||
64 | crypt/Makefile | 5 +++++ | ||
65 | elf/Makefile | 16 ++++++++++++---- | ||
66 | elf/tst-linkall-static.c | 2 ++ | ||
67 | posix/unistd.h | 16 ---------------- | ||
68 | stdlib/stdlib.h | 6 ------ | ||
69 | sysdeps/sparc/sparc32/sparcv9/multiarch/Makefile | 2 ++ | ||
70 | sysdeps/sparc/sparc64/multiarch/Makefile | 2 ++ | ||
71 | sysdeps/unix/sysv/linux/arm/Makefile | 2 ++ | ||
72 | 15 files changed, 75 insertions(+), 39 deletions(-) | ||
73 | |||
74 | diff --git a/config.make.in b/config.make.in | ||
75 | index 9e5e24b2c6..8fe610d04d 100644 | ||
76 | --- a/config.make.in | ||
77 | +++ b/config.make.in | ||
78 | @@ -82,6 +82,7 @@ mach-interface-list = @mach_interface_list@ | ||
79 | |||
80 | experimental-malloc = @experimental_malloc@ | ||
81 | |||
82 | +build-obsolete-crypt = @build_obsolete_crypt@ | ||
83 | nss-crypt = @libc_cv_nss_crypt@ | ||
84 | static-nss-crypt = @libc_cv_static_nss_crypt@ | ||
85 | |||
86 | diff --git a/configure b/configure | ||
87 | index 7a8bd3f817..46f6bd7f86 100755 | ||
88 | --- a/configure | ||
89 | +++ b/configure | ||
90 | @@ -672,6 +672,7 @@ base_machine | ||
91 | have_tunables | ||
92 | build_pt_chown | ||
93 | build_nscd | ||
94 | +build_obsolete_crypt | ||
95 | build_obsolete_nsl | ||
96 | link_obsolete_rpc | ||
97 | libc_cv_static_nss_crypt | ||
98 | @@ -782,6 +783,7 @@ enable_experimental_malloc | ||
99 | enable_nss_crypt | ||
100 | enable_obsolete_rpc | ||
101 | enable_obsolete_nsl | ||
102 | +enable_obsolete_crypt | ||
103 | enable_systemtap | ||
104 | enable_build_nscd | ||
105 | enable_nscd | ||
106 | @@ -1453,6 +1455,7 @@ Optional Features: | ||
107 | link-time usage | ||
108 | --enable-obsolete-nsl build and install the obsolete libnsl library and | ||
109 | depending NSS modules | ||
110 | + --enable-obsolete-crypt build and install the obsolete libcrypt library | ||
111 | --enable-systemtap enable systemtap static probe points [default=no] | ||
112 | --disable-build-nscd disable building and installing the nscd daemon | ||
113 | --disable-nscd library functions will not contact the nscd daemon | ||
114 | @@ -3632,6 +3635,16 @@ if test "$build_obsolete_nsl" = yes; then | ||
115 | |||
116 | fi | ||
117 | |||
118 | +# Check whether --enable-obsolete-crypt was given. | ||
119 | +if test "${enable_obsolete_crypt+set}" = set; then : | ||
120 | + enableval=$enable_obsolete_crypt; build_obsolete_crypt=$enableval | ||
121 | +else | ||
122 | + build_obsolete_crypt=no | ||
123 | +fi | ||
124 | + | ||
125 | + | ||
126 | + | ||
127 | + | ||
128 | # Check whether --enable-systemtap was given. | ||
129 | if test "${enable_systemtap+set}" = set; then : | ||
130 | enableval=$enable_systemtap; systemtap=$enableval | ||
131 | diff --git a/configure.ac b/configure.ac | ||
132 | index ca1282a6b3..0142353740 100644 | ||
133 | --- a/configure.ac | ||
134 | +++ b/configure.ac | ||
135 | @@ -378,6 +378,14 @@ if test "$build_obsolete_nsl" = yes; then | ||
136 | AC_DEFINE(LINK_OBSOLETE_NSL) | ||
137 | fi | ||
138 | |||
139 | +AC_ARG_ENABLE([obsolete-crypt], | ||
140 | + AC_HELP_STRING([--enable-obsolete-crypt], | ||
141 | + [build and install the obsolete libcrypt library]), | ||
142 | + [build_obsolete_crypt=$enableval], | ||
143 | + [build_obsolete_crypt=no]) | ||
144 | +AC_SUBST(build_obsolete_crypt) | ||
145 | + | ||
146 | + | ||
147 | AC_ARG_ENABLE([systemtap], | ||
148 | [AS_HELP_STRING([--enable-systemtap], | ||
149 | [enable systemtap static probe points @<:@default=no@:>@])], | ||
150 | diff --git a/conform/Makefile b/conform/Makefile | ||
151 | index 864fdeca21..5ef474fb24 100644 | ||
152 | --- a/conform/Makefile | ||
153 | +++ b/conform/Makefile | ||
154 | @@ -193,22 +193,28 @@ linknamespace-libs-thr = $(linknamespace-libs-isoc) \ | ||
155 | $(common-objpfx)rt/librt.a $(static-thread-library) | ||
156 | linknamespace-libs-posix = $(linknamespace-libs-thr) \ | ||
157 | $(common-objpfx)dlfcn/libdl.a | ||
158 | -linknamespace-libs-xsi = $(linknamespace-libs-posix) \ | ||
159 | - $(common-objpfx)crypt/libcrypt.a | ||
160 | +linknamespace-libs-xsi = $(linknamespace-libs-posix) | ||
161 | linknamespace-libs-ISO = $(linknamespace-libs-isoc) | ||
162 | linknamespace-libs-ISO99 = $(linknamespace-libs-isoc) | ||
163 | linknamespace-libs-ISO11 = $(linknamespace-libs-isoc) | ||
164 | -linknamespace-libs-XPG4 = $(linknamespace-libs-isoc) \ | ||
165 | - $(common-objpfx)crypt/libcrypt.a | ||
166 | +linknamespace-libs-XPG4 = $(linknamespace-libs-isoc) | ||
167 | linknamespace-libs-XPG42 = $(linknamespace-libs-XPG4) | ||
168 | linknamespace-libs-POSIX = $(linknamespace-libs-thr) | ||
169 | linknamespace-libs-UNIX98 = $(linknamespace-libs-xsi) | ||
170 | linknamespace-libs-XOPEN2K = $(linknamespace-libs-xsi) | ||
171 | linknamespace-libs-POSIX2008 = $(linknamespace-libs-posix) | ||
172 | linknamespace-libs-XOPEN2K8 = $(linknamespace-libs-xsi) | ||
173 | + | ||
174 | +ifeq ($(build-obsolete-crypt),yes) | ||
175 | +linknamespace-libs-xsi += $(common-objpfx)crypt/libcrypt.a | ||
176 | +linknamespace-libs-XPG4 += $(common-objpfx)crypt/libcrypt.a | ||
177 | +endif | ||
178 | + | ||
179 | linknamespace-libs = $(foreach std,$(conformtest-standards),\ | ||
180 | $(linknamespace-libs-$(std))) | ||
181 | |||
182 | + | ||
183 | + | ||
184 | $(linknamespace-symlist-stdlibs-tests): $(objpfx)symlist-stdlibs-%: \ | ||
185 | $(linknamespace-libs) | ||
186 | LC_ALL=C $(READELF) -W -s $(linknamespace-libs-$*) > $@; \ | ||
187 | diff --git a/conform/data/stdlib.h-data b/conform/data/stdlib.h-data | ||
188 | index d8fcccc2fb..6913828196 100644 | ||
189 | --- a/conform/data/stdlib.h-data | ||
190 | +++ b/conform/data/stdlib.h-data | ||
191 | @@ -149,9 +149,6 @@ function {unsigned short int*} seed48 (unsigned short int[3]) | ||
192 | #if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined XPG4 && !defined XPG42 && !defined UNIX98 | ||
193 | function int setenv (const char*, const char*, int) | ||
194 | #endif | ||
195 | -#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined POSIX2008 | ||
196 | -function void setkey (const char*) | ||
197 | -#endif | ||
198 | #if !defined ISO && !defined ISO99 && !defined ISO11 && !defined XPG4 && !defined POSIX && !defined POSIX2008 | ||
199 | function {char*} setstate (char*) | ||
200 | #endif | ||
201 | diff --git a/conform/data/unistd.h-data b/conform/data/unistd.h-data | ||
202 | index ddf4f25132..aa070528e8 100644 | ||
203 | --- a/conform/data/unistd.h-data | ||
204 | +++ b/conform/data/unistd.h-data | ||
205 | @@ -437,9 +437,6 @@ function int chroot (const char*) | ||
206 | function int chown (const char*, uid_t, gid_t) | ||
207 | function int close (int) | ||
208 | function size_t confstr (int, char*, size_t) | ||
209 | -#if !defined POSIX && !defined POSIX2008 | ||
210 | -function {char*} crypt (const char*, const char*) | ||
211 | -#endif | ||
212 | #if defined XPG4 || defined XPG42 || defined UNIX98 | ||
213 | function {char*} ctermid (char*) | ||
214 | function {char*} cuserid (char*) | ||
215 | @@ -449,9 +446,6 @@ allow cuserid | ||
216 | #endif | ||
217 | function int dup (int) | ||
218 | function int dup2 (int, int) | ||
219 | -#if !defined POSIX && !defined POSIX2008 | ||
220 | -function void encrypt (char[64], int) | ||
221 | -#endif | ||
222 | function int execl (const char*, const char*, ...) | ||
223 | function int execle (const char*, const char*, ...) | ||
224 | function int execlp (const char*, const char*, ...) | ||
225 | diff --git a/crypt/Makefile b/crypt/Makefile | ||
226 | index 303800df73..024ec2c6ab 100644 | ||
227 | --- a/crypt/Makefile | ||
228 | +++ b/crypt/Makefile | ||
229 | @@ -22,6 +22,8 @@ subdir := crypt | ||
230 | |||
231 | include ../Makeconfig | ||
232 | |||
233 | +ifeq ($(build-obsolete-crypt),yes) | ||
234 | + | ||
235 | headers := crypt.h | ||
236 | |||
237 | extra-libs := libcrypt | ||
238 | @@ -52,9 +54,11 @@ tests += md5test sha256test sha512test | ||
239 | # machine over a minute. | ||
240 | xtests = md5test-giant | ||
241 | endif | ||
242 | +endif | ||
243 | |||
244 | include ../Rules | ||
245 | |||
246 | +ifeq ($(build-obsolete-crypt),yes) | ||
247 | ifneq ($(nss-crypt),yes) | ||
248 | md5-routines := md5 $(filter md5%,$(libcrypt-sysdep_routines)) | ||
249 | sha256-routines := sha256 $(filter sha256%,$(libcrypt-sysdep_routines)) | ||
250 | @@ -71,3 +75,4 @@ $(addprefix $(objpfx),$(tests)): $(objpfx)libcrypt.so | ||
251 | else | ||
252 | $(addprefix $(objpfx),$(tests)): $(objpfx)libcrypt.a | ||
253 | endif | ||
254 | +endif | ||
255 | diff --git a/elf/Makefile b/elf/Makefile | ||
256 | index 2a432d8bee..366f7b80ec 100644 | ||
257 | --- a/elf/Makefile | ||
258 | +++ b/elf/Makefile | ||
259 | @@ -385,15 +385,19 @@ $(objpfx)tst-_dl_addr_inside_object: $(objpfx)dl-addr-obj.os | ||
260 | CFLAGS-tst-_dl_addr_inside_object.c += $(PIE-ccflag) | ||
261 | endif | ||
262 | |||
263 | -# By default tst-linkall-static should try to use crypt routines to test | ||
264 | -# static libcrypt use. | ||
265 | -CFLAGS-tst-linkall-static.c += -DUSE_CRYPT=1 | ||
266 | +ifeq ($(build-obsolete-crypt),yes) | ||
267 | +# If the libcrypt library is being built, tst-linkall-static should | ||
268 | +# try to use crypt routines to test static libcrypt use. | ||
269 | +CFLAGS-tst-linkall-static.c = -DUSE_CRYPT=1 | ||
270 | # However, if we are using NSS crypto and we don't have a static | ||
271 | # library, then we exclude the use of crypt functions in the test. | ||
272 | # We similarly exclude libcrypt.a from the static link (see below). | ||
273 | ifeq (yesno,$(nss-crypt)$(static-nss-crypt)) | ||
274 | CFLAGS-tst-linkall-static.c += -UUSE_CRYPT -DUSE_CRYPT=0 | ||
275 | endif | ||
276 | +else | ||
277 | +CFLAGS-tst-linkall-static.c = -DUSE_CRYPT=0 | ||
278 | +endif | ||
279 | |||
280 | include ../Rules | ||
281 | |||
282 | @@ -1113,8 +1117,10 @@ localplt-built-dso := $(addprefix $(common-objpfx),\ | ||
283 | rt/librt.so \ | ||
284 | dlfcn/libdl.so \ | ||
285 | resolv/libresolv.so \ | ||
286 | - crypt/libcrypt.so \ | ||
287 | ) | ||
288 | +ifeq ($(build-obsolete-crypt),yes) | ||
289 | +localplt-built-dso += $(addprefix $(common-objpfx), crypt/libcrypt.so) | ||
290 | +endif | ||
291 | ifeq ($(build-mathvec),yes) | ||
292 | localplt-built-dso += $(addprefix $(common-objpfx), mathvec/libmvec.so) | ||
293 | endif | ||
294 | @@ -1395,6 +1401,7 @@ $(objpfx)tst-linkall-static: \ | ||
295 | $(common-objpfx)resolv/libanl.a \ | ||
296 | $(static-thread-library) | ||
297 | |||
298 | +ifeq ($(build-obsolete-crypt),yes) | ||
299 | # If we are using NSS crypto and we have the ability to link statically | ||
300 | # then we include libcrypt.a, otherwise we leave out libcrypt.a and | ||
301 | # link as much as we can into the tst-linkall-static test. This assumes | ||
302 | @@ -1410,6 +1417,7 @@ ifeq (no,$(nss-crypt)) | ||
303 | $(objpfx)tst-linkall-static: \ | ||
304 | $(common-objpfx)crypt/libcrypt.a | ||
305 | endif | ||
306 | +endif | ||
307 | |||
308 | # The application depends on the DSO, and the DSO loads the plugin. | ||
309 | # The plugin also depends on the DSO. This creates the circular | ||
310 | diff --git a/elf/tst-linkall-static.c b/elf/tst-linkall-static.c | ||
311 | index e8df38f74e..0ffae7c723 100644 | ||
312 | --- a/elf/tst-linkall-static.c | ||
313 | +++ b/elf/tst-linkall-static.c | ||
314 | @@ -18,7 +18,9 @@ | ||
315 | |||
316 | #include <math.h> | ||
317 | #include <pthread.h> | ||
318 | +#if USE_CRYPT | ||
319 | #include <crypt.h> | ||
320 | +#endif | ||
321 | #include <resolv.h> | ||
322 | #include <dlfcn.h> | ||
323 | #include <utmp.h> | ||
324 | diff --git a/posix/unistd.h b/posix/unistd.h | ||
325 | index 4d149f9945..e75ce4d4ec 100644 | ||
326 | --- a/posix/unistd.h | ||
327 | +++ b/posix/unistd.h | ||
328 | @@ -107,9 +107,6 @@ __BEGIN_DECLS | ||
329 | /* The X/Open Unix extensions are available. */ | ||
330 | #define _XOPEN_UNIX 1 | ||
331 | |||
332 | -/* Encryption is present. */ | ||
333 | -#define _XOPEN_CRYPT 1 | ||
334 | - | ||
335 | /* The enhanced internationalization capabilities according to XPG4.2 | ||
336 | are present. */ | ||
337 | #define _XOPEN_ENH_I18N 1 | ||
338 | @@ -1118,20 +1115,7 @@ ssize_t copy_file_range (int __infd, __off64_t *__pinoff, | ||
339 | extern int fdatasync (int __fildes); | ||
340 | #endif /* Use POSIX199309 */ | ||
341 | |||
342 | - | ||
343 | -/* XPG4.2 specifies that prototypes for the encryption functions must | ||
344 | - be defined here. */ | ||
345 | #ifdef __USE_XOPEN | ||
346 | -/* Encrypt at most 8 characters from KEY using salt to perturb DES. */ | ||
347 | -extern char *crypt (const char *__key, const char *__salt) | ||
348 | - __THROW __nonnull ((1, 2)); | ||
349 | - | ||
350 | -/* Encrypt data in BLOCK in place if EDFLAG is zero; otherwise decrypt | ||
351 | - block in place. */ | ||
352 | -extern void encrypt (char *__glibc_block, int __edflag) | ||
353 | - __THROW __nonnull ((1)); | ||
354 | - | ||
355 | - | ||
356 | /* Swab pairs bytes in the first N bytes of the area pointed to by | ||
357 | FROM and copy the result to TO. The value of TO must not be in the | ||
358 | range [FROM - N + 1, FROM - 1]. If N is odd the first byte in FROM | ||
359 | diff --git a/stdlib/stdlib.h b/stdlib/stdlib.h | ||
360 | index 6b1ead31e0..8e23e93557 100644 | ||
361 | --- a/stdlib/stdlib.h | ||
362 | +++ b/stdlib/stdlib.h | ||
363 | @@ -958,12 +958,6 @@ extern int getsubopt (char **__restrict __optionp, | ||
364 | #endif | ||
365 | |||
366 | |||
367 | -#ifdef __USE_XOPEN | ||
368 | -/* Setup DES tables according KEY. */ | ||
369 | -extern void setkey (const char *__key) __THROW __nonnull ((1)); | ||
370 | -#endif | ||
371 | - | ||
372 | - | ||
373 | /* X/Open pseudo terminal handling. */ | ||
374 | |||
375 | #ifdef __USE_XOPEN2KXSI | ||
376 | diff --git a/sysdeps/sparc/sparc32/sparcv9/multiarch/Makefile b/sysdeps/sparc/sparc32/sparcv9/multiarch/Makefile | ||
377 | index a6d08f3a00..d8b8297fb0 100644 | ||
378 | --- a/sysdeps/sparc/sparc32/sparcv9/multiarch/Makefile | ||
379 | +++ b/sysdeps/sparc/sparc32/sparcv9/multiarch/Makefile | ||
380 | @@ -1,6 +1,8 @@ | ||
381 | ifeq ($(subdir),crypt) | ||
382 | +ifeq ($(build-obsolete-crypt),yes) | ||
383 | libcrypt-sysdep_routines += md5-crop sha256-crop sha512-crop | ||
384 | endif | ||
385 | +endif | ||
386 | |||
387 | ifeq ($(subdir),locale) | ||
388 | localedef-aux += md5-crop | ||
389 | diff --git a/sysdeps/sparc/sparc64/multiarch/Makefile b/sysdeps/sparc/sparc64/multiarch/Makefile | ||
390 | index eaf758e7aa..0198f9886f 100644 | ||
391 | --- a/sysdeps/sparc/sparc64/multiarch/Makefile | ||
392 | +++ b/sysdeps/sparc/sparc64/multiarch/Makefile | ||
393 | @@ -1,6 +1,8 @@ | ||
394 | ifeq ($(subdir),crypt) | ||
395 | +ifeq ($(build-obsolete-crypt),yes) | ||
396 | libcrypt-sysdep_routines += md5-crop sha256-crop sha512-crop | ||
397 | endif | ||
398 | +endif | ||
399 | |||
400 | ifeq ($(subdir),locale) | ||
401 | localedef-aux += md5-crop | ||
402 | diff --git a/sysdeps/unix/sysv/linux/arm/Makefile b/sysdeps/unix/sysv/linux/arm/Makefile | ||
403 | index 4adc35de04..6cab4f3a31 100644 | ||
404 | --- a/sysdeps/unix/sysv/linux/arm/Makefile | ||
405 | +++ b/sysdeps/unix/sysv/linux/arm/Makefile | ||
406 | @@ -19,8 +19,10 @@ endif | ||
407 | # Add a syscall function to each library that needs one. | ||
408 | |||
409 | ifeq ($(subdir),crypt) | ||
410 | +ifeq ($(build-obsolete-crypt),yes) | ||
411 | libcrypt-sysdep_routines += libc-do-syscall | ||
412 | endif | ||
413 | +endif | ||
414 | |||
415 | ifeq ($(subdir),rt) | ||
416 | librt-sysdep_routines += libc-do-syscall | ||
417 | -- | ||
418 | 2.16.0 | ||
419 | |||
diff --git a/meta/recipes-core/glibc/glibc_2.27.bb b/meta/recipes-core/glibc/glibc_2.27.bb index 772351ad46..c814798bbd 100644 --- a/meta/recipes-core/glibc/glibc_2.27.bb +++ b/meta/recipes-core/glibc/glibc_2.27.bb | |||
@@ -54,6 +54,7 @@ NATIVESDKFIXES_class-nativesdk = "\ | |||
54 | file://0003-nativesdk-glibc-Raise-the-size-of-arrays-containing-.patch \ | 54 | file://0003-nativesdk-glibc-Raise-the-size-of-arrays-containing-.patch \ |
55 | file://0004-nativesdk-glibc-Allow-64-bit-atomics-for-x86.patch \ | 55 | file://0004-nativesdk-glibc-Allow-64-bit-atomics-for-x86.patch \ |
56 | file://relocate-locales.patch \ | 56 | file://relocate-locales.patch \ |
57 | file://0031-nativesdk-deprecate-libcrypt.patch \ | ||
57 | " | 58 | " |
58 | 59 | ||
59 | S = "${WORKDIR}/git" | 60 | S = "${WORKDIR}/git" |
diff --git a/meta/recipes-core/glibc/site_config/headers b/meta/recipes-core/glibc/site_config/headers index 609ab53797..69fedea4e1 100644 --- a/meta/recipes-core/glibc/site_config/headers +++ b/meta/recipes-core/glibc/site_config/headers | |||
@@ -9,7 +9,6 @@ asm/page.h | |||
9 | asm/types.h | 9 | asm/types.h |
10 | assert.h | 10 | assert.h |
11 | byteswap.h | 11 | byteswap.h |
12 | crypt.h | ||
13 | ctype.h | 12 | ctype.h |
14 | dirent.h | 13 | dirent.h |
15 | dlfcn.h | 14 | dlfcn.h |
diff --git a/meta/recipes-core/libxcrypt/libxcrypt_4.0.0.bb b/meta/recipes-core/libxcrypt/libxcrypt_4.0.0.bb new file mode 100644 index 0000000000..b1982c1991 --- /dev/null +++ b/meta/recipes-core/libxcrypt/libxcrypt_4.0.0.bb | |||
@@ -0,0 +1,31 @@ | |||
1 | SUMMARY = "Extended cryptographic library (from glibc)" | ||
2 | DESCRIPTION = "Forked code from glibc libary to extract only crypto part." | ||
3 | HOMEPAGE = "https://github.com/besser82/libxcrypt" | ||
4 | SECTION = "libs" | ||
5 | LICENSE = "LGPLv2.1" | ||
6 | LIC_FILES_CHKSUM ?= "file://LICENSING;md5=d1cc18f512ded3bd6000f3729f31be08 \ | ||
7 | file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c \ | ||
8 | " | ||
9 | |||
10 | inherit autotools | ||
11 | |||
12 | SRCREV ?= "215b32aa4e0b255c3356a96bd6d257661bad73ca" | ||
13 | SRCBRANCH ?= "master" | ||
14 | |||
15 | SRC_URI = "git://github.com/besser82/libxcrypt.git;branch=${SRCBRANCH}" | ||
16 | |||
17 | PROVIDES = "virtual/crypt" | ||
18 | |||
19 | FILES_${PN} = "${libdir}/libcrypt*.so.* ${libdir}/libcrypt-*.so ${libdir}/libowcrypt*.so.* ${libdir}/libowcrypt-*.so" | ||
20 | |||
21 | S = "${WORKDIR}/git" | ||
22 | |||
23 | BUILD_CPPFLAGS = "-I${STAGING_INCDIR_NATIVE}" | ||
24 | TARGET_CPPFLAGS = "-I${STAGING_DIR_TARGET}${includedir}" | ||
25 | |||
26 | python () { | ||
27 | if not bb.data.inherits_class('nativesdk', d): | ||
28 | raise bb.parse.SkipRecipe("Recipe only applies in nativesdk case for now") | ||
29 | } | ||
30 | |||
31 | BBCLASSEXTEND = "nativesdk" | ||
diff --git a/meta/recipes-core/meta/uninative-tarball.bb b/meta/recipes-core/meta/uninative-tarball.bb index 5fabf7fa39..38c3a314e1 100644 --- a/meta/recipes-core/meta/uninative-tarball.bb +++ b/meta/recipes-core/meta/uninative-tarball.bb | |||
@@ -13,6 +13,7 @@ TOOLCHAIN_HOST_TASK = "\ | |||
13 | nativesdk-glibc-gconv-utf-16 \ | 13 | nativesdk-glibc-gconv-utf-16 \ |
14 | nativesdk-glibc-gconv-cp1252 \ | 14 | nativesdk-glibc-gconv-cp1252 \ |
15 | nativesdk-patchelf \ | 15 | nativesdk-patchelf \ |
16 | nativesdk-libxcrypt \ | ||
16 | " | 17 | " |
17 | 18 | ||
18 | INHIBIT_DEFAULT_DEPS = "1" | 19 | INHIBIT_DEFAULT_DEPS = "1" |
diff --git a/meta/recipes-core/musl/musl_git.bb b/meta/recipes-core/musl/musl_git.bb index 8906ac6beb..9f8c5126e8 100644 --- a/meta/recipes-core/musl/musl_git.bb +++ b/meta/recipes-core/musl/musl_git.bb | |||
@@ -15,7 +15,7 @@ SRC_URI = "git://git.musl-libc.org/musl \ | |||
15 | 15 | ||
16 | S = "${WORKDIR}/git" | 16 | S = "${WORKDIR}/git" |
17 | 17 | ||
18 | PROVIDES += "virtual/libc virtual/${TARGET_PREFIX}libc-for-gcc virtual/libiconv virtual/libintl" | 18 | PROVIDES += "virtual/libc virtual/${TARGET_PREFIX}libc-for-gcc virtual/libiconv virtual/libintl virtual/crypt" |
19 | 19 | ||
20 | DEPENDS = "virtual/${TARGET_PREFIX}binutils \ | 20 | DEPENDS = "virtual/${TARGET_PREFIX}binutils \ |
21 | virtual/${TARGET_PREFIX}gcc-initial \ | 21 | virtual/${TARGET_PREFIX}gcc-initial \ |
diff --git a/meta/recipes-core/util-linux/util-linux.inc b/meta/recipes-core/util-linux/util-linux.inc index 5e40b2019a..157416df48 100644 --- a/meta/recipes-core/util-linux/util-linux.inc +++ b/meta/recipes-core/util-linux/util-linux.inc | |||
@@ -20,7 +20,7 @@ LIC_FILES_CHKSUM = "file://README.licensing;md5=1715f5ee3e01203ca1e1e0b9ee65918c | |||
20 | 20 | ||
21 | #gtk-doc is not enabled as it requires xmlto which requires util-linux | 21 | #gtk-doc is not enabled as it requires xmlto which requires util-linux |
22 | inherit autotools gettext pkgconfig systemd update-alternatives python3-dir bash-completion ptest | 22 | inherit autotools gettext pkgconfig systemd update-alternatives python3-dir bash-completion ptest |
23 | DEPENDS = "zlib ncurses" | 23 | DEPENDS = "zlib ncurses virtual/crypt" |
24 | DEPENDS_append_class-native = " lzo-native" | 24 | DEPENDS_append_class-native = " lzo-native" |
25 | DEPENDS_append_class-nativesdk = " lzo-native" | 25 | DEPENDS_append_class-nativesdk = " lzo-native" |
26 | 26 | ||
diff --git a/meta/recipes-devtools/perl/perl_5.24.1.bb b/meta/recipes-devtools/perl/perl_5.24.1.bb index 66ccd7f0be..222dd88675 100644 --- a/meta/recipes-devtools/perl/perl_5.24.1.bb +++ b/meta/recipes-devtools/perl/perl_5.24.1.bb | |||
@@ -1,7 +1,7 @@ | |||
1 | require perl.inc | 1 | require perl.inc |
2 | 2 | ||
3 | # We need gnugrep (for -I) | 3 | # We need gnugrep (for -I) |
4 | DEPENDS = "db grep-native gdbm zlib" | 4 | DEPENDS = "db grep-native gdbm zlib virtual/crypt" |
5 | 5 | ||
6 | # Pick up patches from debian | 6 | # Pick up patches from debian |
7 | # http://ftp.de.debian.org/debian/pool/main/p/perl/perl_5.22.0-1.debian.tar.xz | 7 | # http://ftp.de.debian.org/debian/pool/main/p/perl/perl_5.22.0-1.debian.tar.xz |
diff --git a/meta/recipes-extended/shadow/shadow.inc b/meta/recipes-extended/shadow/shadow.inc index 48a3be87e6..673207fc9b 100644 --- a/meta/recipes-extended/shadow/shadow.inc +++ b/meta/recipes-extended/shadow/shadow.inc | |||
@@ -6,8 +6,7 @@ LICENSE = "BSD | Artistic-1.0" | |||
6 | LIC_FILES_CHKSUM = "file://COPYING;md5=ed80ff1c2b40843cf5768e5229cf16e5 \ | 6 | LIC_FILES_CHKSUM = "file://COPYING;md5=ed80ff1c2b40843cf5768e5229cf16e5 \ |
7 | file://src/passwd.c;beginline=8;endline=30;md5=d83888ea14ae61951982d77125947661" | 7 | file://src/passwd.c;beginline=8;endline=30;md5=d83888ea14ae61951982d77125947661" |
8 | 8 | ||
9 | DEPENDS_class-native = "" | 9 | DEPENDS = "virtual/crypt" |
10 | DEPENDS_class-nativesdk = "" | ||
11 | 10 | ||
12 | SRC_URI = "http://pkg-shadow.alioth.debian.org/releases/${BPN}-${PV}.tar.xz \ | 11 | SRC_URI = "http://pkg-shadow.alioth.debian.org/releases/${BPN}-${PV}.tar.xz \ |
13 | file://shadow-4.1.3-dots-in-usernames.patch \ | 12 | file://shadow-4.1.3-dots-in-usernames.patch \ |