Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 10 Dec 2008 21:11:25 +0300
From:      Dmitry Marakasov <amdmi3@amdmi3.ru>
To:        Ashish Shukla =?utf-8?B?4KSG4KS24KWA4KS3IOCktuClgeCkleCljeCksg==?= <wahjava.ml@gmail.com>
Cc:        FreeBSD Ports Mailing List <freebsd-ports@freebsd.org>
Subject:   Re: [PROPOSAL] Ports using SCM repositories as source instead of distfiles
Message-ID:  <20081210181125.GA86341@hades.panopticon>
In-Reply-To: <8763lsi10m.fsf@chateau.d.lf>
References:  <87fxkxjywk.fsf@chateau.d.lf> <20081209143052.GA29817@hades.panopticon> <873agxjn1x.fsf@chateau.d.lf> <20081209181354.GB29817@hades.panopticon> <87tz9di38u.fsf@chateau.d.lf> <20081209222042.GC29817@hades.panopticon> <8763lsi10m.fsf@chateau.d.lf>

next in thread | previous in thread | raw e-mail | index | archive | help
* Ashish Shukla =E0=A4=86=E0=A4=B6=E0=A5=80=E0=A4=B7 =E0=A4=B6=E0=A5=81=E0=
=A4=95=E0=A5=8D=E0=A4=B2 (wahjava.ml@gmail.com) wrote:

> > Current DESTDIR implementation uses chroot and obviously requires
> > complete system installed in DESTDIR. Also installing a port will
> > install all dependencies in the chroot as well.
>=20
> The Debian package building system, also expects the package files in a
> directory named ${packageroot}/debian/${packagename}/ which you can
> install by doing 'make install DESTDIR=3Ddebian/${packagename}' in
> ${packageroot} directory (the directory where you've extracted the
> package tarball, similar to the FreeBSD's ${WRKSRC} directory.
>=20
> So, my idea is to specify "make -C ${WRKSRC} install DESTDIR=3D/var/tmp=
/${PORTNAME}"
> in the "install" target of port's Makefile, not to be confused with
> upstream package's Makefile. And I think you confused it with passing
> 'DESTDIR' variable to 'make' commandline to start port building
> procedure:

How do you expect all ports to respect DESTDIR in their Makefiles,
while many ports don't even use make? As I've said, that will require
tremendous amount of hacking and is not even possible sometimes.

> > My idea however is monitor all filesystem writes by port's make and a=
ll
> > descendant processes. That may be done with monitoring or replacing
> > syscalls and may be done with LD_PRELOAD or some *trace kernel
> > facilities. The former is what I'm currently experimenting with.
>=20
> This is also a cool way if something like this can be hacked ? How abou=
t
> using truss or other syscall tracing facilities, hmm..?

Truss uses ptrace(2). There are other facilities, but they are less
useable - ktrace (produces too much output, needs to be enabled in
kernel) and dtrace (only available in current for now, also should
be enabled in kernel).

--=20
Dmitry Marakasov   .   55B5 0596 FF1E 8D84 5F56  9510 D35A 80DD F9D2 F77D
amdmi3@amdmi3.ru  ..:  jabber: amdmi3@jabber.ru    http://www.amdmi3.ru



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