public inbox for gentoo-dev@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-dev] Portage Subcategory Capabilities?
@ 2004-10-03 18:55 Chris White
  2004-10-04  5:12 ` Georgi Georgiev
  0 siblings, 1 reply; 18+ messages in thread
From: Chris White @ 2004-10-03 18:55 UTC (permalink / raw
  To: gentoo-dev

[-- Attachment #1: Type: text/plain, Size: 1635 bytes --]

All,

    Has there been some talk as to subcategory implementations in 
portage?  I'm going to assume that it could be done (with speed 
sacrifice of course), but it would be well beneficial in an ever 
expanding tree.  As more and more new ebuilds flow in everyday, sooner 
or later categories are split.  This would be somewhat of a time saving 
effort for the result, but its creation would be a little consuming.  I 
wouldn't mind trying to look over the creation of such an implementation 
(I won't of course be fully active on that until the end of this 
semester feh :( ).  Here's somewhat of an idea:

media-sound: ok, I'm working on organizing this because it needs to be.  
So let's see... wc says!:

chris@secures /usr/local/portage/gentoo-x86/media-sound $ ls -1 | wc
    275     275    2349

That's right... 257 nice packages which might actually be installed if 
users knew what they were :).  Something like this might be a little nicer:

media-sound/editors/audacity
media-sound/players/xmms

now let's say players gets way to huge:

media-sound/players/mp3/
media-sound/players/ogg/

etc.  While this may be somewhat of a strange example.  I think it 
somewhat the organizational need the tree will require at some point.  
This is just an idea of a good way to organize this stuff.  If there's 
something I'm just not seeing, feel free to slap me with a wet trout and 
suggest something better.  This should be looked at though.  Thanks to 
everyone's patience in dealing with me as always :).

-- 
Chris White <chriswhite@gentoo.org>
------------------------
Sound | Video | Security
ChrisWhite @ irc.freenode.net


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 256 bytes --]

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [gentoo-dev] Portage Subcategory Capabilities?
  2004-10-03 18:55 [gentoo-dev] Portage Subcategory Capabilities? Chris White
@ 2004-10-04  5:12 ` Georgi Georgiev
  2004-10-04  5:34   ` Andrew Gaffney
  0 siblings, 1 reply; 18+ messages in thread
From: Georgi Georgiev @ 2004-10-04  5:12 UTC (permalink / raw
  To: gentoo-dev

[-- Attachment #1: Type: text/plain, Size: 713 bytes --]

maillog: 04/10/2004-03:55:13(+0900): Chris White types
<snip>
> Something like this might be a little nicer:
> 
> media-sound/editors/audacity
> media-sound/players/xmms
> 
> now let's say players gets way to huge:
> 
> media-sound/players/mp3/
> media-sound/players/ogg/

I personally like the idea. What about turning the first dash into a
slash as well? 

media/sound/editors/audacity
media/sound/players/xmms
media/sound/players/mp3/
media/sound/players/ogg/

-- 
 >   Georgi Georgiev    > General Protection Fault! [ Ignore ] [        >
<     chutz@gg3.net    <  Reboot ] [ Install Linux ] -- From a         <
 >  +81(90)6266-1163    > Slashdot.org post                             >

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [gentoo-dev] Portage Subcategory Capabilities?
  2004-10-04  5:12 ` Georgi Georgiev
@ 2004-10-04  5:34   ` Andrew Gaffney
  2004-10-04  5:47     ` Matthew Schulkind
                       ` (3 more replies)
  0 siblings, 4 replies; 18+ messages in thread
From: Andrew Gaffney @ 2004-10-04  5:34 UTC (permalink / raw
  To: Georgi Georgiev; +Cc: gentoo-dev

Georgi Georgiev wrote:
> maillog: 04/10/2004-03:55:13(+0900): Chris White types
> <snip>
> 
>>Something like this might be a little nicer:
>>
>>media-sound/editors/audacity
>>media-sound/players/xmms
>>
>>now let's say players gets way to huge:
>>
>>media-sound/players/mp3/
>>media-sound/players/ogg/
> 
> I personally like the idea. What about turning the first dash into a
> slash as well? 
> 
> media/sound/editors/audacity
> media/sound/players/xmms
> media/sound/players/mp3/
> media/sound/players/ogg/

This has been brought up before in the past and been shot down, but I'll humor 
you. If support for this were to be added into Portage, there would be a few 
things to think about:

1) this will cause a performance hit no matter how it is done
2) how will Portage know the difference between a package and another
    sub-category when it is walking the tree? It could do something like walking
    all the way to the end of the category/sub-category/sub-category tree until
    it finds .ebuild files and then backing up a level or 2 to determine the
    category, but again this would cause an enormous performance hit due to the
    additional required I/O.
3) the many additional directories would cause an 'emerge sync' to take
    longer than it does now.

Basically, you'd be pissing everyone off with little benefit (except maybe to 
developer sanity). Keep in mind that I probably have absolutely no idea what I'm 
talking about and nothing I say should be accepted as fact without verifying it 
elsewhere.

-- 
Andrew Gaffney
Network Administrator
Skyline Aeronautics, LLC.
636-357-1548


--
gentoo-dev@gentoo.org mailing list


^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [gentoo-dev] Portage Subcategory Capabilities?
  2004-10-04  5:34   ` Andrew Gaffney
