Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
Portage 2.2, the new features
View unanswered posts
View posts from last 24 hours

Goto page 1, 2  Next  
Reply to topic    Gentoo Forums Forum Index Portage & Programming
View previous topic :: View next topic  
Author Message
node_one
Apprentice
Apprentice


Joined: 07 Apr 2008
Posts: 165

PostPosted: Thu Jun 19, 2008 3:45 pm    Post subject: Portage 2.2, the new features Reply with quote

Is there a place where I can get more information about the new portage 2.2 features, particularly about packages sets. I tried searching, but did not find what I was looking for. I would like to know if/how users can create and manage package sets. Are package sets going to replace meta packages like kde-meta? Also, is portage 2.2 going to be on the 2008.0 media or stage3?
Back to top
View user's profile Send private message
kernelOfTruth
Watchman
Watchman


Joined: 20 Dec 2005
Posts: 5345
Location: Vienna, Austria; Germany; hello world :)

PostPosted: Thu Jun 19, 2008 4:19 pm    Post subject: Re: Portage 2.2, the new features Reply with quote

node_one wrote:
Is there a place where I can get more information about the new portage 2.2 features, particularly about packages sets. I tried searching, but did not find what I was looking for. I would like to know if/how users can create and manage package sets. Are package sets going to replace meta packages like kde-meta? Also, is portage 2.2 going to be on the 2008.0 media or stage3?


google , I haven't found more than that (& am also interested, keep this thread updated, if you find more)

thanks
_________________
Unofficial minimal livecd x86/amd64 w/reiser4+truecrypt (by Neo2)
2.6.37.2_plus_v1: BFS, CFS,THP,compaction, zcache or TOI
Hardcore Linux user since 2004 :D
Back to top
View user's profile Send private message
Thargor
Apprentice
Apprentice


Joined: 23 Dec 2005
Posts: 239
Location: Bamberg/Germany

PostPosted: Thu Jun 19, 2008 8:31 pm    Post subject: Reply with quote

edit: First draft of an upgrade guide by genone: http://dev.gentoo.org/~genone/docs/portage-2.2-upgrade-doc
You should treat my post as a quick overview and read the link above because genone knows portage a lot better than me ;).

Note that parts of the upgrade doc only apply to the not yet released _rc2

