Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
Emerge - the future?
View unanswered posts
View posts from last 24 hours

Goto page Previous  1, 2, 3, 4, 5  Next  
Reply to topic    Gentoo Forums Forum Index Gentoo Chat
View previous topic :: View next topic  
Author Message
Genone
Retired Dev
Retired Dev


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

PostPosted: Wed Aug 20, 2003 1:00 am    Post subject: Reply with quote

For faster searching the esearch and fastsearch scripts (see Pythonheads portage utilities thread )are already available and reduce search times close to zero (using a static index).
Back to top
View user's profile Send private message
vikwiz
n00b
n00b


Joined: 01 Mar 2003
Posts: 50
Location: Budapest

PostPosted: Wed Aug 20, 2003 1:02 am    Post subject: ZODB Reply with quote

() wrote:
Is there some lightweight (possibly object oriented) database system that could be worth looking at apart from metakit?


ZODB (the database of Zope) would be a good choice.
It can run standalone, too, and provides a great webinterface if used in Zope.
It's fully object database, transactional, undoable, versionable, etc.

Forgot to mention: it's written in python, maybe some C routines.
Back to top
View user's profile Send private message
vikwiz
n00b
n00b


Joined: 01 Mar 2003
Posts: 50
Location: Budapest

PostPosted: Wed Aug 20, 2003 1:37 am    Post subject: Re: Emerge - the future? Reply with quote

Hoeken wrote:

Quote:
-Instead of the regular 50 lines/second build dump, display good overall progress indicators

And how would the program know how far the build process has come? Make does not provide such information.

All these things have been discussed many times in other threads.


I would store the count of log lines in the database, so you can follow the progress.
Back to top
View user's profile Send private message
RedBeard0531
Guru
Guru


Joined: 21 Sep 2002
Posts: 415
Location: maryland

PostPosted: Wed Aug 20, 2003 3:25 am    Post subject: Reply with quote

I actual wrote a script that creates the description file
https://forums.gentoo.org/viewtopic.php?t=57291
scroll down, its in there.
_________________
OH MY GOD! Kenny just killed Kenny!
That Basterd!
Back to top
View user's profile Send private message
Tazz_ZA
n00b
n00b


Joined: 02 Jul 2003
Posts: 60
Location: Durban, South Africa

PostPosted: Wed Aug 20, 2003 3:52 am    Post subject: Re: Emerge - the future? Reply with quote

Tronic wrote:

-Some intelligent system for pretty much automatically sharing the downloaded packages (distfiles) in a LAN (especially useful in campuses or home networks with many Gentoo boxes behind a single network link). Should probably be P2P, and not require setting up a real server and configuring all boxes to use it (and this is big enough to be a separate software project).

<comment>
NFS is what I use at work and accross a couple of WAN links - works for me
</comment>

Back to top
View user's profile Send private message
raptor
Apprentice
Apprentice


Joined: 20 Sep 2002
Posts: 171

PostPosted: Wed Aug 20, 2003 7:10 am    Post subject: one easy,fasr and aproximatly good solution Reply with quote

ok here goes one :")

grep DESCRIPTION -r * > /tmp/desc

on my comp ~470Kb, not that big.

after that u just can use grep to search... one crontab that does this everyday and it ok...
so the only thing left is the format of the this file to be specified... after that -s and -S will be easy as cake :")), even depencities can be solved..
I'm proposing this :
ebuild-path/name|description|url|size|depend|rdepend

even better :

/usr/portage/ebuildDB.format
contains :

ebuildDB=/var/tmp/ebuild.db
fieldSeparator=|
name=$currentEbuild
description=/DESCRIPTION="(.*?)"/
url=/URL="(.*?)"/
#no extension just the filename
size=qx{du -h /usr/portage/distfiles/$justFilename}

u get the idea... there are couple of vars that are available on the behalf of the script i.e. the full path, fielname, fielname.ext etc..
if u dont know qx// is execute this..
Back to top
View user's profile Send private message
andvin
n00b
n00b


Joined: 27 May 2003
Posts: 23
Location: Linköping, Sweden

PostPosted: Wed Aug 20, 2003 8:27 am    Post subject: Reply with quote

Senso wrote:
MrPyro wrote:

Also, one thing I find annoying about emerge at the moment is that some packages have warning or informational messages that come up during installations: not compiler warnings, things like the message that tells you an easy way to configure Apache to use mod_php during the mod_php build. I tend to start my "emerge -pU --deep world" process running then go out somewhere, rather than sit and stare at my monitor watching compiler output, so I miss these messages. Some system where these kinds of messages are logged, so that they can be read later, would be helpful.


