New version of the fakeroot patch
Baptiste Daroussin
baptiste.daroussin at gmail.com
Mon Dec 14 15:15:05 UTC 2009
Hi all,
I have updated the fakeroot patch, it now can apply on an uptodate version of
the ports.
http://www.freebsd.org/cgi/query-pr.cgi?pr=ports/133815
For information the fakeroot patch is a port of the midnightbsd's mports fakeroot
to freebsd's ports.
What it does:
- it is optional: you can activate it globally with USE_FAKE=yes in
/etc/make.conf or per ports by adding USE_FAKE=yes in the ports Makefile
- it create a fakeroot directory in the WRKDIR where all the binary are
installed first
- then it creates a package using the plist and finding its files only in the
fakeroot directory
- in the end it installs the created packages
- it respects the DESTDIR implementation (it is not the same kind of feature nor
the same goal)
- it does not require any modification on actual ports (except for those which
are already not clean) but will allow to cleanup some ports if wanted.
Why this patch:
- it prevents installing crufts thing on users systems (only what is found in
the plist is really installed, so the package is always clean)
I now that porters should take care of not breaking the plist, but it often
happens, helping them by a system that completly use the plist file is IMHO a
better thing, and it prevents users from being inpacted by a lazy porter.
- it allow to create tinderbox that does not need to install a ports to get the
package build, only build-depends ports will be installed
- it allow easier handling of NOPORTDOCS, NOPORTEXAMPLES and so on, because it
creates the packages first using plist to know which files should be packaged,
the porter should only take care of one case, the case everything is
installed, then he adapts the plists to have or not some files depending on
the options the user have.
This should cleanup a lot some ports, and should easier the respectness of
some porting guidelines
What could be done:
because it generates packages first we could imagine some lint programs that
analyse the package content to test that it respects some of the freebsd
recommandation for packages (usefull for porters), it could help the validation
of new/update ports submission and help preventting commiting buggy stuff.
Limitation:
this path (currently activable on depend) add from disk usage than the way ports
actually works:
without the patch:
build -> copy on the filesystem
with the path:
build -> copy-on-fakeroot->package_building->package-installing
In the future it could be improved by provinding a version of pkg_create that
fake the package creation by directly install on FS so that could become
build->copy-on-fakeroot->package-installing
This patch is not yet complete, it should work with classical ports that use
gmake or make and with python, I have only done that currenly as a proof of
concept.
Tell me if you think that this patch could be interesting or not
Regards,
Bapt
More information about the freebsd-ports
mailing list