Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[NEWS] Final step to smaller, better Portage tree
View unanswered posts
View posts from last 24 hours

Goto page Previous  1, 2  
Reply to topic    Gentoo Forums Forum Index Gentoo Chat
View previous topic :: View next topic  
Author Message
nyhm
Developer
Developer


Joined: 22 Oct 2005
Posts: 26
Location: UK

PostPosted: Tue Feb 05, 2008 6:19 pm    Post subject: Re: Bit missleading Reply with quote

Betelgeuse wrote:
Portage has been filtering digests from --sync for quite a while so the only difference users are going to see is a potentially faster sync as the server side doesn't have the digests any more.


All of the Manifest files are smaller too.
Back to top
View user's profile Send private message
dberkholz
Retired Dev
Retired Dev


Joined: 18 Mar 2003
Posts: 1008
Location: Minneapolis, MN, USA

PostPosted: Tue Feb 05, 2008 6:30 pm    Post subject: Re: Bit missleading Reply with quote

nyhm wrote:
Betelgeuse wrote:
Portage has been filtering digests from --sync for quite a while so the only difference users are going to see is a potentially faster sync as the server side doesn't have the digests any more.


All of the Manifest files are smaller too.

I use pkgcore, and it never made that change so at least my tree is that much smaller. =)
Back to top
View user's profile Send private message
dol-sen
Retired Dev
Retired Dev


Joined: 30 Jun 2002
Posts: 2805
Location: Richmond, BC, Canada

PostPosted: Tue Feb 05, 2008 11:17 pm    Post subject: Reply with quote

For all those interested in the porthole --[bad/missing] digest problem. It has been fixed in cvs for a long, long long time now. Unfortunately I had not had the time to finish some relatively important feature enhancements & subsequent bugs. I do believe I have everything important fixed now and will be releasing porthole-0.6.0 very soon. I just have to update the install files and ebuild.

see this thread for more about porthole.

Thanks.
_________________
Brian
Porthole, the Portage GUI frontend irc@freenode: #gentoo-guis, #porthole, Blog
layman, gentoolkit, CoreBuilder, esearch...
Back to top
View user's profile Send private message
brankob
Apprentice
Apprentice


Joined: 29 Apr 2004
Posts: 188

PostPosted: Wed Feb 06, 2008 8:01 am    Post subject: well, colour me stupid, but... Reply with quote

I never undesrstood the need for digest as a separate entity anyway.

What is it for ? To protect ebuild from third party tampering ? If so, what should protect digest itself from tampering ?

Why can't each ebuild simply be "signed" at the end so that for each "good"ebuild certain hash function gives same result ?

This way, one wouldn't have to have separate file for the digest ( and so spare those almost 4K and extra filessek).... :roll:
Back to top
View user's profile Send private message
mottmar
Tux's lil' helper
Tux's lil' helper


Joined: 13 Nov 2005
Posts: 103
Location: Genoa, Italy

PostPosted: Wed Feb 06, 2008 8:57 am    Post subject: Re: well, colour me stupid, but... Reply with quote

brankob wrote:
I never undesrstood the need for digest as a separate entity anyway.

What is it for ? To protect ebuild from third party tampering ? If so, what should protect digest itself from tampering ?

Why can't each ebuild simply be "signed" at the end so that for each "good"ebuild certain hash function gives same result ?

This way, one wouldn't have to have separate file for the digest ( and so spare those almost 4K and extra filessek).... :roll:

Well the digest isn't only about the ebuild. It's meant to test the integrity of the source tarball too! Imagine if a sources mirror was tampered with... you upload a new source for the login command and you have instant backdoors. And people won't even think of this because they have compiled the source themselves, how can it be malicious code!?
And yes, if someone breaks the gentoo portage mirrors AND the source mirrors, then all hell can break loose ...
_________________
The box said "Requires Windows 95 or better." I can't understand why it won't work on my Linux computer.
Back to top
View user's profile Send private message
brankob
Apprentice
Apprentice


Joined: 29 Apr 2004
Posts: 188

PostPosted: Wed Feb 06, 2008 9:57 am    Post subject: Reply with quote

Yes, but digest in-ebuild could adress that, too.

Once you know that you can trust that ebuild, you can use it to check package files...
Back to top
View user's profile Send private message
jlh
Tux's lil' helper
Tux's lil' helper


Joined: 06 May 2007
Posts: 145
Location: Switzerland::Zürich

