Date: Sat, 27 Sep 2008 14:45:12 +0400 From: Eygene Ryabinkin <rea-fbsd@codelabs.ru> To: Maksim Yevmenkin <maksim.yevmenkin@gmail.com> Cc: sam@freebsd.org, freebsd-current@freebsd.org, dougb@freebsd.org Subject: Re: mergemaster broken Message-ID: <8mjnlfjxki8xBLJGjaWITKbl%2BtA@Nv45r0f9gWT8HCu35qu0Xm2Zg98> In-Reply-To: <bb4a86c70809261001l543f1c58q3567afa6bbae0070@mail.gmail.com> References: <bb4a86c70809261001l543f1c58q3567afa6bbae0070@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
--ghzN8eJ9Qlbqn3iT Content-Type: multipart/mixed; boundary="oC1+HKm2/end4ao3" Content-Disposition: inline --oC1+HKm2/end4ao3 Content-Type: text/plain; charset=koi8-r Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Maksim, good day. Fri, Sep 26, 2008 at 10:01:08AM -0700, Maksim Yevmenkin wrote: > i got the following today while trying to run mergemaster >=20 > thanks, > max >=20 > beetle# mergemaster -sv >=20 > *** The directory specified for the temporary root environment, > /var/tmp/temproot, exists. This can be a security risk if untrusted > users have access to the system. >=20 > Use 'd' to delete the old /var/tmp/temproot and continue > Use 't' to select a new temporary root directory > Use 'e' to exit mergemaster >=20 > Default is to use /var/tmp/temproot as is >=20 > How should I deal with this? [Use the existing /var/tmp/temproot] d >=20 > *** Deleting the old /var/tmp/temproot >=20 > *** Creating the temporary root environment in /var/tmp/temproot > *** /var/tmp/temproot ready for use > *** Creating and populating directory structure in /var/tmp/temproot >=20 > *** Press the [Enter] or [Return] key to continue > "/usr/src/etc/Makefile", line 34: Malformed conditional (${MK_AMD} !=3D "= no") > "/usr/src/etc/Makefile", line 36: if-less endif [...] The problem is that your /usr/share/mk/bsd.own.mk is old and does not include the stuff from the SVN rev 183242 that was done by Sam Leffler. So if you'll manually copy the new version of bsd.own.mk from /usr/src to /usr/share/mk, mergemaster will work. This is not very clean, so I had created a quick patch for mergemaster (from -STABLE, have no -CURRENT at hand just now, sorry). It enables all 'make' invocations to search /usr/src/share/mk prior to look for includes in /usr/share/mk. Works for my quick testing, but there can be some rough points I had not noticed. Please, try it. --=20 Eygene _ ___ _.--. # \`.|\..----...-'` `-._.-'_.-'` # Remember that it is hard / ' ` , __.--' # to read the on-line manual =20 )/' _/ \ `-_, / # while single-stepping the kernel. `-'" `"\_ ,_.-;_.-\_ ', fsc/as # _.-'_./ {_.' ; / # -- FreeBSD Developers handbook=20 {_.-``-' {_/ # --oC1+HKm2/end4ao3 Content-Type: text/x-diff; charset=koi8-r Content-Disposition: attachment; filename="mergemaster.patch" Content-Transfer-Encoding: quoted-printable Enables mergemaster to use system include files from the source directory (read /usr/src) prior to use their version from the system. It is useful when some file from /usr/share/mk gained some functionality and some Makefile(s) depend on this new stuff. --- usr.sbin/mergemaster.orig 2008-09-27 14:24:14.000000000 +0400 +++ usr.sbin/mergemaster 2008-09-27 14:37:58.000000000 +0400 @@ -414,6 +414,11 @@ # SOURCEDIR=3D${SOURCEDIR:-/usr/src/etc} =20 +# New versions of system makefiles should take precedence +# over the default one. +# +MAKE_FLAGS=3D"-m ${SOURCEDIR%etc}share/mk -m /usr/share/mk" + # Check DESTDIR against the mergemaster mtree database to see what # files the user changed from the reference files. # @@ -552,13 +557,13 @@ case "${DESTDIR}" in '') ;; *) - make DESTDIR=3D${DESTDIR} ${ARCHSTRING} distrib-dirs + make ${MAKE_FLAGS} DESTDIR=3D${DESTDIR} ${ARCHSTRING} distrib-dirs ;; esac - make DESTDIR=3D${TEMPROOT} ${ARCHSTRING} distrib-dirs && - MAKEOBJDIRPREFIX=3D${TEMPROOT}/usr/obj make ${ARCHSTRING} obj && - MAKEOBJDIRPREFIX=3D${TEMPROOT}/usr/obj make ${ARCHSTRING} all && - MAKEOBJDIRPREFIX=3D${TEMPROOT}/usr/obj make ${ARCHSTRING} \ + make ${MAKE_FLAGS} DESTDIR=3D${TEMPROOT} ${ARCHSTRING} distrib-dirs = && + MAKEOBJDIRPREFIX=3D${TEMPROOT}/usr/obj make ${MAKE_FLAGS} ${ARCHSTRI= NG} obj && + MAKEOBJDIRPREFIX=3D${TEMPROOT}/usr/obj make ${MAKE_FLAGS} ${ARCHSTRI= NG} all && + MAKEOBJDIRPREFIX=3D${TEMPROOT}/usr/obj make ${MAKE_FLAGS} ${ARCHSTRI= NG} \ DESTDIR=3D${TEMPROOT} distribution;} || { echo ''; echo " *** FATAL ERROR: Cannot 'cd' to ${SOURCEDIR} and install file= s to"; --oC1+HKm2/end4ao3-- --ghzN8eJ9Qlbqn3iT Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.9 (FreeBSD) iEYEARECAAYFAkjeDrgACgkQthUKNsbL7YhLHgCfZewaVx3cM+Njg5SDq1fVc/0D 4q4An3qGjGkhXBwdHUO1Bcx4AW1mzpHH =JOIH -----END PGP SIGNATURE----- --ghzN8eJ9Qlbqn3iT--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?8mjnlfjxki8xBLJGjaWITKbl%2BtA>