Re: [gentoo-user] Re: Understanding new ruby dependencies

2012-05-22 Thread Chris Stankevitz
On Mon, May 21, 2012 at 11:07 PM, Hans de Graaff  wrote:
> Yes, this is true. We do this because normally ruby contains a copy of
> rdoc. We unbundle that and thus the external rdoc implementation is
> installed.

Hans,

Thank you, I understand.

Apparently I have to add some ruby_targets_ruby19 USE flags to my
system.  I pasted a snippet of my /etc/portage/package.use below.  I
included some other entries for context.

Question 1: Is it true that, except for this new RUBY stuff, every
entry in my package.use file is an attempt by me to enable some
feature I want in a package I want?

Answer 1: Yes

Question 2: Does it seem weird that portage wants me to add USE flags
to enable some feature in a package I never heard of and have no
interest in and to top it off has a very weird name
(ruby_targets_ruby19)?

Answer 2: [your answer here]

The tone of this message might sound obnoxious, but it's just a
"trick" I am using to better ask my question.  I'm not complaining (I
don't even know enough about this to have a complaint), I'm really
just curious.

Thank you,

Chris

===

>From /etc/portage/package.use:

# Give a GUI to cmake
dev-util/cmake qt4

# Enable git-svn, gitk, and git bash completion
dev-vcs/git tk bash-completion subversion
dev-vcs/subversion -dso perl

# Enable nice mounts in gnome
gnome-base/gvfs fuse

# Enable plotting in octave
sci-mathematics/octave gnuplot

# Satisfy Gentoo's desire to have RUBY and rdoc installed
dev-ruby/rubygems ruby_targets_ruby19
dev-ruby/rake ruby_targets_ruby19
dev-ruby/racc ruby_targets_ruby19
dev-ruby/rdoc ruby_targets_ruby19
dev-ruby/json ruby_targets_ruby19



Re: [gentoo-user] Re: Understanding new ruby dependencies

2012-05-22 Thread kwkhui
On Tue, 22 May 2012 11:01:45 -0700
Chris Stankevitz  wrote:

> Apparently I have to add some ruby_targets_ruby19 USE flags to my
> system.

No!  Don't do that!  Instead, you should add a line

RUBY_TARGETS=ruby19

in your make.conf (or RUBY_TARGETS="ruby18 ruby19") and let portage do
the USE_EXPAND to ruby_targets_ruby19 (respectively,
ruby_targets_ruby18 ruby_targets_ruby19) itself for the relevant
packages. See ${PORTDIR}/profiles/desc/ruby_targets.desc for
description.  It is much easier and more intuitive this way, since you
are not doing weird things like building package A for ruby18 but not
package B.

> Question 2: Does it seem weird that portage wants me to add USE flags
> to enable some feature in a package I never heard of and have no
> interest in and to top it off has a very weird name
> (ruby_targets_ruby19)?

The "weird" name is a result of USE_EXPANDing RUBY_TARGETS, just like
LINGUAS and SANE_BACKENDS, for example.

Kerwin.


signature.asc
Description: PGP signature


Re: [gentoo-user] Re: Understanding new ruby dependencies

2012-05-22 Thread Chris Stankevitz
On Tue, May 22, 2012 at 11:32 AM,   wrote:
> No!  Don't do that!  Instead, you should add a line
>
> RUBY_TARGETS=ruby19

Kerwin,

Thank you for the warning.  I'm embarrassed to say that I had
absolutely no idea the proper way to deal with this change.  Also
embarrassing is that I never heard of USE_EXPAND before (nor have I
ever even heard of RUBY).

How was I supposed to learn the "proper" way of dealing with this
RUBY-related system change?
a) the gentoo handbook
b) reading ebuild notices
c) reading enews
d) just "should have known"
e) just follow emerge's USE recommendations and I would have been
blissfully ignoring and all would work
f) [your idea here]

Thank you,

Chris



Re: [gentoo-user] Re: Understanding new ruby dependencies

2012-05-22 Thread Michael Orlitzky
On 05/22/2012 09:10 PM, Chris Stankevitz wrote:
> 
> How was I supposed to learn the "proper" way of dealing with this
> RUBY-related system change?

The way I learned was by watching the emerge output:

  $ emerge -pv dev-ruby/rails

  These are the packages that would be merged, in order:

  Calculating dependencies... done!
  [ebuild  N ] app-admin/eselect-rails-0.16  2 kB
  [ebuild  N ] dev-ruby/tmail-1.2.7.1-r2  USE="-debug -doc -test"
  RUBY_TARGETS="ruby18 -jruby -ree18" 436 kB

and wondering, "RUBY_TARGETS, what the hell is that?"

