It starts to make some sense now. First of all though, you might already be aware of this, but please keep in mind that FreeBSD-10 is basically marked unstable. It's the developers playground so to speak, so while it may work for you now it can just as easily break tomorrow due to applied changes.
vanessa said:
The problem is, that every time a compilation fails, I end up with many packages installed. This prevents going on by simply reconfiguring and building again, because:
1) building them only doesn't work, as dependencies get automatically installed (despite telling the meta port 'make build' only)
First off keep in mind that there are 2 types of dependencies for a port. You have the
run dependency which is required for the port to function, but you also have the so called
build dependencies. These are required to actually build or compile the port. Sometimes they overlap, but very often they don't.
So if you issue
# make build
then all the build dependencies will get automatically installed, simply because the port needs them at this stage. You can check these for yourself by using the
make build-depends-list
while
make run-depends-list
will show you the ports required for usage (see also
ports(7)).
vanessa said:
2) I have to first deinstall the packages, before building them again with different options (or not building them at all because of dropped options). Otherwise I could only force overwriting them by setting FORCE_PKG_REGISTER. Either way it's a mess and a huge time loosing factor.
I wonder if you would be able to use
# make deinstall-all
here. Not sure because the manual page is a bit unclear, but it seems to me as if it would uninstall the main port and all its dependencies.
So this really isn't a bug but simply another type of dependency.
But do keep in mind that using FreeBSD-10 is bound to give you problems and issues like these. The best way to overcome those is to stick with the production version which is FreeBSD-9.2 at the time of writing.
(
Edit):
When going over the thread I suddenly realized that I forgot something I was planning to mention. Better late then never I suppose. Maybe you already know about this, in that case just ignore ]Unix(-like)[/noparse] commandline. So if you're working with a pristine setup (where
root uses the
csh shell) then you could use this when you're inside the ports directory you're working on:
Code:
foreach a (`make build-depends-list`)
make -C $a deinstall clean;
end;
After typing the first line you'll get into special command prompt where you can enter the rest of the commands.
This is also doable in more common shells such as
sh or
bash. Then you'd use something like this:
# for a in `make build-depends-list`; do make -C $a deinstall clean; done
.
Hope this can help too.