Just a quick idea, but you could log normal output (1) to a file, cat it and remove all lines starting with "gcc" with sed. If you add more similar rules, you would maybe still have a lot of crap but it would be easier to browse the log and find useful messages.
An eventual command-line option doing this automatically is a good idea.


How about just adding "-s" to the MAKEOPTS variable? It should make the build process a lot more silent. Haven't tried it yet myself though...
Back to top
View user's profile Send private message
Senso
Apprentice
Apprentice


Joined: 17 Jun 2003
Posts: 250
Location: Montreal, Quebec

PostPosted: Wed Aug 20, 2003 11:07 am    Post subject: Reply with quote

andvin wrote:
Senso wrote:

Just a quick idea, but you could log normal output (1) to a file, cat it and remove all lines starting with "gcc" with sed. If you add more similar rules, you would maybe still have a lot of crap but it would be easier to browse the log and find useful messages.
An eventual command-line option doing this automatically is a good idea.


How about just adding "-s" to the MAKEOPTS variable? It should make the build process a lot more silent. Haven't tried it yet myself though...


I just tried it and yes, it does remove GCC barf. You still get to see the errors (STD_ERR) and bash output. That's all I need to see, thanks for the tip. :)
Back to top
View user's profile Send private message
pandora
Tux's lil' helper
Tux's lil' helper


Joined: 25 Sep 2002
Posts: 93
Location: UK

PostPosted: Wed Aug 20, 2003 11:43 am    Post subject: A dissenting voice Reply with quote

The performance of portage is good enough as it is now. What is far more important is to improve the features: make it easier to remove packages that are not in the world file and have no dependancies, try to combat the explosion of USE flags.

One item which might be of significent value would be an rsync replacement that tells emerge clients what has changed since a date rather than the scanning everything across the Net.

I'd also like to see an option to check for just security releases. I currently emerge the production servers every day and even that is less often than I would like but I don't want to hammer the mirrors. On the other hand, I don't want to get hacked by someone downloading and running some sample exploit code in the 24hrs between my updates.

As for re-writing portage in C++: get a life! There are few languages less well suited to portage (or, indeed, any other task) than C++.

The idea of a custom database does at least make some sense: a database written for your one, single application will always be: a) easier to write than a general purpose DB by at least an order of magnitude, and b) out perform a general purpose DB by at least two orders of magnitude. Having said that, I don't think we actually need one.


Last edited by pandora on Wed Aug 20, 2003 3:00 pm; edited 1 time in total
Back to top
View user's profile Send private message
RedBeard0531
Guru
Guru


Joined: 21 Sep 2002
Posts: 415
Location: maryland

PostPosted: Wed Aug 20, 2003 2:45 pm    Post subject: Re: one easy,fasr and aproximatly good solution Reply with quote

raptor wrote:
ok here goes one :")

grep DESCRIPTION -r * > /tmp/desc

on my comp ~470Kb, not that big.

after that u just can use grep to search... one crontab that does this everyday and it ok...
so the only thing left is the format of the this file to be specified... after that -s and -S will be easy as cake :")), even depencities can be solved..
I'm proposing this :
ebuild-path/name|description|url|size|depend|rdepend

even better :

/usr/portage/ebuildDB.format
contains :

ebuildDB=/var/tmp/ebuild.db
fieldSeparator=|
name=$currentEbuild
description=/DESCRIPTION="(.*?)"/
url=/URL="(.*?)"/
#no extension just the filename
size=qx{du -h /usr/portage/distfiles/$justFilename}

u get the idea... there are couple of vars that are available on the behalf of the script i.e. the full path, fielname, fielname.ext etc..
if u dont know qx// is execute this..


Take a look at /var/cache/edb/dep/

