1 |
the_paya 09/01/22 21:02:22 |
2 |
|
3 |
Modified: bootpd.initd bootpd.confd ftpd.pamd |
4 |
Added: rusersd.xinetd rstatd.xinetd walld.xinetd |
5 |
freebsd-libexec-7.0-libfallback.patch sprayd.xinetd |
6 |
rquotad.xinetd |
7 |
Log: |
8 |
Import of the 7.1 ebuilds from gentoo-bsd overlay. |
9 |
(Portage version: 2.2_rc23/cvs/FreeBSD i386) |
10 |
|
11 |
Revision Changes Path |
12 |
1.3 sys-freebsd/freebsd-libexec/files/bootpd.initd |
13 |
|
14 |
file : http://sources.gentoo.org/viewcvs.py/gentoo-x86/sys-freebsd/freebsd-libexec/files/bootpd.initd?rev=1.3&view=markup |
15 |
plain: http://sources.gentoo.org/viewcvs.py/gentoo-x86/sys-freebsd/freebsd-libexec/files/bootpd.initd?rev=1.3&content-type=text/plain |
16 |
diff : http://sources.gentoo.org/viewcvs.py/gentoo-x86/sys-freebsd/freebsd-libexec/files/bootpd.initd?r1=1.2&r2=1.3 |
17 |
|
18 |
Index: bootpd.initd |
19 |
=================================================================== |
20 |
RCS file: /var/cvsroot/gentoo-x86/sys-freebsd/freebsd-libexec/files/bootpd.initd,v |
21 |
retrieving revision 1.2 |
22 |
retrieving revision 1.3 |
23 |
diff -u -r1.2 -r1.3 |
24 |
--- bootpd.initd 6 Apr 2007 14:59:47 -0000 1.2 |
25 |
+++ bootpd.initd 22 Jan 2009 21:02:22 -0000 1.3 |
26 |
@@ -1,14 +1,13 @@ |
27 |
#!/sbin/runscript |
28 |
-# Copyright 2006 Gentoo Foundation |
29 |
+# Copyright 2008 Gentoo Foundation |
30 |
# Distributed under the terms of the GNU General Public License v2 |
31 |
-# $Header: /var/cvsroot/gentoo-x86/sys-freebsd/freebsd-libexec/files/bootpd.initd,v 1.2 2007/04/06 14:59:47 uberlord Exp $ |
32 |
|
33 |
depend() { |
34 |
need net |
35 |
} |
36 |
|
37 |
start() { |
38 |
- local bootptab=${BOOTPTAB_FILE:-/etc/bootptab} |
39 |
+ local bootptab=${bootptab_file:-/etc/bootptab} |
40 |
|
41 |
if ! [ -f "${bootptab}" ]; then |
42 |
eerror "Unable to find the bootptab file: ${bootptab}" |
43 |
@@ -17,7 +16,7 @@ |
44 |
fi |
45 |
|
46 |
ebegin "Starting BOOTP server" |
47 |
- start-stop-daemon --start --exec /usr/libexec/bootpd -- ${BOOTPD_OPTS} ${bootptab} |
48 |
+ start-stop-daemon --start --exec /usr/libexec/bootpd -- ${bootpd_opts} ${bootptab} |
49 |
eend $? |
50 |
} |
51 |
|
52 |
|
53 |
|
54 |
|
55 |
1.2 sys-freebsd/freebsd-libexec/files/bootpd.confd |
56 |
|
57 |
file : http://sources.gentoo.org/viewcvs.py/gentoo-x86/sys-freebsd/freebsd-libexec/files/bootpd.confd?rev=1.2&view=markup |
58 |
plain: http://sources.gentoo.org/viewcvs.py/gentoo-x86/sys-freebsd/freebsd-libexec/files/bootpd.confd?rev=1.2&content-type=text/plain |
59 |
diff : http://sources.gentoo.org/viewcvs.py/gentoo-x86/sys-freebsd/freebsd-libexec/files/bootpd.confd?r1=1.1&r2=1.2 |
60 |
|
61 |
Index: bootpd.confd |
62 |
=================================================================== |
63 |
RCS file: /var/cvsroot/gentoo-x86/sys-freebsd/freebsd-libexec/files/bootpd.confd,v |
64 |
retrieving revision 1.1 |
65 |
retrieving revision 1.2 |
66 |
diff -u -r1.1 -r1.2 |
67 |
--- bootpd.confd 20 Nov 2006 14:27:10 -0000 1.1 |
68 |
+++ bootpd.confd 22 Jan 2009 21:02:22 -0000 1.2 |
69 |
@@ -1,9 +1,7 @@ |
70 |
-# $Header: /var/cvsroot/gentoo-x86/sys-freebsd/freebsd-libexec/files/bootpd.confd,v 1.1 2006/11/20 14:27:10 flameeyes Exp $ |
71 |
- |
72 |
# Configuration file for /etc/init.d/bootpd |
73 |
|
74 |
# Name of the configuration file for bootpd |
75 |
-# BOOTPTAB_FILE="/etc/bootptab" |
76 |
+# bootptab_file="/etc/bootptab" |
77 |
|
78 |
# Options to pass to bootpd. See bootpd(8). |
79 |
-# BOOTPD_OPTS="" |
80 |
+# bootpd_opts="" |
81 |
|
82 |
|
83 |
|
84 |
1.2 sys-freebsd/freebsd-libexec/files/ftpd.pamd |
85 |
|
86 |
file : http://sources.gentoo.org/viewcvs.py/gentoo-x86/sys-freebsd/freebsd-libexec/files/ftpd.pamd?rev=1.2&view=markup |
87 |
plain: http://sources.gentoo.org/viewcvs.py/gentoo-x86/sys-freebsd/freebsd-libexec/files/ftpd.pamd?rev=1.2&content-type=text/plain |
88 |
diff : http://sources.gentoo.org/viewcvs.py/gentoo-x86/sys-freebsd/freebsd-libexec/files/ftpd.pamd?r1=1.1&r2=1.2 |
89 |
|
90 |
Index: ftpd.pamd |
91 |
=================================================================== |
92 |
RCS file: /var/cvsroot/gentoo-x86/sys-freebsd/freebsd-libexec/files/ftpd.pamd,v |
93 |
retrieving revision 1.1 |
94 |
retrieving revision 1.2 |
95 |
diff -u -r1.1 -r1.2 |
96 |
--- ftpd.pamd 1 Apr 2006 16:43:51 -0000 1.1 |
97 |
+++ ftpd.pamd 22 Jan 2009 21:02:22 -0000 1.2 |
98 |
@@ -1,20 +1,8 @@ |
99 |
-# |
100 |
-# $Header: /var/cvsroot/gentoo-x86/sys-freebsd/freebsd-libexec/files/ftpd.pamd,v 1.1 2006/04/01 16:43:51 flameeyes Exp $ |
101 |
-# |
102 |
# PAM configuration for the "ftpd" service |
103 |
# |
104 |
|
105 |
-# auth |
106 |
-auth required pam_nologin.so no_warn |
107 |
-auth sufficient pam_opie.so no_warn no_fake_prompts |
108 |
-auth requisite pam_opieaccess.so no_warn allow_local |
109 |
-#auth sufficient pam_krb5.so no_warn |
110 |
-#auth sufficient pam_ssh.so no_warn try_first_pass |
111 |
-auth required pam_unix.so no_warn try_first_pass |
112 |
- |
113 |
-# account |
114 |
-#account required pam_krb5.so |
115 |
-account required pam_unix.so |
116 |
+auth include system-auth |
117 |
+account include system-auth |
118 |
+password include system-auth |
119 |
+session include system-auth |
120 |
|
121 |
-# session |
122 |
-session required pam_permit.so |
123 |
|
124 |
|
125 |
|
126 |
1.1 sys-freebsd/freebsd-libexec/files/rusersd.xinetd |
127 |
|
128 |
file : http://sources.gentoo.org/viewcvs.py/gentoo-x86/sys-freebsd/freebsd-libexec/files/rusersd.xinetd?rev=1.1&view=markup |
129 |
plain: http://sources.gentoo.org/viewcvs.py/gentoo-x86/sys-freebsd/freebsd-libexec/files/rusersd.xinetd?rev=1.1&content-type=text/plain |
130 |
|
131 |
Index: rusersd.xinetd |
132 |
=================================================================== |
133 |
service rusersd |
134 |
{ |
135 |
type = rpc |
136 |
socket_type = dgram |
137 |
protocol = udp |
138 |
wait = yes |
139 |
user = root |
140 |
server = /usr/libexec/rpc.rusersd |
141 |
rpc_version = 1-2 |
142 |
disabled = yes |
143 |
} |
144 |
|
145 |
|
146 |
|
147 |
1.1 sys-freebsd/freebsd-libexec/files/rstatd.xinetd |
148 |
|
149 |
file : http://sources.gentoo.org/viewcvs.py/gentoo-x86/sys-freebsd/freebsd-libexec/files/rstatd.xinetd?rev=1.1&view=markup |
150 |
plain: http://sources.gentoo.org/viewcvs.py/gentoo-x86/sys-freebsd/freebsd-libexec/files/rstatd.xinetd?rev=1.1&content-type=text/plain |
151 |
|
152 |
Index: rstatd.xinetd |
153 |
=================================================================== |
154 |
service rstatd |
155 |
{ |
156 |
type = rpc |
157 |
socket_type = dgram |
158 |
protocol = udp |
159 |
wait = yes |
160 |
user = root |
161 |
server = /usr/libexec/rpc.rstatd |
162 |
rpc_version = 1-3 |
163 |
disabled = yes |
164 |
} |
165 |
|
166 |
|
167 |
|
168 |
1.1 sys-freebsd/freebsd-libexec/files/walld.xinetd |
169 |
|
170 |
file : http://sources.gentoo.org/viewcvs.py/gentoo-x86/sys-freebsd/freebsd-libexec/files/walld.xinetd?rev=1.1&view=markup |
171 |
plain: http://sources.gentoo.org/viewcvs.py/gentoo-x86/sys-freebsd/freebsd-libexec/files/walld.xinetd?rev=1.1&content-type=text/plain |
172 |
|
173 |
Index: walld.xinetd |
174 |
=================================================================== |
175 |
service walld |
176 |
{ |
177 |
type = rpc |
178 |
socket_type = dgram |
179 |
protocol = udp |
180 |
wait = yes |
181 |
user = root |
182 |
server = /usr/libexec/rpc.rwalld |
183 |
rpc_version = 1 |
184 |
disabled = yes |
185 |
} |
186 |
|
187 |
|
188 |
|
189 |
1.1 sys-freebsd/freebsd-libexec/files/freebsd-libexec-7.0-libfallback.patch |
190 |
|
191 |
file : http://sources.gentoo.org/viewcvs.py/gentoo-x86/sys-freebsd/freebsd-libexec/files/freebsd-libexec-7.0-libfallback.patch?rev=1.1&view=markup |
192 |
plain: http://sources.gentoo.org/viewcvs.py/gentoo-x86/sys-freebsd/freebsd-libexec/files/freebsd-libexec-7.0-libfallback.patch?rev=1.1&content-type=text/plain |
193 |
|
194 |
Index: freebsd-libexec-7.0-libfallback.patch |
195 |
=================================================================== |
196 |
--- rtld-elf/rtld.c.orig 2007-04-07 23:17:00 +0000 |
197 |
+++ rtld-elf/rtld.c 2007-04-23 09:42:32 +0000 |
198 |
@@ -988,6 +988,103 @@ |
199 |
return NULL; |
200 |
} |
201 |
|
202 |
+#define MAX_LIBRARIES_HITS 255 |
203 |
+ |
204 |
+struct fill_library_paths_args { |
205 |
+ const char *name; |
206 |
+ size_t namelen; |
207 |
+ char **libraries; |
208 |
+ size_t *count; |
209 |
+}; |
210 |
+ |
211 |
+static void * |
212 |
+fill_library_paths(const char *dir, size_t dirlen, void *param) |
213 |
+{ |
214 |
+ struct fill_library_paths_args *arg; |
215 |
+ |
216 |
+ arg = param; |
217 |
+ if (*(arg->count) > MAX_LIBRARIES_HITS) |
218 |
+ return (NULL); |
219 |
+ |
220 |
+ if (*dir == '/' || trust) { |
221 |
+ arg->libraries[*(arg->count)] = malloc(sizeof(char)*(dirlen + 1 + arg->namelen + 1)); |
222 |
+ strncpy(arg->libraries[*(arg->count)], dir, dirlen); |
223 |
+ arg->libraries[*(arg->count)][dirlen] = '/'; |
224 |
+ strncpy(arg->libraries[*(arg->count)] + dirlen + 1, arg->name, arg->namelen+1); |
225 |
+ |
226 |
+ dbg(" Trying \"%s\"\n", arg->libraries[*(arg->count)]); |
227 |
+ if (access(arg->libraries[*(arg->count)], F_OK) == 0) { |
228 |
+ *(arg->count) += 1; |
229 |
+ } |
230 |
+ } |
231 |
+ return (NULL); |
232 |
+} |
233 |
+ |
234 |
+/** |
235 |
+ * Find all libraries matching xname for the object refobj (if not null), like |
236 |
+ * find_library but find all the matching libraries in the paths. |
237 |
+ * |
238 |
+ * The returned pointer has to be free()'d (as well as the contained strings) |
239 |
+ * if it's non-NULL. |
240 |
+ * The end of the array is found when the pointer gets NULL. |
241 |
+ */ |
242 |
+static char **find_libraries(const char *xname, const Obj_Entry *refobj) |
243 |
+{ |
244 |
+ char **libraries; |
245 |
+ size_t libraries_count; |
246 |
+ struct fill_library_paths_args arg; |
247 |
+ char *name; |
248 |
+ |
249 |
+ if (strchr(xname, '/') != NULL) { /* Hard coded pathname */ |
250 |
+ if (xname[0] != '/' && !trust) { |
251 |
+ _rtld_error("Absolute pathname required for shared object \"%s\"", |
252 |
+ xname); |
253 |
+ return NULL; |
254 |
+ } |
255 |
+ libraries = malloc(sizeof(char*)*2); |
256 |
+ libraries[0] = xstrdup(xname); |
257 |
+ libraries[1] = NULL; |
258 |
+ return libraries; |
259 |
+ } |
260 |
+ |
261 |
+ if (libmap_disable || (refobj == NULL) || |
262 |
+ (name = lm_find(refobj->path, xname)) == NULL) |
263 |
+ name = (char *)xname; |
264 |
+ |
265 |
+ dbg(" Searching for \"%s\"", name); |
266 |
+ |
267 |
+ /* look up at maximum 255 libraries, would be crazy going over that */ |
268 |
+ libraries = malloc(sizeof(char*)*(MAX_LIBRARIES_HITS+1)); |
269 |
+ libraries_count = 0; |
270 |
+ |
271 |
+ arg.name = name; |
272 |
+ arg.namelen = strlen(name); |
273 |
+ arg.libraries = libraries; |
274 |
+ arg.count = &libraries_count; |
275 |
+ |
276 |
+ path_enumerate(ld_library_path, fill_library_paths, &arg); |
277 |
+ if(refobj != NULL) |
278 |
+ path_enumerate(refobj->rpath, fill_library_paths, &arg); |
279 |
+ path_enumerate(gethints(), fill_library_paths, &arg); |
280 |
+ path_enumerate(STANDARD_LIBRARY_PATH, fill_library_paths, &arg); |
281 |
+ |
282 |
+ libraries[libraries_count] = NULL; |
283 |
+ |
284 |
+ if(libraries_count == 0) { |
285 |
+ if(refobj != NULL && refobj->path != NULL) { |
286 |
+ _rtld_error("Shared object \"%s\" not found, required by \"%s\"", |
287 |
+ name, basename(refobj->path)); |
288 |
+ } else { |
289 |
+ _rtld_error("Shared object \"%s\" not found", name); |
290 |
+ } |
291 |
+ |
292 |
+ free(libraries); |
293 |
+ return NULL; |
294 |
+ } |
295 |
+ |
296 |
+ return libraries; |
297 |
+} |
298 |
+ |
299 |
/* |
300 |
* Given a symbol number in a referencing object, find the corresponding |
301 |
* definition of the symbol. Returns a pointer to the symbol, or NULL if |
302 |
@@ -1260,7 +1357,29 @@ |
303 |
Needed_Entry *needed; |
304 |
|
305 |
for (needed = obj->needed; needed != NULL; needed = needed->next) { |
306 |
- needed->obj = load_object(obj->strtab + needed->name, obj); |
307 |
+ const char *name = obj->strtab + needed->name; |
308 |
+ char **paths = find_libraries(name, obj); |
309 |
+ char **curpath = paths; |
310 |
+ |
311 |
+ needed->obj = NULL; |
312 |
+ if (paths == NULL) { |
313 |
+ if (ld_tracing) |
314 |
+ continue; |
315 |
+ else |
316 |
+ return -1; |
317 |
+ } |
318 |
+ |
319 |
+ while(*curpath) { |
320 |
+ if (needed->obj == NULL) { |
321 |
+ needed->obj = load_object(*curpath, NULL); |
322 |
+ curpath++; |
323 |
+ continue; |
324 |
+ } |
325 |
+ /* Continue, so that we can free the whole lot */ |
326 |
+ free(*curpath); |
327 |
+ curpath++; |
328 |
+ } |
329 |
+ free(paths); |
330 |
if (needed->obj == NULL && !ld_tracing) |
331 |
return -1; |
332 |
} |
333 |
|
334 |
|
335 |
|
336 |
1.1 sys-freebsd/freebsd-libexec/files/sprayd.xinetd |
337 |
|
338 |
file : http://sources.gentoo.org/viewcvs.py/gentoo-x86/sys-freebsd/freebsd-libexec/files/sprayd.xinetd?rev=1.1&view=markup |
339 |
plain: http://sources.gentoo.org/viewcvs.py/gentoo-x86/sys-freebsd/freebsd-libexec/files/sprayd.xinetd?rev=1.1&content-type=text/plain |
340 |
|
341 |
Index: sprayd.xinetd |
342 |
=================================================================== |
343 |
service sprayd |
344 |
{ |
345 |
type = rpc |
346 |
socket_type = dgram |
347 |
protocol = udp |
348 |
wait = yes |
349 |
user = root |
350 |
server = /usr/libexec/rpc.sprayd |
351 |
rpc_version = 1 |
352 |
disabled = yes |
353 |
} |
354 |
|
355 |
|
356 |
|
357 |
1.1 sys-freebsd/freebsd-libexec/files/rquotad.xinetd |
358 |
|
359 |
file : http://sources.gentoo.org/viewcvs.py/gentoo-x86/sys-freebsd/freebsd-libexec/files/rquotad.xinetd?rev=1.1&view=markup |
360 |
plain: http://sources.gentoo.org/viewcvs.py/gentoo-x86/sys-freebsd/freebsd-libexec/files/rquotad.xinetd?rev=1.1&content-type=text/plain |
361 |
|
362 |
Index: rquotad.xinetd |
363 |
=================================================================== |
364 |
service rquotad |
365 |
{ |
366 |
type = rpc |
367 |
socket_type = dgram |
368 |
protocol = udp |
369 |
wait = yes |
370 |
user = root |
371 |
server = /usr/libexec/rpc.rquotad |
372 |
rpc_version = 1 |
373 |
disabled = yes |
374 |
} |