public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Ionen Wolkens" <ionen@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: dev-qt/qtwebengine/, dev-qt/qtwebengine/files/
Date: Wed, 02 Apr 2025 05:09:00 +0000 (UTC)	[thread overview]
Message-ID: <1743569546.9fd435f3de4c68f9a3c762d4a30083c61befb077.ionen@gentoo> (raw)

commit:     9fd435f3de4c68f9a3c762d4a30083c61befb077
Author:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
AuthorDate: Wed Apr  2 04:42:52 2025 +0000
Commit:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
CommitDate: Wed Apr  2 04:52:26 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9fd435f3

dev-qt/qtwebengine: add 6.9.0

Also including backport for QTBUG-135047 (x11 pixmap leak) which
is fixed in 6.9.9999 but hasn't been included in the 6.9.0 release.

Not bothering putting it in the patchset given would need to make
new one for 6.9.9999 already.

The glibc-2.41 patch is also still not included, but it should
whenever 6.9.9999 gets a qtwebengine-chromium submodule update.

Signed-off-by: Ionen Wolkens <ionen <AT> gentoo.org>

 dev-qt/qtwebengine/Manifest                        |   1 +
 .../files/qtwebengine-6.9.0-x11-pixmap-leak.patch  |  43 +++
 dev-qt/qtwebengine/qtwebengine-6.9.0.ebuild        | 339 +++++++++++++++++++++
 3 files changed, 383 insertions(+)

diff --git a/dev-qt/qtwebengine/Manifest b/dev-qt/qtwebengine/Manifest
index 907f0347dd80..0a58ce1e8207 100644
--- a/dev-qt/qtwebengine/Manifest
+++ b/dev-qt/qtwebengine/Manifest
@@ -4,3 +4,4 @@ DIST qtwebengine-6.8-patchset-7.tar.xz 9096 BLAKE2B 58a95b198a6c8180a71a4365e7c2
 DIST qtwebengine-6.9-patchset-3.tar.xz 8152 BLAKE2B 4a1acb8328ae7eedb59fd0c4f721da210eacae9e9faf00a4272c1c376d108c8f996de63aa87b043655bfa0ce3391ad5ff3585512a177310df3990f92e201faf3 SHA512 d89fd2fe3cb441720fdf9cd5701bcdb6cba7677492a2362108b044b60da415a0008efb385f4582d2dea973f04adc5da25fc39ae2fa0a73340da47a3bb2d00dc3
 DIST qtwebengine-everywhere-src-6.8.2.tar.xz 566518084 BLAKE2B 312fda4150bdc1aee25625440baca45b532ecd7a1ce24d3dc3ba990cdf208c3ba42f159e02c881f38b56c29b75677d9001e6222d35b4c96fc39eecf65502e9c7 SHA512 27590ec53845fa36f48a5a0506d505995850027d85bf33fe0413733cbde5c2744e8ea49f445c91d84b8d43454b9f12c1cf7005d614bbcae1a29d432fdacdc0e4
 DIST qtwebengine-everywhere-src-6.8.3.tar.xz 566553436 BLAKE2B a3188d79f9d3b52423d4578b69c3ccf115a66994fd4f98d82cac2f6f8d443a22e102a53a0d5eb6f985b8ab7ebfe0cc22b8d34c31fbfd83f3a80b0c945b026f2a SHA512 01e8988c76ff40ca5e38f76e90791d7ef708c29f2e9f8e83ca8604b6335fbecdee71473678a63633ec1edec85088256b20e56a618ca95748ccbe1e7b9673c298
+DIST qtwebengine-everywhere-src-6.9.0.tar.xz 672153992 BLAKE2B aa5d7c77624857b321bd5cc44322fc7cf56ceffd449f678f7ba8e16febbd55c5e9f30634e59f29d4803b62a9c3f08917dcf9c44b1f45d3d6365705a7c532aceb SHA512 a02a54544250492e343e487c7a0aa53577ebe9cb54e58e8042de8fd9c79304642f8d78fde61f435475c9e41124572776b5a76c2115168450e7b146e3b6b8e051

