Issue #16574 has been updated by Stephen Ryan.
We are running Gentoo with the most common version of puppet being 2.7.18, eix
at 0.25.5. It runs fine for 99% of packages. My comments above were for running
eix from the commandline.
Eix on Gentoo did change its database version a few months back which caused a
load of our hosts to report package failures like the above until eix-sync was
run. Given Marc is running Funtoo, not stock Gentoo, it probably relates to
this.
*eix-0.23.6 (16 Jan 2012)
16 Jan 2012; Jeremy Olexa <[email protected]> +eix-0.23.6.ebuild:
Version bump, small bug fixes including Gentoo bug 397589 and new cache
method (mainly for Funtoo Linux usage)
----------------------------------------
Bug #16574: Gentoo's eix program seems to have changed it's syntax which breaks
puppet
https://projects.puppetlabs.com/issues/16574#change-76196
Author: Marc Richter
Status: Needs More Information
Priority: Normal
Assignee: Marc Richter
Category: Gentoo
Target version:
Affected Puppet version:
Keywords: eix, version, LASTVERSION, installedversions, bestversion
Branch:
Hi everyone!
When I understand how puppet works package-resources in Gentoo correctly, it
uses the program "eix" on Gentoo hosts to determine package states and
versions. That way, the manifest:
<pre>package { 'media-gfx/exif':
ensure => installed,
}</pre>
is executed on the node like this:
/usr/bin/eix --nocolor --pure-packages --stable --format <category> <name>
[<installedversions:LASTVERSION>] [<bestversion:LASTVERSION>] <homepage>
<description> --exact --category-name media-gfx/exif
Refering to eix manpage, the syntax you are using with
"[<installedversions:LASTVERSION>]" and "[<bestversion:LASTVERSION>]" isn't
valid:
<pre>
FORMATSTRING
A formatstring can contain conditional blocks, package properties,
colors and normal strings. If a formatstring expands to the empty string for a
package, also the trailing newline is not printed. Thus you can put the whole
formatstring
into a conditional block to output only packages matching the
conditional. An example of this wrapping is given below.
....
Package properties
Names that refer to specific properties of the package that is currently
printed. If used to print a property, the name must be enclosed in square
brackets (i.e. "<name>").
name, category, homepage, licenses
The name, category, homepage and licenses for the current package.
availableversions:VARIABLE, availableversions:VARIABLE:VARSLOTS
For each version, print the content of the
configuration/environment variable with name VARIABLE, interpreting it as a
format string. If the second form is used and at least one slot of the package
is nontrivial, then VARSLOTS is
used instead of VARIABLE, and the versions are sorted according
to slots.
To avoid a misunderstanding: It is not possible to enter the
required format directly after the colon. Instead, the required format must be
stored in a new variable, and VARIABLE and VARSLOTS are only the names of these
variables.
Useful examples for VARIABLE are NAMEVERSION,
EQNAMEVERSION, EQNAMEVERSION, ANAMESLOT, ANAMEASLOT, NAMESLOT, NAMEASLOT or
DATESORT. Here, ANAMESLOT and ANAMEASLOT are meant to be used in the second
form, i.e. in availableverā
sions:ANAMESLOT:ANAMESLOT or
availableversions:ANAMEASLOT:ANAMEASLOT (Mnemonic: ASLOT prints the slot
always). Moreover, NAMESLOT, NAMEASLOT and DATESORT makes sense only for
installed versions. See eix --dump to see the variables
in detail.
markedversions:VARIABLE, markedversions:VARIABLE:VARSLOTS
This is analogous to availableversions with the difference that
only marked versions are printed.
bestversion:VARIABLE, bestversion*:VARIABLE, bestslotversions:VARIABLE,
bestslotversions*:VARIABLE, bestslotupgradeversions:VARIABLE,
bestslotupgradeversions*:VARIABLE
This is analogous to availableversions with the difference
that only the best version resp. the best versions of each slot are printed.
For the variants with * also unstable versions are accepted. For the variants
with upgrade
only those versions are selected which probably will appear after
the upgrade.
installedversions:VARIABLE
This is analogous to availableversions with the difference that
only installed versions are printed.
....
</pre>
That seems to be the reason why the result for "installedversions" and
"bestversion" is empty:
vagrant-funtoo64 / # /usr/bin/eix --nocolor --pure-packages --stable
--format '<category> <name> [<installedversions:LASTVERSION>]
[<bestversion:LASTVERSION>] <homepage> <description>' --exact --category-name
media-gfx/exif
media-gfx exif [] [] http://libexif.sourceforge.net/ Small CLI util to show
EXIF infos hidden in JPEG files
vagrant-funtoo64 / #
If you call eix like this, the result seems to be more like what you expected:
vagrant-funtoo64 / # /usr/bin/eix --nocolor --pure-packages --stable
--format '<category> <name> [<installedversions:IVERSIONS_COMPACT>]
[<bestversion:AVERSIONS_COMPACT>] <homepage> <description>' --exact
--category-name media-gfx/exif
media-gfx exif [0.6.21] [0.6.21] http://libexif.sourceforge.net/ Small CLI
util to show EXIF infos hidden in JPEG files
vagrant-funtoo64 / #
These are the true versions as you can see with the folowing non-formated eix -
call:
<pre>
vagrant-funtoo64 / # eix media-gfx/exif
[I] media-gfx/exif
Available versions: 0.6.21 {{nls}}
Installed versions: 0.6.21(10:46:25 AM 09/06/2012)(nls)
Homepage: http://libexif.sourceforge.net/
Description: Small CLI util to show EXIF infos hidden in JPEG files
[I] media-gfx/exiftags
Available versions: 1.01
Installed versions: 1.01(10:44:56 AM 09/06/2012)
Homepage: http://johnst.org/sw/exiftags/
Description: Extracts JPEG EXIF headers from digital camera photos
Found 2 matches.
vagrant-funtoo64 / #
</pre>
--
You have received this notification because you have either subscribed to it,
or are involved in it.
To change your notification preferences, please click here:
http://projects.puppetlabs.com/my/account
--
You received this message because you are subscribed to the Google Groups
"Puppet Bugs" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/puppet-bugs?hl=en.