it doesnt help much. As to the DB, python has support for dictionaries (IIRC they're called assosiative arrays in other langauges), and that provides almost all the db features portage needs. Python also allows you to save any variable/object to disk. I have some patches that do this. The first onme is most likely to make it into portage.

https://bugs.gentoo.org/show_bug.cgi?id=26964

https://bugs.gentoo.org/show_bug.cgi?id=26447
_________________
OH MY GOD! Kenny just killed Kenny!
That Basterd!
Back to top
View user's profile Send private message
rauar
n00b
n00b


Joined: 15 Mar 2003
Posts: 37

PostPosted: Thu Aug 21, 2003 2:06 pm    Post subject: Reply with quote

Check out this thread as I think this is one of the major problems with portage.

https://forums.gentoo.org/viewtopic.php?t=75565

Note that a more efficient database (faster read/write access) would result at least in this case in a much improved time performance.

NB: This IS definitly a problem !

Cheerz Al[/url]
Back to top
View user's profile Send private message
ebrostig
Bodhisattva
Bodhisattva


Joined: 20 Jul 2002
Posts: 3152
Location: Orlando, Fl

PostPosted: Thu Aug 21, 2003 6:18 pm    Post subject: Reply with quote

rauar wrote:
Check out this thread as I think this is one of the major problems with portage.

https://forums.gentoo.org/viewtopic.php?t=75565

Note that a more efficient database (faster read/write access) would result at least in this case in a much improved time performance.

NB: This IS definitly a problem !

Cheerz Al[/url]


No, it's not a problem. See my response in the thread.

Why is it a Portage problem that the guy does not have enough disk space?

Erik
_________________
'Yes, Firefox is indeed greater than women. Can women block pops up for you? No. Can Firefox show you naked women? Yes.'
Back to top
View user's profile Send private message
rauar
n00b
n00b


Joined: 15 Mar 2003
Posts: 37

PostPosted: Thu Aug 21, 2003 6:39 pm    Post subject: Reply with quote

ebrostig wrote:

No, it's not a problem. See my response in the thread.

Why is it a Portage problem that the guy does not have enough disk space?

Erik


Really nice that portage is that much bloated. Gentoo as fully flexible and configurable linux distribution where one can tweak to death with a package management which takes up more than 50% of a minimum installation is a joke. And portage doesn't really need to hold 300mb of data. There's not THAT much information in the tree.

I got my stuff compiled by deleting some directories in the tree. Ok, nice workaround. And yes, I CAN buy a new harddrive. But the other threads intention was to show that portage is (noticable) bigger and slower than it needs to be.

As I said. I can stick with it. But I bet the gentoo distribution wouldn't need that many mirrors to hold the daily loads of rsyncs if someone would think about this a little more closer.

Have fun...
Back to top
View user's profile Send private message
carambola5
Apprentice
Apprentice


Joined: 10 Jul 2002
Posts: 214

PostPosted: Thu Aug 21, 2003 8:36 pm    Post subject: Reply with quote

I know it wouldn't seem like much at first, but what if there was a single flat file that held all of the descriptions of the packages? This way, the DESCRIPTION line (and quite possible HOMEPAGE, if one were so inclined) could be omitted from all of the ebuilds. Updates (rare as they would be) to the flat file could be handled with diff files.

Like I said, it wouldn't be much savings for a single gentoo user, but the results could be quite favorable for the rsync server. And we all love our rsync servers, right?
Back to top
View user's profile Send private message
mrchaotica
n00b
n00b


Joined: 14 Dec 2002
Posts: 45

PostPosted: Thu Aug 21, 2003 11:21 pm    Post subject: Reply with quote

fdavid wrote:
Another idea:
The importance of dependendcies can be different. For example, there is kdevelop or k3b with a plenty of depending ebuilds, but just a few (or none) of them are really needed to run these apps. This is quite annoying to download and compile additional 40-60 MB for an app with 3-4MB size, even if it's not really needed. Not speaking of the unneeded network and server load. Besides, if you emerge these apps with the -O option, you will always have their dependencies in your update world list, which is also disturbing, because I can think that I really need the ebuild, because I can't remember that it was just an unneeded dependency.
It would be nice to make difference between "must have" and "nice to have" dependencies.


+1 Insightful! : )

It might be nice not to have portage trying to emerge X just because some program has an optional GUI!
_________________
forty-two is the Answer
Back to top
View user's profile Send private message
far
Guru
Guru


Joined: 10 Mar 2003
Posts: 394
Location: Stockholm, Sweden

PostPosted: Thu Aug 21, 2003 11:36 pm    Post subject: Reply with quote

mrchaotica wrote:
It might be nice not to have portage trying to emerge X just because some program has an optional GUI!

This is what USE flags are for. Just add "-X" to USE in /etc/make.conf
_________________
The Porthole Portage Frontend
Back to top
View user's profile Send private message
ebrostig
Bodhisattva
Bodhisattva


Joined: 20 Jul 2002
Posts: 3152
Location: Orlando, Fl

PostPosted: Fri Aug 22, 2003 1:09 am    Post subject: Reply with quote

rauar wrote:
ebrostig wrote:

No, it's not a problem. See my response in the thread.

Why is it a Portage problem that the guy does not have enough disk space?

Erik


