Date: Sat, 22 Mar 2008 08:54:34 +0100 From: Alexander Leidinger <Alexander@Leidinger.net> To: Boris Samorodov <bsam@ipt.ru> Cc: freebsd-emulation@FreeBSD.org Subject: Re: add LINUX_OSRELEASE to bsd.linux-rpm.mk Message-ID: <20080322085434.10838040@deskjail> In-Reply-To: <98037310@ipt.ru> References: <07011489@ipt.ru> <20080321115227.zkcrs6rvc4c8s004@webmail.leidinger.net> <98037310@ipt.ru>
next in thread | previous in thread | raw e-mail | index | archive | help
Quoting Boris Samorodov <bsam@ipt.ru> (Sat, 22 Mar 2008 03:56:49 +0300): > E.g. if someone is going to install, say print/acroread7, then the > system should detect which ports (upon which acroread depends): either > x11-toolkits/linux-pango (current 2.4.2 port) or > x11-toolkits/linux_k26-pango (future 2.6.16 port). When I look at k26 somehow I feel some dislike, but as I don't have any better idea... you chose the color. > That may be done by using: > 1) the value from compat.linux.osrelease sysctl; > 2) OSREL value (e.g. if OSREL>8000XX, etc.); > 3) a pre-defined value; > 4) checking for a file (contents). > > The first one is more strict. The system is configured (linux kernel > module loaded, compat.linux.osrelease sysctl is set). There should be > no side effects or astonishments when running a linux application. > > The second one can be used but only when we get at least one branch > with non 2.4.2 linux emulation by default. > > The third one may be usefull for package building/jails (though this > case needs some more investigation). We need to ask portmgr about this. In the long term 2) should be enough, but in case we switch the default during a stable branch (I don't know if we do it, it may or may not be a good idea), we may stick with the old ones for the entire branch until the version which has 2.4 as the default is not supported anymore. > The forth one may also be used, but seems to be non-reliable: > . files tend to change their names (redhat-release, fedora-release, > etc.) and internal structure; > . files may got staled after OS upgrading and so on. Forget 4). > So, the value of LINUX_OSRELEASE is used to set a value to a new > variable LINUX_PORT_SUFFIX. Here is a proof of concept (though it LINUX_OSRELEASE_SUFFIX sounds more intuitive for mem but if you want to stick with LINUX_PORT_SUFFIX, it's ok for me. > partially works for me). The idea (as usual is stolen from our > x11/gnome (thanks!) teams. Ah, don't pay attention to actual paths, > they are given only as examples. > ----- > .if ${LINUX_OSRELEASE} == "2.6.16" > LINUX_PORT_SUFFIX= _k26 > .else > LINUX_PORT_SUFFIX= > .endif > > expat_FILE= ${LINUXBASE}/usr/lib/libexpat.so.0 > expat_k26_FILE= ${LINUXBASE}/lib/libexpat.so.1 > expat_DETECT= ${expat${LINUX_PORT_SUFFIX}_FILE} > expat_PORT= ${PORTSDIR}/textproc/linux${LINUX_PORT_SUFFIX}-expat > ----- > > The value ${expat_DETECT}:${expat_PORT} will be: > . ${LINUXBASE}/usr/lib/libexpat.so.0:${PORTSDIR}/textproc/linux-expat > (for LINUX_OSRELEASE other than 2.6.16); > . ${LINUXBASE}/lib/libexpat.so.1:${PORTSDIR}/textproc/linux_k26-expat > (for 2.6.16). > > Then a port's Makefile may use a variable USE_LINUX_APPS to show used > linux infrastructure ports (instead of using them at XXX_DEPENDS): > ----- > USE_LINUX_APPS= expat > ----- [...] > That concept may be introduced now even before the default for > linux.osrelease is changed. Current linux infrastructure ports > may not be touched -- they'll work as usual. Other linux ports may be > transferred one-by-one. And we'll get some application testing with > new linux infrastructure ports before official annouce of the change. > > That path seems to be soft and quiet, with least astonishment. I agree, this is well done. Where do we have to introduce the *_PORT stuff? Do we need a bsd.linux.mk, or can the bsd.linux-rpm.mk be used for this? The strict answer may be no, but do we want to be that strict? Bye, Alexander. -- I'm frequently appalled by the low regard you Earthmen have for life. -- Spock, "The Galileo Seven", stardate 2822.3 http://www.Leidinger.net Alexander @ Leidinger.net: PGP ID = B0063FE7 http://www.FreeBSD.org netchild @ FreeBSD.org : PGP ID = 72077137
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20080322085434.10838040>