Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 2 Jul 2012 09:34:18 -0500
From:      Brooks Davis <brooks@freebsd.org>
To:        Marcel Moolenaar <marcel@xcllnt.net>
Cc:        Tim Kientzle <tim@kientzle.com>, freebsd-arch@freebsd.org, Brooks Davis <brooks@freebsd.org>, Dag-Erling Sm?rgrav <des@des.no>, "Simon J. Gerraty" <sjg@juniper.net>
Subject:   Re: Allow user install
Message-ID:  <20120702143418.GA74604@lor.one-eyed-alien.net>
In-Reply-To: <9BB38D52-3CB9-44CE-B1BD-85DFAD6A1176@xcllnt.net>
References:  <20120626063017.D05DA58081@chaos.jnpr.net> <86wr2uwdgf.fsf@ds4.des.no> <C31B93F4-674C-4183-9F3F-5F7C48980204@kientzle.com> <20120626161605.5082A58081@chaos.jnpr.net> <20120627235945.GE243@lor.one-eyed-alien.net> <9BB38D52-3CB9-44CE-B1BD-85DFAD6A1176@xcllnt.net>

next in thread | previous in thread | raw e-mail | index | archive | help

--pWyiEgJYm5f9v55/
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Sun, Jul 01, 2012 at 02:12:07PM -0700, Marcel Moolenaar wrote:
>=20
> On Jun 27, 2012, at 4:59 PM, Brooks Davis wrote:
>=20
> > On Tue, Jun 26, 2012 at 09:16:05AM -0700, Simon J. Gerraty wrote:
> >>=20
> >> On Tue, 26 Jun 2012 08:18:05 -0700, Tim Kientzle writes:
> >>> Better idea:  have the build write a textual description of the
> >>> tar entries.  That description can then be fed to tar to build
> >>> the actual tarball.
> >>=20
> >> Yes, that's what we do - manifest files that tar and other tools use to
> >> produce the install images.
> >>=20
> >>> The description format that tar already supports is a variant
> >>> mtree format borrowed from NetBSD.  Each line specifies
> >>> the tar entry fields (filename, owner, permissions, etc) and
> >>> the filename where the file contents are stored.
> >>=20
> >> Yes, we've added that support to makefs - I believe it is already in
> >> -current.  There's still quite a bit to do.
> >=20
> > It's there except that makefs uses the FreeBSD mtree code which doesn't
> > support the crucial absolute path support in NetBSD's mtree.
>=20
> ?
>=20
> I wrote the code and no, it doesn't use FreeBSD mtree code and yes,
> it supports absolute pathnames:
>=20
> 		:
>         cp =3D strchr(pathspec, '/');  =20
>         if (cp !=3D NULL) {
>                 /* Absolute pathname */
>                 mtree_current =3D mtree_root;
> =20
> 		:
>=20
> The code should be compatible with libarchive.
> Maybe there's a bug?

On the first point, two files are used from ../mtree:

$ ident makefs | grep mtree
     $FreeBSD: head/usr.sbin/makefs/mtree.c 223306 2011-06-19 18:34:49Z mar=
cel $
     $FreeBSD: head/usr.sbin/mtree/misc.c 160083 2006-07-03 10:55:22Z maxim=
 $
     $FreeBSD: head/usr.sbin/mtree/spec.c 229403 2012-01-03 18:51:58Z ed $

Here's the failure:

$ mkdir foo
$ touch foo/bar
$ cd foo
$ tar cf ../foo.mtree --format mtree --options mtree:use-set .
$ cd ..
$ cat foo.mtree
#mtree
/set type=3Dfile uname=3Dbrooks uid=3D1001 gname=3Dbrooks gid=3D1001 mode=
=3D644
=2E time=3D1341239212.0 mode=3D755 type=3Ddir
=2E/bar time=3D1341239166.0 size=3D0
=2E/ormat time=3D1341239212.0 size=3D2048
$ makefs  -s 1m -F foo.mtree foo.img foo
makefs: line 4: slash character in file name

and the source of the failure.

$ grep "slash character in file name" /usr/src/usr.sbin/mtree/*
/usr/src/usr.sbin/mtree/spec.c:			errx(1, "line %d: slash character in file=
 name",

-- Brooks

--pWyiEgJYm5f9v55/
Content-Type: application/pgp-signature

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (FreeBSD)

iD8DBQFP8bFpXY6L6fI4GtQRAtgbAJ0SH8spjZCx26KrQZoQNDFp/7HtDwCgklHm
zC01r8uz/OyKrf/3ynqpiuA=
=RJV4
-----END PGP SIGNATURE-----

--pWyiEgJYm5f9v55/--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20120702143418.GA74604>