I'm sure there's a proper way, but that's the way I've discovered all of
the USE_EXPAND variables. LINGUAS was the first, then I noticed
ALSA_CARDS, APACHE2_MODULES, XFCE_PLUGINS...

The default list can be found in,

  /usr/portage/profiles/base/make.defaults



Re: [gentoo-user] Re: Understanding new ruby dependencies

2012-05-22 Thread kwkhui
On Tue, 22 May 2012 23:16:00 -0400
Michael Orlitzky  wrote:

> On 05/22/2012 09:10 PM, Chris Stankevitz wrote:
> > 
> > How was I supposed to learn the "proper" way of dealing with this
> > RUBY-related system change?

That change was committed two-and-a-half years ago in the eclass:

http://archives.gentoo.org/gentoo-dev/msg_2305dbeaaf5b02cb74a84c9b06333708.xml

and the Gentoo Ruby project has a section on it

http://www.gentoo.org/proj/en/prog_lang/ruby/index.xml

Actually I learnt the RUBY_TARGETS from flameeyes's blog two years ago

http://blog.flameeyes.eu/2010/02/ruby-ng-package-in-a-bottle-or-learn-how-to-write-a-new-ruby-ebuild

> The way I learned was by watching the emerge output:
> 
>   $ emerge -pv dev-ruby/rails
> 
>   These are the packages that would be merged, in order:
> 
>   Calculating dependencies... done!
>   [ebuild  N ] app-admin/eselect-rails-0.16  2 kB
>   [ebuild  N ] dev-ruby/tmail-1.2.7.1-r2  USE="-debug -doc -test"
>   RUBY_TARGETS="ruby18 -jruby -ree18" 436 kB
> 
> and wondering, "RUBY_TARGETS, what the hell is that?"
> 
> I'm sure there's a proper way, but that's the way I've discovered all
> of the USE_EXPAND variables. LINGUAS was the first, then I noticed
> ALSA_CARDS, APACHE2_MODULES, XFCE_PLUGINS...
> 
> The default list can be found in,
> 
>   /usr/portage/profiles/base/make.defaults

I suggest keeping an eye on ${PORTDIR}/profiles/desc directory too.
This is where every one of the USE_EXPAND variables is explained in
details.

Kerwin.


signature.asc
Description: PGP signature


Re: [gentoo-user] Re: Understanding new ruby dependencies

2012-05-22 Thread Chris Stankevitz
On Tue, May 22, 2012 at 10:13 PM,   wrote:
> I suggest keeping an eye on ${PORTDIR}/profiles/desc directory too.
> This is where every one of the USE_EXPAND variables is explained in
> details.

Thank you for all your patient help.  I've been using Gentoo for years
and for some reason this RUBY thing has me flustered.

1. What on my system is insisting on make.conf RUBY 1.9 USE_EXPAND
changes?  An emerge --tree is not giving me a clear answer (as it
usually does).  The original post in this thread provides a pastebin
link to back up this claim.

2. If the answer to (1) is "the gentoo system itself", then why
doesn't "the gentoo system itself" update the USE_EXPAND by adding a
reference to ruby19?  It appears "the gentoo system itself" presently
only enables the ruby18 USE_EXPAND.
  base $ find /usr/portage/profiles/ | xargs grep RUBY_TARGETS=
  /usr/portage/profiles/base/make.defaults:RUBY_TARGETS="ruby18"

3. If the answer to (1) is "package foo", I'm tempted to remove
package foo or USE it with -ruby or "eat my words" and admit that I am
a RUBY user and need to understand the nuances.

4. I run a "stable" system that is somehow insisting on ruby19.  This
webpage http://www.gentoo.org/proj/en/prog_lang/ruby/index.xml  says
ruby19 is not for use on production systems.  Why the disconnect?
Perhaps the ruby page is just out of date.

5. I have no idea what RUBY is and have never installed it directly.
Yet I have to understand RUBY USE_EXPANDs which seem to be described
only in the RUBY installation guide, gentoo dev manual, or in ebuild
scripting guides.  I am a gentoo "layperson" in general and am
completely clueless about RUBY in particular.  I believe talk about
this "required and automatically installed package" should appear not
in obscure dev documentation, but in the handbook.  Perhaps with more
time/volunteers this would have happened.

6. Why does emerge insist on me adding USE="ruby_targets_ruby19" to a
bunch of projects, yet the users of this group recommend a change in
make.conf?  I suspect the disconnect that the two approaches are
equivalent, just emerge does not have the "street smarts" to recommend
the proper change.

Thank you for listening to me list the issues I am ignorant on.  Now
I'm going to add RUBY_TARGETS="ruby19" to my make.conf and hope things
"just work".

Thank you again,

Chris