PostPosted: Wed Feb 06, 2008 1:50 pm    Post subject: Reply with quote

If you question the separate digest files, you could also question a number of other things about the layout of the portage tree. But it all boils down to the problem that almost all files in the tree are very small, which is highly inefficient unless you mount it on a separate filesystem with smaller blocks; but even then, you're still stuck with like 100'000 files which is still awfully slow to handle.

I was thinking about just having a zip files for every package, which would contain the ebuilds for all versions, the metadata, digest, change log, and patches. This would help with the small-file problem at the cost of having to fix all tools that need to read that tree and at the cost of that it's more difficult to manually access the files. But I bet 10'000 files would sync much faster than 100'000 files.

But then I suddenly wondered why my system has to store and regularly update the exact build instructions and patches for various versions of 10'000 packages that I will probably never ever care about. Talk about a waste of time! Of course, my system should know about which packages exist, so that I can search for them, but that doesn't mean it needs to store and update the entire ebuild and patches for of them. So I was wondering if it would be possible to replace the entire portage tree with a list (database, files, whatever) of available packages in each available version, with its name, description, dependencies and of course digests, just enough information so that I can query that list for available packages and build the dependency tree without net access. But the ebuilds themselves would only be downloaded from a mirror when I really ask it to install the package; and at that time you need net access anyway in order to download the tarball. Such a list of packages would still contain enough informations to do most tasks offline, but would be much much smaller and faster to sync, since it won't contain patches and build instructions.

But maybe this idea is flawed somehow... comments?
Back to top
View user's profile Send private message
brankob
Apprentice
Apprentice


Joined: 29 Apr 2004
Posts: 188

PostPosted: Wed Feb 06, 2008 2:06 pm    Post subject: Reply with quote

my thoughts exactly.

Also, instead of having one ebuild for each version of the package one could have one file, which could have several parts, possibly with first part done as conventional ebuild and other parts diffed relative to first part for subsequent versions or somesuch.

I think that with multiversion ebuilds and without the requirement for client to actually rsync whole tree for each update things could be much lighter and snappier.

Also, it would be fine to have decent default provision for emerging binary, precompiled packages, if possible without the need to have exact same gcc and options as the prebuilt packages.
Back to top
View user's profile Send private message
brankob
Apprentice
Apprentice


Joined: 29 Apr 2004
Posts: 188

PostPosted: Wed Feb 06, 2008 2:10 pm    Post subject: Reply with quote

Oh, and it would be nice to have the tool to prune distfiles map, sine after some time it accumulates many unneeded packages.

Same goes for packages map ( when keeping the source of built packages )

Just at the moment I saw original post about smaller portage tree I did du -sh /usr/portage and got something over 18GB ! 8O

After emptying distfiles and packages and redownloading all disfiles again final number is around 3.7 GB with distfiles for some 970 packages...
Back to top
View user's profile Send private message
jlh
Tux's lil' helper
Tux's lil' helper


Joined: 06 May 2007
Posts: 145
Location: Switzerland::Zürich

PostPosted: Wed Feb 06, 2008 3:21 pm    Post subject: Reply with quote

brankob wrote:
Oh, and it would be nice to have the tool to prune distfiles map
Good point, the ebuilds contain information about which files are ok to keep around (source of currently installed packages, might be necessary again when a new -r version gets released) and which files are ok to remove (source of previous versions). Yet there seems to be no way to use that information to delete old sources.

I wrote a small perl script that cleans the distfiles so that there is always only the latest version of every tarball around, but it doesn't work well for some packages.
Back to top
View user's profile Send private message
BlackEdder
Advocate
Advocate


Joined: 26 Apr 2004
Posts: 2588
Location: Dutch enclave in Egham, UK

PostPosted: Wed Feb 06, 2008 3:27 pm    Post subject: Reply with quote

jlh wrote:
brankob wrote:
Oh, and it would be nice to have the tool to prune distfiles map
Good point, the ebuilds contain information about which files are ok to keep around (source of currently installed packages, might be necessary again when a new -r version gets released) and which files are ok to remove (source of previous versions). Yet there seems to be no way to use that information to delete old sources.
Eclean does this. Eclean is part of the gentoolkit package.
Back to top
View user's profile Send private message
mikegpitt
Advocate
Advocate


Joined: 22 May 2004
Posts: 3224

PostPosted: Thu Feb 07, 2008 5:16 am    Post subject: Reply with quote

