Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
Emerge system and doc flag
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Portage & Programming
View previous topic :: View next topic  
Author Message
cwr
Veteran
Veteran


Joined: 17 Dec 2005
Posts: 1632

PostPosted: Wed Oct 14, 2009 1:52 pm    Post subject: Emerge system and doc flag Reply with quote

I've been trying to build a new system, with the most recent Stage 3 and
portage snapshots, and found that I can no longer emerge anything with
the doc flag set. There have always been a couple of blocks with the
doc flag set, but I can make adjustments for those in package.use.
Now there are a couple of hundred lines of blocks, and no apparent way
to find out where the problem starts.

It's a couple of months since I last installed Gentoo, so I may be out of
touch, but is the doc flag still thought to be usable at all?

Thanks - Will
Back to top
View user's profile Send private message
ssuominen
Developer
Developer


Joined: 30 Sep 2005
Posts: 2000
Location: Finland

PostPosted: Wed Oct 14, 2009 3:23 pm    Post subject: Reply with quote

USE="doc" and USE="debug" are kind of special flags that you should enable only per package in package.use, instead of make.conf. I know it's not well documented issue,
but that's just how it's always been. :?
Back to top
View user's profile Send private message
cwr
Veteran
Veteran


Joined: 17 Dec 2005
Posts: 1632

PostPosted: Wed Oct 14, 2009 7:02 pm    Post subject: Reply with quote

ssuominen wrote:
USE="doc" and USE="debug" are kind of special flags that you should enable only per package in package.use, instead of make.conf. I know it's not well documented issue,
but that's just how it's always been. :?


Well, that's the first I've heard of it; and a Gentoo system without documentation isn't a very useful system.
And if I add the doc flag in package.use I get exactly the same failure anyway.

From early 2005 to early 2009 you could emerge a Gentoo system with "doc" in make.conf and two or three
packages masked out with "-doc" in package.use. It now looks as if several packages have been added to the
"invalid doc flag" list, as well as a couple of other flags. I've been trying to emerge a Gentoo system based on
the 20091006 portage snapshot and stage 3 file, with the USE flags doc, X, and gnome (among others) set in
make.conf. Generally I try to minimise the flags in make.conf, but those three seem widely enough used to
be global settings. After a lot of messing about, I ended up with the following flags in package.use:

> # Used before Oct 2009
> dev-libs/dbus-glib -doc
> sys-apps/dbus -doc
> dev-libs/glib -doc
> # Cannot emerge 2009 system otherwise.
> net-misc/iputils -doc
> net-misc/openssh -X
> media-gfx/graphviz -gnome
> # Cannot emerge 2009 xorg-x11 otherwise.
> x11-libs/libxcb -doc
> media-libs/fontconfig -doc
> # Cannot emerge 2009 gnome otherwise.
> dev-python/jinja2 -doc

There are probably other sets of packages that would have the same effect, but that's the
first that I found. I can't find any reason or method in the list; perhaps you can.

There are still broken system packages, of course - sys-libs/db-4.7.25_p4 won't emerge, due
to some sort of patch mixup, and portage blows up if you give it the doc flag, but once the flags
above are set stuff mostly works.

Will
Back to top
View user's profile Send private message
Mike Hunt
Watchman
Watchman


Joined: 19 Jul 2009
Posts: 5287

PostPosted: Wed Oct 14, 2009 7:28 pm    Post subject: Reply with quote

You can definitely add dev-lang/ruby to the list.
Last time I tried emerging ruby with USE=doc my box nearly went berserk.
Back to top
View user's profile Send private message
cwr
Veteran
Veteran


Joined: 17 Dec 2005
Posts: 1632

PostPosted: Wed Oct 14, 2009 7:35 pm    Post subject: Reply with quote

Mike Hunt wrote:
You can definitely add dev-lang/ruby to the list.
Last time I tried emerging ruby with USE=doc my box nearly went berserk.


That's worth knowing, but I was just checking the stuff that really ought to work,
"emerge system", "emerge xorg-x11" (since most people use it), and possibly
"emerge gnome". Outside that list (and kde, of course) the individual use of
package flags can vary quite widely, so you really have to try it and see what
happens.

