Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 14 Feb 2013 18:06:37 -0800
From:      Jeremy Chadwick <jdc@koitsu.org>
To:        Adam McDougall <mcdouga9@egr.msu.edu>
Cc:        "freebsd-stable@freebsd.org" <freebsd-stable@freebsd.org>, Rainer Duffner <rainer@ultra-secure.de>
Subject:   Re: Why does poudriere always rebuild nginx and GraphicsMagick13?
Message-ID:  <20130215020637.GA97558@icarus.home.lan>
In-Reply-To: <20130215012919.GW36563@egr.msu.edu>
References:  <E0D1E20F-8FF1-45D1-8E09-C856FA0E88D6@ultra-secure.de> <20130212221103.GG12760@ithaqua.etoilebsd.net> <6088089D-3E61-4C82-94D4-319E48CF718B@ultra-secure.de> <20130215012919.GW36563@egr.msu.edu>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, Feb 14, 2013 at 08:29:19PM -0500, Adam McDougall wrote:
> On Fri, Feb 15, 2013 at 12:37:19AM +0100, Rainer Duffner wrote:
>   
>   Am 12.02.2013 um 23:11 schrieb Baptiste Daroussin <bapt@freebsd.org>:
>   
>   > On Tue, Feb 12, 2013 at 10:59:28PM +0100, Rainer Duffner wrote:
>   >> Hi,
>   >> 
>   >> poudriere 2.2 here, running on 9.1-amd64
>   >> 
>   >> Of the 730-ish ports, whenever I run a build, it always rebuilds the above two ports.
>   >> Even if nothing changed.
>   
>   ====>> Options changed, deleting: GraphicsMagick-nox11-1.3.16_1.txz
>   ====>> Options changed, deleting: nginx-1.2.6,1.txz
>   
>   Somehow, it thinks the options have changed.
>   Maybe, the options-file has an error?
>   
>   Regards,
>   Rainer
>   
> Try deleting the options file for each and run poudriere twice to test.
> I had the same problem with mailman and it turned out I was missing a
> required but not enforced option due to another option I had selected.

Note: I have no familiarity with this tool or its code.  *sigh*  Oh
look, more shell hell...  :-)

Here's the code for what causes the "Options changed" logic to get
called (I did not include pkg_get_options() nor pkg_cache_dir()
definitions, i.e. functions used within src/poudriere.d/common.sh):

1355         # Check if the compiled options match the current options from make.conf and /var/db/options
1356         if [ "${CHECK_CHANGED_OPTIONS:-no}" != "no" ]; then
1357                 current_options=$(injail make -C /usr/ports/${o} pretty-print-config | tr ' ' '\n' | sed -n 's/^\+\(.*\)/\1/p' | sort | tr '\n' ' ')
1358                 compiled_options=$(pkg_get_options ${pkg})
1359
1360                 if [ "${compiled_options}" != "${current_options}" ]; then
1361                         msg "Options changed, deleting: ${pkg##*/}"
1362                         if [ "${CHECK_CHANGED_OPTIONS}" = "verbose" ]; then
1363                                 msg "Pkg: ${compiled_options}"
1364                                 msg "New: ${current_options}"
1365                         fi
1366                         delete_pkg ${pkg}
1367                         return 0
1368                 fi
1369         fi

Note what the comment says.  I have no idea what /var/db/options is, but
possibly it's referring to /var/db/ports/*/options.

You might try setting CHECK_CHANGED_OPTIONS=verbose (wherever it gets
that from).  It should print something helpful to you which you can use
to work backwards.

-- 
| Jeremy Chadwick                                   jdc@koitsu.org |
| UNIX Systems Administrator                http://jdc.koitsu.org/ |
| Mountain View, CA, US                                            |
| Making life hard for others since 1977.             PGP 4BD6C0CB |



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