Really nice that portage is that much bloated. Gentoo as fully flexible and configurable linux distribution where one can tweak to death with a package management which takes up more than 50% of a minimum installation is a joke. And portage doesn't really need to hold 300mb of data. There's not THAT much information in the tree.


Maybe you would care to point out what is bloat among the information in the Portage tree? As far as I can see, there isn't much that could be removed.

The only thing I see is the metadata directory and all the patches etc that is now in the Portage tree whereas earlier the patches were downloaded when you started the emerge of a package.

rauar wrote:

I got my stuff compiled by deleting some directories in the tree. Ok, nice workaround. And yes, I CAN buy a new harddrive. But the other threads intention was to show that portage is (noticable) bigger and slower than it needs to be.

As I said. I can stick with it. But I bet the gentoo distribution wouldn't need that many mirrors to hold the daily loads of rsyncs if someone would think about this a little more closer.

Have fun...


You are more than welcome to work out a different approach to the problem and submit patches/suggestions etc. Just complaining and not presenting a solution can be fun, but not very productive.

My take on Portage is as follows:
1. Yes, it may be possible to use a database, but the size will not be smaller, but larger if that gets implemented.

2. Better to concentrate on changing the behaviour of portage when it comes to searching than to completly rewrite it.

3. Total time spent inside the Portage code during an install of upgrade is very low compared to the time it takes to download and compile the packages, hence it is not much to gain from messing up Portage totally.

Erik
_________________
'Yes, Firefox is indeed greater than women. Can women block pops up for you? No. Can Firefox show you naked women? Yes.'
Back to top
View user's profile Send private message
KingTaco
Developer
Developer


Joined: 22 Aug 2003
Posts: 207
Location: Bay Area, CA

PostPosted: Fri Aug 22, 2003 1:13 am    Post subject: Reply with quote

Quote:
-Threaded - after figuring out the dependancies, it could probably begin downloading all the packages (there could be a limit for simultaneus downloads, of course) and after some downloads are finished, the building of those packages can begin (assuming of course that the deps required for building are met). This gives really much improved performance, because network I/O and CPU-intensive compiling running side-by-side don't give any performance hit to each-other.


This will also cause a performance hit if more than 1-3 makes are going on at the same time. Why not set up multiple processes working on a central queue i.e. 2 procs downloading from 2 mirrors and 3 makes?
_________________
Explaining the obvious to the oblivious.
Adopt an unanswered post today -- https://forums.gentoo.org/search.php?search_id=unanswered
Back to top
View user's profile Send private message
Genone
Retired Dev
Retired Dev


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

PostPosted: Fri Aug 22, 2003 1:39 am    Post subject: Reply with quote

ebrostig wrote:
Maybe you would care to point out what is bloat among the information in the Portage tree? As far as I can see, there isn't much that could be removed.

The only thing I see is the metadata directory and all the patches etc that is now in the Portage tree whereas earlier the patches were downloaded when you started the emerge of a package.

...

My take on Portage is as follows:
1. Yes, it may be possible to use a database, but the size will not be smaller, but larger if that gets implemented.


While I generally agree with you I think you missed the point here: The portage tree in /usr/portage takes up >200 MB of disc space, but if you only take the content from the files in there you end up with <50 MB, so there are >150 MB space wasted for the filesystem. You can verify that with
Code:
find /usr/portage -type f | xargs -i cat {} >> /tmp/portage-tree
ls -l /tmp/portage-tree

(after moving distfiles and packages out of /usr/portage of course).

I don't think a real database would produce >75% overhead as it is now.
Back to top
View user's profile Send private message
Yossarian
Tux's lil' helper
Tux's lil' helper


Joined: 15 Jul 2003
Posts: 117
Location: Austin, Tx.

PostPosted: Fri Aug 22, 2003 3:19 am    Post subject: Reply with quote

I think it would be useful if portage could somehow make a guestimate (sp?) of compile time based on the specs of your system, before you emerge the package. So you'd know whether you should compile it while you sleep, or take a backpacking trip through the andes etc.
Back to top
View user's profile Send private message
fdavid
Tux's lil' helper
Tux's lil' helper


Joined: 27 Apr 2003
Posts: 82
Location: Graz, Austria, EU

PostPosted: Fri Aug 22, 2003 9:18 am    Post subject: Reply with quote

far wrote:
mrchaotica wrote:
It might be nice not to have portage trying to emerge X just because some program has an optional GUI!

This is what USE flags are for. Just add "-X" to USE in /etc/make.conf


Yes, this one exists, but X is just one thing. So USE falgs hardly can be used for distinguishing between different types of dependencies.
And, as it was discussed before, system wide USE flags don't always give the required result.
Back to top
View user's profile Send private message
far
Guru
Guru


