<feed xmlns='http://www.w3.org/2005/Atom'>
<title>apt/methods/aptmethod.h, branch 1.8.0_alpha2</title>
<subtitle>Debians commandline package manager</subtitle>
<id>https://git.kalnischkies.de/apt/atom?h=1.8.0_alpha2</id>
<link rel='self' href='https://git.kalnischkies.de/apt/atom?h=1.8.0_alpha2'/>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/'/>
<updated>2018-04-06T12:18:25Z</updated>
<entry>
<title>Allow restart_syscall() syscall in seccomp sandboxes</title>
<updated>2018-04-06T12:18:25Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2018-04-06T12:18:25Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=da385be6c38c5f79b7ee6d175f855c08090d959f'/>
<id>urn:sha1:da385be6c38c5f79b7ee6d175f855c08090d959f</id>
<content type='text'>
Closes: #891644
</content>
</entry>
<entry>
<title>Turn off seccomp sandboxing by default</title>
<updated>2018-04-06T12:17:26Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2018-04-06T11:53:20Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=e688a4f4890c04021468932e57e17891853c8443'/>
<id>urn:sha1:e688a4f4890c04021468932e57e17891853c8443</id>
<content type='text'>
LP: #1732030
Closes: #890489
Fixes meefik/linuxdeploy#869
</content>
</entry>
<entry>
<title>reimplement and simplify mirror:// method</title>
<updated>2018-01-03T17:55:41Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2017-10-27T16:39:36Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=57fa854e4cdb060e87ca265abd5a83364f9fa681'/>
<id>urn:sha1:57fa854e4cdb060e87ca265abd5a83364f9fa681</id>
<content type='text'>
Embedding an entire acquire stack and HTTP logic in the mirror method
made it rather heavy weight and fragile. This reimplement goes the other
way by doing only the bare minimum in the method itself and instead
redirect the actual download of files to their proper methods.

The reimplementation drops the (in the real world) unused query-string
feature as it isn't really implementable in the new architecture.
</content>
</entry>
<entry>
<title>report transient errors as transient errors</title>
<updated>2017-12-13T22:56:29Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2017-10-25T22:57:26Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=47c0bdc310c8cd62374ca6e6bb456dd183bdfc07'/>
<id>urn:sha1:47c0bdc310c8cd62374ca6e6bb456dd183bdfc07</id>
<content type='text'>
The Fail method for acquire methods has a boolean parameter indicating
the transient-nature of a reported error. The problem with this is that
Fail is called very late at a point where it is no longer easily
identifiable if an error is indeed transient or not, so some calls were
and some weren't and the acquire system would later mostly ignore the
transient flag and guess by using the FailReason instead.

Introducing a tri-state enum we can pass the information about fatal or
transient errors through the callstack to generate the correct fails.
</content>
</entry>
<entry>
<title>Do not attempt seccomp under qemu-user and drop EFAULT workaround</title>
<updated>2017-11-12T16:45:13Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>jak@debian.org</email>
</author>
<published>2017-11-12T16:45:13Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=243acdee176dd90cb2838690cb5abbd64d4da905'/>
<id>urn:sha1:243acdee176dd90cb2838690cb5abbd64d4da905</id>
<content type='text'>
qemu-user passes prctl()-based seccomp through to the kernel,
umodified. That's bad, as it blocks the wrong syscalls.

We ignored EFAULT which fixed the problem for targets with different
pointer sizes from the host, but was a bad hack. In order to identify
qemu we can rely on the fact that qemu-user prints its version and
exits with 0 if QEMU_VERSION is set to an unsupported value. If we
run a command that should fail in such an environment, and it exits
with 0, then we are running in qemu-user.

apt-helper is an obvious command to run. The tests ensure it exits
with 1, and it only prints usage information. We also could not use
/bin/false because apt might just as well be from a foreign arch
while /bin/false is not.

Closes: #881519
</content>
</entry>
<entry>
<title>seccomp: Allow clock_nanosleep() and nanosleep() syscalls</title>
<updated>2017-10-27T19:58:27Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>jak@debian.org</email>
</author>
<published>2017-10-27T19:58:27Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=cfb6061b82daa67def0349938bf6267c37e9906d'/>
<id>urn:sha1:cfb6061b82daa67def0349938bf6267c37e9906d</id>
<content type='text'>
We sleep in http.cc, so we should allow the sleeping syscalls.
</content>
</entry>
<entry>
<title>seccomp: Allow ipc() for fakeroot, and allow sysinfo() for sort</title>
<updated>2017-10-26T18:54:28Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>jak@debian.org</email>
</author>
<published>2017-10-26T15:42:58Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=b514128890d5cf96a76393e8d261d79e0be7f0e4'/>
<id>urn:sha1:b514128890d5cf96a76393e8d261d79e0be7f0e4</id>
<content type='text'>
Sorting apparently calls sysconf() which calls sysinfo() to get
free pages or whatever.

Closes: #879814, #879826
</content>
</entry>
<entry>
<title>Print syscall number and arch to stderr when trapped by seccomp</title>
<updated>2017-10-25T22:02:33Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>jak@debian.org</email>
</author>
<published>2017-10-25T21:16:09Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=39656a6f79e48f86d31c53a939481c07aceca352'/>
<id>urn:sha1:39656a6f79e48f86d31c53a939481c07aceca352</id>
<content type='text'>
This should help debugging crashes. The signal handler is a C++11
lambda, yay! Special care has been taken to only use signal handler
-safe functions inside there.
</content>
</entry>
<entry>
<title>Only warn about seccomp() EINVAL (normal) and EFAULT (qemu) errors</title>
<updated>2017-10-25T20:16:24Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>jak@debian.org</email>
</author>
<published>2017-10-25T19:49:34Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=230b0570532bf2f419608b2043a9d6e02b9467e3'/>
<id>urn:sha1:230b0570532bf2f419608b2043a9d6e02b9467e3</id>
<content type='text'>
If seccomp is disabled, we fallback to running without it. Qemu fails
in the seccomp() call, returning ENOSYS and libseccomp falls back to
prctl() without adjusting the pointer, causing the EFAULT. I hope
qemu gets fixed at some point to return EINVAL for seccomp via
prctl.

Bug-Qemu: https://bugs.launchpad.net/qemu/+bug/1726394
</content>
</entry>
<entry>
<title>methods: Enable additional syscalls (SYSV IPC) in fakeroot</title>
<updated>2017-10-25T19:40:35Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>jak@debian.org</email>
</author>
<published>2017-10-25T19:38:31Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=cf1a98baa58360a56f38cc3d5ce01905f6ebc8f4'/>
<id>urn:sha1:cf1a98baa58360a56f38cc3d5ce01905f6ebc8f4</id>
<content type='text'>
If FAKED_MODE is set, enable SYSV IPC so we don't crash when
running in fakeroot.

Closes: #879662
</content>
</entry>
</feed>
