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 |