Here are some facts I know:

  • No, it's not going to be on 2008.0, as these snapshots were taken a few weeks(/months?) ago and it is still package.masked nowadays.
  • Set support. It works like this:
    Code:
    emerge @setname
    Note that system and world are also sets, but can be used without the @, Just like it was before,
    Code:
    emerge world
    Also note, that world no longer includes system by default. Use this to revert to the old behaviour:
    Code:
    emerge --noreplace system
    If you want system to stay out of world, you have to use -1/--oneshot every time you emerge system.
    There is also a set that contains all installed packages. It is called @everything in <=_rc1, but has been renamed and will be @all-installed in >=_rc2
  • USE DEPENDENCIES[1]! (please paludis folks, stop telling others it will take 6 years for this to get into portage ;) (No offense ment, it's just that I read that a few times in the past)
    For the ones which are not into ebuild developing that much: This will kill the anoying 'you have to build foo with useflag bar to emerge this package' messages.
  • FEATURES="preserve-libs": This is basically revdep-rebuild integrated into portage. It tells you when you have to use it with a message like this:
    Code:
    !!! existing preserved libs:
    >>> package: media-libs/mesa-7.1_rc1
     *  - /usr/lib64/libGLU.so.1.3
     *  - /usr/lib64/libGLU.so.1.3.070003
    Then you can use it like this:
    Code:
    emerge -1av @preserved-rebuild

    And, another advantage over revdep-rebuild: things keep working, because it keeps the old libraries around until you reemerge things. It still has some issues, like preserving to much libs through. Note that this is on by default
  • FEATURES="unemerge-orphans": portage Now removes files, even if they have changed since they were installed. edit: It seems this is there since portage-2.1.3
  • -* in package.keywords:
    Code:
    cat/foo -*
    This no longer means that foo will be installed when it has KEYWORDS="-*", but that no keywords are matched (so you can mask things that way) To install things with KEYWORDS="-*", use this:
    Code:
    cat/foo **

  • --keep-going (will be in _rc2): With this option, emerge tries to continue when a package fails, but drops all packages with unsatisfied dependencies.
    Example:
    Code:
    [ebuild  N    ] app-misc/foo-1
    [ebuild  N    ]  app-misc/bar-2
    [ebuild  N    ] app-misc/baz-1.5
    Let's assume bar-2 fails --> foo-1 cannot be emerged, but emerge will install baz-1.5, because none of it's deps failed.
    Note that --skipfirst also works that way now (is already in _rc1). So if you use emerge --resume --skipfirst in the case above after it failed (without --keep-going), it will refuse to install foo-1. To restore the old behaviour, use --resume --skipfirst --nodeps
    (actually, --keep-going is the result of this new --skipfirst behaviour)


[1] http://bugs.gentoo.org/2272,http://bugs.gentoo.org/174406

That's pretty much everything that comes to my mind right now.

Also check out
http://sources.gentoo.org/viewcvs.py/portage/main/trunk/RELEASE-NOTES?view=markup
and
http://sources.gentoo.org/viewcvs.py/portage/main/trunk/NEWS?view=markup
And, for what will come in the future:
http://sources.gentoo.org/viewcvs.py/portage/main/trunk/TODO?view=markup

EDIT: corrected name of preserve-libs FEATURE and added note about unemerge-orphans being there since 2.1.3
EDIT: added --keep-going, which will be in _rc2 and note about changed --skipfirst, which already is in _rc1
EDIT: added genone's upgrade guide draft and note about the @everything/@all-installed set
_________________
Ideas are bulletproof


Last edited by Thargor on Sun Jun 29, 2008 9:19 am; edited 3 times in total
Back to top
View user's profile Send private message
Etal
Veteran
Veteran


Joined: 15 Jul 2005
Posts: 1580

PostPosted: Fri Jun 20, 2008 12:14 am    Post subject: Reply with quote

Thanks Thargor! :D
_________________
“And even in authoritarian countries, information networks are helping people discover new facts and making governments more accountable.”– Hillary Clinton, Jan. 21, 2010
Back to top
View user's profile Send private message
node_one
Apprentice
Apprentice


Joined: 07 Apr 2008
Posts: 165

PostPosted: Fri Jun 20, 2008 8:40 pm    Post subject: Reply with quote

Thanks from me too. I just noticed that 2.2_rc1 is now showing up as testing (~) so I guess I will be able to try out some of the new features very soon.
Back to top
View user's profile Send private message
i92guboj
Moderator
Moderator


Joined: 30 Nov 2004
Posts: 9313
Location: Córdoba (Spain)

PostPosted: Fri Jun 20, 2008 9:14 pm    Post subject: Reply with quote

Moved from Gentoo Chat to Portage & Programming.
_________________
Gentoo Handbook
Back to top
View user's profile Send private message
tranquilcool
Veteran
Veteran


Joined: 25 Mar 2005
Posts: 1030

PostPosted: Sat Jun 21, 2008 4:00 pm    Post subject: Reply with quote

/var/lib/portage/world: Validation failed at line: 1444, data kdegraphics-scm*


how can i get over this?
_________________
this is a strange strange world.
Back to top
View user's profile Send private message
Thargor
Apprentice
Apprentice


Joined: 23 Dec 2005
Posts: 239
Location: Bamberg/Germany

PostPosted: Sun Jun 22, 2008 4:29 pm    Post subject: Reply with quote

You installed a set from the genkdesvn overlay using paludis, but this set is not recognised/supported by portage.
Either uninstall it using paludis and use portage or stay with paludis, usind both at the same time can lead to problems.
_________________
Ideas are bulletproof
Back to top
View user's profile Send private message
Grahammm
Tux's lil' helper
Tux's lil' helper


Joined: 01 Sep 2004
Posts: 81
Location: Berkshire UK

PostPosted: Sun Jun 22, 2008 4:36 pm    Post subject: Re: Portage 2.2, the new features Reply with quote

node_one wrote:
Is there a place where I can get more information about the new portage 2.2 features, particularly about packages sets?


file:///usr/share/doc/portage-2.2_rc1/html/index.html
Back to top
View user's profile Send private message
widremann
Veteran
Veteran


Joined: 14 Mar 2005
Posts: 1312

PostPosted: Mon Jun 23, 2008 1:11 am    Post subject: Reply with quote

Wow, none of this documentation anywhere tells you how to create a fucking set. That's really great. I am trying to use kdesvn overlay and it says install the sets to the "appropriate location", except that nobody ever tells you where the hell that is. None of these links that have been provided explain how to create your own sets. Perhaps somebody here can explain it since apparently it's so obvious that it need not be documented ever.
Back to top
View user's profile Send private message
spielc
Guru
Guru


Joined: 20 Apr 2004
Posts: 447

PostPosted: Mon Jun 23, 2008 10:49 am    Post subject: Reply with quote

widremann wrote:
Wow, none of this documentation anywhere tells you how to create a fucking set. That's really great. I am trying to use kdesvn overlay and it says install the sets to the "appropriate location", except that nobody ever tells you where the hell that is. None of these links that have been provided explain how to create your own sets. Perhaps somebody here can explain it since apparently it's so obvious that it need not be documented ever.


Well the standard location is /etc/portage/sets (this can be changed somehow but i forgot how to do it..) and in this directory you define your sets. Each set is a file which contains package atoms. The name of the set is the name of the file. For example:

/etc/portage/sets/svn
Code:

dev-util/subversion
dev-util/rapidsvn


now you can emerge this set like this:

Code:
emerge -pv @svn
Back to top
View user's profile Send private message
widremann
Veteran
Veteran


Joined: 14 Mar 2005
Posts: 1312

PostPosted: Mon Jun 23, 2008 11:19 am    Post subject: Reply with quote

spielc wrote:
widremann wrote:
Wow, none of this documentation anywhere tells you how to create a fucking set. That's really great. I am trying to use kdesvn overlay and it says install the sets to the "appropriate location", except that nobody ever tells you where the hell that is. None of these links that have been provided explain how to create your own sets. Perhaps somebody here can explain it since apparently it's so obvious that it need not be documented ever.


Well the standard location is /etc/portage/sets (this can be changed somehow but i forgot how to do it..) and in this directory you define your sets. Each set is a file which contains package atoms. The name of the set is the name of the file. For example:

/etc/portage/sets/svn
Code:

dev-util/subversion
dev-util/rapidsvn


now you can emerge this set like this:

Code:
emerge -pv @svn

Thank you very much. That's all I wanted to know :). Don't know why it's so hard to document that...
Back to top
View user's profile Send private message
Genone
Retired Dev
Retired Dev


Joined: 14 Mar 2003
Posts: 8690
Location: beyond the rim

PostPosted: Mon Jun 23, 2008 11:26 am    Post subject: Reply with quote

widremann wrote:
Thank you very much. That's all I wanted to know :). Don't know why it's so hard to document that...

Well, it is documented in the sets.cond docs when you know what to look for (description of multi-set config of StaticFileSet), it's just difficult to find when you're not familiar with the backend stuff. I'm planning to add some more user-friendly docs soon though to explain the new stuff a bit better.
Back to top
View user's profile Send private message
Thargor
Apprentice
Apprentice


Joined: 23 Dec 2005
Posts: 239
Location: Bamberg/Germany

PostPosted: Mon Jun 23, 2008 11:29 am    Post subject: Reply with quote

You can do even nicer things:
Code:
[live]
class = portage.sets.shell.CommandOutputSet
command = find /var/db/pkg -type d -iname '*9999*' | sed -e 's#^/var/db/pkg/#=#g'


This gives you a '@live' set that contains every installed package with 9999 in it's version or name.
There are probably nicer ways of doing that, like querying the vdb through portage for the version, but I don't know how to do that.
_________________
Ideas are bulletproof
Back to top
View user's profile Send private message
spielc
Guru
Guru


Joined: 20 Apr 2004
Posts: 447

PostPosted: Mon Jun 23, 2008 1:22 pm    Post subject: Reply with quote

Thargor wrote:
You can do even nicer things:
Code:
[live]
class = portage.sets.shell.CommandOutputSet
command = find /var/db/pkg -type d -iname '*9999*' | sed -e 's#^/var/db/pkg/#=#g'


This gives you a '@live' set that contains every installed package with 9999 in it's version or name.
There are probably nicer ways of doing that, like querying the vdb through portage for the version, but I don't know how to do that.


ah now that's something really nice and helpful. Thanks for the tip
Back to top
View user's profile Send private message
arnvidr
Guru
Guru


Joined: 19 Aug 2004
Posts: 441
Location: Oslo, Norway

PostPosted: Mon Jun 23, 2008 7:27 pm    Post subject: Reply with quote

spielc wrote:
Thargor wrote:
You can do even nicer things:
Code:
[live]
class = portage.sets.shell.CommandOutputSet
command = find /var/db/pkg -type d -iname '*9999*' | sed -e 's#^/var/db/pkg/#=#g'


This gives you a '@live' set that contains every installed package with 9999 in it's version or name.
There are probably nicer ways of doing that, like querying the vdb through portage for the version, but I don't know how to do that.


ah now that's something really nice and helpful. Thanks for the tip


Where do you put these lines?
_________________
Noone wrote:
anything
Back to top
View user's profile Send private message
spielc
Guru
Guru


Joined: 20 Apr 2004
Posts: 447

PostPosted: Mon Jun 23, 2008 8:20 pm    Post subject: Reply with quote

arnvidr wrote:
spielc wrote:
Thargor wrote:
You can do even nicer things:
Code:
[live]
class = portage.sets.shell.CommandOutputSet
command = find /var/db/pkg -type d -iname '*9999*' | sed -e 's#^/var/db/pkg/#=#g'


This gives you a '@live' set that contains every installed package with 9999 in it's version or name.
There are probably nicer ways of doing that, like querying the vdb through portage for the version, but I don't know how to do that.


ah now that's something really nice and helpful. Thanks for the tip


Where do you put these lines?


You can define this things in /etc/portage/sets.conf
Back to top
View user's profile Send private message
arnvidr
Guru
Guru


Joined: 19 Aug 2004
Posts: 441
Location: Oslo, Norway

PostPosted: Tue Jun 24, 2008 5:58 am    Post subject: Reply with quote

spielc wrote:
arnvidr wrote:
spielc wrote:
Thargor wrote:
You can do even nicer things:
Code:
[live]
class = portage.sets.shell.CommandOutputSet
command = find /var/db/pkg -type d -iname '*9999*' | sed -e 's#^/var/db/pkg/#=#g'


This gives you a '@live' set that contains every installed package with 9999 in it's version or name.
There are probably nicer ways of doing that, like querying the vdb through portage for the version, but I don't know how to do that.


ah now that's something really nice and helpful. Thanks for the tip


Where do you put these lines?


You can define this things in /etc/portage/sets.conf


Cool, thanks :)
_________________
Noone wrote:
anything
Back to top
View user's profile Send private message
Arfrever
Bodhisattva
Bodhisattva