diff --git a/dev-qt/qtwebengine/files/qtwebengine-6.9.0-x11-pixmap-leak.patch b/dev-qt/qtwebengine/files/qtwebengine-6.9.0-x11-pixmap-leak.patch
new file mode 100644
index 000000000000..17071b0c7354
--- /dev/null
+++ b/dev-qt/qtwebengine/files/qtwebengine-6.9.0-x11-pixmap-leak.patch
@@ -0,0 +1,43 @@
+Patch status: fixed in Qt 6.9.1
+
+https://bugreports.qt.io/browse/QTBUG-135047
+https://codereview.qt-project.org/c/qt/qtwebengine/+/634033
+--- a/src/core/compositor/native_skia_output_device_opengl.cpp
++++ b/src/core/compositor/native_skia_output_device_opengl.cpp
+@@ -214,9 +214,10 @@
+             glFun->glBindTexture(GL_TEXTURE_2D, 0);
+ 
+-            m_frontBuffer->textureCleanupCallback = [glFun, glxFun, display, glxPixmap,
+-                                                     glTexture]() {
++            m_frontBuffer->textureCleanupCallback = [glFun, glxFun, display, glxPixmap, glTexture,
++                                                     glxHelper, pixmapId]() {
+                 glxFun->glXReleaseTexImageEXT(display, glxPixmap, GLX_FRONT_LEFT_EXT);
+                 glFun->glDeleteTextures(1, &glTexture);
+                 glXDestroyGLXPixmap(display, glxPixmap);
++                glxHelper->freePixmap(pixmapId);
+             };
+         }
+--- a/src/core/ozone/glx_helper.cpp
++++ b/src/core/ozone/glx_helper.cpp
+@@ -101,3 +101,13 @@
+ }
+ 
++void GLXHelper::freePixmap(uint32_t pixmapId) const
++{
++    xcb_void_cookie_t cookie = xcb_free_pixmap_checked(m_connection, pixmapId);
++    xcb_generic_error_t *error = xcb_request_check(m_connection, cookie);
++    if (error) {
++        qWarning("GLX: XCB_FREE_PIXMAP failed with error code: 0x%x", error->error_code);
++        free(error);
++    }
++}
++
+ QT_END_NAMESPACE
+--- a/src/core/ozone/glx_helper.h
++++ b/src/core/ozone/glx_helper.h
+@@ -34,4 +34,5 @@
+     GLXPixmap importBufferAsPixmap(int dmaBufFd, uint32_t size, uint16_t width, uint16_t height,
+                                    uint16_t stride) const;
++    void freePixmap(uint32_t pixmapId) const;
+     bool isDmaBufSupported() const { return m_isDmaBufSupported; }
+ 

