1 |
commit: 0caf0b1124ce200e0cad5dc09ed141b45086717f |
2 |
Author: Sam James <sam <AT> gentoo <DOT> org> |
3 |
AuthorDate: Mon Aug 30 21:30:49 2021 +0000 |
4 |
Commit: Sam James <sam <AT> gentoo <DOT> org> |
5 |
CommitDate: Mon Aug 30 21:35:35 2021 +0000 |
6 |
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=0caf0b11 |
7 |
|
8 |
sys-libs/libcap: update libcap-2.55 build system patch |
9 |
|
10 |
Mainly added in some missing LDFLAGS lines mainly (some are |
11 |
redundant but I'd rather be consistent, some were not). |
12 |
|
13 |
Bug: https://bugs.gentoo.org/808807 |
14 |
Signed-off-by: Sam James <sam <AT> gentoo.org> |
15 |
|
16 |
.../files/libcap-2.55-build-system-fixes.patch | 172 ++++++++++++++++++--- |
17 |
.../{libcap-2.55.ebuild => libcap-2.55-r1.ebuild} | 0 |
18 |
2 files changed, 147 insertions(+), 25 deletions(-) |
19 |
|
20 |
diff --git a/sys-libs/libcap/files/libcap-2.55-build-system-fixes.patch b/sys-libs/libcap/files/libcap-2.55-build-system-fixes.patch |
21 |
index 9bd357ed714..501649c272d 100644 |
22 |
--- a/sys-libs/libcap/files/libcap-2.55-build-system-fixes.patch |
23 |
+++ b/sys-libs/libcap/files/libcap-2.55-build-system-fixes.patch |
24 |
@@ -1,4 +1,4 @@ |
25 |
-From 4cdf9413b7b4ff27299c14f05d7a6fa038e4d59f Mon Sep 17 00:00:00 2001 |
26 |
+From abedd3c42100a636ae14a5c860ee2ed236af66ab Mon Sep 17 00:00:00 2001 |
27 |
From: Sam James <sam@g.o> |
28 |
Date: Mon, 30 Aug 2021 07:04:15 +0100 |
29 |
Subject: [PATCH] Build system fixes |
30 |
@@ -19,15 +19,6 @@ and was forward-ported by Lars Wendler <polynomial-c@g.o>. |
31 |
Bug: https://bugs.gentoo.org/808807 (given this is where discussion occurred) |
32 |
Bug: https://bugzilla.kernel.org/show_bug.cgi?id=214085 |
33 |
Signed-off-by: Sam James <sam@g.o> |
34 |
---- |
35 |
- Make.Rules | 13 +++++-------- |
36 |
- Makefile | 1 - |
37 |
- pam_cap/Makefile | 2 +- |
38 |
- progs/Makefile | 6 +++--- |
39 |
- 4 files changed, 9 insertions(+), 13 deletions(-) |
40 |
- |
41 |
-diff --git a/Make.Rules b/Make.Rules |
42 |
-index 66207b4..1e0366e 100644 |
43 |
--- a/Make.Rules |
44 |
+++ b/Make.Rules |
45 |
@@ -64,24 +64,20 @@ KERNEL_HEADERS := $(topdir)/libcap/include/uapi |
46 |
@@ -68,8 +59,6 @@ index 66207b4..1e0366e 100644 |
47 |
INDENT := $(shell if [ -n "$$(which indent 2>/dev/null)" ]; then echo "| indent -kr" ; fi) |
48 |
|
49 |
# SHARED tracks whether or not the SHARED libraries (libcap.so, |
50 |
-diff --git a/Makefile b/Makefile |
51 |
-index 1c195dd..3f71b12 100644 |
52 |
--- a/Makefile |
53 |
+++ b/Makefile |
54 |
@@ -17,7 +17,6 @@ ifeq ($(GOLANG),yes) |
55 |
@@ -80,24 +69,89 @@ index 1c195dd..3f71b12 100644 |
56 |
$(MAKE) -C progs $@ |
57 |
$(MAKE) -C doc $@ |
58 |
$(MAKE) -C kdebug $@ |
59 |
-diff --git a/pam_cap/Makefile b/pam_cap/Makefile |
60 |
-index d5da6be..0cba3e1 100644 |
61 |
+--- a/libcap/Makefile |
62 |
++++ b/libcap/Makefile |
63 |
+@@ -111,7 +111,7 @@ loader.txt: empty |
64 |
+ $(OBJCOPY) --dump-section .interp=$@ $< /dev/null |
65 |
+ |
66 |
+ cap_magic.o: execable.h execable.c loader.txt |
67 |
+- $(CC) $(CFLAGS) $(CPPFLAGS) -DLIBRARY_VERSION=\"$(LIBTITLE)-$(VERSION).$(MINOR)\" -DSHARED_LOADER=\"$(shell cat loader.txt)\" -c execable.c -o $@ |
68 |
++ $(CC) $(CFLAGS) $(CPPFLAGS) -DLIBRARY_VERSION=\"$(LIBTITLE)-$(VERSION).$(MINOR)\" -DSHARED_LOADER=\"$(shell cat loader.txt)\" $(LDFLAGS) -c execable.c -o $@ |
69 |
+ |
70 |
+ $(CAPLIBNAME) $(MAJCAPLIBNAME) $(MINCAPLIBNAME): $(CAPOBJS) $(CAPMAGICOBJ) |
71 |
+ $(LD) $(CFLAGS) $(LDFLAGS) -Wl,-soname,$(MAJCAPLIBNAME) -o $(MINCAPLIBNAME) $^ $(MAGIC) |
72 |
+@@ -119,22 +119,22 @@ $(CAPLIBNAME) $(MAJCAPLIBNAME) $(MINCAPLIBNAME): $(CAPOBJS) $(CAPMAGICOBJ) |
73 |
+ ln -sf $(MAJCAPLIBNAME) $(CAPLIBNAME) |
74 |
+ |
75 |
+ psx_magic.o: execable.h execable.c loader.txt |
76 |
+- $(CC) $(CFLAGS) $(CPPFLAGS) -DLIBRARY_VERSION=\"$(PSXTITLE)-$(VERSION).$(MINOR)\" -DSHARED_LOADER=\"$(shell cat loader.txt)\" -c execable.c -o $@ |
77 |
++ $(CC) $(CFLAGS) $(CPPFLAGS) -DLIBRARY_VERSION=\"$(PSXTITLE)-$(VERSION).$(MINOR)\" -DSHARED_LOADER=\"$(shell cat loader.txt)\" $(LDFLAGS) -c execable.c -o $@ |
78 |
+ |
79 |
+ $(PSXLIBNAME) $(MAJPSXLIBNAME) $(MINPSXLIBNAME): $(PSXOBJS) include/sys/psx_syscall.h $(PSXMAGICOBJ) |
80 |
+- $(LD) $(CFLAGS) $(LDFLAGS) -Wl,-soname,$(MAJPSXLIBNAME) -o $(MINPSXLIBNAME) $(PSXOBJS) $(PSXMAGICOBJ) $(MAGIC) $(PSXLINKFLAGS) |
81 |
++ $(LD) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -Wl,-soname,$(MAJPSXLIBNAME) -o $(MINPSXLIBNAME) $(PSXOBJS) $(PSXMAGICOBJ) $(MAGIC) $(PSXLINKFLAGS) |
82 |
+ ln -sf $(MINPSXLIBNAME) $(MAJPSXLIBNAME) |
83 |
+ ln -sf $(MAJPSXLIBNAME) $(PSXLIBNAME) |
84 |
+ endif |
85 |
+ |
86 |
+ %.o: %.c $(INCLS) |
87 |
+- $(CC) $(CFLAGS) $(CPPFLAGS) -c $< -o $@ |
88 |
++ $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -c $< -o $@ |
89 |
+ |
90 |
+ cap_text.o: cap_text.c $(USE_GPERF_OUTPUT) $(INCLS) |
91 |
+- $(CC) $(CFLAGS) $(CPPFLAGS) $(INCLUDE_GPERF_OUTPUT) -c $< -o $@ |
92 |
++ $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) $(INCLUDE_GPERF_OUTPUT) -c $< -o $@ |
93 |
+ |
94 |
+ cap_test: cap_test.c libcap.h $(CAPOBJS) |
95 |
+- $(CC) $(CFLAGS) $(CPPFLAGS) $< $(CAPOBJS) -o $@ |
96 |
++ $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) $< $(CAPOBJS) -o $@ |
97 |
+ |
98 |
+ libcapsotest: $(CAPLIBNAME) |
99 |
+ ./$(CAPLIBNAME) |
100 |
--- a/pam_cap/Makefile |
101 |
+++ b/pam_cap/Makefile |
102 |
-@@ -65,7 +65,7 @@ test_pam_cap: test_pam_cap.c pam_cap.c ../libcap/libcap.a |
103 |
- $(CC) $(CFLAGS) $(CPPFLAGS) -o $@ test_pam_cap.c $(LIBCAPLIB) $(LDFLAGS) --static |
104 |
+@@ -17,10 +17,10 @@ install: all |
105 |
+ $(MAKE) -C ../libcap loader.txt |
106 |
+ |
107 |
+ execable.o: execable.c ../libcap/execable.h ../libcap/loader.txt |
108 |
+- $(CC) $(CFLAGS) $(CPPFLAGS) -DLIBCAP_VERSION=\"libcap-$(VERSION).$(MINOR)\" -DSHARED_LOADER=\"$(shell cat ../libcap/loader.txt)\" -c execable.c -o $@ |
109 |
++ $(CC) $(CFLAGS) $(CPPFLAGS) -DLIBCAP_VERSION=\"libcap-$(VERSION).$(MINOR)\" -DSHARED_LOADER=\"$(shell cat ../libcap/loader.txt)\" $(LDFLAGS) -c execable.c -o $@ |
110 |
+ |
111 |
+ pam_cap.so: pam_cap.o execable.o pam_cap_linkopts |
112 |
+- cat pam_cap_linkopts | xargs -e $(LD) -o $@ pam_cap.o execable.o $(LIBCAPLIB) $(LDFLAGS) |
113 |
++ cat pam_cap_linkopts | xargs -e $(LD) $(LDFLAGS) -o $@ pam_cap.o execable.o $(LIBCAPLIB) |
114 |
+ |
115 |
+ # Some distributions force link everything at compile time, and don't |
116 |
+ # take advantage of libpam's dlopen runtime options to resolve ill |
117 |
+@@ -51,21 +51,21 @@ pam_cap_linkopts: lazylink.so |
118 |
+ ./lazylink.so || echo "-lpam" >> $@ |
119 |
+ |
120 |
+ lazylink.so: lazylink.c ../libcap/execable.h ../libcap/loader.txt |
121 |
+- $(LD) -o $@ $(CFLAGS) $(CPPFLAGS) lazylink.c -DSHARED_LOADER=\"$(shell cat ../libcap/loader.txt)\" $(LDFLAGS) -Wl,-e,__so_start |
122 |
++ $(LD) -o $@ $(CFLAGS) $(CPPFLAGS) -DSHARED_LOADER=\"$(shell cat ../libcap/loader.txt)\" $(LDFLAGS) lazylink.c -Wl,-e,__so_start |
123 |
+ endif |
124 |
+ endif |
125 |
+ |
126 |
+ pam_cap.o: pam_cap.c |
127 |
+- $(CC) $(CFLAGS) $(CPPFLAGS) -c $< -o $@ |
128 |
++ $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -c $< -o $@ |
129 |
+ |
130 |
+ ../libcap/libcap.a: |
131 |
+ $(MAKE) -C ../libcap libcap.a |
132 |
+ |
133 |
+ test_pam_cap: test_pam_cap.c pam_cap.c ../libcap/libcap.a |
134 |
+- $(CC) $(CFLAGS) $(CPPFLAGS) -o $@ test_pam_cap.c $(LIBCAPLIB) $(LDFLAGS) --static |
135 |
++ $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -o $@ test_pam_cap.c $(LIBCAPLIB) --static |
136 |
|
137 |
testlink: test.c pam_cap.o |
138 |
- $(CC) $(CFLAGS) -o $@ $+ -lpam -ldl $(LIBCAPLIB) $(LDFLAGS) |
139 |
-+ $(CC) $(CFLAGS) $(CPPFLAGS) -o $@ $+ -lpam -ldl $(LIBCAPLIB) $(LDFLAGS) |
140 |
++ $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -o $@ $+ -lpam -ldl $(LIBCAPLIB) |
141 |
|
142 |
test: testlink test_pam_cap pam_cap.so |
143 |
$(MAKE) testlink |
144 |
-diff --git a/progs/Makefile b/progs/Makefile |
145 |
-index 51e9a63..98fe1b0 100644 |
146 |
--- a/progs/Makefile |
147 |
+++ b/progs/Makefile |
148 |
-@@ -22,13 +22,13 @@ DEPS = ../libcap/libcap.a |
149 |
+@@ -22,16 +22,16 @@ DEPS = ../libcap/libcap.a |
150 |
endif |
151 |
|
152 |
../libcap/libcap.a: |
153 |
@@ -110,10 +164,78 @@ index 51e9a63..98fe1b0 100644 |
154 |
|
155 |
$(BUILD): %: %.o $(DEPS) |
156 |
- $(CC) $(CFLAGS) -o $@ $< $(LIBCAPLIB) $(LDFLAGS) |
157 |
-+ $(CC) $(CFLAGS) $(CPPFLAGS) -o $@ $< $(LIBCAPLIB) $(LDFLAGS) |
158 |
++ $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -o $@ $< $(LIBCAPLIB) |
159 |
|
160 |
%.o: %.c $(INCS) |
161 |
- $(CC) $(CFLAGS) $(CPPFLAGS) -c $< -o $@ |
162 |
--- |
163 |
-2.33.0 |
164 |
- |
165 |
+- $(CC) $(CFLAGS) $(CPPFLAGS) -c $< -o $@ |
166 |
++ $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -c $< -o $@ |
167 |
+ |
168 |
+ install: all |
169 |
+ mkdir -p -m 0755 $(FAKEROOT)$(SBINDIR) |
170 |
+@@ -49,10 +49,10 @@ capshdoc.h.cf: capshdoc.h ./mkcapshdoc.sh |
171 |
+ diff -u capshdoc.h $@ || (rm $@ ; exit 1) |
172 |
+ |
173 |
+ capsh: capsh.c capshdoc.h.cf $(DEPS) |
174 |
+- $(CC) $(CFLAGS) $(CPPFLAGS) $(CAPSH_SHELL) -o $@ $< $(LIBCAPLIB) $(LDFLAGS) |
175 |
++ $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) $(CAPSH_SHELL) -o $@ $< $(LIBCAPLIB) |
176 |
+ |
177 |
+ tcapsh-static: capsh.c capshdoc.h.cf $(DEPS) |
178 |
+- $(CC) $(CFLAGS) $(CPPFLAGS) $(CAPSH_SHELL) -o $@ $< $(LIBCAPLIB) --static |
179 |
++ $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) $(CAPSH_SHELL) -o $@ $< $(LIBCAPLIB) --static |
180 |
+ |
181 |
+ uns_test: ../tests/uns_test.c |
182 |
+ $(MAKE) -C ../tests uns_test |
183 |
+--- a/tests/Makefile |
184 |
++++ b/tests/Makefile |
185 |
+@@ -66,17 +66,17 @@ run_psx_test: psx_test |
186 |
+ ./psx_test |
187 |
+ |
188 |
+ psx_test: psx_test.c $(DEPS) |
189 |
+- $(CC) $(CFLAGS) $(CPPFLAGS) $< -o $@ $(LINKEXTRA) $(LIBPSXLIB) $(LDFLAGS) |
190 |
++ $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) $< -o $@ $(LINKEXTRA) $(LIBPSXLIB) |
191 |
+ |
192 |
+ run_libcap_psx_test: libcap_psx_test |
193 |
+ ./libcap_psx_test |
194 |
+ |
195 |
+ libcap_psx_test: libcap_psx_test.c $(DEPS) |
196 |
+- $(CC) $(CFLAGS) $(CPPFLAGS) $< -o $@ $(LINKEXTRA) $(LIBCAPLIB) $(LIBPSXLIB) $(LDFLAGS) |
197 |
++ $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) $< -o $@ $(LINKEXTRA) $(LIBCAPLIB) $(LIBPSXLIB) |
198 |
+ |
199 |
+ # privileged |
200 |
+ uns_test: uns_test.c $(DEPS) |
201 |
+- $(CC) $(CFLAGS) $(CPPFLAGS) $< -o $@ $(LINKEXTRA) $(LIBCAPLIB) $(LDFLAGS) |
202 |
++ $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) $< -o $@ $(LINKEXTRA) $(LIBCAPLIB) |
203 |
+ |
204 |
+ run_uns_test: uns_test |
205 |
+ echo exit | $(SUDO) ./uns_test |
206 |
+@@ -88,13 +88,13 @@ run_libcap_psx_launch_test: libcap_psx_launch_test ../progs/tcapsh-static |
207 |
+ $(SUDO) ./libcap_psx_launch_test |
208 |
+ |
209 |
+ libcap_launch_test: libcap_launch_test.c $(DEPS) |
210 |
+- $(CC) $(CFLAGS) $(CPPFLAGS) $< -o $@ $(LINKEXTRA) $(LIBCAPLIB) $(LDFLAGS) |
211 |
++ $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) $< -o $@ $(LINKEXTRA) $(LIBCAPLIB) |
212 |
+ |
213 |
+ # This varies only slightly from the above insofar as it currently |
214 |
+ # only links in the pthreads fork support. TODO() we need to change |
215 |
+ # the source to do something interesting with pthreads. |
216 |
+ libcap_psx_launch_test: libcap_launch_test.c $(DEPS) |
217 |
+- $(CC) $(CFLAGS) $(CPPFLAGS) -DWITH_PTHREADS $< -o $@ $(LINKEXTRA) $(LIBCAPLIB) $(LIBPSXLIB) $(LDFLAGS) |
218 |
++ $(CC) $(CFLAGS) $(CPPFLAGS) -DWITH_PTHREADS $(LDFLAGS) $< -o $@ $(LINKEXTRA) $(LIBCAPLIB) $(LIBPSXLIB) |
219 |
+ |
220 |
+ |
221 |
+ # This test demonstrates that libpsx is needed to secure multithreaded |
222 |
+@@ -109,12 +109,12 @@ exploit.o: exploit.c |
223 |
+ $(CC) $(CFLAGS) $(CPPFLAGS) -c $< |
224 |
+ |
225 |
+ exploit: exploit.o $(DEPS) |
226 |
+- $(CC) $(CFLAGS) $(CPPFLAGS) $< -o $@ $(LINKEXTRA) $(LIBCAPLIB) -lpthread $(LDFLAGS) |
227 |
++ $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) $< -o $@ $(LINKEXTRA) $(LIBCAPLIB) -lpthread |
228 |
+ |
229 |
+ # Note, for some reason, the order of libraries is important to avoid |
230 |
+ # the exploit working for dynamic linking. |
231 |
+ noexploit: exploit.o $(DEPS) |
232 |
+- $(CC) $(CFLAGS) $(CPPFLAGS) $< -o $@ $(LINKEXTRA) $(LIBPSXLIB) $(LIBCAPLIB) $(LDFLAGS) |
233 |
++ $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) $< -o $@ $(LINKEXTRA) $(LIBPSXLIB) $(LIBCAPLIB) |
234 |
+ |
235 |
+ # This one runs in a chroot with no shared library files. |
236 |
+ noop: noop.c |
237 |
|
238 |
diff --git a/sys-libs/libcap/libcap-2.55.ebuild b/sys-libs/libcap/libcap-2.55-r1.ebuild |
239 |
similarity index 100% |
240 |
rename from sys-libs/libcap/libcap-2.55.ebuild |
241 |
rename to sys-libs/libcap/libcap-2.55-r1.ebuild |