View previous topic :: View next topic |
Author |
Message |
mountainpenguin n00b
Joined: 28 Jan 2003 Posts: 6
|
Posted: Wed Oct 13, 2004 10:26 am Post subject: Things I like to see in Gentoo |
|
|
These are some of the things I would like to see in Gentoo but isn't. I would like to hear your opinions on these ideas.
1. parallel build - Instead of downloading source and building process in a single linear process, this can this be done in parallel to save time.
2. paralle start up - start up time can be shortened even further if it is done in parallel.
3. /usr/portage location change - Normally everything in /usr is fairly static and I usually use ext2 for this mount point. For some odd reason Gentoo puts it's most frequently changed files under /usr/portage. This really belongs in /var.
4. emerge search problems - This is just too slow. There is gotta be a ways to improve the speed on this. Also the output of search result is just too verbose.
5. build time estimation - It doesn't have to be accurate but there should be some indication of how much time a build will take.
6. space requirement info and estimation - Some information about how much disk space will be necessary for software build process as well as after the build might be useful. It's annoying to have build process fail somwhere towards the end because disk ran out of space.
7. calculated dependency info caching - Why is it that if I do emerge -u world -p it spends about 5 to 10 seconds calculating dependency and then apparently same calculation is done again and again. I'm sure there is a way to save this data somewhere so we don't have to calculate this thing every single time.
8. environment metadata in package - Perhaps package file should contain metadata about how the package was built. Information like which ebuilt was used, which gcc version, etc.
9. option to not install header file - emerge tends to install everything including header files. I wish there was a way to not install them.
10. dependency graphing app - It would be nice if a graphical app exists to view the package dependency visually. |
|
Back to top |
|
|
metwo n00b
Joined: 30 Dec 2003 Posts: 69
|
|
Back to top |
|
|
inode77 Veteran
Joined: 20 Jan 2004 Posts: 1303 Location: Heart of Europe
|
Posted: Wed Oct 13, 2004 11:04 am Post subject: |
|
|
Quote: |
1. parallel build - Instead of downloading source and building process in a single linear process, this can this be done in parallel to save time.
|
agreed
Quote: |
2. paralle start up - start up time can be shortened even further if it is done in parallel.
|
There's an option in "/etc/conf.d/rc" fot that purpose.
Quote: |
3. /usr/portage location change - Normally everything in /usr is fairly static and I usually use ext2 for this mount point. For some odd reason Gentoo puts it's most frequently changed files under /usr/portage. This really belongs in /var.
|
Edit "/etc/make.conf" to your likeings and you're set.
Quote: |
4. emerge search problems - This is just too slow. There is gotta be a ways to improve the speed on this. Also the output of search result is just too verbose.
|
Not really a problem since there are several programs in portage that are solving this very problem. (e.g. esearch)
Quote: |
5. build time estimation - It doesn't have to be accurate but there should be some indication of how much time a build will take.
|
This is nearly impossible to do but there's a project (external) fot that too.
I don't remember the url right now, but will edit this post when I refind.
Quote: |
6. space requirement info and estimation - Some information about how much disk space will be necessary for software build process as well as after the build might be useful. It's annoying to have build process fail somwhere towards the end because disk ran out of space.
|
An estimation for the compiled version should be possible, but not one for compiler needs.
Quote: |
7. calculated dependency info caching - Why is it that if I do emerge -u world -p it spends about 5 to 10 seconds calculating dependency and then apparently same calculation is done again and again. I'm sure there is a way to save this data somewhere so we don't have to calculate this thing every single time.
|
Use the "-a" switch to decide without recalculating before merge.
Quote: |
8. environment metadata in package - Perhaps package file should contain metadata about how the package was built. Information like which ebuilt was used, which gcc version, etc.
|
Are you talking about precompiled binary packages? If you're talking about including information like this if you compile them, I don't see any advantage in doing that.
Quote: |
9. option to not install header file - emerge tends to install everything including header files. I wish there was a way to not install them.
|
I don't agree here. If you would do that then it would be necessary to either provide them in a seperate package (bad idea => doubles the packages needlessly) or to recompile if needed. They waste only little space if never needed.
Quote: |
10. dependency graphing app - It would be nice if a graphical app exists to view the package dependency visually.
|
I don't know if something like that exists but for me "emerge -evt" is enough.
Last edited by inode77 on Wed Oct 13, 2004 11:08 am; edited 1 time in total |
|
Back to top |
|
|
spb Retired Dev
Joined: 02 Jan 2004 Posts: 2135 Location: Cambridge, UK
|
Posted: Wed Oct 13, 2004 11:08 am Post subject: Re: Things I like to see in Gentoo |
|
|
mountainpenguin wrote: | 1. parallel build - Instead of downloading source and building process in a single linear process, this can this be done in parallel to save time. | There's a bug on this in Bugzilla. (Edit: Bug 1661)
Quote: | 2. paralle start up - start up time can be shortened even further if it is done in parallel. | /etc/conf.d/rc. Set RC_PARALLEL_STARTUP to yes.
Quote: | 3. /usr/portage location change - Normally everything in /usr is fairly static and I usually use ext2 for this mount point. For some odd reason Gentoo puts it's most frequently changed files under /usr/portage. This really belongs in /var. | Edit /etc/make.conf, and set PORTDIR, DISTDIR, and PKGDIR to wherever you want them to be.
Quote: | 4. emerge search problems - This is just too slow. There is gotta be a ways to improve the speed on this. Also the output of search result is just too verbose. | emerge esearch, or use one of the websites (gentoo-portage.com or packages.gentoo.org)
Quote: | 7. calculated dependency info caching - Why is it that if I do emerge -u world -p it spends about 5 to 10 seconds calculating dependency and then apparently same calculation is done again and again. I'm sure there is a way to save this data somewhere so we don't have to calculate this thing every single time. | There's already a huge amount of caching done-- try removing /var/cache/edb/dep and /usr/portage/metadata/cache and see what happens.
Quote: | 8. environment metadata in package - Perhaps package file should contain metadata about how the package was built. Information like which ebuilt was used, which gcc version, etc. | There's already some data stored about the build environment, and there are noises being made about storing some more.
Quote: | 9. option to not install header file - emerge tends to install everything including header files. I wish there was a way to not install them. | Not really ano option-- if you install, for example, Gtk+ without any headers, how are you going to build stuff that depends on it?
Quote: | 10. dependency graphing app - It would be nice if a graphical app exists to view the package dependency visually. | Well, there's emerge -pt, but a nicer one would be nice, yes. |
|
Back to top |
|
|
georgz Tux's lil' helper
Joined: 06 Dec 2002 Posts: 137 Location: Munich, Germany
|
Posted: Wed Oct 13, 2004 11:28 am Post subject: |
|
|
Quote: | 1. parallel build - Instead of downloading source and building process in a single linear process, this can this be done in parallel to save time. |
Code: | # emerge -f (system | world | whatever) |
Then wait a bit... Then do the normal emerge in another window.[/code] |
|
Back to top |
|
|
castorilo Apprentice
Joined: 25 Dec 2002 Posts: 157
|
Posted: Wed Oct 13, 2004 1:46 pm Post subject: Re: Things I like to see in Gentoo |
|
|
mountainpenguin wrote: |
1. parallel build - Instead of downloading source and building process in a single linear process, this can this be done in parallel to save time. |
I think everybody here has asked that question in the forum.
It is even a faq
It is also in the short term goals for portage along with parallel merging (merging 2 or more packages that don't depend on each other simultaneously) |
|
Back to top |
|
|
mountainpenguin n00b
Joined: 28 Jan 2003 Posts: 6
|
Posted: Wed Oct 13, 2004 3:23 pm Post subject: My response |
|
|
First of all, thank you for taking time to respond to my initial post. Here are my reply to some of those responses.
1. parallel build
Ahh.. Someone is already working on such a thing. This is good.
2. paralle start up
This one is done. Good.
3. /usr/portage location change
Yes I'm aware that this can be changed my modifying make.conf however I think this should be default to /var during initial install. I just think it's very unconventional (or even wrong) to put this kind of files under /usr.
4. emerge search problems
esearch is nice but this is yet another external program that really should be part of emerge and works as it should be from emerge. Obviously doing eupdatedb process needs to be merged at the end of emerge sync routine.
5. build time estimation
Obviously build time depends on so many things like cpu speed, compiler version, hard drive speed, memory, etc. Accurate estimate is very difficult or even impossible however a general ballpark estimate would be helpful to users. Something like <1min or 5, 10, .. 30.
6. space requirement info and estimation
I'll split this into two.
6a - final installation footprint
6b - build time space requirement
I do believe both are quite possible and useful for the user. I do think they are useful in that 6a or 6b shouldn't even be attempted if disk space requirement is not met. There are ebuilds where build time disk space depends on external variables. One example is net-www/mozilla and moznoirc moznomail moznocompose USE flags. In cases like mozilla I would say it should report the largest build space requirement. This will require some data collection by the ebuild developers and have that information be part of the ebuild itself.
7. calculated dependency info caching
Well, there may be some cacheing being done but it's obviously not enough or not being done correctly. If you do emerge -u world -p and then issue the same command again, it still does "Calculating world dependencies \|/-" all over again.
8. environment metadata in package
Currently gentoo's binary package isn't really "package" like rpm files since it's more of a tarball. It's missing metadata about itself. I guess my notion of binary package is much more self contained file.
9. option to not install header file
I should have been more clear. For situations when you have a machine that uses built binary packages from another machine, header files are not necessary. They are just there for no purpose. It makes sense to have an option not install header files for those setup.
10. dependency graphing app
I suppose this is more useful tool for ebuild developers than end users. |
|
Back to top |
|
|
codergeek42 Bodhisattva
Joined: 05 Apr 2004 Posts: 5142 Location: Anaheim, CA (USA)
|
Posted: Wed Oct 13, 2004 4:40 pm Post subject: Re: My response |
|
|
mountainpenguin wrote: | 4. emerge search problems
esearch is nice but this is yet another external program that really should be part of emerge and works as it should be from emerge. Obviously doing eupdatedb process needs to be merged at the end of emerge sync routine. | Use `esync` instead of `emerge sync`
Quote: | 10. dependency graphing app
I suppose this is more useful tool for ebuild developers than end users. |
Code: | # emerge app-portage/gentoolkit
# equery depgraph <package> |
_________________ ~~ Peter: Programmer, Mathematician, STEM & Free Software Advocate, Enlightened Agent, Transhumanist, Fedora contributor
Who am I? :: EFF & FSF |
|
Back to top |
|
|
antonlacon Apprentice
Joined: 27 Jun 2004 Posts: 257
|
Posted: Wed Oct 13, 2004 10:51 pm Post subject: |
|
|
genlop can be used to guesstimate package build time. |
|
Back to top |
|
|
Archangel1 Veteran
Joined: 21 Apr 2004 Posts: 1212 Location: Work
|
Posted: Thu Oct 14, 2004 2:01 am Post subject: Re: My response |
|
|
mountainpenguin wrote: |
8. environment metadata in package
Currently gentoo's binary package isn't really "package" like rpm files since it's more of a tarball. It's missing metadata about itself. I guess my notion of binary package is much more self contained file.
|
No, they're not like rpm's - there's an external ebuild for Portage whereas rpm's just have the one file.
I'm not really sure I see the advantage to your idea. Except for the fact there's only one file, but you don't really have to deal with the tarball since Portage does it for you.
I think it's quite neat that ebuilds are a small file so they can be attached to bugzilla reports, or e-mailed, and they'll fetch the needed files for you once installed.
On a slightly unrelated note, that copying ebuild & running ebuild digest process is a little awkward - I'd quite like an automated process for it. I'm quite capable of doing it myself, but I think it'd be nicer for less capable users.
Might have to look into that as a little project |
|
Back to top |
|
|
Sven Vermeulen Retired Dev
Joined: 29 Aug 2002 Posts: 1345 Location: Mechelen, Belgium
|
Posted: Thu Oct 14, 2004 7:17 am Post subject: Re: My response |
|
|
mountainpenguin wrote: |
8. environment metadata in package
Currently gentoo's binary package isn't really "package" like rpm files since it's more of a tarball. It's missing metadata about itself. I guess my notion of binary package is much more self contained file.
|
A package isn't a plain tarball, it contains metadata as well. We just don't have any tools available yet that enables you to read that metadata without installing the package first, since it isn't needed - a package corresponds with an ebuild and the ebuild contains all metadata needed by Portage.
When you've installed a package, you should see that information such as compilation flags, USE flags, ... are stored in /var/db/pkg |
|
Back to top |
|
|
|