continue
ff.append(f)
path = OS.path.join(dir, f)
- if not OS.path.isdir(path): examine(path)
+ if OS.path.islink(path) or not OS.path.isdir(path): examine(path)
files[:] = ff
OS.path.walk(crossdir, visit, None)
OS.path.walk(OS.path.join(crossdir, "TOOLCHAIN", gnuarch),
## Install the base system.
progress("install base system")
- run_root(["eatmydata", "debootstrap"] +
+ run_root(["eatmydata", "debootstrap", "--no-merged-usr"] +
(arch in C.FOREIGN_ARCHS and ["--foreign"] or []) +
["--arch=" + arch, "--variant=minbase",
"--include=" + ",".join(C.BASE_PACKAGES),
try: dest = dest[:dest.rindex("/")]
except ValueError: dest = ""
if path == "": path = link
- else: path = "%s/%s" % (path, link)
+ else: path = "%s/%s" % (link, path)
## Work through the shopping list, copying the things it names into the
## cross-tools tree.
#include <sys/types.h>
#include <sys/wait.h>
+#include <sys/select.h>
#include <unistd.h>
#define PY_SSIZE_T_CLEAN
PyObject *rc = 0;
struct sigaction sa, oldsa;
sigset_t mask, oldmask;
+ fd_set infd;
int rstrchld = 0;
int fd, sfd;
int kid, st;
* like this happens, then we go back and try reaping children again.
*/
Py_BEGIN_ALLOW_THREADS
- n = read(sigfd, &ch, 1);
+ for (;;) {
+ n = read(sigfd, &ch, 1); if (n >= 0 || errno != EAGAIN) break;
+ FD_ZERO(&infd); FD_SET(sigfd, &infd);
+ n = select(sigfd + 1, &infd, 0, 0, 0); if (n < 0) break;
+ }
Py_END_ALLOW_THREADS
if (n == 1) rc = Py_BuildValue("(cOO)", ch, Py_None, Py_None);
else if (!n) rc = Py_BuildValue("(sOO)", "", Py_None, Py_None);