Gentoo Archives: gentoo-dev

From: 320095285153-0001@t-online.de (Achim Gottinger)
To: gentoo-dev@g.o
Subject: Re: [gentoo-dev] Portage 1.5_pre Update
Date: Fri, 16 Feb 2001 09:49:50
Message-Id: 3A8D53EB.390F024B@gottinger.de
In Reply to: [gentoo-dev] Portage 1.5_pre Update by drobbins@gentoo.org
1 drobbins@g.o wrote:
2
3 > Hello all,
4 >
5 > Right now, there's a new version of Portage (1.5_pre1) on CVS that features
6 > many major improvements (several that were suggested on this list). It breaks
7 > compatibility with our older .tbz2 package format, so at this point it's
8 > intended for testers only. Here's an outline of all changes:
9 >
10 > Second-generation .tbz2 format
11 > ==============================
12 >
13 > Our new second-generation .tbz2 format features a new double-envelope design
14 > for enhanced performance. Package metadata is encoded in our own lightweight
15 > and fast "xpak" format and appended to the end of the .tbz2 archive, so that it
16 > can be quickly and easily read by our package installation programs. Packages
17 > can still be installed this way if you're in a pinch (although nothing will be
18 > recorded in the package database):
19 >
20 > # cat mypkg-1.0.tbz2 | bzip2 -dq | tar xvf - -C /
21 >
22 > All the ebuild components have been updated to to use this second-generation
23 > .tbz2 format, which will be the default package format for Gentoo Linux 1.0 and
24 > beyond. ***Portage 1.5_pre1 is incompatible with old-style .tbz2 archives***
25 >
26 > Enhanced package metadata
27 > =========================
28 >
29 > Binary packages as well as packages merged from sources now record additional
30 > helpful metadata in /var/db/pkg. Right now, we're recording the following information:
31 >
32 > /var/db/pkg/sys-apps/foo-1.0
33 >
34 > CFLAGS Optimization flags used to compile foo-1.0
35 > CXXFLAGS C++ optimization flags used to compile foo-1.0
36 > CHOST The setting of CHOST used to compile foo-1.0
37 > USE The "use" settings enabled at the time foo-1.0 was compiled
38 > PROVIDES The virtual packages that foo-1.0 provides
39 > CATEGORY Package category
40 > PF Full package name
41 > RDEPEND Runtime dependencies
42 > LICENSE License information
43 >
44
45 You dropped the revision from the package-dir name I think. Good.
46
47 >
48 > You'll notice a new "LICENSE" setting. Developers can begin to add a LICENSE field
49 > to their ebuilds and use it to record the licensing information for the package.
50 > Examples:
51 >
52 > #you'll use this most of the time
53 > LICENSE="gpl"
54 >
55 > #for BSD-like stuff
56 > LICENSE="bsd"
57 >
58 > #if a package offers multiple licensing options
59 > LICENSE="gpl artistic"
60 >
61 > Recursive pkgmerge
62 > ==================
63 >
64 > Thanks to our second-generation .tbz2 format, "recursive pkgmerge" now becomes
65 > easy. Our new, enhanced pkgmerge command now performs the following steps:
66 >
67 > # pkgmerge foo-1.0.tbz2
68 >
69 > 1. Scan foo-1.0.tbz2 for runtime dependencies
70 > 2. If any, scan PKGDIR, creating a directed graph of all runtime dependency information
71 > 3. Begin installing all necessary packages in optimal order
72 >
73 > To use pkgmerge, you'll need to set PKGDIR to point to the location of your
74 > .tbz2 packages. PKGDIR defaults to /usr/portage/packages. Portage expects to
75 > find an "All" directory inside PKGDIR that contains all the packages. Please
76 > remember that the new pkgmerge is incompatible with our old package format, so
77 > you can't use this to recursively merge your current (old-style) packages.
78 > However, Gentoo Linux 1.0_rc4 will use this new packaging format, and recursive
79 > pkgmerges will be fully supported :)
80
81 Should we write a converter script for old-sytle packages?
82
83 >
84 >
85 > pkgmerge also supports a new option, "--pretend". If you specify it as the first
86 > argument, pkgmerge will tell you the packages it would install (in order), rather
87 > than actually installing them.
88
89 This is definately a good thing. Does it output the dependencie from DEPEND or the resolved
90 depedencie.
91
92 >
93 >
94 > Safe auto-unmerge
95 > =================
96 >
97 > You probably know that if you try to merge an already-installed package, the
98 > current (old) version of ebuild doesn't let you. Instead, it asks you to
99 > unmerge the currently-installed version first. This doesn't happen anymore.
100 > Instead, the original instance of the package will be automatically safely
101 > unmerged after the new instance has been merged. So, if you have gimp-1.2
102 > already installed, but you update your gimp-1.2.ebuild with a few fixes, you
103 > can simply type:
104 >
105 > # ebuild gimp-1.2.ebuild merge
106 >
107 > The new version will be compiled and merged, and then the older instance of
108 > gimp-1.2 will be automatically and safely unmerged, removing any files no
109 > longer used by the new instance.
110 >
111 > ebuild updates
112 > ==============
113 >
114 > The "ebuild" program itself has been updated in several ways. First, the
115 > "remerge" command has been removed (it's no longer needed, just use "merge").
116 > Secondly, Achim's FHS 2.1 fixes have been incorporated into Portage, so that
117 > all documentation and man pages (installed using doman and dobin only) will end
118
119 My changes where made to doman, doinfo and dodoc (newman newinfo newdoc).
120 If your man info doc dirs are in /usr rigth now and not symlinks from /usr/share to /usr, please
121 move them to /usr/share and symlink them to /usr
122
123 >
124 > up in /usr/share rather than /usr/.
125 >
126 > python updates
127 > ==============
128 >
129 > We have a new module called xpak.py that handles the creation and parsing of
130 > xpak metadata. The portage.py code has been majorly overhauled. We now use an
131 > object-based "dblink" system to access the /var/db/pkg object database. By
132 > providing this object API, in the future we will be able to re-implement the
133 > database code in C/C++, write a mySQL package database backend, or do whatever
134 > we like. Of course, our new .tbz2 format is package database independent,
135 > unlike old ebuilds that directly reference /var/db/pkg.
136 >
137 > There are also a host of other cleanups and improvements, resulting in a
138 > portage.py that has a bunch of new functionality, but is actually somewhat
139 > _smaller_ than the original version.
140 >
141 > new file locations
142 > ==================
143 >
144 > All Portage binaries now reside in /usr/lib/portage/bin, and symlinks are
145 > created in /usr/sbin and /usr/bin for popular binaries. ebuild is now in
146 > /usr/sbin, along with pkgmerge. The new tbz2tool and xpak binaries live in
147 > /usr/bin. If you're going to test Portage 1.5_pre1, be sure to delete
148 > your old /usr/bin/ebuild script!
149 >
150 > That's all for now :)
151
152 Thank you for that big peace of work daniel.
153
154 achim~
155
156 >
157 >
158 > Best Regards,
159 >
160 > --
161 > Daniel Robbins <drobbins@g.o>
162 > President/CEO http://www.gentoo.org
163 > Gentoo Technologies, Inc.
164 >
165 > _______________________________________________
166 > gentoo-dev mailing list
167 > gentoo-dev@g.o
168 > http://www.gentoo.org/mailman/listinfo/gentoo-dev

Replies

Subject Author
Re: [gentoo-dev] Portage 1.5_pre Update drobbins@g.o