Re: [gentoo-user] Re: Understanding new ruby dependencies

2012-05-22 Thread Chris Stankevitz
On Tue, May 22, 2012 at 11:35 PM, Chris Stankevitz
 wrote:
> I'm going to add RUBY_TARGETS="ruby19" to my make.conf and hope things
> "just work".

Sure enough... the update is building now and I bet everything will
indeed "just work".

Thank you,

Chris



Re: [gentoo-user] Re: Understanding new ruby dependencies

2012-05-23 Thread kwkhui
On Tue, 22 May 2012 23:35:21 -0700
Chris Stankevitz  wrote:

> On Tue, May 22, 2012 at 10:13 PM,   wrote:
> > I suggest keeping an eye on ${PORTDIR}/profiles/desc directory too.
> > This is where every one of the USE_EXPAND variables is explained in
> > details.
> 
> Thank you for all your patient help.  I've been using Gentoo for years
> and for some reason this RUBY thing has me flustered.
> 
> 1. What on my system is insisting on make.conf RUBY 1.9 USE_EXPAND
> changes?  An emerge --tree is not giving me a clear answer (as it
> usually does).  The original post in this thread provides a pastebin
> link to back up this claim.

Basically the newslot upgrade ruby 1.8.x -> 1.9.x.

For example, you can see that in
${PORTDIR}/dev-ruby/json/json-1.5.4-r1.ebuild there is the line

PDEPEND="
rdoc? ( >=dev-ruby/rdoc-3.9.4[ruby_targets_ruby19] )
xemacs? ( app-xemacs/ruby-modes )"

Previously in json-1.5.4.ebuild there is no such check, as you can
diff for yourself.

> 2. If the answer to (1) is "the gentoo system itself", then why
> doesn't "the gentoo system itself" update the USE_EXPAND by adding a
> reference to ruby19?  It appears "the gentoo system itself" presently
> only enables the ruby18 USE_EXPAND.
>   base $ find /usr/portage/profiles/ | xargs grep RUBY_TARGETS=
>   /usr/portage/profiles/base/make.defaults:RUBY_TARGETS="ruby18"

That is usual... profile changes lag behind the ebuild changes.

> 4. I run a "stable" system that is somehow insisting on ruby19.  This
> webpage http://www.gentoo.org/proj/en/prog_lang/ruby/index.xml  says
> ruby19 is not for use on production systems.  Why the disconnect?
> Perhaps the ruby page is just out of date.

I suppose ruby19 is in a state similar to python3 --- not ready to be
default since *something* break, but it has been out long enough to be 
considered "stable".

> 5. I have no idea what RUBY is and have never installed it directly.
> Yet I have to understand RUBY USE_EXPANDs which seem to be described
> only in the RUBY installation guide, gentoo dev manual, or in ebuild
> scripting guides.  I am a gentoo "layperson" in general and am
> completely clueless about RUBY in particular.  I believe talk about
> this "required and automatically installed package" should appear not
> in obscure dev documentation, but in the handbook.  Perhaps with more
> time/volunteers this would have happened.

TBH, I'm not a ruby person either.  The only thing here on my system
that pulls in ruby is dev-texlive/texlive-pictures, plus I need ruby
for some random scripts I pulled from the web (which I could have
rewritten in python or bash but I can't be bothered).

> 6. Why does emerge insist on me adding USE="ruby_targets_ruby19" to a
> bunch of projects, yet the users of this group recommend a change in
> make.conf?  I suspect the disconnect that the two approaches are
> equivalent, just emerge does not have the "street smarts" to recommend
> the proper change.

That is how ebuild (and hence portage) works --- it didn't check
RUBY_TARGETS but instead the specified use flags for dependencies
specified the ebuild. Hence the error message is "add use flag bar to
package foo, regardless of whether bar is actually an expanded flag.  As
you see in the example above json ebuild tells portage to check
dev-ruby/rdoc is built with ruby_targets_ruby19 use flag (which is what
RUBY_TARGETS=ruby19 would have expanded to) enabled and so that is what
portage did (and screamed when it can't).

Kerwin.


signature.asc
Description: PGP signature


Re: [gentoo-user] Re: Understanding new ruby dependencies

2012-05-23 Thread Chris Stankevitz
On Tue, May 22, 2012 at 11:35 PM, Hans de Graaff  wrote:
> For now this should be
>
> RUBY_TARGETS="ruby18 ruby19"

As you all suspected, I updated /etc/make.conf, "emerge --newuse
--deep world && emerge -Du world" and all is well.  Here are the lines
I added:

# 2012-MAY-22 ruby19 is required but is not in the profile (yet)
RUBY_TARGETS="ruby18 ruby19"

Thank you all,

Chris