public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Steve Arnold" <nerdboy@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: eclass/
Date: Sat,  4 Jun 2016 04:05:34 +0000 (UTC)	[thread overview]
Message-ID: <1465013081.b646a6bbe391980e38b851699291bb6c224bc3c5.nerdboy@gentoo> (raw)

commit:     b646a6bbe391980e38b851699291bb6c224bc3c5
Author:     Stephen L Arnold <nerdboy <AT> gentoo <DOT> org>
AuthorDate: Sat Jun  4 02:44:44 2016 +0000
Commit:     Steve Arnold <nerdboy <AT> gentoo <DOT> org>
CommitDate: Sat Jun  4 04:04:41 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b646a6bb

gnatbuild-r1.eclass: version bump to r1

New version for updated gnat-gcc-4.9 and future releases.  Supports new
bootstrap compilers, upstream config. Other arches in progress.

 eclass/gnatbuild-r1.eclass | 1104 ++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 1104 insertions(+)

diff --git a/eclass/gnatbuild-r1.eclass b/eclass/gnatbuild-r1.eclass
new file mode 100644
index 0000000..0a53043
--- /dev/null
+++ b/eclass/gnatbuild-r1.eclass
@@ -0,0 +1,1104 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+#
+# Author: George Shapovalov <george@gentoo.org>
+# Author: Steve Arnold <nerdboy@gentoo.org>
+# Belongs to: ada project <ada@gentoo.org>
+#
+# Notes:
+#  HOMEPAGE and LICENSE are set in appropriate ebuild, as
+#  gnat is developed by FSF and AdaCore "in parallel"
+#
+# The following vars can be set in ebuild before inheriting this eclass. They
+# will be respected:
+#  SLOT
+#  BOOT_SLOT - where old bootstrap is used as it works fine for 4.4 - 4.6
+
+#WANT_AUTOMAKE="1.8"
+#WANT_AUTOCONF="2.1"
+
+inherit eutils fixheadtails flag-o-matic gnuconfig libtool multilib pax-utils toolchain-funcs versionator
+
+FEATURES=${FEATURES/multilib-strict/}
+
+EXPORTED_FUNCTIONS="pkg_setup pkg_postinst pkg_postrm src_unpack src_configure src_compile src_install"
+
+EXPORT_FUNCTIONS ${EXPORTED_FUNCTIONS}
+
+IUSE="nls openmp hardened multilib"
+# multilib is supported via profiles now, multilib usevar is deprecated
+
+RDEPEND="virtual/libiconv
+	nls? ( virtual/libintl )"
+
+DEPEND="${RDEPEND}
+	>=app-eselect/eselect-gnat-1.5
+	>=sys-libs/glibc-2.12
+	>=sys-devel/binutils-2.23
+	sys-devel/bc
+	>=sys-devel/bison-1.875
+	>=sys-devel/flex-2.5.4
+	nls? ( sys-devel/gettext )"
+
+# Note!
+# It may not be safe to source this at top level. Only source inside local
+# functions!
+GnatCommon="/usr/share/gnat/lib/gnat-common.bash"
+
+#---->> globals and SLOT <<----
+
+# just a check, this location seems to vary too much, easier to track it in
+# ebuild
+#[ -z "${GNATSOURCE}" ] && die "please set GNATSOURCE in ebuild! (before inherit)"
+
+# versioning
+# because of gnatpro/gnatgpl we need to track both gcc and gnat versions
+
+# these simply default to $PV
+GNATMAJOR=$(get_version_component_range 1)
+GNATMINOR=$(get_version_component_range 2)
+GNATBRANCH=$(get_version_component_range 1-2)
+GNATRELEASE=$(get_version_component_range 1-3)
+# this one is for the gnat-gpl which is versioned by gcc backend and ACT version
+# number added on top
+ACT_Ver=$(get_version_component_range 4)
+
+# GCCVER and SLOT logic
+#
+# I better define vars for package names, as there was discussion on proper
+# naming and it may change
+PN_GnatGCC="gnat-gcc"
+PN_GnatGpl="gnat-gpl"
+
+# ATTN! GCCVER stands for the provided backend gcc, not the one on the system
+# so tc-* functions are of no use here. The present versioning scheme makes
+# GCCVER basically a part of PV, but *this may change*!!
+#
+# GCCVER can be set in the ebuild.
+[[ -z ${GCCVER} ]] && GCCVER="${GNATRELEASE}"
+
+
+# finally extract GCC version strings
+GCCMAJOR=$(get_version_component_range 1 "${GCCVER}")
+GCCMINOR=$(get_version_component_range 2 "${GCCVER}")
+GCCBRANCH=$(get_version_component_range 1-2 "${GCCVER}")
+GCCRELEASE=$(get_version_component_range 1-3 "${GCCVER}")
+
+# SLOT logic, make it represent gcc backend, as this is what matters most
+# There are some special cases, so we allow it to be defined in the ebuild
+# ATTN!! If you set SLOT in the ebuild, don't forget to make sure that
+# BOOT_SLOT is also set properly!
+[[ -z ${SLOT} ]] && SLOT="${GCCBRANCH}"
+
+# possible future crosscompilation support
+export CTARGET=${CTARGET:-${CHOST}}
+
+is_crosscompile() {
+	[[ ${CHOST} != ${CTARGET} ]]
+}
+
+# Bootstrap CTARGET and SLOT logic. For now BOOT_TARGET=CHOST is "guaranteed" by
+# profiles, so mostly watch out for the right SLOT used in the bootstrap.
+# As above, with SLOT, it may need to be defined in the ebuild
+BOOT_TARGET=${CTARGET}
+[[ -z ${BOOT_SLOT} ]] && BOOT_SLOT=${SLOT}
+
+# for newer bootstrap starting with 4.9 (still experimental)
+BOOT_VER=${GCCRELEASE}
+
+# set our install locations
+PREFIX=${GNATBUILD_PREFIX:-/usr} # not sure we need this hook, but may be..
+LIBPATH=${PREFIX}/$(get_libdir)/${PN}/${CTARGET}/${SLOT}
+LIBEXECPATH=${PREFIX}/libexec/${PN}/${CTARGET}/${SLOT}
+INCLUDEPATH=${LIBPATH}/include
+BINPATH=${PREFIX}/${CTARGET}/${PN}-bin/${SLOT}
+DATAPATH=${PREFIX}/share/${PN}-data/${CTARGET}/${SLOT}
+# ATTN! the one below should match the path defined in eselect-gnat module
+CONFIG_PATH="/usr/share/gnat/eselect"
+gnat_profile="${CTARGET}-${PN}-${SLOT}"
+gnat_config_file="${CONFIG_PATH}/${gnat_profile}"
+
+# ebuild globals
+if [[ ${PN} == "${PN_GnatPro}" ]] && [[ ${GNATMAJOR} == "3" ]]; then
+		DEPEND="x86? ( >=app-shells/tcsh-6.0 )"
+fi
+S="${WORKDIR}/gcc-${GCCVER}"
+
+# bootstrap globals, common to src_unpack and src_compile
+GNATBOOT="${WORKDIR}/usr"
+GNATBUILD="${WORKDIR}/build"
+#GNATBUILD="${BUILD_DIR}"
+
+# necessary for detecting lib locations and creating env.d entry
+#XGCC="${GNATBUILD}/gcc/xgcc -B${GNATBUILD}/gcc"
+
+#----<< globals and SLOT >>----
+
+# set SRC_URI's in ebuilds for now
+
+#----<< global toolchain vars >>----
+
+: ${TARGET_ABI:=${ABI}}
+: ${TARGET_MULTILIB_ABIS:=${MULTILIB_ABIS}}
+: ${TARGET_DEFAULT_ABI:=${DEFAULT_ABI}}
+
+
+#---->> specs + env.d logic <<----
+# TODO!!!
+# set MANPATH, etc..
+#----<< specs + env.d logic >>----
+
+
+#---->> some helper functions <<----
+tc_version_is_at_least() {
+	version_is_at_least "$1" "${2:-${GCCBRANCH}}"
+}
+
+guess_patch_type_in_dir() {
+	[[ -n $(ls "$1"/*.bz2 2>/dev/null) ]] \
+		&& EPATCH_SUFFIX="patch.bz2" \
+		|| EPATCH_SUFFIX="patch"
+}
+
+# configure to build with the hardened GCC specs as the default
+make_gcc_hard() {
+	# we want to be able to control the pie patch logic via something other
+	# than ALL_CFLAGS...
+	sed -e '/^ALL_CFLAGS/iHARD_CFLAGS = ' \
+		-e 's|^ALL_CFLAGS = |ALL_CFLAGS = $(HARD_CFLAGS) |' \
+		-i "${S}"/gcc/Makefile.in
+	# Need to add HARD_CFLAGS to ALL_CXXFLAGS on >= 4.7
+	if tc_version_is_at_least 4.7 ; then
+		sed -e '/^ALL_CXXFLAGS/iHARD_CFLAGS = ' \
+                        -e 's|^ALL_CXXFLAGS = |ALL_CXXFLAGS = $(HARD_CFLAGS) |' \
+                        -i "${S}"/gcc/Makefile.in
+	fi
+
+	# defaults to enable for new gnatbuild
+	if use hardened ; then
+		gcc_hard_flags=" -DEFAULT_PIE_SSP"
+	else
+		gcc_hard_flags+=" -DEFAULT_SSP"
+	fi
+
+	sed -i \
+		-e "/^HARD_CFLAGS = /s|=|= ${gcc_hard_flags} |" \
+		"${S}"/gcc/Makefile.in || die
+
+}
+
+gcc-multilib-configure() {
+	if ! is_multilib ; then
+		confgcc="${confgcc} --disable-multilib"
+		# Fun times: if we are building for a target that has multiple
+		# possible ABI formats, and the user has told us to pick one
+		# that isn't the default, then not specifying it via the list
+		# below will break that on us.
+	else
+		confgcc="${confgcc} --enable-multilib"
+	fi
+
+	# translate our notion of multilibs into gcc's
+	local abi list
+	for abi in $(get_all_abis TARGET) ; do
+		local l=$(gcc-abi-map ${abi})
+		[[ -n ${l} ]] && list+=",${l}"
+	done
+	if [[ -n ${list} ]] ; then
+		case ${CTARGET} in
+		x86_64*)
+			tc_version_is_at_least 4.8 && confgcc="${confgcc} --with-multilib-list=${list:1}"
+			;;
+		esac
+	fi
+}
+
+gcc-abi-map() {
+	# Convert the ABI name we use in Gentoo to what gcc uses
+	local map=()
+	case ${CTARGET} in
+		mips*)   map=("o32 32" "n32 n32" "n64 64") ;;
+		x86_64*) map=("amd64 m64" "x86 m32" "x32 mx32") ;;
+	esac
+
+	local m
+	for m in "${map[@]}" ; do
+		l=( ${m} )
+	[[ $1 == ${l[0]} ]] && echo ${l[1]} && break
+	done
+}
+
+is_multilib() {
+	tc_version_is_at_least 3 || return 1
+	use multilib
+}
+
+## note: replaced with minspecs (sort of)
+#create_specs_file() {
+#	einfo "Creating a vanilla gcc specs file"
+#	"${WORKDIR}"/build/gcc/xgcc -dumpspecs > "${WORKDIR}"/build/vanilla.specs
+#}
+
+# eselect stuff taken straight from toolchain.eclass and greatly simplified
+add_profile_eselect_conf() {
+	local gnat_config_file=$1
+	local abi=$2
+	local var
+
+	echo >> "${D}/${gnat_config_file}"
+	if ! is_multilib ; then
+		echo "  ctarget=${CTARGET}" >> "${D}/${gnat_config_file}"
+	else
+		echo "[${abi}]" >> "${D}/${gnat_config_file}"
+		var="CTARGET_${abi}"
+		if [[ -n ${!var} ]] ; then
+			echo "  ctarget=${!var}" >> "${D}/${gnat_config_file}"
+		else
+			var="CHOST_${abi}"
+			if [[ -n ${!var} ]] ; then
+				echo "  ctarget=${!var}" >> "${D}/${gnat_config_file}"
+			else
+				echo "  ctarget=${CTARGET}" >> "${D}/${gnat_config_file}"
+			fi
+		fi
+	fi
+
+	var="CFLAGS_${abi}"
+	if [[ -n ${!var} ]] ; then
+		echo "  cflags=${!var}" >> "${D}/${gnat_config_file}"
+	fi
+}
+
+create_eselect_conf() {
+	local abi
+
+	dodir ${CONFIG_PATH}
+
+	echo "[global]" > "${D}/${gnat_config_file}"
+	echo "  version=${CTARGET}-${SLOT}" >> "${D}/${gnat_config_file}"
+	echo "  binpath=${BINPATH}" >> "${D}/${gnat_config_file}"
+	echo "  libexecpath=${LIBEXECPATH}" >> "${D}/${gnat_config_file}"
+	echo "  ldpath=${LIBPATH}" >> "${D}/${gnat_config_file}"
+	echo "  manpath=${DATAPATH}/man" >> "${D}/${gnat_config_file}"
+	echo "  infopath=${DATAPATH}/info" >> "${D}/${gnat_config_file}"
+	echo "  bin_prefix=${CTARGET}" >> "${D}/${gnat_config_file}"
+
+	for abi in $(get_all_abis) ; do
+		add_profile_eselect_conf "${gnat_config_file}" "${abi}"
+	done
+}
+
+should_we_eselect_gnat() {
+	# we only want to switch compilers if installing to / or /tmp/stage1root
+	[[ ${ROOT} == "/" ]] || return 1
+
+	# if the current config is invalid, we definitely want a new one
+	# Note: due to bash quirkiness, the following must not be 1 line
+	local curr_config
+	curr_config=$(eselect --colour=no gnat show | grep ${CTARGET} | awk '{ print $1 }') || return 0
+	[[ -z ${curr_config} ]] && return 0
+
+	# The logic is basically "try to keep the same profile if possible"
+
+	if [[ ${curr_config} == ${CTARGET}-${PN}-${SLOT} ]] ; then
+		return 0
+	else
+		elog "The current gcc config appears valid, so it will not be"
+		elog "automatically switched for you.  If you would like to"
+		elog "switch to the newly installed gcc version, do the"
+		elog "following:"
+		echo
+		elog "eselect gnat set <profile>"
+		echo
+		ebeep
+		return 1
+	fi
+}
+
+# active compiler selection, called from pkg_postinst
+do_gnat_config() {
+	eselect gnat set ${CTARGET}-${PN}-${SLOT} &> /dev/null
+
+	elog "The following gnat profile has been activated:"
+	elog "${CTARGET}-${PN}-${SLOT}"
+	elog ""
+	elog "The compiler has been installed as gnatgcc, and the coverage testing"
+	elog "tool as gnatgcov."
+	elog ""
+	elog "Ada handling in Gentoo allows you to have multiple gnat variants"
+	elog "installed in parallel and automatically manage Ada libs."
+	elog "Please take a look at the Ada project page for some documentation:"
+	elog "http://www.gentoo.org/proj/en/prog_lang/ada/index.xml"
+}
+
+
+# Taken straight from the toolchain.eclass. Only removed the "obsolete hunk"
+#
+# The purpose of this DISGUSTING gcc multilib hack is to allow 64bit libs
+# to live in lib instead of lib64 where they belong, with 32bit libraries
+# in lib32. This hack has been around since the beginning of the amd64 port,
+# and we're only now starting to fix everything that's broken. Eventually
+# this should go away.
+#
+# Travis Tilley <lv@gentoo.org> (03 Sep 2004)
+#
+disgusting_gcc_multilib_HACK() {
+	local config
+	local libdirs
+	if has_multilib_profile ; then
+		case $(tc-arch) in
+			amd64)
+				config="i386/t-linux64"
+				libdirs="../$(get_abi_LIBDIR amd64) ../$(get_abi_LIBDIR x86)" \
+			;;
+			ppc64)
+				config="rs6000/t-linux64"
+				libdirs="../$(get_abi_LIBDIR ppc64) ../$(get_abi_LIBDIR ppc)" \
+			;;
+		esac
+	else
+		die "Your profile is no longer supported by portage."
+	fi
+
+	einfo "updating multilib directories to be: ${libdirs}"
+	sed -i -e "s:^MULTILIB_OSDIRNAMES.*:MULTILIB_OSDIRNAMES = ${libdirs}:" "${S}"/gcc/config/${config}
+}
+
+
+#---->> pkg_* <<----
+gnatbuild-r1_pkg_setup() {
+	debug-print-function ${FUNCNAME} $@
+
+	# Setup variables which would normally be in the profile
+	if is_crosscompile ; then
+		multilib_env ${CTARGET}
+	fi
+
+	# we dont want to use the installed compiler's specs to build gnat!
+	unset GCC_SPECS
+	unset LANGUAGES #265283
+}
+
+gnatbuild-r1_pkg_postinst() {
+	if should_we_eselect_gnat; then
+		do_gnat_config
+	else
+		eselect gnat update
+	fi
+
+	# if primary compiler list is empty, add this profile to the list, so
+	# that users are not left without active compilers (making sure that
+	# libs are getting built for at least one)
+	elog
+	. ${GnatCommon} || die "failed to source common code"
+	if [[ ! -f ${PRIMELIST} ]] || [[ ! -s ${PRIMELIST} ]]; then
+		echo "${gnat_profile}" > ${PRIMELIST}
+		elog "The list of primary compilers was empty and got assigned ${gnat_profile}."
+	fi
+	elog "Please edit ${PRIMELIST} and list there gnat profiles intended"
+	elog "for common use."
+}
+
+
+gnatbuild-r1_pkg_postrm() {
+	# "eselect gnat update" now removes the env.d file if the corresponding
+	# gnat profile was unmerged
+	eselect gnat update
+	elog "If you just unmerged the last gnat in this SLOT, your active gnat"
+	elog "profile got unset. Please check what eselect gnat show tells you"
+	elog "and set the desired profile"
+}
+#---->> pkg_* <<----
+
+#---->> src_* <<----
+
+# common unpack stuff
+gnatbuild-r1_src_unpack() {
+	debug-print-function ${FUNCNAME} $@
+
+	[ -z "$1" ] &&  gnatbuild-r1_src_unpack all
+
+	while [ "$1" ]; do
+	case $1 in
+		base_unpack)
+			unpack ${A}
+			pax-mark E $(find ${GNATBOOT} -name gnat1)
+
+			cd "${S}"
+			# patching gcc sources, following the toolchain
+			# first, the common patches
+			guess_patch_type_in_dir "${WORKDIR}"/patch
+			EPATCH_MULTI_MSG="Applying common Gentoo patches ..." \
+				epatch "${WORKDIR}"/patch
+			guess_patch_type_in_dir "${WORKDIR}"/piepatch
+			EPATCH_MULTI_MSG="Applying Gentoo PIE patches ..." \
+				epatch "${WORKDIR}"/piepatch
+
+			if [[ -d "${FILESDIR}"/patches ]] && [[ ! -z $(ls "${FILESDIR}"/patches/*.patch 2>/dev/null) ]] ; then
+				EPATCH_MULTI_MSG="Applying local Gentoo patches ..." \
+				epatch "${FILESDIR}"/patches/*.patch
+			fi
+			#
+			# then per SLOT
+			if [[ -d "${FILESDIR}"/patches/${SLOT} ]] && [[ ! -z $(ls "${FILESDIR}"/patches/${SLOT}/*.patch 2>/dev/null) ]] ; then
+				EPATCH_MULTI_MSG="Applying SLOT-specific Gentoo patches ..." \
+				epatch "${FILESDIR}"/patches/${SLOT}/*.patch
+			fi
+
+			# add hardening as per toolchain eclass
+			make_gcc_hard
+
+			# Replacing obsolete head/tail with POSIX compliant ones
+			ht_fix_file */configure
+
+#			if ! is_crosscompile && is_multilib && \
+#				[[ ( $(tc-arch) == "amd64" || $(tc-arch) == "ppc64" ) && -z ${SKIP_MULTILIB_HACK} ]] ; then
+#					disgusting_gcc_multilib_HACK || die "multilib hack failed"
+#			fi
+
+			# Fixup libtool to correctly generate .la files with portage
+			cd "${S}"
+			elibtoolize --portage --shallow --no-uclibc
+
+			gnuconfig_update
+			# update configure files
+			einfo "Fixing misc issues in configure files"
+			for f in $(grep -l 'autoconf version 2.13' $(find "${S}" -name configure)) ; do
+				ebegin "  Updating ${f}"
+				patch "${f}" "${FILESDIR}"/gcc-configure-LANG.patch >& "${T}"/configure-patch.log \
+					|| eerror "Please file a bug about this"
+				eend $?
+			done
+
+			# apply global slot/path patch
+			EPATCH_MULTI_MSG="Adjusting default paths for gnat-gcc ..." \
+			epatch "${FILESDIR}"/${PN}-4.9.3-make-default-paths-match-slot.patch
+			sed -i -e "s|SLOT_MARKER|${BOOT_SLOT}|" "${S}"/gcc/Makefile.in
+
+			[[ ${CHOST} == ${CTARGET} ]] && epatch "${FILESDIR}"/gcc-spec-env-r1.patch
+
+#			this is only needed for gnat-gpl-4.1 and breaks for gnat-gcc, so
+#			this block was moved to corresponding ebuild
+#			pushd "${S}"/gnattools &> /dev/null
+#				eautoconf
+#			popd &> /dev/null
+		;;
+
+		common_prep)
+			# Prepare the gcc source directory
+			cd "${S}/gcc"
+			touch cstamp-h.in
+			touch ada/[es]info.h
+			touch ada/nmake.ad[bs]
+			# set the compiler name to gnatgcc
+			for i in `find ada/ -name '*.ad[sb]'`; do \
+				sed -i -e "s/\"gcc\"/\"gnatgcc\"/g" ${i}; \
+			done
+			# add -fPIC flag to shared libs for 3.4* backend
+			if [ "3.4" == "${GCCBRANCH}" ] ; then
+				cd ada
+				epatch "${FILESDIR}"/gnat-Make-lang.in.patch
+			fi
+
+			# gcc 4.3 sources seem to have a common omission of $(DESTDIR),
+			# that leads to make install trying to rm -f file on live system.
+			# As we do not need this rm, we simply remove the whole line
+			if [ "4.3" == "${GCCBRANCH}" ] ; then
+				sed -i -e "/\$(RM) \$(bindir)/d" "${S}"/gcc/ada/Make-lang.in
+			fi
+
+			find "${S}" -name Makefile.in \
+				-exec sed -i '/^pkgconfigdir/s:=.*:=$(toolexeclibdir)/pkgconfig:' {} +
+
+			mkdir -p "${GNATBUILD}"
+		;;
+
+		all)
+			gnatbuild-r1_src_unpack base_unpack common_prep
+		;;
+	esac
+	shift
+	done
+}
+
+# for now just dont run default configure
+gnatbuild-r1_src_configure() {
+	:
+}
+
+# it would be nice to split configure and make steps
+# but both need to operate inside specially tuned evironment
+# so just do sections for now (as in eclass section of handbook)
+# sections are: configure, make-tools, bootstrap,
+#  gnatlib_and_tools, gnatlib-shared
+gnatbuild-r1_src_compile() {
+	debug-print-function ${FUNCNAME} $@
+
+	if [[ -z "$1" ]]; then
+		gnatbuild-r1_src_compile all
+		return $?
+	fi
+
+	if [[ "all" == "$1" ]]
+	then # specialcasing "all" to avoid scanning sources unnecessarily
+		gnatbuild-r1_src_compile configure make-tools \
+			bootstrap gnatlib_and_tools gnatlib-shared
+
+	else
+		# Set some paths to our bootstrap compiler.
+		export PATH="${GNATBOOT}/bin:${PATH}"
+		# !ATTN! the bootstrap compilers have a very simplystic structure,
+		# so many paths are not identical to the installed ones.
+		# Plus it was simplified even more in new releases.
+		if [[ ${BOOT_SLOT} > 4.1 ]] ; then
+			case $(tc-arch) in
+				arm)
+					GNATLIB="${GNATBOOT}/lib/gcc/${BOOT_TARGET}/${BOOT_SLOT}"
+					;;
+				x86|amd64)
+					GNATLIB="${GNATBOOT}/lib/gcc/${BOOT_TARGET}/${BOOT_VER}"
+					;;
+				*)
+					GNATLIB="${GNATBOOT}/lib"
+					;;
+			esac
+		else
+			GNATLIB="${GNATBOOT}/lib/gnatgcc/${BOOT_TARGET}/${BOOT_SLOT}"
+		fi
+
+		export CC="${GNATBOOT}/bin/gnatgcc"
+		export CXX="${GNATBOOT}/bin/gnatg++"
+		export LDFLAGS="${LDFLAGS}"
+		export CFLAGS="${CFLAGS}"
+		export CXXFLAGS="${CFLAGS}"
+		# CPATH is supposed to be applied for any language, thus
+		# superceding either of C/CPLUS/OBJC_INCLUDE_PATHs
+		export CPATH="${GNATLIB}/include"
+		LIB_DIR="${GNATLIB}"
+		LDFLAGS="${LDFLAGS} -L${GNATLIB}"
+
+		# additional vars from gnuada and elsewhere
+		export LIBRARY_PATH="${GNATLIB}"
+
+		STDCXX_INCDIR="${LIBPATH}/include/g++-v${SLOT/\.*/}"
+
+		export ADA_OBJECTS_PATH="${GNATLIB}/adalib"
+		export ADA_INCLUDE_PATH="${GNATLIB}/adainclude"
+
+		while [ "$1" ]; do
+		case $1 in
+			configure)
+				debug-print-section configure
+
+				# Configure gcc
+				local confgcc
+				confgcc="${confgcc} --host=${CHOST}"
+
+				# some cross-compile logic from toolchain
+				if is_crosscompile || tc-is-cross-compiler ; then
+					confgcc="${confgcc} --target=${CTARGET}"
+				fi
+				[[ -n ${CBUILD} ]] && confgcc="${confgcc} --build=${CBUILD}"
+
+				# Native Language Support
+				if use nls ; then
+					confgcc="${confgcc} --enable-nls --without-included-gettext"
+				else
+					confgcc="${confgcc} --disable-nls"
+				fi
+
+				if tc_version_is_at_least 4.6 ; then
+					confgcc="${confgcc} --enable-lto"
+				else
+					confgcc="${confgcc} --disable-lto"
+				fi
+
+				# setup multilib abi stuff
+				gcc-multilib-configure
+
+				use hardened && confgcc="${confgcc} --enable-esp"
+
+				# reasonably sane globals (from toolchain)
+				# also disable mudflap and ssp
+				confgcc="${confgcc} \
+					--enable-languages="c,ada,c++" \
+					--with-gcc \
+					--with-system-zlib \
+					--enable-obsolete \
+					--enable-secureplt \
+					--disable-werror \
+					--enable-checking=release \
+					--enable-libstdcxx-time \
+					--disable-libmudflap \
+					--disable-libssp \
+					--disable-altivec \
+					--disable-fixed-point \
+					--disable-libgcj \
+					--disable-libcilkrts \
+					--disable-libquadmath \
+					--enable-libsanitizer \
+					--enable-targets=all \
+					--with-bugurl=https://bugs.gentoo.org/ \
+					--with-python-dir=${DATAPATH/$PREFIX/}/python"
+
+				if in_iuse openmp ; then
+					# Make sure target has pthreads support. #326757 #335883
+					# There shouldn't be a chicken&egg problem here as openmp won't
+					# build without a C library, and you can't build that w/out
+					# already having a compiler ...
+					if ! is_crosscompile || \
+						$(tc-getCPP ${CTARGET}) -E - <<<"#include <pthread.h>" >& /dev/null
+					then
+						case $(tc-arch) in
+							arm)
+								confgcc="${confgcc} --disable-libgomp"
+								;;
+							*)
+								if use openmp ; then
+									confgcc="${confgcc} --enable-libgomp"
+								else
+									confgcc="${confgcc} --disable-libgomp"
+								fi
+								;;
+						esac
+					else
+						# Force disable as the configure script can be dumb #359855
+						confgcc="${confgcc} --disable-libgomp"
+					fi
+				else
+					# For gcc variants where we don't want openmp (e.g. kgcc)
+					confgcc="${confgcc} --disable-libgomp"
+				fi
+
+				# ACT's gnat-gpl does not like libada for whatever reason..
+				if tc_version_is_at_least 4.2 ; then
+					confgcc="${confgcc} --enable-libada"
+#				else
+#					einfo "ACT's gnat-gpl does not like libada, disabling"
+#					confgcc="${confgcc} --disable-libada"
+				fi
+
+				# set some specifics available in later versions
+				confgcc="${confgcc} --enable-shared"
+				if tc_version_is_at_least 4.7 ; then
+					einfo "setting gnat thread model"
+					confgcc="${confgcc} --enable-threads=posix"
+					confgcc="${confgcc} --enable-shared=boehm-gc,ada,libada"
+				elif tc_version_is_at_least 4.3 ; then
+					confgcc="${confgcc} --enable-threads=gnat"
+					confgcc="${confgcc} --enable-shared=boehm-gc,ada,libada"
+				else
+					confgcc="${confgcc} --enable-threads=posix"
+				fi
+
+				# harfloat vs soft
+				case $(tc-is-softfloat) in
+				yes)    confgcc="${confgcc} --with-float=soft" ;;
+				softfp) confgcc="${confgcc} --with-float=softfp" ;;
+				*)
+					# If they've explicitly opt-ed in, do hardfloat,
+					# otherwise let the gcc default kick in.
+					case ${CTARGET//_/-} in
+					*-hardfloat-*|*eabihf) confgcc="${confgcc} --with-float=hard" ;;
+					esac
+				esac
+
+				# multilib and arch support
+				case $(tc-arch) in
+				arm)
+					local a arm_arch=${CTARGET%%-*}
+					# Remove trailing endian variations first: eb el be bl b l
+					for a in e{b,l} {b,l}e b l ; do
+						if [[ ${arm_arch} == *${a} ]] ; then
+							arm_arch=${arm_arch%${a}}
+							break
+						fi
+					done
+					# Convert armv7{a,r,m} to armv7-{a,r,m}
+					[[ ${arm_arch} == armv7? ]] && arm_arch=${arm_arch/7/7-}
+					# See if this is a valid --with-arch flag
+					if (srcdir=${S}/gcc target=${CTARGET} with_arch=${arm_arch};
+					    . "${srcdir}"/config.gcc) &>/dev/null
+					then
+						confgcc="${confgcc} --with-arch=${arm_arch}"
+					fi
+
+					# Make default mode thumb for microcontroller classes #418209
+					[[ ${arm_arch} == *-m ]] && confgcc="${confgcc} --with-mode=thumb"
+
+					# Enable hardvfp
+					if [[ $(tc-is-softfloat) == "no" ]] && \
+					   [[ ${CTARGET} == armv[67]* ]]
+					then
+						# Follow the new arm hardfp distro standard by default
+						confgcc="${confgcc} --with-float=hard"
+						case ${CTARGET} in
+						armv6*) confgcc="${confgcc} --with-fpu=vfp" ;;
+						armv7*) confgcc="${confgcc} --with-fpu=vfpv3-d16" ;;
+						esac
+					fi
+					;;
+				mips)
+					# Add --with-abi flags to set default ABI
+					confgcc="${confgcc} --with-abi=$(gcc-abi-map ${TARGET_DEFAULT_ABI})"
+					;;
+				ppc)
+					# Set up defaults based on current CFLAGS
+					is-flagq -mfloat-gprs=double && confgcc="${confgcc} --enable-e500-double"
+					[[ ${CTARGET//_/-} == *-e500v2-* ]] && confgcc="${confgcc} --enable-e500-double"
+					;;
+				amd64)
+					if is_multilib ; then
+						confgcc="${confgcc} --enable-multilib"
+						if has x32 $(get_all_abis TARGET) ; then
+							confgcc="${confgcc} --with-abi=$(gcc-abi-map ${TARGET_DEFAULT_ABI})"
+						fi
+					else
+						confgcc="${confgcc} --disable-multilib"
+					fi
+					;;
+				x86)
+					confgcc="${confgcc} --with-arch=${CTARGET%%-*}"
+					confgcc="${confgcc} --disable-multilib"
+					;;
+				esac
+
+				# __cxa_atexit is "essential for fully standards-compliant handling of
+				# destructors", but apparently requires glibc.
+				if [[ ${CTARGET} == *-gnu* ]] ; then
+					confgcc="${confgcc} --enable-__cxa_atexit"
+					confgcc="${confgcc} --enable-clocale=gnu"
+				fi
+
+				export gcc_cv_lto_plugin=1  # okay to build, default to opt-in
+				export gcc_cv_prog_makeinfo_modern=no
+				export ac_cv_have_x='have_x=yes ac_x_includes= ac_x_libraries='
+				use hardened && export gcc_cv_libc_provides_ssp=yes
+
+				# need to strip graphite/lto flags or we'll get the
+				# dreaded C compiler cannot create executables...
+				# error.
+#				filter-flags -floop-interchange -floop-strip-mine -floop-block
+#				filter-flags -fuse-linker-plugin -flto*
+				strip-flags
+				replace-flags -O? -O2
+				filter-flags '-mabi*' -m31 -m32 -m64
+				filter-flags -frecord-gcc-switches
+				filter-flags -mno-rtm -mno-htm
+
+				# gold linker barfs on some arches/configs :/
+				#tc-ld-is-gold && tc-ld-disable-gold
+
+				case $(tc-arch) in
+					amd64|x86)
+						filter-flags '-mcpu=*'
+						;;
+					*)
+						;;
+				esac
+
+#				strip-unsupported-flags
+
+				STAGE1_CFLAGS="${CFLAGS} -fPIC"
+				use hardened && STAGE1_CFLAGS="-O2 -fPIC"
+				BOOT_CFLAGS="$(get_abi_CFLAGS ${TARGET_DEFAULT_ABI}) ${CFLAGS} -fPIC"
+				is_crosscompile && BOOT_CFLAGS="-O2 -fPIC"
+
+				einfo "Environment vars:
+	CC=${CC},
+	CXX=${CXX},
+	CTARGET=${CTARGET}
+	ABI=${TARGET_DEFAULT_ABI},
+	TARGET_ABI=${TARGET_ABI}.
+	TARGET_MULTILIB_ABIS=${TARGET_MULTILIB_ABIS},
+	TARGET_DEFAULT_ABI=${TARGET_DEFAULT_ABI},
+	GCC_ABI=$(gcc-abi-map ${TARGET_DEFAULT_ABI})
+	ADA_OBJECTS_PATH=${ADA_OBJECTS_PATH},
+	ADA_INCLUDE_PATH=${ADA_INCLUDE_PATH},
+	PATH=${PATH}"
+
+				confgcc="${confgcc} ${EXTRA_ECONF}"
+				einfo "Configuring with confgcc=${confgcc}"
+
+				pushd "${GNATBUILD}" > /dev/null
+				CC="${CC}" CXX="${CXX}" \
+					LDFLAGS="${LDFLAGS}" \
+					CFLAGS="${CFLAGS}" \
+					CXXFLAGS="${CFLAGS}" \
+					"${S}"/configure \
+					--prefix="${PREFIX}" \
+					--bindir="${BINPATH}" \
+					--includedir="${INCLUDEPATH}" \
+					--datadir="${DATAPATH}" \
+					--mandir="${DATAPATH}"/man \
+					--infodir="${DATAPATH}"/info \
+					--with-gxx-include-dir="${STDCXX_INCDIR}" \
+					--with-pkgversion="Gentoo Hardened ${GNATRELEASE} p${PATCH_VER}, pie-${PIE_VER}" \
+					${confgcc} || die "configure failed"
+				popd > /dev/null
+			;;
+
+			make-tools)
+				debug-print-section make-tools
+				# Compile helper tools
+				cd "${GNATBOOT}"
+				cp "${S}"/gcc/ada/xtreeprs.adb .
+				cp "${S}"/gcc/ada/xsinfo.adb   .
+				cp "${S}"/gcc/ada/xeinfo.adb   .
+				cp "${S}"/gcc/ada/xnmake.adb   .
+				cp "${S}"/gcc/ada/xutil.ad{s,b}   .
+				if (( ${GNATMINOR} > 5 )) ; then
+					cp "${S}"/gcc/ada/einfo.ad{s,b}  .
+					cp "${S}"/gcc/ada/csinfo.adb  .
+					cp "${S}"/gcc/ada/ceinfo.adb  .
+				fi
+
+				gnatmake xtreeprs  && \
+				gnatmake xsinfo  && \
+				gnatmake xeinfo  && \
+				gnatmake xnmake || die "building helper tools"
+
+				mv xeinfo xnmake xsinfo xtreeprs bin/
+			;;
+
+			bootstrap)
+				debug-print-section bootstrap
+				# and, finally, the build itself
+				# do we need this?  STAGE1_CFLAGS="${CFLAGS}"
+				# or this?  bootstrap-lean
+				# removing both to try --disable-bootstrap
+				pushd "${GNATBUILD}" >/dev/null
+
+				emake \
+					LDFLAGS="${LDFLAGS}" \
+					LIBPATH="${LIBPATH}" \
+					CC="${CC}" CXX="${CXX}" \
+					STAGE1_CFLAGS="${STAGE1_CFLAGS}" \
+					LIBRARY_VERSION="${SLOT}" \
+					BOOT_CFLAGS="${BOOT_CFLAGS}" \
+					bootstrap-lean \
+					|| die "bootstrap failed"
+
+				popd >/dev/null
+			;;
+
+			gnatlib_and_tools)
+				debug-print-section gnatlib_and_tools
+				einfo "building gnatlib_and_tools"
+				cd "${GNATBUILD}"
+				emake -j1 -C gcc gnatlib_and_tools || \
+					die "gnatlib_and_tools failed"
+			;;
+
+			gnatlib-shared)
+				debug-print-section gnatlib-shared
+				einfo "building shared lib"
+				cd "${GNATBUILD}"
+				rm -f gcc/ada/rts/*.{o,ali} || die
+				#otherwise make tries to reuse already compiled (without -fPIC) objs..
+				emake -j1 -C gcc gnatlib-shared LIBRARY_VERSION="${SLOT}" || \
+					die "gnatlib-shared failed"
+			;;
+
+		esac
+		shift
+		done # while
+	fi   # "all" == "$1"
+}
+# -- end gnatbuild-r1_src_compile
+
+
+gnatbuild-r1_src_install() {
+	debug-print-function ${FUNCNAME} $@
+
+	if [[ -z "$1" ]] ; then
+		gnatbuild-r1_src_install all
+		return $?
+	fi
+
+	while [ "$1" ]; do
+	case $1 in
+	install) # runs provided make install
+		debug-print-section install
+
+		# Looks like we need an access to the bootstrap compiler here too
+		# as gnat apparently wants to compile something during the installation
+		# The spotted obuser was xgnatugn, used to process gnat_ugn_urw.texi,
+		# during preparison of the docs.
+		export PATH="${GNATBOOT}/bin:${PATH}"
+		if [[ ${BOOT_SLOT} > 4.1 ]] ; then
+			GNATLIB="${GNATBOOT}/lib"
+		elif [[ ${BOOT_SLOT} > 4.8 ]] ; then
+			GNATLIB="${GNATBOOT}/lib/gnatgcc/${BOOT_TARGET}/${BOOT_VER}"
+		else
+			GNATLIB="${GNATBOOT}/lib/gnatgcc/${BOOT_TARGET}/${BOOT_SLOT}"
+		fi
+
+		export CC="${GNATBOOT}/bin/gnatgcc"
+		#export INCLUDE_DIR="${GNATLIB}/include"
+		#export C_INCLUDE_PATH="${GNATLIB}/include"
+		#export CPLUS_INCLUDE_PATH="${GNATLIB}/include"
+		export ADA_OBJECTS_PATH="${GNATLIB}/adalib"
+		export ADA_INCLUDE_PATH="${GNATLIB}/adainclude"
+
+		# Do not allow symlinks in /usr/lib/gcc/${CHOST}/${MY_PV}/include as
+		# this can break the build.
+		find "${GNATBUILD}"/\*gcc/include/ -type l -delete
+
+		# Remove generated headers, as they can cause things to break
+		# (ncurses, openssl, etc). (from toolchain.eclass)
+		for x in $(find "${WORKDIR}"/build/gcc/include/ -name '*.h') ; do
+			grep -q 'It has been auto-edited by fixincludes from' "${x}" \
+				&& rm -f "${x}"
+		done
+
+
+		cd "${GNATBUILD}"
+		make -j1 DESTDIR="${D}" install || die
+
+		find "${D}" -name install-tools -prune -type d -exec rm -rf "{}" \;
+		find "${D}" -name libiberty.a -delete
+
+		# Disable RANDMMAP so PCH works. #301299
+		pax-mark r "${D}${LIBEXECPATH}"/{gnat1,cc1,cc1plus}
+
+		# Quiet QA warnings, wait for adacore exec stack patch in gcc 7
+		#   (note: needs testing with hardened emulate trampolines)
+		#if use hardened ; then
+		#	pax-mark Emr "${D}"${BINPATH}/{gnatmake,gnatname,gnatls,gnatclean,gnat}
+		#else
+		#	export QA_EXECSTACK="${BINPATH:1}/gnatls ${BINPATH:1}/gnatname
+		#		${BINPATH:1}/gnatmake ${BINPATH:1}/gnatclean ${BINPATH:1}/gnat
+		#		${LIBEXECPATH:1}/gnat1 ${LIBPATH:1}/adalib/libgnat-${SLOT}.so"
+		#fi
+#		export QA_EXECSTACK="${BINPATH:1}/gnatls ${BINPATH:1}/gnatname
+#			${BINPATH:1}/gnatmake ${BINPATH:1}/gnatclean ${BINPATH:1}/gnat"
+
+		use hardened && pax-mark E "${D}${BINPATH}"/{gnatmake,gnatname,gnatls,gnatclean,gnat}
+
+		if use doc ; then
+			if (( $(bc <<< "${GNATBRANCH} > 4.3") )) ; then
+				#make a convenience info link
+				ewarn "Yay!  Math works."
+				dosym gnat_ugn.info ${DATAPATH}/info/gnat.info
+			fi
+		fi
+		;;
+
+	move_libs)
+		debug-print-section move_libs
+
+		# first we need to remove some stuff to make moving easier
+		#rm -rf "${D}${LIBPATH}"/{32,include}
+		# gcc insists on installing libs in its own place
+		cp -a -t "${D}${LIBPATH}"/ "${D}${PREFIX}"/lib/gcc/"${CTARGET}/${GCCRELEASE}"/*
+		cp -a -t "${D}${LIBEXECPATH}"/ "${D}${PREFIX}"/libexec/gcc/"${CTARGET}/${GCCRELEASE}"/*
+		rm -rf "${D}${PREFIX}"/libexec/gcc
+
+		# libgcc_s  and, with gcc>=4.0, other libs get installed in multilib specific locations by gcc
+		# we pull everything together to simplify working environment
+		if is_multilib ; then
+			case $(tc-arch) in
+				amd64)
+					cp -a -t "${D}${LIBPATH}"/ "${D}${PREFIX}"/lib/"${PN}/${CTARGET}/${SLOT}"/*
+					mv -t "${D}${LIBPATH}"/32/ "${D}${PREFIX}"/lib32/*
+					mv -t "${D}${LIBPATH}"/ "${D}${PREFIX}"/lib64/lib*
+					rm -rf "${D}${PREFIX}"/lib "${D}${PREFIX}"/lib32
+				;;
+				ppc64)
+					# not supported yet, will have to be adjusted when we
+					# actually build gnat for that arch
+				;;
+			esac
+		else
+			# x86 cleanup (maybe arm)
+			mv -t "${D}${LIBPATH}"/ "${D}${PREFIX}/lib/gcc/${CTARGET}/${GCCRELEASE}"/*
+			mv -t "${D}${LIBPATH}"/ "${D}${PREFIX}"/lib/lib*
+			#mv -t "${D}${LIBPATH}"/include/ "${D}${LIBPATH}"/gcc/"${CTARGET}/${GCCRELEASE}"/include/*
+			rm -rf "${D}${PREFIX}"/lib/gcc
+			rm -rf "${D}${LIBPATH}"/gcc
+		fi
+
+		local py gdbdir=/usr/share/gdb/auto-load${LIBPATH/\/lib\//\/$(get_libdir)\/}
+		pushd "${D}${LIBPATH}" >/dev/null
+		for py in $(find . -name '*-gdb.py') ; do
+			local multidir=${py%/*}
+			insinto "${gdbdir}/${multidir}"
+			sed -i "/^libdir =/s:=.*:= '${LIBPATH}/${multidir}':" "${py}" || die
+			doins "${py}" || die
+			rm "${py}" || die
+		done
+		popd >/dev/null
+		;;
+
+	cleanup)
+		debug-print-section cleanup
+
+		# force gnatgcc to use its own specs - versions prior to 3.4.6 read specs
+		# from system gcc location. Do the simple wrapper trick for now
+		# !ATTN! change this if eselect-gnat starts to follow eselect-compiler
+		cd "${D}${BINPATH}"
+		if [[ ${GCCVER} < 3.4.6 ]] ; then
+			# gcc 4.1 uses builtin specs. What about 4.0?
+			mv gnatgcc gnatgcc_2wrap
+			cat > gnatgcc << EOF
+#! /bin/bash
+# wrapper to cause gnatgcc read appropriate specs and search for the right .h
+# files (in case no matching gcc is installed)
+BINDIR=\$(dirname \$0)
+# The paths in the next line have to be absolute, as gnatgcc may be called from
+# any location
+\${BINDIR}/gnatgcc_2wrap -specs="${LIBPATH}/specs" -I"${LIBPATH}/include" \$@
+EOF
+			chmod a+x gnatgcc
+		else
+			local i
+			for i in cpp gcc gcov c++ g++ ; do
+				ln -s ${i} gnat${i}
+			done
+		fi
+
+		# earlier gnat's generate some Makefile's at generic location, need to
+		# move to avoid collisions
+		[ -f "${D}${PREFIX}"/share/gnat/Makefile.generic ] &&
+			mv "${D}${PREFIX}"/share/gnat/Makefile.* "${D}${DATAPATH}"
+
+		rm -rf "${D}${LIBPATH}"/install-tools "${D}${LIBEXECPATH}"/install-tools
+
+		# remove duplicate docs
+		rm -rf  "${D}${DATAPATH}"/info
+		rm -rf "${D}${DATAPATH}"/man
+
+		# fix .la path for lto plugin
+		[ -f "${D}${LIBEXECPATH}"/liblto_plugin.la ] &&
+			sed -i -e \
+				"/libdir=/c\libdir='${LIBEXECPATH}'" \
+				"${D}${LIBEXECPATH}"/liblto_plugin.la
+
+		# use gid of 0 because some stupid ports don't have
+		# the group 'root' set to gid 0 (toolchain.eclass)
+		chown -R root:0 "${D}${LIBPATH}" 2>/dev/null
+
+		# add hardening spec stuff
+		if use hardened ; then
+			insinto "${LIBPATH}"
+			doins "${WORKDIR}"/specs/*.specs || die "failed to install specs"
+		fi
+		;;
+
+	prep_env)
+		# instead of putting junk under /etc/env.d/gnat we recreate env files as
+		# needed with eselect
+		create_eselect_conf
+		;;
+
+	all)
+		# remove the move to test new install paths # move_libs
+		gnatbuild-r1_src_install install move_libs cleanup prep_env
+		;;
+	esac
+	shift
+	done # while
+}
+# -- end gnatbuild-r1_src_install


             reply	other threads:[~2016-06-04  4:05 UTC|newest]

Thread overview: 6624+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-06-04  4:05 Steve Arnold [this message]
  -- strict thread matches above, loose matches on Subject: below --
2024-04-04  1:07 [gentoo-commits] repo/gentoo:master commit in: eclass/ Sam James
2024-04-04  1:07 Sam James
2024-04-04  8:18 Florian Schmaus
2024-04-04 17:33 Ulrich Müller
2024-04-04 17:33 Ulrich Müller
2024-04-05  9:45 Hans de Graaff
2024-04-05 16:06 Florian Schmaus
2024-04-06  9:13 Michał Górny
2024-04-06 13:44 Michał Górny
2024-04-08  7:15 Miroslav Šulc
2024-04-09 20:17 Ulrich Müller
2024-04-10  8:11 Miroslav Šulc
2024-04-10 11:10 Michał Górny
2024-04-10 17:56 Ulrich Müller
2024-04-11  7:48 Miroslav Šulc
2024-04-13 18:32 Ulrich Müller
2024-04-13 18:41 Sam James
2024-04-13 20:03 Miroslav Šulc
2024-04-16  1:40 Sam James
2024-04-16  1:40 Sam James
2024-04-16  1:40 Sam James
2024-04-17 23:34 Sam James
2024-04-19 18:46 Michał Górny
2024-04-19 18:46 Michał Górny
2024-04-19 23:11 Mike Gilbert
2024-04-20  5:40 Michał Górny
2024-04-20  9:41 Michał Górny
2024-04-20 14:20 Ionen Wolkens
2024-04-20 14:20 Ionen Wolkens
2024-04-22  3:14 Sam James
2024-04-23 21:43 Sam James
2024-04-25 20:43 Andreas Sturmlechner
2024-04-25 20:43 Andreas Sturmlechner
2024-04-27 10:42 Michał Górny
2024-04-28  9:47 Hans de Graaff
2024-04-28 15:54 Michał Górny
2024-04-29 17:31 Florian Schmaus
2024-04-30  5:58 Sam James
2024-04-30 18:34 Michał Górny
2024-04-30 18:34 Michał Górny
2024-04-30 19:19 Alfredo Tupone
2024-04-30 19:25 Alfredo Tupone
2024-05-01  0:27 Sam James
2024-05-01  0:27 Sam James
2024-05-01  3:02 Sam James
2024-05-02  0:24 Sam James
2024-05-02 17:44 Florian Schmaus
2024-05-03  2:48 Sam James
2024-05-03  2:48 Sam James
2024-05-03 11:43 Sam James
2024-05-03 11:43 Sam James
2024-05-03 11:43 Sam James
2024-05-04 19:57 Michał Górny
2024-05-04 19:57 Michał Górny
2024-05-06  4:39 Sam James
2024-05-06 17:11 Ionen Wolkens
2024-05-06 17:28 Ulrich Müller
2024-05-06 17:28 Ulrich Müller
2024-05-07  7:57 Andreas K. Hüttel
2024-05-08  8:06 Ulrich Müller
2024-05-09 19:54 Conrad Kostecki
2024-05-09 19:54 Conrad Kostecki
2024-05-10 17:28 Sam James
2024-05-10 17:28 Sam James
2024-05-10 17:28 Sam James
2024-05-10 17:28 Sam James
2024-05-10 17:28 Sam James
2024-05-11  0:55 Sam James
2024-05-11  1:58 Sam James
2024-05-11  6:21 Hans de Graaff
2024-05-11  6:44 Joonas Niilola
2024-05-11 13:39 Michał Górny
2024-05-12  4:51 Sam James
2024-05-13  7:07 Miroslav Šulc
2024-05-13  8:35 Florian Schmaus
2024-05-13 13:22 Michael Orlitzky
2024-05-13 13:22 Michael Orlitzky
2024-05-13 13:22 Michael Orlitzky
2024-05-13 13:22 Michael Orlitzky
2024-05-13 21:53 Sam James
2024-05-14  8:20 Florian Schmaus
2024-05-14  9:19 Florian Schmaus
2024-05-15 14:20 Michał Górny
2024-05-15 18:02 Michał Górny
2024-05-17  6:25 Michał Górny
2024-05-17 12:07 Andrew Ammerlaan
2024-05-17 12:07 Andrew Ammerlaan
2024-05-17 12:07 Andrew Ammerlaan
2024-05-17 23:05 Ionen Wolkens
2024-05-17 23:05 Ionen Wolkens
2024-05-18  3:50 Benda XU
2024-05-18 13:25 Michał Górny
2024-05-20 17:02 Michał Górny
2024-05-20 17:02 Michał Górny
2024-05-20 17:02 Michał Górny
2024-05-20 17:02 Michał Górny
2024-05-20 17:02 Michał Górny
2024-05-20 17:02 Michał Górny
2024-05-20 17:02 Michał Górny
2024-05-20 17:02 Michał Górny
2024-05-21  8:58 Florian Schmaus
2024-05-21  8:58 Florian Schmaus
2024-05-21  8:58 Florian Schmaus
2024-05-22  1:44 Sam James
2024-05-25  5:55 Sam James
2024-05-25  8:35 Michał Górny
2024-05-26  8:18 Miroslav Šulc
2024-05-31 12:42 Michał Górny
2024-06-01  6:19 Hans de Graaff
2024-06-01  6:19 Hans de Graaff
2024-06-01  6:19 Hans de Graaff
2024-06-01 21:11 Alfredo Tupone
2024-06-01 21:34 Alfredo Tupone
2024-06-02  8:22 Ionen Wolkens
2024-06-06 20:37 Mike Gilbert
2024-06-08  3:53 Ulrich Müller
2024-06-08  3:53 Ulrich Müller
2024-06-08 10:29 Michał Górny
2024-06-08 15:47 Michał Górny
2024-06-10 12:46 Joonas Niilola
2024-06-10 14:23 Ulrich Müller
2024-06-10 14:23 Ulrich Müller
2024-06-12 10:24 Arthur Zamarin
2024-06-12 13:20 James Le Cuirot
2024-06-12 13:20 James Le Cuirot
2024-06-12 14:27 Patrick Lauer
2024-06-12 16:36 Patrick Lauer
2024-06-12 17:13 James Le Cuirot
2024-06-13 13:21 Miroslav Šulc
2024-06-13 18:35 Ulrich Müller
2024-06-13 18:35 Ulrich Müller
2024-06-13 20:43 Andreas Sturmlechner
2024-06-14 10:00 Miroslav Šulc
2024-06-14 10:00 Miroslav Šulc
2024-06-14 10:00 Miroslav Šulc
2024-06-14 10:00 Miroslav Šulc
2024-06-14 10:00 Miroslav Šulc
2024-06-14 12:19 Miroslav Šulc
2024-06-14 12:26 Michał Górny
2024-06-14 12:26 Michał Górny
2024-06-14 12:26 Michał Górny
2024-06-14 12:26 Michał Górny
2024-06-14 12:26 Michał Górny
2024-06-14 12:26 Michał Górny
2024-06-14 12:26 Michał Górny
2024-06-14 12:26 Michał Górny
2024-06-15  7:58 Sam James
2024-06-15 11:01 Michał Górny
2024-06-17  0:53 Sam James
2024-06-17  9:39 James Le Cuirot
2024-06-17 17:13 Andreas Sturmlechner
2024-06-19  3:16 Andreas K. Hüttel
2024-06-20  7:29 Florian Schmaus
2024-06-20  7:29 Florian Schmaus
2024-06-20  9:57 Sam James
2024-06-23  1:00 Ionen Wolkens
2024-06-23 17:33 Michał Górny
2024-06-24 11:58 Ulrich Müller
2024-06-26  6:24 Florian Schmaus
2024-06-27  7:33 Andrew Ammerlaan
2024-06-28  8:23 Miroslav Šulc
2024-06-29  8:39 Andrew Ammerlaan
2024-06-29  8:39 Andrew Ammerlaan
2024-06-29  8:39 Andrew Ammerlaan
2024-06-30 18:27 Sam James
2024-07-02 17:49 Sam James
2024-07-03  0:54 Sam James
2024-07-03  0:59 Sam James
2024-07-03  5:30 Joonas Niilola
2024-07-05 11:03 Arthur Zamarin
2024-07-05 11:03 Arthur Zamarin
2024-07-05 11:03 Arthur Zamarin
2024-07-05 20:50 Luca Barbato
2024-07-06 11:19 Michał Górny
2024-07-07  6:45 Matthew Smith
2024-07-08 10:03 Ulrich Müller
2024-07-08 10:03 Ulrich Müller
2024-07-08 10:03 Ulrich Müller
2024-07-08 10:03 Ulrich Müller
2024-07-09 16:44 Ulrich Müller
2024-07-11 14:35 Michał Górny
2024-07-11 20:54 Ulrich Müller
2024-07-11 20:54 Ulrich Müller
2024-07-12  6:27 Sam James
2024-07-12  7:38 Sam James
2024-07-12 17:43 Ulrich Müller
2024-07-13  7:46 Michał Górny
2024-07-13 14:14 Michał Górny
2024-07-14 17:45 Florian Schmaus
2024-07-14 17:45 Florian Schmaus
2024-07-15  7:17 David Seifert
2024-07-15  7:17 David Seifert
2024-07-15  7:17 David Seifert
2024-07-15 19:18 Andrew Ammerlaan
2024-07-15 19:18 Andrew Ammerlaan
2024-07-15 19:18 Andrew Ammerlaan
2024-07-15 19:18 Andrew Ammerlaan
2024-07-15 19:18 Andrew Ammerlaan
2024-07-16  9:16 James Le Cuirot
2024-07-16  9:16 James Le Cuirot
2024-07-16  9:16 James Le Cuirot
2024-07-16  9:16 James Le Cuirot
2024-07-16  9:16 James Le Cuirot
2024-07-16  9:16 James Le Cuirot
2024-07-16  9:16 James Le Cuirot
2024-07-18 16:15 Michał Górny
2024-07-20 12:09 Ulrich Müller
2024-07-21 13:31 Andrew Ammerlaan
2024-07-21 13:31 Andrew Ammerlaan
2024-07-21 13:31 Andrew Ammerlaan
2024-07-21 15:14 Andrew Ammerlaan
2024-07-21 15:45 Andrew Ammerlaan
2024-07-22 15:09 Michał Górny
2024-07-22 15:09 Michał Górny
2024-07-22 15:09 Michał Górny
2024-07-23 10:03 Miroslav Šulc
2024-07-23 14:07 Michał Górny
2024-07-23 14:07 Michał Górny
2024-07-23 14:07 Michał Górny
2024-07-23 14:13 Michał Górny
2024-07-24  8:58 Florian Schmaus
2024-07-24  8:58 Florian Schmaus
2024-07-24 17:18 Andrew Ammerlaan
2024-07-24 17:18 Andrew Ammerlaan
2024-07-24 17:18 Andrew Ammerlaan
2024-07-26  9:00 Miroslav Šulc
2024-07-26 17:18 Ulrich Müller
2024-07-27  7:27 Michał Górny
2024-07-27 22:00 Andrew Ammerlaan
2024-07-28 17:40 Florian Schmaus
2024-07-31  0:02 Sam James
2024-08-01  7:32 Miroslav Šulc
2024-08-01 20:20 Michał Górny
2024-08-04  7:27 Sam James
2024-08-04  7:30 Andrew Ammerlaan
2024-08-04  8:28 Sam James
2024-08-06  1:46 Sam James
2024-08-06  8:47 Michał Górny
2024-08-06  8:47 Michał Górny
2024-08-06  8:47 Michał Górny
2024-08-06  8:47 Michał Górny
2024-08-06  8:47 Michał Górny
2024-08-06  8:47 Michał Górny
2024-08-06  8:47 Michał Górny
2024-08-06  8:47 Michał Górny
2024-08-06  8:47 Michał Górny
2024-08-06  8:47 Michał Górny
2024-08-06  8:47 Michał Górny
2024-08-06  8:47 Michał Górny
2024-08-06 16:39 Florian Schmaus
2024-08-07  3:03 Sam James
2024-08-07  8:58 Andrew Ammerlaan
2024-08-07  8:58 Andrew Ammerlaan
2024-08-07  9:21 Sam James
2024-08-07  9:25 Sam James
2024-08-07  9:41 Sam James
2024-08-07 15:13 Sam James
2024-08-08  9:00 James Le Cuirot
2024-08-08 10:05 Sam James
2024-08-08 10:30 Sam James
2024-08-08 10:30 Sam James
2024-08-08 10:49 Sam James
2024-08-08 14:38 James Le Cuirot
2024-08-08 16:46 Andrew Ammerlaan
2024-08-08 19:26 Michał Górny
2024-08-09 11:39 Sam James
2024-08-09 11:50 Sam James
2024-08-09 14:30 Sam James
2024-08-09 15:50 Andrew Ammerlaan
2024-08-10 14:06 Fabian Groffen
2024-08-10 17:24 Sam James
2024-08-11 20:56 Sam James
2024-08-12  1:19 Sam James
2024-08-12  1:19 Sam James
2024-08-12  1:19 Sam James
2024-08-12  1:19 Sam James
2024-08-12 19:02 Ulrich Müller
2024-08-12 19:02 Ulrich Müller
2024-08-15 17:48 Andreas Sturmlechner
2024-08-15 17:48 Andreas Sturmlechner
2024-08-15 17:48 Andreas Sturmlechner
2024-08-15 17:48 Andreas Sturmlechner
2024-08-15 17:48 Andreas Sturmlechner
2024-08-15 17:48 Andreas Sturmlechner
2024-08-15 17:48 Andreas Sturmlechner
2024-08-15 17:48 Andreas Sturmlechner
2024-08-15 20:01 Michał Górny
2024-08-15 21:18 Sam James
2024-08-15 21:24 Sam James
2024-08-16  5:55 Arthur Zamarin
2024-08-16 10:15 Arthur Zamarin
2024-08-16 17:21 Sam James
2024-08-16 17:21 Sam James
2024-08-16 17:21 Sam James
2024-08-16 17:21 Sam James
2024-08-16 17:21 Sam James
2024-08-16 17:21 Sam James
2024-08-16 17:21 Sam James
2024-08-16 17:21 Sam James
2024-08-18 17:44 Arsen Arsenović
2024-08-18 17:44 Arsen Arsenović
2024-08-18 17:44 Arsen Arsenović
2024-08-19  6:02 Viorel Munteanu
2024-08-19 18:17 Robin H. Johnson
2024-08-20 20:07 Mike Gilbert
2024-08-20 20:17 Mike Gilbert
2024-08-21 21:51 Andreas Sturmlechner
2024-08-22 11:23 Michał Górny
2024-08-22 17:00 Andreas Sturmlechner
2024-08-23 19:25 Michał Górny
2024-08-23 19:25 Michał Górny
2024-08-25  0:49 Jason Zaman
2024-08-25 15:37 Andrew Ammerlaan
2024-08-26  6:34 Andreas Sturmlechner
2024-08-26 13:04 Ulrich Müller
2024-08-26 13:04 Ulrich Müller
2024-08-26 13:04 Ulrich Müller
2024-08-26 13:04 Ulrich Müller
2024-08-30 19:10 Andrew Ammerlaan
2024-08-30 19:43 Andrew Ammerlaan
2024-08-31  8:33 Michał Górny
2024-09-01  9:59 Miroslav Šulc
2024-09-01  9:59 Miroslav Šulc
2024-09-01  9:59 Miroslav Šulc
2024-09-01  9:59 Miroslav Šulc
2024-09-01 11:05 Sam James
2024-09-01 11:05 Sam James
2024-09-01 11:05 Sam James
2024-09-01 11:05 Sam James
2024-09-03  4:22 Ionen Wolkens
2024-09-03  8:58 Sam James
2024-09-03  9:40 Sam James
2024-09-04 20:33 Michał Górny
2024-09-05 12:10 Sam James
2024-09-07 18:21 Sam James
2024-09-07 18:23 Sam James
2024-09-08 18:21 Sam James
2024-09-08 18:21 Sam James
2024-09-08 18:21 Sam James
2024-09-08 18:21 Sam James
2024-09-08 18:21 Sam James
2024-09-08 18:21 Sam James
2024-09-08 18:21 Sam James
2024-09-08 18:21 Sam James
2024-09-08 18:21 Sam James
2024-09-08 18:21 Sam James
2024-09-08 18:21 Sam James
2024-09-08 18:21 Sam James
2024-09-08 18:21 Sam James
2024-09-08 18:21 Sam James
2024-09-08 18:21 Sam James
2024-09-08 18:21 Sam James
2024-09-08 18:21 Sam James
2024-09-08 18:21 Sam James
2024-09-08 18:21 Sam James
2024-09-08 18:21 Sam James
2024-09-08 18:21 Sam James
2024-09-08 18:21 Sam James
2024-09-08 18:21 Sam James
2024-09-08 18:21 Sam James
2024-09-08 18:21 Sam James
2024-09-09 18:20 Sam James
2024-09-10  6:46 Miroslav Šulc
2024-09-10  8:54 Michał Górny
2024-09-10 12:58 Michał Górny
2024-09-10 19:11 Miroslav Šulc
2024-09-11 22:21 Sam James
2024-09-12 22:08 Sam James
2024-09-17 11:58 Andrew Ammerlaan
2024-09-17 12:13 Michał Górny
2024-09-18 15:51 Sam James
2024-09-19 22:57 Sam James
2024-09-23 12:06 Ulrich Müller
2024-09-23 15:11 Michał Górny
2024-09-24  6:41 Michał Górny
2024-09-24 11:52 Sam James
2024-09-24 18:02 Michał Górny
2024-09-24 18:02 Michał Górny
2024-09-25  4:39 Michał Górny
2024-09-25  4:51 Ulrich Müller
2024-09-25 11:12 Sam James
2024-09-25 11:12 Sam James
2024-09-25 11:12 Sam James
2024-09-25 19:29 Eli Schwartz
2024-09-29  0:18 Sam James
2024-09-29  0:18 Sam James
2024-09-29  0:18 Sam James
2024-09-29  1:07 Sam James
2024-09-29  1:07 Sam James
2024-09-29  1:13 Sam James
2024-09-29  1:13 Sam James
2024-09-29 11:22 Sam James
2024-09-29 11:22 Sam James
2024-09-29 11:22 Sam James
2024-09-29 11:28 Sam James
2024-09-30  1:52 Sam James
2024-09-30  1:52 Sam James
2024-09-30  1:52 Sam James
2024-09-30  1:52 Sam James
2024-09-30  2:02 Sam James
2024-09-30  2:02 Sam James
2024-09-30  2:02 Sam James
2024-09-30  2:15 Sam James
2024-09-30  2:15 Sam James
2024-09-30  2:20 Sam James
2024-09-30  3:02 Sam James
2024-09-30  3:03 Sam James
2024-09-30  5:57 Sam James
2024-10-01  1:11 Sam James
2024-10-01  1:46 Sam James
2024-10-01  1:58 Sam James
2024-10-01  1:58 Sam James
2024-10-01  2:06 Sam James
2024-10-01  2:14 Sam James
2024-10-01  2:16 Sam James
2024-10-01  6:59 Sam James
2024-10-01  7:47 Sam James
2024-10-01 10:18 Sam James
2024-10-01 19:38 Eli Schwartz
2024-10-01 20:40 James Le Cuirot
2024-10-01 23:13 Eli Schwartz
2024-10-01 23:13 Eli Schwartz
2024-10-02  0:57 Sam James
2024-10-02  9:01 Miroslav Šulc
2024-10-02  9:01 Miroslav Šulc
2024-10-02  9:01 Miroslav Šulc
2024-10-02  9:01 Miroslav Šulc
2024-10-03  3:43 Sam James
2024-10-03  4:02 Sam James
2024-10-04 11:49 Sam James
2024-10-07  2:40 Sam James
2024-10-07  4:13 Sam James
2024-10-07  4:13 Sam James
2024-10-07  4:13 Sam James
2024-10-07  4:13 Sam James
2024-10-08  7:09 Florian Schmaus
2024-10-08 15:29 Ulrich Müller
2024-10-08 15:29 Ulrich Müller
2024-10-08 15:32 David Seifert
2024-10-08 15:32 David Seifert
2024-10-08 15:32 David Seifert
2024-10-08 15:32 David Seifert
2024-10-08 15:32 David Seifert
2024-10-08 15:32 David Seifert
2024-10-08 15:32 David Seifert
2024-10-08 15:32 David Seifert
2024-10-08 15:32 David Seifert
2024-10-08 15:32 David Seifert
2024-10-08 15:32 David Seifert
2024-10-08 15:32 David Seifert
2024-10-08 15:32 David Seifert
2024-10-08 15:32 David Seifert
2024-10-08 15:32 David Seifert
2024-10-08 15:32 David Seifert
2024-10-08 15:32 David Seifert
2024-10-08 15:32 David Seifert
2024-10-08 15:32 David Seifert
2024-10-08 15:32 David Seifert
2024-10-08 15:32 David Seifert
2024-10-08 15:32 David Seifert
2024-10-08 15:32 David Seifert
2024-10-08 15:32 David Seifert
2024-10-08 15:32 David Seifert
2024-10-09 11:45 Michał Górny
2024-10-10 14:47 Andrew Ammerlaan
2024-10-15  7:17 Michał Górny
2024-10-15 13:13 Michał Górny
2024-10-16  4:54 Michał Górny
2024-10-16  4:54 Michał Górny
2024-10-16  4:54 Michał Górny
2024-10-16 16:13 Andreas Sturmlechner
2024-10-18 17:54 Ulrich Müller
2024-10-18 17:54 Ulrich Müller
2024-10-18 17:54 Ulrich Müller
2024-10-19 13:47 Ionen Wolkens
2024-10-21  9:32 Sam James
2024-10-23 12:18 Michał Górny
2024-10-29 13:01 Michał Górny
2024-10-29 23:22 Maciej Barć
2024-10-29 23:22 Maciej Barć
2024-10-30  2:27 Sam James
2024-10-30 11:43 Miroslav Šulc
2024-10-30 20:50 Sam James
2024-11-01  9:03 Michał Górny
2024-11-03  9:35 Sam James
2024-11-05 10:47 Florian Schmaus
2024-11-05 10:47 Florian Schmaus
2024-11-06 11:27 Sam James
2024-11-07  5:28 Michał Górny
2024-11-07  5:28 Michał Górny
2024-11-09  6:26 Matt Jolly
2024-11-09  6:26 Matt Jolly
2024-11-09  6:26 Matt Jolly
2024-11-09  7:21 Sam James
2024-11-09  7:31 Matt Jolly
2024-11-09  9:02 Matt Jolly
2024-11-09 10:50 Matt Jolly
2024-11-10 17:24 Sam James
2024-11-11  8:53 Matt Jolly
2024-11-11  8:53 Matt Jolly
2024-11-11 19:28 Sam James
2024-11-11 23:48 Matt Jolly
2024-11-11 23:48 Matt Jolly
2024-11-12  8:09 Andrew Ammerlaan
2024-11-12  9:09 Matt Jolly
2024-11-12 19:19 Sam James
2024-11-13  6:16 Matt Jolly
2024-11-13 18:21 Michał Górny
2024-11-13 19:22 Sam James
2024-11-14  0:36 Sam James
2024-11-17  5:27 Matt Jolly
2024-11-17  5:27 Matt Jolly
2024-11-18  9:28 Sam James
2024-11-18 11:11 Sam James
2024-11-18 16:44 Mike Gilbert
2024-11-18 19:32 Michał Górny
2024-11-19 14:50 Sam James
2024-11-19 15:01 Sam James
2024-11-20 12:05 Sam James
2024-11-20 12:15 Sam James
2024-11-20 12:20 Sam James
2024-11-20 12:37 Sam James
2024-11-22 19:25 Sam James
2024-11-23 13:15 Michał Górny
2024-11-24 19:01 Michał Górny
2024-11-26  1:45 Maciej Barć
2024-11-26  1:45 Maciej Barć
2024-11-26 17:28 Florian Schmaus
2024-11-29 21:18 Eli Schwartz
2024-11-29 21:18 Eli Schwartz
2024-11-29 21:18 Eli Schwartz
2024-11-30  5:10 Sam James
2024-11-30  5:10 Sam James
2024-11-30  7:17 Michał Górny
2024-11-30  7:17 Michał Górny
2024-12-01  8:53 Sam James
2024-12-01  9:25 Sam James
2024-12-01 12:12 Sam James
2024-12-02  8:46 Matt Jolly
2024-12-02  8:46 Matt Jolly
2024-12-04 11:33 Matt Jolly
2024-12-04 11:34 Matt Jolly
2024-12-06  5:10 Ionen Wolkens
2024-12-06  7:43 Miroslav Šulc
2024-12-06  7:43 Miroslav Šulc
2024-12-06  7:44 Miroslav Šulc
2024-12-06 11:33 Nowa Ammerlaan
2024-12-06 21:55 Sam James
2024-12-07 23:23 Sam James
2024-12-08  1:11 Sam James
2024-12-08 23:34 Matt Jolly
2024-12-08 23:34 Matt Jolly
2024-12-09 18:49 Ulrich Müller
2024-12-10  5:21 Ionen Wolkens
2024-12-11 11:52 Ionen Wolkens
2024-12-11 11:52 Ionen Wolkens
2024-12-11 11:52 Ionen Wolkens
2024-12-12  7:47 Sam James
2024-12-12  7:47 Sam James
2024-12-12  7:47 Sam James
2024-12-12 17:03 Florian Schmaus
2024-12-12 17:03 Florian Schmaus
2024-12-12 17:03 Florian Schmaus
2024-12-13 10:02 Florian Schmaus
2024-12-13 13:11 Hans de Graaff
2024-12-14 12:47 Sam James
2024-12-14 16:33 Sam James
2024-12-14 18:43 Sam James
2024-12-15  3:08 Sam James
2024-12-15  9:47 Sam James
2024-12-15 12:48 Sam James
2024-12-16  5:57 Michał Górny
2024-12-16 15:17 Sam James
2024-12-16 18:45 Ulrich Müller
2024-12-16 18:45 Ulrich Müller
2024-12-17 17:14 Sam James
2024-12-17 17:34 Sam James
2024-12-17 21:44 Andreas Sturmlechner
2024-12-17 22:14 Andreas Sturmlechner
2024-12-18  2:46 Sam James
2024-12-18  3:00 Matt Turner
2024-12-18  3:00 Matt Turner
2024-12-21 10:28 Michał Górny
2024-12-22  1:30 Sam James
2024-12-22  3:20 Matt Jolly
2024-12-22 19:41 Sam James
2024-12-23 17:10 Andreas Sturmlechner
2024-12-25 15:08 Hans de Graaff
2024-12-26 10:59 Sam James
2024-12-27 21:25 Michał Górny
2024-12-28 14:51 Sam James
2024-12-28 19:43 Alfredo Tupone
2024-12-29  9:22 Ulrich Müller
2024-12-30 11:35 Michał Górny
2024-12-30 11:35 Michał Górny
2024-12-30 11:35 Michał Górny
2024-12-30 11:35 Michał Górny
2024-12-30 11:35 Michał Górny
2024-12-30 11:35 Michał Górny
2024-12-30 11:35 Michał Górny
2024-12-30 11:35 Michał Górny
2024-12-30 11:35 Michał Górny
2024-12-30 11:35 Michał Górny
2025-01-01 10:06 James Le Cuirot
2025-01-01 15:45 Miroslav Šulc
2025-01-02 17:08 Michał Górny
2025-01-02 17:08 Michał Górny
2025-01-02 17:08 Michał Górny
2025-01-02 18:33 Sam James
2025-01-02 23:32 Sam James
2025-01-02 23:34 Sam James
2025-01-03  0:59 Sam James
2025-01-03 17:54 James Le Cuirot
2025-01-04 15:28 Michał Górny
2025-01-04 15:28 Michał Górny
2025-01-04 21:34 Sam James
2025-01-04 21:34 Sam James
2025-01-05 13:39 Nowa Ammerlaan
2025-01-05 13:39 Nowa Ammerlaan
2025-01-06 14:37 Nowa Ammerlaan
2025-01-06 20:25 Nowa Ammerlaan
2025-01-06 20:25 Nowa Ammerlaan
2025-01-06 20:25 Nowa Ammerlaan
2025-01-07 11:34 Miroslav Šulc
2025-01-08  2:18 Ionen Wolkens
2025-01-08  6:33 Joonas Niilola
2025-01-10 13:15 Michał Górny
2025-01-10 16:44 Nowa Ammerlaan
2025-01-11  8:10 Arthur Zamarin
2025-01-11 18:12 Michał Górny
2025-01-14  4:53 Sam James
2025-01-14 17:07 Maciej Barć
2025-01-15 14:39 Ulrich Müller
2025-01-15 19:38 Sam James
2025-01-16  8:21 Sam James
2025-01-16 14:06 Michał Górny
2025-01-18  8:21 Michał Górny
2025-01-18 15:09 Michał Górny
2025-01-18 23:51 Sam James
2025-01-18 23:51 Sam James
2025-01-18 23:51 Sam James
2025-01-19  1:16 Sam James
2025-01-20  9:44 Petr Vaněk
2025-01-20  9:44 Petr Vaněk
2025-01-21 23:13 Sam James
2025-01-22 19:15 Michał Górny
2025-01-22 19:15 Michał Górny
2025-01-25 13:33 Michał Górny
2025-01-28  7:22 Sam James
2025-01-28 12:15 Sam James
2025-01-29 23:22 Matt Jolly
2025-01-30  1:31 Sam James
2025-01-31 21:51 Michał Górny
2025-01-31 21:51 Michał Górny
2025-02-01  0:40 Ionen Wolkens
2025-02-01 13:14 Michał Górny
2025-02-05 20:37 Sam James
2025-02-06 16:40 Sam James
2025-02-07 18:04 Sam James
2025-02-07 18:33 Sam James
2025-02-08 11:51 Michał Górny
2025-02-09 19:13 Andreas Sturmlechner
2025-02-09 19:13 Andreas Sturmlechner
2025-02-09 19:13 Andreas Sturmlechner
2025-02-10  6:43 Sam James
2025-02-11  8:39 Sam James
2025-02-11 11:29 Michał Górny
2025-02-13  8:49 Patrick Lauer
2025-02-13 17:18 Ulrich Müller
2025-02-13 17:51 Sam James
2025-02-15  7:38 Michał Górny
2025-02-15  9:04 Hans de Graaff
2025-02-15  9:04 Hans de Graaff
2025-02-15  9:04 Hans de Graaff
2025-02-16 18:41 Mike Gilbert
2025-02-17 21:52 Mike Gilbert
2025-02-21  7:25 Petr Vaněk
2025-02-21 11:14 Arthur Zamarin
2025-02-21 11:14 Arthur Zamarin
2025-02-22 15:19 Michał Górny
2025-02-22 22:08 Matt Jolly
2025-02-25  9:16 Matt Jolly
2025-02-25 14:03 Michał Górny
2025-02-25 16:36 Florian Schmaus
2025-02-25 16:36 Florian Schmaus
2025-02-26  8:47 Ionen Wolkens
2025-02-26 22:05 Andreas Sturmlechner
2025-03-01 12:58 Michał Górny
2025-03-03 17:47 Nowa Ammerlaan
2025-03-03 17:47 Nowa Ammerlaan
2025-03-03 19:27 Sam James
2025-03-03 19:27 Sam James
2025-03-04 22:09 Sam James
2025-03-04 22:32 Andreas Sturmlechner
2025-03-04 22:32 Andreas Sturmlechner
2025-03-07  0:58 Sam James
2025-03-07  1:23 Sam James
2025-03-07  1:23 Sam James
2025-03-07  1:25 Sam James
2025-03-07 18:32 Sam James
2025-03-08 14:02 Arthur Zamarin
2025-03-08 14:02 Arthur Zamarin
2025-03-08 14:02 Arthur Zamarin
2025-03-08 14:02 Arthur Zamarin
2025-03-08 14:02 Arthur Zamarin
2025-03-08 16:59 Michał Górny
2025-03-10  1:55 Sam James
2025-03-11  9:04 Ionen Wolkens
2025-03-11 13:23 Sam James
2025-03-11 13:23 Sam James
2025-03-11 14:56 Michał Górny
2025-03-11 22:15 Sam James
2025-03-12 10:14 Ionen Wolkens
2025-03-12 20:02 Sam James
2025-03-13 13:18 Sam James
2025-03-13 17:21 Sam James
2025-03-13 18:02 Sam James
2025-03-13 18:11 Sam James
2025-03-14  2:50 Sam James
2025-03-17 20:13 Michał Górny
2025-03-22  0:52 Sam James
2025-03-22 10:43 Michał Górny
2025-03-24  6:53 Sam James
2025-03-24  6:55 Sam James
2025-03-25  8:15 Sam James
2025-03-26 22:54 Sam James
2025-03-28  9:24 Nowa Ammerlaan
2025-03-28 15:06 Sam James
2025-03-29 10:27 Michał Górny
2025-03-29 15:58 James Le Cuirot
2025-04-01 13:58 Florian Schmaus
2025-04-02  7:06 Michał Górny
2025-04-02  7:06 Michał Górny
2025-04-02  7:06 Michał Górny
2025-04-02  7:06 Michał Górny
2025-04-02  7:06 Michał Górny
2025-04-02  7:06 Michał Górny
2025-04-02  7:06 Michał Górny
2025-04-02  7:06 Michał Górny
2025-04-04 17:08 Sam James
2025-04-05 12:24 Michał Górny
2025-04-07 20:48 Sam James
2025-04-10  9:18 Sam James
2025-04-10  9:28 Sam James
2025-04-10 14:23 Sam James
2025-04-12  8:59 Michał Górny
2025-04-12 16:34 Sam James
2025-04-12 16:34 Sam James
2025-04-13  9:14 Sam James
2025-04-13 11:45 Sam James
2025-04-14 16:07 Sam James
2025-04-15 10:15 Michał Górny
2025-04-15 14:24 Michał Górny
2025-04-15 14:24 Michał Górny
2025-04-15 14:24 Michał Górny
2025-04-15 14:24 Michał Górny
2025-04-15 14:24 Michał Górny
2025-04-15 14:24 Michał Górny
2025-04-16  2:42 Sam James
2025-04-17  1:27 Sam James
2025-04-19  1:31 Sam James
2025-04-19  1:31 Sam James
2025-04-19  8:37 Hans de Graaff
2025-04-19 10:28 Michał Górny
2025-04-19 19:16 Sam James
2025-04-20 11:50 Michał Górny
2025-04-21  2:38 Ionen Wolkens
2025-04-22 11:24 Ionen Wolkens
2025-04-23 11:37 Matt Jolly
2025-04-23 15:09 Ulrich Müller
2025-04-23 15:18 Sam James
2025-04-23 15:18 Sam James
2025-04-23 15:18 Sam James
2025-04-23 15:18 Sam James
2025-04-23 15:18 Sam James
2025-04-23 15:18 Sam James
2025-04-23 15:18 Sam James
2025-04-23 15:18 Sam James
2025-04-23 15:18 Sam James
2025-04-23 15:18 Sam James
2025-04-23 15:18 Sam James
2025-04-23 15:18 Sam James
2025-04-23 15:18 Sam James
2025-04-23 15:18 Sam James
2025-04-23 15:18 Sam James
2025-04-23 15:18 Sam James
2025-04-24 20:44 Sam James
2025-04-26 17:52 Sam James
2025-04-26 18:03 Sam James
2025-04-26 18:09 Sam James
2025-04-27  8:27 Ionen Wolkens
2025-04-27  8:27 Ionen Wolkens
2025-04-27 10:52 Ionen Wolkens
2025-04-27 13:17 Ionen Wolkens
2025-04-27 22:53 Sam James
2025-05-01 11:36 Michał Górny
2025-05-02 16:01 Michał Górny
2025-05-03  5:28 Sam James
2025-05-03 19:42 Michał Górny
2025-05-05 15:32 Sam James
2025-05-05 15:45 Sam James
2025-05-05 15:56 Sam James
2025-05-06 17:41 Eli Schwartz
2025-05-08 12:35 Michał Górny
2025-05-08 12:35 Michał Górny
2025-05-08 12:35 Michał Górny
2025-05-08 12:35 Michał Górny
2025-05-10  1:54 Sam James
2025-05-10 12:57 Michał Górny
2025-05-10 12:57 Michał Górny
2025-05-10 13:03 Michał Górny
2025-05-10 20:04 Sam James
2025-05-11  4:34 Sam James
2025-05-15  7:11 Arsen Arsenović
2025-05-15  7:11 Arsen Arsenović
2025-05-15  7:11 Sam James
2025-05-16  2:00 Ionen Wolkens
2025-05-16  9:31 Michał Górny
2025-05-16  9:59 Sam James
2025-05-17 12:59 Michał Górny
2025-05-17 12:59 Michał Górny
2025-05-19 15:22 Matt Turner
2025-05-20 22:55 Ionen Wolkens
2025-05-22 19:39 Mike Gilbert
2025-05-23 15:42 Ionen Wolkens
2025-05-24 11:11 Andreas K. Hüttel
2025-05-24 11:56 Michał Górny
2025-05-24 17:08 Mike Gilbert
2025-05-24 23:50 Mike Gilbert
2025-05-25 16:41 Mike Gilbert
2025-05-26  9:43 Sam James
2025-05-27 18:17 Mike Gilbert
2025-05-27 18:17 Mike Gilbert
2025-05-27 18:17 Mike Gilbert
2025-05-28  3:36 Sam James
2025-05-28 11:54 Michał Górny
2025-05-28 11:54 Michał Górny
2025-05-29  2:47 Ionen Wolkens
2025-05-29 12:24 Sam James
2025-05-30  6:33 Hans de Graaff
2025-06-01 15:13 Ionen Wolkens
2025-06-03  1:32 Sam James
2025-06-03 17:01 Andreas Sturmlechner
2025-06-03 17:01 Andreas Sturmlechner
2025-06-03 17:01 Andreas Sturmlechner
2025-06-04  8:48 Hans de Graaff
2025-06-05 10:56 James Le Cuirot
2025-06-05 10:56 James Le Cuirot
2025-06-05 10:56 James Le Cuirot
2025-06-05 10:56 James Le Cuirot
2025-06-05 10:56 James Le Cuirot
2025-06-05 10:56 James Le Cuirot
2025-06-05 11:11 James Le Cuirot
2025-06-05 11:11 James Le Cuirot
2025-06-07 11:18 Ionen Wolkens
2025-06-07 18:05 Michał Górny
2025-06-07 18:05 Michał Górny
2025-06-08 12:03 Sam James
2025-06-09  8:07 Ionen Wolkens
2025-06-09 20:30 James Le Cuirot
2025-06-09 20:47 Andreas Sturmlechner
2025-06-10  8:02 Ionen Wolkens
2025-06-11  1:48 Sam James
2025-06-11 15:30 Andreas Sturmlechner
2025-06-12 11:58 Sam James
2025-06-12 19:20 Andreas K. Hüttel
2025-06-13 23:11 Mike Gilbert
2025-06-14  9:06 Nowa Ammerlaan
2025-06-14  9:06 Nowa Ammerlaan
2025-06-14 14:26 Sam James
2025-06-14 14:26 Sam James
2025-06-15 17:39 Andreas Sturmlechner
2025-06-18  7:26 Sam James
2025-06-21 10:07 David Seifert
2025-06-21 10:07 David Seifert
2025-06-22 10:58 Andreas Sturmlechner
2025-06-24 19:44 Andreas Sturmlechner
2025-06-25  4:35 Michał Górny
2025-06-25  4:35 Michał Górny
2025-06-25  4:35 Michał Górny
2025-06-25  4:35 Michał Górny
2025-06-28 15:03 Michał Górny
2025-06-28 15:03 Michał Górny
2025-06-29  3:20 Michał Górny
2025-06-29 22:57 Sam James
2025-07-02  8:20 Michał Górny
2025-07-02 10:53 Michał Górny
2025-07-02 17:38 Andreas Sturmlechner
2025-07-04  3:26 Eli Schwartz
2025-07-05  7:16 Sam James
2025-07-05  7:16 Sam James
2025-07-05  7:16 Sam James
2025-07-05  7:59 Sam James
2025-07-05  8:18 Sam James
2025-07-05 12:44 Ionen Wolkens
2025-07-05 22:35 Ionen Wolkens
2025-07-07 11:46 Louis Sautier
2025-07-07 20:58 Sam James
2025-07-07 22:25 Sam James
2025-07-07 22:51 Sam James
2025-07-08 23:35 Sam James
2025-07-09 11:22 James Le Cuirot
2025-07-09 11:22 James Le Cuirot
2025-07-10  7:51 Miroslav Šulc
2025-07-12  5:05 Michał Górny
2025-07-12  5:05 Michał Górny
2025-07-12  5:05 Michał Górny
2025-07-13  5:08 Sam James
2025-07-13  5:08 Sam James
2025-07-13 11:20 Nowa Ammerlaan
2025-07-13 20:03 Michał Górny
2025-07-14 18:55 Andreas K. Hüttel
2025-07-18  4:39 Michał Górny
2025-07-18  4:39 Michał Górny
2025-07-19 11:35 Sam James
2025-07-19 11:35 Sam James
2025-07-20 18:10 Nowa Ammerlaan
2025-07-23 11:57 Petr Vaněk
2025-07-23 20:38 Sam James
2025-07-24 16:03 Michał Górny
2025-07-25  5:57 Michał Górny
2025-07-25  8:21 Nowa Ammerlaan
2025-07-25 12:48 Alfredo Tupone
2025-07-26 19:53 Michał Górny
2025-07-27  1:51 Sam James
2025-07-27 12:39 Florian Schmaus
2025-07-28  5:00 Sam James
2025-07-29  5:34 Ionen Wolkens
2025-07-29  8:36 Matt Jolly
2025-07-30  5:06 Eli Schwartz
2025-08-02 10:29 Michał Górny
2025-08-02 10:29 Michał Górny
2025-08-09  9:47 Michał Górny
2025-08-09 16:49 Michał Górny
2025-08-11  5:38 Eli Schwartz
2025-08-11  5:38 Eli Schwartz
2025-08-13 11:01 Sam James
2025-08-13 11:01 Sam James
2025-08-13 11:01 Sam James
2025-08-13 12:03 Sam James
2025-08-13 12:03 Sam James
2025-08-14  8:09 Sam James
2025-08-14 16:33 Mike Gilbert
2025-08-14 16:33 Mike Gilbert
2025-08-16 13:51 Michał Górny
2025-08-18 17:58 Andreas Sturmlechner
2025-08-18 17:58 Andreas Sturmlechner
2025-08-20 22:29 James Le Cuirot
2025-08-21  8:18 Michał Górny
2025-08-21  8:22 Michał Górny
2025-08-22  5:31 Sam James
2025-08-22  5:36 Sam James
2025-08-26 22:10 James Le Cuirot
2025-08-30 13:07 Ionen Wolkens
2025-08-31 13:28 Michał Górny
2025-08-31 13:28 Michał Górny
2025-09-01 10:31 Sam James
2025-09-02 20:05 Eli Schwartz
2025-09-03  1:28 Ionen Wolkens
2025-09-03  1:32 Ionen Wolkens
2025-09-03 16:48 Jason Zaman
2025-09-03 16:48 Jason Zaman
2025-09-06  7:01 Michał Górny
2025-09-06  7:01 Michał Górny
2025-09-06  7:01 Michał Górny
2025-09-06 15:13 Sam James
2025-09-06 20:02 Sam James
2025-09-06 20:02 Sam James
2025-09-06 20:43 Ionen Wolkens
2025-09-06 21:32 Sam James
2025-09-07 19:47 Michał Górny
2025-09-08 18:15 Arthur Zamarin
2025-09-11  9:51 Sam James
2025-09-11 16:49 Nowa Ammerlaan
2025-09-11 19:48 Michał Górny
2025-09-11 20:19 Nowa Ammerlaan
2025-09-11 20:19 Nowa Ammerlaan
2025-09-19  3:13 Ionen Wolkens
2025-09-24  2:27 Michał Górny
2025-09-24  2:27 Michał Górny
2025-09-25 13:38 Patrick Lauer
2025-09-26  5:52 Alfredo Tupone
2025-09-26  6:37 Patrick Lauer
2025-09-26 10:10 Nowa Ammerlaan
2025-09-30 17:34 Alfredo Tupone
2025-10-01  6:35 Michał Górny
2025-10-01 15:08 Sam James
2025-10-03 16:27 Sam James
2025-10-03 16:27 Sam James
2025-10-03 19:11 Michał Górny
2025-10-03 19:11 Michał Górny
2025-10-04  9:16 Michał Górny
2025-10-04  9:16 Michał Górny
2025-10-05 21:50 Andreas Sturmlechner
2025-10-05 21:50 Andreas Sturmlechner
2025-10-05 21:50 Andreas Sturmlechner
2025-10-05 21:50 Andreas Sturmlechner
2025-10-05 21:50 Andreas Sturmlechner
2025-10-09  2:25 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=1465013081.b646a6bbe391980e38b851699291bb6c224bc3c5.nerdboy@gentoo \
    --to=nerdboy@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