1 |
Jason Stubbs posted <200410202121.42464.jstubbs@g.o>, excerpted |
2 |
below, on Wed, 20 Oct 2004 21:21:42 +0900: |
3 |
|
4 |
> Try running the following on one of those broken packages. The command should |
5 |
> be on one line and bash...tbz2 should of course be replaced. |
6 |
> |
7 |
> python -c 'import xpak; tbz2=xpak.tbz2("bash-3.0-r5.tbz2"); print |
8 |
> tbz2.getelements("CATEGORY")' |
9 |
> |
10 |
> If it's empty, that's the problem. I had a lot of trouble following your |
11 |
> previous email. Would you be able to list step-by-step how to reproduce the |
12 |
> problem? |
13 |
|
14 |
That's it. A good package ($PORTDIR=/mnt/p, $PACKAGEDIR=/mnt/p/pkg): |
15 |
|
16 |
"/mnt/p/pkg/All/kdepim-3.3.1.tbz2" |
17 |
['kde-base'] |
18 |
|
19 |
The two bad packages (followed by a ls to verify the files exist: |
20 |
|
21 |
"/mnt/p/pkg/All/kdelibs-3.3.1.tbz2" |
22 |
[] |
23 |
ls "/mnt/p/pkg/All/kdelibs-3.3.1.tbz2" |
24 |
/mnt/p/pkg/All/kdelibs-3.3.1.tbz2 |
25 |
|
26 |
"/mnt/p/pkg/All/xorg-x11-6.8.0-r1.tbz2" |
27 |
[] |
28 |
ls "/mnt/p/pkg/All/xorg-x11-6.8.0-r1.tbz2" |
29 |
/mnt/p/pkg/All/xorg-x11-6.8.0-r1.tbz2 |
30 |
|
31 |
On the statement of the problem, I really can't blame you for not |
32 |
following that so well. Let's see if this helps: |
33 |
|
34 |
The problem (variant A): |
35 |
|
36 |
1) ebuild /path/to/package.ebuild package |
37 |
|
38 |
2) crash/interrupt during ebuild install or package steps |
39 |
|
40 |
3) repeat step 1 to complete package without warning or error |
41 |
|
42 |
4) attempt to install "successfully" created package, get invalid package. |
43 |
|
44 |
variant B) If step 2-crash occurs during ebuild compile, step 3 and 4 work |
45 |
fine. |
46 |
|
47 |
variant C) If step 2-crash occurs during compile and one attempts to do a |
48 |
manual make to complete the compile, then touches .compiled, step 3 will |
49 |
of course continue with ebuild install and package steps as it should. |
50 |
However, package is again invalid in step 4. |
51 |
|
52 |
All the files are in the "invalid" tbz2 package as expected. They are |
53 |
browsable from mc with its compressed tar virtual file systems, and |
54 |
extract correctly with only the expected error about the tacked on portage |
55 |
data. Further, an examination with a text editor demonstrates the ebuild |
56 |
in uncompressed form is tacked onto the end of the tbz2 as with the normal |
57 |
packages, but the data between the EOF and the ebuild doesn't look quite |
58 |
right. (tbz2 EOF verified by deleting the extra stuff and working with |
59 |
the file without error, thus confirming my guess as to where the EOF was.) |
60 |
|
61 |
I'd guess that data that doesn't look quite right contains the corrupted |
62 |
info? |
63 |
|
64 |
However, in all cases, after the package step that creates the invalid |
65 |
package, if one then issues qmerge on the still existing working dir, it |
66 |
will qmerge successfully without error -- from the SAME working dir that |
67 |
creates the bad package. I have experienced NO difficulty with said |
68 |
qmerged ebuilds. They function correctly and portage seems to have the |
69 |
correct data about them and functions correctly calculating dependencies |
70 |
and upgrades as well, with the data. |
71 |
|
72 |
Therefore, it appears the problem is that portage does /something/ in the |
73 |
ebuild compile step that isn't retained if the process is interrupted |
74 |
after that. When portage attempts to pickup with the interrupted install |
75 |
step, it's missing the data from the compile step, and doesn't complete |
76 |
the package successfully. However, the data is apparently either |
77 |
recalculated or collected by some other mechanism for qmerge, since that |
78 |
seems to work without issue. |
79 |
|
80 |
Thus, the problem /only/ occurs for those with buildpkg set, and /only/ if |
81 |
the interruption occurred between the completion of ebuild compile, and |
82 |
successful completion of ebuild package. As I said, I don't consider this |
83 |
a release stopper. |
84 |
|
85 |
Further, I mentioned I hadn't seen it with rc9, but that could be because |
86 |
I've adjusted my behavior slightly to avoid it. Later today, I'll try to |
87 |
deliberately trigger the problem, and see if I can get it to reoccur with |
88 |
now rc10 (or release, if it's out by then). |
89 |
|
90 |
-- |
91 |
Duncan - List replies preferred. No HTML msgs. |
92 |
"They that can give up essential liberty to obtain a little |
93 |
temporary safety, deserve neither liberty nor safety." -- |
94 |
Benjamin Franklin |
95 |
|
96 |
|
97 |
|
98 |
-- |
99 |
gentoo-dev@g.o mailing list |