public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Ulrich Müller" <ulm@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] data/glep:master commit in: /
Date: Thu, 14 Jul 2022 10:30:08 +0000 (UTC)	[thread overview]
Message-ID: <1657794530.22ecc72d5b66a765e2d6ed58df26519a90633167.ulm@gentoo> (raw)

commit:     22ecc72d5b66a765e2d6ed58df26519a90633167
Author:     Sheng Yu <syu.os <AT> protonmail <DOT> com>
AuthorDate: Sat May 28 19:06:46 2022 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Thu Jul 14 10:28:50 2022 +0000
URL:        https://gitweb.gentoo.org/data/glep.git/commit/?id=22ecc72d

glep-0078: draft update

Bug: https://bugs.gentoo.org/820578
Signed-off-by: Sheng Yu <syu.os <AT> protonmail.com>
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 glep-0078.rst | 114 ++++++++++++++++++++++++++++++++++++++++++++++++----------
 1 file changed, 96 insertions(+), 18 deletions(-)

diff --git a/glep-0078.rst b/glep-0078.rst
index 1f7cd9b..82c74c8 100644
--- a/glep-0078.rst
+++ b/glep-0078.rst
@@ -2,12 +2,13 @@
 GLEP: 78
 Title: Gentoo binary package container format
 Author: Michał Górny <mgorny@gentoo.org>
+        Sheng Yu <syu.os@protonmail.com>
 Type: Standards Track
 Status: Draft
 Version: 1
 Created: 2018-11-15
-Last-Modified: 2019-07-29
-Post-History: 2018-11-17, 2019-07-08
+Last-Modified: 2021-10-10
+Post-History: 2018-11-17, 2019-07-08, 2021-09-13, 2021-09-22, 2022-05-28
 Content-Type: text/x-rst
 ---
 
@@ -154,10 +155,15 @@ The following obligatory goals have been set for a replacement format:
    enough to let user inspect and manipulate it without special tooling
    or detailed knowledge.
 
-3. **The file format must provide support for OpenPGP signatures.**
+3. **The file format must be able to detect its own data corruption.**
+   In particular, it needs to contain the checksum of its own data for
+   package manager to be able to verify its integrity without relying
+   on additional files.
+
+4. **The file format must provide support for OpenPGP signatures.**
    Preferably, it should use standard OpenPGP message formats.
 
-4. **The file format must allow for efficient metadata updates.**
+5. **The file format must allow for efficient metadata updates.**
    In particular, it should be possible to update the metadata without
    having to recompress package files.
 
@@ -186,35 +192,39 @@ The container format
 The gpkg package container is an uncompressed .tar achive whose filename
 should use ``.gpkg.tar`` suffix.
 
-The archive contains a number of files, stored in a single directory
-whose name should match the basename of the package file.  However,
-the implementation must be able to process an archive where
-the directory name is mismatched.  There should be no explicit archive
-member entry for the directory.
+The archive contains a number of files.  All package-related files
+should be stored in a single directory whose name matches the basename
+of the package file.  However, the implementation must be able to
+process an archive where the directory name is mismatched.  There should
+be no explicit archive member entry for the directory.
 
 The package directory contains the following members, in order:
 
 1. The package format identifier file ``gpkg-1`` (required).
 
-2. A signature for the metadata archive: ``metadata.tar${comp}.sig``
+2. The metadata archive ``metadata.tar${comp}``, optionally compressed
+   (required).
+
+3. A signature for the metadata archive: ``metadata.tar${comp}.sig``
    (optional).
 
-3. The metadata archive ``metadata.tar${comp}``, optionally compressed
-   (required).
+4. The filesystem image archive ``image.tar${comp}``, optionally
+   compressed (required).
 
-4. A signature for the filesystem image archive:
+5. A signature for the filesystem image archive:
    ``image.tar${comp}.sig`` (optional).
 
