author | Shawn Walker <shawn.walker@oracle.com> |
Sat, 16 Jul 2011 08:45:13 -0700 | |
changeset 2468 | ce77b64883c4 |
parent 33 | c475e7f3eab8 |
permissions | -rw-r--r-- |
2 | 1 |
|
2 |
pkg |
|
3 |
ELF (AND MAYBE JAR) DEPENDENCY HANDLING |
|
4 |
||
5 |
ELF files give us ISA information, required libraries with versions, and |
|
6 |
potentially provided interface versions. This latter information is |
|
7 |
missing from a large set of libraries on OpenSolaris, built without |
|
8 |
versioned interfaces. |
|
9 |
||
10 |
It seems that an ELF file, on upload, can be tested for its ELF |
|
11 |
dependencies, and that these files in turn can be tested for presence. |
|
12 |
If any of the latter file's revisions provide versions, then these can |
|
13 |
be tested and translated into a minimum package requirement for the |
|
14 |
package containing the introduced ELF file. |
|
15 |
||
4
71c3260bcb8d
added thoughts about use of ELF comparisons/hashes
sch@rosseau
parents:
2
diff
changeset
|
16 |
We always want the latest version surface, so we don't want to send a |
71c3260bcb8d
added thoughts about use of ELF comparisons/hashes
sch@rosseau
parents:
2
diff
changeset
|
17 |
new header file without the corresponding ELF objects its changes caused |
71c3260bcb8d
added thoughts about use of ELF comparisons/hashes
sch@rosseau
parents:
2
diff
changeset
|
18 |
to be generated. |
71c3260bcb8d
added thoughts about use of ELF comparisons/hashes
sch@rosseau
parents:
2
diff
changeset
|
19 |
|
71c3260bcb8d
added thoughts about use of ELF comparisons/hashes
sch@rosseau
parents:
2
diff
changeset
|
20 |
It seems that ELF differences are only useful for determining whether an |
71c3260bcb8d
added thoughts about use of ELF comparisons/hashes
sch@rosseau
parents:
2
diff
changeset
|
21 |
incoming transaction is significant. For instance, RE delivers a group |
71c3260bcb8d
added thoughts about use of ELF comparisons/hashes
sch@rosseau
parents:
2
diff
changeset
|
22 |
of change that actually contains no change to the non-ELF files, and the |
71c3260bcb8d
added thoughts about use of ELF comparisons/hashes
sch@rosseau
parents:
2
diff
changeset
|
23 |
change to the ELF files is non-ELF significant. In this case, perhaps |
71c3260bcb8d
added thoughts about use of ELF comparisons/hashes
sch@rosseau
parents:
2
diff
changeset
|
24 |
the delivery should fail/warn. |
71c3260bcb8d
added thoughts about use of ELF comparisons/hashes
sch@rosseau
parents:
2
diff
changeset
|
25 |
|
33
c475e7f3eab8
actually include elf.c; move pkg-modules to just modules; hoist utility modules
Stephen Hahn <sch@sun.com>
parents:
10
diff
changeset
|
26 |
XXX Can we do something similar for JAR files? Tasting JAR files is |
c475e7f3eab8
actually include elf.c; move pkg-modules to just modules; hoist utility modules
Stephen Hahn <sch@sun.com>
parents:
10
diff
changeset
|
27 |
outlined in $SRC/cmd/file/file.c:zipfile(), since a JAR file is a zip |
c475e7f3eab8
actually include elf.c; move pkg-modules to just modules; hoist utility modules
Stephen Hahn <sch@sun.com>
parents:
10
diff
changeset
|
28 |
file with extra header information. [1] |
2 | 29 |
|
10
5bd49c138227
speculation about module versioning in non-ELF cases
"Stephen Hahn <sch@sun.com>"
parents:
4
diff
changeset
|
30 |
XXX Can we do something similar for Perl or Python (or any language with |
5bd49c138227
speculation about module versioning in non-ELF cases
"Stephen Hahn <sch@sun.com>"
parents:
4
diff
changeset
|
31 |
internal versioning statements)? |
5bd49c138227
speculation about module versioning in non-ELF cases
"Stephen Hahn <sch@sun.com>"
parents:
4
diff
changeset
|
32 |
|
5bd49c138227
speculation about module versioning in non-ELF cases
"Stephen Hahn <sch@sun.com>"
parents:
4
diff
changeset
|
33 |
XXX There's really no way to tie the kernel to libc in the current |
5bd49c138227
speculation about module versioning in non-ELF cases
"Stephen Hahn <sch@sun.com>"
parents:
4
diff
changeset
|
34 |
system, or in pkg(1M). Should we be adding a simple signature, or |
5bd49c138227
speculation about module versioning in non-ELF cases
"Stephen Hahn <sch@sun.com>"
parents:
4
diff
changeset
|
35 |
reusing library versioning, or must it be left to a human (expressing it |
5bd49c138227
speculation about module versioning in non-ELF cases
"Stephen Hahn <sch@sun.com>"
parents:
4
diff
changeset
|
36 |
via pkg(1M) dependencies)? |
33
c475e7f3eab8
actually include elf.c; move pkg-modules to just modules; hoist utility modules
Stephen Hahn <sch@sun.com>
parents:
10
diff
changeset
|
37 |
|
c475e7f3eab8
actually include elf.c; move pkg-modules to just modules; hoist utility modules
Stephen Hahn <sch@sun.com>
parents:
10
diff
changeset
|
38 |
[1] Sun Microsystems, Inc., JAR File Specification, |
c475e7f3eab8
actually include elf.c; move pkg-modules to just modules; hoist utility modules
Stephen Hahn <sch@sun.com>
parents:
10
diff
changeset
|
39 |
http://java.sun.com/j2se/1.4.2/docs/guide/jar/jar.html |