Will
Back to top
View user's profile Send private message
ssuominen
Developer
Developer


Joined: 30 Sep 2005
Posts: 2000
Location: Finland

PostPosted: Wed Oct 14, 2009 7:59 pm    Post subject: Reply with quote

cwr wrote:
Well, that's the first I've heard of it; and a Gentoo system without documentation isn't a very useful system.
And if I add the doc flag in package.use I get exactly the same failure anyway.
Will


Oh, default docs are always installed (such as README, ChangeLog and so forth). USE "doc" usually controls internal API docs, useful if you are doing development with the certain package... and similar.
Back to top
View user's profile Send private message
R1zZ1
Tux's lil' helper
Tux's lil' helper


Joined: 24 Jul 2005
Posts: 91
Location: Campobasso-Roma (Italy)

PostPosted: Wed Oct 14, 2009 11:18 pm    Post subject: Reply with quote

I had to disable doc use flag from make.conf, otherwise i couldn't emerge kde-meta-4.3.2....due to a lot of problems with a lot of packages.
Back to top
View user's profile Send private message
cjubon
Guru
Guru


Joined: 03 Jul 2007
Posts: 440
Location: Vienna/Europe

PostPosted: Thu Oct 15, 2009 7:04 am    Post subject: Reply with quote

cwr wrote:
and a Gentoo system without documentation isn't a very useful system

Never heard that before :)
1.) as ssuominen pointed out already, READMEs and so on are installed anyhow, regardless of the doc flag being set or not. Just have a look into /usr/share/doc.
The same is true for man pages—you don't need the doc flag for that.
2.) doc installs additional documentations—just read the relevant USE description:
Code:
grep "doc " /usr/portage/profiles/use.desc
doc - Adds [u]extra[/u] documentation (API, Javadoc, etc.)

3.) I definitely would set the doc flag on a per package basis; in my case, this is only for php and apache
4.) Still, if you do not set it for any package, it's all on the internet—we're in the open source world 8)
5.) just one additional remark: if you want to install the user docs for kde, you need the handbook use flag
_________________
Mandrake Dec 2001 · Debian "Woody" Aug 2002 · Gentoo Jan 2004 · Funtoo Oct 2009
Back to top
View user's profile Send private message
cwr
Veteran
Veteran


Joined: 17 Dec 2005
Posts: 1632

PostPosted: Thu Oct 15, 2009 11:12 am    Post subject: Reply with quote

If I'm going to have to download the documentation (and it's usually included
in the Gentoo packages) then it seems reasonable to make it available. One
of Gentoos main advantages is access to the source code of packages, and
documentation is equally useful. README's are generally short and irrelevant,
where they exist at all.