-5. The filesystem image archive ``image.tar${comp}``, optionally
-   compressed (required).
+6. The package Manifest data file ``Manifest``, optionally clear-text
+   signed (required)
 
 It is recommended that relative order of the archive members is
 preserved.  However, implementations must support archives with members
 out of order.
 
 The container may be extended with additional members in the future.
-The implementations should ignore unrecognized members and preserve
-them across package updates.
+If the Manifest is present, all files contained in the archive must
+be listed in it and verify successfully.  The package manager should
+ignore unknown files but preserve them across package updates.
 
 
 Permitted .tar format features
@@ -301,10 +311,29 @@ suffixed using the standard suffix for the particular compressed file
 type (e.g. ``.bz2`` for bzip2 format).
 
 
+The package Manifest file
+-------------------------
+
+The Manifest file must include digests of all files in the binary
+package container, except for itself.  The purpose of this file is
+to provide the package manager with an ability to detect corruption
+or alteration of the binary package before attempting to read the
+inner archive contents.  This file also provides protection against
+signature reuse/replacement attacks if the OpenPGP signatures are used.
+
+The implementation follows the Manifest specifications in GLEP 74
+[#GLEP74]_ and uses the DATA tag for files within the container.
+
+The implementation should be able to detect checksum mismatches,
+as well as missing, duplicate, or extraneous files within the
+container.  In the case of verification failure, no subsequent
+operations on the archive should be performed.
+
+
 OpenPGP member signatures
 -------------------------
 
-The archive members support optional OpenPGP signatures.
+The archive members and Manifest support optional OpenPGP signatures.
 The implementations must allow the user to specify whether OpenPGP
 signatures are to be expected in remotely fetched packages.
 
@@ -490,6 +519,38 @@ Debian has a similar guideline for the inner tar of their package
 format  [#DEB-FORMAT]_.
 
 
+.tar security issues
+--------------------
+
+Some of the original features of .tar are obsolete with the modern
+usage.
+
+Firstly, .tar permits duplicate files to exist [#TARDUP]_.  The
+later duplicate files overwrite the previously extracted files when
+extracting all files in order.  This is useful for incremental
+backups.  However, a general-purpose archiving tools may choose
+arbitrary files matching a path name, leading to checksum or
+signature bypass.  To prevent this, duplicate files are forbidden
+from existing.
+
+Secondly, .tar lacks integrity checks, except for the header
+self-check.  Data corruption can usually be detected through
+integrity checks in the additional compression layer.  However,
+this does not provide a way of verifying the integrity of the
+compressed data in advance.  For this reason, an additional
+Manifest file is included that provides checksums for other
+files in the archive.  A corrupted Manifest invalidates the whole
+package.
+
+Thirdly, many .tar implementations have various security problems,
+including the Python tarfile module [#ISSUE21109]_.  They provide
+multiple attack vectors, e.g. permitting overwriting files outside the
+destination directory using special filenames, symlinks, hard links or
+device files.  For this purpose, only regular files are permitted inside
+the container.  It is recommended to process the container data in place
+rather than extracting it.
+
+
 Member ordering
 ---------------
 
@@ -511,6 +572,14 @@ them.  Covering the compressed archives helps to prevent zipbomb
 attacks.  Covering the individual members rather than the whole package
 provides for verification of partially fetched binary packages.
 
+However, signing individual files does not guarantee that all members
+are originating from the same binary package.  This opens up the
+possibility of a replacement/reuse attack, e.g. combining the signed
+metadata from foo-1.1 with signed image from foo-1.0.  The new binary
+package passes the signature check.  To prevent this type of attack,
+we need the additional Menifest file and its signature to verify the
+authenticity of the complete binary package.
+
 
 Format versioning
 -----------------
@@ -564,10 +633,19 @@ References
 .. [#TAR-PORTABILITY] Michał Górny, Portability of tar features
    (https://dev.gentoo.org/~mgorny/articles/portability-of-tar-features.html)
 
+.. [#GLEP74] GLEP 74: Full-tree verification using Manifest files
+   (https://www.gentoo.org/glep/glep-0074.html)
+
 .. [#XPAK2GPKG] xpak2gpkg: Proof-of-concept converter from tbz2/xpak
    to gpkg binpkg format
    (https://github.com/mgorny/xpak2gpkg)
 
+.. [#TARDUP] tar: Multiple Members with the Same Name
+   (https://www.gnu.org/software/tar/manual/html_node/multiple.html)
+
+.. [#ISSUE21109] Python tarfile: Traversal attack vulnerability
+   (https://bugs.python.org/issue21109)
+
 
 Copyright
 =========


             reply	other threads:[~2022-07-14 10:30 UTC|newest]

Thread overview: 348+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-07-14 10:30 Ulrich Müller [this message]
  -- strict thread matches above, loose matches on Subject: below --
2024-09-26 11:44 [gentoo-commits] data/glep:master commit in: / Ulrich Müller
2024-09-08 19:29 Ulrich Müller
2024-09-08 19:21 Ulrich Müller
2024-07-22  5:43 Ulrich Müller
2024-07-22  5:43 ` Ulrich Müller
2024-07-16 16:18 Ulrich Müller
2024-04-16 18:36 Ulrich Müller
2024-04-16 18:36 Ulrich Müller
2024-04-16 18:36 Ulrich Müller
2024-04-16 18:36 Ulrich Müller
2024-02-27  9:30 Ulrich Müller
2023-12-02 12:02 Ulrich Müller
2023-12-02 12:02 Ulrich Müller
2023-09-16 16:20 Ulrich Müller
2023-09-15 15:30 Ulrich Müller
2023-05-14 19:14 Ulrich Müller
2023-05-14 19:14 Ulrich Müller
2023-05-08 19:16 Ulrich Müller
2023-05-08 17:12 Ulrich Müller
2023-05-08 17:12 Ulrich Müller
2023-05-08 17:12 Ulrich Müller
2023-05-08 17:12 Ulrich Müller
2023-05-08 17:12 Ulrich Müller
2023-05-08 17:12 Ulrich Müller
2023-05-08 17:12 Ulrich Müller
2023-05-08 17:12 Ulrich Müller
2023-04-16  8:08 [gentoo-commits] data/glep:glep39 " Ulrich Müller
2023-05-08 17:12 ` [gentoo-commits] data/glep:master " Ulrich Müller
2023-04-16  8:08 [gentoo-commits] data/glep:glep39 " Ulrich Müller
2023-05-08 17:12 ` [gentoo-commits] data/glep:master " Ulrich Müller
2023-04-16  8:08 [gentoo-commits] data/glep:glep39 " Ulrich Müller
2023-05-08 17:12 ` [gentoo-commits] data/glep:master " Ulrich Müller
2023-04-10 13:29 [gentoo-commits] data/glep:glep39 " Ulrich Müller
2023-03-12 20:10 ` [gentoo-commits] data/glep:master " Ulrich Müller
2023-04-10 13:29 [gentoo-commits] data/glep:glep39 " Ulrich Müller
2023-03-12 20:10 ` [gentoo-commits] data/glep:master " Ulrich Müller
2023-04-01  9:04 Ulrich Müller
2023-04-01  9:04 Ulrich Müller
2023-03-12 20:14 Ulrich Müller
2023-03-12 20:10 Ulrich Müller
2023-03-12 20:10 Ulrich Müller
2023-02-22  8:18 Ulrich Müller
2022-11-15 20:10 Michał Górny
2022-11-13 20:20 Ulrich Müller
2022-11-13 20:20 Ulrich Müller
2022-11-13 20:20 Ulrich Müller
2022-11-13 20:20 Ulrich Müller
2022-11-13 20:20 Ulrich Müller
2022-11-13 20:20 Ulrich Müller
2022-11-13 16:57 [gentoo-commits] data/glep:glep76 " Ulrich Müller
2022-11-03 12:40 ` [gentoo-commits] data/glep:master " Ulrich Müller
2022-11-13 16:57 [gentoo-commits] data/glep:glep76 " Ulrich Müller
2022-11-03 12:40 ` [gentoo-commits] data/glep:master " Ulrich Müller
2022-11-03 12:40 Ulrich Müller
2022-11-03 12:40 Ulrich Müller
2022-10-30 13:59 Michał Górny
2022-10-14 15:35 Michał Górny
2022-10-14 15:35 Michał Górny
2022-10-04  6:56 Michał Górny
2022-10-04  6:56 Michał Górny
2022-10-04  6:56 Michał Górny
2022-09-21 17:31 Michał Górny
2022-09-21 17:31 Michał Górny
2022-09-21 17:31 Michał Górny
2022-09-12  6:20 Michał Górny
2022-09-12  6:20 Michał Górny
2022-09-12  6:20 Michał Górny
2022-09-12  6:20 Michał Górny
2022-09-12  6:20 Michał Górny
2022-08-14 19:35 Ulrich Müller
2022-08-14 19:32 Ulrich Müller
2022-08-14 19:29 Ulrich Müller
2022-08-14 19:29 Ulrich Müller
2022-07-31 21:45 Ulrich Müller
2022-07-31 21:26 Ulrich Müller
2022-07-31 17:28 Ulrich Müller
2022-07-31 17:28 Ulrich Müller
2022-07-25 19:59 Ulrich Müller
2022-07-25 19:59 Ulrich Müller
2022-07-16  7:04 Ulrich Müller
2022-07-14 10:30 Ulrich Müller
2022-07-14 10:30 Ulrich Müller
2022-07-14 10:30 Ulrich Müller
2022-07-11 19:26 Ulrich Müller
2022-07-09 10:08 Ulrich Müller
2022-07-08 17:36 Ulrich Müller
2022-07-08 17:36 Ulrich Müller
2022-07-02  8:37 Ulrich Müller
2022-06-12 19:13 Ulrich Müller
2022-06-12 19:09 Ulrich Müller
2022-05-08  5:48 Ulrich Müller
2022-05-08  5:48 Ulrich Müller
2022-05-08  5:48 Ulrich Müller
2022-04-15  5:50 Ulrich Müller
2022-04-15  4:27 Robin H. Johnson
2022-01-10  6:14 Ulrich Müller
2021-09-12 19:24 Ulrich Müller
2021-09-11 14:03 Ulrich Müller
2021-08-08 20:06 Ulrich Müller
2021-07-12  7:04 Ulrich Müller
2021-06-20 16:42 Ulrich Müller
2021-06-17 20:08 Ulrich Müller
2021-06-09  7:32 Michał Górny
2021-05-31  8:44 Ulrich Müller
2021-05-31  8:12 Michał Górny
2021-03-14 19:57 Michał Górny
2021-01-04  7:12 Ulrich Müller
2020-05-10 19:36 Ulrich Müller
2020-05-06  8:30 Michał Górny
2020-05-01 19:49 Ulrich Müller
2020-04-22  9:00 Ulrich Müller
2020-04-22  9:00 Ulrich Müller
2020-04-22  9:00 Ulrich Müller
2020-04-22  9:00 Ulrich Müller
2020-04-22  9:00 Ulrich Müller
2020-04-22  9:00 Ulrich Müller
2020-04-22  9:00 Ulrich Müller
2020-04-22  9:00 Ulrich Müller
2020-04-22  9:00 Ulrich Müller
2020-04-12 17:37 Ulrich Müller
2019-12-21 13:05 Ulrich Müller
2019-12-08 19:38 Ulrich Müller
2019-12-05 15:07 Ulrich Müller
2019-11-24 10:23 Ulrich Müller
2019-11-24 10:23 Ulrich Müller
2019-11-15 11:59 Ulrich Müller
2019-11-11 10:00 Ulrich Müller
2019-11-11  9:49 Ulrich Müller
2019-11-11  9:49 Ulrich Müller
2019-11-07  6:35 Michał Górny
2019-11-06 14:36 Ulrich Müller
2019-10-07 10:58 Ulrich Müller
2019-07-30 18:48 Ulrich Müller
2019-07-29 14:51 Michał Górny
2019-07-22  7:15 Ulrich Müller
2019-07-15 19:01 Michał Górny
2019-06-18 13:04 Michał Górny
2019-06-18 12:34 Ulrich Müller
2019-06-18 12:24 Michał Górny
2019-06-17 20:14 Ulrich Müller
2019-06-10 16:33 Ulrich Müller
2019-06-10 15:58 Ulrich Müller
2019-05-13 18:44 Ulrich Müller
2019-05-13 18:44 Ulrich Müller
2019-05-02 16:40 Michał Górny
2019-04-14 21:04 Ulrich Müller
2019-04-14 12:54 Michał Górny
2019-04-03  8:12 Michał Górny
2019-04-02 13:43 Michał Górny
2019-03-14 13:10 Michał Górny
2019-03-14 13:10 Michał Górny
2019-03-03 20:52 Ulrich Müller
2019-03-03  7:16 Michał Górny
2019-02-23 15:35 Ulrich Müller
2019-02-23 10:26 Ulrich Müller
2018-12-21 10:16 Ulrich Müller
2018-12-08  9:41 Ulrich Müller
2018-12-01 12:59 Ulrich Müller
2018-12-01 12:59 Ulrich Müller
2018-12-01 10:43 Ulrich Müller
2018-11-17 13:08 Ulrich Müller
2018-10-28 18:50 Ulrich Müller
2018-10-27  7:31 Ulrich Müller
2018-10-27  7:31 Ulrich Müller
2018-10-21 11:10 Ulrich Müller
2018-10-21 11:10 Ulrich Müller
2018-10-21 11:10 Ulrich Müller
2018-10-21 11:10 Ulrich Müller
2018-09-15 23:02 Ulrich Müller
2018-09-12 11:43 Ulrich Müller
2018-09-12 11:29 Ulrich Müller
2018-09-08 13:42 Ulrich Müller
2018-08-31 15:35 [gentoo-commits] data/glep:glep-0076 " Ulrich Müller
2018-08-31 14:57 ` [gentoo-commits] data/glep:master " Ulrich Müller
2018-08-31 14:57 Ulrich Müller
2018-08-31 14:57 Ulrich Müller
2018-08-31 14:57 Ulrich Müller
2018-08-31 14:57 Ulrich Müller
2018-08-31 14:57 Ulrich Müller
2018-08-31 14:57 Ulrich Müller
2018-08-31 14:57 Ulrich Müller
2018-08-31 14:57 Ulrich Müller
2018-08-31 14:57 Ulrich Müller
2018-07-29 20:51 Michał Górny
2018-07-29 20:51 Michał Górny
2018-07-29 20:51 Michał Górny
2018-07-29 20:51 Michał Górny
2018-07-29 20:51 Michał Górny
2018-07-29 20:51 Michał Górny
2018-07-29 20:51 Michał Górny
2018-07-29 20:51 Michał Górny
2018-07-29 20:51 Michał Górny
2018-07-29 20:51 Michał Górny
2018-07-29 20:51 Michał Górny
2018-07-29 20:51 Michał Górny
2018-07-29 20:51 Michał Górny
2018-07-29 20:51 Michał Górny
2018-07-29 20:51 Michał Górny
2018-07-29 20:51 Michał Górny
2018-07-29 20:51 Michał Górny
2018-07-29 20:51 Michał Górny
2018-07-29 20:51 Michał Górny
2018-07-17 22:39 Ulrich Müller
2018-07-17 22:39 Ulrich Müller
2018-07-13 13:06 Ulrich Müller
2018-07-13 13:06 Ulrich Müller
2018-06-19 17:15 Ulrich Müller
2018-06-19 17:15 Ulrich Müller
2018-06-10 20:36 Ulrich Müller
2018-06-10 18:42 Ulrich Müller
2018-06-10 18:42 Ulrich Müller
2018-06-10 18:42 Ulrich Müller
2018-06-10 18:42 Ulrich Müller
2018-06-10 18:42 Ulrich Müller
2018-06-10 18:42 Ulrich Müller
2018-06-10 18:42 Ulrich Müller
2018-06-10 18:42 Ulrich Müller
2018-06-10 18:42 Ulrich Müller
2018-06-10 18:42 Ulrich Müller
2018-06-10 18:42 Ulrich Müller
2018-06-10 18:42 Ulrich Müller
2018-06-10 18:42 Ulrich Müller
2018-06-10 18:42 Ulrich Müller
2018-06-10 18:42 Ulrich Müller
2018-06-10 18:42 Ulrich Müller
2018-06-10 18:42 Ulrich Müller
2018-06-10 18:42 Ulrich Müller
2018-06-10 18:42 Ulrich Müller
2018-06-10 18:42 Ulrich Müller
2018-06-10 18:42 Ulrich Müller
2018-06-10 18:42 Ulrich Müller
2018-06-10 18:42 Ulrich Müller
2018-06-10 18:42 Ulrich Müller
2018-06-10 18:42 Ulrich Müller
2018-05-19 12:20 Ulrich Müller
2018-04-17 18:42 Ulrich Müller
2018-04-09 19:26 Ulrich Müller
2018-04-08 20:05 Ulrich Müller
2018-04-07 17:00 Ulrich Müller
2018-03-11 19:20 Michał Górny
2018-03-11 19:20 Michał Górny
2018-02-07 15:00 Ulrich Müller
2018-02-07 15:00 Ulrich Müller
2018-02-07 15:00 Ulrich Müller
2018-02-07 15:00 Ulrich Müller
2017-12-27 13:11 Ulrich Müller
2017-12-16  9:00 Michał Górny
2017-12-11  7:53 Ulrich Müller
2017-12-11  7:53 Ulrich Müller
2017-12-11  7:53 Ulrich Müller
2017-12-11  7:53 Ulrich Müller
2017-12-11  7:53 Ulrich Müller
2017-11-29 14:51 Michał Górny
2017-11-27 20:25 Ulrich Müller
2017-11-25 20:49 Michał Górny
2017-11-25 20:49 Michał Górny
2017-11-25 20:49 Michał Górny
2017-11-25 20:49 Michał Górny
2017-11-25 20:49 Michał Górny
2017-11-25 20:49 Michał Górny
2017-11-25 20:49 Michał Górny
2017-11-25 20:49 Michał Górny
2017-11-25 20:49 Michał Górny
2017-11-25 20:49 Michał Górny
2017-11-25 20:49 Michał Górny
2017-11-25 20:49 Michał Górny
2017-11-25 20:49 Michał Górny
2017-11-25 20:49 Michał Górny
2017-11-25 20:49 Michał Górny
2017-11-25 20:49 Michał Górny
2017-11-25 20:49 Michał Górny
2017-11-25 20:49 Michał Górny
2017-11-25 20:49 Michał Górny
2017-11-25 20:49 Michał Górny
2017-11-25 20:49 Michał Górny
2017-11-25 20:49 Michał Górny
2017-11-25 20:49 Michał Górny
2017-11-25 20:49 Michał Górny
2017-11-25 20:49 Michał Górny
2017-11-21 20:44 Ulrich Müller
2017-11-18 22:21 Ulrich Müller
2017-11-13 17:35 [gentoo-commits] data/glep:glep-manifest " Michał Górny
2017-11-13 16:08 ` [gentoo-commits] data/glep:master " Michał Górny
2017-11-13 17:35 [gentoo-commits] data/glep:glep-manifest " Michał Górny
2017-11-13 16:08 ` [gentoo-commits] data/glep:master " Michał Górny
2017-11-13 17:34 Ulrich Müller
2017-11-13 16:08 Michał Górny
2017-11-13 16:08 Michał Górny
2017-11-13 14:45 Ulrich Müller
2017-11-12 21:17 Ulrich Müller
2017-11-12 21:17 Ulrich Müller
2017-11-12 21:17 Ulrich Müller
2017-11-12 21:17 Ulrich Müller
2017-11-10  8:11 Ulrich Müller
2017-11-09 14:14 Ulrich Müller
2017-11-09  6:03 Ulrich Müller
2017-11-07 21:05 Ulrich Müller
2017-11-06  7:48 Ulrich Müller
2017-11-04 18:03 Ulrich Müller
2017-11-04 18:03 Ulrich Müller
2017-11-04 17:24 Robin H. Johnson
2017-11-04 17:24 Robin H. Johnson
2017-11-03 16:49 Ulrich Müller
2017-11-02 19:09 [gentoo-commits] data/glep:glep-manifest " Michał Górny
2017-10-27 17:44 ` [gentoo-commits] data/glep:master " Michał Górny
2017-11-02 19:09 [gentoo-commits] data/glep:glep-manifest " Michał Górny
2017-10-27 17:44 ` [gentoo-commits] data/glep:master " Michał Górny
2017-10-28 11:57 Ulrich Müller
2017-10-28 10:12 Ulrich Müller
2017-10-19  5:24 Ulrich Müller
2017-10-18 11:38 Ulrich Müller
2017-10-18 11:38 Ulrich Müller
2017-10-17 12:27 Ulrich Müller
2017-10-17 12:27 Ulrich Müller
2017-10-15 19:47 Michał Górny
2017-10-15 19:47 Michał Górny
2017-10-15 19:45 Michał Górny
2017-10-15 19:45 Michał Górny
2017-10-15 19:45 Michał Górny
2017-10-15 19:45 Michał Górny
2017-10-15 19:45 Michał Górny
2017-10-15 19:45 Michał Górny
2017-10-15 19:18 Ulrich Müller
2017-10-15 19:18 Ulrich Müller
2017-10-15 19:18 Ulrich Müller
2017-10-15 19:18 Ulrich Müller
2017-10-14  9:20 Ulrich Müller
2017-10-14  9:20 Ulrich Müller
2017-10-14  9:20 Ulrich Müller
2017-10-14  9:20 Ulrich Müller
2017-10-14  9:20 Ulrich Müller
2017-10-14  9:20 Ulrich Müller
2017-10-12 12:17 Ulrich Müller
2017-10-12 12:17 Ulrich Müller
2017-10-09 13:56 Michał Górny
2017-10-09 13:56 Michał Górny
2017-10-09 13:56 Michał Górny
2017-10-09 13:56 Michał Górny
2017-10-09 13:56 Michał Górny
2017-10-09 13:56 Michał Górny
2017-10-09 13:56 Michał Górny
2017-10-09 13:56 Michał Górny
2017-10-09 13:56 Michał Górny
2017-10-09 13:56 Michał Górny
2017-10-09 13:56 Michał Górny
2017-10-09 13:56 Michał Górny
2017-10-09 13:56 Michał Górny
2017-10-09 13:56 Michał Górny
2017-10-09 13:56 Michał Górny
2017-10-09 13:56 Michał Górny
2017-10-09 13:56 Michał Górny
2017-10-09 13:56 Michał Górny
2017-10-09 13:56 Michał Górny
2017-10-09 13:56 Michał Górny
2017-10-09 13:56 Michał Górny
2017-10-09 13:56 Michał Górny
2017-10-09 13:56 Michał Górny
2017-10-09 13:56 Michał Górny
2017-10-09 13:56 Michał Górny

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1657794530.22ecc72d5b66a765e2d6ed58df26519a90633167.ulm@gentoo \
    --to=ulm@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox