diff options
| author | Mark Hatle <mark.hatle@windriver.com> | 2011-03-28 22:07:02 -0500 |
|---|---|---|
| committer | Saul Wold <sgw@linux.intel.com> | 2011-05-06 17:44:22 -0700 |
| commit | 60ab27d71ba8e6bba49d1158d2668d6c739e2840 (patch) | |
| tree | 375d03ead306a30e5a18cf8c34f4895b1a6fee49 | |
| parent | d739fc53ebd49c9735f78b6036f54669ba825ea7 (diff) | |
| download | poky-60ab27d71ba8e6bba49d1158d2668d6c739e2840.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>
9 files changed, 706 insertions, 359 deletions
diff --git a/meta/recipes-extended/libzypp/libzypp/archconf.patch b/meta/recipes-extended/libzypp/libzypp/archconf.patch deleted file mode 100644 index 44ebe33592..0000000000 --- a/meta/recipes-extended/libzypp/libzypp/archconf.patch +++ /dev/null | |||
| @@ -1,15 +0,0 @@ | |||
| 1 | diff --git a/zypp.conf b/zypp.conf | ||
| 2 | index 1e84a3f..7a26548 100644 | ||
| 3 | --- a/zypp.conf | ||
| 4 | +++ b/zypp.conf | ||
| 5 | @@ -17,7 +17,10 @@ | ||
| 6 | ## ** Changing this needs a full refresh (incl. download) | ||
| 7 | ## ** of all repository data. | ||
| 8 | ## | ||
| 9 | +## ** CAUTION: Don't change this value on yocto ! | ||
| 10 | +## | ||
| 11 | # arch = s390 | ||
| 12 | +arch = @MACHINE_ARCH@ | ||
| 13 | |||
| 14 | |||
| 15 | ## | ||
diff --git a/meta/recipes-extended/libzypp/libzypp/builtin-arch.patch b/meta/recipes-extended/libzypp/libzypp/builtin-arch.patch deleted file mode 100644 index 53dcfac652..0000000000 --- a/meta/recipes-extended/libzypp/libzypp/builtin-arch.patch +++ /dev/null | |||
| @@ -1,122 +0,0 @@ | |||
| 1 | This patch adds the ${MACHINE_ARCH} and ${PACKAGE_ARCH} to | ||
| 2 | libzypp available archs, see do_archpatch in .bb for more | ||
| 3 | details, this is the version for ${BASE_PACKAGE_ARCH} already | ||
| 4 | recognized in libzypp. | ||
| 5 | |||
| 6 | Also "all" is added as a synonym for noarch. | ||
| 7 | |||
| 8 | Signed-off-by: Qing He <qing.he@intel.com> | ||
| 9 | |||
| 10 | diff --git a/zypp/Arch.cc b/zypp/Arch.cc | ||
| 11 | index 7b357bb..d9102cc 100644 | ||
| 12 | --- a/zypp/Arch.cc | ||
| 13 | +++ b/zypp/Arch.cc | ||
| 14 | @@ -122,7 +122,13 @@ namespace zypp | ||
| 15 | |||
| 16 | /** \relates Arch::CompatEntry */ | ||
| 17 | inline bool operator==( const Arch::CompatEntry & lhs, const Arch::CompatEntry & rhs ) | ||
| 18 | - { return lhs._idStr == rhs._idStr; } | ||
| 19 | + { | ||
| 20 | + if ( (lhs._idStr == "all" && rhs._idStr == "noarch") || | ||
| 21 | + (lhs._idStr == "noarch" && rhs._idStr == "all") ) | ||
| 22 | + return true; | ||
| 23 | + else | ||
| 24 | + return lhs._idStr == rhs._idStr; | ||
| 25 | + } | ||
| 26 | /** \relates Arch::CompatEntry */ | ||
| 27 | inline bool operator!=( const Arch::CompatEntry & lhs, const Arch::CompatEntry & rhs ) | ||
| 28 | { return ! ( lhs == rhs ); } | ||
| 29 | @@ -153,7 +159,7 @@ namespace zypp | ||
| 30 | // bit for each architecture. | ||
| 31 | // | ||
| 32 | #define DEF_BUILTIN(A) const IdString _##A( #A ); | ||
| 33 | - DEF_BUILTIN( noarch ); | ||
| 34 | + const IdString _noarch( "all" ); | ||
| 35 | |||
| 36 | DEF_BUILTIN( i386 ); | ||
| 37 | DEF_BUILTIN( i486 ); | ||
| 38 | @@ -202,6 +208,8 @@ namespace zypp | ||
| 39 | |||
| 40 | DEF_BUILTIN( sh4 ); | ||
| 41 | DEF_BUILTIN( sh4a ); | ||
| 42 | + | ||
| 43 | + const IdString _machine( "@MACHINE_ARCH@" ); | ||
| 44 | #undef DEF_BUILTIN | ||
| 45 | |||
| 46 | /////////////////////////////////////////////////////////////////// | ||
| 47 | @@ -326,12 +334,14 @@ namespace zypp | ||
| 48 | // | ||
| 49 | defCompatibleWith( _sh4, _noarch ); | ||
| 50 | defCompatibleWith( _sh4a, _noarch,_sh4 ); | ||
| 51 | + | ||
| 52 | + defCompatibleWith( _machine, @PKG_ARCH_TAIL@,_@PKG_ARCH@ ); | ||
| 53 | // | ||
| 54 | /////////////////////////////////////////////////////////////////// | ||
| 55 | // dumpOn( USR ) << endl; | ||
| 56 | } | ||
| 57 | |||
| 58 | - private: | ||
| 59 | + public: | ||
| 60 | /** Return the next avialable _idBit. | ||
| 61 | * Ctor injects _noarch into the _compatSet, 1 is for | ||
| 62 | * nonbuiltin archs, so we can use <tt>size</tt> for | ||
| 63 | @@ -440,6 +450,8 @@ namespace zypp | ||
| 64 | const Arch Arch_sh4( _sh4 ); | ||
| 65 | const Arch Arch_sh4a( _sh4a ); | ||
| 66 | |||
| 67 | + const Arch Arch_machine( _machine ); | ||
| 68 | + | ||
| 69 | /////////////////////////////////////////////////////////////////// | ||
| 70 | // | ||
| 71 | // METHOD NAME : Arch::Arch | ||
| 72 | diff --git a/zypp/Arch.h b/zypp/Arch.h | ||
| 73 | index 6b18a6e..092211c 100644 | ||
| 74 | --- a/zypp/Arch.h | ||
| 75 | +++ b/zypp/Arch.h | ||
| 76 | @@ -249,6 +249,8 @@ namespace zypp | ||
| 77 | extern const Arch Arch_sh4; | ||
| 78 | /** \relates Arch */ | ||
| 79 | extern const Arch Arch_sh4a; | ||
| 80 | + | ||
| 81 | + extern const Arch Arch_machine; | ||
| 82 | //@} | ||
| 83 | |||
| 84 | /////////////////////////////////////////////////////////////////// | ||
| 85 | diff --git a/zypp/parser/yum/schema/common-inc.rnc b/zypp/parser/yum/schema/common-inc.rnc | ||
| 86 | index f12ac3b..24ce06e 100644 | ||
| 87 | --- a/zypp/parser/yum/schema/common-inc.rnc | ||
| 88 | +++ b/zypp/parser/yum/schema/common-inc.rnc | ||
| 89 | @@ -26,6 +26,7 @@ private.evr = | ||
| 90 | private.localizedtext = attribute lang { "en" | "de" }, text | ||
| 91 | |||
| 92 | private.archenum = "noarch" | ||
| 93 | + | "all" | ||
| 94 | | "armv4l" | ||
| 95 | | "armv5el" | ||
| 96 | | "armv5tel" | ||
| 97 | @@ -46,4 +47,5 @@ private.archenum = "noarch" | ||
| 98 | | "sh4" | ||
| 99 | | "x86_64" | ||
| 100 | | "src" | ||
| 101 | + | "@MACHINE_ARCH@" | ||
| 102 | |||
| 103 | diff --git a/zypp/parser/yum/schema/common-inc.rng b/zypp/parser/yum/schema/common-inc.rng | ||
| 104 | index 60e5742..8a9ce2e 100644 | ||
| 105 | --- a/zypp/parser/yum/schema/common-inc.rng | ||
| 106 | +++ b/zypp/parser/yum/schema/common-inc.rng | ||
| 107 | @@ -89,6 +89,7 @@ | ||
| 108 | <define name="private.archenum"> | ||
| 109 | <choice> | ||
| 110 | <value>noarch</value> | ||
| 111 | + <value>all</value> | ||
| 112 | <value>armv4l</value> | ||
| 113 | <value>armv5el</value> | ||
| 114 | <value>armv5tel</value> | ||
| 115 | @@ -109,6 +110,7 @@ | ||
| 116 | <value>sh4</value> | ||
| 117 | <value>x86_64</value> | ||
| 118 | <value>src</value> | ||
| 119 | + <value>@MACHINE_ARCH@</value> | ||
| 120 | </choice> | ||
| 121 | </define> | ||
| 122 | </grammar> | ||
diff --git a/meta/recipes-extended/libzypp/libzypp/libzypp-pokyarch.patch b/meta/recipes-extended/libzypp/libzypp/libzypp-pokyarch.patch new file mode 100644 index 0000000000..2561a43ad7 --- /dev/null +++ b/meta/recipes-extended/libzypp/libzypp/libzypp-pokyarch.patch | |||
| @@ -0,0 +1,498 @@ | |||
| 1 | Disable all of the internal architectures | ||
| 2 | |||
| 3 | We disable all of the internal architectures and replace them with ones | ||
| 4 | generated by the libzypp recipe as specified in the poky-arch.h. | ||
| 5 | |||
| 6 | Signed-off-by: Mark Hatle <mark.hatle@windriver.com> | ||
| 7 | |||
| 8 | diff -ur git.orig/tests/lib/TestSetup.h git/tests/lib/TestSetup.h | ||
| 9 | --- git.orig/tests/lib/TestSetup.h 2011-03-28 14:24:36.534800770 -0500 | ||
| 10 | +++ git/tests/lib/TestSetup.h 2011-03-28 14:25:04.969912234 -0500 | ||
| 11 | @@ -66,7 +66,7 @@ | ||
| 12 | * // enabls loging fot the scope of this block: | ||
| 13 | * // base::LogControl::TmpLineWriter shutUp( new log::FileLineWriter( "/tmp/YLOG" ) ); | ||
| 14 | * | ||
| 15 | - * TestSetup test( Arch_x86_64 ); | ||
| 16 | + * TestSetup test( Arch_machine ); | ||
| 17 | * // test.loadTarget(); // initialize and load target | ||
| 18 | * test.loadRepo( TESTS_SRC_DIR"/data/openSUSE-11.1" ); | ||
| 19 | * | ||
| 20 | @@ -313,7 +313,7 @@ | ||
| 21 | * a TestSetup system or a real system. The provided repostitories are | ||
| 22 | * loaded into the pool (without refresh). | ||
| 23 | */ | ||
| 24 | - static void LoadSystemAt( const Pathname & sysRoot, const Arch & _testSetupArch_r = Arch_x86_64 ) | ||
| 25 | + static void LoadSystemAt( const Pathname & sysRoot, const Arch & _testSetupArch_r = Arch_machine ) | ||
| 26 | { | ||
| 27 | if ( ! PathInfo( sysRoot ).isDir() ) | ||
| 28 | ZYPP_THROW( Exception("sysRoot argument needs to be a directory") ); | ||
| 29 | diff -ur git.orig/tools/DumpSelectable.cc git/tools/DumpSelectable.cc | ||
| 30 | --- git.orig/tools/DumpSelectable.cc 2011-03-28 14:24:36.547876951 -0500 | ||
| 31 | +++ git/tools/DumpSelectable.cc 2011-03-28 14:25:04.969912234 -0500 | ||
| 32 | @@ -78,7 +78,7 @@ | ||
| 33 | else if ( TestSetup::isTestSetup( sysRoot ) ) | ||
| 34 | { | ||
| 35 | message << str::form( "*** Load TestSetup from '%s'", sysRoot.c_str() ) << endl; | ||
| 36 | - TestSetup test( sysRoot, Arch_x86_64 ); | ||
| 37 | + TestSetup test( sysRoot, Arch_machine ); | ||
| 38 | test.loadRepos(); | ||
| 39 | } | ||
| 40 | else | ||
| 41 | diff -ur git.orig/tools/NameReqPrv.cc git/tools/NameReqPrv.cc | ||
| 42 | --- git.orig/tools/NameReqPrv.cc 2011-03-28 14:24:36.547876951 -0500 | ||
| 43 | +++ git/tools/NameReqPrv.cc 2011-03-28 14:25:04.970849384 -0500 | ||
| 44 | @@ -112,7 +112,7 @@ | ||
| 45 | else if ( TestSetup::isTestSetup( sysRoot ) ) | ||
| 46 | { | ||
| 47 | message << str::form( "*** Load TestSetup from '%s'", sysRoot.c_str() ) << endl; | ||
| 48 | - TestSetup test( sysRoot, Arch_x86_64 ); | ||
| 49 | + TestSetup test( sysRoot, Arch_machine ); | ||
| 50 | test.loadRepos(); | ||
| 51 | dumpRange( message, satpool.reposBegin(), satpool.reposEnd() ) << endl; | ||
| 52 | } | ||
| 53 | diff -ur git.orig/tools/ToolScanRepos.cc git/tools/ToolScanRepos.cc | ||
| 54 | --- git.orig/tools/ToolScanRepos.cc 2011-03-28 14:24:36.547876951 -0500 | ||
| 55 | +++ git/tools/ToolScanRepos.cc 2011-03-28 14:25:04.970849384 -0500 | ||
| 56 | @@ -46,7 +46,7 @@ | ||
| 57 | /////////////////////////////////////////////////////////////////// | ||
| 58 | Pathname mtmp( "/tmp" ); | ||
| 59 | Pathname mroot( mtmp/appname ); | ||
| 60 | - Arch march( Arch_x86_64 ); | ||
| 61 | + Arch march( Arch_machine ); | ||
| 62 | bool oClearRoot = true; | ||
| 63 | |||
| 64 | std::vector<std::string> urls; | ||
| 65 | @@ -83,7 +83,7 @@ | ||
| 66 | if ( *(argv[0]) ) // empty | ||
| 67 | march = Arch( argv[0] ); | ||
| 68 | else | ||
| 69 | - march = Arch_x86_64; | ||
| 70 | + march = Arch_machine; | ||
| 71 | } | ||
| 72 | else | ||
| 73 | { | ||
| 74 | @@ -131,4 +131,4 @@ | ||
| 75 | |||
| 76 | INT << "===[END]============================================" << endl << endl; | ||
| 77 | return ret; | ||
| 78 | -} | ||
| 79 | \ No newline at end of file | ||
| 80 | +} | ||
| 81 | diff -ur git.orig/tools/zypp-list.cc git/tools/zypp-list.cc | ||
| 82 | --- git.orig/tools/zypp-list.cc 2011-03-28 14:24:36.547876951 -0500 | ||
| 83 | +++ git/tools/zypp-list.cc 2011-03-28 14:25:04.971901224 -0500 | ||
| 84 | @@ -56,7 +56,7 @@ | ||
| 85 | else if ( TestSetup::isTestSetup( sysRoot ) ) | ||
| 86 | { | ||
| 87 | message << str::form( "*** Load TestSetup from '%s'", sysRoot.c_str() ) << endl; | ||
| 88 | - TestSetup test( sysRoot, Arch_x86_64 ); | ||
| 89 | + TestSetup test( sysRoot, Arch_machine ); | ||
| 90 | test.loadRepos(); | ||
| 91 | dumpRange( message, satpool.reposBegin(), satpool.reposEnd() ) << endl; | ||
| 92 | } | ||
| 93 | diff -ur git.orig/zypp/Arch.cc git/zypp/Arch.cc | ||
| 94 | --- git.orig/zypp/Arch.cc 2011-03-28 14:24:36.548877414 -0500 | ||
| 95 | +++ git/zypp/Arch.cc 2011-03-28 14:31:13.943786442 -0500 | ||
| 96 | @@ -153,53 +153,11 @@ | ||
| 97 | // bit for each architecture. | ||
| 98 | // | ||
| 99 | #define DEF_BUILTIN(A) const IdString _##A( #A ); | ||
| 100 | + DEF_BUILTIN( all ); | ||
| 101 | + DEF_BUILTIN( any ); | ||
| 102 | DEF_BUILTIN( noarch ); | ||
| 103 | |||
| 104 | - DEF_BUILTIN( i386 ); | ||
| 105 | - DEF_BUILTIN( i486 ); | ||
| 106 | - DEF_BUILTIN( i586 ); | ||
| 107 | - DEF_BUILTIN( i686 ); | ||
| 108 | - DEF_BUILTIN( athlon ); | ||
| 109 | - DEF_BUILTIN( x86_64 ); | ||
| 110 | - | ||
| 111 | - DEF_BUILTIN( pentium3 ); | ||
| 112 | - DEF_BUILTIN( pentium4 ); | ||
| 113 | - | ||
| 114 | - DEF_BUILTIN( s390 ); | ||
| 115 | - DEF_BUILTIN( s390x ); | ||
| 116 | - | ||
| 117 | - DEF_BUILTIN( ppc ); | ||
| 118 | - DEF_BUILTIN( ppc64 ); | ||
| 119 | - | ||
| 120 | - DEF_BUILTIN( ia64 ); | ||
| 121 | - | ||
| 122 | - DEF_BUILTIN( alphaev67 ); | ||
| 123 | - DEF_BUILTIN( alphaev6 ); | ||
| 124 | - DEF_BUILTIN( alphapca56 ); | ||
| 125 | - DEF_BUILTIN( alphaev56 ); | ||
| 126 | - DEF_BUILTIN( alphaev5 ); | ||
| 127 | - DEF_BUILTIN( alpha ); | ||
| 128 | - | ||
| 129 | - DEF_BUILTIN( sparc64v ); | ||
| 130 | - DEF_BUILTIN( sparcv9v ); | ||
| 131 | - DEF_BUILTIN( sparc64 ); | ||
| 132 | - DEF_BUILTIN( sparcv9 ); | ||
| 133 | - DEF_BUILTIN( sparcv8 ); | ||
| 134 | - DEF_BUILTIN( sparc ); | ||
| 135 | - | ||
| 136 | - DEF_BUILTIN( armv7l ); | ||
| 137 | - DEF_BUILTIN( armv6l ); | ||
| 138 | - DEF_BUILTIN( armv5tejl ); | ||
| 139 | - DEF_BUILTIN( armv5tel ); | ||
| 140 | - DEF_BUILTIN( armv5l ); | ||
| 141 | - DEF_BUILTIN( armv4tl ); | ||
| 142 | - DEF_BUILTIN( armv4l ); | ||
| 143 | - DEF_BUILTIN( armv3l ); | ||
| 144 | - | ||
| 145 | - DEF_BUILTIN( sh3 ); | ||
| 146 | - | ||
| 147 | - DEF_BUILTIN( sh4 ); | ||
| 148 | - DEF_BUILTIN( sh4a ); | ||
| 149 | +#include "poky-arch.h" | ||
| 150 | #undef DEF_BUILTIN | ||
| 151 | |||
| 152 | /////////////////////////////////////////////////////////////////// | ||
| 153 | @@ -269,6 +227,8 @@ | ||
| 154 | // _noarch must have _idBit 0. | ||
| 155 | // Other builtins have 1-bit set | ||
| 156 | // and are initialized done on the fly. | ||
| 157 | + _compatSet.insert( Arch::CompatEntry( _all, 0 ) ); | ||
| 158 | + _compatSet.insert( Arch::CompatEntry( _any, 0 ) ); | ||
| 159 | _compatSet.insert( Arch::CompatEntry( _noarch, 0 ) ); | ||
| 160 | /////////////////////////////////////////////////////////////////// | ||
| 161 | // Define the CompatibleWith relation: | ||
| 162 | @@ -276,52 +236,9 @@ | ||
| 163 | // NOTE: Order of definition is significant! (Arch::compare) | ||
| 164 | // - define compatible (less) architectures first! | ||
| 165 | // | ||
| 166 | - defCompatibleWith( _i386, _noarch ); | ||
| 167 | - defCompatibleWith( _i486, _noarch,_i386 ); | ||
| 168 | - defCompatibleWith( _i586, _noarch,_i386,_i486 ); | ||
| 169 | - defCompatibleWith( _i686, _noarch,_i386,_i486,_i586 ); | ||
| 170 | - defCompatibleWith( _athlon, _noarch,_i386,_i486,_i586,_i686 ); | ||
| 171 | - defCompatibleWith( _x86_64, _noarch,_i386,_i486,_i586,_i686,_athlon ); | ||
| 172 | - | ||
| 173 | - defCompatibleWith( _pentium3, _noarch,_i386,_i486,_i586,_i686 ); | ||
| 174 | - defCompatibleWith( _pentium4, _noarch,_i386,_i486,_i586,_i686,_pentium3 ); | ||
| 175 | - | ||
| 176 | - defCompatibleWith( _ia64, _noarch,_i386,_i486,_i586,_i686 ); | ||
| 177 | - // | ||
| 178 | - defCompatibleWith( _s390, _noarch ); | ||
| 179 | - defCompatibleWith( _s390x, _noarch,_s390 ); | ||
| 180 | - // | ||
| 181 | - defCompatibleWith( _ppc, _noarch ); | ||
| 182 | - defCompatibleWith( _ppc64, _noarch,_ppc ); | ||
| 183 | - // | ||
| 184 | - defCompatibleWith( _alpha, _noarch ); | ||
| 185 | - defCompatibleWith( _alphaev5, _noarch,_alpha ); | ||
| 186 | - defCompatibleWith( _alphaev56, _noarch,_alpha,_alphaev5 ); | ||
| 187 | - defCompatibleWith( _alphapca56, _noarch,_alpha,_alphaev5,_alphaev56 ); | ||
| 188 | - defCompatibleWith( _alphaev6, _noarch,_alpha,_alphaev5,_alphaev56,_alphapca56 ); | ||
| 189 | - defCompatibleWith( _alphaev67, _noarch,_alpha,_alphaev5,_alphaev56,_alphapca56,_alphaev6 ); | ||
| 190 | - // | ||
| 191 | - defCompatibleWith( _sparc, _noarch ); | ||
| 192 | - defCompatibleWith( _sparcv8, _noarch,_sparc ); | ||
| 193 | - defCompatibleWith( _sparcv9, _noarch,_sparc,_sparcv8 ); | ||
| 194 | - defCompatibleWith( _sparcv9v, _noarch,_sparc,_sparcv8,_sparcv9 ); | ||
| 195 | - // | ||
| 196 | - defCompatibleWith( _sparc64, _noarch,_sparc,_sparcv8,_sparcv9 ); | ||
| 197 | - defCompatibleWith( _sparc64v, _noarch,_sparc,_sparcv8,_sparcv9,_sparcv9v,_sparc64 ); | ||
| 198 | - // | ||
| 199 | - defCompatibleWith( _armv3l, _noarch ); | ||
| 200 | - defCompatibleWith( _armv4l, _noarch,_armv3l ); | ||
| 201 | - defCompatibleWith( _armv4tl, _noarch,_armv3l,_armv4l ); | ||
| 202 | - defCompatibleWith( _armv5l, _noarch,_armv3l,_armv4l,_armv4tl ); | ||
| 203 | - defCompatibleWith( _armv5tel, _noarch,_armv3l,_armv4l,_armv4tl,_armv5l ); | ||
| 204 | - defCompatibleWith( _armv5tejl, _noarch,_armv3l,_armv4l,_armv4tl,_armv5l,_armv5tel ); | ||
| 205 | - defCompatibleWith( _armv6l, _noarch,_armv3l,_armv4l,_armv4tl,_armv5l,_armv5tel,_armv5tejl ); | ||
| 206 | - defCompatibleWith( _armv7l, _noarch,_armv3l,_armv4l,_armv4tl,_armv5l,_armv5tel,_armv5tejl,_armv6l ); | ||
| 207 | - // | ||
| 208 | - defCompatibleWith( _sh3, _noarch ); | ||
| 209 | - // | ||
| 210 | - defCompatibleWith( _sh4, _noarch ); | ||
| 211 | - defCompatibleWith( _sh4a, _noarch,_sh4 ); | ||
| 212 | +#define POKY_DEF_COMPAT 1 | ||
| 213 | +#include "poky-arch.h" | ||
| 214 | +#undef POKY_DEF_COMPAT | ||
| 215 | // | ||
| 216 | /////////////////////////////////////////////////////////////////// | ||
| 217 | // dumpOn( USR ) << endl; | ||
| 218 | @@ -388,53 +305,13 @@ | ||
| 219 | /////////////////////////////////////////////////////////////////// | ||
| 220 | |||
| 221 | const Arch Arch_empty ( IdString::Empty ); | ||
| 222 | + const Arch Arch_all( _all ); | ||
| 223 | + const Arch Arch_any( _any ); | ||
| 224 | const Arch Arch_noarch( _noarch ); | ||
| 225 | |||
| 226 | - const Arch Arch_i386( _i386 ); | ||
| 227 | - const Arch Arch_i486( _i486 ); | ||
| 228 | - const Arch Arch_i586( _i586 ); | ||
| 229 | - const Arch Arch_i686( _i686 ); | ||
| 230 | - const Arch Arch_athlon( _athlon ); | ||
| 231 | - const Arch Arch_x86_64( _x86_64 ); | ||
| 232 | - | ||
| 233 | - const Arch Arch_pentium3( _pentium3 ); | ||
| 234 | - const Arch Arch_pentium4( _pentium4 ); | ||
| 235 | - | ||
| 236 | - const Arch Arch_s390( _s390 ); | ||
| 237 | - const Arch Arch_s390x( _s390x ); | ||
| 238 | - | ||
| 239 | - const Arch Arch_ppc( _ppc ); | ||
| 240 | - const Arch Arch_ppc64( _ppc64 ); | ||
| 241 | - | ||
| 242 | - const Arch Arch_ia64( _ia64 ); | ||
| 243 | - | ||
| 244 | - const Arch Arch_alphaev67( _alphaev67 ); | ||
| 245 | - const Arch Arch_alphaev6( _alphaev6 ); | ||
| 246 | - const Arch Arch_alphapca56( _alphapca56 ); | ||
| 247 | - const Arch Arch_alphaev56( _alphaev56 ); | ||
| 248 | - const Arch Arch_alphaev5( _alphaev5 ); | ||
| 249 | - const Arch Arch_alpha( _alpha ); | ||
| 250 | - | ||
| 251 | - const Arch Arch_sparc64v( _sparc64v ); | ||
| 252 | - const Arch Arch_sparc64( _sparc64 ); | ||
| 253 | - const Arch Arch_sparcv9v( _sparcv9v ); | ||
| 254 | - const Arch Arch_sparcv9( _sparcv9 ); | ||
| 255 | - const Arch Arch_sparcv8( _sparcv8 ); | ||
| 256 | - const Arch Arch_sparc( _sparc ); | ||
| 257 | - | ||
| 258 | - const Arch Arch_armv7l( _armv7l ); | ||
| 259 | - const Arch Arch_armv6l( _armv6l ); | ||
| 260 | - const Arch Arch_armv5tejl( _armv5tejl ); | ||
| 261 | - const Arch Arch_armv5tel( _armv5tel ); | ||
| 262 | - const Arch Arch_armv5l( _armv5l ); | ||
| 263 | - const Arch Arch_armv4tl( _armv4tl ); | ||
| 264 | - const Arch Arch_armv4l( _armv4l ); | ||
| 265 | - const Arch Arch_armv3l( _armv3l ); | ||
| 266 | - | ||
| 267 | - const Arch Arch_sh3( _sh3 ); | ||
| 268 | - | ||
| 269 | - const Arch Arch_sh4( _sh4 ); | ||
| 270 | - const Arch Arch_sh4a( _sh4a ); | ||
| 271 | +#define POKY_PROTO 1 | ||
| 272 | +#include "poky-arch.h" | ||
| 273 | +#undef POKY_PROTO | ||
| 274 | |||
| 275 | /////////////////////////////////////////////////////////////////// | ||
| 276 | // | ||
| 277 | @@ -504,26 +381,10 @@ | ||
| 278 | // | ||
| 279 | Arch Arch::baseArch( ) const | ||
| 280 | { | ||
| 281 | - // check the multilib archs: | ||
| 282 | - if (Arch_x86_64.compatibleWith(*this)) | ||
| 283 | - { | ||
| 284 | - return Arch_x86_64; | ||
| 285 | - } | ||
| 286 | - if (Arch_sparc64v.compatibleWith(*this)) | ||
| 287 | - { | ||
| 288 | - return Arch_sparc64v; | ||
| 289 | - } | ||
| 290 | - if (Arch_sparc64.compatibleWith(*this)) | ||
| 291 | - { | ||
| 292 | - return Arch_sparc64; | ||
| 293 | - } | ||
| 294 | - if (Arch_ppc64.compatibleWith(*this)) | ||
| 295 | - { | ||
| 296 | - return Arch_ppc64; | ||
| 297 | - } | ||
| 298 | - if (Arch_s390x.compatibleWith(*this)) | ||
| 299 | + // Check the multilib arch: | ||
| 300 | + if (Arch_machine.compatibleWith(*this)) | ||
| 301 | { | ||
| 302 | - return Arch_s390x; | ||
| 303 | + return Arch_machine; | ||
| 304 | } | ||
| 305 | // Here: no multilib; return arch before noarch | ||
| 306 | CompatSet cset( compatSet( *this ) ); | ||
| 307 | diff -ur git.orig/zypp/Arch.h git/zypp/Arch.h | ||
| 308 | --- git.orig/zypp/Arch.h 2011-03-28 14:24:36.548877414 -0500 | ||
| 309 | +++ git/zypp/Arch.h 2011-03-28 14:25:04.972801208 -0500 | ||
| 310 | @@ -162,89 +162,13 @@ | ||
| 311 | extern const Arch Arch_empty; | ||
| 312 | |||
| 313 | /** \relates Arch */ | ||
| 314 | + extern const Arch Arch_all; | ||
| 315 | + extern const Arch Arch_any; | ||
| 316 | extern const Arch Arch_noarch; | ||
| 317 | |||
| 318 | - /** \relates Arch */ | ||
| 319 | - extern const Arch Arch_pentium4; | ||
| 320 | - /** \relates Arch */ | ||
| 321 | - extern const Arch Arch_pentium3; | ||
| 322 | - | ||
| 323 | - /** \relates Arch */ | ||
| 324 | - extern const Arch Arch_x86_64; | ||
| 325 | - /** \relates Arch */ | ||
| 326 | - extern const Arch Arch_athlon; | ||
| 327 | - /** \relates Arch */ | ||
| 328 | - extern const Arch Arch_i686; | ||
| 329 | - /** \relates Arch */ | ||
| 330 | - extern const Arch Arch_i586; | ||
| 331 | - /** \relates Arch */ | ||
| 332 | - extern const Arch Arch_i486; | ||
| 333 | - /** \relates Arch */ | ||
| 334 | - extern const Arch Arch_i386; | ||
| 335 | - | ||
| 336 | - /** \relates Arch */ | ||
| 337 | - extern const Arch Arch_s390x; | ||
| 338 | - /** \relates Arch */ | ||
| 339 | - extern const Arch Arch_s390; | ||
| 340 | - | ||
| 341 | - /** \relates Arch */ | ||
| 342 | - extern const Arch Arch_ppc64; | ||
| 343 | - /** \relates Arch */ | ||
| 344 | - extern const Arch Arch_ppc; | ||
| 345 | - | ||
| 346 | - /** \relates Arch */ | ||
| 347 | - extern const Arch Arch_ia64; | ||
| 348 | - | ||
| 349 | - /** \relates Arch */ | ||
| 350 | - extern const Arch Arch_alphaev67; | ||
| 351 | - /** \relates Arch */ | ||
| 352 | - extern const Arch Arch_alphaev6; | ||
| 353 | - /** \relates Arch */ | ||
| 354 | - extern const Arch Arch_alphapca56; | ||
| 355 | - /** \relates Arch */ | ||
| 356 | - extern const Arch Arch_alphaev56; | ||
| 357 | - /** \relates Arch */ | ||
| 358 | - extern const Arch Arch_alphaev5; | ||
| 359 | - /** \relates Arch */ | ||
| 360 | - extern const Arch Arch_alpha; | ||
| 361 | - | ||
| 362 | - /** \relates Arch */ | ||
| 363 | - extern const Arch Arch_sparc64v; | ||
| 364 | - /** \relates Arch */ | ||
| 365 | - extern const Arch Arch_sparc64; | ||
| 366 | - /** \relates Arch */ | ||
| 367 | - extern const Arch Arch_sparcv9v; | ||
| 368 | - /** \relates Arch */ | ||
| 369 | - extern const Arch Arch_sparcv9; | ||
| 370 | - /** \relates Arch */ | ||
| 371 | - extern const Arch Arch_sparcv8; | ||
| 372 | - /** \relates Arch */ | ||
| 373 | - extern const Arch Arch_sparc; | ||
| 374 | - | ||
| 375 | - /** \relates Arch */ | ||
| 376 | - extern const Arch Arch_armv7l; | ||
| 377 | - /** \relates Arch */ | ||
| 378 | - extern const Arch Arch_armv6l; | ||
| 379 | - /** \relates Arch */ | ||
| 380 | - extern const Arch Arch_armv5tejl; | ||
| 381 | - /** \relates Arch */ | ||
| 382 | - extern const Arch Arch_armv5tel; | ||
| 383 | - /** \relates Arch */ | ||
| 384 | - extern const Arch Arch_armv5l; | ||
| 385 | - /** \relates Arch */ | ||
| 386 | - extern const Arch Arch_armv4tl; | ||
| 387 | - /** \relates Arch */ | ||
| 388 | - extern const Arch Arch_armv4l; | ||
| 389 | - /** \relates Arch */ | ||
| 390 | - extern const Arch Arch_armv3l; | ||
| 391 | - | ||
| 392 | - /** \relates Arch */ | ||
| 393 | - extern const Arch Arch_sh3; | ||
| 394 | - | ||
| 395 | - /** \relates Arch */ | ||
| 396 | - extern const Arch Arch_sh4; | ||
| 397 | - /** \relates Arch */ | ||
| 398 | - extern const Arch Arch_sh4a; | ||
| 399 | +#define POKY_EXTERN_PROTO 1 | ||
| 400 | +#include "poky-arch.h" | ||
| 401 | +#undef POKY_EXTERN_PROTO | ||
| 402 | //@} | ||
| 403 | |||
| 404 | /////////////////////////////////////////////////////////////////// | ||
| 405 | diff -ur git.orig/zypp/CMakeLists.txt git/zypp/CMakeLists.txt | ||
| 406 | --- git.orig/zypp/CMakeLists.txt | ||
| 407 | +++ git/zypp/CMakeLists.txt | ||
| 408 | @@ -90,6 +90,7 @@ SET( zypp_EARLY_SRCS | ||
| 409 | |||
| 410 | SET( zypp_HEADERS | ||
| 411 | Arch.h | ||
| 412 | + poky-arch.h | ||
| 413 | AutoDispose.h | ||
| 414 | Bit.h | ||
| 415 | ByteCount.h | ||
| 416 | diff -ur git.orig/zypp/ZConfig.cc git/zypp/ZConfig.cc | ||
| 417 | --- git.orig/zypp/ZConfig.cc 2011-03-28 14:24:37.178989632 -0500 | ||
| 418 | +++ git/zypp/ZConfig.cc 2011-03-28 14:25:04.973971936 -0500 | ||
| 419 | @@ -48,77 +48,9 @@ | ||
| 420 | */ | ||
| 421 | Arch _autodetectSystemArchitecture() | ||
| 422 | { | ||
| 423 | - struct ::utsname buf; | ||
| 424 | - if ( ::uname( &buf ) < 0 ) | ||
| 425 | - { | ||
| 426 | - ERR << "Can't determine system architecture" << endl; | ||
| 427 | - return Arch_noarch; | ||
| 428 | - } | ||
| 429 | - | ||
| 430 | - Arch architecture( buf.machine ); | ||
| 431 | - MIL << "Uname architecture is '" << buf.machine << "'" << endl; | ||
| 432 | + /* Define the default architecture, ignore uname! */ | ||
| 433 | + Arch architecture( Arch_machine ); | ||
| 434 | |||
| 435 | - if ( architecture == Arch_i686 ) | ||
| 436 | - { | ||
| 437 | - // some CPUs report i686 but dont implement cx8 and cmov | ||
| 438 | - // check for both flags in /proc/cpuinfo and downgrade | ||
| 439 | - // to i586 if either is missing (cf bug #18885) | ||
| 440 | - std::ifstream cpuinfo( "/proc/cpuinfo" ); | ||
| 441 | - if ( cpuinfo ) | ||
| 442 | - { | ||
| 443 | - for( iostr::EachLine in( cpuinfo ); in; in.next() ) | ||
| 444 | - { | ||
| 445 | - if ( str::hasPrefix( *in, "flags" ) ) | ||
| 446 | - { | ||
| 447 | - if ( in->find( "cx8" ) == std::string::npos | ||
| 448 | - || in->find( "cmov" ) == std::string::npos ) | ||
| 449 | - { | ||
| 450 | - architecture = Arch_i586; | ||
| 451 | - WAR << "CPU lacks 'cx8' or 'cmov': architecture downgraded to '" << architecture << "'" << endl; | ||
| 452 | - } | ||
| 453 | - break; | ||
| 454 | - } | ||
| 455 | - } | ||
| 456 | - } | ||
| 457 | - else | ||
| 458 | - { | ||
| 459 | - ERR << "Cant open " << PathInfo("/proc/cpuinfo") << endl; | ||
| 460 | - } | ||
| 461 | - } | ||
| 462 | - else if ( architecture == Arch_sparc || architecture == Arch_sparc64 ) | ||
| 463 | - { | ||
| 464 | - // Check for sun4[vum] to get the real arch. (bug #566291) | ||
| 465 | - std::ifstream cpuinfo( "/proc/cpuinfo" ); | ||
| 466 | - if ( cpuinfo ) | ||
| 467 | - { | ||
| 468 | - for( iostr::EachLine in( cpuinfo ); in; in.next() ) | ||
| 469 | - { | ||
| 470 | - if ( str::hasPrefix( *in, "type" ) ) | ||
| 471 | - { | ||
| 472 | - if ( in->find( "sun4v" ) != std::string::npos ) | ||
| 473 | - { | ||
| 474 | - architecture = ( architecture == Arch_sparc64 ? Arch_sparc64v : Arch_sparcv9v ); | ||
| 475 | - WAR << "CPU has 'sun4v': architecture upgraded to '" << architecture << "'" << endl; | ||
| 476 | - } | ||
| 477 | - else if ( in->find( "sun4u" ) != std::string::npos ) | ||
| 478 | - { | ||
| 479 | - architecture = ( architecture == Arch_sparc64 ? Arch_sparc64 : Arch_sparcv9 ); | ||
| 480 | - WAR << "CPU has 'sun4u': architecture upgraded to '" << architecture << "'" << endl; | ||
| 481 | - } | ||
| 482 | - else if ( in->find( "sun4m" ) != std::string::npos ) | ||
| 483 | - { | ||
| 484 | - architecture = Arch_sparcv8; | ||
| 485 | - WAR << "CPU has 'sun4m': architecture upgraded to '" << architecture << "'" << endl; | ||
| 486 | - } | ||
| 487 | - break; | ||
| 488 | - } | ||
| 489 | - } | ||
| 490 | - } | ||
| 491 | - else | ||
| 492 | - { | ||
| 493 | - ERR << "Cant open " << PathInfo("/proc/cpuinfo") << endl; | ||
| 494 | - } | ||
| 495 | - } | ||
| 496 | return architecture; | ||
| 497 | } | ||
| 498 | |||
diff --git a/meta/recipes-extended/libzypp/libzypp/no-builtin-arch.patch b/meta/recipes-extended/libzypp/libzypp/no-builtin-arch.patch deleted file mode 100644 index 22dd89c45f..0000000000 --- a/meta/recipes-extended/libzypp/libzypp/no-builtin-arch.patch +++ /dev/null | |||
| @@ -1,128 +0,0 @@ | |||
| 1 | This patch adds the ${MACHINE_ARCH} and ${PACKAGE_ARCH} to | ||
| 2 | libzypp available archs, see do_archpatch in .bb for more | ||
| 3 | details, this is the version for ${BASE_PACKAGE_ARCH} not | ||
| 4 | recognized in libzypp. | ||
| 5 | |||
| 6 | Also "all" is added as a synonym for noarch. | ||
| 7 | |||
| 8 | Signed-off-by: Qing He <qing.he@intel.com> | ||
| 9 | |||
| 10 | diff --git a/zypp/Arch.cc b/zypp/Arch.cc | ||
| 11 | index 7b357bb..d4cbca6 100644 | ||
| 12 | --- a/zypp/Arch.cc | ||
| 13 | +++ b/zypp/Arch.cc | ||
| 14 | @@ -122,7 +122,13 @@ namespace zypp | ||
| 15 | |||
| 16 | /** \relates Arch::CompatEntry */ | ||
| 17 | inline bool operator==( const Arch::CompatEntry & lhs, const Arch::CompatEntry & rhs ) | ||
| 18 | - { return lhs._idStr == rhs._idStr; } | ||
| 19 | + { | ||
| 20 | + if ( (lhs._idStr == "all" && rhs._idStr == "noarch") || | ||
| 21 | + (lhs._idStr == "noarch" && rhs._idStr == "all") ) | ||
| 22 | + return true; | ||
| 23 | + else | ||
| 24 | + return lhs._idStr == rhs._idStr; | ||
| 25 | + } | ||
| 26 | /** \relates Arch::CompatEntry */ | ||
| 27 | inline bool operator!=( const Arch::CompatEntry & lhs, const Arch::CompatEntry & rhs ) | ||
| 28 | { return ! ( lhs == rhs ); } | ||
| 29 | @@ -153,7 +159,7 @@ namespace zypp | ||
| 30 | // bit for each architecture. | ||
| 31 | // | ||
| 32 | #define DEF_BUILTIN(A) const IdString _##A( #A ); | ||
| 33 | - DEF_BUILTIN( noarch ); | ||
| 34 | + const IdString _noarch( "all" ); | ||
| 35 | |||
| 36 | DEF_BUILTIN( i386 ); | ||
| 37 | DEF_BUILTIN( i486 ); | ||
| 38 | @@ -202,6 +208,9 @@ namespace zypp | ||
| 39 | |||
| 40 | DEF_BUILTIN( sh4 ); | ||
| 41 | DEF_BUILTIN( sh4a ); | ||
| 42 | + | ||
| 43 | + const IdString _package( "@PKG_ARCH@" ); | ||
| 44 | + const IdString _machine( "@MACHINE_ARCH@" ); | ||
| 45 | #undef DEF_BUILTIN | ||
| 46 | |||
| 47 | /////////////////////////////////////////////////////////////////// | ||
| 48 | @@ -326,12 +335,15 @@ namespace zypp | ||
| 49 | // | ||
| 50 | defCompatibleWith( _sh4, _noarch ); | ||
| 51 | defCompatibleWith( _sh4a, _noarch,_sh4 ); | ||
| 52 | + | ||
| 53 | + defCompatibleWith( _package, _noarch ); | ||
| 54 | + defCompatibleWith( _machine, _noarch,_package ); | ||
| 55 | // | ||
| 56 | /////////////////////////////////////////////////////////////////// | ||
| 57 | // dumpOn( USR ) << endl; | ||
| 58 | } | ||
| 59 | |||
| 60 | - private: | ||
| 61 | + public: | ||
| 62 | /** Return the next avialable _idBit. | ||
| 63 | * Ctor injects _noarch into the _compatSet, 1 is for | ||
| 64 | * nonbuiltin archs, so we can use <tt>size</tt> for | ||
| 65 | @@ -440,6 +452,9 @@ namespace zypp | ||
| 66 | const Arch Arch_sh4( _sh4 ); | ||
| 67 | const Arch Arch_sh4a( _sh4a ); | ||
| 68 | |||
| 69 | + const Arch Arch_package( _package ); | ||
| 70 | + const Arch Arch_machine( _machine ); | ||
| 71 | + | ||
| 72 | /////////////////////////////////////////////////////////////////// | ||
| 73 | // | ||
| 74 | // METHOD NAME : Arch::Arch | ||
| 75 | diff --git a/zypp/Arch.h b/zypp/Arch.h | ||
| 76 | index 6b18a6e..f91a562 100644 | ||
| 77 | --- a/zypp/Arch.h | ||
| 78 | +++ b/zypp/Arch.h | ||
| 79 | @@ -249,6 +249,9 @@ namespace zypp | ||
| 80 | extern const Arch Arch_sh4; | ||
| 81 | /** \relates Arch */ | ||
| 82 | extern const Arch Arch_sh4a; | ||
| 83 | + | ||
| 84 | + extern const Arch Arch_package; | ||
| 85 | + extern const Arch Arch_machine; | ||
| 86 | //@} | ||
| 87 | |||
| 88 | /////////////////////////////////////////////////////////////////// | ||
| 89 | diff --git a/zypp/parser/yum/schema/common-inc.rnc b/zypp/parser/yum/schema/common-inc.rnc | ||
| 90 | index f12ac3b..04677c3 100644 | ||
| 91 | --- a/zypp/parser/yum/schema/common-inc.rnc | ||
| 92 | +++ b/zypp/parser/yum/schema/common-inc.rnc | ||
| 93 | @@ -26,6 +26,7 @@ private.evr = | ||
| 94 | private.localizedtext = attribute lang { "en" | "de" }, text | ||
| 95 | |||
| 96 | private.archenum = "noarch" | ||
| 97 | + | "all" | ||
| 98 | | "armv4l" | ||
| 99 | | "armv5el" | ||
| 100 | | "armv5tel" | ||
| 101 | @@ -46,4 +47,6 @@ private.archenum = "noarch" | ||
| 102 | | "sh4" | ||
| 103 | | "x86_64" | ||
| 104 | | "src" | ||
| 105 | + | "@PKG_ARCH@" | ||
| 106 | + | "@MACHINE_ARCH@" | ||
| 107 | |||
| 108 | diff --git a/zypp/parser/yum/schema/common-inc.rng b/zypp/parser/yum/schema/common-inc.rng | ||
| 109 | index 60e5742..27694aa 100644 | ||
| 110 | --- a/zypp/parser/yum/schema/common-inc.rng | ||
| 111 | +++ b/zypp/parser/yum/schema/common-inc.rng | ||
| 112 | @@ -89,6 +89,7 @@ | ||
| 113 | <define name="private.archenum"> | ||
| 114 | <choice> | ||
| 115 | <value>noarch</value> | ||
| 116 | + <value>all</value> | ||
| 117 | <value>armv4l</value> | ||
| 118 | <value>armv5el</value> | ||
| 119 | <value>armv5tel</value> | ||
| 120 | @@ -109,6 +110,8 @@ | ||
| 121 | <value>sh4</value> | ||
| 122 | <value>x86_64</value> | ||
| 123 | <value>src</value> | ||
| 124 | + <value>@PKG_ARCH@</value> | ||
| 125 | + <value>@MACHINE_ARCH@</value> | ||
| 126 | </choice> | ||
| 127 | </define> | ||
| 128 | </grammar> | ||
diff --git a/meta/recipes-extended/libzypp/libzypp_git.bb b/meta/recipes-extended/libzypp/libzypp_git.bb index 621ce45da4..809c1877f5 100644 --- a/meta/recipes-extended/libzypp/libzypp_git.bb +++ b/meta/recipes-extended/libzypp/libzypp_git.bb | |||
| @@ -13,16 +13,14 @@ RDEPENDS_${PN} = "sat-solver" | |||
| 13 | 13 | ||
| 14 | S = "${WORKDIR}/git" | 14 | S = "${WORKDIR}/git" |
| 15 | PV = "0.0-git${SRCPV}" | 15 | PV = "0.0-git${SRCPV}" |
| 16 | PR = "r8" | 16 | PR = "r9" |
| 17 | 17 | ||
| 18 | SRC_URI = "git://gitorious.org/opensuse/libzypp.git;protocol=git \ | 18 | SRC_URI = "git://gitorious.org/opensuse/libzypp.git;protocol=git \ |
| 19 | file://no-doc.patch \ | 19 | file://no-doc.patch \ |
| 20 | file://rpm5.patch \ | 20 | file://rpm5.patch \ |
| 21 | file://rpm5-no-rpmdbinit.patch \ | 21 | file://rpm5-no-rpmdbinit.patch \ |
| 22 | file://builtin-arch.patch;apply=no \ | ||
| 23 | file://no-builtin-arch.patch;apply=no \ | ||
| 24 | file://archconf.patch;apply=no \ | ||
| 25 | file://config-release.patch \ | 22 | file://config-release.patch \ |
| 23 | file://libzypp-pokyarch.patch \ | ||
| 26 | " | 24 | " |
| 27 | 25 | ||
| 28 | SRC_URI_append_mips = " file://mips-workaround-gcc-tribool-error.patch" | 26 | SRC_URI_append_mips = " file://mips-workaround-gcc-tribool-error.patch" |
| @@ -34,23 +32,80 @@ EXTRA_OECMAKE += "-DLIB=lib" | |||
| 34 | 32 | ||
| 35 | PACKAGE_ARCH = "${MACHINE_ARCH}" | 33 | PACKAGE_ARCH = "${MACHINE_ARCH}" |
| 36 | 34 | ||
| 37 | do_archpatch () { | 35 | do_archgen () { |
| 38 | PKG_ARCH_TAIL=`sed -n ${S}/zypp/Arch.cc -e "s|^.*defCompatibleWith( _${BASE_PACKAGE_ARCH},[ \t]*\(.*\) .*$|\1|p"` | 36 | # We need to dynamically generate our arch file based on the machine |
| 39 | if [ "x${PKG_ARCH_TAIL}" == x ]; then | 37 | # configuration |
| 40 | PATCHFILE=${WORKDIR}/no-builtin-arch.patch | 38 | echo "/* Automatically generated by the libzypp recipes */" > zypp/poky-arch.h |
| 41 | else | 39 | echo "" >> zypp/poky-arch.h |
| 42 | PATCHFILE=${WORKDIR}/builtin-arch.patch | 40 | echo "#ifndef POKY_ARCH_H" >> zypp/poky-arch.h |
| 43 | fi | 41 | echo "#define POKY_ARCH_H 1" >> zypp/poky-arch.h |
| 42 | echo "#define Arch_machine Arch_${MACHINE_ARCH}" >> zypp/poky-arch.h | ||
| 43 | echo "#endif /* POKY_ARCH_H */" >> zypp/poky-arch.h | ||
| 44 | echo "" >> zypp/poky-arch.h | ||
| 45 | echo "#ifdef DEF_BUILTIN" >> zypp/poky-arch.h | ||
| 46 | echo "/* Specify builtin types */" >> zypp/poky-arch.h | ||
| 47 | for each_arch in ${PACKAGE_ARCHS} ; do | ||
| 48 | case "$each_arch" in | ||
| 49 | all | any | noarch) | ||
| 50 | continue;; | ||
| 51 | esac | ||
| 52 | echo " DEF_BUILTIN( ${each_arch} );" >> zypp/poky-arch.h | ||
| 53 | done | ||
| 54 | echo "#endif /* DEF_BUILTIN */" >> zypp/poky-arch.h | ||
| 55 | echo "" >> zypp/poky-arch.h | ||
| 56 | echo "#ifdef POKY_EXTERN_PROTO" >> zypp/poky-arch.h | ||
| 57 | echo "/* Specify extern prototypes */" >> zypp/poky-arch.h | ||
| 58 | for each_arch in ${PACKAGE_ARCHS} ; do | ||
| 59 | case "$each_arch" in | ||
| 60 | all | any | noarch) | ||
| 61 | continue;; | ||
| 62 | esac | ||
| 63 | echo " extern const Arch Arch_${each_arch};" >> zypp/poky-arch.h | ||
| 64 | done | ||
| 65 | echo "#endif /* POKY_EXTERN_PROTO */" >> zypp/poky-arch.h | ||
| 66 | echo "" >> zypp/poky-arch.h | ||
| 67 | echo "#ifdef POKY_PROTO" >> zypp/poky-arch.h | ||
| 68 | echo "/* Specify prototypes */" >> zypp/poky-arch.h | ||
| 69 | for each_arch in ${PACKAGE_ARCHS} ; do | ||
| 70 | case "$each_arch" in | ||
| 71 | all | any | noarch) | ||
| 72 | continue;; | ||
| 73 | esac | ||
| 74 | echo " const Arch Arch_${each_arch} (_${each_arch});" >> zypp/poky-arch.h | ||
| 75 | done | ||
| 76 | echo "#endif /* POKY_PROTO */" >> zypp/poky-arch.h | ||
| 77 | echo "" >> zypp/poky-arch.h | ||
| 78 | echo "#ifdef POKY_DEF_COMPAT" >> zypp/poky-arch.h | ||
| 79 | echo "/* Specify compatibility information */" >> zypp/poky-arch.h | ||
| 80 | INSTALL_PLATFORM_ARCHS="" | ||
| 81 | for each_arch in ${PACKAGE_ARCHS} ; do | ||
| 82 | INSTALL_PLATFORM_ARCHS="$each_arch $INSTALL_PLATFORM_ARCHS" | ||
| 83 | done | ||
| 44 | 84 | ||
| 45 | sed -i "${PATCHFILE}" \ | 85 | COMPAT_WITH="" |
| 46 | -e "s|@MACHINE_ARCH@|${MACHINE_ARCH}|g" \ | 86 | set -- ${INSTALL_PLATFORM_ARCHS} |
| 47 | -e "s|@PKG_ARCH@|${BASE_PACKAGE_ARCH}|g" \ | 87 | while [ $# -gt 0 ]; do |
| 48 | -e "s|@PKG_ARCH_TAIL@|${PKG_ARCH_TAIL}|g" | 88 | case "$1" in |
| 49 | 89 | all | any | noarch) | |
| 50 | patch -p1 -i "${PATCHFILE}" | 90 | shift ; continue;; |
| 51 | 91 | esac | |
| 52 | sed -i ${WORKDIR}/archconf.patch -e "s|@MACHINE_ARCH@|${MACHINE_ARCH}|g" | 92 | ARCH=_"$1" |
| 53 | patch -p1 -i ${WORKDIR}/archconf.patch | 93 | shift |
| 94 | COMPAT="" | ||
| 95 | for each_arch in "$@"; do | ||
| 96 | if [ -z "$COMPAT" ]; then | ||
| 97 | COMPAT=_"$each_arch" | ||
| 98 | else | ||
| 99 | COMPAT=_"$each_arch,$COMPAT" | ||
| 100 | fi | ||
| 101 | done | ||
| 102 | COMPAT_WITH="${ARCH},${COMPAT} $COMPAT_WITH" | ||
| 103 | done | ||
| 104 | for each_compat in ${COMPAT_WITH} ; do | ||
| 105 | echo " defCompatibleWith( ${each_compat} );" >> zypp/poky-arch.h | ||
| 106 | done | ||
| 107 | echo "#endif /* DEF_COMPAT */" >> zypp/poky-arch.h | ||
| 108 | echo "" >> zypp/poky-arch.h | ||
| 54 | } | 109 | } |
| 55 | 110 | ||
| 56 | addtask archpatch before do_patch after do_unpack | 111 | addtask archgen before do_configure after do_patch |
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 ba5af67f70..9892d14ecc 100644 --- a/meta/recipes-extended/sat-solver/sat-solver_git.bb +++ b/meta/recipes-extended/sat-solver/sat-solver_git.bb | |||
| @@ -7,14 +7,13 @@ 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 = "r6" | 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://cmake.patch \ | 14 | file://cmake.patch \ |
| 15 | file://db5.patch \ | 15 | file://db5.patch \ |
| 16 | file://builtin-arch.patch;apply=no \ | 16 | file://sat-solver_poky.patch \ |
| 17 | file://no-builtin-arch.patch;apply=no \ | ||
| 18 | " | 17 | " |
| 19 | 18 | ||
| 20 | S = "${WORKDIR}/git" | 19 | S = "${WORKDIR}/git" |
| @@ -25,20 +24,31 @@ inherit cmake pkgconfig | |||
| 25 | 24 | ||
| 26 | PACKAGE_ARCH = "${MACHINE_ARCH}" | 25 | PACKAGE_ARCH = "${MACHINE_ARCH}" |
| 27 | 26 | ||
| 28 | do_archpatch () { | 27 | do_archgen () { |
| 29 | PKG_ARCH_TAIL=`sed -n ${S}/src/poolarch.c -e "s|^ \"\(${BASE_PACKAGE_ARCH}\)\",.*\"\(.*\)\",.*$|\2|p"` | 28 | # We need to dynamically generate our arch file based on the machine |
| 30 | if [ "x${PKG_ARCH_TAIL}" == x ]; then | 29 | # configuration |
| 31 | PATCHFILE=${WORKDIR}/no-builtin-arch.patch | ||
| 32 | else | ||
| 33 | PATCHFILE=${WORKDIR}/builtin-arch.patch | ||
| 34 | fi | ||
| 35 | 30 | ||
| 36 | sed -i "${PATCHFILE}" \ | 31 | INSTALL_PLATFORM_ARCHS="" |
| 37 | -e "s|@MACHINE_ARCH@|${MACHINE_ARCH}|g" \ | 32 | for each_arch in ${PACKAGE_ARCHS} ; do |
| 38 | -e "s|@PKG_ARCH@|${BASE_PACKAGE_ARCH}|g" \ | 33 | case "$each_arch" in |
| 39 | -e "s|@PKG_ARCH_TAIL@|${PKG_ARCH_TAIL}|g" | 34 | all | any | noarch) |
| 35 | continue;; | ||
| 36 | esac | ||
| 37 | INSTALL_PLATFORM_ARCHS="$each_arch $INSTALL_PLATFORM_ARCHS" | ||
| 38 | done | ||
| 40 | 39 | ||
| 41 | patch -p1 -i "${PATCHFILE}" | 40 | echo "/* Automatically generated by the sat-solver recipe */" > src/poky-arch.h |
| 41 | echo "const char *archpolicies[] = {" >> src/poky-arch.h | ||
| 42 | |||
| 43 | set -- $INSTALL_PLATFORM_ARCHS | ||
| 44 | |||
| 45 | save_IFS=$IFS | ||
| 46 | IFS=: | ||
| 47 | while [ $# -gt 0 ]; do echo " \"$1\", "\""$*"\", >> src/poky-arch.h ; shift; done | ||
| 48 | IFS=$save_IFS | ||
| 49 | |||
| 50 | echo " 0" >> src/poky-arch.h | ||
| 51 | echo "};" >> src/poky-arch.h | ||
| 42 | } | 52 | } |
| 43 | 53 | ||
| 44 | addtask archpatch before do_patch after do_unpack | 54 | addtask archgen before do_configure after do_patch |
