Re: Opinion on cross-port OPTIONS CONFLICTS
On Saturday 22 December 2007 03:32:56 pm Edwin Groothuis wrote: > On Sat, Dec 22, 2007 at 11:50:53AM -0600, Josh Paetzel wrote: > > On Friday 21 December 2007 10:33:44 pm Edwin Groothuis wrote: > > > On Fri, Dec 21, 2007 at 09:05:18PM -0600, Josh Paetzel wrote: > > > > > > It also doesn't work if someone runs make rmconfig, or make > > > > > > config again and changes things after the port is installed. > > > > > > > > > > > > It probably doesn't work if a package was used to install either. > > > > > > > > > > Create a slave port audio/arts-withoutnas and let it depends on > > > > > that one. > > > > > > > > I don't think that's a scalable solution. It would create an > > > > explosion of ports in the already taxed tree, as well as confusion as > > > > to which port to install among the users. > > > > > > And what is your solution for this problem? > > > > My initial solution as I posted is to register the OPTIONs used to build > > a port in /var/db/pkg > > And how is that going to resolve the issue earlier suggestions > suffered from with regarding to ports which are not installed yet > but which will be installed as a dependency of this port? > > Edwin Well, my idea was you'd be able to CONFLICT based on OPTIONs set in another port, so at least you could die with a helpful error message if they weren't set properly. -- Thanks, Josh Paetzel PGP: 8A48 EF36 5E9F 4EDA 5A8C 11B4 26F9 01F1 27AF AECB signature.asc Description: This is a digitally signed message part.
Re: Opinion on cross-port OPTIONS CONFLICTS
On Sat, Dec 22, 2007 at 11:50:53AM -0600, Josh Paetzel wrote: > On Friday 21 December 2007 10:33:44 pm Edwin Groothuis wrote: > > On Fri, Dec 21, 2007 at 09:05:18PM -0600, Josh Paetzel wrote: > > > > > It also doesn't work if someone runs make rmconfig, or make config > > > > > again and changes things after the port is installed. > > > > > > > > > > It probably doesn't work if a package was used to install either. > > > > > > > > Create a slave port audio/arts-withoutnas and let it depends on > > > > that one. > > > > > > I don't think that's a scalable solution. It would create an explosion > > > of ports in the already taxed tree, as well as confusion as to which port > > > to install among the users. > > > > And what is your solution for this problem? > > My initial solution as I posted is to register the OPTIONs used to build a > port in /var/db/pkg And how is that going to resolve the issue earlier suggestions suffered from with regarding to ports which are not installed yet but which will be installed as a dependency of this port? Edwin -- Edwin Groothuis |Personal website: http://www.mavetju.org [EMAIL PROTECTED]| Weblog: http://www.mavetju.org/weblog/ ___ freebsd-ports@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-ports To unsubscribe, send any mail to "[EMAIL PROTECTED]"
Re: Opinion on cross-port OPTIONS CONFLICTS
On Friday 21 December 2007 10:33:44 pm Edwin Groothuis wrote: > On Fri, Dec 21, 2007 at 09:05:18PM -0600, Josh Paetzel wrote: > > > > It also doesn't work if someone runs make rmconfig, or make config > > > > again and changes things after the port is installed. > > > > > > > > It probably doesn't work if a package was used to install either. > > > > > > Create a slave port audio/arts-withoutnas and let it depends on > > > that one. > > > > I don't think that's a scalable solution. It would create an explosion > > of ports in the already taxed tree, as well as confusion as to which port > > to install among the users. > > And what is your solution for this problem? > > Edwin My initial solution as I posted is to register the OPTIONs used to build a port in /var/db/pkg -- Thanks, Josh Paetzel PGP: 8A48 EF36 5E9F 4EDA 5A8C 11B4 26F9 01F1 27AF AECB signature.asc Description: This is a digitally signed message part.
Re: Opinion on cross-port OPTIONS CONFLICTS
> > That's why you do slave port with an option toggled, when you need a > > package you can depend on. OPTIONS haven't changed this aspect. > > But you can't readily specify option X enabled, option Y disabled on > that slave port. You can, that's the point. > There may come a time when it's decided to either have vanilla > plists and seperate one(s) with options or dont track plists for non > default options at all. I bet most/many non-default ports don't get > properly packaged anyway as it is. Port needs to package cleanly with any combination of OPTIONS specified. If it doesn't, it needs to be fixed. -- Pav Lucistnik <[EMAIL PROTECTED]> on the road via OpenWebMail ___ freebsd-ports@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-ports To unsubscribe, send any mail to "[EMAIL PROTECTED]"
Re: Opinion on cross-port OPTIONS CONFLICTS
On Fri, Dec 21, 2007 at 09:05:18PM -0600, Josh Paetzel wrote: > > > It also doesn't work if someone runs make rmconfig, or make config again > > > and changes things after the port is installed. > > > > > > It probably doesn't work if a package was used to install either. > > > > Create a slave port audio/arts-withoutnas and let it depends on > > that one. > > I don't think that's a scalable solution. It would create an explosion of > ports in the already taxed tree, as well as confusion as to which port to > install among the users. And what is your solution for this problem? Edwin -- Edwin Groothuis |Personal website: http://www.mavetju.org [EMAIL PROTECTED]| Weblog: http://www.mavetju.org/weblog/ ___ freebsd-ports@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-ports To unsubscribe, send any mail to "[EMAIL PROTECTED]"
Re: Opinion on cross-port OPTIONS CONFLICTS
On Friday 21 December 2007 07:50:59 pm Edwin Groothuis wrote: > On Fri, Dec 21, 2007 at 04:13:46PM -0600, Josh Paetzel wrote: > > On Friday 21 December 2007 03:43:19 pm Edwin Groothuis wrote: > > > On Fri, Dec 21, 2007 at 03:24:20PM -0600, Josh Paetzel wrote: > > > > I've recently run across some brokeness in ports that would be > > > > relatively trivial to deal with if one port had a way to know about > > > > the OPTIONS another port was compiled with. > > > > > > I have been working on it a not-so-long-time-ago and found that > > > this could be the best way: > > > > > > [/var/db/ports/arts] [EMAIL PROTECTED]>cat options > > > # This file is auto-generated by 'make config'. > > > # No user-servicable parts inside! > > > # Options for arts-1.5.1_1,1 > > > _OPTIONS_READ=arts-1.5.1_1,1 > > > WITHOUT_ESD=true > > > WITHOUT_NAS=true > > > > > > [/var/db/ports/arts] [EMAIL PROTECTED]>eval `cat options | grep -v "^\#" > > > | sed > > > -e 's/^/arts_/'` > > > > > > [/var/db/ports/arts] [EMAIL PROTECTED]>echo $arts_WITHOUT_NAS > > > true > > > > > > > > > I hadn't put it in a PR yet because it has some synchronity issues: > > > > > > - It only works for ports already installed. > > > - It doesn't work for ports which are being installed by this port. > > > - No idea how to do this for packages build on ye olde cluster. > > > > > > But the idea is there: > > > > > > OPTIONS_DEPENDS= arts > > > .include > > > .if !defined arts_WITH_NAS > > > BROKEN= Please build audio/arts first before building > > > this port. > > > .fi > > > .if ${arts_WITH_NAS} = "true" > > > BROKEN= This port can't work with audio/arts enabled > > > with NAS > > > support .fi > > > > > > Edwin > > > > It also doesn't work if someone runs make rmconfig, or make config again > > and changes things after the port is installed. > > > > It probably doesn't work if a package was used to install either. > > Create a slave port audio/arts-withoutnas and let it depends on > that one. > > Edwin I don't think that's a scalable solution. It would create an explosion of ports in the already taxed tree, as well as confusion as to which port to install among the users. -- Thanks, Josh Paetzel PGP: 8A48 EF36 5E9F 4EDA 5A8C 11B4 26F9 01F1 27AF AECB signature.asc Description: This is a digitally signed message part.
Re: Opinion on cross-port OPTIONS CONFLICTS
On Fri, Dec 21, 2007 at 04:13:46PM -0600, Josh Paetzel wrote: > On Friday 21 December 2007 03:43:19 pm Edwin Groothuis wrote: > > On Fri, Dec 21, 2007 at 03:24:20PM -0600, Josh Paetzel wrote: > > > I've recently run across some brokeness in ports that would be relatively > > > trivial to deal with if one port had a way to know about the OPTIONS > > > another port was compiled with. > > > > I have been working on it a not-so-long-time-ago and found that > > this could be the best way: > > > > [/var/db/ports/arts] [EMAIL PROTECTED]>cat options > > # This file is auto-generated by 'make config'. > > # No user-servicable parts inside! > > # Options for arts-1.5.1_1,1 > > _OPTIONS_READ=arts-1.5.1_1,1 > > WITHOUT_ESD=true > > WITHOUT_NAS=true > > > > [/var/db/ports/arts] [EMAIL PROTECTED]>eval `cat options | grep -v "^\#" | > > sed -e > > 's/^/arts_/'` > > > > [/var/db/ports/arts] [EMAIL PROTECTED]>echo $arts_WITHOUT_NAS > > true > > > > > > I hadn't put it in a PR yet because it has some synchronity issues: > > > > - It only works for ports already installed. > > - It doesn't work for ports which are being installed by this port. > > - No idea how to do this for packages build on ye olde cluster. > > > > But the idea is there: > > > > OPTIONS_DEPENDS=arts > > .include > > .if !defined arts_WITH_NAS > > BROKEN= Please build audio/arts first before building this port. > > .fi > > .if ${arts_WITH_NAS} = "true" > > BROKEN= This port can't work with audio/arts enabled with NAS > > support > > .fi > > > > Edwin > > It also doesn't work if someone runs make rmconfig, or make config again and > changes things after the port is installed. > > It probably doesn't work if a package was used to install either. Create a slave port audio/arts-withoutnas and let it depends on that one. Edwin -- Edwin Groothuis |Personal website: http://www.mavetju.org [EMAIL PROTECTED]| Weblog: http://www.mavetju.org/weblog/ ___ freebsd-ports@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-ports To unsubscribe, send any mail to "[EMAIL PROTECTED]"
Re: Opinion on cross-port OPTIONS CONFLICTS
On Saturday 22 December 2007 01:29:23 Pav Lucistnik wrote: > Danny Pansters píše v so 22. 12. 2007 v 00:07 +0100: > > How about e.g. LIB_DEPENDS=artsdsp:/usr/portss/[EMAIL PROTECTED] to > > squash two > > flies at once. > > > > The idea being that if the port is not installed it yet, it could be > > built with make WITHOUT_NAS=1 automagically. Something like this is more > > pressing when you need to have a non-default option set in a port you > > depend on. However, you should be very careful to not decide things on > > the users behalf in a port. Consistancy, pola, all that... > > This would not work for the packages. How would you represent such a > dependency line in a package? Hmm, yes, I think I know what you mean. OPTION_DEPENDS has similar problem unless specifically listed in plist + some magic. Bummer. > That's why you do slave port with an option toggled, when you need a > package you can depend on. OPTIONS haven't changed this aspect. But you can't readily specify option X enabled, option Y disabled on that slave port. I'm not sure if we'd actually want this now, considering the baggage (esp with pkgs, I barely considered them). You can always do local "discovery" inside a particular port by looking at installed files, or grepping ldd, or other specific hackery -- including grepping on /var/db/ports/foo/options -- and you will be able to cater to that port's needs that way and guide (not force) the user. Even this is hard, if not impossible to put into packages/plist. There may come a time when it's decided to either have vanilla plists and seperate one(s) with options or dont track plists for non default options at all. I bet most/many non-default ports don't get properly packaged anyway as it is. What I mean is, that maybe we shouldn't even try to support packaging non-default builds, and leave it to the person behind the keyboard instead. Not because I like this option so much, but because I fear something like that is going to be inevitable in the near future. Are you, or any other folks, aware of any projects (not ones that were recently on this ML!! :) that are working on a radical modernization of ports? Not that I feel we necessary need one here and now, but I'm interested in any (serious, as in code) ports-v2 efforts. cmake has many useful ports-like features. Cheers, Dan ___ freebsd-ports@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-ports To unsubscribe, send any mail to "[EMAIL PROTECTED]"
Re: Opinion on cross-port OPTIONS CONFLICTS
> I bet most/many non-default ports don't get properly packaged anyway as > it is. I meant: ports with non-default OPTIONS. Sorry. ___ freebsd-ports@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-ports To unsubscribe, send any mail to "[EMAIL PROTECTED]"
Re: Opinion on cross-port OPTIONS CONFLICTS
--On December 22, 2007 12:07:45 AM +0100 Danny Pansters <[EMAIL PROTECTED]> wrote: I like the idea to do something with options. Optionifying ports is all nice and well, but to make it meaningful, ports should be able to know about each other's options. I actually have been working a bit on a proposal that was similar (it remained in brainstorm phase though ;-). How about e.g. LIB_DEPENDS=artsdsp:/usr/portss/[EMAIL PROTECTED] to squash two flies at once. Another way to address this would be to create a fourth "tuple". Right now the convention is file:portdir:target. Why not have file:portdir:target:option. The problem with this whole subject is, what do you do if a port depends on another port *and* requires that _more_than_one_option be true? My idea doesn't solve that *unless* you allow a comma separated list or something similar. I think, if you're going to make ports OPTIONS aware, you *must* be able to both determine if a port is already installed with or without the option *and* install it with the necessary options if it's not already installed. The idea being that if the port is not installed it yet, it could be built with make WITHOUT_NAS=1 automagically. Something like this is more pressing when you need to have a non-default option set in a port you depend on. However, you should be very careful to not decide things on the users behalf in a port. Consistancy, pola, all that... OTOH, if you can't build your port without a dependency including an option, why not mark the port as BROKEN unless the correct file is in place? The first tuple already checks for that, right? So, instead of checking for the default file, check for something the OPTION would install. So: LIB_DEPENDS=ldap.so:net/openldap for without the OPTION or LIB_DEPENDS=ldapfoo.so:net/openldap for with the OPTION That doesn't solve *installing* the dependency correctly without some other construct such as the fourth tuple though. Paul Schmehl ([EMAIL PROTECTED]) Senior Information Security Analyst The University of Texas at Dallas http://www.utdallas.edu/ir/security/ ___ freebsd-ports@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-ports To unsubscribe, send any mail to "[EMAIL PROTECTED]"
Re: Opinion on cross-port OPTIONS CONFLICTS
Danny Pansters píše v so 22. 12. 2007 v 00:07 +0100: > How about e.g. LIB_DEPENDS=artsdsp:/usr/portss/[EMAIL PROTECTED] to > squash two > flies at once. > > The idea being that if the port is not installed it yet, it could be built > with make WITHOUT_NAS=1 automagically. Something like this is more pressing > when you need to have a non-default option set in a port you depend on. > However, you should be very careful to not decide things on the users behalf > in a port. Consistancy, pola, all that... This would not work for the packages. How would you represent such a dependency line in a package? That's why you do slave port with an option toggled, when you need a package you can depend on. OPTIONS haven't changed this aspect. -- Pav Lucistnik <[EMAIL PROTECTED]> <[EMAIL PROTECTED]> Orfax's hip flask contained Old Janx Spirit, a mixture of potions of stupidity, paralysis, naivery, ruination, lose memories, confusion, and slime mold juice, with a twist of lemon. - from a post on Angband Community Forum signature.asc Description: Toto je digitálně podepsaná část zprávy
Re: Opinion on cross-port OPTIONS CONFLICTS
On Friday 21 December 2007 22:43:19 Edwin Groothuis wrote: > On Fri, Dec 21, 2007 at 03:24:20PM -0600, Josh Paetzel wrote: > > I've recently run across some brokeness in ports that would be relatively > > trivial to deal with if one port had a way to know about the OPTIONS > > another port was compiled with. > > I have been working on it a not-so-long-time-ago and found that > this could be the best way: > > [/var/db/ports/arts] [EMAIL PROTECTED]>cat options > # This file is auto-generated by 'make config'. > # No user-servicable parts inside! > # Options for arts-1.5.1_1,1 > _OPTIONS_READ=arts-1.5.1_1,1 > WITHOUT_ESD=true > WITHOUT_NAS=true > > [/var/db/ports/arts] [EMAIL PROTECTED]>eval `cat options | grep -v "^\#" | > sed -e > 's/^/arts_/'` > > [/var/db/ports/arts] [EMAIL PROTECTED]>echo $arts_WITHOUT_NAS > true > > > I hadn't put it in a PR yet because it has some synchronity issues: > > - It only works for ports already installed. > - It doesn't work for ports which are being installed by this port. > - No idea how to do this for packages build on ye olde cluster. > > But the idea is there: > > OPTIONS_DEPENDS= arts > .include > .if !defined arts_WITH_NAS > BROKEN= Please build audio/arts first before building this port. > .fi > .if ${arts_WITH_NAS} = "true" > BROKEN= This port can't work with audio/arts enabled with NAS > support > .fi > > Edwin I like the idea to do something with options. Optionifying ports is all nice and well, but to make it meaningful, ports should be able to know about each other's options. I actually have been working a bit on a proposal that was similar (it remained in brainstorm phase though ;-). How about e.g. LIB_DEPENDS=artsdsp:/usr/portss/[EMAIL PROTECTED] to squash two flies at once. The idea being that if the port is not installed it yet, it could be built with make WITHOUT_NAS=1 automagically. Something like this is more pressing when you need to have a non-default option set in a port you depend on. However, you should be very careful to not decide things on the users behalf in a port. Consistancy, pola, all that... Cheers, Dan ___ freebsd-ports@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-ports To unsubscribe, send any mail to "[EMAIL PROTECTED]"
Re: Opinion on cross-port OPTIONS CONFLICTS
On Friday 21 December 2007 03:43:19 pm Edwin Groothuis wrote: > On Fri, Dec 21, 2007 at 03:24:20PM -0600, Josh Paetzel wrote: > > I've recently run across some brokeness in ports that would be relatively > > trivial to deal with if one port had a way to know about the OPTIONS > > another port was compiled with. > > I have been working on it a not-so-long-time-ago and found that > this could be the best way: > > [/var/db/ports/arts] [EMAIL PROTECTED]>cat options > # This file is auto-generated by 'make config'. > # No user-servicable parts inside! > # Options for arts-1.5.1_1,1 > _OPTIONS_READ=arts-1.5.1_1,1 > WITHOUT_ESD=true > WITHOUT_NAS=true > > [/var/db/ports/arts] [EMAIL PROTECTED]>eval `cat options | grep -v "^\#" | > sed -e > 's/^/arts_/'` > > [/var/db/ports/arts] [EMAIL PROTECTED]>echo $arts_WITHOUT_NAS > true > > > I hadn't put it in a PR yet because it has some synchronity issues: > > - It only works for ports already installed. > - It doesn't work for ports which are being installed by this port. > - No idea how to do this for packages build on ye olde cluster. > > But the idea is there: > > OPTIONS_DEPENDS= arts > .include > .if !defined arts_WITH_NAS > BROKEN= Please build audio/arts first before building this port. > .fi > .if ${arts_WITH_NAS} = "true" > BROKEN= This port can't work with audio/arts enabled with NAS > support > .fi > > Edwin It also doesn't work if someone runs make rmconfig, or make config again and changes things after the port is installed. It probably doesn't work if a package was used to install either. -- Thanks, Josh Paetzel PGP: 8A48 EF36 5E9F 4EDA 5A8C 11B4 26F9 01F1 27AF AECB signature.asc Description: This is a digitally signed message part.
Re: Opinion on cross-port OPTIONS CONFLICTS
On Fri, Dec 21, 2007 at 03:24:20PM -0600, Josh Paetzel wrote: > I've recently run across some brokeness in ports that would be relatively > trivial to deal with if one port had a way to know about the OPTIONS another > port was compiled with. I have been working on it a not-so-long-time-ago and found that this could be the best way: [/var/db/ports/arts] [EMAIL PROTECTED]>cat options # This file is auto-generated by 'make config'. # No user-servicable parts inside! # Options for arts-1.5.1_1,1 _OPTIONS_READ=arts-1.5.1_1,1 WITHOUT_ESD=true WITHOUT_NAS=true [/var/db/ports/arts] [EMAIL PROTECTED]>eval `cat options | grep -v "^\#" | sed -e 's/^/arts_/'` [/var/db/ports/arts] [EMAIL PROTECTED]>echo $arts_WITHOUT_NAS true I hadn't put it in a PR yet because it has some synchronity issues: - It only works for ports already installed. - It doesn't work for ports which are being installed by this port. - No idea how to do this for packages build on ye olde cluster. But the idea is there: OPTIONS_DEPENDS=arts .include .if !defined arts_WITH_NAS BROKEN= Please build audio/arts first before building this port. .fi .if ${arts_WITH_NAS} = "true" BROKEN= This port can't work with audio/arts enabled with NAS support .fi Edwin -- Edwin Groothuis |Personal website: http://www.mavetju.org [EMAIL PROTECTED]| Weblog: http://www.mavetju.org/weblog/ ___ freebsd-ports@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-ports To unsubscribe, send any mail to "[EMAIL PROTECTED]"