Joined: 29 Apr 2006
Posts: 2462
Location: Polska / Lenkija

PostPosted: Tue Jun 24, 2008 10:26 am    Post subject: Reply with quote

Thargor wrote:
  • FEATURES="unemerge-orphans": portage Now removes files, even if they have changed since they were installed


This feature has been available since Portage 2.1.3.
Back to top
View user's profile Send private message
Bloodsurfer
Guru
Guru


Joined: 07 Dec 2005
Posts: 359
Location: Germany (Saarland)

PostPosted: Wed Jun 25, 2008 1:27 pm    Post subject: Reply with quote

Thargor wrote:
You can do even nicer things:
Code:
[live]
class = portage.sets.shell.CommandOutputSet
command = find /var/db/pkg -type d -iname '*9999*' | sed -e 's#^/var/db/pkg/#=#g'


This gives you a '@live' set that contains every installed package with 9999 in it's version or name.
There are probably nicer ways of doing that, like querying the vdb through portage for the version, but I don't know how to do that.


I suggest 'qlist -sIv | grep 9999 | xargs -n1 -i echo ={}', it works much faster as command.
_________________
SiberianSniper: my girlfriend's name ends with .c
Clete2: Uber geek! W00t! I'd rather have it end in .cpp... <insert name>.cpp
Dralnu: ...why not <name>.o? Then she's ready for linking...
SiberianSniper: or <name>.ko, so she's ready for insertion?
Back to top
View user's profile Send private message
r0bertz
Developer
Developer