@ 2004-10-04  5:47     ` Matthew Schulkind
  2004-10-04  6:04     ` Robin H. Johnson
                       ` (2 subsequent siblings)
  3 siblings, 0 replies; 18+ messages in thread
From: Matthew Schulkind @ 2004-10-04  5:47 UTC (permalink / raw
  To: gentoo-dev

> This has been brought up before in the past and been shot down, but I'll humor
> you. If support for this were to be added into Portage, there would be a few
> things to think about:
> 
> 1) this will cause a performance hit no matter how it is done
> 2) how will Portage know the difference between a package and another
>     sub-category when it is walking the tree? It could do something like walking
>     all the way to the end of the category/sub-category/sub-category tree until
>     it finds .ebuild files and then backing up a level or 2 to determine the
>     category, but again this would cause an enormous performance hit due to the
>     additional required I/O.
> 3) the many additional directories would cause an 'emerge sync' to take
>     longer than it does now.
> 
> Basically, you'd be pissing everyone off with little benefit (except maybe to
> developer sanity). Keep in mind that I probably have absolutely no idea what I'm
> talking about and nothing I say should be accepted as fact without verifying it
> elsewhere.
> 
> --
> Andrew Gaffney
> Network Administrator
> Skyline Aeronautics, LLC.
> 636-357-1548
> 
> --
> gentoo-dev@gentoo.org mailing list
> 
> 

Why does this necessarily have to change the portage directory structure?

I think this is a good idea to, but why not implement a secondary
browsing interface which could use these categories and just map to
ebuilds. With this strategy, even if a package fell into two
categories, it could be put into both. This could also lead to any
number of more pretty features.

--
gentoo-dev@gentoo.org mailing list


^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [gentoo-dev] Portage Subcategory Capabilities?
  2004-10-04  5:34   ` Andrew Gaffney
  2004-10-04  5:47     ` Matthew Schulkind
@ 2004-10-04  6:04     ` Robin H. Johnson
  2004-10-04  7:16     ` George Shapovalov
  2004-10-04 12:56     ` [gentoo-dev] Portage Subcategory Capabilities? Luke-Jr
  3 siblings, 0 replies; 18+ messages in thread
From: Robin H. Johnson @ 2004-10-04  6:04 UTC (permalink / raw
  To: Gentoo Developers

[-- Attachment #1: Type: text/plain, Size: 1895 bytes --]

On Mon, Oct 04, 2004 at 12:34:50AM -0500, Andrew Gaffney wrote:
> 1) this will cause a performance hit no matter how it is done
A performance hit yes, but a lot less of a performance hit than you
might expect, provided one requirement is met:
- A directory cannot be both a category and a package ever. (This means
  no renaming packages to categories too).

> 2) how will Portage know the difference between a package and another
>    sub-category when it is walking the tree? It could do something
>    like walking all the way to the end of the
>    category/sub-category/sub-category tree until it finds .ebuild
>    files and then backing up a level or 2 to determine the category,
>    but again this would cause an enormous performance hit due to the
>    additional required I/O.
Portage already has an explicit list of all valid categories that it
uses to check paths (see profiles/categories). Simply split the provided
package atom into two components by looking for the very last slash.
That gives you (category,pn), which can then be verified for existence
by comparing the category against the list, and then checking it's
directory for the package name. I believe it works in a very similar
fashion to this already.

> 3) the many additional directories would cause an 'emerge sync' to take
>    longer than it does now.
Rsync would not be the bottleneck, and performance would actually
improve on any system that has trouble coping with very large numbers of
files in a single directory. Go and time 'ls' in your $DISTDIR. None of
our package directories have reached that point yet, but I sincerely
hope they never do.

-- 
Robin Hugh Johnson
E-Mail     : robbat2@orbis-terrarum.net
Home Page  : http://www.orbis-terrarum.net/?l=people.robbat2
ICQ#       : 30269588 or 41961639
GnuPG FP   : 11AC BA4F 4778 E3F6 E4ED  F38E B27B 944E 3488 4E85