If I use a few overlays with the digest files stored the old way, will things get automatically updated to the new digests when I run the 1st emerge, or is it backwards compatible?
Back to top
View user's profile Send private message
Genone
Retired Dev
Retired Dev


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

PostPosted: Thu Feb 07, 2008 9:30 am    Post subject: Reply with quote

mikegpitt wrote:
If I use a few overlays with the digest files stored the old way, will things get automatically updated to the new digests when I run the 1st emerge, or is it backwards compatible?

All existing overlays should already use Manifest2, the digest files aren't needed if they exist and will gradually go away when the overlay maintainers update to newer portage versions.
Back to top
View user's profile Send private message
swimmer
Veteran
Veteran


Joined: 15 Jul 2002
Posts: 1330
Location: Netherlands

PostPosted: Thu Feb 07, 2008 1:29 pm    Post subject: Reply with quote

What about the personal overlay in /usr/local/portage? Do I have to use /usr/local/portage/manifest1_obsolete then?

Please give some advice :)

Greetz
swimmer
Back to top
View user's profile Send private message
Genone
Retired Dev
Retired Dev


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

PostPosted: Thu Feb 07, 2008 2:00 pm    Post subject: Reply with quote

swimmer wrote:
What about the personal overlay in /usr/local/portage? Do I have to use /usr/local/portage/manifest1_obsolete then?

You can if you want to get rid of the old digest files, but you don't have to as you're already using the new system for about two years ;)
Back to top
View user's profile Send private message
E001754
Guru
Guru


Joined: 01 Aug 2004
Posts: 442
Location: Paris, France

PostPosted: Fri Feb 08, 2008 9:37 pm    Post subject: Reply with quote

Voltago wrote:
StifflerStealth wrote:
What's the official command?

Code:
emerge =portage-2.1.4.1


If this is the command for upgrading the portage and therefore having only one manifest file instead of many which makes a gain of 200 Mb on harddrive, why is this ebuild "hard masked" ??? 8O
Back to top
View user's profile Send private message
tanderson
Retired Dev
Retired Dev


Joined: 11 Apr 2007
Posts: 193

PostPosted: Fri Feb 08, 2008 10:11 pm    Post subject: Reply with quote

E001754 wrote:
Voltago wrote:
StifflerStealth wrote:
What's the official command?

Code:
emerge =portage-2.1.4.1


If this is the command for upgrading the portage and therefore having only one manifest file instead of many which makes a gain of 200 Mb on harddrive, why is this ebuild "hard masked" ??? 8O


That command is to upgrade to a version of portage that won't make digest files. This is only necessary for people that are developers/have an overlay. If you are just a regular user, this doesn't affect you and your current portage version will function just perfectly.
_________________
No Man is Just a Number!

--The Prisoner
Back to top
View user's profile Send private message
E001754
Guru
Guru


Joined: 01 Aug 2004
Posts: 442
Location: Paris, France

PostPosted: Sat Feb 09, 2008 3:44 pm    Post subject: Reply with quote

So, this means that for now, as an "end-user", I can't yet see the size of my /usr/portage being decreased of the manifest files ? :cry:
Should I guess that this new feature will be introduced soon in the "official" portage tree ? :wink:
Back to top
View user's profile Send private message
tanderson
Retired Dev
Retired Dev


Joined: 11 Apr 2007
Posts: 193

PostPosted: Sat Feb 09, 2008 8:10 pm    Post subject: Reply with quote

E001754 wrote:
So, this means that for now, as an "end-user", I can't yet see the size of my /usr/portage being decreased of the manifest files ? :cry:
Should I guess that this new feature will be introduced soon in the "official" portage tree ? :wink:


No, that means that as an end-user if you've synced your tree in the past week or so, then you've already saved 200Mb of disk space. What I mentioned earlier only applied to overlays where you didn't have 'manifest1_obselete' in the root of the repo.

In short, you've already saved 200Mb.
_________________
No Man is Just a Number!

--The Prisoner
Back to top
View user's profile Send private message
E001754
Guru
Guru


Joined: 01 Aug 2004
Posts: 442
Location: Paris, France

PostPosted: Sat Feb 09, 2008 9:09 pm    Post subject: Reply with quote

ok, I've understood !
Thanks a lot for your patience !
:D
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Gentoo Chat All times are GMT
Goto page Previous  1, 2
Page 2 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