Joined: 13 Sep 2004
Posts: 257
Location: HKSAR,China

PostPosted: Wed Jun 25, 2008 3:10 pm    Post subject: Reply with quote

Thargor wrote:

FEATURES="preserved-rebuild"


I think there is a confusion here, or at least a typo, :)
the FEATURE is called "preserve-libs"
the set is called "preserved-rebuild"

and the "preserve-libs" features is default on, so no need to specify it in make.conf
check /etc/make.globals
Code:
# Enable for global testing
FEATURES="${FEATURES} preserve-libs"

_________________
Zhang Le, Robert
http://zhangle.is-a-geek.org
Back to top
View user's profile Send private message
Thargor
Apprentice
Apprentice


Joined: 23 Dec 2005
Posts: 239
Location: Bamberg/Germany

PostPosted: Wed Jun 25, 2008 3:33 pm    Post subject: Reply with quote

Bloodsurfer wrote:
I suggest 'qlist -sIv | grep 9999 | xargs -n1 -i echo ={}', it works much faster as command.


r0bertz: Thanks for the corrections, I knew it was default, so I actually never looked up the name of the FEATURE
I'll edit my previous post.

Arfrever: Didn't know that, I'll add that too
_________________
Ideas are bulletproof
Back to top
View user's profile Send private message
arnvidr
Guru
Guru


