diff options
author | Mark Hatle <mark.hatle@windriver.com> | 2011-03-28 22:07:02 -0500 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2011-03-31 22:02:46 +0100 |
commit | 41efbe13cb2f8b4b78c6049446cd14f9b086520d (patch) | |
tree | 506dcc9fcfa94fbd38eb0eadafb213e249d1f60d /meta/recipes-extended/sat-solver | |
parent | 133f7e8cdd5a2b8f205ae1c2128f2e4fb6eb2cf4 (diff) | |
download | poky-41efbe13cb2f8b4b78c6049446cd14f9b086520d.tar.gz |
Fix integration of zypper and sat-solver
Adjust the integration of zypper and sat-solver to ensure that all of the
defined architectures for a given machine are defined identically to Poky.
(From OE-Core rev: b2996efc015bc5ae0b8246924083e76fb5129cea)
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-extended/sat-solver')
4 files changed, 132 insertions, 73 deletions
diff --git a/meta/recipes-extended/sat-solver/sat-solver/builtin-arch.patch b/meta/recipes-extended/sat-solver/sat-solver/builtin-arch.patch deleted file mode 100644 index c228c36e49..0000000000 --- a/meta/recipes-extended/sat-solver/sat-solver/builtin-arch.patch +++ /dev/null | |||
@@ -1,28 +0,0 @@ | |||
1 | This patch adds the ${MACHINE_ARCH} and ${PACKAGE_ARCH} to | ||
2 | sat-solver available archs, see do_archpatch in .bb for more | ||
3 | details, this is the version for ${BASE_PACKAGE_ARCH} already | ||
4 | recognized in sat-sovler. | ||
5 | |||
6 | Signed-off-by: Qing He <qing.he@intel.com> | ||
7 | |||
8 | diff --git a/src/poolarch.c b/src/poolarch.c | ||
9 | index 34a14a3..660959b 100644 | ||
10 | --- a/src/poolarch.c | ||
11 | +++ b/src/poolarch.c | ||
12 | @@ -21,6 +21,7 @@ | ||
13 | #include "util.h" | ||
14 | |||
15 | const char *archpolicies[] = { | ||
16 | + "@MACHINE_ARCH@", "@MACHINE_ARCH@:@PKG_ARCH_TAIL@", | ||
17 | "x86_64", "x86_64:i686:i586:i486:i386", | ||
18 | "i686", "i686:i586:i486:i386", | ||
19 | "i586", "i586:i486:i386", | ||
20 | @@ -72,7 +74,7 @@ pool_setarch(Pool *pool, const char *arch) | ||
21 | return; | ||
22 | } | ||
23 | #ifndef DEBIAN_SEMANTICS | ||
24 | - id = ARCH_NOARCH; | ||
25 | + id = ARCH_ALL; | ||
26 | #else | ||
27 | id = ARCH_ALL; | ||
28 | #endif | ||
diff --git a/meta/recipes-extended/sat-solver/sat-solver/no-builtin-arch.patch b/meta/recipes-extended/sat-solver/sat-solver/no-builtin-arch.patch deleted file mode 100644 index 225fbfe159..0000000000 --- a/meta/recipes-extended/sat-solver/sat-solver/no-builtin-arch.patch +++ /dev/null | |||
@@ -1,29 +0,0 @@ | |||
1 | This patch adds the ${MACHINE_ARCH} and ${PACKAGE_ARCH} to | ||
2 | sat-solver available archs, see do_archpatch in .bb for more | ||
3 | details, this is the version for ${BASE_PACKAGE_ARCH} not | ||
4 | recognized in sat-sovler. | ||
5 | |||
6 | Signed-off-by: Qing He <qing.he@intel.com> | ||
7 | |||
8 | diff --git a/src/poolarch.c b/src/poolarch.c | ||
9 | index 34a14a3..36367ba 100644 | ||
10 | --- a/src/poolarch.c | ||
11 | +++ b/src/poolarch.c | ||
12 | @@ -21,6 +21,8 @@ | ||
13 | #include "util.h" | ||
14 | |||
15 | const char *archpolicies[] = { | ||
16 | + "@MACHINE_ARCH@", "@MACHINE_ARCH@:@PKG_ARCH@", | ||
17 | + "@PKG_ARCH@", "@PKG_ARCH@", | ||
18 | "x86_64", "x86_64:i686:i586:i486:i386", | ||
19 | "i686", "i686:i586:i486:i386", | ||
20 | "i586", "i586:i486:i386", | ||
21 | @@ -72,7 +74,7 @@ pool_setarch(Pool *pool, const char *arch) | ||
22 | return; | ||
23 | } | ||
24 | #ifndef DEBIAN_SEMANTICS | ||
25 | - id = ARCH_NOARCH; | ||
26 | + id = ARCH_ALL; | ||
27 | #else | ||
28 | id = ARCH_ALL; | ||
29 | #endif | ||
diff --git a/meta/recipes-extended/sat-solver/sat-solver/sat-solver_poky.patch b/meta/recipes-extended/sat-solver/sat-solver/sat-solver_poky.patch new file mode 100644 index 0000000000..b762bac854 --- /dev/null +++ b/meta/recipes-extended/sat-solver/sat-solver/sat-solver_poky.patch | |||
@@ -0,0 +1,106 @@ | |||
1 | Fix "arch" integration with Poky. | ||
2 | |||
3 | Add a missing "any" architecture type and update the semantics to use it. | ||
4 | |||
5 | Disable the built-in archpolicies structure, and replace it with one | ||
6 | we generate in the recipe. | ||
7 | |||
8 | Signed-off-by: Mark Hatle <mark.hatle@windriver.com> | ||
9 | |||
10 | diff --git a/src/knownid.h b/src/knownid.h | ||
11 | index 7757ae0..4b8bee7 100644 | ||
12 | --- a/src/knownid.h | ||
13 | +++ b/src/knownid.h | ||
14 | @@ -57,6 +57,7 @@ KNOWNID(SYSTEM_SYSTEM, "system:system"), | ||
15 | KNOWNID(ARCH_SRC, "src"), | ||
16 | KNOWNID(ARCH_NOSRC, "nosrc"), | ||
17 | KNOWNID(ARCH_NOARCH, "noarch"), | ||
18 | +KNOWNID(ARCH_ANY, "any"), | ||
19 | KNOWNID(ARCH_ALL, "all"), | ||
20 | |||
21 | KNOWNID(REPOSITORY_SOLVABLES, "repository:solvables"), | ||
22 | diff --git a/src/policy.c b/src/policy.c | ||
23 | index 55c8677..3356ff8 100644 | ||
24 | --- a/src/policy.c | ||
25 | +++ b/src/policy.c | ||
26 | @@ -486,6 +486,13 @@ policy_illegal_archchange(Solver *solv, Solvable *s1, Solvable *s2) | ||
27 | } | ||
28 | |||
29 | /* we allow changes to/from noarch */ | ||
30 | +#ifdef POKY_SEMANTICS | ||
31 | + if (a1 == a2 || | ||
32 | + a1 == ARCH_NOARCH || a2 == ARCH_NOARCH || | ||
33 | + a1 == ARCH_ANY || a2 == ARCH_ANY || | ||
34 | + a1 == ARCH_ALL || a2 == ARCH_ALL) | ||
35 | + return 0; | ||
36 | +#else | ||
37 | #ifndef DEBIAN_SEMANTICS | ||
38 | if (a1 == a2 || a1 == ARCH_NOARCH || a2 == ARCH_NOARCH) | ||
39 | return 0; | ||
40 | @@ -493,6 +500,7 @@ policy_illegal_archchange(Solver *solv, Solvable *s1, Solvable *s2) | ||
41 | if (a1 == a2 || a1 == ARCH_ALL || a2 == ARCH_ALL) | ||
42 | return 0; | ||
43 | #endif | ||
44 | +#endif | ||
45 | if (!pool->id2arch) | ||
46 | return 0; | ||
47 | a1 = a1 <= pool->lastarch ? pool->id2arch[a1] : 0; | ||
48 | diff --git a/src/poolarch.c b/src/poolarch.c | ||
49 | index 34a14a3..2d7cd70 100644 | ||
50 | --- a/src/poolarch.c | ||
51 | +++ b/src/poolarch.c | ||
52 | @@ -20,38 +20,8 @@ | ||
53 | #include "poolarch.h" | ||
54 | #include "util.h" | ||
55 | |||
56 | -const char *archpolicies[] = { | ||
57 | - "x86_64", "x86_64:i686:i586:i486:i386", | ||
58 | - "i686", "i686:i586:i486:i386", | ||
59 | - "i586", "i586:i486:i386", | ||
60 | - "i486", "i486:i386", | ||
61 | - "i386", "i386", | ||
62 | - "s390x", "s390x:s390", | ||
63 | - "s390", "s390", | ||
64 | - "ia64", "ia64:i686:i586:i486:i386", | ||
65 | - "ppc64", "ppc64:ppc", | ||
66 | - "ppc", "ppc", | ||
67 | - "armv7nhl", "armv7nhl:armv7hl", | ||
68 | - "armv7hl", "armv7hl", | ||
69 | - "armv7l", "armv7l:armv6l:armv5tejl:armv5tel:armv5l:armv4tl:armv4l:armv3l", | ||
70 | - "armv6l", "armv6l:armv5tejl:armv5tel:armv5l:armv4tl:armv4l:armv3l", | ||
71 | - "armv5tejl", "armv5tejl:armv5tel:armv5l:armv4tl:armv4l:armv3l", | ||
72 | - "armv5tel", "armv5tel:armv5l:armv4tl:armv4l:armv3l", | ||
73 | - "armv5l", "armv5l:armv4tl:armv4l:armv3l", | ||
74 | - "armv4tl", "armv4tl:armv4l:armv3l", | ||
75 | - "armv4l", "armv4l:armv3l", | ||
76 | - "armv3l", "armv3l", | ||
77 | - "sh3", "sh3", | ||
78 | - "sh4", "sh4", | ||
79 | - "sh4a", "sh4a:sh4", | ||
80 | - "sparc64v", "sparc64v:sparc64:sparcv9v:sparcv9:sparcv8:sparc", | ||
81 | - "sparc64", "sparc64:sparcv9:sparcv8:sparc", | ||
82 | - "sparcv9v", "sparcv9v:sparcv9:sparcv8:sparc", | ||
83 | - "sparcv9", "sparcv9:sparcv8:sparc", | ||
84 | - "sparcv8", "sparcv8:sparc", | ||
85 | - "sparc", "sparc", | ||
86 | - 0 | ||
87 | -}; | ||
88 | +/* Provide the const char *archpolicies structure */ | ||
89 | +#include "poky-arch.h" | ||
90 | |||
91 | void | ||
92 | pool_setarch(Pool *pool, const char *arch) | ||
93 | @@ -71,10 +41,10 @@ pool_setarch(Pool *pool, const char *arch) | ||
94 | pool->lastarch = 0; | ||
95 | return; | ||
96 | } | ||
97 | -#ifndef DEBIAN_SEMANTICS | ||
98 | - id = ARCH_NOARCH; | ||
99 | -#else | ||
100 | +#if defined(DEBIAN_SEMANTICS) || defined(POKY_SEMANTICS) | ||
101 | id = ARCH_ALL; | ||
102 | +#else | ||
103 | + id = ARCH_NOARCH; | ||
104 | #endif | ||
105 | lastarch = id + 255; | ||
106 | id2arch = sat_calloc(lastarch + 1, sizeof(Id)); | ||
diff --git a/meta/recipes-extended/sat-solver/sat-solver_git.bb b/meta/recipes-extended/sat-solver/sat-solver_git.bb index 33bf9392e2..a6937763cb 100644 --- a/meta/recipes-extended/sat-solver/sat-solver_git.bb +++ b/meta/recipes-extended/sat-solver/sat-solver_git.bb | |||
@@ -7,15 +7,14 @@ LIC_FILES_CHKSUM = "file://LICENSE.BSD;md5=62272bd11c97396d4aaf1c41bc11f7d8" | |||
7 | DEPENDS = "libcheck rpm zlib expat db" | 7 | DEPENDS = "libcheck rpm zlib expat db" |
8 | 8 | ||
9 | PV = "0.0-git${SRCPV}" | 9 | PV = "0.0-git${SRCPV}" |
10 | PR = "r7" | 10 | PR = "r8" |
11 | 11 | ||
12 | SRC_URI = "git://gitorious.org/opensuse/sat-solver.git;protocol=git \ | 12 | SRC_URI = "git://gitorious.org/opensuse/sat-solver.git;protocol=git \ |
13 | file://sat-solver_rpm5.patch \ | 13 | file://sat-solver_rpm5.patch \ |
14 | file://sat-solver_obsolete.patch \ | 14 | file://sat-solver_obsolete.patch \ |
15 | file://cmake.patch \ | 15 | file://cmake.patch \ |
16 | file://db5.patch \ | 16 | file://db5.patch \ |
17 | file://builtin-arch.patch;apply=no \ | 17 | file://sat-solver_poky.patch \ |
18 | file://no-builtin-arch.patch;apply=no \ | ||
19 | " | 18 | " |
20 | 19 | ||
21 | S = "${WORKDIR}/git" | 20 | S = "${WORKDIR}/git" |
@@ -26,20 +25,31 @@ inherit cmake pkgconfig | |||
26 | 25 | ||
27 | PACKAGE_ARCH = "${MACHINE_ARCH}" | 26 | PACKAGE_ARCH = "${MACHINE_ARCH}" |
28 | 27 | ||
29 | do_archpatch () { | 28 | do_archgen () { |
30 | PKG_ARCH_TAIL=`sed -n ${S}/src/poolarch.c -e "s|^ \"\(${BASE_PACKAGE_ARCH}\)\",.*\"\(.*\)\",.*$|\2|p"` | 29 | # We need to dynamically generate our arch file based on the machine |
31 | if [ "x${PKG_ARCH_TAIL}" == x ]; then | 30 | # configuration |
32 | PATCHFILE=${WORKDIR}/no-builtin-arch.patch | ||
33 | else | ||
34 | PATCHFILE=${WORKDIR}/builtin-arch.patch | ||
35 | fi | ||
36 | 31 | ||
37 | sed -i "${PATCHFILE}" \ | 32 | INSTALL_PLATFORM_ARCHS="" |
38 | -e "s|@MACHINE_ARCH@|${MACHINE_ARCH}|g" \ | 33 | for each_arch in ${PACKAGE_ARCHS} ; do |
39 | -e "s|@PKG_ARCH@|${BASE_PACKAGE_ARCH}|g" \ | 34 | case "$each_arch" in |
40 | -e "s|@PKG_ARCH_TAIL@|${PKG_ARCH_TAIL}|g" | 35 | all | any | noarch) |
36 | continue;; | ||
37 | esac | ||
38 | INSTALL_PLATFORM_ARCHS="$each_arch $INSTALL_PLATFORM_ARCHS" | ||
39 | done | ||
41 | 40 | ||
42 | patch -p1 -i "${PATCHFILE}" | 41 | echo "/* Automatically generated by the sat-solver recipe */" > src/poky-arch.h |
42 | echo "const char *archpolicies[] = {" >> src/poky-arch.h | ||
43 | |||
44 | set -- $INSTALL_PLATFORM_ARCHS | ||
45 | |||
46 | save_IFS=$IFS | ||
47 | IFS=: | ||
48 | while [ $# -gt 0 ]; do echo " \"$1\", "\""$*"\", >> src/poky-arch.h ; shift; done | ||
49 | IFS=$save_IFS | ||
50 | |||
51 | echo " 0" >> src/poky-arch.h | ||
52 | echo "};" >> src/poky-arch.h | ||
43 | } | 53 | } |
44 | 54 | ||
45 | addtask archpatch before do_patch after do_unpack | 55 | addtask archgen before do_configure after do_patch |