Skip site navigation (1)Skip section navigation (2)
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>