[-- Attachment #2: Type: application/pgp-signature, Size: 232 bytes --]

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [gentoo-dev] Portage Subcategory Capabilities?
  2004-10-04  5:34   ` Andrew Gaffney
  2004-10-04  5:47     ` Matthew Schulkind
  2004-10-04  6:04     ` Robin H. Johnson
@ 2004-10-04  7:16     ` George Shapovalov
  2004-10-04  7:42       ` Georgi Georgiev
  2004-10-04 12:40       ` [gentoo-dev] Unique package names Georgi Georgiev
  2004-10-04 12:56     ` [gentoo-dev] Portage Subcategory Capabilities? Luke-Jr
  3 siblings, 2 replies; 18+ messages in thread
From: George Shapovalov @ 2004-10-04  7:16 UTC (permalink / raw
  To: gentoo-dev

On Sunday 03 October 2004 22:34, Andrew Gaffney wrote:
> This has been brought up before in the past and been shot down, but I'll
> humor you. If support for this were to be added into Portage, there would
No it wasn't. Discussion just felt off without leading to any conclusion as it 
happens quite often. Well, actually such discussions were happening multiple 
times in the past and while in some it may have felt like "shot down" in 
others it even went as far as being added to portage-ng features list ;).

> be a few things to think about:
>
> 1) this will cause a performance hit no matter how it is done
> 2) how will Portage know the difference between a package and another
>     sub-category when it is walking the tree? It could do something like
Grouping both as they are basically the same.
Directory walker is a pretty standard piece of code discussed in many text 
books for various languages. Python has explicit support for some basic 
dirwalker functionality in its standard library. 

As for distinguishing: in prior discussions there were calls to go the 
opposite route and flatten namespace. That is to get rid of categories 
altogether and rely solely on search. Thus one approach would be to make one 
pass accumulating all package names and then work off that (store path to 
ebuild dir in the cache for example). However that may not be optimal as this 
will disallow duplicate package names (which we *have* irrespectively of 
whether this is good or bad). 

A simpler and more efficient approach may be to simply prepend path to package 
name, possibly substituting '/' with some other separator if that's a 
problem. This will give a flat list of effective package names (that include 
all their categorization) which may even simplify further processing. 
Actually having a separate pass may be even more of an advantage as portage 
works off its cache for the most part anyway and this cache is created 
server-side already. Thus this change might even speed things up :) (well, 
not really, but shouldn't cause significant performance degradation either).

Ebuilds will have to specify full category for each dependency with such 
approach, but that's a policy anyway..


> 3) the many additional directories would cause an 'emerge sync' to take
>     longer than it does now.
Khm, not really sure about this one. If it really becomes that bad there were 
ways discussed on improving syncing (cvsup or collating small files comes to 
mind, but that's a separate discussion).

> Basically, you'd be pissing everyone off with little benefit (except maybe
> to developer sanity). Keep in mind that I probably have absolutely no idea
I wouldn't call this a small benefit, considering that its not only 
developers' sanity at stake here, I am pretty sure users would appreciate a 
more sane portage structure as well :).

> what I'm talking about and nothing I say should be accepted as fact without
> verifying it elsewhere.
That's what we are trying to do :).

George


--
gentoo-dev@gentoo.org mailing list


^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [gentoo-dev] Portage Subcategory Capabilities?
  2004-10-04  7:16     ` George Shapovalov
@ 2004-10-04  7:42       ` Georgi Georgiev
  2004-10-04 12:40       ` [gentoo-dev] Unique package names Georgi Georgiev
  1 sibling, 0 replies; 18+ messages in thread
From: Georgi Georgiev @ 2004-10-04  7:42 UTC (permalink / raw
  To: gentoo-dev

maillog: 04/10/2004-00:16:10(-0700): George Shapovalov types
<snip>
> As for distinguishing: in prior discussions there were calls to go the 
> opposite route and flatten namespace. That is to get rid of categories 
> altogether and rely solely on search. Thus one approach would be to make one 
> pass accumulating all package names and then work off that (store path to 
> ebuild dir in the cache for example). However that may not be optimal as this 
> will disallow duplicate package names (which we *have* irrespectively of 
> whether this is good or bad). 

I remember that discussion. And there were to be symlinks to the
packages in the flat namespace, similar to what we already have in
$PKGDIR.

<snip>
> A simpler and more efficient approach may be to simply prepend path to package 
> name, possibly substituting '/' with some other separator if that's a 
> problem. This will give a flat list of effective package names (that include 
> all their categorization) which may even simplify further processing. 
> Actually having a separate pass may be even more of an advantage as portage 
> works off its cache for the most part anyway and this cache is created 
> server-side already. Thus this change might even speed things up :) (well, 
> not really, but shouldn't cause significant performance degradation either).

Naah, that would also require users to specify full names, which is
ugly.

<snip>
> > 3) the many additional directories would cause an 'emerge sync' to take
> >     longer than it does now.

Having 100 or so more directories when there are 80,000+ items in $PORTDIR
wouldn't really hurt rsync.

-- 
*>   Georgi Georgiev   *> If you go out of your mind, do it quietly,   *>
<*    chutz@gg3.net    <* so as not to disturb those around you.       <*
*>  +81(90)6266-1163   *>                                              *>

--
gentoo-dev@gentoo.org mailing list


^ permalink raw reply	[flat|nested] 18+ messages in thread

* [gentoo-dev] Unique package names
  2004-10-04  7:16     ` George Shapovalov
  2004-10-04  7:42       ` Georgi Georgiev
@ 2004-10-04 12:40       ` Georgi Georgiev
  2004-10-04 12:53         ` Ciaran McCreesh
                           ` (2 more replies)
  1 sibling, 3 replies; 18+ messages in thread
From: Georgi Georgiev @ 2004-10-04 12:40 UTC (permalink / raw
  To: gentoo-dev

maillog: 04/10/2004-00:16:10(-0700): George Shapovalov types
> However that may not be optimal as this will disallow duplicate
> package names (which we *have* irrespectively of whether this is good
> or bad). 

Isn't it about time to do something about these duplicate package names?
Why not get rid of them, and then think of reorganizing the tree.

Most of the duplicates are emacs/xemacs modules, which could be renamed
to the same name with an emacs- xemacs- prefix.

Here is the current list of duplicates, with suggestions.

app-emacs/apel          app-xemacs/apel		: {,x}emacs-apel (same for other (x)emacs plugins)
app-admin/analog        app-emacs/analog	: {,x}emacs-analog
app-emacs/auctex        app-xemacs/auctex	: {,x}emacs-auctex
app-emacs/bbdb          app-xemacs/bbdb		: {,x}emacs-bbdb
app-emacs/binclock      app-misc/binclock	: emacs-binclock, binclock
app-emacs/dictionary    app-xemacs/dictionary	: {,x}emacs-dictionary
app-emacs/ecb           app-xemacs/ecb		: {,x}emacs-ecb
app-emacs/eieio         app-xemacs/eieio	: {,x}emacs-eieio
app-emacs/elib          app-xemacs/elib		: {,x}emacs-elib
app-emacs/ess           app-xemacs/ess		: {,x}emacs-ess
app-emacs/gnus          app-xemacs/gnus		: {,x}emacs-gnus
app-emacs/haskell-mode  app-xemacs/haskell-mode	: {,x}emacs-haskell-mode
app-emacs/ibuffer       app-xemacs/ibuffer	: {,x}emacs-ibuffer
app-emacs/igrep         app-xemacs/igrep	: {,x}emacs-igrep
app-emacs/ilisp         app-xemacs/ilisp	: {,x}emacs-ilisp
app-emacs/jde           app-xemacs/jde		: {,x}emacs-jde
app-emacs/liece         app-xemacs/liece	: {,x}emacs-liece
app-emacs/lookup        app-xemacs/lookup	: {,x}emacs-lookup
app-emacs/mailcrypt     app-xemacs/mailcrypt	: {,x}emacs-mailcrypt
app-emacs/mew           app-xemacs/mew		: {,x}emacs-mew
app-emacs/mldonkey      net-p2p/mldonkey	: emacs-mldonkey, mldonkey
app-emacs/mmm-mode      app-xemacs/mmm-mode	: {,x}emacs-mmm-mode
app-emacs/mule-ucs      app-xemacs/mule-ucs	: {,x}emacs-mule-ucs
app-emacs/psgml         app-xemacs/psgml	: {,x}emacs-psgml
app-emacs/sawfish       x11-wm/sawfish		: emacs-sawfish, sawfish
app-emacs/semantic      app-xemacs/semantic	: {,x}emacs-semantic
app-emacs/sml-mode      app-xemacs/sml-mode	: {,x}emacs-sml-mode
app-emacs/speedbar      app-xemacs/speedbar	: {,x}emacs-speedbar
app-emacs/tramp         app-xemacs/tramp	: {,x}emacs-tramp
app-emacs/view-process  app-xemacs/view-process	: {,x}emacs-view-process
app-emacs/vm            app-xemacs/vm		: {,x}emacs-vm
app-emacs/w3            app-xemacs/w3		: {,x}emacs-w3
app-emacs/xslide        app-xemacs/xslide	: {,x}emacs-xslide
app-emacs/zenirc        app-xemacs/zenirc	: {,x}emacs-zenirc
app-xemacs/ocaml        dev-lang/ocaml		: xemacs-ocaml, ocaml
app-xemacs/texinfo      sys-apps/texinfo	: xemacs-texinfo, texinfo
app-xemacs/time         sys-apps/time		: xemacs-time, time
app-sci/calc            app-xemacs/calc		: calc, xemacs-calc	

app-misc/calendar  app-vim/calendar app-xemacs/calendar : calendar {vim,emacs}-calendar
app-admin/sudo          app-vim/sudo		: sudo, vim-sudo
app-arch/par            app-text/par		: parchive, par
app-forensics/memdump   sys-apps/memdump	: # these appear to be identical
app-sci/balsa           mail-client/balsa	: apt-balsa? mail-balsa?
app-text/cook           dev-util/cook		: ?
app-vim/ant             dev-java/ant		: vim-ant, ant
dev-java/crimson        games-strategy/crimson	: crimson, crimson-fields
dev-libs/ace            games-board/ace		: libace, ace
dev-libs/aterm          x11-terms/aterm		: libaterm, aterm
dev-libs/atlas          games-util/atlas	: math-atlas, atlas
dev-libs/libxml         dev-ruby/libxml		: libxml, ruby-libxml
dev-libs/localizer      net-zope/localizer	: ?
dev-lisp/lush           x11-themes/lush		: lush, kde-lush?
dev-perl/libnet         net-libs/libnet		: ?
dev-python/generator    games-emulation/generator	: py-generator, generator
dev-python/medusa       gnome-extra/medusa	: py-medusa, medusa ?
dev-python/readline     sys-libs/readline	: py-readline, readline ?
games-mud/crystal       x11-themes/crystal	: crystal, kde-crystal
net-print/omni          sys-devel/omni		: omniprint, omni

-- 
\/   Georgi Georgiev   \/ Cobol programmers are down in the dumps.     \/
/\    chutz@gg3.net    /\                                              /\
\/  +81(90)6266-1163   \/                                              \/

--
gentoo-dev@gentoo.org mailing list


^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [gentoo-dev] Unique package names
  2004-10-04 12:40       ` [gentoo-dev] Unique package names Georgi Georgiev
@ 2004-10-04 12:53         ` Ciaran McCreesh
  2004-10-04 13:02         ` Mike Frysinger
  2004-10-04 15:54         ` Donnie Berkholz
  2 siblings, 0 replies; 18+ messages in thread
From: Ciaran McCreesh @ 2004-10-04 12:53 UTC (permalink / raw
  To: gentoo-dev

[-- Attachment #1: Type: text/plain, Size: 1121 bytes --]

On Mon, 4 Oct 2004 21:40:26 +0900 Georgi Georgiev <chutz@gg3.net> wrote:
| maillog: 04/10/2004-00:16:10(-0700): George Shapovalov types
| > However that may not be optimal as this will disallow duplicate
| > package names (which we *have* irrespectively of whether this is
| > good or bad). 
| 
| Isn't it about time to do something about these duplicate package
| names? Why not get rid of them, and then think of reorganizing the
| tree.

Great idea! I propose we rename every single package so that it is
prefixed by the category. So, instead of, say, dev-lang/python, we'd
have dev-lang/dev-lang-python. That way we wouldn't get any duplicates!

(Since at least one person is going to miss the sarcasm, a large part of
why we have categories is so that duplicate names isn't a problem. Since
portage now *tells* you when you need to be more specific, duplicates
really aren't a problem. Sticking prefixies on the front of package
names is just plain stupid.)

-- 
Ciaran McCreesh : Gentoo Developer (Sparc, MIPS, Vim, Fluxbox)
Mail            : ciaranm at gentoo.org
Web             : http://dev.gentoo.org/~ciaranm


[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [gentoo-dev] Portage Subcategory Capabilities?
  2004-10-04  5:34   ` Andrew Gaffney
                       ` (2 preceding siblings ...)
  2004-10-04  7:16     ` George Shapovalov
@ 2004-10-04 12:56     ` Luke-Jr
  2004-10-04 15:58       ` [gentoo-dev] Subcategores and a C comment Nicholas Jones
  3 siblings, 1 reply; 18+ messages in thread
From: Luke-Jr @ 2004-10-04 12:56 UTC (permalink / raw
  To: gentoo-dev

[-- Attachment #1: Type: text/plain, Size: 2147 bytes --]

On Monday 04 October 2004 5:34 am, Andrew Gaffney wrote:
> Georgi Georgiev wrote:
> > maillog: 04/10/2004-03:55:13(+0900): Chris White types
> > <snip>
> >
> >>Something like this might be a little nicer:
> >>
> >>media-sound/editors/audacity
> >>media-sound/players/xmms
> >>
> >>now let's say players gets way to huge:
> >>
> >>media-sound/players/mp3/
> >>media-sound/players/ogg/
> >
> > I personally like the idea. What about turning the first dash into a
> > slash as well?
> >
> > media/sound/editors/audacity
> > media/sound/players/xmms
> > media/sound/players/mp3/
> > media/sound/players/ogg/
>
> This has been brought up before in the past and been shot down, but I'll
> humor you. If support for this were to be added into Portage, there would
> be a few things to think about:
>
> 1) this will cause a performance hit no matter how it is done

What's this I've heard about Portage's performance not being a real issue? 
(argument for not rewriting it in C/etc)

> 2) how will Portage know the difference between a package and another
>     sub-category when it is walking the tree? It could do something like
> walking all the way to the end of the category/sub-category/sub-category
> tree until it finds .ebuild files and then backing up a level or 2 to
> determine the category, but again this would cause an enormous performance
> hit due to the additional required I/O.

Why not assume all [sub-]categories can also be meta-packages. Why emerge 
kde-base/kde to get all of kde-base/* when you can just emerge kde-base 
itself?

> 3) the many additional directories would cause an 'emerge sync' to take
>     longer than it does now.

Then perhaps rsync isn't the proper program for updating the tree. Or maybe we 
should finally implement fetch-on-demand...

>
> Basically, you'd be pissing everyone off with little benefit (except maybe
> to developer sanity). Keep in mind that I probably have absolutely no idea
> what I'm talking about and nothing I say should be accepted as fact without
> verifying it elsewhere.
-- 
Luke-Jr
Developer, Utopios
http://utopios.org/

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [gentoo-dev] Unique package names
  2004-10-04 12:40       ` [gentoo-dev] Unique package names Georgi Georgiev
  2004-10-04 12:53         ` Ciaran McCreesh
@ 2004-10-04 13:02         ` Mike Frysinger
  2004-10-04 15:54         ` Donnie Berkholz
  2 siblings, 0 replies; 18+ messages in thread
From: Mike Frysinger @ 2004-10-04 13:02 UTC (permalink / raw
  To: gentoo-dev

On Monday 04 October 2004 08:40 am, Georgi Georgiev wrote:
> Isn't it about time to do something about these duplicate package names?
> Why not get rid of them, and then think of reorganizing the tree.

no
-mike

--
gentoo-dev@gentoo.org mailing list


^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [gentoo-dev] Unique package names
  2004-10-04 12:40       ` [gentoo-dev] Unique package names Georgi Georgiev
  2004-10-04 12:53         ` Ciaran McCreesh
  2004-10-04 13:02         ` Mike Frysinger
@ 2004-10-04 15:54         ` Donnie Berkholz
  2 siblings, 0 replies; 18+ messages in thread
From: Donnie Berkholz @ 2004-10-04 15:54 UTC (permalink / raw
  To: gentoo-dev

[-- Attachment #1: Type: text/plain, Size: 544 bytes --]

On Mon, 2004-10-04 at 05:40, Georgi Georgiev wrote:
> maillog: 04/10/2004-00:16:10(-0700): George Shapovalov types
> > However that may not be optimal as this will disallow duplicate
> > package names (which we *have* irrespectively of whether this is good
> > or bad). 
> 
> Isn't it about time to do something about these duplicate package names?
> Why not get rid of them, and then think of reorganizing the tree.

If you want the names changed, get upstream to change them. We'll follow
suit.
-- 
Donnie Berkholz
Gentoo Linux

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [gentoo-dev] Subcategores and a C comment
  2004-10-04 12:56     ` [gentoo-dev] Portage Subcategory Capabilities? Luke-Jr
@ 2004-10-04 15:58       ` Nicholas Jones
  2004-10-04 16:39         ` Luke-Jr
  2004-10-05 12:50         ` Paul de Vrieze
  0 siblings, 2 replies; 18+ messages in thread
From: Nicholas Jones @ 2004-10-04 15:58 UTC (permalink / raw
  To: gentoo-dev

[-- Attachment #1: Type: text/plain, Size: 2681 bytes --]

> What's this I've heard about Portage's performance not being a
> real issue? (argument for not rewriting it in C/etc)

(Directed at individuals that persist in making such commentary:)

STOP SUGGESTING THAT until you know why it's rejected. Tree walking
will, at no reasonable level, be faster. DiskIO is a bound and there
is no direct way to make it faster in C, asm, or python. The only
realistic benefit of C would be algorithmic... and there is no problem
there except for searches. Any benefits beyond this incur a MASSIVE
testing and QA requirement because of the lower-level code involved.
You would not see nearly the changes and quickness in fixes if portage
were in C and I highly doubt anyone wants to diagnose segfaults on
a users box. Copy and pasting exceptions reduces debugging time by
leaps and bounds. 'Please run gdb on portage after recompiling your
system with frame pointers and debug information.' </rant>

Short version: C is my prefered language, what I code in at work,
and I think it's completely wrong for portage and wide deployment
of an actively changing system such as portage. It's more important
for portage to work than to be blazingly fast.

Any WELL THOUGHT argument or research should be taken to the
gentoo-portage-dev mailing list.

>> 2) how will Portage know the difference between a package
>> and another sub-category when it is walking the tree?

Categories file is easy enough to employ.

>> 3) the many additional directories would cause an 'emerge sync'
>> to take longer than it does now.

It would, but not as much as the thousands of ebuilds and
supporting files that get added to daily.

> should finally implement fetch-on-demand...

So instead of a sync connection and update, we can trade off a
complete tree for 1-to-N connections, comparisons, and fetches.

I'd recommend passing this through infra to make sure that
causing an extra N-times the connections is reasonable.

Also, you potentially cause the mirror to reject you as there
could be a great deal more competition on any given mirror.
Portage would be forced to add logic to repeatedly poll for a
free connection once it has started. If you get stuck behind
Dialup users, you could very well be there a while. Basically,
it can cause a race condition against servers.

>> Basically, you'd be pissing everyone off with little benefit
>> (except maybe to developer sanity).

It's not that bad really. But portage internals make a lot of
assumptions about the directory structure which is why we have
yet to make any attempt at this yet. It should become feasable
some time after 2.0.51 becomes stable and we branch for the
ripping apart of the internals.

--NJ



[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [gentoo-dev] Subcategores and a C comment
  2004-10-04 15:58       ` [gentoo-dev] Subcategores and a C comment Nicholas Jones
@ 2004-10-04 16:39         ` Luke-Jr
  2004-10-04 18:00           ` Nicholas Jones
  2004-10-05 12:50         ` Paul de Vrieze
  1 sibling, 1 reply; 18+ messages in thread
From: Luke-Jr @ 2004-10-04 16:39 UTC (permalink / raw
  To: gentoo-dev

[-- Attachment #1: Type: text/plain, Size: 1640 bytes --]

On Monday 04 October 2004 3:58 pm, Nicholas Jones wrote:
> > What's this I've heard about Portage's performance not being a
> > real issue? (argument for not rewriting it in C/etc)
>
> Short version: C is my prefered language, what I code in at work,
> and I think it's completely wrong for portage and wide deployment
> of an actively changing system such as portage. It's more important
> for portage to work than to be blazingly fast.
>

I wasn't arguing that Portage should be in C. I was just pointing out that 
since there's no real performance gains from such a conversion, it's not 
likely that changing the directory structure would hurt performance either.

> > should finally implement fetch-on-demand...
>
> So instead of a sync connection and update, we can trade off a
> complete tree for 1-to-N connections, comparisons, and fetches.
>
> I'd recommend passing this through infra to make sure that
> causing an extra N-times the connections is reasonable.
>
> Also, you potentially cause the mirror to reject you as there
> could be a great deal more competition on any given mirror.
> Portage would be forced to add logic to repeatedly poll for a
> free connection once it has started. If you get stuck behind
> Dialup users, you could very well be there a while. Basically,
> it can cause a race condition against servers.

It seems like you're assuming that only one file can be fetched per 
connection. I haven't researched the topic much, but I'm pretty sure HTTP, 
not to mention FTP, supports multiple requests with one connection.
-- 
Luke-Jr
Developer, Utopios
http://utopios.org/

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [gentoo-dev] Subcategores and a C comment
  2004-10-04 16:39         ` Luke-Jr
@ 2004-10-04 18:00           ` Nicholas Jones
  2004-10-04 18:32             ` Luke-Jr
  0 siblings, 1 reply; 18+ messages in thread
From: Nicholas Jones @ 2004-10-04 18:00 UTC (permalink / raw
  To: gentoo-dev

[-- Attachment #1: Type: text/plain, Size: 666 bytes --]

> It seems like you're assuming that only one file can be fetched per 
> connection. I haven't researched the topic much, but I'm pretty sure HTTP, 
> not to mention FTP, supports multiple requests with one connection.

How do you handle changing depends? You cannot safely assume that
a single download of all current relevant directories will be
complete. Thus... You have to connect and download multiple times.

HTTP/FTP would add in complexity to portage's update procedure.
Now we'd have to ensure that our information is correct. wget
could do this with timestamps, but then you lose the forcable
checking of the contents by checksum.

--NJ



[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [gentoo-dev] Subcategores and a C comment
  2004-10-04 18:00           ` Nicholas Jones
@ 2004-10-04 18:32             ` Luke-Jr
  2004-10-04 23:48               ` Nicholas Jones
  0 siblings, 1 reply; 18+ messages in thread
From: Luke-Jr @ 2004-10-04 18:32 UTC (permalink / raw
  To: gentoo-dev

[-- Attachment #1: Type: text/plain, Size: 1100 bytes --]

On Monday 04 October 2004 6:00 pm, Nicholas Jones wrote:
> > It seems like you're assuming that only one file can be fetched per
> > connection. I haven't researched the topic much, but I'm pretty sure
> > HTTP, not to mention FTP, supports multiple requests with one connection.
>
> How do you handle changing depends? You cannot safely assume that
> a single download of all current relevant directories will be
> complete. Thus... You have to connect and download multiple times.

Not neccesarilly... Open connection; fetch pkgiwant; check deps; fetch 
depineed; no more deps: Close connection
Determining dependencies should be fast enough to keep the connection open 
for.

>
> HTTP/FTP would add in complexity to portage's update procedure.
> Now we'd have to ensure that our information is correct. wget
> could do this with timestamps, but then you lose the forcable
> checking of the contents by checksum.

How so? Fetch checksums too.
And the purpose of such an ability would be to make sync-updates unneccesary.
-- 
Luke-Jr
Developer, Utopios
http://utopios.org/

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [gentoo-dev] Subcategores and a C comment
  2004-10-04 18:32             ` Luke-Jr
@ 2004-10-04 23:48               ` Nicholas Jones
  0 siblings, 0 replies; 18+ messages in thread
From: Nicholas Jones @ 2004-10-04 23:48 UTC (permalink / raw
  To: gentoo-dev

[-- Attachment #1: Type: text/plain, Size: 1500 bytes --]

> Not neccesarilly... Open connection; fetch pkgiwant; check deps;
> fetch depineed; no more deps: Close connection
> Determining dependencies should be fast enough to keep the
> connection open for.

Sure... But would only require internal handling of web/ftp
protocols and rewriting emerge and/or doing single-dep parsing
for each entry... AND now that you're removed wget, you have to
maintain the file-states manually. That's a LOT of code with
LOTS of room for bugs. If someone feels up to handling all of
this, they can feel free to try and get it right.

It's a matter of sanity. From a programming and support
aspect, I'm not interested in non-consistent states. I
highly doubt this would be supported by dev-portage in any
reasonably near future as there are more important things
to be concerned with. It might also introduce difficulties
in modifying the structure of the tree later.

> How so? Fetch checksums too. And the purpose of such an
> ability would be to make sync-updates unneccesary.

Data gets corrupted.

Checksums of all data in the tree would be unnecessary
duplication of the existing system's capabilities. Why change
if you're simply going to reimplement everything?

GPG will introduce some of the at-sync checking of digests and
Manifests, but you _really_ don't want to experience the full
cost of verifying every file like this. It's already painful
with just manifest checking. (Hopefully, we'll get that sped
up though. Might have to write a lib for gpg.)

--NJ



[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [gentoo-dev] Subcategores and a C comment
  2004-10-04 15:58       ` [gentoo-dev] Subcategores and a C comment Nicholas Jones
  2004-10-04 16:39         ` Luke-Jr
@ 2004-10-05 12:50         ` Paul de Vrieze
  1 sibling, 0 replies; 18+ messages in thread
From: Paul de Vrieze @ 2004-10-05 12:50 UTC (permalink / raw
  To: gentoo-dev

[-- Attachment #1: Type: text/plain, Size: 576 bytes --]

On Monday 04 October 2004 17:58, Nicholas Jones wrote:
>
> It would, but not as much as the thousands of ebuilds and
> supporting files that get added to daily.

To this respect we might one time implement some setup where you get a 
full description that includes an ebuild,a digest and all tree-local 
pathes. The only main thing that would be needed is to register in the 
ebuild which files from the tree it uses. Having such a list makes sense 
anyway

Paul

-- 
Paul de Vrieze
Gentoo Developer
Mail: pauldv@gentoo.org
Homepage: http://www.devrieze.net

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 18+ messages in thread

end of thread, other threads:[~2004-10-05 12:50 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-10-03 18:55 [gentoo-dev] Portage Subcategory Capabilities? Chris White
2004-10-04  5:12 ` Georgi Georgiev
2004-10-04  5:34   ` Andrew Gaffney
2004-10-04  5:47     ` Matthew Schulkind
2004-10-04  6:04     ` Robin H. Johnson
2004-10-04  7:16     ` George Shapovalov
2004-10-04  7:42       ` Georgi Georgiev
2004-10-04 12:40       ` [gentoo-dev] Unique package names Georgi Georgiev
2004-10-04 12:53         ` Ciaran McCreesh
2004-10-04 13:02         ` Mike Frysinger
2004-10-04 15:54         ` Donnie Berkholz
2004-10-04 12:56     ` [gentoo-dev] Portage Subcategory Capabilities? Luke-Jr
2004-10-04 15:58       ` [gentoo-dev] Subcategores and a C comment Nicholas Jones
2004-10-04 16:39         ` Luke-Jr
2004-10-04 18:00           ` Nicholas Jones
2004-10-04 18:32             ` Luke-Jr
2004-10-04 23:48               ` Nicholas Jones
2004-10-05 12:50         ` Paul de Vrieze

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox