Gentoo Archives: gentoo-portage-dev

From: tvali <qtvali@×××××.com>
To: gentoo-portage-dev@l.g.o
Subject: Re: [gentoo-portage-dev] User created package lists
Date: Tue, 21 Mar 2006 16:37:23
Message-Id: cea53e3c0603210810k6fd4cb9q@mail.gmail.com
In Reply to: Re: [gentoo-portage-dev] User created package lists by Brian
1 > would indicate easily if any packages in the special list are upgradable
2 > irregardless of whether it is in world, system, whatever.
3
4 Ok. Kind of mirroring, then.
5
6 >From where the "current version" identifier for each package comes,
7 then? Will the packages be just downloaded to that central computer
8 and kept up-to-date there?
9
10 Is "list" specifier needed as there are many lists anyway? I mean,
11 there is no "--list" before world or system.
12
13 ----------------------------------------------------
14
15 Actually, it seems to me that "emerge" should be divided into smaller
16 packages so that users could do such things by scripting.
17
18 For example, if there were utilities, which build different types of
19 lists [system, kde-meta, world] and output them in some standard
20 format, optionally including versions. elist --currently_installed >>
21 world.list && elist kde-meta kdevelop >> packages.list.
22
23 Then utility, which takes list into stdin and outputs, which items are
24 newer in server.
25
26 Then utility for different kinds of comparations of lists (mix --
27 mixes two lists into one; onlyinfirst, newerversioninfirst and so on).
28
29 Then utility, which is able to emerge all packages, which are
30 contained in a specific list.
31
32 What i mean -- it should be possible to use more shell scripting in
33 portage. Any competent admin would be able to run "elist
34 --currently_installed >> world.list" on all machines, then mix them in
35 one machine and check for updates (and then download all those updates
36 into local cache, for example).
37
38 This should be discussed more deeply, but i think that if portage is
39 divided into several smaller tools, it would be simpler to develop and
40 more scalable. In such case, what portage is about -- lists and
41 checking them against each other; emerging everything in given list;
42 unmerging everything in given list; checking for dependancies of a
43 given list.
44
45 It is not a small work to think out exactly *how* it should be
46 divided, but i think that the results would be worth of it. Currently,
47 imho, the portage code is grown complex enough that making it simpler
48 is more important than giving new features to it -- if it becomes
49 simple and robust, many new features will find their way in by
50 themselves without any work on developer side, i think :)
51
52 So, if portage would be looked as lists and operations with lists
53 (calculating dependencies of package would be operation with list of
54 that package and list of all - portage tree -, then); building tools
55 [shell commands] for creating those lists and tools for operations
56 with those lists and leaving "emerge" tool just a handy interface to
57 command them would be imho great.
58
59 So, something like:
60 # create list file of all in world
61 $ elist --currently_installed --options=fullname,installedversion >> world.list
62 # is cmd for create list file of all in portage tree too slow or usable enough?
63 # check if list of all (portage tree) contains anything newer
64 (all.list is symbolic name here for portage tree to get interface
65 ordered)
66 $ ecompare world.list all.list --newer --deep >> update.list
67 # there is another computer, which is not connected to internet, but
68 has some needs, too
69 $ ecompare othercomputerworld.list all.list --newer --deep >> update2.list
70 # mix those lists together
71 $ emix update.list update2.list >> allupdates.list
72 # download updates
73 $ efetch allupdates.list --where /var/portageupdates
74 # copy all updates mentioned in update.list to CD image
75 ....
76 # update [build and install] all packages, using /var/portageupdates
77 as source of tar files
78 ....
79
80 --
81 tvali
82
83 >From a programmer's point of view, the user is a peripheral that types
84 when you issue a read request. -P. Williams
85
86 If you think your management doesn't know what it's doing or that your
87 organisation turns out low-quality software crap that embarrasses you,
88 then leave. -Ed Yourdon
89
90 We all agree on the necessity of compromise. We just can't agree on
91 when it's necessary to compromise. -Larry Wall
92
93 [ http://www.softwarequotes.com/ ] -
94 http://www.softwarequotes.com/ShowQuotes.asp?ID=544&Name=Borenstein,_Nathaniel_S.
95 - http://www.softwarequotes.com/ShowQuotes.asp?ID=571&Name=Boehm,_Barry
96
97 --
98 gentoo-portage-dev@g.o mailing list

Replies

Subject Author
[gentoo-portage-dev] Re: User created package lists MIkey <mikey@×××××××××××.com>