Joined: 19 Aug 2004
Posts: 441
Location: Oslo, Norway

PostPosted: Thu Jun 26, 2008 7:33 am    Post subject: Reply with quote

Bloodsurfer wrote:
Thargor wrote:
You can do even nicer things:
Code:
[live]
class = portage.sets.shell.CommandOutputSet
command = find /var/db/pkg -type d -iname '*9999*' | sed -e 's#^/var/db/pkg/#=#g'


This gives you a '@live' set that contains every installed package with 9999 in it's version or name.
There are probably nicer ways of doing that, like querying the vdb through portage for the version, but I don't know how to do that.


I suggest 'qlist -sIv | grep 9999 | xargs -n1 -i echo ={}', it works much faster as command.


This didn't work for me in sets.conf. I had to add the C flag to qlist to remove colours, and then it worked.
_________________
Noone wrote:
anything
Back to top
View user's profile Send private message
tranquilcool
Veteran
Veteran


Joined: 25 Mar 2005
Posts: 1030

PostPosted: Thu Jun 26, 2008 7:35 am    Post subject: Reply with quote

arnvidr wrote:
Bloodsurfer wrote:
Thargor wrote:
You can do even nicer things:
Code:
[live]
class = portage.sets.shell.CommandOutputSet
command = find /var/db/pkg -type d -iname '*9999*' | sed -e 's#^/var/db/pkg/#=#g'


This gives you a '@live' set that contains every installed package with 9999 in it's version or name.
There are probably nicer ways of doing that, like querying the vdb through portage for the version, but I don't know how to do that.


I suggest 'qlist -sIv | grep 9999 | xargs -n1 -i echo ={}', it works much faster as command.


This didn't work for me in sets.conf. I had to add the C flag to qlist to remove colours, and then it worked.


can you specify the exact command that worked for you?
thanks.
_________________
this is a strange strange world.
Back to top
View user's profile Send private message
arnvidr
Guru
Guru


Joined: 19 Aug 2004
Posts: 441
Location: Oslo, Norway

PostPosted: Thu Jun 26, 2008 9:32 am    Post subject: Reply with quote

tranquilcool wrote:
arnvidr wrote:
Bloodsurfer wrote:
Thargor wrote:
You can do even nicer things:
Code:
[live]
class = portage.sets.shell.CommandOutputSet
command = find /var/db/pkg -type d -iname '*9999*' | sed -e 's#^/var/db/pkg/#=#g'


This gives you a '@live' set that contains every installed package with 9999 in it's version or name.
There are probably nicer ways of doing that, like querying the vdb through portage for the version, but I don't know how to do that.


I suggest 'qlist -sIv | grep 9999 | xargs -n1 -i echo ={}', it works much faster as command.


This didn't work for me in sets.conf. I had to add the C flag to qlist to remove colours, and then it worked.


can you specify the exact command that worked for you?
thanks.

Code:
qlist -sIvC | grep 9999 | xargs -n1 -i echo ={}

_________________
Noone wrote:
anything
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
Goto page 1, 2  Next
Page 1 of 2

 
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