diff --git a/dev-qt/qtwebengine/qtwebengine-6.9.0.ebuild b/dev-qt/qtwebengine/qtwebengine-6.9.0.ebuild
new file mode 100644
index 000000000000..b71ffaf8fb34
--- /dev/null
+++ b/dev-qt/qtwebengine/qtwebengine-6.9.0.ebuild
@@ -0,0 +1,339 @@
+# Copyright 2021-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..13} )
+PYTHON_REQ_USE="xml(+)"
+inherit check-reqs flag-o-matic multiprocessing optfeature
+inherit prefix python-any-r1 qt6-build toolchain-funcs
+
+DESCRIPTION="Library for rendering dynamic web content in Qt6 C++ and QML applications"
+SRC_URI+="
+	https://dev.gentoo.org/~ionen/distfiles/${PN}-6.9-patchset-3.tar.xz
+"
+
+if [[ ${QT6_BUILD_TYPE} == release ]]; then
+	KEYWORDS="~amd64 ~arm64"
+fi
+
+IUSE="
+	accessibility +alsa bindist custom-cflags designer geolocation
+	+jumbo-build kerberos opengl +pdfium pulseaudio qml screencast
+	+system-icu vaapi vulkan webdriver +widgets
+"
+REQUIRED_USE="
+	designer? ( qml widgets )
+	test? ( widgets )
+"
+
+# dlopen: krb5, libva, pciutils
+# gcc: for -latomic
+RDEPEND="
+	app-arch/snappy:=
+	dev-libs/expat
+	dev-libs/libevent:=
+	dev-libs/libxml2:=[icu]
+	dev-libs/libxslt
+	dev-libs/nspr
+	dev-libs/nss
+	~dev-qt/qtbase-${PV}:6[accessibility=,gui,opengl=,vulkan?,widgets?]
+	~dev-qt/qtdeclarative-${PV}:6[widgets?]
+	~dev-qt/qtwebchannel-${PV}:6[qml?]
+	media-libs/fontconfig
+	media-libs/freetype
+	media-libs/harfbuzz:=
+	media-libs/lcms:2
+	media-libs/libjpeg-turbo:=
+	media-libs/libpng:=
+	media-libs/libwebp:=
+	media-libs/mesa[gbm(+)]
+	media-libs/openjpeg:2=
+	media-libs/opus
+	media-libs/tiff:=
+	sys-apps/dbus
+	sys-apps/pciutils
+	sys-devel/gcc:*
+	sys-libs/zlib:=[minizip]
+	virtual/libudev:=
+	x11-libs/libX11
+	x11-libs/libXcomposite
+	x11-libs/libXdamage
+	x11-libs/libXext
+	x11-libs/libXfixes
+	x11-libs/libXrandr
+	x11-libs/libXtst
+	x11-libs/libdrm
+	x11-libs/libxcb:=
+	x11-libs/libxkbcommon
+	x11-libs/libxkbfile
+	alsa? ( media-libs/alsa-lib )
+	designer? ( ~dev-qt/qttools-${PV}:6[designer] )
+	geolocation? ( ~dev-qt/qtpositioning-${PV}:6 )
+	kerberos? ( virtual/krb5 )
+	opengl? ( media-libs/libglvnd[X] )
+	pulseaudio? ( media-libs/libpulse[glib] )
+	screencast? (
+		dev-libs/glib:2
+		media-video/pipewire:=
+	)
+	system-icu? ( dev-libs/icu:= )
+	vaapi? ( media-libs/libva:=[X] )
+"
+DEPEND="
+	${RDEPEND}
+	media-libs/libglvnd
+	x11-base/xorg-proto
+	x11-libs/libXcursor
+	x11-libs/libXi
+	x11-libs/libxshmfence
+	screencast? ( media-libs/libepoxy[egl(+)] )
+	vaapi? (
+		vulkan? ( dev-util/vulkan-headers )
+	)
+"
+BDEPEND="
+	$(python_gen_any_dep 'dev-python/html5lib[${PYTHON_USEDEP}]')
+	dev-util/gperf
+	net-libs/nodejs[icu,ssl]
+	sys-devel/bison
+	sys-devel/flex
+"
+
+PATCHES=( "${WORKDIR}"/patches/${PN} )
+[[ ${PV} == 6.9999 ]] || # too fragile for 6.9999, but keep for 6.x.9999
+	PATCHES+=( "${WORKDIR}"/patches/chromium )
+
+PATCHES+=(
+	# add extras as needed here, may merge in set if carries across versions
+	"${FILESDIR}"/${PN}-6.8.2-glibc2.41.patch
+	"${FILESDIR}"/${PN}-6.8.3-pipewire1.4.patch
+	"${FILESDIR}"/${PN}-6.9.0-x11-pixmap-leak.patch
+)
+
+python_check_deps() {
+	python_has_version "dev-python/html5lib[${PYTHON_USEDEP}]"
+}
+
+qtwebengine_check-reqs() {
+	[[ ${MERGE_TYPE} == binary ]] && return
+
+	if is-flagq '-g?(gdb)?([1-9])'; then #307861
+		ewarn
+		ewarn "Used CFLAGS/CXXFLAGS seem to enable debug info (-g or -ggdb), which"
+		ewarn "is non-trivial with ${PN}. May experience extended compilation"
+		ewarn "times, increased disk/memory usage, and potentially link failure."
+		ewarn
+		ewarn "If run into issues, please try disabling before reporting a bug."
+	fi
+
+	local CHECKREQS_DISK_BUILD=10G
+	local CHECKREQS_DISK_USR=400M
+
+	if ! has distcc ${FEATURES}; then #830661
+		# assume ~2GB per job or 1.5GB if clang, possible with less
+		# depending on free memory and *FLAGS, but prefer being safe as
+		# users having OOM issues with qtwebengine been rather common
+		tc-is-clang && : 15 || : 20
+		local CHECKREQS_MEMORY=$(($(makeopts_jobs)*_/10))G
+	fi
+
+	check-reqs_${EBUILD_PHASE_FUNC} #570534
+}
+
+pkg_pretend() {
+	qtwebengine_check-reqs
+}
+
+pkg_setup() {
+	qtwebengine_check-reqs
+	python-any-r1_pkg_setup
+}
+
+src_prepare() {
+	qt6-build_src_prepare
+
+	# for www-plugins/chrome-binary-plugins (widevine) search paths on prefix
+	hprefixify -w /Gentoo/ src/core/content_client_qt.cpp
+
+	# store chromium versions, only used in postinst for a warning
+	local chromium
+	mapfile -t chromium < CHROMIUM_VERSION || die
+	[[ ${chromium[1]} =~ ^Based.*:[^0-9]+([0-9.]+$) ]] &&
+		QT6_CHROMIUM_VER=${BASH_REMATCH[1]} || die
+	[[ ${chromium[2]} =~ ^Patched.+:[^0-9]+([0-9.]+$) ]] &&
+		QT6_CHROMIUM_PATCHES_VER=${BASH_REMATCH[1]} || die
+}
+
+src_configure() {
+	local mycmakeargs=(
+		$(qt_feature pdfium qtpdf_build)
+		$(use pdfium && qt_feature qml qtpdf_quick_build)
+		$(use pdfium && qt_feature widgets qtpdf_widgets_build)
+		$(usev pdfium -DQT_FEATURE_pdf_v8=ON)
+
+		# TODO?: since 6.9.0, dependency checks have been adjusted to make it
+		# easier for webengine to be optional which could be useful if *only*
+		# need QtPdf (rare at the moment), would require all revdeps to depend
+		# on qtwebengine[webengine(+)]
+		-DQT_FEATURE_qtwebengine_build=ON
+		$(qt_feature qml qtwebengine_quick_build)
+		$(qt_feature webdriver webenginedriver)
+		$(qt_feature widgets qtwebengine_widgets_build)
+
+		$(cmake_use_find_package designer Qt6Designer)
+
+		$(qt_feature alsa webengine_system_alsa)
+		$(qt_feature !bindist webengine_proprietary_codecs)
+		$(qt_feature geolocation webengine_geolocation)
+		$(qt_feature jumbo-build webengine_jumbo_build)
+		$(qt_feature kerberos webengine_kerberos)
+		$(qt_feature pulseaudio webengine_system_pulseaudio)
+		$(qt_feature screencast webengine_webrtc_pipewire)
+		$(qt_feature system-icu webengine_system_icu)
+		$(qt_feature vaapi webengine_vaapi)
+		$(qt_feature vulkan webengine_vulkan)
+		-DQT_FEATURE_webengine_embedded_build=OFF
+		-DQT_FEATURE_webengine_extensions=ON
+		# TODO: it may be possible to make x11 optional since 6.8+
+		-DQT_FEATURE_webengine_ozone_x11=ON
+		-DQT_FEATURE_webengine_pepper_plugins=ON
+		-DQT_FEATURE_webengine_printing_and_pdf=ON
+		-DQT_FEATURE_webengine_spellchecker=ON
+		-DQT_FEATURE_webengine_webchannel=ON
+		-DQT_FEATURE_webengine_webrtc=ON
+
+		# needs a modified ffmpeg to be usable (bug #831487), and even then
+		# it is picky about codecs/version and system's can lead to unexpected
+		# issues (e.g. builds but some files don't play even with support)
+		-DQT_FEATURE_webengine_system_ffmpeg=OFF
+
+		# use bundled re2 to avoid complications, Qt has also disabled
+		# this by default in 6.7.3+ (bug #913923)
+		-DQT_FEATURE_webengine_system_re2=OFF
+
+		# system_libvpx=ON is intentionally ignored with USE=vaapi which leads
+		# to using system's being less tested, prefer disabling for now until
+		# vaapi can use it as well
+		-DQT_FEATURE_webengine_system_libvpx=OFF
+
+		# not necessary to pass these (default), but in case detection fails
+		# given qtbase's force_system_libs does not affect these right now
+		$(printf -- '-DQT_FEATURE_webengine_system_%s=ON ' \
+			freetype gbm glib harfbuzz lcms2 libevent libjpeg \
+			libopenjpeg2 libpci libpng libtiff libudev libwebp \
+			libxml minizip opus snappy zlib)
+
+		# TODO: fixup gn cross, or package dev-qt/qtwebengine-gn with =ON
+		# (see also BUILD_ONLY_GN option added in 6.8+ for the latter)
+		-DINSTALL_GN=OFF
+	)
+
+	local mygnargs=(
+		# prefer no dlopen where possible
+		$(usev pulseaudio link_pulseaudio=true)
+		$(usev screencast rtc_link_pipewire=true)
+		# reduce default disk space usage
+		symbol_level=0
+	)
+
+	if use !custom-cflags; then
+		# qtwebengine can be rather fragile with *FLAGS
+		filter-lto
+		strip-flags
+
+		if is-flagq '-g?(gdb)?([2-9])'; then #914475
+			replace-flags '-g?(gdb)?([2-9])' -g1
+			ewarn "-g2+/-ggdb* *FLAGS replaced with -g1 (enable USE=custom-cflags to keep)"
+		fi
+
+		# Built helpers segfault when using (at least) -march=armv8-a+pauth
+		# (bug #920555, #920568 -- suspected gcc bug). For now, filter all
+		# for simplicity. Override with USE=custom-cflags if wanted, please
+		# report if above -march works again so can cleanup.
+		use arm64 && tc-is-gcc && filter-flags '-march=*' '-mcpu=*'
+	fi
+
+	export NINJAFLAGS=$(get_NINJAOPTS)
+	[[ ${NINJA_VERBOSE^^} == OFF ]] || NINJAFLAGS+=" -v"
+
+	local -x EXTRA_GN="${mygnargs[*]} ${EXTRA_GN}"
+	einfo "Extra Gn args: ${EXTRA_GN}"
+
+	qt6-build_src_configure
+}
+
+src_compile() {
+	# tentatively work around a possible (rare) race condition (bug #921680),
+	# has good chances to be obsolete but keep for now as a safety
+	cmake_build WebEngineCore_sync_all_public_headers
+
+	cmake_src_compile
+}
+
+src_test() {
+	if [[ ${EUID} == 0 ]]; then
+		# almost every tests fail, so skip entirely
+		ewarn "Skipping tests due to running as root (chromium refuses this configuration)."
+		return
+	fi
+
+	local CMAKE_SKIP_TESTS=(
+		# fails with network sandbox
+		tst_certificateerror
+		tst_loadsignals
+		tst_qquickwebengineview
+		tst_qwebengineglobalsettings
+		tst_qwebengineview
+		# fails with offscreen rendering, may be worth retrying if the issue
+		# persist given these are rather major tests (or consider virtx)
+		tst_qmltests
+		tst_qwebenginepage
+		# certs verfication seems flaky and gives expiration warnings
+		tst_qwebengineclientcertificatestore
+		# test is misperformed when qtbase is built USE=-test?
+		tst_touchinput
+		# currently requires webenginedriver to be already installed
+		tst_webenginedriver
+	)
+
+	# prevent using the system's qtwebengine
+	# (use glob to avoid unnecessary complications with arch dir)
+	local resources=( "${BUILD_DIR}/src/core/${CMAKE_BUILD_TYPE}/"* )
+	[[ -d ${resources[0]} ]] || die "invalid resources path: ${resources[0]}"
+	local -x QTWEBENGINEPROCESS_PATH=${BUILD_DIR}${QT6_LIBEXECDIR#"${QT6_PREFIX}"}/QtWebEngineProcess
+	local -x QTWEBENGINE_LOCALES_PATH=${resources[0]}/qtwebengine_locales
+	local -x QTWEBENGINE_RESOURCES_PATH=${resources[0]}
+
+	# random failures in several tests without -j1
+	qt6-build_src_test -j1
+}
+
+src_install() {
+	qt6-build_src_install
+
+	[[ -e ${D}${QT6_LIBDIR}/libQt6WebEngineCore.so ]] || #601472
+		die "${CATEGORY}/${PF} failed to build anything. Please report to https://bugs.gentoo.org/"
+
+	if use test && use webdriver; then
+		rm -- "${D}${QT6_BINDIR}"/testbrowser || die
+	fi
+}
+
+pkg_postinst() {
+	# plugin may also be found in $HOME if provided by chrome or firefox
+	use amd64 &&
+		optfeature "Widevine DRM support (protected media playback)" \
+			www-plugins/chrome-binary-plugins
+
+	elog
+	elog "This version of Qt WebEngine is based on Chromium version ${QT6_CHROMIUM_VER}, with"
+	elog "additional security fixes up to ${QT6_CHROMIUM_PATCHES_VER}. Extensive as it is, the"
+	elog "list of backports is impossible to evaluate, but always bound to be behind"
+	elog "Chromium's release schedule."
+	elog
+	elog "In addition, various online services may deny service based on an outdated"
+	elog "user agent version (and/or other checks). Google is already known to do so."
+	elog
+	elog "tl;dr your web browsing experience will be compromised."
+}


             reply	other threads:[~2025-04-02  5:09 UTC|newest]

Thread overview: 58+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-04-02  5:09 Ionen Wolkens [this message]
  -- strict thread matches above, loose matches on Subject: below --
2025-04-06 14:48 [gentoo-commits] repo/gentoo:master commit in: dev-qt/qtwebengine/, dev-qt/qtwebengine/files/ Ionen Wolkens
2025-03-30 15:04 Ionen Wolkens
2025-02-26  8:47 Ionen Wolkens
2025-02-13 19:49 Ionen Wolkens
2025-01-06 22:51 Ionen Wolkens
2025-01-04  4:05 Ionen Wolkens
2024-12-28 16:58 Andreas Sturmlechner
2024-12-03 17:15 Ionen Wolkens
2024-11-23  8:44 Andreas Sturmlechner
2024-10-21 12:31 Sam James
2024-08-14 15:37 Ionen Wolkens
2024-07-28  4:30 Sam James
2024-07-03  0:39 Ionen Wolkens
2024-06-08 13:41 Ionen Wolkens
2024-05-30 12:52 Andreas Sturmlechner
2024-04-19  7:55 Ionen Wolkens
2024-04-17  0:15 Ionen Wolkens
2024-04-03  3:57 Ionen Wolkens
2024-03-22 10:29 Ionen Wolkens
2024-02-25 18:46 Ionen Wolkens
2024-02-01 23:06 Andreas Sturmlechner
2024-01-16 11:53 Andreas Sturmlechner
2024-01-03 19:10 Ionen Wolkens
2023-12-18 18:43 Ionen Wolkens
2023-11-20 13:44 Ionen Wolkens
2023-10-05 19:39 Ionen Wolkens
2023-09-07 10:03 Ionen Wolkens
2023-05-24 11:15 Andreas Sturmlechner
2023-04-25 15:38 Andreas Sturmlechner
2023-04-17 19:39 Jimi Huotari
2023-04-15  2:10 Sam James
2023-04-09 20:17 Andreas Sturmlechner
2022-09-24 14:32 Andreas Sturmlechner
2022-08-17 21:20 Ionen Wolkens
2022-06-20 18:54 Andreas Sturmlechner
2022-05-20 19:43 Andreas Sturmlechner
2022-05-14 21:24 Sam James
2022-04-17 19:29 Sam James
2022-04-09 16:07 Andreas Sturmlechner
2021-10-17  6:54 Andreas Sturmlechner
2021-09-02 18:38 Andreas Sturmlechner
2021-09-02 18:38 Andreas Sturmlechner
2021-06-14  9:25 Andreas Sturmlechner
2021-05-23 19:19 Andreas Sturmlechner
2021-03-24 12:15 Andreas Sturmlechner
2020-04-26 18:12 Andreas Sturmlechner
2020-03-22 14:40 Andreas Sturmlechner
2020-02-10  6:42 Andreas Sturmlechner
2020-02-08 21:34 Andreas Sturmlechner
2019-10-20 14:21 Andreas Sturmlechner
2019-09-25 21:34 Andreas Sturmlechner
2019-09-01 23:07 Andreas Sturmlechner
2018-11-10 20:27 Andreas Sturmlechner
2018-05-09 20:17 Andreas Sturmlechner
2017-12-05 11:21 Michael Palimaka
2017-06-04 13:19 Michael Palimaka
2016-12-06  6:54 Michael Palimaka

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=1743569546.9fd435f3de4c68f9a3c762d4a30083c61befb077.ionen@gentoo \
    --to=ionen@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