View previous topic :: View next topic |
Author |
Message |
nyhm Developer
Joined: 22 Oct 2005 Posts: 26 Location: UK
|
Posted: Tue Feb 05, 2008 6:19 pm Post subject: Re: Bit missleading |
|
|
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 |
|
|
dberkholz Retired Dev
Joined: 18 Mar 2003 Posts: 1008 Location: Minneapolis, MN, USA
|
Posted: Tue Feb 05, 2008 6:30 pm Post subject: Re: Bit missleading |
|
|
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 |
|
|
dol-sen Retired Dev
Joined: 30 Jun 2002 Posts: 2805 Location: Richmond, BC, Canada
|
Posted: Tue Feb 05, 2008 11:17 pm Post subject: |
|
|
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 |
|
|
brankob Apprentice
Joined: 29 Apr 2004 Posts: 188
|
Posted: Wed Feb 06, 2008 8:01 am Post subject: well, colour me stupid, but... |
|
|
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).... |
|
Back to top |
|
|
mottmar Tux's lil' helper
Joined: 13 Nov 2005 Posts: 103 Location: Genoa, Italy
|
Posted: Wed Feb 06, 2008 8:57 am Post subject: Re: well, colour me stupid, but... |
|
|
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 |
|
|
brankob Apprentice
Joined: 29 Apr 2004 Posts: 188
|
Posted: Wed Feb 06, 2008 9:57 am Post subject: |
|
|
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 |
|
|
jlh Tux's lil' helper
Joined: 06 May 2007 Posts: 145 Location: Switzerland::Zürich
|
Posted: Wed Feb 06, 2008 1:50 pm Post subject: |
|
|
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 |
|
|
brankob Apprentice
Joined: 29 Apr 2004 Posts: 188
|
Posted: Wed Feb 06, 2008 2:06 pm Post subject: |
|
|
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 |
|
|
brankob Apprentice
Joined: 29 Apr 2004 Posts: 188
|
Posted: Wed Feb 06, 2008 2:10 pm Post subject: |
|
|
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 !
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 |
|
|
jlh Tux's lil' helper
Joined: 06 May 2007 Posts: 145 Location: Switzerland::Zürich
|
Posted: Wed Feb 06, 2008 3:21 pm Post subject: |
|
|
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 |
|
|
BlackEdder Advocate
Joined: 26 Apr 2004 Posts: 2588 Location: Dutch enclave in Egham, UK
|
Posted: Wed Feb 06, 2008 3:27 pm Post subject: |
|
|
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 |
|
|
mikegpitt Advocate
Joined: 22 May 2004 Posts: 3224
|
Posted: Thu Feb 07, 2008 5:16 am Post subject: |
|
|
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 |
|
|
Genone Retired Dev
Joined: 14 Mar 2003 Posts: 9540 Location: beyond the rim
|
Posted: Thu Feb 07, 2008 9:30 am Post subject: |
|
|
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 |
|
|
swimmer Veteran
Joined: 15 Jul 2002 Posts: 1330 Location: Netherlands
|
Posted: Thu Feb 07, 2008 1:29 pm Post subject: |
|
|
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 |
|
|
Genone Retired Dev
Joined: 14 Mar 2003 Posts: 9540 Location: beyond the rim
|
Posted: Thu Feb 07, 2008 2:00 pm Post subject: |
|
|
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 |
|
|
E001754 Guru
Joined: 01 Aug 2004 Posts: 442 Location: Paris, France
|
Posted: Fri Feb 08, 2008 9:37 pm Post subject: |
|
|
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" ??? |
|
Back to top |
|
|
tanderson Retired Dev
Joined: 11 Apr 2007 Posts: 193
|
Posted: Fri Feb 08, 2008 10:11 pm Post subject: |
|
|
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" ??? |
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 |
|
|
E001754 Guru
Joined: 01 Aug 2004 Posts: 442 Location: Paris, France
|
Posted: Sat Feb 09, 2008 3:44 pm Post subject: |
|
|
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 ?
Should I guess that this new feature will be introduced soon in the "official" portage tree ? |
|
Back to top |
|
|
tanderson Retired Dev
Joined: 11 Apr 2007 Posts: 193
|
Posted: Sat Feb 09, 2008 8:10 pm Post subject: |
|
|
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 ?
Should I guess that this new feature will be introduced soon in the "official" portage tree ? |
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 |
|
|
E001754 Guru
Joined: 01 Aug 2004 Posts: 442 Location: Paris, France
|
Posted: Sat Feb 09, 2008 9:09 pm Post subject: |
|
|
ok, I've understood !
Thanks a lot for your patience !
|
|
Back to top |
|
|
|