On 8/20/11 7:52 AM, Kostik Belousov wrote: > On Sat, Aug 20, 2011 at 07:09:49AM -0400, Glen Barber wrote: >> Hi, >> >> I would like to propose a change to bsd.port.mk which, similarly to >> obtaining the OSVERSION, checks if the system on which a port is being >> built is a jailed environment. >> >> This change can allow port maintainers to mark ports that do not run in >> jailed environments as IGNORE, or adjust PKG_MESSAGE to inform the user >> of special conditions or changes that will be needed to run a port from >> within a jail. One particular example of the latter is >> databases/postgresql*-server, where the user must enable >> security.jail.sysvipc_allowed. I am sure this feature could expand to >> other cases I have not considered yet, as well. > > I do not think this is good idea. The machine or environment where > the port is built sometimes (or, in my setups, quite often) is not > the same as where it is run. Your proposal gives a tool to tightly > tie the ports to build environments, that is detrimental for some > setups, and also diminish the value of packaging. IMHO.
Hi Kostik, Thank you for the comments. I had neglected that some package building environments are jails with the intent to install the packages on physical hardware or other non-jailed environment, so this change would break those environments. I had only tested the patches in a tinderbox environment. One thing I can think of off-hand to fix this in that case is setting a local environment variable to disable a check for security.jail.jailed. Would this be an ok solution for those cases? If not, I happily agree that this change should not be made then. I have an updated patch to bsd.port.mk that looks for a local environment variable, PKGJAIL - if it is set, then JAILED is unset. Would this be acceptable? Regards, Glen -- Glen Barber | g...@freebsd.org FreeBSD Documentation Project
--- bsd.port.mk.orig 2011-08-12 12:39:23.000000000 -0400 +++ bsd.port.mk 2011-08-20 08:07:12.656834897 -0400 @@ -46,6 +46,7 @@ # "FreeBSD," "NetBSD," or "OpenBSD" as appropriate. # OSREL - The release version (numeric) of the operating system. # OSVERSION - The value of __FreeBSD_version. +# JAILED - The system is a FreeBSD jail. # # This is the beginning of the list of all variables that need to be # defined in a port, listed in order that they should be included @@ -1196,6 +1197,15 @@ .endif .endif +# Check if the system is a jail +.if !defined(JAILED) +. if !defined(PKGJAIL) +JAILED!= ${SYSCTL} -n security.jail.jailed +. else +JAILED= +. endif +.endif + MASTERDIR?= ${.CURDIR} .if ${MASTERDIR} != ${.CURDIR}
signature.asc
Description: OpenPGP digital signature