Until recently there were only three blockers that prevented the use of the doc
flag; now there are four more, and I'm not even sure that you can run
"emerge system" successfully with a global X flag set. (I went round and round
with "X" and "doc", and I don't know exactly where I ended up.) It seems a
point worth noting, especially since new-comers to Gentoo may want to start
by reading the docs. On present form, such an approach would be ill-advised.

Will
Back to top
View user's profile Send private message
Ant P.
Advocate
Advocate


Joined: 18 Apr 2009
Posts: 2204
Location: UK

PostPosted: Thu Oct 15, 2009 3:55 pm    Post subject: Reply with quote

Well if you have a legitimate need to install API documentation for every single library on the system, presumably you have enough technical knowledge to fix the builds yourself...
Back to top
View user's profile Send private message
John R. Graham
Administrator
Administrator


Joined: 08 Mar 2005
Posts: 7394
Location: Somewhere over Atlanta, Georgia

PostPosted: Thu Oct 15, 2009 5:37 pm    Post subject: Reply with quote

There's nothing wrong with the ebuilds.

cwr wrote:
If I'm going to have to download the documentation (and it's usually included in the Gentoo packages) then it seems reasonable to make it available. One of Gentoos main advantages is access to the source code of packages, and documentation is equally useful. README's are generally short and irrelevant, where they exist at all.
I actually agree with you, which is why I took the trouble to learn how to solve the blocks. (I believe you and I have corresponded on this topic before.) I wanted to let you know that I have several full Gentoo systems with the doc USE flag globally enabled. Yes, there were blocks (caused by circular dependencies) initially but they have always been pretty easy to solve. After initial solution, periodic updates run smoothly with no additional (documentation induced circular dependency) blocks. And, yes, I have X installed (and KDE, too). I don't think I've ever spent more than ten or fifteen minutes solving those circular dependencies. The basic technique is as follows:
  • Build the system up to the point that it's self supporting and up to date with the doc USE flag off.
  • Turn the doc USE flag on globally (i.e., in /etc/make.conf).
  • Run
    Code:
    emerge --update --deep --verbose --reinstall=changed-use --tree --pretend @system @world
    and, if there are circular dependencies, note the application at the deepest indented level of the dependency tree (which should be right where the circular dependency turns back on itself).
  • Build that package without the doc USE flag (be sure to use --oneshot; it's just a dependency, after all):
    Code:
    USE="-doc" emerge -1v some_package
    This will also build (at least) the first package in the circle without the doc USE flag. You may also need to build others; there is sometimes a little trial & error involved. Same technique, though.
  • Repeat the previous two steps as necessary until the circle is broken.
  • Run the first example emerge again without --pretend to actually build all those packages with documentation.
The dependencies of the documentation build tools are vast, complex, and sometimes circular. I have a hard time blaming Portage for that. Nevertheless, Portage's heuristics for solving blocks on its own have improved over the last year or two and I expect that it will eventually incorporate more sophisticated heuristics that'll automatically deal with doc USE flag induced circular dependency blocks as well.

Bottom line: this is a minor annoyance, not a big deal.

- John
_________________
This space intentionally left blank.
Back to top
View user's profile Send private message
cwr
Veteran
Veteran


Joined: 17 Dec 2005
Posts: 1632

PostPosted: Thu Oct 15, 2009 9:01 pm    Post subject: Reply with quote

It used to be a minor annoyance; for some reason, this time it turned bloodstained
on me. In fact, I cleared off the filesystem and reloaded the portage snapshot
and stage 3 to check what I'd found, and the only new packages that need
suppressing for "USE=doc emerge system" are in fact libxcb and fontconfig.
Still, after four years with no change, I find that surprising.

Certainly there's nothing wrong with the ebuilds individually; it's when they are
put together that the problems start. I built some dependency graphs for the
main packages I use, and some of them are real rats nests. However, I don't
think that's something that's checked in a build, so it has to be accepted.

Will
Back to top
View user's profile Send private message
John R. Graham
Administrator
Administrator


Joined: 08 Mar 2005
Posts: 7394
Location: Somewhere over Atlanta, Georgia

PostPosted: Fri Oct 16, 2009 10:05 am    Post subject: Reply with quote

Mike Hunt wrote:
You can definitely add dev-lang/ruby to the list.
Last time I tried emerging ruby with USE=doc my box nearly went berserk.
Whereas, on my system, it's just another routine, clean install:
Code:
ceres ~ # emerge -vp ruby

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

Calculating dependencies ... done!
[ebuild  N    ] app-admin/eselect-ruby                                 [20081227]                    0 kB
[ebuild  N    ] app-emacs/ruby-mode                                    [1.8.6]                       0 kB
[ebuild  N    ] dev-lang/ruby                                          [1.8.6_p369]                  USE="berkdb -debug doc emacs -examples gdbm -ipv6 -rubytests -socks5 ssl -threads -tk -xemacs" 0 kB

Total: 3 packages (3 new), Size of downloads: 0 kB
Note that I intentionally unmerged ruby and did a --depclean thereafter to make this fair. To reiterate, once you get past the doc USE flag induced dependencies one time, you no longer have issues.

Given the state my machines are in now, I'll challenge you all to name even one package that I can't install cleanly the first time with the doc USE flag set globally.

- John
_________________
This space intentionally left blank.
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Portage & Programming All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum