daniel@uunet.uu.net (Dan Smith) (02/02/90)
[Skip the first part if you are already familiar with VL's] I really enjoy using Suns, and recently started using an Apollo as well for a project. One thing that I like in their setup is Variant Links. In a nutshell, the value of an environment variable is used to help resolve a symbolic link. They have something like: usr ---> $(SYSTYPE)/usr so that if $SYSTYPE is "4.3bsd", you get /4.3bsd/usr, and if it is "5.3sysv", you get /5.3sysv/usr. If $SYSTYPE is undefined you end up going nowhere. [end of first part...] I see where variant links would come in handy for allowing several versions of software to coexist in the "same" place. Specifically, I would love to be able to put X11R3, R3 with Motif, and R4 in the "same" place, a la: /usr/include/X11 --> $(XVERSION)/include/X11 or --> /usr/include/$(XVERSION) That way users would just have an environment variable pointing to what they need, and everyone could still go on speaking of "/usr/include/X11" in a generic sense. There are so many applications for this! I think that if the env var is not set, then you should end up at (literal) $(FOO)/whatever, in order to be compatible with some application/user that put "$(" in their filenames (beats me why anyone would do that. but then again...) I think this would have to be done at the kernel level, in order to be transparent to applications. I'm guessing it would be a small change to whatever looks up symbolic links (look for a $(VAR) element, resolve it, and insert it into the pathname). Wish I had the source (nope, I'm not an adb hack!)... Anyone ever do this? (Donning an asbestos overcoat :-) dan dansmith@well.sf.ca.us daniel@island.uu.net unicom!daniel@pacbell.com ph: (415) 332 3278 (h), 491 1000 (w) disclaimer: Island's coffee was laced :-)