commit:     41b18d2299e59710c1d65d37107d763fb85f9af0
Author:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
AuthorDate: Sat Jan 28 20:59:11 2023 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Sat Jan 28 20:59:11 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=41b18d22

sys-apps/baselayout: create ${ED}/var/{run,lock} in pkg_preinst

Bug: https://bugs.gentoo.org/648880
Signed-off-by: Mike Gilbert <floppym <AT> gentoo.org>

 ...ayout-9999.ebuild => baselayout-2.13-r1.ebuild} | 25 ++++++++++------------
 sys-apps/baselayout/baselayout-9999.ebuild         | 23 +++++++++-----------
 2 files changed, 21 insertions(+), 27 deletions(-)

diff --git a/sys-apps/baselayout/baselayout-9999.ebuild 
b/sys-apps/baselayout/baselayout-2.13-r1.ebuild
similarity index 94%
copy from sys-apps/baselayout/baselayout-9999.ebuild
copy to sys-apps/baselayout/baselayout-2.13-r1.ebuild
index 845f7f7a8dfb..71073b11c747 100644
--- a/sys-apps/baselayout/baselayout-9999.ebuild
+++ b/sys-apps/baselayout/baselayout-2.13-r1.ebuild
@@ -12,7 +12,7 @@ if [[ ${PV} = 9999 ]]; then
        inherit git-r3
 else
        SRC_URI="https://gitweb.gentoo.org/proj/${PN}.git/snapshot/${P}.tar.bz2";
-       KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc 
~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos 
~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris ~x86-winnt"
+       #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips 
~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-cygwin ~amd64-linux ~x86-linux 
~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris 
~x86-winnt"
 fi
 
 LICENSE="GPL-2"
@@ -21,19 +21,6 @@ IUSE="build +split-usr"
 
 RDEPEND="!sys-apps/baselayout-prefix"
 
-pkg_pretend() {
-       local stop=
-       if [[ ! -L ${EROOT}/var/run ]] && [[ -d ${EROOT}/var/run ]]; then
-               eerror "${EROOT}/var/run must be a symlink to ${EROOT}/run"
-               stop=1
-       fi
-       if [[ ! -L ${EROOT}/var/lock ]] && [[ -d ${EROOT}/var/lock ]]; then
-               eerror "${EROOT}/var/lock must be a symlink to 
${EROOT}/run/lock"
-               stop=1
-       fi
-       [[ -z ${stop} ]] || die "please fix this before emerging baselayout"
-}
-
 pkg_setup() {
        multilib_layout
 }
@@ -222,6 +209,16 @@ pkg_preinst() {
                fi
        fi
        rm -f "${ED}"/usr/share/${PN}/Makefile || die
+
+       # Create symlinks in pkg_preinst to avoid Portage collision check.
+       # Create the symlinks in ${ED} via dosym so that we own it.
+       # Only create the symlinks if it wont cause a conflict in ${EROOT}.
+       if [[ -L ${EROOT}/var/lock || ! -e ${EROOT}/var/lock ]]; then
+               dosym ../run/lock /var/lock
+       fi
+       if [[ -L ${EROOT}/var/run || ! -e ${EROOT}/var/run ]]; then
+               dosym ../run /var/run
+       fi
 }
 
 src_prepare() {

diff --git a/sys-apps/baselayout/baselayout-9999.ebuild 
b/sys-apps/baselayout/baselayout-9999.ebuild
index 845f7f7a8dfb..3c3f89d714de 100644
--- a/sys-apps/baselayout/baselayout-9999.ebuild
+++ b/sys-apps/baselayout/baselayout-9999.ebuild
@@ -21,19 +21,6 @@ IUSE="build +split-usr"
 
 RDEPEND="!sys-apps/baselayout-prefix"
 
-pkg_pretend() {
-       local stop=
-       if [[ ! -L ${EROOT}/var/run ]] && [[ -d ${EROOT}/var/run ]]; then
-               eerror "${EROOT}/var/run must be a symlink to ${EROOT}/run"
-               stop=1
-       fi
-       if [[ ! -L ${EROOT}/var/lock ]] && [[ -d ${EROOT}/var/lock ]]; then
-               eerror "${EROOT}/var/lock must be a symlink to 
${EROOT}/run/lock"
-               stop=1
-       fi
-       [[ -z ${stop} ]] || die "please fix this before emerging baselayout"
-}
-
 pkg_setup() {
        multilib_layout
 }
@@ -222,6 +209,16 @@ pkg_preinst() {
                fi
        fi
        rm -f "${ED}"/usr/share/${PN}/Makefile || die
+
+       # Create symlinks in pkg_preinst to avoid Portage collision check.
+       # Create the symlinks in ${ED} via dosym so that we own it.
+       # Only create the symlinks if it wont cause a conflict in ${EROOT}.
+       if [[ -L ${EROOT}/var/lock || ! -e ${EROOT}/var/lock ]]; then
+               dosym ../run/lock /var/lock
+       fi
+       if [[ -L ${EROOT}/var/run || ! -e ${EROOT}/var/run ]]; then
+               dosym ../run /var/run
+       fi
 }
 
 src_prepare() {

Reply via email to