FAQ Search Today's Posts Mark Forums Read
» Video Reviews

» Linux Archive

Linux-archive is a website aiming to archive linux email lists and to make them easily accessible for linux users/developers.


» Sponsor

» Partners

» Sponsor

Go Back   Linux Archive > Gentoo > Gentoo User

 
 
LinkBack Thread Tools
 
Old 05-22-2012, 06:07 AM
Hans de Graaff
 
Default Understanding new ruby dependencies

On Mon, 21 May 2012 20:52:01 -0700, Chris Stankevitz wrote:

> Question: Is is true that the RUBY dependencies listed in the above
> paste link are entirely due to adding documentation support
> (specifically rdoc)? If so, can I tell portage to not install the rdoc
> stuff? I have USE=-doc already.

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. You can control this with the rdoc USE flag on dev-lang/ruby,
but note that not installing rdoc is probably considered broken by
upstream.

Kind regards,

Hans
 
Old 05-22-2012, 06:01 PM
Chris Stankevitz
 
Default Understanding new ruby dependencies

On Mon, May 21, 2012 at 11:07 PM, Hans de Graaff <graaff@gentoo.org> 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
 
Old 05-22-2012, 06:32 PM
 
Default Understanding new ruby dependencies

On Tue, 22 May 2012 11:01:45 -0700
Chris Stankevitz <chrisstankevitz@gmail.com> 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.
 
Old 05-23-2012, 01:10 AM
Chris Stankevitz
 
Default Understanding new ruby dependencies

On Tue, May 22, 2012 at 11:32 AM, <kwkhui@hkbn.net> 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
 
Old 05-23-2012, 03:16 AM
Michael Orlitzky
 
Default Understanding new ruby dependencies

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
 
Old 05-23-2012, 05:13 AM
 
Default Understanding new ruby dependencies

On Tue, 22 May 2012 23:16:00 -0400
Michael Orlitzky <michael@orlitzky.com> 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.
 
Old 05-23-2012, 06:35 AM
Chris Stankevitz
 
Default Understanding new ruby dependencies

On Tue, May 22, 2012 at 10:13 PM, <kwkhui@hkbn.net> 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
 
Old 05-23-2012, 06:35 AM
Hans de Graaff
 
Default Understanding new ruby dependencies

On Tue, 22 May 2012 18:10:18 -0700, Chris Stankevitz wrote:

> On Tue, May 22, 2012 at 11:32 AM, <kwkhui@hkbn.net> wrote:
>> No! *Don't do that! *Instead, you should add a line
>>
>> RUBY_TARGETS=ruby19

For now this should be

RUBY_TARGETS="ruby18 ruby19"

We currently don't support running with ruby19 only. It might work, we
just don't support it. :-)

> f) [your idea here]

f) It should just have worked.

I tried to be conservative and not add ruby19 in RUBY_TARGETS right away,
but as you have noticed this causes problems for rdoc and friends. I'll
add ruby19 to the default setting in the profile within a few days so
that this problem goes away.

Kind regards,

Hans
 
Old 05-23-2012, 06:37 AM
Chris Stankevitz
 
Default Understanding new ruby dependencies

On Tue, May 22, 2012 at 11:35 PM, Chris Stankevitz
<chrisstankevitz@gmail.com> 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
 
Old 05-23-2012, 07:58 AM
 
Default Understanding new ruby dependencies

On Tue, 22 May 2012 23:35:21 -0700
Chris Stankevitz <chrisstankevitz@gmail.com> wrote:

> On Tue, May 22, 2012 at 10:13 PM, <kwkhui@hkbn.net> 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.
 

Thread Tools




All times are GMT. The time now is 09:03 PM.

VBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.
Copyright 2007 - 2008, www.linux-archive.org