Joined: 10 Mar 2003
Posts: 394
Location: Stockholm, Sweden

PostPosted: Fri Aug 22, 2003 9:27 am    Post subject: Reply with quote

fdavid wrote:
Yes, this one exists, but X is just one thing. So USE falgs hardly can be used for distinguishing between different types of dependencies.

Just do "etcat -u your_package". Or do you want a "USE=-everything" flag?

fdavid wrote:
And, as it was discussed before, system wide USE flags don't always give the required result.

Then that is the fault of the ebuild writer, not portage itself.
_________________
The Porthole Portage Frontend
Back to top
View user's profile Send private message
fdavid
Tux's lil' helper
Tux's lil' helper


Joined: 27 Apr 2003
Posts: 82
Location: Graz, Austria, EU

PostPosted: Fri Aug 22, 2003 10:05 am    Post subject: Reply with quote

far wrote:
fdavid wrote:
Yes, this one exists, but X is just one thing. So USE falgs hardly can be used for distinguishing between different types of dependencies.

Just do "etcat -u your_package". Or do you want a "USE=-everything" flag?


It's just not what i meant. This whole thing is not abaout USE flags. Please read my original post:

fdavid wrote:
Another idea:
The importance of dependendcies can be different. For example, there is kdevelop or k3b with a plenty of depending ebuilds, but just a few (or none) of them are really needed to run these apps. This is quite annoying to download and compile additional 40-60 MB for an app with 3-4MB size, even if it's not really needed. Not speaking of the unneeded network and server load. Besides, if you emerge these apps with the -O option, you will always have their dependencies in your update world list, which is also disturbing, because I can think that I really need the ebuild, because I can't remember that it was just an unneeded dependency.

It would be nice to make difference between "must have" and "nice to have" dependencies.


So USE flags are not everything and cannot be used everywhere efficiently. So your answer to mrchaotica was a bit offtopic, because we were not discussing about USE flags. Yes, in case of X, a USE flag can be a solution of the problem, but generally not, and i think that the emphasis was on the "optional" and not on "GUI".

far wrote:
fdavid wrote:
And, as it was discussed before, system wide USE flags don't always give the required result.

Then that is the fault of the ebuild writer, not portage itself.


It's also not what i meant. It's not about weather a USE flag in a specific ebuild really works or not. It's just about that general USE flags are not always a good idea. There was a discussion in this topic of specializing USE flags for ebuilds. I don't know if it's the right solution, but i do agree that general USE flags are not always optimal.
Back to top
View user's profile Send private message
far
Guru
Guru


Joined: 10 Mar 2003
Posts: 394
Location: Stockholm, Sweden

PostPosted: Fri Aug 22, 2003 10:58 am    Post subject: Reply with quote

fdavid wrote:
fdavid wrote:
Another idea:
The importance of dependendcies can be different. For example, there is kdevelop or k3b with a plenty of depending ebuilds, but just a few (or none) of them are really needed to run these apps.
...
It would be nice to make difference between "must have" and "nice to have" dependencies.


So USE flags are not everything and cannot be used everywhere efficiently.

What use is a "nice to have" dependency? Either you need something or you don't. A "nice to have" dependency would only serve as a comment and would not be useful when installing something automatically.

fdavid wrote:
There was a discussion in this topic of specializing USE flags for ebuilds.

Yeah, well it sounds like a good idea.
_________________
The Porthole Portage Frontend
Back to top
View user's profile Send private message
fdavid
Tux's lil' helper
Tux's lil' helper


Joined: 27 Apr 2003
Posts: 82
Location: Graz, Austria, EU

PostPosted: Fri Aug 22, 2003 11:27 am    Post subject: Reply with quote

far wrote:
What use is a "nice to have" dependency? Either you need something or you don't. A "nice to have" dependency would only serve as a comment and would not be useful when installing something automatically.


Maybe you are right, but sometimes it could be handy. If we stay at my previous example kdeveleop: It's nice to have i.g. doxygen together with kdevelop, and it is well integrated in it, once you have doxygen installed. But you don't need doxygen to run kdevelop. Maybe some people would install and use it, some other not. At the moment kdevelop does depend on doxygen in portage. I'm not totally against it, because we would lose some information otherwise. But this dependency should be marked soemhow "nice to have" and should also behave a bit different from the "must have" dependencies.

But i absolutely agree with you, that it's better not to have a "nice to have" dependency as dependency, than to have it as "must have".
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, 3, 4, 5  Next
Page 4 of 5

 
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