Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 30 Jan 2009 01:40:27 +0300
From:      Boris Samorodov <bsam@ipt.ru>
To:        freebsd-ports@FreeBSD.org
Subject:   Run-time auto-detection is harmful for packages
Message-ID:  <13578868@bs1.sp34.ru>

next in thread | raw e-mail | index | archive | help
Hello List,


I'd like to be better safe than sorry, but... You know, things may
happen.

I prefer to use packages for installing/updating since there are at
least five personal machines which I should take care of (at work, at
home, my relatives, backups, etc.) and a bunch of servers at
$dayjob. But there is imho an inconsistency when an auto-detection is
involved.

Please note, that I'll speak about default environment. And this is
not about gnome packages. The latter are just an example.

Here is an example. I'm able to install lang/fpc-units only IFF
there is no x11/gnome2 installed! If x11/gnome2 is installed
then audio/esound is installed. One of lang/fpc-units dependencies
(audio/libmikmod) has an auto-detection at the Makefile:
-----
.if ${HAVE_GNOME:Mesound}!=""
USE_GNOME+=     esound
CONFIGURE_ARGS+=        --enable-esd
PKGNAMESUFFIX=  -esound
.else
CONFIGURE_ARGS+=        --disable-esd
.endif
-----

Hence:
-----
# (cd /usr/ports/audio/libmikmod; make -V PKGNAME)
libmikmod-esound-3.1.11_2
-----

But this package has never been packaged (note: with default
environment). I can do nothing at my side (you remember, I use
packages) after I had installed default packaged x11/gnome2.

My proposal is dual.

1. Give an administrator a key to disable that super intelligence ;-)
   and replace the line
   .if ${HAVE_GNOME:Mesound}!=""
   with the line
   .if (${HAVE_GNOME:Mesound}!="" || defined(WITH_ESOUND)) && !defined(WITHOUT_ESOUND)

   That will give an administrator an opportunity to unbreak per host
   some currently broken package installation/update.

2. Create slave ports to build (non-default so far) packages for those
   who want to use packages and were unfortunate to install packages
   used for auto-detection by other packages.

   As an example here may be a slave port audio/libmikmod-esound with
   CONFIGURE_ARGS+=--enable-esd at makefile.

BTW, this is a long standing (several years at least) trouble with my
PCs while updating gnome, xorg etc. Only now I had some time to detect
the problem.

Well, thanks for reading so far. And what do you think?


WBR
-- 
Boris Samorodov (bsam)
Research Engineer, http://www.ipt.ru Telephone & Internet SP
FreeBSD committer, http://www.FreeBSD.org The Power To Serve



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?13578868>