Github messages for voidlinux
 help / color / mirror / Atom feed
From: sgn <sgn@users.noreply.github.com>
To: ml@inbox.vuxu.org
Subject: Re: [PR PATCH] [Updated] xbps-src: bootstrap from foreign distro fix
Date: Thu, 20 Aug 2020 15:36:29 +0200	[thread overview]
Message-ID: <20200820133629.3kt0-Nj9FdQrSo77jyocLNdp1n1YvnVGSBxCOsR7VwI@z> (raw)
In-Reply-To: <gh-mailinglist-notifications-41a7ca26-5023-4802-975b-f1789d68868e-void-packages-24343@inbox.vuxu.org>

[-- Attachment #1: Type: text/plain, Size: 423 bytes --]

There is an updated pull request by sgn against master on the void-packages repository

https://github.com/sgn/void-packages xbps-src-bootstrap-foreign
https://github.com/void-linux/void-packages/pull/24343

xbps-src: bootstrap from foreign distro fix
Trying to binary-bootstrap from Ubuntu 20.04 today.
This is a preliminary fix.

A patch file from https://github.com/void-linux/void-packages/pull/24343.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-xbps-src-bootstrap-foreign-24343.patch --]
[-- Type: text/x-diff, Size: 4573 bytes --]

From 8da930c48dc5ed8338bfdc108997f1f9f62c36f9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Tue, 18 Aug 2020 19:53:55 +0700
Subject: [PATCH 1/3] xbps-src: use internal config in foreign environment

When xbps-install is called without "-C", xbps-install will pick
configuration from the location configured at build time.
Should the default location not have a valid repository configuration,
we couldn't run binary-bootstrap.

On bootstrapping from scratch, without this change, xbps looks into
system configuration, which isn't what we want.

Run xbps-install with our internal configuration instead.
---
 xbps-src | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/xbps-src b/xbps-src
index 2462ddc0b89..1c83708c8da 100755
--- a/xbps-src
+++ b/xbps-src
@@ -613,8 +613,8 @@ if [ "$IN_CHROOT" ]; then
     readonly XBPS_BUILDDIR=/builddir
 else
     readonly XBPS_UHELPER_CMD="xbps-uhelper -r $XBPS_MASTERDIR"
-    readonly XBPS_INSTALL_CMD="xbps-install -c $XBPS_HOSTDIR/repocache-$XBPS_MACHINE -r $XBPS_MASTERDIR"
-    readonly XBPS_QUERY_CMD="xbps-query -c $XBPS_HOSTDIR/repocache-$XBPS_MACHINE -r $XBPS_MASTERDIR"
+    readonly XBPS_INSTALL_CMD="xbps-install -c $XBPS_HOSTDIR/repocache-$XBPS_MACHINE -r $XBPS_MASTERDIR -C etc/xbps.d"
+    readonly XBPS_QUERY_CMD="xbps-query -c $XBPS_HOSTDIR/repocache-$XBPS_MACHINE -r $XBPS_MASTERDIR -C etc/xbps.d"
     readonly XBPS_RECONFIGURE_CMD="xbps-reconfigure -r $XBPS_MASTERDIR"
     readonly XBPS_REMOVE_CMD="xbps-remove -r $XBPS_MASTERDIR"
     readonly XBPS_CHECKVERS_CMD="xbps-checkvers -r $XBPS_MASTERDIR"

From 820fbce84300afb40add4eda8dc17b51032c7c8d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Tue, 18 Aug 2020 20:42:51 +0700
Subject: [PATCH 2/3] xbps-src: environment: keep LD_LIBRARY_PATH outside of
 chroot

Using self-built xbps in non-standard location requires setting
LD_LIBRARY_PATH.  Thus, bootstrapping from foreign distribution
with those binaries failed.
---
 common/environment/setup/sourcepkg.sh | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/common/environment/setup/sourcepkg.sh b/common/environment/setup/sourcepkg.sh
index bc06f745b78..d7253459be3 100644
--- a/common/environment/setup/sourcepkg.sh
+++ b/common/environment/setup/sourcepkg.sh
@@ -16,9 +16,13 @@ unset -v go_import_path go_package go_mod_mode
 unset -v patch_args disable_parallel_build keep_libtool_archives make_use_env
 unset -v reverts subpackages makedepends hostmakedepends checkdepends depends restricted
 unset -v nopie build_options build_options_default bootstrap repository reverts
-unset -v CFLAGS CXXFLAGS FFLAGS CPPFLAGS LDFLAGS LD_LIBRARY_PATH
+unset -v CFLAGS CXXFLAGS FFLAGS CPPFLAGS LDFLAGS
 unset -v CC CXX CPP GCC LD AR AS RANLIB NM OBJDUMP OBJCOPY STRIP READELF PKG_CONFIG
 
+if [ "$IN_CHROOT" ]; then
+	unset -v LD_LIBRARY_PATH
+fi
+
 # hooks/do-extract/00-distfiles
 unset -v skip_extraction
 

From fa43f300b6150ab2ce35fa6c10119ebe2e016ddd Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Thu, 20 Aug 2020 20:24:52 +0700
Subject: [PATCH 3/3] glibc: fix bootstrap with gcc -fcf-protection

Some distros ship gcc that implicitly enables the "-fcf-protection".
Upstream GCC does not do that, so the glibc configure logic is not
prepared for that. Hence, bootstrapping glibc on such system will
result in error:

	elf/ld.so.new: hidden symbol `_dl_cet_open_check' isn't defined

We must --enable-cet to fix it.
Future glibc will --enable-cet automatically if -fcf-protection.

Reference:
1: https://stackoverflow.com/a/59006638
2: https://sourceware.org/bugzilla/show_bug.cgi?id=25225
---
 srcpkgs/glibc/template | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/srcpkgs/glibc/template b/srcpkgs/glibc/template
index 4ea327aa1fa..5f0868ceb77 100644
--- a/srcpkgs/glibc/template
+++ b/srcpkgs/glibc/template
@@ -88,8 +88,11 @@ do_configure() {
 		configure_args+=" --host=${XBPS_CROSS_TRIPLET}"
 		configure_args+=" --with-sysroot=${XBPS_CROSS_BASE}"
 		configure_args+=" --with-headers=${XBPS_CROSS_BASE}/usr/include"
-	else
+	elif [ ! "$CHROOT_READY" ]; then
 		configure_args+=" --with-headers=${XBPS_MASTERDIR}/usr/include"
+		# TODO: remove when upgrade to newer version
+		configure_args+=" --enable-cet"
+		CPPFLAGS+=" -isystem ${XBPS_MASTERDIR}/usr/include"
 	fi
 
 	# Disable SSP from CFLAGS (enabled below)

  reply	other threads:[~2020-08-20 13:36 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-08-18 13:54 [PR PATCH] " sgn
2020-08-20 13:36 ` sgn [this message]
2020-08-22  1:11 ` [PR PATCH] [Updated] " sgn
2020-08-24 14:17 ` sgn
2020-08-24 14:22 ` sgn
2020-08-25 12:25 ` [PR PATCH] [Updated] " sgn
2020-09-19  3:42 ` [PR PATCH] [Closed]: " sgn
2020-12-07  0:04 ` sgn

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=20200820133629.3kt0-Nj9FdQrSo77jyocLNdp1n1YvnVGSBxCOsR7VwI@z \
    --to=sgn@users.noreply.github.com \
    --cc=ml@inbox.vuxu.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;
as well as URLs for NNTP newsgroup(s).