Merge pull request #368 from quantum/qemu-updates

bump(sys-firmware/seabios): sync with upstream
This commit is contained in:
Michael Marineau 2015-11-24 14:05:15 -08:00
commit 5865c17040
66 changed files with 6623 additions and 2735 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,3 @@
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
AUX 65-kvm.rules 40 SHA256 c16a8dc7855880b2651f1a3ff488ecc54d4ac1036c71fffd5007021d8d18a7c5 SHA512 98aad2a2f212a7ac0ee5b60a9c92744fa462bce5f26594845c7a31d692aaaca2d52cb57bdbede7dfc60b9862c2a6510665dbb03215d5cf76e62516a283decdd6 WHIRLPOOL 937de93a23930f6b8533f0c3e0dd249c99ddf7d54446dea857607266ac0a4b435c5b4a52b2986b138bace9c0a7ade66f94116b38e2bc4767ead54bd11baf0920
AUX bridge.conf 454 SHA256 a51850dd39923f3482e4c575b48ad9fef9c9ebb2f2176225da399b79ce48c69d SHA512 a907ee86b81a1b61033bb7621ded65112504131ef7b698c53e4014b958ee6fc79e66f63069015a01e41362cb70a7d0ed26dd9a03033cf776f4846f0e1f8f1533 WHIRLPOOL 8fcbd4abf9b8f7ca3d16fe0eaf17196ebf708dfecf85ce0f020e0de22b64905114f7b310f361826c81bb961c6b1bbbf984bff1e595bb949993b8966ccb222c35
AUX qemu-1.7.0-cflags.patch 300 SHA256 8f35e55c4bae93e82f9580eabe2d6a2d4660bd05343e1f4e6c33815deeede91e SHA512 54446cb555b623b2306f8a323713e4dfb1b8b7bbf3af3771d5b62e164e0672cc21cbe44f08ca8b58052523e8d629e16355a44ebb544a999a44d11ac3af671f1c WHIRLPOOL b903b4abefeeb09a2ab2d1ee224de5d3694f99f50aacfe33882fce0c1c87c23dae4d57b001d1c35cc96fffa93d43fac4a8ab30a3e45fe1f380580162c0332e78
@ -21,27 +18,32 @@ AUX qemu-2.3.0-CVE-2015-5165-5.patch 1070 SHA256 b728ae69e4a1d838bb1b4c5e6135e84
AUX qemu-2.3.0-CVE-2015-5165-6.patch 1225 SHA256 6fb23646e05ef9a4b010d2a2c0235b6ee58a293f39ed40b6b1611115c948a79a SHA512 a1a38fdbc3f3cebb557ae00c3764bb268019b2c9f15731bb829b3b73a87856c5d51d65cc3ff712b28601298afb2aa82e83789bab867c8fb2816f23d515af8be7 WHIRLPOOL 9a17bd514cf5286c69a7955081d267febc1485d1df78ee918d6c16f8750247b3759cd60ec405dd7859ca76e396c5fcc04deb159540181fcdfadad13c41bf807c
AUX qemu-2.3.0-CVE-2015-5165-7.patch 1129 SHA256 ebcadb69110ea4672795b52472222ed1ffe67a83e37c5b7d401530f43137c587 SHA512 d174df707dabbaf49fadda0db9b551abef0e4c2045287bfb78ded69c7b8e6a59333d7aa1459ac7a81c0f3f711ec225157d8dabcd63d6eed10bb5755cea608fbb WHIRLPOOL 58fc0a2974bd9c1d9d11de7f97fda8796b3af05338969eac4d685572e952cb0b0b752166572d3b81b40db862ad0a55e9bd83bc3c2344cf04ae8a12ba4e752f2a
AUX qemu-2.3.0-CVE-2015-5166.patch 1176 SHA256 dead84667dd4868d0688dc4e62a54a14883e6f0352cf3318b277aa37e27c9261 SHA512 977e6d84d6e016dd0ba99d00f19c28b9976fdb58fd856457e08a2f9204554946a76f1fa6bbaff68f344bdddd791e13942b4b984610fde0a80645bd859fcbb781 WHIRLPOOL f4f9751acbc6d8b29074b98ecd7ae45fb13952f150b64412b1f783df14f49996b1a5eb398c7a954a4024818cddad40e7ffb187c830d7e3b0afb01662d0e8569a
AUX qemu-binfmt.initd-r1 8078 SHA256 2560f1d12374a2dea74e18365ac3d759c2eab35eb9a77b989e1bb8346d9bc3f8 SHA512 82d8ebdb5a4c452f03281c28f074ea52acfb730f1c3ddf68de2ce496c7ca23fd379041948371b021355f00f9c260383fdecf47218ddf2764ab75d6ec8a7a2715 WHIRLPOOL a0f54e133fbda2fd050ef8168fee676a763bb94a890f8c1d99d44e37e4a29322d513d9f5ddad9247f44e3ee0ac779050a3b06cf909678fdfb9f46777701de492
AUX qemu-2.3.0-virtio-serial.patch 1099 SHA256 538cd32785bedd1c2777e776757b105ba43c38da0d4f61972e3a271c593542ef SHA512 8606330bcca4891d7899bd22fce5405326534d19c36324c7e6e7d098d3c4c0f82420d5c5a49c526ab680283a97cbe4e6293c93daace63cefab0a480665080968 WHIRLPOOL 40228d141abc51174a4bc6bd64df8a8f0631e5ab15db9d088e964e4538994dfdfc6898496c66eec45cccc716758535ce1a0320c711690d26bff4cd14313956eb
AUX qemu-2.4-mips-fix-mtc0.patch 2885 SHA256 b668a99135c3e2c86558adad4fee4f9212f3b95c813476de0d17b7118c86e88a SHA512 27b7472d68a889253691daa1b500bab32e0cc30e02b9c961823b5104d675b80a0934e2a130cc584cc22b561c304420b913a63ca24c7d17b57c546b756294fe28 WHIRLPOOL 3594e8dd939995f57109285ccabb0d04a45a394afdf752dd6e3efec30df2cc7b4f495eda812df93930fd7b0e7df6df99af38b9518dddf040cae3704de8f7905a
AUX qemu-2.4-mips-fix-rdhwr.patch 1436 SHA256 82e6ea28080f872999449dbc9ba78105e4224f158148cd11639a7ab70e4156d6 SHA512 9d18bbc469c313140011875a12ac8c4c86f4467c4b563befaf79cd9bd54afa48e36c8510e53f3d59c18949a78c843c7eee67d14ef3fd3ec1cd58ca7b07fc8c1d WHIRLPOOL 7aa88dd673ad879d679a42ad8cc4c5c84d82e410e4ba61b816e72366cddba18576a771bbb0dcd41590214fbf2204a3fc23ca36e8b1eca65443709eeba34797fd
AUX qemu-2.4-mips-move-interrupts-new-func.patch 3300 SHA256 9b5de8422b0342eb054de6decb282d8affb566679b93ef626824619890bc293f SHA512 489ca276f03496f0e73b986e46b87bcb49cfdb9c60039e33db9c879aab78d9a4e0d683b19527ca156b336575980cab543a965c8120a35a892a9c64edbff25c72 WHIRLPOOL 5274ccc56735a2e6125a77fe8cf16fb15019f8192cc19c23675541b819d7d0b8616519660a5235a1d4467e443f22fa1a5431c02c3d2bc8b52c74857ccc7acce2
AUX qemu-2.4-mips-wake-up-on-irq.patch 1198 SHA256 c83b15aa32aa2712dbdabc8f0de0bec6018e06739762f7bfc10ee8a358c981ec SHA512 529aea936c09972f3dc7a5b0aeb743b988e01064434d7cf7ba565f04e4c98760a1f1bcf2b58e7784a41a78db59d6350e2814daa1f3962f16ea3dd600d8c65975 WHIRLPOOL 28fd4555f88ef6c75032715aaa96f0320f742c4a31d03d3395bfbc3b7b192624df1c4c90436f3a5e114017f29d4f3301b283d32a8f9c05ba87c1e78b187176b7
AUX qemu-2.4.0-CVE-2015-5225.patch 3615 SHA256 9fd2f8a6415f437bbd622aaca44127713f80066b6ced3e745556ea96fdedffca SHA512 d6e7c2b350a2c5d2539c97d5d7af5a70b62cb8aa48c760891632660cad0a242599c1aff3040e0acd96cca09e4b2c13e57364bb06a8095de5fbb7ca1886049f4c WHIRLPOOL 9cca560fe7af780164dcc4ac46e686d353272666a2752db07860651e369024ba35a6efaca4583b05dfda35f773df96bd2e6d59bc65ba4d6059e648a2e6bfba02
AUX qemu-2.4.0-CVE-2015-6855.patch 6999 SHA256 0fa992f4fabc89c23b0326dbd6bbe1d0d15eca8c18e3390a6ede2c2632d5fb21 SHA512 acc7ae986cda69bd2d66b80080081785b91e6379a8cc0554f73fbf6bf95a4755a69527a3ab0cf733ce1d0af753af551778d2592a86be27574e02c6555a81f0fe WHIRLPOOL 45b01c29590bcefc4c78c4c652fc2398cf435ac17f74544f95192efe51727d230eee55a145151630c1366df4a5964c748f57fb6a75c208267eb9f800d4138e0d
AUX qemu-2.4.0-CVE-2015-7295-1.patch 1956 SHA256 5d129e767fc5cbeed78a3cee89633a7bfa8fc298ff1753cb70fca31526f6032e SHA512 e5897855cc3f3196c804395b770bf58022a17e3dbb30224c403631fbacd4f2d93b8072828fa77a568b1f26e96e322ec88088a27484df7ed9598d94b6b4dbbf4c WHIRLPOOL 66251d14fb0956c84801c1d9e346e53b2be5504efb20166cfd27ab5785cbfaf1aea086b442fb15d119599ab3d64305dd8973989d5e1971bf6f35e0086fc366a4
AUX qemu-2.4.0-CVE-2015-7295-2.patch 1990 SHA256 6039c16c9310fdb3d1ea82fb8a1d876bb6eca8908aa2c7c9c246d3210ef3b339 SHA512 c62fc946c70f818cf8f03fd522012c666429fd17ca473757261a96f8569fb94f09d904f5f6cd6eec342e77ced43c0ec3e38bf9d45291f225e8ee9e765e9d0310 WHIRLPOOL c05628bd77df60b5e35912b8954dca0718f7c8f15d96f854e76c9195a5ed46cb2c6a6d4e642c53299015705ddc07c7d887224d589ce05a781700ccdd93528bef
AUX qemu-2.4.0-CVE-2015-7295-3.patch 1712 SHA256 02e10ecc8284fd0514e233e35ca1795df29672e72372ac111103842844fb4b3b SHA512 ee77eb448ebf9c06fac3a0371cf5221b98c03c2355feb9884501214a7d885abd53b2b1a238971d34db7615ce7de3c93bc96577e53c10ff42717439b4efe5a727 WHIRLPOOL 84f48eee2ec434bf4399a8d7f525d068d18cb9172713e74b455f6feabe252571ced53bf3ce1c077a9b3f20fb6a18366fcd5b3db25b2192c5e6f7359724c608ee
AUX qemu-2.4.0-block-mirror-crash.patch 4752 SHA256 14aa1ee6eb9e4728d6f3769c46a503d5295463a406e940853371c004e6002567 SHA512 f96f0046e48a38c46d78b0ab230c0d0ed0ed8c8ab31d14dae4ddb96affa6f553646ef0d1d7f86072a7ef88149051c54e99eb1649e18ebe33db30776dad90aa04 WHIRLPOOL c1c0bf2dcc1b4bcf6e46e9b0239b504aeccc4dc55753c7e29fb95f48f5f04a9e21fb2b17468a8296e660c2478bc6570e876c061e151ec4c69774098f698747e3
AUX qemu-2.4.0-e1000-loop.patch 1379 SHA256 16783c9d8e81fdb0c6e0a079a0f4feff5acf8d90e35989c2e0937ed95136f270 SHA512 492ee88d938bb9c470c83583700963f395b634e91ed65cfaa73d07cd9d2cfe715497cb07b88f8ade5ff733fee70a1f3847473cb40cb47e53a008814112cfc0b1 WHIRLPOOL bd070d6e6181d9c08e3496cd460ce3138ec8e30dc6836656f2a38ca41398c6f9286f2e1371e140c8bb2137f5f09edaef467310819c124ad9b3a087b4c4110b0a
AUX qemu-binfmt.initd-r1 7965 SHA256 ba867d85b884cffaa9e355f0609e677940b5ce3f7adbae0006c52cecfea718aa SHA512 dafc708d873ece28b50eb4643d243c57df513b9ecd8cbbb214e8db2881cdb83d989f7e27d364bdd261c5bcf48c3d28d6008456293419d0fccd8e516475198fb3 WHIRLPOOL f4313dd236dbc4ba083b6168ce5ef371ad36ac88e84dd3261b0273a2376c8d29fa64170f4e458fa4afd5c8774607a4484dd908952b9b73153a5ee2c3671e8d01
DIST qemu-2.3.0.tar.bz2 24683085 SHA256 b6bab7f763d5be73e7cb5ee7d4c8365b7a8df2972c52fa5ded18893bd8281588 SHA512 7a40d213c5696b27784abd2a3119e49d42c38c923be431826c73a8f14c19074435d7f1a652686c53baf08e81f5a3005b2ddc92d67c32f6a2b19659ab627e9eaa WHIRLPOOL 9dad6e342027c3be512b4e0b40e810e0a6f1dc84a16847aa5aac74d97f7a347e60d42e770335a090f83e90a1614294f86552a84edc1faafc7093d3e32602f5de
EBUILD qemu-2.3.0-r4.ebuild 19056 SHA256 9bff0981aa03eb7489eabb6c2bb952f293ad6c5b002e0321b2b33638564afe11 SHA512 62516308746cc7402ad46e7fde02d53947f43fe28b60d6f41373e419f44987c25c17f7e27eb96f13586076f48d7408a049f57b60db46845c3ee72f6f9b07cdce WHIRLPOOL d5ca0a0395b9ab6e8e4b9646d7e91da9323c7b1707b2c8d950580a4e2190738de75edc77e4ec399cb9aaca94725755dc1477438f0f251face6155104dae763b2
EBUILD qemu-2.3.0-r5.ebuild 19518 SHA256 bc0180d0df478992c7c4a26a51229f4c799bbb7e9112ec789bcfc297301f4c1f SHA512 1ce12120db2a4475280eb3125683e6db7069bc35e49380d76903a6e6a5f674b976fe575075b3fca3cada00dfc1147d0ed6510a23a16651b36a6410b28cd34581 WHIRLPOOL 29456ddc3375e8cc12e90d1912d2cbecd9deb21deac21622072690d6270dba164ec459a131c04d2339744ae3e2651214c66633e43dfe69c33a2ed9778082eef8
EBUILD qemu-9999.ebuild 18435 SHA256 07cf15f4b41c74cfc6cf679354d000842c11d2c06f47c59d21f219eefa993b59 SHA512 ec44a044f7d3ee430a58ed502b2e1b10b2710d28663557daf1d6f9c2c9107e058ee4b9f771180a631e1de4d9bda901d53a008f69c081c6a34410a7680b07b7ed WHIRLPOOL 4c02608e81f7a39cfe5bb26bd2d4e14df40ce74aee15ce80484bb4575e23beeffdf9597068f57c88b0a8f364ba1846b4edd31f27cd7dc142179bd54db58b5f2f
MISC ChangeLog 58193 SHA256 60c1a4f4c85515520ab14da920bbbf4a6813491ce16b5357a0456ea588815a5c SHA512 ddfe8e75aabe59b731a4a8b31839d8c71fd516620306d2bc99d7641cc501652974e053104caafa7550c5ad33b6834295f6743a98b9419d292b8bf6f67918ccd3 WHIRLPOOL a6841f79c3ba1cbf76a8c7fde296a2912c46ddd251494dca3bf3bc13391c80595b6f80125c383823899942248008ede7065b0f5c8e43f9bc1d0464aa62cc187f
MISC metadata.xml 3708 SHA256 9f5c1b781f9924046cc0fa050a93e632935c58b67d6de4f3a872eb63341e86ee SHA512 cb2582c698b5913c70e07bd27c39e84e45c319f95faa3494c0ad5273c25127bae888da3cdcec3e73b8d3ae7b950f7f128a550977755e8f8fbec53d931ac89117 WHIRLPOOL d08403a3f8659bec79644a4042c3f71653152a7d1e078efd3959565e794c7f837e735f4e774dcdb4077eeadc3f493a1a5170d7973db72b14b31c77c1093e22de
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
iQIbBAEBCAAGBQJVwbGhAAoJEPGu1DbS6WIATpEP9iYP4aHvjiA/yuYhb4NpRHA1
XH8fV/FTU2AkYydgTwdhhGPBcwTrI91wJSxPIhZPzalThKdFQgJ61/l/+CW6dyJz
C4wvPJ7Y/WqbtDKUlZCl4wFPO6gGvLnmVTY0memeHKJl2LqQqjknUXXjzpjaYpcF
4xtD0tQ/XaIFvAA0+u6nfIyvDbB2qE4dvbiATZ2OlfFjy3RPZpONLwRqLzTG33JJ
32/zqBRwmG2RliaXj72jX6ZbB0WENgSOX9T3oxVK4orfh30CsoXRBXTJwcImZ5zV
OIFWDBKSee3K6Ds80qUYSFdrny3j2mufj9pZqtqZ+ZQiVCQbNgZUjyXV89be3Tdj
nOTleaSayJZ7RAqCm+P6Jgfn2SgmGu2lwT8zlbgUpUXgVbAIIZG3UekFgwy6pr5L
lNuuDjDCb/ZtM8xygQbSkgN+AfoF2jDsweGkzSSQP2IkfkSm8Iy/eDJh2DoN7OIx
AtYasTgPE1HwDZq9iCh+ANHp81qeGUZifNKlVFIbVqmEq3eK+zd28SYtKPDL19Tq
oEItwCBhyDsiKdhvBbPi/oY64OyDIg+y3E2rNoYz43hdAsJanuQH9Ca3vmIYvWr3
Axqo93/LIexe5F+XlOduQH0pm6H/SqhVQjd4A/Dx3pIuR7eDZTLx1r2dXjo1rEe8
bNIMQfCXnXA3h16xHSg=
=Q9xW
-----END PGP SIGNATURE-----
DIST qemu-2.3.1.tar.bz2 24692020 SHA256 661d029809421cae06b4b1bc74ac0e560cb4ed47c9523c676ff277fa26dca15f SHA512 309e6df7dcc0a064d1a17c7dac2f60398700dfa8c6b60b66e4202966248097cbc49af75aa97725bc34773151be6fd75836810e9f0741ba65cdc208414fa78f6b WHIRLPOOL 26750ee00513daa99cdcd585c4b8407b8258a9c3559ae6335266d7754cb6679e7c10c56f8d12ae0ef2b5cd5d6a9a6a536213f8e86e81ced37e46205c796a773e
DIST qemu-2.4.0.1.tar.bz2 25068555 SHA256 ecfe8b88037e41e817d72c460c56c6a0b573d540d6ba38b162d0de4fd22d1bdb SHA512 08eabe92fa9096386ef00f8e9d99eeec1508d15e5a98431e043a729cbaca2d96d6e3afc612e7c4a0fe5a6bba80006276185f1066b4c73105b2ea24b7e9133b84 WHIRLPOOL 1daaec23d6ada6af8bf4902e590fb96375e7149d2f53ff6bf6d8fb39722c182a2d2efcc0d40bee673a8316f621983c512daa54202bb4e632b3a4b09f0268cd09
DIST qemu-2.4.0.tar.bz2 25070979 SHA256 72b0b991bbcc540663a019e1e8c4f714053b691dda32c9b9ee80b25f367e6620 SHA512 8740e0fb2c654ed897dff4649f1f83d14d57cfa9cbde723899f115982f93253ce9a2bddd60aab379d241027d2044137770efe4c0b3c83d5b20f3a2a06f05a5dc WHIRLPOOL 8c6cfae096624e01f0d5daeb86aa2dccbeaa86d2aeab626cf55cf20b7edace82d0b0f3a1d85eeb2dc1fd53abaaa9dccf8f0d7ddc657a1f5ffd72fd68301648f1
DIST qemu-2.4.1.tar.bz2 25087522 SHA256 e3d5cf4c8b1f9129c9c797329a515bfb6b3b1ded0ab8b394c8a316490fe3a177 SHA512 fde32b71a50d888c1055e61f4e6dfc45bb97e8e9ebee490c545965fbdcbd5ffd859fbf20648abed1f4fa9fcc5635e9b22e1829bbe802fc8aaf989d6013235917 WHIRLPOOL a698cfa5d2d138eeddb3c6bea57e3b89ca5d47165c04ed1cfd66a81647ac59cbdd594c919abef67bf198278da1160c5b9f3a0da84cd73827f3eb19a6e6f05436
EBUILD qemu-2.3.0-r5.ebuild 19412 SHA256 d9e18c9bc8207c101b172cc0f745851e98ebd03e2113a6ea16981f25a02e3df7 SHA512 dcab95af7745260e0c3365f2c250a18d1dccb11f3de7313a6d5168ff7c4881709096b43061e68643d4864db0a087779ed26d7fbe12dc6dc9f87d71e8e72f4458 WHIRLPOOL 228e9da0b0cdc0f357373d76d15fca4a1aed1899a5f4af7ae662b683c7bede9398b8026e374ce1767b993b9ad73f9e8ed2108125aaed478f6a8f8b0c3799b4f1
EBUILD qemu-2.3.0-r6.ebuild 19469 SHA256 80c525f4dc1f871da5104eba9efb09f2e6b29639dc42e7ce4fbc38c31c57e757 SHA512 4937afc1d233999b2615f4c39fb2feeb78d5693f192477b5fae40d1df22835105f9aa15a8b2d4415aac0fa3e6cdfbf1c62ad4b2cb9a0756e92fa7acae40a63b7 WHIRLPOOL 107f994f2a4231b3ba01daac08e4201cd7edb377f1523aa88fe618e61033bd4e2ccce2db113f7977cf20e637f63fe7ec58a1d1abea2b8c14b9623a5ea233a00c
EBUILD qemu-2.3.1.ebuild 18663 SHA256 1a7eac60288e8da44c1dd575d5e3cd9cdbd6bef93a5663f17bf5347208f601ee SHA512 3b0fdcf022f1ba1ed9833b4bebded4604918ef2c6bd2a54d5a0b0f350d45da8575b83aa5de5a39ced67c7541eba5df7b5932a25528ff7502c9e16db7193670f3 WHIRLPOOL df3a7c3fafd78b4e300fee5a3cc15fd7c249ed2bc291d6bff41ff4a8aeceae70cb6e28caee0674b434a252dedd9f6b7b56d2b54e3ca0612e5d58de56409b0cc2
EBUILD qemu-2.4.0-r1.ebuild 19325 SHA256 7e3e93dcd376e33007183de3cc13e60112cf3e09c7f52dc6f1364e87a6e07641 SHA512 dcc291bc60dee4ec3b224784d4d03f0d1d00d45da7b90d40c07f5b4da8983d9e3f19b9df651144d7a0911b2872e7a0e4b88fe95d9d20b0a436cde784869077f0 WHIRLPOOL 6db9ea83733c4553b5e356dc41419e10e37a82137ee2e344e03337923a79da8603f5f9f058e017de0756191aa196ef54d3bdec5267e2d223a81269dd14a363e9
EBUILD qemu-2.4.0.1-r1.ebuild 19456 SHA256 989cff4508d12080d9d76941cea727243b36eaa43f0ccb3a6120e8e64bdda2aa SHA512 5339613037480a1c6647034c41c64dd6d459f97f548bfeee3c5b447ec4bd69cf5e7a131e6783b6ab5123613a3999f0b7bde471c00decd80da031119b06219014 WHIRLPOOL 589326924c9616b9aef9b2aad7d5119039fed64a3474b426d262fbcdc46d7e1eb88a2dfbad11bcca3a93294b74b1e910719835b8dadbc399f7279e09701808a3
EBUILD qemu-2.4.0.1.ebuild 19352 SHA256 e113f46d6ebdb2f177ad4c67317c3a2a080d28300a1381a0a1ffbce1e46420ba SHA512 819ca540323f93b11a8165b3f818726e8a5b5396ead0ae78201a4e2f2764a8ecbe524b4e7394338fb11017787b06d1bcd2a4ab25068841acf399e3c69fb462bf WHIRLPOOL b04b50f6eed88070a91d210c02cd15aa11cf505c8e7e0d8ed88afeb2b3c277fee770b80a73b12dddf78165a546a041882f20cbc67a2ff7687a5829f6432cde61
EBUILD qemu-2.4.1.ebuild 19200 SHA256 36d1268e56168b08e473beafb643aeabec71fdce131d6349e3dfac61e7febd84 SHA512 9c28ed9a89d0ae6e045f85bdb395d9aabc9c4783b78f00fe1a8f29de1cc6072b1f2b203df54360a9ee17cc01a1cffb5ce80f2d3b2b74d4b840929d46648bae22 WHIRLPOOL 4f0af972bdb83dcb786aad459ca7fe28ddc39ac49e9de59a9d4edd40ecbed8fb190a115417beead8877e71bc33bc8609fa3478b23d160833effb02fb58a923bb
EBUILD qemu-9999.ebuild 19330 SHA256 104237b108e5a82503886090ece505e3d3d9f5fa2539e8ea7a74c575c19e0eaf SHA512 03b6a3dd872e14079a898dbdef18d05ae18e26913b533dadeffcf535d5802b0445e9edd80fb4646db267a6dfff073231fa8bf6990c8f279c8ca15fb94a2b9767 WHIRLPOOL a646929be159a016af1ba0d5b8319f97cfe500aa655fa6f30776eb251c8bc309a8a1b829f88b5eddbdaf924abd3fa82a4c9de4c96010ccff4bf472a22a61a873
MISC ChangeLog 8773 SHA256 baaffabab2086273f01f1fa54a924e84f8b298a362e6e6c8ee61f1be10ba8b5c SHA512 2bb6b4739e6070db8f7f20d902cd724ad0d3a7da0abef3140a8bdb047b1729b101e68c596010a3600d2dedd71dd8f374a898bf4d1f176c7655777303a6912bc8 WHIRLPOOL 7bab159850a8ec3ab635eff94cfec644aa504a2cfddc11e5dd0782876936d76a30d9d7fda5370faef09d20087a6c36b4a76430d1b893b857370975aa2c02280f
MISC ChangeLog-2015 58193 SHA256 60c1a4f4c85515520ab14da920bbbf4a6813491ce16b5357a0456ea588815a5c SHA512 ddfe8e75aabe59b731a4a8b31839d8c71fd516620306d2bc99d7641cc501652974e053104caafa7550c5ad33b6834295f6743a98b9419d292b8bf6f67918ccd3 WHIRLPOOL a6841f79c3ba1cbf76a8c7fde296a2912c46ddd251494dca3bf3bc13391c80595b6f80125c383823899942248008ede7065b0f5c8e43f9bc1d0464aa62cc187f
MISC metadata.xml 3748 SHA256 ddc383b4236e3fb213427aa985f9d42b0b701675b6085fc3f8f6eecac4fd317f SHA512 ace8bf0729123df50dcb01fff5012302ffccf2b43876684c5c739fde865586ec1586d444691a6024e37fbfaba014f211fad01bc6d301ea09aa78ecf3b8c96684 WHIRLPOOL 4c54da70dc2319a49fca73e81ac796464d57b5c78cdb18d7b0f84c58bb3942f805f649bf9d142293dee0c1706e087cc601c10887133637df2678bec91b8d25dc

View File

@ -0,0 +1,34 @@
https://bugs.gentoo.org/557206
From 7882080388be5088e72c425b02223c02e6cb4295 Mon Sep 17 00:00:00 2001
From: "Michael S. Tsirkin" <mst@redhat.com>
Date: Thu, 23 Jul 2015 17:52:02 +0300
Subject: [PATCH] virtio-serial: fix ANY_LAYOUT
Don't assume a specific layout for control messages.
Required by virtio 1.
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Amit Shah <amit.shah@redhat.com>
Reviewed-by: Jason Wang <jasowang@redhat.com>
---
hw/char/virtio-serial-bus.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/hw/char/virtio-serial-bus.c b/hw/char/virtio-serial-bus.c
index 78c73e5..929e49c 100644
--- a/hw/char/virtio-serial-bus.c
+++ b/hw/char/virtio-serial-bus.c
@@ -195,7 +195,8 @@ static size_t send_control_msg(VirtIOSerial *vser, void *buf, size_t len)
return 0;
}
- memcpy(elem.in_sg[0].iov_base, buf, len);
+ /* TODO: detect a buffer that's too short, set NEEDS_RESET */
+ iov_from_buf(elem.in_sg, elem.in_num, 0, buf, len);
virtqueue_push(vq, &elem, len);
virtio_notify(VIRTIO_DEVICE(vser), vq);
--
2.4.4

View File

@ -0,0 +1,78 @@
From d54a299b83a07642c85a22bfe19b69ca4def9ec4 Mon Sep 17 00:00:00 2001
From: Leon Alrae <leon.alrae@imgtec.com>
Date: Wed, 9 Sep 2015 12:44:25 +0100
Subject: [PATCH] target-mips: correct MTC0 instruction on MIPS64
MTC0 on a 64-bit processor should move entire 64-bit GPR content to CP0
register.
Signed-off-by: Leon Alrae <leon.alrae@imgtec.com>
Reviewed-by: Aurelien Jarno <aurelien@aurel32.net>
---
target-mips/translate.c | 18 +++++++-----------
1 files changed, 7 insertions(+), 11 deletions(-)
diff --git a/target-mips/translate.c b/target-mips/translate.c
index 0883782..a59b670 100644
--- a/target-mips/translate.c
+++ b/target-mips/translate.c
@@ -4765,12 +4765,6 @@ static inline void gen_mtc0_store32 (TCGv arg, target_ulong off)
tcg_temp_free_i32(t0);
}
-static inline void gen_mtc0_store64 (TCGv arg, target_ulong off)
-{
- tcg_gen_ext32s_tl(arg, arg);
- tcg_gen_st_tl(arg, cpu_env, off);
-}
-
static void gen_mfhc0(DisasContext *ctx, TCGv arg, int reg, int sel)
{
const char *rn = "invalid";
@@ -5629,12 +5623,14 @@ static void gen_mtc0(DisasContext *ctx, TCGv arg, int reg, int sel)
break;
case 5:
CP0_CHECK(ctx->insn_flags & ASE_MT);
- gen_mtc0_store64(arg, offsetof(CPUMIPSState, CP0_VPESchedule));
+ tcg_gen_st_tl(arg, cpu_env,
+ offsetof(CPUMIPSState, CP0_VPESchedule));
rn = "VPESchedule";
break;
case 6:
CP0_CHECK(ctx->insn_flags & ASE_MT);
- gen_mtc0_store64(arg, offsetof(CPUMIPSState, CP0_VPEScheFBack));
+ tcg_gen_st_tl(arg, cpu_env,
+ offsetof(CPUMIPSState, CP0_VPEScheFBack));
rn = "VPEScheFBack";
break;
case 7:
@@ -5884,7 +5880,7 @@ static void gen_mtc0(DisasContext *ctx, TCGv arg, int reg, int sel)
case 14:
switch (sel) {
case 0:
- gen_mtc0_store64(arg, offsetof(CPUMIPSState, CP0_EPC));
+ tcg_gen_st_tl(arg, cpu_env, offsetof(CPUMIPSState, CP0_EPC));
rn = "EPC";
break;
default:
@@ -6057,7 +6053,7 @@ static void gen_mtc0(DisasContext *ctx, TCGv arg, int reg, int sel)
switch (sel) {
case 0:
/* EJTAG support */
- gen_mtc0_store64(arg, offsetof(CPUMIPSState, CP0_DEPC));
+ tcg_gen_st_tl(arg, cpu_env, offsetof(CPUMIPSState, CP0_DEPC));
rn = "DEPC";
break;
default:
@@ -6160,7 +6156,7 @@ static void gen_mtc0(DisasContext *ctx, TCGv arg, int reg, int sel)
case 30:
switch (sel) {
case 0:
- gen_mtc0_store64(arg, offsetof(CPUMIPSState, CP0_ErrorEPC));
+ tcg_gen_st_tl(arg, cpu_env, offsetof(CPUMIPSState, CP0_ErrorEPC));
rn = "ErrorEPC";
break;
default:
--
1.7.0.4

View File

@ -0,0 +1,44 @@
From cdfcad788394ff53e317043e07b8e34f4987c659 Mon Sep 17 00:00:00 2001
From: Alex Smith <alex.smith@imgtec.com>
Date: Tue, 8 Sep 2015 11:34:11 +0100
Subject: [PATCH 1/1] target-mips: Fix RDHWR on CP0.Count
For RDHWR on the CP0.Count register, env->CP0_Count was being returned.
This value is a delta against the QEMU_CLOCK_VIRTUAL clock, not the
correct current value of CP0.Count. Use cpu_mips_get_count() instead.
Signed-off-by: Alex Smith <alex.smith@imgtec.com>
Cc: Aurelien Jarno <aurelien@aurel32.net>
Cc: Leon Alrae <leon.alrae@imgtec.com>
Reviewed-by: Leon Alrae <leon.alrae@imgtec.com>
Reviewed-by: Aurelien Jarno <aurelien@aurel32.net>
Signed-off-by: Leon Alrae <leon.alrae@imgtec.com>
---
target-mips/op_helper.c | 9 +++++++--
1 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/target-mips/op_helper.c b/target-mips/op_helper.c
index 1aa9e3c..94de108 100644
--- a/target-mips/op_helper.c
+++ b/target-mips/op_helper.c
@@ -2184,10 +2184,15 @@ target_ulong helper_rdhwr_synci_step(CPUMIPSState *env)
target_ulong helper_rdhwr_cc(CPUMIPSState *env)
{
if ((env->hflags & MIPS_HFLAG_CP0) ||
- (env->CP0_HWREna & (1 << 2)))
+ (env->CP0_HWREna & (1 << 2))) {
+#ifdef CONFIG_USER_ONLY
return env->CP0_Count;
- else
+#else
+ return (int32_t)cpu_mips_get_count(env);
+#endif
+ } else {
helper_raise_exception(env, EXCP_RI);
+ }
return 0;
}
--
1.7.0.4

View File

@ -0,0 +1,89 @@
Pending upstream inclusion
Link: https://lists.gnu.org/archive/html/qemu-devel/2015-09/msg03573.html
Patchwork: https://patchwork.ozlabs.org/patch/517392/
X-Gentoo-Bug: 563162
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=563162
Signed-off-by: Markos Chandras <hwoarang@gentoo.org>
diff --git a/target-mips/cpu.c b/target-mips/cpu.c
index 4027d0f..144eea9 100644
--- a/target-mips/cpu.c
+++ b/target-mips/cpu.c
@@ -58,7 +58,9 @@ static bool mips_cpu_has_work(CPUState *cs)
check for interrupts that can be taken. */
if ((cs->interrupt_request & CPU_INTERRUPT_HARD) &&
cpu_mips_hw_interrupts_pending(env)) {
- has_work = true;
+ if (cpu_mips_hw_interrupts_enabled(env)) {
+ has_work = true;
+ }
}
/* MIPS-MT has the ability to halt the CPU. */
diff --git a/target-mips/cpu.h b/target-mips/cpu.h
index c91883d..210370e 100644
--- a/target-mips/cpu.h
+++ b/target-mips/cpu.h
@@ -639,23 +639,24 @@ static inline int cpu_mmu_index (CPUMIPSState *env)
return env->hflags & MIPS_HFLAG_KSU;
}
-static inline int cpu_mips_hw_interrupts_pending(CPUMIPSState *env)
+static inline bool cpu_mips_hw_interrupts_enabled(CPUMIPSState *env)
{
- int32_t pending;
- int32_t status;
- int r;
-
- if (!(env->CP0_Status & (1 << CP0St_IE)) ||
- (env->CP0_Status & (1 << CP0St_EXL)) ||
- (env->CP0_Status & (1 << CP0St_ERL)) ||
+ return (env->CP0_Status & (1 << CP0St_IE)) &&
+ !(env->CP0_Status & (1 << CP0St_EXL)) &&
+ !(env->CP0_Status & (1 << CP0St_ERL)) &&
+ !(env->hflags & MIPS_HFLAG_DM) &&
/* Note that the TCStatus IXMT field is initialized to zero,
and only MT capable cores can set it to one. So we don't
need to check for MT capabilities here. */
- (env->active_tc.CP0_TCStatus & (1 << CP0TCSt_IXMT)) ||
- (env->hflags & MIPS_HFLAG_DM)) {
- /* Interrupts are disabled */
- return 0;
- }
+ !(env->active_tc.CP0_TCStatus & (1 << CP0TCSt_IXMT));
+}
+
+/* Check if there is pending and not masked out interrupt */
+static inline bool cpu_mips_hw_interrupts_pending(CPUMIPSState *env)
+{
+ int32_t pending;
+ int32_t status;
+ bool r;
pending = env->CP0_Cause & CP0Ca_IP_mask;
status = env->CP0_Status & CP0Ca_IP_mask;
@@ -669,7 +670,7 @@ static inline int cpu_mips_hw_interrupts_pending(CPUMIPSState *env)
/* A MIPS configured with compatibility or VInt (Vectored Interrupts)
treats the pending lines as individual interrupt lines, the status
lines are individual masks. */
- r = pending & status;
+ r = (pending & status) != 0;
}
return r;
}
diff --git a/target-mips/helper.c b/target-mips/helper.c
index 01c4461..2d86323 100644
--- a/target-mips/helper.c
+++ b/target-mips/helper.c
@@ -759,7 +759,8 @@ bool mips_cpu_exec_interrupt(CPUState *cs, int interrupt_request)
MIPSCPU *cpu = MIPS_CPU(cs);
CPUMIPSState *env = &cpu->env;
- if (cpu_mips_hw_interrupts_pending(env)) {
+ if (cpu_mips_hw_interrupts_enabled(env) &&
+ cpu_mips_hw_interrupts_pending(env)) {
/* Raise it */
cs->exception_index = EXCP_EXT_INTERRUPT;
env->error_code = 0;

View File

@ -0,0 +1,29 @@
Pending upstream inclusion
Link: https://lists.gnu.org/archive/html/qemu-devel/2015-09/msg03572.html
Patchwork: https://patchwork.ozlabs.org/patch/517391/
X-Gentoo-Bug: 563162
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=563162
Signed-off-by: Markos Chandras <hwoarang@gentoo.org>
diff --git a/target-mips/cpu.c b/target-mips/cpu.c
index 144eea9..cbeca04 100644
--- a/target-mips/cpu.c
+++ b/target-mips/cpu.c
@@ -53,12 +53,13 @@ static bool mips_cpu_has_work(CPUState *cs)
CPUMIPSState *env = &cpu->env;
bool has_work = false;
- /* It is implementation dependent if non-enabled interrupts
- wake-up the CPU, however most of the implementations only
+ /* Prior to MIPS Release 6 it is implementation dependent if non-enabled
+ interrupts wake-up the CPU, however most of the implementations only
check for interrupts that can be taken. */
if ((cs->interrupt_request & CPU_INTERRUPT_HARD) &&
cpu_mips_hw_interrupts_pending(env)) {
- if (cpu_mips_hw_interrupts_enabled(env)) {
+ if (cpu_mips_hw_interrupts_enabled(env) ||
+ (env->insn_flags & ISA_MIPS32R6)) {
has_work = true;
}
}

View File

@ -0,0 +1,86 @@
https://bugs.gentoo.org/558416
fix from upstream git
From eb8934b0418b3b1d125edddc4fc334a54334a49b Mon Sep 17 00:00:00 2001
From: Gerd Hoffmann <kraxel@redhat.com>
Date: Mon, 17 Aug 2015 19:56:53 +0200
Subject: [PATCH] vnc: fix memory corruption (CVE-2015-5225)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
The _cmp_bytes variable added by commit "bea60dd ui/vnc: fix potential
memory corruption issues" can become negative. Result is (possibly
exploitable) memory corruption. Reason for that is it uses the stride
instead of bytes per scanline to apply limits.
For the server surface is is actually fine. vnc creates that itself,
there is never any padding and thus scanline length always equals stride.
For the guest surface scanline length and stride are typically identical
too, but it doesn't has to be that way. So add and use a new variable
(guest_ll) for the guest scanline length. Also rename min_stride to
line_bytes to make more clear what it actually is. Finally sprinkle
in an assert() to make sure we never use a negative _cmp_bytes again.
Reported-by: 范祚至(库特) <zuozhi.fzz@alibaba-inc.com>
Reviewed-by: P J P <ppandit@redhat.com>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
---
ui/vnc.c | 15 ++++++++++-----
1 file changed, 10 insertions(+), 5 deletions(-)
diff --git a/ui/vnc.c b/ui/vnc.c
index e26973a..caf82f5 100644
--- a/ui/vnc.c
+++ b/ui/vnc.c
@@ -2872,7 +2872,7 @@ static int vnc_refresh_server_surface(VncDisplay *vd)
pixman_image_get_width(vd->server));
int height = MIN(pixman_image_get_height(vd->guest.fb),
pixman_image_get_height(vd->server));
- int cmp_bytes, server_stride, min_stride, guest_stride, y = 0;
+ int cmp_bytes, server_stride, line_bytes, guest_ll, guest_stride, y = 0;
uint8_t *guest_row0 = NULL, *server_row0;
VncState *vs;
int has_dirty = 0;
@@ -2891,17 +2891,21 @@ static int vnc_refresh_server_surface(VncDisplay *vd)
* Update server dirty map.
*/
server_row0 = (uint8_t *)pixman_image_get_data(vd->server);
- server_stride = guest_stride = pixman_image_get_stride(vd->server);
+ server_stride = guest_stride = guest_ll =
+ pixman_image_get_stride(vd->server);
cmp_bytes = MIN(VNC_DIRTY_PIXELS_PER_BIT * VNC_SERVER_FB_BYTES,
server_stride);
if (vd->guest.format != VNC_SERVER_FB_FORMAT) {
int width = pixman_image_get_width(vd->server);
tmpbuf = qemu_pixman_linebuf_create(VNC_SERVER_FB_FORMAT, width);
} else {
+ int guest_bpp =
+ PIXMAN_FORMAT_BPP(pixman_image_get_format(vd->guest.fb));
guest_row0 = (uint8_t *)pixman_image_get_data(vd->guest.fb);
guest_stride = pixman_image_get_stride(vd->guest.fb);
+ guest_ll = pixman_image_get_width(vd->guest.fb) * ((guest_bpp + 7) / 8);
}
- min_stride = MIN(server_stride, guest_stride);
+ line_bytes = MIN(server_stride, guest_ll);
for (;;) {
int x;
@@ -2932,9 +2936,10 @@ static int vnc_refresh_server_surface(VncDisplay *vd)
if (!test_and_clear_bit(x, vd->guest.dirty[y])) {
continue;
}
- if ((x + 1) * cmp_bytes > min_stride) {
- _cmp_bytes = min_stride - x * cmp_bytes;
+ if ((x + 1) * cmp_bytes > line_bytes) {
+ _cmp_bytes = line_bytes - x * cmp_bytes;
}
+ assert(_cmp_bytes >= 0);
if (memcmp(server_ptr, guest_ptr, _cmp_bytes) == 0) {
continue;
}
--
2.5.0

View File

@ -0,0 +1,146 @@
https://bugs.gentoo.org/560422
From d9033e1d3aa666c5071580617a57bd853c5d794a Mon Sep 17 00:00:00 2001
From: John Snow <jsnow@redhat.com>
Date: Thu, 17 Sep 2015 14:17:05 -0400
Subject: [PATCH] ide: fix ATAPI command permissions
We're a little too lenient with what we'll let an ATAPI drive handle.
Clamp down on the IDE command execution table to remove CD_OK permissions
from commands that are not and have never been ATAPI commands.
For ATAPI command validity, please see:
- ATA4 Section 6.5 ("PACKET Command feature set")
- ATA8/ACS Section 4.3 ("The PACKET feature set")
- ACS3 Section 4.3 ("The PACKET feature set")
ACS3 has a historical command validity table in Table B.4
("Historical Command Assignments") that can be referenced to find when
a command was introduced, deprecated, obsoleted, etc.
The only reference for ATAPI command validity is by checking that
version's PACKET feature set section.
ATAPI was introduced by T13 into ATA4, all commands retired prior to ATA4
therefore are assumed to have never been ATAPI commands.
Mandatory commands, as listed in ATA8-ACS3, are:
- DEVICE RESET
- EXECUTE DEVICE DIAGNOSTIC
- IDENTIFY DEVICE
- IDENTIFY PACKET DEVICE
- NOP
- PACKET
- READ SECTOR(S)
- SET FEATURES
Optional commands as listed in ATA8-ACS3, are:
- FLUSH CACHE
- READ LOG DMA EXT
- READ LOG EXT
- WRITE LOG DMA EXT
- WRITE LOG EXT
All other commands are illegal to send to an ATAPI device and should
be rejected by the device.
CD_OK removal justifications:
0x06 WIN_DSM Defined in ACS2. Not valid for ATAPI.
0x21 WIN_READ_ONCE Retired in ATA5. Not ATAPI in ATA4.
0x94 WIN_STANDBYNOW2 Retired in ATA4. Did not coexist with ATAPI.
0x95 WIN_IDLEIMMEDIATE2 Retired in ATA4. Did not coexist with ATAPI.
0x96 WIN_STANDBY2 Retired in ATA4. Did not coexist with ATAPI.
0x97 WIN_SETIDLE2 Retired in ATA4. Did not coexist with ATAPI.
0x98 WIN_CHECKPOWERMODE2 Retired in ATA4. Did not coexist with ATAPI.
0x99 WIN_SLEEPNOW2 Retired in ATA4. Did not coexist with ATAPI.
0xE0 WIN_STANDBYNOW1 Not part of ATAPI in ATA4, ACS or ACS3.
0xE1 WIN_IDLEIMMDIATE Not part of ATAPI in ATA4, ACS or ACS3.
0xE2 WIN_STANDBY Not part of ATAPI in ATA4, ACS or ACS3.
0xE3 WIN_SETIDLE1 Not part of ATAPI in ATA4, ACS or ACS3.
0xE4 WIN_CHECKPOWERMODE1 Not part of ATAPI in ATA4, ACS or ACS3.
0xE5 WIN_SLEEPNOW1 Not part of ATAPI in ATA4, ACS or ACS3.
0xF8 WIN_READ_NATIVE_MAX Obsoleted in ACS3. Not ATAPI in ATA4 or ACS.
This patch fixes a divide by zero fault that can be caused by sending
the WIN_READ_NATIVE_MAX command to an ATAPI drive, which causes it to
attempt to use zeroed CHS values to perform sector arithmetic.
Reported-by: Qinghao Tang <luodalongde@gmail.com>
Signed-off-by: John Snow <jsnow@redhat.com>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
Message-id: 1441816082-21031-1-git-send-email-jsnow@redhat.com
CC: qemu-stable@nongnu.org
---
hw/ide/core.c | 30 +++++++++++++++---------------
1 file changed, 15 insertions(+), 15 deletions(-)
diff --git a/hw/ide/core.c b/hw/ide/core.c
index 8ba04df..1cc6945 100644
--- a/hw/ide/core.c
+++ b/hw/ide/core.c
@@ -1746,11 +1746,11 @@ static const struct {
} ide_cmd_table[0x100] = {
/* NOP not implemented, mandatory for CD */
[CFA_REQ_EXT_ERROR_CODE] = { cmd_cfa_req_ext_error_code, CFA_OK },
- [WIN_DSM] = { cmd_data_set_management, ALL_OK },
+ [WIN_DSM] = { cmd_data_set_management, HD_CFA_OK },
[WIN_DEVICE_RESET] = { cmd_device_reset, CD_OK },
[WIN_RECAL] = { cmd_nop, HD_CFA_OK | SET_DSC},
[WIN_READ] = { cmd_read_pio, ALL_OK },
- [WIN_READ_ONCE] = { cmd_read_pio, ALL_OK },
+ [WIN_READ_ONCE] = { cmd_read_pio, HD_CFA_OK },
[WIN_READ_EXT] = { cmd_read_pio, HD_CFA_OK },
[WIN_READDMA_EXT] = { cmd_read_dma, HD_CFA_OK },
[WIN_READ_NATIVE_MAX_EXT] = { cmd_read_native_max, HD_CFA_OK | SET_DSC },
@@ -1769,12 +1769,12 @@ static const struct {
[CFA_TRANSLATE_SECTOR] = { cmd_cfa_translate_sector, CFA_OK },
[WIN_DIAGNOSE] = { cmd_exec_dev_diagnostic, ALL_OK },
[WIN_SPECIFY] = { cmd_nop, HD_CFA_OK | SET_DSC },
- [WIN_STANDBYNOW2] = { cmd_nop, ALL_OK },
- [WIN_IDLEIMMEDIATE2] = { cmd_nop, ALL_OK },
- [WIN_STANDBY2] = { cmd_nop, ALL_OK },
- [WIN_SETIDLE2] = { cmd_nop, ALL_OK },
- [WIN_CHECKPOWERMODE2] = { cmd_check_power_mode, ALL_OK | SET_DSC },
- [WIN_SLEEPNOW2] = { cmd_nop, ALL_OK },
+ [WIN_STANDBYNOW2] = { cmd_nop, HD_CFA_OK },
+ [WIN_IDLEIMMEDIATE2] = { cmd_nop, HD_CFA_OK },
+ [WIN_STANDBY2] = { cmd_nop, HD_CFA_OK },
+ [WIN_SETIDLE2] = { cmd_nop, HD_CFA_OK },
+ [WIN_CHECKPOWERMODE2] = { cmd_check_power_mode, HD_CFA_OK | SET_DSC },
+ [WIN_SLEEPNOW2] = { cmd_nop, HD_CFA_OK },
[WIN_PACKETCMD] = { cmd_packet, CD_OK },
[WIN_PIDENTIFY] = { cmd_identify_packet, CD_OK },
[WIN_SMART] = { cmd_smart, HD_CFA_OK | SET_DSC },
@@ -1788,19 +1788,19 @@ static const struct {
[WIN_WRITEDMA] = { cmd_write_dma, HD_CFA_OK },
[WIN_WRITEDMA_ONCE] = { cmd_write_dma, HD_CFA_OK },
[CFA_WRITE_MULTI_WO_ERASE] = { cmd_write_multiple, CFA_OK },
- [WIN_STANDBYNOW1] = { cmd_nop, ALL_OK },
- [WIN_IDLEIMMEDIATE] = { cmd_nop, ALL_OK },
- [WIN_STANDBY] = { cmd_nop, ALL_OK },
- [WIN_SETIDLE1] = { cmd_nop, ALL_OK },
- [WIN_CHECKPOWERMODE1] = { cmd_check_power_mode, ALL_OK | SET_DSC },
- [WIN_SLEEPNOW1] = { cmd_nop, ALL_OK },
+ [WIN_STANDBYNOW1] = { cmd_nop, HD_CFA_OK },
+ [WIN_IDLEIMMEDIATE] = { cmd_nop, HD_CFA_OK },
+ [WIN_STANDBY] = { cmd_nop, HD_CFA_OK },
+ [WIN_SETIDLE1] = { cmd_nop, HD_CFA_OK },
+ [WIN_CHECKPOWERMODE1] = { cmd_check_power_mode, HD_CFA_OK | SET_DSC },
+ [WIN_SLEEPNOW1] = { cmd_nop, HD_CFA_OK },
[WIN_FLUSH_CACHE] = { cmd_flush_cache, ALL_OK },
[WIN_FLUSH_CACHE_EXT] = { cmd_flush_cache, HD_CFA_OK },
[WIN_IDENTIFY] = { cmd_identify, ALL_OK },
[WIN_SETFEATURES] = { cmd_set_features, ALL_OK | SET_DSC },
[IBM_SENSE_CONDITION] = { cmd_ibm_sense_condition, CFA_OK | SET_DSC },
[CFA_WEAR_LEVEL] = { cmd_cfa_erase_sectors, HD_CFA_OK | SET_DSC },
- [WIN_READ_NATIVE_MAX] = { cmd_read_native_max, ALL_OK | SET_DSC },
+ [WIN_READ_NATIVE_MAX] = { cmd_read_native_max, HD_CFA_OK | SET_DSC },
};
static bool ide_cmd_permitted(IDEState *s, uint32_t cmd)
--
2.6.0.rc2.230.g3dd15c0

View File

@ -0,0 +1,58 @@
https://bugs.gentoo.org/560760
From ce317461573bac12b10d67699b4ddf1f97cf066c Mon Sep 17 00:00:00 2001
From: Jason Wang <jasowang@redhat.com>
Date: Fri, 25 Sep 2015 13:21:28 +0800
Subject: [PATCH 1/3] virtio: introduce virtqueue_unmap_sg()
Factor out sg unmapping logic. This will be reused by the patch that
can discard descriptor.
Cc: Michael S. Tsirkin <mst@redhat.com>
Cc: Andrew James <andrew.james@hpe.com>
Signed-off-by: Jason Wang <jasowang@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
hw/virtio/virtio.c | 14 ++++++++++----
1 file changed, 10 insertions(+), 4 deletions(-)
diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c
index 7504f8b..6f2b96c 100644
--- a/hw/virtio/virtio.c
+++ b/hw/virtio/virtio.c
@@ -244,14 +244,12 @@ int virtio_queue_empty(VirtQueue *vq)
return vring_avail_idx(vq) == vq->last_avail_idx;
}
-void virtqueue_fill(VirtQueue *vq, const VirtQueueElement *elem,
- unsigned int len, unsigned int idx)
+static void virtqueue_unmap_sg(VirtQueue *vq, const VirtQueueElement *elem,
+ unsigned int len)
{
unsigned int offset;
int i;
- trace_virtqueue_fill(vq, elem, len, idx);
-
offset = 0;
for (i = 0; i < elem->in_num; i++) {
size_t size = MIN(len - offset, elem->in_sg[i].iov_len);
@@ -267,6 +265,14 @@ void virtqueue_fill(VirtQueue *vq, const VirtQueueElement *elem,
cpu_physical_memory_unmap(elem->out_sg[i].iov_base,
elem->out_sg[i].iov_len,
0, elem->out_sg[i].iov_len);
+}
+
+void virtqueue_fill(VirtQueue *vq, const VirtQueueElement *elem,
+ unsigned int len, unsigned int idx)
+{
+ trace_virtqueue_fill(vq, elem, len, idx);
+
+ virtqueue_unmap_sg(vq, elem, len);
idx = (idx + vring_used_idx(vq)) % vq->vring.num;
--
2.6.0.rc2.230.g3dd15c0

View File

@ -0,0 +1,54 @@
https://bugs.gentoo.org/560760
From 29b9f5efd78ae0f9cc02dd169b6e80d2c404bade Mon Sep 17 00:00:00 2001
From: Jason Wang <jasowang@redhat.com>
Date: Fri, 25 Sep 2015 13:21:29 +0800
Subject: [PATCH 2/3] virtio: introduce virtqueue_discard()
This patch introduces virtqueue_discard() to discard a descriptor and
unmap the sgs. This will be used by the patch that will discard
descriptor when packet is truncated.
Cc: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Jason Wang <jasowang@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
hw/virtio/virtio.c | 7 +++++++
include/hw/virtio/virtio.h | 2 ++
2 files changed, 9 insertions(+)
diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c
index 6f2b96c..d0bc72e 100644
--- a/hw/virtio/virtio.c
+++ b/hw/virtio/virtio.c
@@ -267,6 +267,13 @@ static void virtqueue_unmap_sg(VirtQueue *vq, const VirtQueueElement *elem,
0, elem->out_sg[i].iov_len);
}
+void virtqueue_discard(VirtQueue *vq, const VirtQueueElement *elem,
+ unsigned int len)
+{
+ vq->last_avail_idx--;
+ virtqueue_unmap_sg(vq, elem, len);
+}
+
void virtqueue_fill(VirtQueue *vq, const VirtQueueElement *elem,
unsigned int len, unsigned int idx)
{
diff --git a/include/hw/virtio/virtio.h b/include/hw/virtio/virtio.h
index 6201ee8..9d09115 100644
--- a/include/hw/virtio/virtio.h
+++ b/include/hw/virtio/virtio.h
@@ -146,6 +146,8 @@ void virtio_del_queue(VirtIODevice *vdev, int n);
void virtqueue_push(VirtQueue *vq, const VirtQueueElement *elem,
unsigned int len);
void virtqueue_flush(VirtQueue *vq, unsigned int count);
+void virtqueue_discard(VirtQueue *vq, const VirtQueueElement *elem,
+ unsigned int len);
void virtqueue_fill(VirtQueue *vq, const VirtQueueElement *elem,
unsigned int len, unsigned int idx);
--
2.6.0.rc2.230.g3dd15c0

View File

@ -0,0 +1,47 @@
https://bugs.gentoo.org/560760
From 0cf33fb6b49a19de32859e2cdc6021334f448fb3 Mon Sep 17 00:00:00 2001
From: Jason Wang <jasowang@redhat.com>
Date: Fri, 25 Sep 2015 13:21:30 +0800
Subject: [PATCH 3/3] virtio-net: correctly drop truncated packets
When packet is truncated during receiving, we drop the packets but
neither discard the descriptor nor add and signal used
descriptor. This will lead several issues:
- sg mappings are leaked
- rx will be stalled if a lots of packets were truncated
In order to be consistent with vhost, fix by discarding the descriptor
in this case.
Cc: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Jason Wang <jasowang@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
hw/net/virtio-net.c | 8 +-------
1 file changed, 1 insertion(+), 7 deletions(-)
diff --git a/hw/net/virtio-net.c b/hw/net/virtio-net.c
index d388c55..a877614 100644
--- a/hw/net/virtio-net.c
+++ b/hw/net/virtio-net.c
@@ -1094,13 +1094,7 @@ static ssize_t virtio_net_receive(NetClientState *nc, const uint8_t *buf, size_t
* must have consumed the complete packet.
* Otherwise, drop it. */
if (!n->mergeable_rx_bufs && offset < size) {
-#if 0
- error_report("virtio-net truncated non-mergeable packet: "
- "i %zd mergeable %d offset %zd, size %zd, "
- "guest hdr len %zd, host hdr len %zd",
- i, n->mergeable_rx_bufs,
- offset, size, n->guest_hdr_len, n->host_hdr_len);
-#endif
+ virtqueue_discard(q->rx_vq, &elem, total);
return size;
}
--
2.6.0.rc2.230.g3dd15c0

View File

@ -0,0 +1,124 @@
https://bugs.gentoo.org/558396
fix from upstream git
From e424aff5f307227b1c2512bbb8ece891bb895cef Mon Sep 17 00:00:00 2001
From: Kevin Wolf <kwolf@redhat.com>
Date: Thu, 13 Aug 2015 10:41:50 +0200
Subject: [PATCH] mirror: Fix coroutine reentrance
This fixes a regression introduced by commit dcfb3beb ("mirror: Do zero
write on target if sectors not allocated"), which was reported to cause
aborts with the message "Co-routine re-entered recursively".
The cause for this bug is the following code in mirror_iteration_done():
if (s->common.busy) {
qemu_coroutine_enter(s->common.co, NULL);
}
This has always been ugly because - unlike most places that reenter - it
doesn't have a specific yield that it pairs with, but is more
uncontrolled. What we really mean here is "reenter the coroutine if
it's in one of the four explicit yields in mirror.c".
This used to be equivalent with s->common.busy because neither
mirror_run() nor mirror_iteration() call any function that could yield.
However since commit dcfb3beb this doesn't hold true any more:
bdrv_get_block_status_above() can yield.
So what happens is that bdrv_get_block_status_above() wants to take a
lock that is already held, so it adds itself to the queue of waiting
coroutines and yields. Instead of being woken up by the unlock function,
however, it gets woken up by mirror_iteration_done(), which is obviously
wrong.
In most cases the code actually happens to cope fairly well with such
cases, but in this specific case, the unlock must already have scheduled
the coroutine for wakeup when mirror_iteration_done() reentered it. And
then the coroutine happened to process the scheduled restarts and tried
to reenter itself recursively.
This patch fixes the problem by pairing the reenter in
mirror_iteration_done() with specific yields instead of abusing
s->common.busy.
Cc: qemu-stable@nongnu.org
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Jeff Cody <jcody@redhat.com>
Message-id: 1439455310-11263-1-git-send-email-kwolf@redhat.com
Signed-off-by: Jeff Cody <jcody@redhat.com>
---
block/mirror.c | 15 ++++++++++-----
1 file changed, 10 insertions(+), 5 deletions(-)
diff --git a/block/mirror.c b/block/mirror.c
index 0841964..9474443 100644
--- a/block/mirror.c
+++ b/block/mirror.c
@@ -60,6 +60,7 @@ typedef struct MirrorBlockJob {
int sectors_in_flight;
int ret;
bool unmap;
+ bool waiting_for_io;
} MirrorBlockJob;
typedef struct MirrorOp {
@@ -114,11 +115,7 @@ static void mirror_iteration_done(MirrorOp *op, int ret)
qemu_iovec_destroy(&op->qiov);
g_slice_free(MirrorOp, op);
- /* Enter coroutine when it is not sleeping. The coroutine sleeps to
- * rate-limit itself. The coroutine will eventually resume since there is
- * a sleep timeout so don't wake it early.
- */
- if (s->common.busy) {
+ if (s->waiting_for_io) {
qemu_coroutine_enter(s->common.co, NULL);
}
}
@@ -203,7 +200,9 @@ static uint64_t coroutine_fn mirror_iteration(MirrorBlockJob *s)
/* Wait for I/O to this cluster (from a previous iteration) to be done. */
while (test_bit(next_chunk, s->in_flight_bitmap)) {
trace_mirror_yield_in_flight(s, sector_num, s->in_flight);
+ s->waiting_for_io = true;
qemu_coroutine_yield();
+ s->waiting_for_io = false;
}
do {
@@ -239,7 +238,9 @@ static uint64_t coroutine_fn mirror_iteration(MirrorBlockJob *s)
*/
while (nb_chunks == 0 && s->buf_free_count < added_chunks) {
trace_mirror_yield_buf_busy(s, nb_chunks, s->in_flight);
+ s->waiting_for_io = true;
qemu_coroutine_yield();
+ s->waiting_for_io = false;
}
if (s->buf_free_count < nb_chunks + added_chunks) {
trace_mirror_break_buf_busy(s, nb_chunks, s->in_flight);
@@ -337,7 +338,9 @@ static void mirror_free_init(MirrorBlockJob *s)
static void mirror_drain(MirrorBlockJob *s)
{
while (s->in_flight > 0) {
+ s->waiting_for_io = true;
qemu_coroutine_yield();
+ s->waiting_for_io = false;
}
}
@@ -510,7 +513,9 @@ static void coroutine_fn mirror_run(void *opaque)
if (s->in_flight == MAX_IN_FLIGHT || s->buf_free_count == 0 ||
(cnt == 0 && s->in_flight > 0)) {
trace_mirror_yield(s, s->in_flight, s->buf_free_count, cnt);
+ s->waiting_for_io = true;
qemu_coroutine_yield();
+ s->waiting_for_io = false;
continue;
} else if (cnt != 0) {
delay_ns = mirror_iteration(s);
--
2.5.0

View File

@ -0,0 +1,39 @@
https://bugs.gentoo.org/559656
https://lists.gnu.org/archive/html/qemu-devel/2015-09/msg01199.html
From: Stefan Hajnoczi <stefanha@redhat.com>
Subject: [PATCH] e1000: Avoid infinite loop in processing transmit descriptor
Newsgroups: gmane.comp.emulators.qemu
Date: 2015-09-04 16:21:06 GMT (2 days, 12 hours and 51 minutes ago)
From: P J P <pjp@fedoraproject.org>
While processing transmit descriptors, it could lead to an infinite
loop if 'bytes' was to become zero; Add a check to avoid it.
[The guest can force 'bytes' to 0 by setting the hdr_len and mss
descriptor fields to 0.
--Stefan]
Signed-off-by: P J P <pjp@fedoraproject.org>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
---
hw/net/e1000.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/hw/net/e1000.c b/hw/net/e1000.c
index 5c6bcd0..09c9e9d 100644
--- a/hw/net/e1000.c
+++ b/hw/net/e1000.c
@@ -740,7 +740,8 @@ process_tx_desc(E1000State *s, struct e1000_tx_desc *dp)
memmove(tp->data, tp->header, tp->hdr_len);
tp->size = tp->hdr_len;
}
- } while (split_size -= bytes);
+ split_size -= bytes;
+ } while (bytes && split_size);
} else if (!tp->tse && tp->cptse) {
// context descriptor TSE is not set, while data descriptor TSE is set
DBGOUT(TXERR, "TCP segmentation error\n");
--
2.4.3

View File

@ -1,7 +1,7 @@
#!/sbin/runscript
# Copyright 1999-2014 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/app-emulation/qemu/files/qemu-binfmt.initd-r1,v 1.5 2014/08/04 06:47:22 vapier Exp $
# $Id$
# enable automatic i386/ARM/M68K/MIPS/SPARC/PPC/s390 program execution by the kernel

View File

@ -3,52 +3,52 @@
<pkgmetadata>
<herd>qemu</herd>
<use>
<flag name='accessibility'>Adds support for braille displays using brltty</flag>
<flag name='aio'>Enables support for Linux's Async IO</flag>
<flag name='alsa'>Enable alsa output for sound emulation</flag>
<flag name='curl'>Support ISOs / -cdrom directives vis HTTP or HTTPS.</flag>
<flag name='fdt'>Enables firmware device tree support</flag>
<flag name='glusterfs'>Enables GlusterFS cluster fileystem via
<flag name="accessibility">Adds support for braille displays using brltty</flag>
<flag name="aio">Enables support for Linux's Async IO</flag>
<flag name="alsa">Enable alsa output for sound emulation</flag>
<flag name="curl">Support ISOs / -cdrom directives vis HTTP or HTTPS.</flag>
<flag name="fdt">Enables firmware device tree support</flag>
<flag name="glusterfs">Enables GlusterFS cluster fileystem via
<pkg>sys-cluster/glusterfs</pkg></flag>
<flag name='gtk2'>Use gtk-2 instead of gtk-3</flag>
<flag name='iscsi'>Enable direct iSCSI support via
<flag name="gtk2">Use gtk-2 instead of gtk-3</flag>
<flag name="iscsi">Enable direct iSCSI support via
<pkg>net-libs/libiscsi</pkg> instead of indirectly via the Linux
block layer that <pkg>sys-block/open-iscsi</pkg> does.</flag>
<flag name='ncurses'>Enable the ncurses-based console</flag>
<flag name='nfs'>Enable NFS support</flag>
<flag name='numa'>Enable NUMA support</flag>
<flag name='pin-upstream-blobs'>Pin the versions of BIOS firmware to the version included in the upstream release.
<flag name="ncurses">Enable the ncurses-based console</flag>
<flag name="nfs">Enable NFS support</flag>
<flag name="numa">Enable NUMA support</flag>
<flag name="pin-upstream-blobs">Pin the versions of BIOS firmware to the version included in the upstream release.
This is needed to sanely support migration/suspend/resume/snapshotting/etc... of instances.
When the blobs are different, random corruption/bugs/crashes/etc... may be observed.</flag>
<flag name='pulseaudio'>Enable pulseaudio output for sound emulation</flag>
<flag name='rbd'>Enable rados block device backend support, see http://ceph.newdream.net/wiki/QEMU-RBD</flag>
<flag name='sdl'>Enable the SDL-based console</flag>
<flag name='sdl2'>Use libsdl2 instead of libsdl</flag>
<flag name='spice'>Enable Spice protocol support via <pkg>app-emulation/spice</pkg></flag>
<flag name='ssh'>Enable SSH based block device support via <pkg>net-libs/libssh2</pkg></flag>
<flag name='static-softmmu'>Builds the Software MMU (system) targets as static binaries</flag>
<flag name='static-user'>Build the User targets as static binaries</flag>
<flag name='static'>Enables both 'static-softmmu' and 'static-user'</flag>
<flag name='snappy'>Enable support for snappy compression</flag>
<flag name='systemtap'>Enable SystemTAP/DTrace tracing</flag>
<flag name='tci'>Enable the TCG Interpreter which can speed up or slowdown workloads depending on the host and guest CPUs being emulated. In the future it will be a runtime option but for now its compile time.</flag>
<flag name='tls'>Enable TLS support for the VNC console server.
<flag name="pulseaudio">Enable pulseaudio output for sound emulation</flag>
<flag name="rbd">Enable rados block device backend support, see http://ceph.newdream.net/wiki/QEMU-RBD</flag>
<flag name="sdl">Enable the SDL-based console</flag>
<flag name="sdl2">Use libsdl2 instead of libsdl</flag>
<flag name="spice">Enable Spice protocol support via <pkg>app-emulation/spice</pkg></flag>
<flag name="ssh">Enable SSH based block device support via <pkg>net-libs/libssh2</pkg></flag>
<flag name="static-softmmu">Builds the Software MMU (system) targets as static binaries</flag>
<flag name="static-user">Build the User targets as static binaries</flag>
<flag name="static">Enables both 'static-softmmu' and 'static-user'</flag>
<flag name="snappy">Enable support for snappy compression</flag>
<flag name="systemtap">Enable SystemTAP/DTrace tracing</flag>
<flag name="tci">Enable the TCG Interpreter which can speed up or slowdown workloads depending on the host and guest CPUs being emulated. In the future it will be a runtime option but for now its compile time.</flag>
<flag name="tls">Enable TLS support for the VNC console server.
For 1.4 and newer this also enables WebSocket support.
For 2.0 through 2.3 also enables disk quorum support.</flag>
<flag name='jpeg'>Enable jpeg image support for the VNC console server</flag>
<flag name='png'>Enable png image support for the VNC console server</flag>
<flag name='usb'>Enable USB passthrough via <pkg>dev-libs/libusb</pkg></flag>
<flag name="jpeg">Enable jpeg image support for the VNC console server</flag>
<flag name="png">Enable png image support for the VNC console server</flag>
<flag name="usb">Enable USB passthrough via <pkg>dev-libs/libusb</pkg></flag>
<flag name="usbredir">Use <pkg>sys-apps/usbredir</pkg> to redirect USB devices to another machine over TCP</flag>
<flag name='uuid'>Enable UUID support in the vdi block driver</flag>
<flag name='vde'>Enable VDE-based networking</flag>
<flag name='vhost-net'>Enable accelerated networking using vhost-net, see http://www.linux-kvm.org/page/VhostNet</flag>
<flag name='virtfs'>Enable VirtFS via virtio-9p-pci / fsdev. See http://wiki.qemu.org/Documentation/9psetup</flag>
<flag name='vte'>Enable terminal support (<pkg>x11-libs/vte</pkg>) in the GTK+ interface</flag>
<flag name='xattr'>Add support for getting and setting POSIX extended attributes, through
<flag name="uuid">Enable UUID support in the vdi block driver</flag>
<flag name="vde">Enable VDE-based networking</flag>
<flag name="vhost-net">Enable accelerated networking using vhost-net, see http://www.linux-kvm.org/page/VhostNet</flag>
<flag name="virtfs">Enable VirtFS via virtio-9p-pci / fsdev. See http://wiki.qemu.org/Documentation/9psetup</flag>
<flag name="vte">Enable terminal support (<pkg>x11-libs/vte</pkg>) in the GTK+ interface</flag>
<flag name="xattr">Add support for getting and setting POSIX extended attributes, through
<pkg>sys-apps/attr</pkg>. Requisite for the virtfs backend.
</flag>
<flag name='xen'>Enables support for Xen backends</flag>
<flag name='xfs'>Support xfsctl() notification and syncing for XFS backed
<flag name="xen">Enables support for Xen backends</flag>
<flag name="xfs">Support xfsctl() notification and syncing for XFS backed
virtual disks.</flag>
</use>
</pkgmetadata>

View File

@ -1,6 +1,6 @@
# Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/app-emulation/qemu/qemu-2.3.0-r5.ebuild,v 1.4 2015/08/05 06:43:00 vapier Exp $
# $Id$
EAPI=5
@ -19,7 +19,7 @@ if [[ ${PV} = *9999* ]]; then
else
SRC_URI="http://wiki.qemu-project.org/download/${P}.tar.bz2
${BACKPORTS:+
http://dev.gentoo.org/~cardoe/distfiles/${P}-${BACKPORTS}.tar.xz}"
https://dev.gentoo.org/~cardoe/distfiles/${P}-${BACKPORTS}.tar.xz}"
KEYWORDS="amd64 ~ppc ~ppc64 x86 ~x86-fbsd"
fi
@ -77,7 +77,7 @@ SOFTMMU_LIB_DEPEND="${COMMON_LIB_DEPEND}
infiniband? ( sys-infiniband/librdmacm:=[static-libs(+)] )
jpeg? ( virtual/jpeg:=[static-libs(+)] )
lzo? ( dev-libs/lzo:2[static-libs(+)] )
ncurses? ( sys-libs/ncurses[static-libs(+)] )
ncurses? ( sys-libs/ncurses:0=[static-libs(+)] )
nfs? ( >=net-fs/libnfs-1.9.3[static-libs(+)] )
numa? ( sys-process/numactl[static-libs(+)] )
png? ( media-libs/libpng:0=[static-libs(+)] )
@ -89,7 +89,7 @@ SOFTMMU_LIB_DEPEND="${COMMON_LIB_DEPEND}
spice? ( >=app-emulation/spice-0.12.0[static-libs(+)] )
ssh? ( >=net-libs/libssh2-1.2.8[static-libs(+)] )
tls? ( net-libs/gnutls[static-libs(+)] )
usb? ( >=dev-libs/libusb-1.0.18[static-libs(+)] )
usb? ( >=virtual/libusb-1-r1[static-libs(+)] )
uuid? ( >=sys-apps/util-linux-2.16.0[static-libs(+)] )
vde? ( net-misc/vde[static-libs(+)] )
xfs? ( sys-fs/xfsprogs[static-libs(+)] )"

View File

@ -1,6 +1,6 @@
# Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/app-emulation/qemu/qemu-2.3.0-r4.ebuild,v 1.3 2015/07/28 15:04:54 ago Exp $
# $Id$
EAPI=5
@ -19,8 +19,8 @@ if [[ ${PV} = *9999* ]]; then
else
SRC_URI="http://wiki.qemu-project.org/download/${P}.tar.bz2
${BACKPORTS:+
http://dev.gentoo.org/~cardoe/distfiles/${P}-${BACKPORTS}.tar.xz}"
KEYWORDS="amd64 ~ppc ~ppc64 x86 ~x86-fbsd"
https://dev.gentoo.org/~cardoe/distfiles/${P}-${BACKPORTS}.tar.xz}"
KEYWORDS="~amd64 ~ppc ~ppc64 ~x86 ~x86-fbsd"
fi
DESCRIPTION="QEMU + Kernel-based Virtual Machine userland tools"
@ -77,7 +77,7 @@ SOFTMMU_LIB_DEPEND="${COMMON_LIB_DEPEND}
infiniband? ( sys-infiniband/librdmacm:=[static-libs(+)] )
jpeg? ( virtual/jpeg:=[static-libs(+)] )
lzo? ( dev-libs/lzo:2[static-libs(+)] )
ncurses? ( sys-libs/ncurses[static-libs(+)] )
ncurses? ( sys-libs/ncurses:0=[static-libs(+)] )
nfs? ( >=net-fs/libnfs-1.9.3[static-libs(+)] )
numa? ( sys-process/numactl[static-libs(+)] )
png? ( media-libs/libpng:0=[static-libs(+)] )
@ -89,7 +89,7 @@ SOFTMMU_LIB_DEPEND="${COMMON_LIB_DEPEND}
spice? ( >=app-emulation/spice-0.12.0[static-libs(+)] )
ssh? ( >=net-libs/libssh2-1.2.8[static-libs(+)] )
tls? ( net-libs/gnutls[static-libs(+)] )
usb? ( >=dev-libs/libusb-1.0.18[static-libs(+)] )
usb? ( >=virtual/libusb-1-r1[static-libs(+)] )
uuid? ( >=sys-apps/util-linux-2.16.0[static-libs(+)] )
vde? ( net-misc/vde[static-libs(+)] )
xfs? ( sys-fs/xfsprogs[static-libs(+)] )"
@ -263,7 +263,16 @@ src_prepare() {
epatch "${FILESDIR}"/${P}-CVE-2015-3214.patch #556052
epatch "${FILESDIR}"/${P}-CVE-2015-5154-1.patch #556050 / #555532
epatch "${FILESDIR}"/${P}-CVE-2015-5154-2.patch #556050 / #555532
epatch "${FILESDIR}"/${P}-CVE-2015-5154-3.patch #556050 / #555532`
epatch "${FILESDIR}"/${P}-CVE-2015-5154-3.patch #556050 / #555532
epatch "${FILESDIR}"/${P}-CVE-2015-5165-1.patch #556304
epatch "${FILESDIR}"/${P}-CVE-2015-5165-2.patch #556304
epatch "${FILESDIR}"/${P}-CVE-2015-5165-3.patch #556304
epatch "${FILESDIR}"/${P}-CVE-2015-5165-4.patch #556304
epatch "${FILESDIR}"/${P}-CVE-2015-5165-5.patch #556304
epatch "${FILESDIR}"/${P}-CVE-2015-5165-6.patch #556304
epatch "${FILESDIR}"/${P}-CVE-2015-5165-7.patch #556304
epatch "${FILESDIR}"/${P}-CVE-2015-5166.patch #556304
epatch "${FILESDIR}"/${P}-virtio-serial.patch #557206
[[ -n ${BACKPORTS} ]] && \
EPATCH_FORCE=yes EPATCH_SUFFIX="patch" EPATCH_SOURCE="${S}/patches" \
epatch
@ -520,6 +529,7 @@ src_install() {
newdoc pc-bios/README README.pc-bios
dodoc docs/qmp/*.txt
if [[ -n ${softmmu_targets} ]]; then
# Remove SeaBIOS since we're using the SeaBIOS packaged one
rm "${ED}/usr/share/qemu/bios.bin"
if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
@ -527,7 +537,6 @@ src_install() {
fi
# Remove vgabios since we're using the vgabios packaged one
if [[ -n ${softmmu_targets} ]]; then
rm "${ED}/usr/share/qemu/vgabios.bin"
rm "${ED}/usr/share/qemu/vgabios-cirrus.bin"
rm "${ED}/usr/share/qemu/vgabios-qxl.bin"

View File

@ -0,0 +1,602 @@
# Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
EAPI=5
PYTHON_COMPAT=( python2_7 )
PYTHON_REQ_USE="ncurses,readline"
inherit eutils flag-o-matic linux-info toolchain-funcs multilib python-r1 \
user udev fcaps readme.gentoo pax-utils
BACKPORTS=
if [[ ${PV} = *9999* ]]; then
EGIT_REPO_URI="git://git.qemu.org/qemu.git"
inherit git-2
SRC_URI=""
else
SRC_URI="http://wiki.qemu-project.org/download/${P}.tar.bz2
${BACKPORTS:+
https://dev.gentoo.org/~cardoe/distfiles/${P}-${BACKPORTS}.tar.xz}"
KEYWORDS="~amd64 ~ppc ~ppc64 ~x86 ~x86-fbsd"
fi
DESCRIPTION="QEMU + Kernel-based Virtual Machine userland tools"
HOMEPAGE="http://www.qemu.org http://www.linux-kvm.org"
LICENSE="GPL-2 LGPL-2 BSD-2"
SLOT="0"
IUSE="accessibility +aio alsa bluetooth +caps +curl debug +fdt glusterfs \
gtk gtk2 infiniband iscsi +jpeg \
kernel_linux kernel_FreeBSD lzo ncurses nfs nls numa opengl +pin-upstream-blobs
+png pulseaudio python \
rbd sasl +seccomp sdl selinux smartcard snappy spice ssh static static-softmmu \
static-user systemtap tci test +threads tls usb usbredir +uuid vde +vhost-net \
virtfs +vnc xattr xen xfs"
COMMON_TARGETS="aarch64 alpha arm cris i386 m68k microblaze microblazeel mips
mips64 mips64el mipsel or32 ppc ppc64 s390x sh4 sh4eb sparc sparc64 unicore32
x86_64"
IUSE_SOFTMMU_TARGETS="${COMMON_TARGETS} lm32 moxie ppcemb xtensa xtensaeb"
IUSE_USER_TARGETS="${COMMON_TARGETS} armeb mipsn32 mipsn32el ppc64abi32 sparc32plus"
use_softmmu_targets=$(printf ' qemu_softmmu_targets_%s' ${IUSE_SOFTMMU_TARGETS})
use_user_targets=$(printf ' qemu_user_targets_%s' ${IUSE_USER_TARGETS})
IUSE+=" ${use_softmmu_targets} ${use_user_targets}"
# Require at least one softmmu or user target.
# Block USE flag configurations known to not work.
REQUIRED_USE="|| ( ${use_softmmu_targets} ${use_user_targets} )
${PYTHON_REQUIRED_USE}
gtk2? ( gtk )
qemu_softmmu_targets_arm? ( fdt )
qemu_softmmu_targets_microblaze? ( fdt )
qemu_softmmu_targets_ppc? ( fdt )
qemu_softmmu_targets_ppc64? ( fdt )
static? ( static-softmmu static-user )
static-softmmu? ( !alsa !pulseaudio !bluetooth !opengl !gtk !gtk2 )
virtfs? ( xattr )"
# Yep, you need both libcap and libcap-ng since virtfs only uses libcap.
#
# The attr lib isn't always linked in (although the USE flag is always
# respected). This is because qemu supports using the C library's API
# when available rather than always using the extranl library.
COMMON_LIB_DEPEND=">=dev-libs/glib-2.0[static-libs(+)]
sys-libs/zlib[static-libs(+)]
xattr? ( sys-apps/attr[static-libs(+)] )"
SOFTMMU_LIB_DEPEND="${COMMON_LIB_DEPEND}
>=x11-libs/pixman-0.28.0[static-libs(+)]
aio? ( dev-libs/libaio[static-libs(+)] )
caps? ( sys-libs/libcap-ng[static-libs(+)] )
curl? ( >=net-misc/curl-7.15.4[static-libs(+)] )
fdt? ( >=sys-apps/dtc-1.4.0[static-libs(+)] )
glusterfs? ( >=sys-cluster/glusterfs-3.4.0[static-libs(+)] )
infiniband? ( sys-infiniband/librdmacm:=[static-libs(+)] )
jpeg? ( virtual/jpeg:=[static-libs(+)] )
lzo? ( dev-libs/lzo:2[static-libs(+)] )
ncurses? ( sys-libs/ncurses:0=[static-libs(+)] )
nfs? ( >=net-fs/libnfs-1.9.3[static-libs(+)] )
numa? ( sys-process/numactl[static-libs(+)] )
png? ( media-libs/libpng:0=[static-libs(+)] )
rbd? ( sys-cluster/ceph[static-libs(+)] )
sasl? ( dev-libs/cyrus-sasl[static-libs(+)] )
sdl? ( >=media-libs/libsdl-1.2.11[static-libs(+)] )
seccomp? ( >=sys-libs/libseccomp-2.1.0[static-libs(+)] )
snappy? ( app-arch/snappy[static-libs(+)] )
spice? ( >=app-emulation/spice-0.12.0[static-libs(+)] )
ssh? ( >=net-libs/libssh2-1.2.8[static-libs(+)] )
tls? ( net-libs/gnutls[static-libs(+)] )
usb? ( >=virtual/libusb-1-r1[static-libs(+)] )
uuid? ( >=sys-apps/util-linux-2.16.0[static-libs(+)] )
vde? ( net-misc/vde[static-libs(+)] )
xfs? ( sys-fs/xfsprogs[static-libs(+)] )"
USER_LIB_DEPEND="${COMMON_LIB_DEPEND}"
X86_FIRMWARE_DEPEND="
>=sys-firmware/ipxe-1.0.0_p20130624
pin-upstream-blobs? (
~sys-firmware/seabios-1.7.5
~sys-firmware/sgabios-0.1_pre8
~sys-firmware/vgabios-0.7a
)
!pin-upstream-blobs? (
sys-firmware/seabios
sys-firmware/sgabios
sys-firmware/vgabios
)"
CDEPEND="
!static-softmmu? ( $(printf "%s? ( ${SOFTMMU_LIB_DEPEND//\[static-libs(+)]} ) " ${use_softmmu_targets}) )
!static-user? ( $(printf "%s? ( ${USER_LIB_DEPEND//\[static-libs(+)]} ) " ${use_user_targets}) )
qemu_softmmu_targets_i386? ( ${X86_FIRMWARE_DEPEND} )
qemu_softmmu_targets_x86_64? ( ${X86_FIRMWARE_DEPEND} )
accessibility? ( app-accessibility/brltty )
alsa? ( >=media-libs/alsa-lib-1.0.13 )
bluetooth? ( net-wireless/bluez )
gtk? (
gtk2? ( x11-libs/gtk+:2 )
!gtk2? ( x11-libs/gtk+:3 )
x11-libs/vte:2.90
)
iscsi? ( net-libs/libiscsi )
opengl? ( virtual/opengl )
pulseaudio? ( media-sound/pulseaudio )
python? ( ${PYTHON_DEPS} )
sdl? ( media-libs/libsdl[X] )
smartcard? ( dev-libs/nss !app-emulation/libcacard )
spice? ( >=app-emulation/spice-protocol-0.12.3 )
systemtap? ( dev-util/systemtap )
usbredir? ( >=sys-apps/usbredir-0.6 )
virtfs? ( sys-libs/libcap )
xen? ( app-emulation/xen-tools )"
DEPEND="${CDEPEND}
dev-lang/perl
=dev-lang/python-2*
sys-apps/texinfo
virtual/pkgconfig
kernel_linux? ( >=sys-kernel/linux-headers-2.6.35 )
gtk? ( nls? ( sys-devel/gettext ) )
static-softmmu? ( $(printf "%s? ( ${SOFTMMU_LIB_DEPEND} ) " ${use_softmmu_targets}) )
static-user? ( $(printf "%s? ( ${USER_LIB_DEPEND} ) " ${use_user_targets}) )
test? (
dev-libs/glib[utils]
sys-devel/bc
)"
RDEPEND="${CDEPEND}
selinux? ( sec-policy/selinux-qemu )
"
STRIP_MASK="/usr/share/qemu/palcode-clipper"
QA_PREBUILT="
usr/share/qemu/openbios-ppc
usr/share/qemu/openbios-sparc64
usr/share/qemu/openbios-sparc32
usr/share/qemu/palcode-clipper
usr/share/qemu/s390-ccw.img
usr/share/qemu/u-boot.e500
"
QA_WX_LOAD="usr/bin/qemu-i386
usr/bin/qemu-x86_64
usr/bin/qemu-alpha
usr/bin/qemu-arm
usr/bin/qemu-cris
usr/bin/qemu-m68k
usr/bin/qemu-microblaze
usr/bin/qemu-microblazeel
usr/bin/qemu-mips
usr/bin/qemu-mipsel
usr/bin/qemu-or32
usr/bin/qemu-ppc
usr/bin/qemu-ppc64
usr/bin/qemu-ppc64abi32
usr/bin/qemu-sh4
usr/bin/qemu-sh4eb
usr/bin/qemu-sparc
usr/bin/qemu-sparc64
usr/bin/qemu-armeb
usr/bin/qemu-sparc32plus
usr/bin/qemu-s390x
usr/bin/qemu-unicore32"
DOC_CONTENTS="If you don't have kvm compiled into the kernel, make sure
you have the kernel module loaded before running kvm. The easiest way to
ensure that the kernel module is loaded is to load it on boot.\n
For AMD CPUs the module is called 'kvm-amd'\n
For Intel CPUs the module is called 'kvm-intel'\n
Please review /etc/conf.d/modules for how to load these\n\n
Make sure your user is in the 'kvm' group\n
Just run 'gpasswd -a <USER> kvm', then have <USER> re-login."
qemu_support_kvm() {
if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386 \
use qemu_softmmu_targets_ppc || use qemu_softmmu_targets_ppc64 \
use qemu_softmmu_targets_s390x; then
return 0
fi
return 1
}
pkg_pretend() {
if use kernel_linux && kernel_is lt 2 6 25; then
eerror "This version of KVM requres a host kernel of 2.6.25 or higher."
elif use kernel_linux; then
if ! linux_config_exists; then
eerror "Unable to check your kernel for KVM support"
else
CONFIG_CHECK="~KVM ~TUN ~BRIDGE"
ERROR_KVM="You must enable KVM in your kernel to continue"
ERROR_KVM_AMD="If you have an AMD CPU, you must enable KVM_AMD in"
ERROR_KVM_AMD+=" your kernel configuration."
ERROR_KVM_INTEL="If you have an Intel CPU, you must enable"
ERROR_KVM_INTEL+=" KVM_INTEL in your kernel configuration."
ERROR_TUN="You will need the Universal TUN/TAP driver compiled"
ERROR_TUN+=" into your kernel or loaded as a module to use the"
ERROR_TUN+=" virtual network device if using -net tap."
ERROR_BRIDGE="You will also need support for 802.1d"
ERROR_BRIDGE+=" Ethernet Bridging for some network configurations."
use vhost-net && CONFIG_CHECK+=" ~VHOST_NET"
ERROR_VHOST_NET="You must enable VHOST_NET to have vhost-net"
ERROR_VHOST_NET+=" support"
if use amd64 || use x86 || use amd64-linux || use x86-linux; then
CONFIG_CHECK+=" ~KVM_AMD ~KVM_INTEL"
fi
use python && CONFIG_CHECK+=" ~DEBUG_FS"
ERROR_DEBUG_FS="debugFS support required for kvm_stat"
# Now do the actual checks setup above
check_extra_config
fi
fi
if grep -qs '/usr/bin/qemu-kvm' "${EROOT}"/etc/libvirt/qemu/*.xml; then
eerror "The kvm/qemu-kvm wrappers no longer exist, but your libvirt"
eerror "instances are still pointing to it. Please update your"
eerror "configs in /etc/libvirt/qemu/ to use the -enable-kvm flag"
eerror "and the right system binary (e.g. qemu-system-x86_64)."
die "update your virt configs to not use qemu-kvm"
fi
}
pkg_setup() {
enewgroup kvm 78
}
src_prepare() {
# Alter target makefiles to accept CFLAGS set via flag-o
sed -i -r \
-e 's/^(C|OP_C|HELPER_C)FLAGS=/\1FLAGS+=/' \
Makefile Makefile.target || die
# Cheap hack to disable gettext .mo generation.
use nls || rm -f po/*.po
epatch "${FILESDIR}"/qemu-1.7.0-cflags.patch
epatch "${FILESDIR}"/${PN}-2.3.0-CVE-2015-3209.patch #551752
epatch "${FILESDIR}"/${PN}-2.3.0-virtio-serial.patch #557206
[[ -n ${BACKPORTS} ]] && \
EPATCH_FORCE=yes EPATCH_SUFFIX="patch" EPATCH_SOURCE="${S}/patches" \
epatch
# Fix ld and objcopy being called directly
tc-export AR LD OBJCOPY
# Verbose builds
MAKEOPTS+=" V=1"
epatch_user
}
##
# configures qemu based on the build directory and the build type
# we are using.
#
qemu_src_configure() {
debug-print-function ${FUNCNAME} "$@"
local buildtype=$1
local builddir=$2
local static_flag="static-${buildtype}"
# audio options
local audio_opts="oss"
use alsa && audio_opts="alsa,${audio_opts}"
use sdl && audio_opts="sdl,${audio_opts}"
use pulseaudio && audio_opts="pa,${audio_opts}"
local conf_opts=(
--prefix=/usr
--sysconfdir=/etc
--libdir=/usr/$(get_libdir)
--docdir=/usr/share/doc/${PF}/html
--disable-bsd-user
--disable-guest-agent
--disable-strip
--disable-werror
--python="${PYTHON}"
--cc="$(tc-getCC)"
--cxx="$(tc-getCXX)"
--host-cc="$(tc-getBUILD_CC)"
$(use_enable debug debug-info)
$(use_enable debug debug-tcg)
--enable-docs
$(use_enable tci tcg-interpreter)
$(use_enable xattr attr)
)
# Disable options not used by user targets as the default configure
# options will autoprobe and try to link in a bunch of unused junk.
conf_softmmu() {
if [[ ${buildtype} == "user" ]] ; then
echo "--disable-${2:-$1}"
else
use_enable "$@"
fi
}
conf_opts+=(
$(conf_softmmu accessibility brlapi)
$(conf_softmmu aio linux-aio)
$(conf_softmmu bluetooth bluez)
$(conf_softmmu caps cap-ng)
$(conf_softmmu curl)
$(conf_softmmu fdt)
$(conf_softmmu glusterfs)
$(conf_softmmu gtk)
$(conf_softmmu infiniband rdma)
$(conf_softmmu iscsi libiscsi)
$(conf_softmmu jpeg vnc-jpeg)
$(conf_softmmu kernel_linux kvm)
$(conf_softmmu lzo)
$(conf_softmmu ncurses curses)
$(conf_softmmu nfs libnfs)
$(conf_softmmu numa)
$(conf_softmmu opengl)
$(conf_softmmu png vnc-png)
$(conf_softmmu rbd)
$(conf_softmmu sasl vnc-sasl)
$(conf_softmmu sdl)
$(conf_softmmu seccomp)
$(conf_softmmu smartcard smartcard-nss)
$(conf_softmmu snappy)
$(conf_softmmu spice)
$(conf_softmmu ssh libssh2)
$(conf_softmmu tls quorum)
$(conf_softmmu tls vnc-tls)
$(conf_softmmu tls vnc-ws)
$(conf_softmmu usb libusb)
$(conf_softmmu usbredir usb-redir)
$(conf_softmmu uuid)
$(conf_softmmu vde)
$(conf_softmmu vhost-net)
$(conf_softmmu virtfs)
$(conf_softmmu vnc)
$(conf_softmmu xen)
$(conf_softmmu xen xen-pci-passthrough)
$(conf_softmmu xfs xfsctl)
)
case ${buildtype} in
user)
conf_opts+=(
--enable-linux-user
--disable-system
--target-list="${user_targets}"
--disable-blobs
--disable-tools
)
;;
softmmu)
conf_opts+=(
--disable-linux-user
--enable-system
--target-list="${softmmu_targets}"
--with-system-pixman
--audio-drv-list="${audio_opts}"
)
use gtk && conf_opts+=( --with-gtkabi=$(usex gtk2 2.0 3.0) )
;;
esac
# Add support for SystemTAP
use systemtap && conf_opts+=( --enable-trace-backend=dtrace )
# We always want to attempt to build with PIE support as it results
# in a more secure binary. But it doesn't work with static or if
# the current GCC doesn't have PIE support.
if use ${static_flag}; then
conf_opts+=( --static --disable-pie )
else
gcc-specs-pie && conf_opts+=( --enable-pie )
fi
einfo "../configure ${conf_opts[*]}"
cd "${builddir}"
../configure "${conf_opts[@]}" || die "configure failed"
# FreeBSD's kernel does not support QEMU assigning/grabbing
# host USB devices yet
use kernel_FreeBSD && \
sed -i -E -e "s|^(HOST_USB=)bsd|\1stub|" "${S}"/config-host.mak
}
src_configure() {
local target
python_setup
softmmu_targets= softmmu_bins=()
user_targets= user_bins=()
for target in ${IUSE_SOFTMMU_TARGETS} ; do
if use "qemu_softmmu_targets_${target}"; then
softmmu_targets+=",${target}-softmmu"
softmmu_bins+=( "qemu-system-${target}" )
fi
done
for target in ${IUSE_USER_TARGETS} ; do
if use "qemu_user_targets_${target}"; then
user_targets+=",${target}-linux-user"
user_bins+=( "qemu-${target}" )
fi
done
[[ -n ${softmmu_targets} ]] && \
einfo "Building the following softmmu targets: ${softmmu_targets}"
[[ -n ${user_targets} ]] && \
einfo "Building the following user targets: ${user_targets}"
if [[ -n ${softmmu_targets} ]]; then
mkdir "${S}/softmmu-build"
qemu_src_configure "softmmu" "${S}/softmmu-build"
fi
if [[ -n ${user_targets} ]]; then
mkdir "${S}/user-build"
qemu_src_configure "user" "${S}/user-build"
fi
}
src_compile() {
if [[ -n ${user_targets} ]]; then
cd "${S}/user-build"
default
fi
if [[ -n ${softmmu_targets} ]]; then
cd "${S}/softmmu-build"
default
fi
}
src_test() {
if [[ -n ${softmmu_targets} ]]; then
cd "${S}/softmmu-build"
pax-mark m */qemu-system-* #515550
emake -j1 check
emake -j1 check-report.html
fi
}
qemu_python_install() {
python_domodule "${S}/scripts/qmp/qmp.py"
python_doscript "${S}/scripts/kvm/kvm_stat"
python_doscript "${S}/scripts/kvm/vmxcap"
python_doscript "${S}/scripts/qmp/qmp-shell"
python_doscript "${S}/scripts/qmp/qemu-ga-client"
}
src_install() {
if [[ -n ${user_targets} ]]; then
cd "${S}/user-build"
emake DESTDIR="${ED}" install
# Install binfmt handler init script for user targets
newinitd "${FILESDIR}/qemu-binfmt.initd-r1" qemu-binfmt
fi
if [[ -n ${softmmu_targets} ]]; then
cd "${S}/softmmu-build"
emake DESTDIR="${ED}" install
# This might not exist if the test failed. #512010
[[ -e check-report.html ]] && dohtml check-report.html
if use kernel_linux; then
udev_dorules "${FILESDIR}"/65-kvm.rules
fi
if use python; then
python_foreach_impl qemu_python_install
fi
fi
# Disable mprotect on the qemu binaries as they use JITs to be fast #459348
pushd "${ED}"/usr/bin >/dev/null
pax-mark m "${softmmu_bins[@]}" "${user_bins[@]}"
popd >/dev/null
# Install config file example for qemu-bridge-helper
insinto "/etc/qemu"
doins "${FILESDIR}/bridge.conf"
# Remove the docdir placed qmp-commands.txt
mv "${ED}/usr/share/doc/${PF}/html/qmp-commands.txt" "${S}/docs/qmp/"
cd "${S}"
dodoc Changelog MAINTAINERS docs/specs/pci-ids.txt
newdoc pc-bios/README README.pc-bios
dodoc docs/qmp/*.txt
if [[ -n ${softmmu_targets} ]]; then
# Remove SeaBIOS since we're using the SeaBIOS packaged one
rm "${ED}/usr/share/qemu/bios.bin"
if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
dosym ../seabios/bios.bin /usr/share/qemu/bios.bin
fi
# Remove vgabios since we're using the vgabios packaged one
rm "${ED}/usr/share/qemu/vgabios.bin"
rm "${ED}/usr/share/qemu/vgabios-cirrus.bin"
rm "${ED}/usr/share/qemu/vgabios-qxl.bin"
rm "${ED}/usr/share/qemu/vgabios-stdvga.bin"
rm "${ED}/usr/share/qemu/vgabios-vmware.bin"
if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
dosym ../vgabios/vgabios.bin /usr/share/qemu/vgabios.bin
dosym ../vgabios/vgabios-cirrus.bin /usr/share/qemu/vgabios-cirrus.bin
dosym ../vgabios/vgabios-qxl.bin /usr/share/qemu/vgabios-qxl.bin
dosym ../vgabios/vgabios-stdvga.bin /usr/share/qemu/vgabios-stdvga.bin
dosym ../vgabios/vgabios-vmware.bin /usr/share/qemu/vgabios-vmware.bin
fi
# Remove sgabios since we're using the sgabios packaged one
rm "${ED}/usr/share/qemu/sgabios.bin"
if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
dosym ../sgabios/sgabios.bin /usr/share/qemu/sgabios.bin
fi
# Remove iPXE since we're using the iPXE packaged one
rm "${ED}"/usr/share/qemu/pxe-*.rom
if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
dosym ../ipxe/8086100e.rom /usr/share/qemu/pxe-e1000.rom
dosym ../ipxe/80861209.rom /usr/share/qemu/pxe-eepro100.rom
dosym ../ipxe/10500940.rom /usr/share/qemu/pxe-ne2k_pci.rom
dosym ../ipxe/10222000.rom /usr/share/qemu/pxe-pcnet.rom
dosym ../ipxe/10ec8139.rom /usr/share/qemu/pxe-rtl8139.rom
dosym ../ipxe/1af41000.rom /usr/share/qemu/pxe-virtio.rom
fi
fi
qemu_support_kvm && readme.gentoo_create_doc
}
pkg_postinst() {
if qemu_support_kvm; then
readme.gentoo_print_elog
ewarn "Migration from qemu-kvm instances and loading qemu-kvm created"
ewarn "save states has been removed starting with the 1.6.2 release"
ewarn
ewarn "It is recommended that you migrate any VMs that may be running"
ewarn "on qemu-kvm to a host with a newer qemu and regenerate"
ewarn "any saved states with a newer qemu."
ewarn
ewarn "qemu-kvm was the primary qemu provider in Gentoo through 1.2.x"
if use x86 || use amd64; then
ewarn
ewarn "The /usr/bin/kvm and /usr/bin/qemu-kvm wrappers are no longer"
ewarn "installed. In order to use kvm acceleration, pass the flag"
ewarn "-enable-kvm when running your system target."
fi
fi
if [[ -n ${softmmu_targets} ]] && use kernel_linux; then
udev_reload
fi
fcaps cap_net_admin /usr/libexec/qemu-bridge-helper
if use virtfs && [ -n "${softmmu_targets}" ]; then
local virtfs_caps="cap_chown,cap_dac_override,cap_fowner,cap_fsetid,cap_setgid,cap_mknod,cap_setuid"
fcaps ${virtfs_caps} /usr/bin/virtfs-proxy-helper
fi
}
pkg_info() {
echo "Using:"
echo " $(best_version app-emulation/spice-protocol)"
echo " $(best_version sys-firmware/ipxe)"
echo " $(best_version sys-firmware/seabios)"
if has_version sys-firmware/seabios[binary]; then
echo " USE=binary"
else
echo " USE=''"
fi
echo " $(best_version sys-firmware/vgabios)"
}

View File

@ -0,0 +1,644 @@
# Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
EAPI=5
PYTHON_COMPAT=( python2_7 )
PYTHON_REQ_USE="ncurses,readline"
inherit eutils flag-o-matic linux-info toolchain-funcs multilib python-r1 \
user udev fcaps readme.gentoo pax-utils
BACKPORTS=
if [[ ${PV} = *9999* ]]; then
EGIT_REPO_URI="git://git.qemu.org/qemu.git"
inherit git-2
SRC_URI=""
else
SRC_URI="http://wiki.qemu-project.org/download/${P}.tar.bz2
${BACKPORTS:+
https://dev.gentoo.org/~cardoe/distfiles/${P}-${BACKPORTS}.tar.xz}"
KEYWORDS="amd64 ~ppc ~ppc64 x86 ~x86-fbsd"
fi
DESCRIPTION="QEMU + Kernel-based Virtual Machine userland tools"
HOMEPAGE="http://www.qemu.org http://www.linux-kvm.org"
LICENSE="GPL-2 LGPL-2 BSD-2"
SLOT="0"
IUSE="accessibility +aio alsa bluetooth +caps +curl debug +fdt glusterfs \
gtk gtk2 infiniband iscsi +jpeg \
kernel_linux kernel_FreeBSD lzo ncurses nfs nls numa opengl +pin-upstream-blobs
+png pulseaudio python \
rbd sasl +seccomp sdl sdl2 selinux smartcard snappy spice ssh static static-softmmu
static-user systemtap tci test +threads tls usb usbredir +uuid vde +vhost-net \
virtfs +vnc vte xattr xen xfs"
COMMON_TARGETS="aarch64 alpha arm cris i386 m68k microblaze microblazeel mips
mips64 mips64el mipsel or32 ppc ppc64 s390x sh4 sh4eb sparc sparc64 unicore32
x86_64"
IUSE_SOFTMMU_TARGETS="${COMMON_TARGETS} lm32 moxie ppcemb tricore xtensa xtensaeb"
IUSE_USER_TARGETS="${COMMON_TARGETS} armeb mipsn32 mipsn32el ppc64abi32 ppc64le sparc32plus"
use_softmmu_targets=$(printf ' qemu_softmmu_targets_%s' ${IUSE_SOFTMMU_TARGETS})
use_user_targets=$(printf ' qemu_user_targets_%s' ${IUSE_USER_TARGETS})
IUSE+=" ${use_softmmu_targets} ${use_user_targets}"
# Allow no targets to be built so that people can get a tools-only build.
# Block USE flag configurations known to not work.
REQUIRED_USE="${PYTHON_REQUIRED_USE}
gtk2? ( gtk )
qemu_softmmu_targets_arm? ( fdt )
qemu_softmmu_targets_microblaze? ( fdt )
qemu_softmmu_targets_ppc? ( fdt )
qemu_softmmu_targets_ppc64? ( fdt )
sdl2? ( sdl )
static? ( static-softmmu static-user )
static-softmmu? ( !alsa !pulseaudio !bluetooth !opengl !gtk !gtk2 )
virtfs? ( xattr )
vte? ( gtk )"
# Yep, you need both libcap and libcap-ng since virtfs only uses libcap.
#
# The attr lib isn't always linked in (although the USE flag is always
# respected). This is because qemu supports using the C library's API
# when available rather than always using the extranl library.
COMMON_LIB_DEPEND=">=dev-libs/glib-2.0[static-libs(+)]
sys-libs/zlib[static-libs(+)]
xattr? ( sys-apps/attr[static-libs(+)] )"
SOFTMMU_LIB_DEPEND="${COMMON_LIB_DEPEND}
>=x11-libs/pixman-0.28.0[static-libs(+)]
accessibility? ( app-accessibility/brltty[static-libs(+)] )
aio? ( dev-libs/libaio[static-libs(+)] )
alsa? ( >=media-libs/alsa-lib-1.0.13 )
bluetooth? ( net-wireless/bluez )
caps? ( sys-libs/libcap-ng[static-libs(+)] )
curl? ( >=net-misc/curl-7.15.4[static-libs(+)] )
fdt? ( >=sys-apps/dtc-1.4.0[static-libs(+)] )
glusterfs? ( >=sys-cluster/glusterfs-3.4.0[static-libs(+)] )
gtk? (
gtk2? (
x11-libs/gtk+:2
vte? ( x11-libs/vte:0 )
)
!gtk2? (
x11-libs/gtk+:3
vte? ( x11-libs/vte:2.90 )
)
)
infiniband? ( sys-infiniband/librdmacm:=[static-libs(+)] )
iscsi? ( net-libs/libiscsi )
jpeg? ( virtual/jpeg:=[static-libs(+)] )
lzo? ( dev-libs/lzo:2[static-libs(+)] )
ncurses? ( sys-libs/ncurses:0=[static-libs(+)] )
nfs? ( >=net-fs/libnfs-1.9.3[static-libs(+)] )
numa? ( sys-process/numactl[static-libs(+)] )
opengl? (
virtual/opengl
media-libs/libepoxy[static-libs(+)]
media-libs/mesa[static-libs(+)]
media-libs/mesa[egl,gles2]
)
png? ( media-libs/libpng:0=[static-libs(+)] )
pulseaudio? ( media-sound/pulseaudio )
rbd? ( sys-cluster/ceph[static-libs(+)] )
sasl? ( dev-libs/cyrus-sasl[static-libs(+)] )
sdl? (
!sdl2? (
media-libs/libsdl[X]
>=media-libs/libsdl-1.2.11[static-libs(+)]
)
sdl2? (
media-libs/libsdl2[X]
media-libs/libsdl2[static-libs(+)]
)
)
seccomp? ( >=sys-libs/libseccomp-2.1.0[static-libs(+)] )
smartcard? ( dev-libs/nss !app-emulation/libcacard )
snappy? ( app-arch/snappy[static-libs(+)] )
spice? (
>=app-emulation/spice-protocol-0.12.3
>=app-emulation/spice-0.12.0[static-libs(+)]
)
ssh? ( >=net-libs/libssh2-1.2.8[static-libs(+)] )
tls? ( net-libs/gnutls[static-libs(+)] )
usb? ( >=virtual/libusb-1-r2[static-libs(+)] )
usbredir? ( >=sys-apps/usbredir-0.6[static-libs(+)] )
uuid? ( >=sys-apps/util-linux-2.16.0[static-libs(+)] )
vde? ( net-misc/vde[static-libs(+)] )
virtfs? ( sys-libs/libcap )
xfs? ( sys-fs/xfsprogs[static-libs(+)] )"
USER_LIB_DEPEND="${COMMON_LIB_DEPEND}"
X86_FIRMWARE_DEPEND="
>=sys-firmware/ipxe-1.0.0_p20130624
pin-upstream-blobs? (
~sys-firmware/seabios-1.8.2
~sys-firmware/sgabios-0.1_pre8
~sys-firmware/vgabios-0.7a
)
!pin-upstream-blobs? (
sys-firmware/seabios
sys-firmware/sgabios
sys-firmware/vgabios
)"
CDEPEND="
!static-softmmu? ( $(printf "%s? ( ${SOFTMMU_LIB_DEPEND//\[static-libs(+)]} ) " ${use_softmmu_targets}) )
!static-user? ( $(printf "%s? ( ${USER_LIB_DEPEND//\[static-libs(+)]} ) " ${use_user_targets}) )
qemu_softmmu_targets_i386? ( ${X86_FIRMWARE_DEPEND} )
qemu_softmmu_targets_x86_64? ( ${X86_FIRMWARE_DEPEND} )
python? ( ${PYTHON_DEPS} )
systemtap? ( dev-util/systemtap )
xen? ( app-emulation/xen-tools )"
DEPEND="${CDEPEND}
dev-lang/perl
=dev-lang/python-2*
sys-apps/texinfo
virtual/pkgconfig
kernel_linux? ( >=sys-kernel/linux-headers-2.6.35 )
gtk? ( nls? ( sys-devel/gettext ) )
static-softmmu? ( $(printf "%s? ( ${SOFTMMU_LIB_DEPEND} ) " ${use_softmmu_targets}) )
static-user? ( $(printf "%s? ( ${USER_LIB_DEPEND} ) " ${use_user_targets}) )
test? (
dev-libs/glib[utils]
sys-devel/bc
)"
RDEPEND="${CDEPEND}
selinux? ( sec-policy/selinux-qemu )
"
STRIP_MASK="/usr/share/qemu/palcode-clipper"
QA_PREBUILT="
usr/share/qemu/openbios-ppc
usr/share/qemu/openbios-sparc64
usr/share/qemu/openbios-sparc32
usr/share/qemu/palcode-clipper
usr/share/qemu/s390-ccw.img
usr/share/qemu/u-boot.e500
"
QA_WX_LOAD="usr/bin/qemu-i386
usr/bin/qemu-x86_64
usr/bin/qemu-alpha
usr/bin/qemu-arm
usr/bin/qemu-cris
usr/bin/qemu-m68k
usr/bin/qemu-microblaze
usr/bin/qemu-microblazeel
usr/bin/qemu-mips
usr/bin/qemu-mipsel
usr/bin/qemu-or32
usr/bin/qemu-ppc
usr/bin/qemu-ppc64
usr/bin/qemu-ppc64abi32
usr/bin/qemu-sh4
usr/bin/qemu-sh4eb
usr/bin/qemu-sparc
usr/bin/qemu-sparc64
usr/bin/qemu-armeb
usr/bin/qemu-sparc32plus
usr/bin/qemu-s390x
usr/bin/qemu-unicore32"
DOC_CONTENTS="If you don't have kvm compiled into the kernel, make sure
you have the kernel module loaded before running kvm. The easiest way to
ensure that the kernel module is loaded is to load it on boot.\n
For AMD CPUs the module is called 'kvm-amd'\n
For Intel CPUs the module is called 'kvm-intel'\n
Please review /etc/conf.d/modules for how to load these\n\n
Make sure your user is in the 'kvm' group\n
Just run 'gpasswd -a <USER> kvm', then have <USER> re-login."
qemu_support_kvm() {
if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386 \
use qemu_softmmu_targets_ppc || use qemu_softmmu_targets_ppc64 \
use qemu_softmmu_targets_s390x; then
return 0
fi
return 1
}
pkg_pretend() {
if use kernel_linux && kernel_is lt 2 6 25; then
eerror "This version of KVM requres a host kernel of 2.6.25 or higher."
elif use kernel_linux; then
if ! linux_config_exists; then
eerror "Unable to check your kernel for KVM support"
else
CONFIG_CHECK="~KVM ~TUN ~BRIDGE"
ERROR_KVM="You must enable KVM in your kernel to continue"
ERROR_KVM_AMD="If you have an AMD CPU, you must enable KVM_AMD in"
ERROR_KVM_AMD+=" your kernel configuration."
ERROR_KVM_INTEL="If you have an Intel CPU, you must enable"
ERROR_KVM_INTEL+=" KVM_INTEL in your kernel configuration."
ERROR_TUN="You will need the Universal TUN/TAP driver compiled"
ERROR_TUN+=" into your kernel or loaded as a module to use the"
ERROR_TUN+=" virtual network device if using -net tap."
ERROR_BRIDGE="You will also need support for 802.1d"
ERROR_BRIDGE+=" Ethernet Bridging for some network configurations."
use vhost-net && CONFIG_CHECK+=" ~VHOST_NET"
ERROR_VHOST_NET="You must enable VHOST_NET to have vhost-net"
ERROR_VHOST_NET+=" support"
if use amd64 || use x86 || use amd64-linux || use x86-linux; then
CONFIG_CHECK+=" ~KVM_AMD ~KVM_INTEL"
fi
use python && CONFIG_CHECK+=" ~DEBUG_FS"
ERROR_DEBUG_FS="debugFS support required for kvm_stat"
# Now do the actual checks setup above
check_extra_config
fi
fi
if grep -qs '/usr/bin/qemu-kvm' "${EROOT}"/etc/libvirt/qemu/*.xml; then
eerror "The kvm/qemu-kvm wrappers no longer exist, but your libvirt"
eerror "instances are still pointing to it. Please update your"
eerror "configs in /etc/libvirt/qemu/ to use the -enable-kvm flag"
eerror "and the right system binary (e.g. qemu-system-x86_64)."
die "update your virt configs to not use qemu-kvm"
fi
}
pkg_setup() {
enewgroup kvm 78
}
# Sanity check to make sure target lists are kept up-to-date.
check_targets() {
local var=$1 mak=$2
local detected sorted
pushd "${S}"/default-configs >/dev/null || die
# Force C locale until glibc is updated. #564936
detected=$(echo $(printf '%s\n' *-${mak}.mak | sed "s:-${mak}.mak::" | LC_COLLATE=C sort -u))
sorted=$(echo $(printf '%s\n' ${!var} | LC_COLLATE=C sort -u))
if [[ ${sorted} != "${detected}" ]] ; then
eerror "The ebuild needs to be kept in sync."
eerror "${var}: ${sorted}"
eerror "$(printf '%-*s' ${#var} configure): ${detected}"
die "sync ${var} to the list of targets"
fi
popd >/dev/null
}
src_prepare() {
check_targets IUSE_SOFTMMU_TARGETS softmmu
check_targets IUSE_USER_TARGETS linux-user
# Alter target makefiles to accept CFLAGS set via flag-o
sed -i -r \
-e 's/^(C|OP_C|HELPER_C)FLAGS=/\1FLAGS+=/' \
Makefile Makefile.target || die
# Cheap hack to disable gettext .mo generation.
use nls || rm -f po/*.po
epatch "${FILESDIR}"/qemu-1.7.0-cflags.patch
epatch "${FILESDIR}"/${P}-block-mirror-crash.patch #558396
epatch "${FILESDIR}"/${P}-CVE-2015-5225.patch #558416
epatch "${FILESDIR}"/${PN}-2.4.0-e1000-loop.patch #559656
[[ -n ${BACKPORTS} ]] && \
EPATCH_FORCE=yes EPATCH_SUFFIX="patch" EPATCH_SOURCE="${S}/patches" \
epatch
# Fix ld and objcopy being called directly
tc-export AR LD OBJCOPY
# Verbose builds
MAKEOPTS+=" V=1"
epatch_user
}
##
# configures qemu based on the build directory and the build type
# we are using.
#
qemu_src_configure() {
debug-print-function ${FUNCNAME} "$@"
local buildtype=$1
local builddir="${S}/${buildtype}-build"
local static_flag="static-${buildtype}"
mkdir "${builddir}"
local conf_opts=(
--prefix=/usr
--sysconfdir=/etc
--libdir=/usr/$(get_libdir)
--docdir=/usr/share/doc/${PF}/html
--disable-bsd-user
--disable-guest-agent
--disable-strip
--disable-werror
--python="${PYTHON}"
--cc="$(tc-getCC)"
--cxx="$(tc-getCXX)"
--host-cc="$(tc-getBUILD_CC)"
$(use_enable debug debug-info)
$(use_enable debug debug-tcg)
--enable-docs
$(use_enable tci tcg-interpreter)
$(use_enable xattr attr)
)
# Disable options not used by user targets as the default configure
# options will autoprobe and try to link in a bunch of unused junk.
conf_softmmu() {
if [[ ${buildtype} == "user" ]] ; then
echo "--disable-${2:-$1}"
else
use_enable "$@"
fi
}
conf_opts+=(
$(conf_softmmu accessibility brlapi)
$(conf_softmmu aio linux-aio)
$(conf_softmmu bluetooth bluez)
$(conf_softmmu caps cap-ng)
$(conf_softmmu curl)
$(conf_softmmu fdt)
$(conf_softmmu glusterfs)
$(conf_softmmu gtk)
$(conf_softmmu infiniband rdma)
$(conf_softmmu iscsi libiscsi)
$(conf_softmmu jpeg vnc-jpeg)
$(conf_softmmu kernel_linux kvm)
$(conf_softmmu lzo)
$(conf_softmmu ncurses curses)
$(conf_softmmu nfs libnfs)
$(conf_softmmu numa)
$(conf_softmmu opengl)
$(conf_softmmu png vnc-png)
$(conf_softmmu rbd)
$(conf_softmmu sasl vnc-sasl)
$(conf_softmmu sdl)
$(conf_softmmu seccomp)
$(conf_softmmu smartcard smartcard-nss)
$(conf_softmmu snappy)
$(conf_softmmu spice)
$(conf_softmmu ssh libssh2)
$(conf_softmmu tls vnc-tls)
$(conf_softmmu usb libusb)
$(conf_softmmu usbredir usb-redir)
$(conf_softmmu uuid)
$(conf_softmmu vde)
$(conf_softmmu vhost-net)
$(conf_softmmu virtfs)
$(conf_softmmu vnc)
$(conf_softmmu vte)
$(conf_softmmu xen)
$(conf_softmmu xen xen-pci-passthrough)
$(conf_softmmu xfs xfsctl)
)
case ${buildtype} in
user)
conf_opts+=(
--enable-linux-user
--disable-system
--disable-blobs
--disable-tools
)
;;
softmmu)
# audio options
local audio_opts="oss"
use alsa && audio_opts="alsa,${audio_opts}"
use sdl && audio_opts="sdl,${audio_opts}"
use pulseaudio && audio_opts="pa,${audio_opts}"
conf_opts+=(
--disable-linux-user
--enable-system
--with-system-pixman
--audio-drv-list="${audio_opts}"
)
use gtk && conf_opts+=( --with-gtkabi=$(usex gtk2 2.0 3.0) )
use sdl && conf_opts+=( --with-sdlabi=$(usex sdl2 2.0 1.2) )
;;
tools)
conf_opts+=(
--disable-linux-user
--disable-system
--disable-blobs
)
static_flag="static"
;;
esac
local targets="${buildtype}_targets"
[[ -n ${targets} ]] && conf_opts+=( --target-list="${!targets}" )
# Add support for SystemTAP
use systemtap && conf_opts+=( --enable-trace-backend=dtrace )
# We always want to attempt to build with PIE support as it results
# in a more secure binary. But it doesn't work with static or if
# the current GCC doesn't have PIE support.
if use ${static_flag}; then
conf_opts+=( --static --disable-pie )
else
gcc-specs-pie && conf_opts+=( --enable-pie )
fi
echo "../configure ${conf_opts[*]}"
cd "${builddir}"
../configure "${conf_opts[@]}" || die "configure failed"
# FreeBSD's kernel does not support QEMU assigning/grabbing
# host USB devices yet
use kernel_FreeBSD && \
sed -i -E -e "s|^(HOST_USB=)bsd|\1stub|" "${S}"/config-host.mak
}
src_configure() {
local target
python_setup
softmmu_targets= softmmu_bins=()
user_targets= user_bins=()
for target in ${IUSE_SOFTMMU_TARGETS} ; do
if use "qemu_softmmu_targets_${target}"; then
softmmu_targets+=",${target}-softmmu"
softmmu_bins+=( "qemu-system-${target}" )
fi
done
for target in ${IUSE_USER_TARGETS} ; do
if use "qemu_user_targets_${target}"; then
user_targets+=",${target}-linux-user"
user_bins+=( "qemu-${target}" )
fi
done
softmmu_targets=${softmmu_targets#,}
user_targets=${user_targets#,}
[[ -n ${softmmu_targets} ]] && qemu_src_configure "softmmu"
[[ -n ${user_targets} ]] && qemu_src_configure "user"
[[ -z ${softmmu_targets}${user_targets} ]] && qemu_src_configure "tools"
}
src_compile() {
if [[ -n ${user_targets} ]]; then
cd "${S}/user-build"
default
fi
if [[ -n ${softmmu_targets} ]]; then
cd "${S}/softmmu-build"
default
fi
if [[ -z ${softmmu_targets}${user_targets} ]]; then
cd "${S}/tools-build"
default
fi
}
src_test() {
if [[ -n ${softmmu_targets} ]]; then
cd "${S}/softmmu-build"
pax-mark m */qemu-system-* #515550
emake -j1 check
emake -j1 check-report.html
fi
}
qemu_python_install() {
python_domodule "${S}/scripts/qmp/qmp.py"
python_doscript "${S}/scripts/kvm/kvm_stat"
python_doscript "${S}/scripts/kvm/vmxcap"
python_doscript "${S}/scripts/qmp/qmp-shell"
python_doscript "${S}/scripts/qmp/qemu-ga-client"
}
src_install() {
if [[ -n ${user_targets} ]]; then
cd "${S}/user-build"
emake DESTDIR="${ED}" install
# Install binfmt handler init script for user targets
newinitd "${FILESDIR}/qemu-binfmt.initd-r1" qemu-binfmt
fi
if [[ -n ${softmmu_targets} ]]; then
cd "${S}/softmmu-build"
emake DESTDIR="${ED}" install
# This might not exist if the test failed. #512010
[[ -e check-report.html ]] && dohtml check-report.html
if use kernel_linux; then
udev_dorules "${FILESDIR}"/65-kvm.rules
fi
if use python; then
python_foreach_impl qemu_python_install
fi
fi
if [[ -z ${softmmu_targets}${user_targets} ]]; then
cd "${S}/tools-build"
emake DESTDIR="${ED}" install
fi
# Disable mprotect on the qemu binaries as they use JITs to be fast #459348
pushd "${ED}"/usr/bin >/dev/null
pax-mark m "${softmmu_bins[@]}" "${user_bins[@]}"
popd >/dev/null
# Install config file example for qemu-bridge-helper
insinto "/etc/qemu"
doins "${FILESDIR}/bridge.conf"
# Remove the docdir placed qmp-commands.txt
mv "${ED}/usr/share/doc/${PF}/html/qmp-commands.txt" "${S}/docs/qmp/"
cd "${S}"
dodoc Changelog MAINTAINERS docs/specs/pci-ids.txt
newdoc pc-bios/README README.pc-bios
dodoc docs/qmp/*.txt
if [[ -n ${softmmu_targets} ]]; then
# Remove SeaBIOS since we're using the SeaBIOS packaged one
rm "${ED}/usr/share/qemu/bios.bin"
if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
dosym ../seabios/bios.bin /usr/share/qemu/bios.bin
fi
# Remove vgabios since we're using the vgabios packaged one
rm "${ED}/usr/share/qemu/vgabios.bin"
rm "${ED}/usr/share/qemu/vgabios-cirrus.bin"
rm "${ED}/usr/share/qemu/vgabios-qxl.bin"
rm "${ED}/usr/share/qemu/vgabios-stdvga.bin"
rm "${ED}/usr/share/qemu/vgabios-vmware.bin"
if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
dosym ../vgabios/vgabios.bin /usr/share/qemu/vgabios.bin
dosym ../vgabios/vgabios-cirrus.bin /usr/share/qemu/vgabios-cirrus.bin
dosym ../vgabios/vgabios-qxl.bin /usr/share/qemu/vgabios-qxl.bin
dosym ../vgabios/vgabios-stdvga.bin /usr/share/qemu/vgabios-stdvga.bin
dosym ../vgabios/vgabios-vmware.bin /usr/share/qemu/vgabios-vmware.bin
fi
# Remove sgabios since we're using the sgabios packaged one
rm "${ED}/usr/share/qemu/sgabios.bin"
if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
dosym ../sgabios/sgabios.bin /usr/share/qemu/sgabios.bin
fi
# Remove iPXE since we're using the iPXE packaged one
rm "${ED}"/usr/share/qemu/pxe-*.rom
if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
dosym ../ipxe/8086100e.rom /usr/share/qemu/pxe-e1000.rom
dosym ../ipxe/80861209.rom /usr/share/qemu/pxe-eepro100.rom
dosym ../ipxe/10500940.rom /usr/share/qemu/pxe-ne2k_pci.rom
dosym ../ipxe/10222000.rom /usr/share/qemu/pxe-pcnet.rom
dosym ../ipxe/10ec8139.rom /usr/share/qemu/pxe-rtl8139.rom
dosym ../ipxe/1af41000.rom /usr/share/qemu/pxe-virtio.rom
fi
fi
qemu_support_kvm && readme.gentoo_create_doc
}
pkg_postinst() {
if qemu_support_kvm; then
readme.gentoo_print_elog
fi
if [[ -n ${softmmu_targets} ]] && use kernel_linux; then
udev_reload
fi
fcaps cap_net_admin /usr/libexec/qemu-bridge-helper
if use virtfs && [ -n "${softmmu_targets}" ]; then
local virtfs_caps="cap_chown,cap_dac_override,cap_fowner,cap_fsetid,cap_setgid,cap_mknod,cap_setuid"
fcaps ${virtfs_caps} /usr/bin/virtfs-proxy-helper
fi
}
pkg_info() {
echo "Using:"
echo " $(best_version app-emulation/spice-protocol)"
echo " $(best_version sys-firmware/ipxe)"
echo " $(best_version sys-firmware/seabios)"
if has_version 'sys-firmware/seabios[binary]'; then
echo " USE=binary"
else
echo " USE=''"
fi
echo " $(best_version sys-firmware/vgabios)"
}

View File

@ -0,0 +1,649 @@
# Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
EAPI=5
PYTHON_COMPAT=( python2_7 )
PYTHON_REQ_USE="ncurses,readline"
inherit eutils flag-o-matic linux-info toolchain-funcs multilib python-r1 \
user udev fcaps readme.gentoo pax-utils
BACKPORTS=
if [[ ${PV} = *9999* ]]; then
EGIT_REPO_URI="git://git.qemu.org/qemu.git"
inherit git-2
SRC_URI=""
else
SRC_URI="http://wiki.qemu-project.org/download/${P}.tar.bz2
${BACKPORTS:+
https://dev.gentoo.org/~cardoe/distfiles/${P}-${BACKPORTS}.tar.xz}"
KEYWORDS="~amd64 ~ppc ~ppc64 ~x86 ~x86-fbsd"
fi
DESCRIPTION="QEMU + Kernel-based Virtual Machine userland tools"
HOMEPAGE="http://www.qemu.org http://www.linux-kvm.org"
LICENSE="GPL-2 LGPL-2 BSD-2"
SLOT="0"
IUSE="accessibility +aio alsa bluetooth +caps +curl debug +fdt glusterfs \
gtk gtk2 infiniband iscsi +jpeg \
kernel_linux kernel_FreeBSD lzo ncurses nfs nls numa opengl +pin-upstream-blobs
+png pulseaudio python \
rbd sasl +seccomp sdl sdl2 selinux smartcard snappy spice ssh static static-softmmu
static-user systemtap tci test +threads tls usb usbredir +uuid vde +vhost-net \
virtfs +vnc vte xattr xen xfs"
COMMON_TARGETS="aarch64 alpha arm cris i386 m68k microblaze microblazeel mips
mips64 mips64el mipsel or32 ppc ppc64 s390x sh4 sh4eb sparc sparc64 unicore32
x86_64"
IUSE_SOFTMMU_TARGETS="${COMMON_TARGETS} lm32 moxie ppcemb tricore xtensa xtensaeb"
IUSE_USER_TARGETS="${COMMON_TARGETS} armeb mipsn32 mipsn32el ppc64abi32 ppc64le sparc32plus"
use_softmmu_targets=$(printf ' qemu_softmmu_targets_%s' ${IUSE_SOFTMMU_TARGETS})
use_user_targets=$(printf ' qemu_user_targets_%s' ${IUSE_USER_TARGETS})
IUSE+=" ${use_softmmu_targets} ${use_user_targets}"
# Allow no targets to be built so that people can get a tools-only build.
# Block USE flag configurations known to not work.
REQUIRED_USE="${PYTHON_REQUIRED_USE}
gtk2? ( gtk )
qemu_softmmu_targets_arm? ( fdt )
qemu_softmmu_targets_microblaze? ( fdt )
qemu_softmmu_targets_ppc? ( fdt )
qemu_softmmu_targets_ppc64? ( fdt )
sdl2? ( sdl )
static? ( static-softmmu static-user )
static-softmmu? ( !alsa !pulseaudio !bluetooth !opengl !gtk !gtk2 )
virtfs? ( xattr )
vte? ( gtk )"
# Yep, you need both libcap and libcap-ng since virtfs only uses libcap.
#
# The attr lib isn't always linked in (although the USE flag is always
# respected). This is because qemu supports using the C library's API
# when available rather than always using the extranl library.
COMMON_LIB_DEPEND=">=dev-libs/glib-2.0[static-libs(+)]
sys-libs/zlib[static-libs(+)]
xattr? ( sys-apps/attr[static-libs(+)] )"
SOFTMMU_LIB_DEPEND="${COMMON_LIB_DEPEND}
>=x11-libs/pixman-0.28.0[static-libs(+)]
accessibility? ( app-accessibility/brltty[static-libs(+)] )
aio? ( dev-libs/libaio[static-libs(+)] )
alsa? ( >=media-libs/alsa-lib-1.0.13 )
bluetooth? ( net-wireless/bluez )
caps? ( sys-libs/libcap-ng[static-libs(+)] )
curl? ( >=net-misc/curl-7.15.4[static-libs(+)] )
fdt? ( >=sys-apps/dtc-1.4.0[static-libs(+)] )
glusterfs? ( >=sys-cluster/glusterfs-3.4.0[static-libs(+)] )
gtk? (
gtk2? (
x11-libs/gtk+:2
vte? ( x11-libs/vte:0 )
)
!gtk2? (
x11-libs/gtk+:3
vte? ( x11-libs/vte:2.90 )
)
)
infiniband? ( sys-infiniband/librdmacm:=[static-libs(+)] )
iscsi? ( net-libs/libiscsi )
jpeg? ( virtual/jpeg:=[static-libs(+)] )
lzo? ( dev-libs/lzo:2[static-libs(+)] )
ncurses? ( sys-libs/ncurses:0=[static-libs(+)] )
nfs? ( >=net-fs/libnfs-1.9.3[static-libs(+)] )
numa? ( sys-process/numactl[static-libs(+)] )
opengl? (
virtual/opengl
media-libs/libepoxy[static-libs(+)]
media-libs/mesa[static-libs(+)]
media-libs/mesa[egl,gles2]
)
png? ( media-libs/libpng:0=[static-libs(+)] )
pulseaudio? ( media-sound/pulseaudio )
rbd? ( sys-cluster/ceph[static-libs(+)] )
sasl? ( dev-libs/cyrus-sasl[static-libs(+)] )
sdl? (
!sdl2? (
media-libs/libsdl[X]
>=media-libs/libsdl-1.2.11[static-libs(+)]
)
sdl2? (
media-libs/libsdl2[X]
media-libs/libsdl2[static-libs(+)]
)
)
seccomp? ( >=sys-libs/libseccomp-2.1.0[static-libs(+)] )
smartcard? ( dev-libs/nss !app-emulation/libcacard )
snappy? ( app-arch/snappy[static-libs(+)] )
spice? (
>=app-emulation/spice-protocol-0.12.3
>=app-emulation/spice-0.12.0[static-libs(+)]
)
ssh? ( >=net-libs/libssh2-1.2.8[static-libs(+)] )
tls? ( net-libs/gnutls[static-libs(+)] )
usb? ( >=virtual/libusb-1-r2[static-libs(+)] )
usbredir? ( >=sys-apps/usbredir-0.6[static-libs(+)] )
uuid? ( >=sys-apps/util-linux-2.16.0[static-libs(+)] )
vde? ( net-misc/vde[static-libs(+)] )
virtfs? ( sys-libs/libcap )
xfs? ( sys-fs/xfsprogs[static-libs(+)] )"
USER_LIB_DEPEND="${COMMON_LIB_DEPEND}"
X86_FIRMWARE_DEPEND="
>=sys-firmware/ipxe-1.0.0_p20130624
pin-upstream-blobs? (
~sys-firmware/seabios-1.8.2
~sys-firmware/sgabios-0.1_pre8
~sys-firmware/vgabios-0.7a
)
!pin-upstream-blobs? (
sys-firmware/seabios
sys-firmware/sgabios
sys-firmware/vgabios
)"
CDEPEND="
!static-softmmu? ( $(printf "%s? ( ${SOFTMMU_LIB_DEPEND//\[static-libs(+)]} ) " ${use_softmmu_targets}) )
!static-user? ( $(printf "%s? ( ${USER_LIB_DEPEND//\[static-libs(+)]} ) " ${use_user_targets}) )
qemu_softmmu_targets_i386? ( ${X86_FIRMWARE_DEPEND} )
qemu_softmmu_targets_x86_64? ( ${X86_FIRMWARE_DEPEND} )
python? ( ${PYTHON_DEPS} )
systemtap? ( dev-util/systemtap )
xen? ( app-emulation/xen-tools )"
DEPEND="${CDEPEND}
dev-lang/perl
=dev-lang/python-2*
sys-apps/texinfo
virtual/pkgconfig
kernel_linux? ( >=sys-kernel/linux-headers-2.6.35 )
gtk? ( nls? ( sys-devel/gettext ) )
static-softmmu? ( $(printf "%s? ( ${SOFTMMU_LIB_DEPEND} ) " ${use_softmmu_targets}) )
static-user? ( $(printf "%s? ( ${USER_LIB_DEPEND} ) " ${use_user_targets}) )
test? (
dev-libs/glib[utils]
sys-devel/bc
)"
RDEPEND="${CDEPEND}
selinux? ( sec-policy/selinux-qemu )
"
STRIP_MASK="/usr/share/qemu/palcode-clipper"
QA_PREBUILT="
usr/share/qemu/openbios-ppc
usr/share/qemu/openbios-sparc64
usr/share/qemu/openbios-sparc32
usr/share/qemu/palcode-clipper
usr/share/qemu/s390-ccw.img
usr/share/qemu/u-boot.e500
"
QA_WX_LOAD="usr/bin/qemu-i386
usr/bin/qemu-x86_64
usr/bin/qemu-alpha
usr/bin/qemu-arm
usr/bin/qemu-cris
usr/bin/qemu-m68k
usr/bin/qemu-microblaze
usr/bin/qemu-microblazeel
usr/bin/qemu-mips
usr/bin/qemu-mipsel
usr/bin/qemu-or32
usr/bin/qemu-ppc
usr/bin/qemu-ppc64
usr/bin/qemu-ppc64abi32
usr/bin/qemu-sh4
usr/bin/qemu-sh4eb
usr/bin/qemu-sparc
usr/bin/qemu-sparc64
usr/bin/qemu-armeb
usr/bin/qemu-sparc32plus
usr/bin/qemu-s390x
usr/bin/qemu-unicore32"
DOC_CONTENTS="If you don't have kvm compiled into the kernel, make sure
you have the kernel module loaded before running kvm. The easiest way to
ensure that the kernel module is loaded is to load it on boot.\n
For AMD CPUs the module is called 'kvm-amd'\n
For Intel CPUs the module is called 'kvm-intel'\n
Please review /etc/conf.d/modules for how to load these\n\n
Make sure your user is in the 'kvm' group\n
Just run 'gpasswd -a <USER> kvm', then have <USER> re-login."
qemu_support_kvm() {
if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386 \
use qemu_softmmu_targets_ppc || use qemu_softmmu_targets_ppc64 \
use qemu_softmmu_targets_s390x; then
return 0
fi
return 1
}
pkg_pretend() {
if use kernel_linux && kernel_is lt 2 6 25; then
eerror "This version of KVM requres a host kernel of 2.6.25 or higher."
elif use kernel_linux; then
if ! linux_config_exists; then
eerror "Unable to check your kernel for KVM support"
else
CONFIG_CHECK="~KVM ~TUN ~BRIDGE"
ERROR_KVM="You must enable KVM in your kernel to continue"
ERROR_KVM_AMD="If you have an AMD CPU, you must enable KVM_AMD in"
ERROR_KVM_AMD+=" your kernel configuration."
ERROR_KVM_INTEL="If you have an Intel CPU, you must enable"
ERROR_KVM_INTEL+=" KVM_INTEL in your kernel configuration."
ERROR_TUN="You will need the Universal TUN/TAP driver compiled"
ERROR_TUN+=" into your kernel or loaded as a module to use the"
ERROR_TUN+=" virtual network device if using -net tap."
ERROR_BRIDGE="You will also need support for 802.1d"
ERROR_BRIDGE+=" Ethernet Bridging for some network configurations."
use vhost-net && CONFIG_CHECK+=" ~VHOST_NET"
ERROR_VHOST_NET="You must enable VHOST_NET to have vhost-net"
ERROR_VHOST_NET+=" support"
if use amd64 || use x86 || use amd64-linux || use x86-linux; then
CONFIG_CHECK+=" ~KVM_AMD ~KVM_INTEL"
fi
use python && CONFIG_CHECK+=" ~DEBUG_FS"
ERROR_DEBUG_FS="debugFS support required for kvm_stat"
# Now do the actual checks setup above
check_extra_config
fi
fi
if grep -qs '/usr/bin/qemu-kvm' "${EROOT}"/etc/libvirt/qemu/*.xml; then
eerror "The kvm/qemu-kvm wrappers no longer exist, but your libvirt"
eerror "instances are still pointing to it. Please update your"
eerror "configs in /etc/libvirt/qemu/ to use the -enable-kvm flag"
eerror "and the right system binary (e.g. qemu-system-x86_64)."
die "update your virt configs to not use qemu-kvm"
fi
}
pkg_setup() {
enewgroup kvm 78
}
# Sanity check to make sure target lists are kept up-to-date.
check_targets() {
local var=$1 mak=$2
local detected sorted
pushd "${S}"/default-configs >/dev/null || die
# Force C locale until glibc is updated. #564936
detected=$(echo $(printf '%s\n' *-${mak}.mak | sed "s:-${mak}.mak::" | LC_COLLATE=C sort -u))
sorted=$(echo $(printf '%s\n' ${!var} | LC_COLLATE=C sort -u))
if [[ ${sorted} != "${detected}" ]] ; then
eerror "The ebuild needs to be kept in sync."
eerror "${var}: ${sorted}"
eerror "$(printf '%-*s' ${#var} configure): ${detected}"
die "sync ${var} to the list of targets"
fi
popd >/dev/null
}
src_prepare() {
check_targets IUSE_SOFTMMU_TARGETS softmmu
check_targets IUSE_USER_TARGETS linux-user
# Alter target makefiles to accept CFLAGS set via flag-o
sed -i -r \
-e 's/^(C|OP_C|HELPER_C)FLAGS=/\1FLAGS+=/' \
Makefile Makefile.target || die
# Cheap hack to disable gettext .mo generation.
use nls || rm -f po/*.po
epatch "${FILESDIR}"/qemu-1.7.0-cflags.patch
epatch "${FILESDIR}"/${PN}-2.4.0-block-mirror-crash.patch #558396
epatch "${FILESDIR}"/${PN}-2.4.0-CVE-2015-7295-{1,2,3}.patch #560760
epatch "${FILESDIR}"/${PN}-2.4.0-CVE-2015-6855.patch #560422
[[ -n ${BACKPORTS} ]] && \
EPATCH_FORCE=yes EPATCH_SUFFIX="patch" EPATCH_SOURCE="${S}/patches" \
epatch
# MIPS specific fixes. Bug #563162
for x in "${FILESDIR}"/${PN}-2.4-mips-*; do
epatch "${x}"
done
# Fix ld and objcopy being called directly
tc-export AR LD OBJCOPY
# Verbose builds
MAKEOPTS+=" V=1"
epatch_user
}
##
# configures qemu based on the build directory and the build type
# we are using.
#
qemu_src_configure() {
debug-print-function ${FUNCNAME} "$@"
local buildtype=$1
local builddir="${S}/${buildtype}-build"
local static_flag="static-${buildtype}"
mkdir "${builddir}"
local conf_opts=(
--prefix=/usr
--sysconfdir=/etc
--libdir=/usr/$(get_libdir)
--docdir=/usr/share/doc/${PF}/html
--disable-bsd-user
--disable-guest-agent
--disable-strip
--disable-werror
--python="${PYTHON}"
--cc="$(tc-getCC)"
--cxx="$(tc-getCXX)"
--host-cc="$(tc-getBUILD_CC)"
$(use_enable debug debug-info)
$(use_enable debug debug-tcg)
--enable-docs
$(use_enable tci tcg-interpreter)
$(use_enable xattr attr)
)
# Disable options not used by user targets as the default configure
# options will autoprobe and try to link in a bunch of unused junk.
conf_softmmu() {
if [[ ${buildtype} == "user" ]] ; then
echo "--disable-${2:-$1}"
else
use_enable "$@"
fi
}
conf_opts+=(
$(conf_softmmu accessibility brlapi)
$(conf_softmmu aio linux-aio)
$(conf_softmmu bluetooth bluez)
$(conf_softmmu caps cap-ng)
$(conf_softmmu curl)
$(conf_softmmu fdt)
$(conf_softmmu glusterfs)
$(conf_softmmu gtk)
$(conf_softmmu infiniband rdma)
$(conf_softmmu iscsi libiscsi)
$(conf_softmmu jpeg vnc-jpeg)
$(conf_softmmu kernel_linux kvm)
$(conf_softmmu lzo)
$(conf_softmmu ncurses curses)
$(conf_softmmu nfs libnfs)
$(conf_softmmu numa)
$(conf_softmmu opengl)
$(conf_softmmu png vnc-png)
$(conf_softmmu rbd)
$(conf_softmmu sasl vnc-sasl)
$(conf_softmmu sdl)
$(conf_softmmu seccomp)
$(conf_softmmu smartcard smartcard-nss)
$(conf_softmmu snappy)
$(conf_softmmu spice)
$(conf_softmmu ssh libssh2)
$(conf_softmmu tls vnc-tls)
$(conf_softmmu usb libusb)
$(conf_softmmu usbredir usb-redir)
$(conf_softmmu uuid)
$(conf_softmmu vde)
$(conf_softmmu vhost-net)
$(conf_softmmu virtfs)
$(conf_softmmu vnc)
$(conf_softmmu vte)
$(conf_softmmu xen)
$(conf_softmmu xen xen-pci-passthrough)
$(conf_softmmu xfs xfsctl)
)
case ${buildtype} in
user)
conf_opts+=(
--enable-linux-user
--disable-system
--disable-blobs
--disable-tools
)
;;
softmmu)
# audio options
local audio_opts="oss"
use alsa && audio_opts="alsa,${audio_opts}"
use sdl && audio_opts="sdl,${audio_opts}"
use pulseaudio && audio_opts="pa,${audio_opts}"
conf_opts+=(
--disable-linux-user
--enable-system
--with-system-pixman
--audio-drv-list="${audio_opts}"
)
use gtk && conf_opts+=( --with-gtkabi=$(usex gtk2 2.0 3.0) )
use sdl && conf_opts+=( --with-sdlabi=$(usex sdl2 2.0 1.2) )
;;
tools)
conf_opts+=(
--disable-linux-user
--disable-system
--disable-blobs
)
static_flag="static"
;;
esac
local targets="${buildtype}_targets"
[[ -n ${targets} ]] && conf_opts+=( --target-list="${!targets}" )
# Add support for SystemTAP
use systemtap && conf_opts+=( --enable-trace-backend=dtrace )
# We always want to attempt to build with PIE support as it results
# in a more secure binary. But it doesn't work with static or if
# the current GCC doesn't have PIE support.
if use ${static_flag}; then
conf_opts+=( --static --disable-pie )
else
gcc-specs-pie && conf_opts+=( --enable-pie )
fi
echo "../configure ${conf_opts[*]}"
cd "${builddir}"
../configure "${conf_opts[@]}" || die "configure failed"
# FreeBSD's kernel does not support QEMU assigning/grabbing
# host USB devices yet
use kernel_FreeBSD && \
sed -i -E -e "s|^(HOST_USB=)bsd|\1stub|" "${S}"/config-host.mak
}
src_configure() {
local target
python_setup
softmmu_targets= softmmu_bins=()
user_targets= user_bins=()
for target in ${IUSE_SOFTMMU_TARGETS} ; do
if use "qemu_softmmu_targets_${target}"; then
softmmu_targets+=",${target}-softmmu"
softmmu_bins+=( "qemu-system-${target}" )
fi
done
for target in ${IUSE_USER_TARGETS} ; do
if use "qemu_user_targets_${target}"; then
user_targets+=",${target}-linux-user"
user_bins+=( "qemu-${target}" )
fi
done
softmmu_targets=${softmmu_targets#,}
user_targets=${user_targets#,}
[[ -n ${softmmu_targets} ]] && qemu_src_configure "softmmu"
[[ -n ${user_targets} ]] && qemu_src_configure "user"
[[ -z ${softmmu_targets}${user_targets} ]] && qemu_src_configure "tools"
}
src_compile() {
if [[ -n ${user_targets} ]]; then
cd "${S}/user-build"
default
fi
if [[ -n ${softmmu_targets} ]]; then
cd "${S}/softmmu-build"
default
fi
if [[ -z ${softmmu_targets}${user_targets} ]]; then
cd "${S}/tools-build"
default
fi
}
src_test() {
if [[ -n ${softmmu_targets} ]]; then
cd "${S}/softmmu-build"
pax-mark m */qemu-system-* #515550
emake -j1 check
emake -j1 check-report.html
fi
}
qemu_python_install() {
python_domodule "${S}/scripts/qmp/qmp.py"
python_doscript "${S}/scripts/kvm/kvm_stat"
python_doscript "${S}/scripts/kvm/vmxcap"
python_doscript "${S}/scripts/qmp/qmp-shell"
python_doscript "${S}/scripts/qmp/qemu-ga-client"
}
src_install() {
if [[ -n ${user_targets} ]]; then
cd "${S}/user-build"
emake DESTDIR="${ED}" install
# Install binfmt handler init script for user targets
newinitd "${FILESDIR}/qemu-binfmt.initd-r1" qemu-binfmt
fi
if [[ -n ${softmmu_targets} ]]; then
cd "${S}/softmmu-build"
emake DESTDIR="${ED}" install
# This might not exist if the test failed. #512010
[[ -e check-report.html ]] && dohtml check-report.html
if use kernel_linux; then
udev_dorules "${FILESDIR}"/65-kvm.rules
fi
if use python; then
python_foreach_impl qemu_python_install
fi
fi
if [[ -z ${softmmu_targets}${user_targets} ]]; then
cd "${S}/tools-build"
emake DESTDIR="${ED}" install
fi
# Disable mprotect on the qemu binaries as they use JITs to be fast #459348
pushd "${ED}"/usr/bin >/dev/null
pax-mark m "${softmmu_bins[@]}" "${user_bins[@]}"
popd >/dev/null
# Install config file example for qemu-bridge-helper
insinto "/etc/qemu"
doins "${FILESDIR}/bridge.conf"
# Remove the docdir placed qmp-commands.txt
mv "${ED}/usr/share/doc/${PF}/html/qmp-commands.txt" "${S}/docs/qmp/"
cd "${S}"
dodoc Changelog MAINTAINERS docs/specs/pci-ids.txt
newdoc pc-bios/README README.pc-bios
dodoc docs/qmp/*.txt
if [[ -n ${softmmu_targets} ]]; then
# Remove SeaBIOS since we're using the SeaBIOS packaged one
rm "${ED}/usr/share/qemu/bios.bin"
if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
dosym ../seabios/bios.bin /usr/share/qemu/bios.bin
fi
# Remove vgabios since we're using the vgabios packaged one
rm "${ED}/usr/share/qemu/vgabios.bin"
rm "${ED}/usr/share/qemu/vgabios-cirrus.bin"
rm "${ED}/usr/share/qemu/vgabios-qxl.bin"
rm "${ED}/usr/share/qemu/vgabios-stdvga.bin"
rm "${ED}/usr/share/qemu/vgabios-vmware.bin"
if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
dosym ../vgabios/vgabios.bin /usr/share/qemu/vgabios.bin
dosym ../vgabios/vgabios-cirrus.bin /usr/share/qemu/vgabios-cirrus.bin
dosym ../vgabios/vgabios-qxl.bin /usr/share/qemu/vgabios-qxl.bin
dosym ../vgabios/vgabios-stdvga.bin /usr/share/qemu/vgabios-stdvga.bin
dosym ../vgabios/vgabios-vmware.bin /usr/share/qemu/vgabios-vmware.bin
fi
# Remove sgabios since we're using the sgabios packaged one
rm "${ED}/usr/share/qemu/sgabios.bin"
if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
dosym ../sgabios/sgabios.bin /usr/share/qemu/sgabios.bin
fi
# Remove iPXE since we're using the iPXE packaged one
rm "${ED}"/usr/share/qemu/pxe-*.rom
if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
dosym ../ipxe/8086100e.rom /usr/share/qemu/pxe-e1000.rom
dosym ../ipxe/80861209.rom /usr/share/qemu/pxe-eepro100.rom
dosym ../ipxe/10500940.rom /usr/share/qemu/pxe-ne2k_pci.rom
dosym ../ipxe/10222000.rom /usr/share/qemu/pxe-pcnet.rom
dosym ../ipxe/10ec8139.rom /usr/share/qemu/pxe-rtl8139.rom
dosym ../ipxe/1af41000.rom /usr/share/qemu/pxe-virtio.rom
fi
fi
qemu_support_kvm && readme.gentoo_create_doc
}
pkg_postinst() {
if qemu_support_kvm; then
readme.gentoo_print_elog
fi
if [[ -n ${softmmu_targets} ]] && use kernel_linux; then
udev_reload
fi
fcaps cap_net_admin /usr/libexec/qemu-bridge-helper
if use virtfs && [ -n "${softmmu_targets}" ]; then
local virtfs_caps="cap_chown,cap_dac_override,cap_fowner,cap_fsetid,cap_setgid,cap_mknod,cap_setuid"
fcaps ${virtfs_caps} /usr/bin/virtfs-proxy-helper
fi
}
pkg_info() {
echo "Using:"
echo " $(best_version app-emulation/spice-protocol)"
echo " $(best_version sys-firmware/ipxe)"
echo " $(best_version sys-firmware/seabios)"
if has_version 'sys-firmware/seabios[binary]'; then
echo " USE=binary"
else
echo " USE=''"
fi
echo " $(best_version sys-firmware/vgabios)"
}

View File

@ -0,0 +1,644 @@
# Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
EAPI=5
PYTHON_COMPAT=( python2_7 )
PYTHON_REQ_USE="ncurses,readline"
inherit eutils flag-o-matic linux-info toolchain-funcs multilib python-r1 \
user udev fcaps readme.gentoo pax-utils
BACKPORTS=
if [[ ${PV} = *9999* ]]; then
EGIT_REPO_URI="git://git.qemu.org/qemu.git"
inherit git-2
SRC_URI=""
else
SRC_URI="http://wiki.qemu-project.org/download/${P}.tar.bz2
${BACKPORTS:+
https://dev.gentoo.org/~cardoe/distfiles/${P}-${BACKPORTS}.tar.xz}"
KEYWORDS="~amd64 ~ppc ~ppc64 ~x86 ~x86-fbsd"
fi
DESCRIPTION="QEMU + Kernel-based Virtual Machine userland tools"
HOMEPAGE="http://www.qemu.org http://www.linux-kvm.org"
LICENSE="GPL-2 LGPL-2 BSD-2"
SLOT="0"
IUSE="accessibility +aio alsa bluetooth +caps +curl debug +fdt glusterfs \
gtk gtk2 infiniband iscsi +jpeg \
kernel_linux kernel_FreeBSD lzo ncurses nfs nls numa opengl +pin-upstream-blobs
+png pulseaudio python \
rbd sasl +seccomp sdl sdl2 selinux smartcard snappy spice ssh static static-softmmu
static-user systemtap tci test +threads tls usb usbredir +uuid vde +vhost-net \
virtfs +vnc vte xattr xen xfs"
COMMON_TARGETS="aarch64 alpha arm cris i386 m68k microblaze microblazeel mips
mips64 mips64el mipsel or32 ppc ppc64 s390x sh4 sh4eb sparc sparc64 unicore32
x86_64"
IUSE_SOFTMMU_TARGETS="${COMMON_TARGETS} lm32 moxie ppcemb tricore xtensa xtensaeb"
IUSE_USER_TARGETS="${COMMON_TARGETS} armeb mipsn32 mipsn32el ppc64abi32 ppc64le sparc32plus"
use_softmmu_targets=$(printf ' qemu_softmmu_targets_%s' ${IUSE_SOFTMMU_TARGETS})
use_user_targets=$(printf ' qemu_user_targets_%s' ${IUSE_USER_TARGETS})
IUSE+=" ${use_softmmu_targets} ${use_user_targets}"
# Allow no targets to be built so that people can get a tools-only build.
# Block USE flag configurations known to not work.
REQUIRED_USE="${PYTHON_REQUIRED_USE}
gtk2? ( gtk )
qemu_softmmu_targets_arm? ( fdt )
qemu_softmmu_targets_microblaze? ( fdt )
qemu_softmmu_targets_ppc? ( fdt )
qemu_softmmu_targets_ppc64? ( fdt )
sdl2? ( sdl )
static? ( static-softmmu static-user )
static-softmmu? ( !alsa !pulseaudio !bluetooth !opengl !gtk !gtk2 )
virtfs? ( xattr )
vte? ( gtk )"
# Yep, you need both libcap and libcap-ng since virtfs only uses libcap.
#
# The attr lib isn't always linked in (although the USE flag is always
# respected). This is because qemu supports using the C library's API
# when available rather than always using the extranl library.
COMMON_LIB_DEPEND=">=dev-libs/glib-2.0[static-libs(+)]
sys-libs/zlib[static-libs(+)]
xattr? ( sys-apps/attr[static-libs(+)] )"
SOFTMMU_LIB_DEPEND="${COMMON_LIB_DEPEND}
>=x11-libs/pixman-0.28.0[static-libs(+)]
accessibility? ( app-accessibility/brltty[static-libs(+)] )
aio? ( dev-libs/libaio[static-libs(+)] )
alsa? ( >=media-libs/alsa-lib-1.0.13 )
bluetooth? ( net-wireless/bluez )
caps? ( sys-libs/libcap-ng[static-libs(+)] )
curl? ( >=net-misc/curl-7.15.4[static-libs(+)] )
fdt? ( >=sys-apps/dtc-1.4.0[static-libs(+)] )
glusterfs? ( >=sys-cluster/glusterfs-3.4.0[static-libs(+)] )
gtk? (
gtk2? (
x11-libs/gtk+:2
vte? ( x11-libs/vte:0 )
)
!gtk2? (
x11-libs/gtk+:3
vte? ( x11-libs/vte:2.90 )
)
)
infiniband? ( sys-infiniband/librdmacm:=[static-libs(+)] )
iscsi? ( net-libs/libiscsi )
jpeg? ( virtual/jpeg:=[static-libs(+)] )
lzo? ( dev-libs/lzo:2[static-libs(+)] )
ncurses? ( sys-libs/ncurses:0=[static-libs(+)] )
nfs? ( >=net-fs/libnfs-1.9.3[static-libs(+)] )
numa? ( sys-process/numactl[static-libs(+)] )
opengl? (
virtual/opengl
media-libs/libepoxy[static-libs(+)]
media-libs/mesa[static-libs(+)]
media-libs/mesa[egl,gles2]
)
png? ( media-libs/libpng:0=[static-libs(+)] )
pulseaudio? ( media-sound/pulseaudio )
rbd? ( sys-cluster/ceph[static-libs(+)] )
sasl? ( dev-libs/cyrus-sasl[static-libs(+)] )
sdl? (
!sdl2? (
media-libs/libsdl[X]
>=media-libs/libsdl-1.2.11[static-libs(+)]
)
sdl2? (
media-libs/libsdl2[X]
media-libs/libsdl2[static-libs(+)]
)
)
seccomp? ( >=sys-libs/libseccomp-2.1.0[static-libs(+)] )
smartcard? ( dev-libs/nss !app-emulation/libcacard )
snappy? ( app-arch/snappy[static-libs(+)] )
spice? (
>=app-emulation/spice-protocol-0.12.3
>=app-emulation/spice-0.12.0[static-libs(+)]
)
ssh? ( >=net-libs/libssh2-1.2.8[static-libs(+)] )
tls? ( net-libs/gnutls[static-libs(+)] )
usb? ( >=virtual/libusb-1-r2[static-libs(+)] )
usbredir? ( >=sys-apps/usbredir-0.6[static-libs(+)] )
uuid? ( >=sys-apps/util-linux-2.16.0[static-libs(+)] )
vde? ( net-misc/vde[static-libs(+)] )
virtfs? ( sys-libs/libcap )
xfs? ( sys-fs/xfsprogs[static-libs(+)] )"
USER_LIB_DEPEND="${COMMON_LIB_DEPEND}"
X86_FIRMWARE_DEPEND="
>=sys-firmware/ipxe-1.0.0_p20130624
pin-upstream-blobs? (
~sys-firmware/seabios-1.8.2
~sys-firmware/sgabios-0.1_pre8
~sys-firmware/vgabios-0.7a
)
!pin-upstream-blobs? (
sys-firmware/seabios
sys-firmware/sgabios
sys-firmware/vgabios
)"
CDEPEND="
!static-softmmu? ( $(printf "%s? ( ${SOFTMMU_LIB_DEPEND//\[static-libs(+)]} ) " ${use_softmmu_targets}) )
!static-user? ( $(printf "%s? ( ${USER_LIB_DEPEND//\[static-libs(+)]} ) " ${use_user_targets}) )
qemu_softmmu_targets_i386? ( ${X86_FIRMWARE_DEPEND} )
qemu_softmmu_targets_x86_64? ( ${X86_FIRMWARE_DEPEND} )
python? ( ${PYTHON_DEPS} )
systemtap? ( dev-util/systemtap )
xen? ( app-emulation/xen-tools )"
DEPEND="${CDEPEND}
dev-lang/perl
=dev-lang/python-2*
sys-apps/texinfo
virtual/pkgconfig
kernel_linux? ( >=sys-kernel/linux-headers-2.6.35 )
gtk? ( nls? ( sys-devel/gettext ) )
static-softmmu? ( $(printf "%s? ( ${SOFTMMU_LIB_DEPEND} ) " ${use_softmmu_targets}) )
static-user? ( $(printf "%s? ( ${USER_LIB_DEPEND} ) " ${use_user_targets}) )
test? (
dev-libs/glib[utils]
sys-devel/bc
)"
RDEPEND="${CDEPEND}
selinux? ( sec-policy/selinux-qemu )
"
STRIP_MASK="/usr/share/qemu/palcode-clipper"
QA_PREBUILT="
usr/share/qemu/openbios-ppc
usr/share/qemu/openbios-sparc64
usr/share/qemu/openbios-sparc32
usr/share/qemu/palcode-clipper
usr/share/qemu/s390-ccw.img
usr/share/qemu/u-boot.e500
"
QA_WX_LOAD="usr/bin/qemu-i386
usr/bin/qemu-x86_64
usr/bin/qemu-alpha
usr/bin/qemu-arm
usr/bin/qemu-cris
usr/bin/qemu-m68k
usr/bin/qemu-microblaze
usr/bin/qemu-microblazeel
usr/bin/qemu-mips
usr/bin/qemu-mipsel
usr/bin/qemu-or32
usr/bin/qemu-ppc
usr/bin/qemu-ppc64
usr/bin/qemu-ppc64abi32
usr/bin/qemu-sh4
usr/bin/qemu-sh4eb
usr/bin/qemu-sparc
usr/bin/qemu-sparc64
usr/bin/qemu-armeb
usr/bin/qemu-sparc32plus
usr/bin/qemu-s390x
usr/bin/qemu-unicore32"
DOC_CONTENTS="If you don't have kvm compiled into the kernel, make sure
you have the kernel module loaded before running kvm. The easiest way to
ensure that the kernel module is loaded is to load it on boot.\n
For AMD CPUs the module is called 'kvm-amd'\n
For Intel CPUs the module is called 'kvm-intel'\n
Please review /etc/conf.d/modules for how to load these\n\n
Make sure your user is in the 'kvm' group\n
Just run 'gpasswd -a <USER> kvm', then have <USER> re-login."
qemu_support_kvm() {
if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386 \
use qemu_softmmu_targets_ppc || use qemu_softmmu_targets_ppc64 \
use qemu_softmmu_targets_s390x; then
return 0
fi
return 1
}
pkg_pretend() {
if use kernel_linux && kernel_is lt 2 6 25; then
eerror "This version of KVM requres a host kernel of 2.6.25 or higher."
elif use kernel_linux; then
if ! linux_config_exists; then
eerror "Unable to check your kernel for KVM support"
else
CONFIG_CHECK="~KVM ~TUN ~BRIDGE"
ERROR_KVM="You must enable KVM in your kernel to continue"
ERROR_KVM_AMD="If you have an AMD CPU, you must enable KVM_AMD in"
ERROR_KVM_AMD+=" your kernel configuration."
ERROR_KVM_INTEL="If you have an Intel CPU, you must enable"
ERROR_KVM_INTEL+=" KVM_INTEL in your kernel configuration."
ERROR_TUN="You will need the Universal TUN/TAP driver compiled"
ERROR_TUN+=" into your kernel or loaded as a module to use the"
ERROR_TUN+=" virtual network device if using -net tap."
ERROR_BRIDGE="You will also need support for 802.1d"
ERROR_BRIDGE+=" Ethernet Bridging for some network configurations."
use vhost-net && CONFIG_CHECK+=" ~VHOST_NET"
ERROR_VHOST_NET="You must enable VHOST_NET to have vhost-net"
ERROR_VHOST_NET+=" support"
if use amd64 || use x86 || use amd64-linux || use x86-linux; then
CONFIG_CHECK+=" ~KVM_AMD ~KVM_INTEL"
fi
use python && CONFIG_CHECK+=" ~DEBUG_FS"
ERROR_DEBUG_FS="debugFS support required for kvm_stat"
# Now do the actual checks setup above
check_extra_config
fi
fi
if grep -qs '/usr/bin/qemu-kvm' "${EROOT}"/etc/libvirt/qemu/*.xml; then
eerror "The kvm/qemu-kvm wrappers no longer exist, but your libvirt"
eerror "instances are still pointing to it. Please update your"
eerror "configs in /etc/libvirt/qemu/ to use the -enable-kvm flag"
eerror "and the right system binary (e.g. qemu-system-x86_64)."
die "update your virt configs to not use qemu-kvm"
fi
}
pkg_setup() {
enewgroup kvm 78
}
# Sanity check to make sure target lists are kept up-to-date.
check_targets() {
local var=$1 mak=$2
local detected sorted
pushd "${S}"/default-configs >/dev/null || die
# Force C locale until glibc is updated. #564936
detected=$(echo $(printf '%s\n' *-${mak}.mak | sed "s:-${mak}.mak::" | LC_COLLATE=C sort -u))
sorted=$(echo $(printf '%s\n' ${!var} | LC_COLLATE=C sort -u))
if [[ ${sorted} != "${detected}" ]] ; then
eerror "The ebuild needs to be kept in sync."
eerror "${var}: ${sorted}"
eerror "$(printf '%-*s' ${#var} configure): ${detected}"
die "sync ${var} to the list of targets"
fi
popd >/dev/null
}
src_prepare() {
check_targets IUSE_SOFTMMU_TARGETS softmmu
check_targets IUSE_USER_TARGETS linux-user
# Alter target makefiles to accept CFLAGS set via flag-o
sed -i -r \
-e 's/^(C|OP_C|HELPER_C)FLAGS=/\1FLAGS+=/' \
Makefile Makefile.target || die
# Cheap hack to disable gettext .mo generation.
use nls || rm -f po/*.po
epatch "${FILESDIR}"/qemu-1.7.0-cflags.patch
epatch "${FILESDIR}"/${PN}-2.4.0-block-mirror-crash.patch #558396
epatch "${FILESDIR}"/${PN}-2.4.0-CVE-2015-7295-{1,2,3}.patch #560760
epatch "${FILESDIR}"/${PN}-2.4.0-CVE-2015-6855.patch #560422
[[ -n ${BACKPORTS} ]] && \
EPATCH_FORCE=yes EPATCH_SUFFIX="patch" EPATCH_SOURCE="${S}/patches" \
epatch
# Fix ld and objcopy being called directly
tc-export AR LD OBJCOPY
# Verbose builds
MAKEOPTS+=" V=1"
epatch_user
}
##
# configures qemu based on the build directory and the build type
# we are using.
#
qemu_src_configure() {
debug-print-function ${FUNCNAME} "$@"
local buildtype=$1
local builddir="${S}/${buildtype}-build"
local static_flag="static-${buildtype}"
mkdir "${builddir}"
local conf_opts=(
--prefix=/usr
--sysconfdir=/etc
--libdir=/usr/$(get_libdir)
--docdir=/usr/share/doc/${PF}/html
--disable-bsd-user
--disable-guest-agent
--disable-strip
--disable-werror
--python="${PYTHON}"
--cc="$(tc-getCC)"
--cxx="$(tc-getCXX)"
--host-cc="$(tc-getBUILD_CC)"
$(use_enable debug debug-info)
$(use_enable debug debug-tcg)
--enable-docs
$(use_enable tci tcg-interpreter)
$(use_enable xattr attr)
)
# Disable options not used by user targets as the default configure
# options will autoprobe and try to link in a bunch of unused junk.
conf_softmmu() {
if [[ ${buildtype} == "user" ]] ; then
echo "--disable-${2:-$1}"
else
use_enable "$@"
fi
}
conf_opts+=(
$(conf_softmmu accessibility brlapi)
$(conf_softmmu aio linux-aio)
$(conf_softmmu bluetooth bluez)
$(conf_softmmu caps cap-ng)
$(conf_softmmu curl)
$(conf_softmmu fdt)
$(conf_softmmu glusterfs)
$(conf_softmmu gtk)
$(conf_softmmu infiniband rdma)
$(conf_softmmu iscsi libiscsi)
$(conf_softmmu jpeg vnc-jpeg)
$(conf_softmmu kernel_linux kvm)
$(conf_softmmu lzo)
$(conf_softmmu ncurses curses)
$(conf_softmmu nfs libnfs)
$(conf_softmmu numa)
$(conf_softmmu opengl)
$(conf_softmmu png vnc-png)
$(conf_softmmu rbd)
$(conf_softmmu sasl vnc-sasl)
$(conf_softmmu sdl)
$(conf_softmmu seccomp)
$(conf_softmmu smartcard smartcard-nss)
$(conf_softmmu snappy)
$(conf_softmmu spice)
$(conf_softmmu ssh libssh2)
$(conf_softmmu tls vnc-tls)
$(conf_softmmu usb libusb)
$(conf_softmmu usbredir usb-redir)
$(conf_softmmu uuid)
$(conf_softmmu vde)
$(conf_softmmu vhost-net)
$(conf_softmmu virtfs)
$(conf_softmmu vnc)
$(conf_softmmu vte)
$(conf_softmmu xen)
$(conf_softmmu xen xen-pci-passthrough)
$(conf_softmmu xfs xfsctl)
)
case ${buildtype} in
user)
conf_opts+=(
--enable-linux-user
--disable-system
--disable-blobs
--disable-tools
)
;;
softmmu)
# audio options
local audio_opts="oss"
use alsa && audio_opts="alsa,${audio_opts}"
use sdl && audio_opts="sdl,${audio_opts}"
use pulseaudio && audio_opts="pa,${audio_opts}"
conf_opts+=(
--disable-linux-user
--enable-system
--with-system-pixman
--audio-drv-list="${audio_opts}"
)
use gtk && conf_opts+=( --with-gtkabi=$(usex gtk2 2.0 3.0) )
use sdl && conf_opts+=( --with-sdlabi=$(usex sdl2 2.0 1.2) )
;;
tools)
conf_opts+=(
--disable-linux-user
--disable-system
--disable-blobs
)
static_flag="static"
;;
esac
local targets="${buildtype}_targets"
[[ -n ${targets} ]] && conf_opts+=( --target-list="${!targets}" )
# Add support for SystemTAP
use systemtap && conf_opts+=( --enable-trace-backend=dtrace )
# We always want to attempt to build with PIE support as it results
# in a more secure binary. But it doesn't work with static or if
# the current GCC doesn't have PIE support.
if use ${static_flag}; then
conf_opts+=( --static --disable-pie )
else
gcc-specs-pie && conf_opts+=( --enable-pie )
fi
echo "../configure ${conf_opts[*]}"
cd "${builddir}"
../configure "${conf_opts[@]}" || die "configure failed"
# FreeBSD's kernel does not support QEMU assigning/grabbing
# host USB devices yet
use kernel_FreeBSD && \
sed -i -E -e "s|^(HOST_USB=)bsd|\1stub|" "${S}"/config-host.mak
}
src_configure() {
local target
python_setup
softmmu_targets= softmmu_bins=()
user_targets= user_bins=()
for target in ${IUSE_SOFTMMU_TARGETS} ; do
if use "qemu_softmmu_targets_${target}"; then
softmmu_targets+=",${target}-softmmu"
softmmu_bins+=( "qemu-system-${target}" )
fi
done
for target in ${IUSE_USER_TARGETS} ; do
if use "qemu_user_targets_${target}"; then
user_targets+=",${target}-linux-user"
user_bins+=( "qemu-${target}" )
fi
done
softmmu_targets=${softmmu_targets#,}
user_targets=${user_targets#,}
[[ -n ${softmmu_targets} ]] && qemu_src_configure "softmmu"
[[ -n ${user_targets} ]] && qemu_src_configure "user"
[[ -z ${softmmu_targets}${user_targets} ]] && qemu_src_configure "tools"
}
src_compile() {
if [[ -n ${user_targets} ]]; then
cd "${S}/user-build"
default
fi
if [[ -n ${softmmu_targets} ]]; then
cd "${S}/softmmu-build"
default
fi
if [[ -z ${softmmu_targets}${user_targets} ]]; then
cd "${S}/tools-build"
default
fi
}
src_test() {
if [[ -n ${softmmu_targets} ]]; then
cd "${S}/softmmu-build"
pax-mark m */qemu-system-* #515550
emake -j1 check
emake -j1 check-report.html
fi
}
qemu_python_install() {
python_domodule "${S}/scripts/qmp/qmp.py"
python_doscript "${S}/scripts/kvm/kvm_stat"
python_doscript "${S}/scripts/kvm/vmxcap"
python_doscript "${S}/scripts/qmp/qmp-shell"
python_doscript "${S}/scripts/qmp/qemu-ga-client"
}
src_install() {
if [[ -n ${user_targets} ]]; then
cd "${S}/user-build"
emake DESTDIR="${ED}" install
# Install binfmt handler init script for user targets
newinitd "${FILESDIR}/qemu-binfmt.initd-r1" qemu-binfmt
fi
if [[ -n ${softmmu_targets} ]]; then
cd "${S}/softmmu-build"
emake DESTDIR="${ED}" install
# This might not exist if the test failed. #512010
[[ -e check-report.html ]] && dohtml check-report.html
if use kernel_linux; then
udev_dorules "${FILESDIR}"/65-kvm.rules
fi
if use python; then
python_foreach_impl qemu_python_install
fi
fi
if [[ -z ${softmmu_targets}${user_targets} ]]; then
cd "${S}/tools-build"
emake DESTDIR="${ED}" install
fi
# Disable mprotect on the qemu binaries as they use JITs to be fast #459348
pushd "${ED}"/usr/bin >/dev/null
pax-mark m "${softmmu_bins[@]}" "${user_bins[@]}"
popd >/dev/null
# Install config file example for qemu-bridge-helper
insinto "/etc/qemu"
doins "${FILESDIR}/bridge.conf"
# Remove the docdir placed qmp-commands.txt
mv "${ED}/usr/share/doc/${PF}/html/qmp-commands.txt" "${S}/docs/qmp/"
cd "${S}"
dodoc Changelog MAINTAINERS docs/specs/pci-ids.txt
newdoc pc-bios/README README.pc-bios
dodoc docs/qmp/*.txt
if [[ -n ${softmmu_targets} ]]; then
# Remove SeaBIOS since we're using the SeaBIOS packaged one
rm "${ED}/usr/share/qemu/bios.bin"
if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
dosym ../seabios/bios.bin /usr/share/qemu/bios.bin
fi
# Remove vgabios since we're using the vgabios packaged one
rm "${ED}/usr/share/qemu/vgabios.bin"
rm "${ED}/usr/share/qemu/vgabios-cirrus.bin"
rm "${ED}/usr/share/qemu/vgabios-qxl.bin"
rm "${ED}/usr/share/qemu/vgabios-stdvga.bin"
rm "${ED}/usr/share/qemu/vgabios-vmware.bin"
if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
dosym ../vgabios/vgabios.bin /usr/share/qemu/vgabios.bin
dosym ../vgabios/vgabios-cirrus.bin /usr/share/qemu/vgabios-cirrus.bin
dosym ../vgabios/vgabios-qxl.bin /usr/share/qemu/vgabios-qxl.bin
dosym ../vgabios/vgabios-stdvga.bin /usr/share/qemu/vgabios-stdvga.bin
dosym ../vgabios/vgabios-vmware.bin /usr/share/qemu/vgabios-vmware.bin
fi
# Remove sgabios since we're using the sgabios packaged one
rm "${ED}/usr/share/qemu/sgabios.bin"
if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
dosym ../sgabios/sgabios.bin /usr/share/qemu/sgabios.bin
fi
# Remove iPXE since we're using the iPXE packaged one
rm "${ED}"/usr/share/qemu/pxe-*.rom
if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
dosym ../ipxe/8086100e.rom /usr/share/qemu/pxe-e1000.rom
dosym ../ipxe/80861209.rom /usr/share/qemu/pxe-eepro100.rom
dosym ../ipxe/10500940.rom /usr/share/qemu/pxe-ne2k_pci.rom
dosym ../ipxe/10222000.rom /usr/share/qemu/pxe-pcnet.rom
dosym ../ipxe/10ec8139.rom /usr/share/qemu/pxe-rtl8139.rom
dosym ../ipxe/1af41000.rom /usr/share/qemu/pxe-virtio.rom
fi
fi
qemu_support_kvm && readme.gentoo_create_doc
}
pkg_postinst() {
if qemu_support_kvm; then
readme.gentoo_print_elog
fi
if [[ -n ${softmmu_targets} ]] && use kernel_linux; then
udev_reload
fi
fcaps cap_net_admin /usr/libexec/qemu-bridge-helper
if use virtfs && [ -n "${softmmu_targets}" ]; then
local virtfs_caps="cap_chown,cap_dac_override,cap_fowner,cap_fsetid,cap_setgid,cap_mknod,cap_setuid"
fcaps ${virtfs_caps} /usr/bin/virtfs-proxy-helper
fi
}
pkg_info() {
echo "Using:"
echo " $(best_version app-emulation/spice-protocol)"
echo " $(best_version sys-firmware/ipxe)"
echo " $(best_version sys-firmware/seabios)"
if has_version 'sys-firmware/seabios[binary]'; then
echo " USE=binary"
else
echo " USE=''"
fi
echo " $(best_version sys-firmware/vgabios)"
}

View File

@ -0,0 +1,642 @@
# Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
EAPI=5
PYTHON_COMPAT=( python2_7 )
PYTHON_REQ_USE="ncurses,readline"
inherit eutils flag-o-matic linux-info toolchain-funcs multilib python-r1 \
user udev fcaps readme.gentoo pax-utils
BACKPORTS=
if [[ ${PV} = *9999* ]]; then
EGIT_REPO_URI="git://git.qemu.org/qemu.git"
inherit git-2
SRC_URI=""
else
SRC_URI="http://wiki.qemu-project.org/download/${P}.tar.bz2
${BACKPORTS:+
https://dev.gentoo.org/~cardoe/distfiles/${P}-${BACKPORTS}.tar.xz}"
KEYWORDS="~amd64 ~ppc ~ppc64 ~x86 ~x86-fbsd"
fi
DESCRIPTION="QEMU + Kernel-based Virtual Machine userland tools"
HOMEPAGE="http://www.qemu.org http://www.linux-kvm.org"
LICENSE="GPL-2 LGPL-2 BSD-2"
SLOT="0"
IUSE="accessibility +aio alsa bluetooth +caps +curl debug +fdt glusterfs \
gtk gtk2 infiniband iscsi +jpeg \
kernel_linux kernel_FreeBSD lzo ncurses nfs nls numa opengl +pin-upstream-blobs
+png pulseaudio python \
rbd sasl +seccomp sdl sdl2 selinux smartcard snappy spice ssh static static-softmmu
static-user systemtap tci test +threads tls usb usbredir +uuid vde +vhost-net \
virtfs +vnc vte xattr xen xfs"
COMMON_TARGETS="aarch64 alpha arm cris i386 m68k microblaze microblazeel mips
mips64 mips64el mipsel or32 ppc ppc64 s390x sh4 sh4eb sparc sparc64 unicore32
x86_64"
IUSE_SOFTMMU_TARGETS="${COMMON_TARGETS} lm32 moxie ppcemb tricore xtensa xtensaeb"
IUSE_USER_TARGETS="${COMMON_TARGETS} armeb mipsn32 mipsn32el ppc64abi32 ppc64le sparc32plus"
use_softmmu_targets=$(printf ' qemu_softmmu_targets_%s' ${IUSE_SOFTMMU_TARGETS})
use_user_targets=$(printf ' qemu_user_targets_%s' ${IUSE_USER_TARGETS})
IUSE+=" ${use_softmmu_targets} ${use_user_targets}"
# Allow no targets to be built so that people can get a tools-only build.
# Block USE flag configurations known to not work.
REQUIRED_USE="${PYTHON_REQUIRED_USE}
gtk2? ( gtk )
qemu_softmmu_targets_arm? ( fdt )
qemu_softmmu_targets_microblaze? ( fdt )
qemu_softmmu_targets_ppc? ( fdt )
qemu_softmmu_targets_ppc64? ( fdt )
sdl2? ( sdl )
static? ( static-softmmu static-user )
static-softmmu? ( !alsa !pulseaudio !bluetooth !opengl !gtk !gtk2 )
virtfs? ( xattr )
vte? ( gtk )"
# Yep, you need both libcap and libcap-ng since virtfs only uses libcap.
#
# The attr lib isn't always linked in (although the USE flag is always
# respected). This is because qemu supports using the C library's API
# when available rather than always using the extranl library.
COMMON_LIB_DEPEND=">=dev-libs/glib-2.0[static-libs(+)]
sys-libs/zlib[static-libs(+)]
xattr? ( sys-apps/attr[static-libs(+)] )"
SOFTMMU_LIB_DEPEND="${COMMON_LIB_DEPEND}
>=x11-libs/pixman-0.28.0[static-libs(+)]
accessibility? ( app-accessibility/brltty[static-libs(+)] )
aio? ( dev-libs/libaio[static-libs(+)] )
alsa? ( >=media-libs/alsa-lib-1.0.13 )
bluetooth? ( net-wireless/bluez )
caps? ( sys-libs/libcap-ng[static-libs(+)] )
curl? ( >=net-misc/curl-7.15.4[static-libs(+)] )
fdt? ( >=sys-apps/dtc-1.4.0[static-libs(+)] )
glusterfs? ( >=sys-cluster/glusterfs-3.4.0[static-libs(+)] )
gtk? (
gtk2? (
x11-libs/gtk+:2
vte? ( x11-libs/vte:0 )
)
!gtk2? (
x11-libs/gtk+:3
vte? ( x11-libs/vte:2.90 )
)
)
infiniband? ( sys-infiniband/librdmacm:=[static-libs(+)] )
iscsi? ( net-libs/libiscsi )
jpeg? ( virtual/jpeg:=[static-libs(+)] )
lzo? ( dev-libs/lzo:2[static-libs(+)] )
ncurses? ( sys-libs/ncurses:0=[static-libs(+)] )
nfs? ( >=net-fs/libnfs-1.9.3[static-libs(+)] )
numa? ( sys-process/numactl[static-libs(+)] )
opengl? (
virtual/opengl
media-libs/libepoxy[static-libs(+)]
media-libs/mesa[static-libs(+)]
media-libs/mesa[egl,gles2]
)
png? ( media-libs/libpng:0=[static-libs(+)] )
pulseaudio? ( media-sound/pulseaudio )
rbd? ( sys-cluster/ceph[static-libs(+)] )
sasl? ( dev-libs/cyrus-sasl[static-libs(+)] )
sdl? (
!sdl2? (
media-libs/libsdl[X]
>=media-libs/libsdl-1.2.11[static-libs(+)]
)
sdl2? (
media-libs/libsdl2[X]
media-libs/libsdl2[static-libs(+)]
)
)
seccomp? ( >=sys-libs/libseccomp-2.1.0[static-libs(+)] )
smartcard? ( dev-libs/nss !app-emulation/libcacard )
snappy? ( app-arch/snappy[static-libs(+)] )
spice? (
>=app-emulation/spice-protocol-0.12.3
>=app-emulation/spice-0.12.0[static-libs(+)]
)
ssh? ( >=net-libs/libssh2-1.2.8[static-libs(+)] )
tls? ( net-libs/gnutls[static-libs(+)] )
usb? ( >=virtual/libusb-1-r2[static-libs(+)] )
usbredir? ( >=sys-apps/usbredir-0.6[static-libs(+)] )
uuid? ( >=sys-apps/util-linux-2.16.0[static-libs(+)] )
vde? ( net-misc/vde[static-libs(+)] )
virtfs? ( sys-libs/libcap )
xfs? ( sys-fs/xfsprogs[static-libs(+)] )"
USER_LIB_DEPEND="${COMMON_LIB_DEPEND}"
X86_FIRMWARE_DEPEND="
>=sys-firmware/ipxe-1.0.0_p20130624
pin-upstream-blobs? (
~sys-firmware/seabios-1.8.2
~sys-firmware/sgabios-0.1_pre8
~sys-firmware/vgabios-0.7a
)
!pin-upstream-blobs? (
sys-firmware/seabios
sys-firmware/sgabios
sys-firmware/vgabios
)"
CDEPEND="
!static-softmmu? ( $(printf "%s? ( ${SOFTMMU_LIB_DEPEND//\[static-libs(+)]} ) " ${use_softmmu_targets}) )
!static-user? ( $(printf "%s? ( ${USER_LIB_DEPEND//\[static-libs(+)]} ) " ${use_user_targets}) )
qemu_softmmu_targets_i386? ( ${X86_FIRMWARE_DEPEND} )
qemu_softmmu_targets_x86_64? ( ${X86_FIRMWARE_DEPEND} )
python? ( ${PYTHON_DEPS} )
systemtap? ( dev-util/systemtap )
xen? ( app-emulation/xen-tools )"
DEPEND="${CDEPEND}
dev-lang/perl
=dev-lang/python-2*
sys-apps/texinfo
virtual/pkgconfig
kernel_linux? ( >=sys-kernel/linux-headers-2.6.35 )
gtk? ( nls? ( sys-devel/gettext ) )
static-softmmu? ( $(printf "%s? ( ${SOFTMMU_LIB_DEPEND} ) " ${use_softmmu_targets}) )
static-user? ( $(printf "%s? ( ${USER_LIB_DEPEND} ) " ${use_user_targets}) )
test? (
dev-libs/glib[utils]
sys-devel/bc
)"
RDEPEND="${CDEPEND}
selinux? ( sec-policy/selinux-qemu )
"
STRIP_MASK="/usr/share/qemu/palcode-clipper"
QA_PREBUILT="
usr/share/qemu/openbios-ppc
usr/share/qemu/openbios-sparc64
usr/share/qemu/openbios-sparc32
usr/share/qemu/palcode-clipper
usr/share/qemu/s390-ccw.img
usr/share/qemu/u-boot.e500
"
QA_WX_LOAD="usr/bin/qemu-i386
usr/bin/qemu-x86_64
usr/bin/qemu-alpha
usr/bin/qemu-arm
usr/bin/qemu-cris
usr/bin/qemu-m68k
usr/bin/qemu-microblaze
usr/bin/qemu-microblazeel
usr/bin/qemu-mips
usr/bin/qemu-mipsel
usr/bin/qemu-or32
usr/bin/qemu-ppc
usr/bin/qemu-ppc64
usr/bin/qemu-ppc64abi32
usr/bin/qemu-sh4
usr/bin/qemu-sh4eb
usr/bin/qemu-sparc
usr/bin/qemu-sparc64
usr/bin/qemu-armeb
usr/bin/qemu-sparc32plus
usr/bin/qemu-s390x
usr/bin/qemu-unicore32"
DOC_CONTENTS="If you don't have kvm compiled into the kernel, make sure
you have the kernel module loaded before running kvm. The easiest way to
ensure that the kernel module is loaded is to load it on boot.\n
For AMD CPUs the module is called 'kvm-amd'\n
For Intel CPUs the module is called 'kvm-intel'\n
Please review /etc/conf.d/modules for how to load these\n\n
Make sure your user is in the 'kvm' group\n
Just run 'gpasswd -a <USER> kvm', then have <USER> re-login."
qemu_support_kvm() {
if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386 \
use qemu_softmmu_targets_ppc || use qemu_softmmu_targets_ppc64 \
use qemu_softmmu_targets_s390x; then
return 0
fi
return 1
}
pkg_pretend() {
if use kernel_linux && kernel_is lt 2 6 25; then
eerror "This version of KVM requres a host kernel of 2.6.25 or higher."
elif use kernel_linux; then
if ! linux_config_exists; then
eerror "Unable to check your kernel for KVM support"
else
CONFIG_CHECK="~KVM ~TUN ~BRIDGE"
ERROR_KVM="You must enable KVM in your kernel to continue"
ERROR_KVM_AMD="If you have an AMD CPU, you must enable KVM_AMD in"
ERROR_KVM_AMD+=" your kernel configuration."
ERROR_KVM_INTEL="If you have an Intel CPU, you must enable"
ERROR_KVM_INTEL+=" KVM_INTEL in your kernel configuration."
ERROR_TUN="You will need the Universal TUN/TAP driver compiled"
ERROR_TUN+=" into your kernel or loaded as a module to use the"
ERROR_TUN+=" virtual network device if using -net tap."
ERROR_BRIDGE="You will also need support for 802.1d"
ERROR_BRIDGE+=" Ethernet Bridging for some network configurations."
use vhost-net && CONFIG_CHECK+=" ~VHOST_NET"
ERROR_VHOST_NET="You must enable VHOST_NET to have vhost-net"
ERROR_VHOST_NET+=" support"
if use amd64 || use x86 || use amd64-linux || use x86-linux; then
CONFIG_CHECK+=" ~KVM_AMD ~KVM_INTEL"
fi
use python && CONFIG_CHECK+=" ~DEBUG_FS"
ERROR_DEBUG_FS="debugFS support required for kvm_stat"
# Now do the actual checks setup above
check_extra_config
fi
fi
if grep -qs '/usr/bin/qemu-kvm' "${EROOT}"/etc/libvirt/qemu/*.xml; then
eerror "The kvm/qemu-kvm wrappers no longer exist, but your libvirt"
eerror "instances are still pointing to it. Please update your"
eerror "configs in /etc/libvirt/qemu/ to use the -enable-kvm flag"
eerror "and the right system binary (e.g. qemu-system-x86_64)."
die "update your virt configs to not use qemu-kvm"
fi
}
pkg_setup() {
enewgroup kvm 78
}
# Sanity check to make sure target lists are kept up-to-date.
check_targets() {
local var=$1 mak=$2
local detected sorted
pushd "${S}"/default-configs >/dev/null || die
# Force C locale until glibc is updated. #564936
detected=$(echo $(printf '%s\n' *-${mak}.mak | sed "s:-${mak}.mak::" | LC_COLLATE=C sort -u))
sorted=$(echo $(printf '%s\n' ${!var} | LC_COLLATE=C sort -u))
if [[ ${sorted} != "${detected}" ]] ; then
eerror "The ebuild needs to be kept in sync."
eerror "${var}: ${sorted}"
eerror "$(printf '%-*s' ${#var} configure): ${detected}"
die "sync ${var} to the list of targets"
fi
popd >/dev/null
}
src_prepare() {
check_targets IUSE_SOFTMMU_TARGETS softmmu
check_targets IUSE_USER_TARGETS linux-user
# Alter target makefiles to accept CFLAGS set via flag-o
sed -i -r \
-e 's/^(C|OP_C|HELPER_C)FLAGS=/\1FLAGS+=/' \
Makefile Makefile.target || die
# Cheap hack to disable gettext .mo generation.
use nls || rm -f po/*.po
epatch "${FILESDIR}"/qemu-1.7.0-cflags.patch
epatch "${FILESDIR}"/${PN}-2.4-mips-* #563162
[[ -n ${BACKPORTS} ]] && \
EPATCH_FORCE=yes EPATCH_SUFFIX="patch" EPATCH_SOURCE="${S}/patches" \
epatch
# Fix ld and objcopy being called directly
tc-export AR LD OBJCOPY
# Verbose builds
MAKEOPTS+=" V=1"
epatch_user
}
##
# configures qemu based on the build directory and the build type
# we are using.
#
qemu_src_configure() {
debug-print-function ${FUNCNAME} "$@"
local buildtype=$1
local builddir="${S}/${buildtype}-build"
local static_flag="static-${buildtype}"
mkdir "${builddir}"
local conf_opts=(
--prefix=/usr
--sysconfdir=/etc
--libdir=/usr/$(get_libdir)
--docdir=/usr/share/doc/${PF}/html
--disable-bsd-user
--disable-guest-agent
--disable-strip
--disable-werror
--python="${PYTHON}"
--cc="$(tc-getCC)"
--cxx="$(tc-getCXX)"
--host-cc="$(tc-getBUILD_CC)"
$(use_enable debug debug-info)
$(use_enable debug debug-tcg)
--enable-docs
$(use_enable tci tcg-interpreter)
$(use_enable xattr attr)
)
# Disable options not used by user targets as the default configure
# options will autoprobe and try to link in a bunch of unused junk.
conf_softmmu() {
if [[ ${buildtype} == "user" ]] ; then
echo "--disable-${2:-$1}"
else
use_enable "$@"
fi
}
conf_opts+=(
$(conf_softmmu accessibility brlapi)
$(conf_softmmu aio linux-aio)
$(conf_softmmu bluetooth bluez)
$(conf_softmmu caps cap-ng)
$(conf_softmmu curl)
$(conf_softmmu fdt)
$(conf_softmmu glusterfs)
$(conf_softmmu gtk)
$(conf_softmmu infiniband rdma)
$(conf_softmmu iscsi libiscsi)
$(conf_softmmu jpeg vnc-jpeg)
$(conf_softmmu kernel_linux kvm)
$(conf_softmmu lzo)
$(conf_softmmu ncurses curses)
$(conf_softmmu nfs libnfs)
$(conf_softmmu numa)
$(conf_softmmu opengl)
$(conf_softmmu png vnc-png)
$(conf_softmmu rbd)
$(conf_softmmu sasl vnc-sasl)
$(conf_softmmu sdl)
$(conf_softmmu seccomp)
$(conf_softmmu smartcard smartcard-nss)
$(conf_softmmu snappy)
$(conf_softmmu spice)
$(conf_softmmu ssh libssh2)
$(conf_softmmu tls vnc-tls)
$(conf_softmmu usb libusb)
$(conf_softmmu usbredir usb-redir)
$(conf_softmmu uuid)
$(conf_softmmu vde)
$(conf_softmmu vhost-net)
$(conf_softmmu virtfs)
$(conf_softmmu vnc)
$(conf_softmmu vte)
$(conf_softmmu xen)
$(conf_softmmu xen xen-pci-passthrough)
$(conf_softmmu xfs xfsctl)
)
case ${buildtype} in
user)
conf_opts+=(
--enable-linux-user
--disable-system
--disable-blobs
--disable-tools
)
;;
softmmu)
# audio options
local audio_opts="oss"
use alsa && audio_opts="alsa,${audio_opts}"
use sdl && audio_opts="sdl,${audio_opts}"
use pulseaudio && audio_opts="pa,${audio_opts}"
conf_opts+=(
--disable-linux-user
--enable-system
--with-system-pixman
--audio-drv-list="${audio_opts}"
)
use gtk && conf_opts+=( --with-gtkabi=$(usex gtk2 2.0 3.0) )
use sdl && conf_opts+=( --with-sdlabi=$(usex sdl2 2.0 1.2) )
;;
tools)
conf_opts+=(
--disable-linux-user
--disable-system
--disable-blobs
)
static_flag="static"
;;
esac
local targets="${buildtype}_targets"
[[ -n ${targets} ]] && conf_opts+=( --target-list="${!targets}" )
# Add support for SystemTAP
use systemtap && conf_opts+=( --enable-trace-backend=dtrace )
# We always want to attempt to build with PIE support as it results
# in a more secure binary. But it doesn't work with static or if
# the current GCC doesn't have PIE support.
if use ${static_flag}; then
conf_opts+=( --static --disable-pie )
else
gcc-specs-pie && conf_opts+=( --enable-pie )
fi
echo "../configure ${conf_opts[*]}"
cd "${builddir}"
../configure "${conf_opts[@]}" || die "configure failed"
# FreeBSD's kernel does not support QEMU assigning/grabbing
# host USB devices yet
use kernel_FreeBSD && \
sed -i -E -e "s|^(HOST_USB=)bsd|\1stub|" "${S}"/config-host.mak
}
src_configure() {
local target
python_setup
softmmu_targets= softmmu_bins=()
user_targets= user_bins=()
for target in ${IUSE_SOFTMMU_TARGETS} ; do
if use "qemu_softmmu_targets_${target}"; then
softmmu_targets+=",${target}-softmmu"
softmmu_bins+=( "qemu-system-${target}" )
fi
done
for target in ${IUSE_USER_TARGETS} ; do
if use "qemu_user_targets_${target}"; then
user_targets+=",${target}-linux-user"
user_bins+=( "qemu-${target}" )
fi
done
softmmu_targets=${softmmu_targets#,}
user_targets=${user_targets#,}
[[ -n ${softmmu_targets} ]] && qemu_src_configure "softmmu"
[[ -n ${user_targets} ]] && qemu_src_configure "user"
[[ -z ${softmmu_targets}${user_targets} ]] && qemu_src_configure "tools"
}
src_compile() {
if [[ -n ${user_targets} ]]; then
cd "${S}/user-build"
default
fi
if [[ -n ${softmmu_targets} ]]; then
cd "${S}/softmmu-build"
default
fi
if [[ -z ${softmmu_targets}${user_targets} ]]; then
cd "${S}/tools-build"
default
fi
}
src_test() {
if [[ -n ${softmmu_targets} ]]; then
cd "${S}/softmmu-build"
pax-mark m */qemu-system-* #515550
emake -j1 check
emake -j1 check-report.html
fi
}
qemu_python_install() {
python_domodule "${S}/scripts/qmp/qmp.py"
python_doscript "${S}/scripts/kvm/kvm_stat"
python_doscript "${S}/scripts/kvm/vmxcap"
python_doscript "${S}/scripts/qmp/qmp-shell"
python_doscript "${S}/scripts/qmp/qemu-ga-client"
}
src_install() {
if [[ -n ${user_targets} ]]; then
cd "${S}/user-build"
emake DESTDIR="${ED}" install
# Install binfmt handler init script for user targets
newinitd "${FILESDIR}/qemu-binfmt.initd-r1" qemu-binfmt
fi
if [[ -n ${softmmu_targets} ]]; then
cd "${S}/softmmu-build"
emake DESTDIR="${ED}" install
# This might not exist if the test failed. #512010
[[ -e check-report.html ]] && dohtml check-report.html
if use kernel_linux; then
udev_dorules "${FILESDIR}"/65-kvm.rules
fi
if use python; then
python_foreach_impl qemu_python_install
fi
fi
if [[ -z ${softmmu_targets}${user_targets} ]]; then
cd "${S}/tools-build"
emake DESTDIR="${ED}" install
fi
# Disable mprotect on the qemu binaries as they use JITs to be fast #459348
pushd "${ED}"/usr/bin >/dev/null
pax-mark m "${softmmu_bins[@]}" "${user_bins[@]}"
popd >/dev/null
# Install config file example for qemu-bridge-helper
insinto "/etc/qemu"
doins "${FILESDIR}/bridge.conf"
# Remove the docdir placed qmp-commands.txt
mv "${ED}/usr/share/doc/${PF}/html/qmp-commands.txt" "${S}/docs/qmp/"
cd "${S}"
dodoc Changelog MAINTAINERS docs/specs/pci-ids.txt
newdoc pc-bios/README README.pc-bios
dodoc docs/qmp/*.txt
if [[ -n ${softmmu_targets} ]]; then
# Remove SeaBIOS since we're using the SeaBIOS packaged one
rm "${ED}/usr/share/qemu/bios.bin"
if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
dosym ../seabios/bios.bin /usr/share/qemu/bios.bin
fi
# Remove vgabios since we're using the vgabios packaged one
rm "${ED}/usr/share/qemu/vgabios.bin"
rm "${ED}/usr/share/qemu/vgabios-cirrus.bin"
rm "${ED}/usr/share/qemu/vgabios-qxl.bin"
rm "${ED}/usr/share/qemu/vgabios-stdvga.bin"
rm "${ED}/usr/share/qemu/vgabios-vmware.bin"
if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
dosym ../vgabios/vgabios.bin /usr/share/qemu/vgabios.bin
dosym ../vgabios/vgabios-cirrus.bin /usr/share/qemu/vgabios-cirrus.bin
dosym ../vgabios/vgabios-qxl.bin /usr/share/qemu/vgabios-qxl.bin
dosym ../vgabios/vgabios-stdvga.bin /usr/share/qemu/vgabios-stdvga.bin
dosym ../vgabios/vgabios-vmware.bin /usr/share/qemu/vgabios-vmware.bin
fi
# Remove sgabios since we're using the sgabios packaged one
rm "${ED}/usr/share/qemu/sgabios.bin"
if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
dosym ../sgabios/sgabios.bin /usr/share/qemu/sgabios.bin
fi
# Remove iPXE since we're using the iPXE packaged one
rm "${ED}"/usr/share/qemu/pxe-*.rom
if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
dosym ../ipxe/8086100e.rom /usr/share/qemu/pxe-e1000.rom
dosym ../ipxe/80861209.rom /usr/share/qemu/pxe-eepro100.rom
dosym ../ipxe/10500940.rom /usr/share/qemu/pxe-ne2k_pci.rom
dosym ../ipxe/10222000.rom /usr/share/qemu/pxe-pcnet.rom
dosym ../ipxe/10ec8139.rom /usr/share/qemu/pxe-rtl8139.rom
dosym ../ipxe/1af41000.rom /usr/share/qemu/pxe-virtio.rom
fi
fi
qemu_support_kvm && readme.gentoo_create_doc
}
pkg_postinst() {
if qemu_support_kvm; then
readme.gentoo_print_elog
fi
if [[ -n ${softmmu_targets} ]] && use kernel_linux; then
udev_reload
fi
fcaps cap_net_admin /usr/libexec/qemu-bridge-helper
if use virtfs && [ -n "${softmmu_targets}" ]; then
local virtfs_caps="cap_chown,cap_dac_override,cap_fowner,cap_fsetid,cap_setgid,cap_mknod,cap_setuid"
fcaps ${virtfs_caps} /usr/bin/virtfs-proxy-helper
fi
}
pkg_info() {
echo "Using:"
echo " $(best_version app-emulation/spice-protocol)"
echo " $(best_version sys-firmware/ipxe)"
echo " $(best_version sys-firmware/seabios)"
if has_version 'sys-firmware/seabios[binary]'; then
echo " USE=binary"
else
echo " USE=''"
fi
echo " $(best_version sys-firmware/vgabios)"
}

View File

@ -1,6 +1,6 @@
# Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/app-emulation/qemu/qemu-9999.ebuild,v 1.106 2015/08/05 06:47:50 vapier Exp $
# $Id$
EAPI=5
@ -19,7 +19,7 @@ if [[ ${PV} = *9999* ]]; then
else
SRC_URI="http://wiki.qemu-project.org/download/${P}.tar.bz2
${BACKPORTS:+
http://dev.gentoo.org/~cardoe/distfiles/${P}-${BACKPORTS}.tar.xz}"
https://dev.gentoo.org/~cardoe/distfiles/${P}-${BACKPORTS}.tar.xz}"
KEYWORDS="~amd64 ~ppc ~ppc64 ~x86 ~x86-fbsd"
fi
@ -29,18 +29,18 @@ HOMEPAGE="http://www.qemu.org http://www.linux-kvm.org"
LICENSE="GPL-2 LGPL-2 BSD-2"
SLOT="0"
IUSE="accessibility +aio alsa bluetooth +caps +curl debug +fdt glusterfs \
gtk gtk2 infiniband iscsi +jpeg \
gnutls gtk gtk2 infiniband iscsi +jpeg \
kernel_linux kernel_FreeBSD lzo ncurses nfs nls numa opengl +pin-upstream-blobs
+png pulseaudio python \
rbd sasl +seccomp sdl sdl2 selinux smartcard snappy spice ssh static static-softmmu
static-user systemtap tci test +threads tls usb usbredir +uuid vde +vhost-net \
static-user systemtap tci test +threads usb usbredir +uuid vde +vhost-net \
virtfs +vnc vte xattr xen xfs"
COMMON_TARGETS="aarch64 alpha arm cris i386 m68k microblaze microblazeel mips
mips64 mips64el mipsel or32 ppc ppc64 s390x sh4 sh4eb sparc sparc64 unicore32
x86_64"
IUSE_SOFTMMU_TARGETS="${COMMON_TARGETS} lm32 moxie ppcemb xtensa xtensaeb"
IUSE_USER_TARGETS="${COMMON_TARGETS} armeb mipsn32 mipsn32el ppc64abi32 sparc32plus"
IUSE_SOFTMMU_TARGETS="${COMMON_TARGETS} lm32 moxie ppcemb tricore xtensa xtensaeb"
IUSE_USER_TARGETS="${COMMON_TARGETS} armeb mipsn32 mipsn32el ppc64abi32 ppc64le sparc32plus tilegx"
use_softmmu_targets=$(printf ' qemu_softmmu_targets_%s' ${IUSE_SOFTMMU_TARGETS})
use_user_targets=$(printf ' qemu_user_targets_%s' ${IUSE_USER_TARGETS})
@ -65,43 +65,82 @@ REQUIRED_USE="${PYTHON_REQUIRED_USE}
# The attr lib isn't always linked in (although the USE flag is always
# respected). This is because qemu supports using the C library's API
# when available rather than always using the extranl library.
#
# Older versions of gnutls are supported, but it's simpler to just require
# the latest versions. This is also why we require nettle.
COMMON_LIB_DEPEND=">=dev-libs/glib-2.0[static-libs(+)]
sys-libs/zlib[static-libs(+)]
xattr? ( sys-apps/attr[static-libs(+)] )"
SOFTMMU_LIB_DEPEND="${COMMON_LIB_DEPEND}
>=x11-libs/pixman-0.28.0[static-libs(+)]
accessibility? ( app-accessibility/brltty[static-libs(+)] )
aio? ( dev-libs/libaio[static-libs(+)] )
alsa? ( >=media-libs/alsa-lib-1.0.13 )
bluetooth? ( net-wireless/bluez )
caps? ( sys-libs/libcap-ng[static-libs(+)] )
curl? ( >=net-misc/curl-7.15.4[static-libs(+)] )
fdt? ( >=sys-apps/dtc-1.4.0[static-libs(+)] )
glusterfs? ( >=sys-cluster/glusterfs-3.4.0[static-libs(+)] )
gnutls? (
dev-libs/nettle[static-libs(+)]
>=net-libs/gnutls-3.0[static-libs(+)]
)
gtk? (
gtk2? (
x11-libs/gtk+:2
vte? ( x11-libs/vte:0 )
)
!gtk2? (
x11-libs/gtk+:3
vte? ( x11-libs/vte:2.90 )
)
)
infiniband? ( sys-infiniband/librdmacm:=[static-libs(+)] )
iscsi? ( net-libs/libiscsi )
jpeg? ( virtual/jpeg:=[static-libs(+)] )
lzo? ( dev-libs/lzo:2[static-libs(+)] )
ncurses? ( sys-libs/ncurses[static-libs(+)] )
ncurses? ( sys-libs/ncurses:0=[static-libs(+)] )
nfs? ( >=net-fs/libnfs-1.9.3[static-libs(+)] )
numa? ( sys-process/numactl[static-libs(+)] )
opengl? (
virtual/opengl
media-libs/libepoxy[static-libs(+)]
media-libs/mesa[static-libs(+)]
media-libs/mesa[egl,gles2]
)
png? ( media-libs/libpng:0=[static-libs(+)] )
pulseaudio? ( media-sound/pulseaudio )
rbd? ( sys-cluster/ceph[static-libs(+)] )
sasl? ( dev-libs/cyrus-sasl[static-libs(+)] )
sdl? (
!sdl2? ( >=media-libs/libsdl-1.2.11[static-libs(+)] )
sdl2? ( media-libs/libsdl2[static-libs(+)] )
!sdl2? (
media-libs/libsdl[X]
>=media-libs/libsdl-1.2.11[static-libs(+)]
)
sdl2? (
media-libs/libsdl2[X]
media-libs/libsdl2[static-libs(+)]
)
)
seccomp? ( >=sys-libs/libseccomp-2.1.0[static-libs(+)] )
smartcard? ( dev-libs/nss !app-emulation/libcacard )
snappy? ( app-arch/snappy[static-libs(+)] )
spice? ( >=app-emulation/spice-0.12.0[static-libs(+)] )
spice? (
>=app-emulation/spice-protocol-0.12.3
>=app-emulation/spice-0.12.0[static-libs(+)]
)
ssh? ( >=net-libs/libssh2-1.2.8[static-libs(+)] )
tls? ( net-libs/gnutls[static-libs(+)] )
usb? ( >=dev-libs/libusb-1.0.18[static-libs(+)] )
usb? ( >=virtual/libusb-1-r2[static-libs(+)] )
usbredir? ( >=sys-apps/usbredir-0.6[static-libs(+)] )
uuid? ( >=sys-apps/util-linux-2.16.0[static-libs(+)] )
vde? ( net-misc/vde[static-libs(+)] )
virtfs? ( sys-libs/libcap )
xfs? ( sys-fs/xfsprogs[static-libs(+)] )"
USER_LIB_DEPEND="${COMMON_LIB_DEPEND}"
X86_FIRMWARE_DEPEND="
>=sys-firmware/ipxe-1.0.0_p20130624
pin-upstream-blobs? (
~sys-firmware/seabios-1.7.5
~sys-firmware/seabios-1.8.2
~sys-firmware/sgabios-0.1_pre8
~sys-firmware/vgabios-0.7a
)
@ -115,35 +154,8 @@ CDEPEND="
!static-user? ( $(printf "%s? ( ${USER_LIB_DEPEND//\[static-libs(+)]} ) " ${use_user_targets}) )
qemu_softmmu_targets_i386? ( ${X86_FIRMWARE_DEPEND} )
qemu_softmmu_targets_x86_64? ( ${X86_FIRMWARE_DEPEND} )
accessibility? ( app-accessibility/brltty )
alsa? ( >=media-libs/alsa-lib-1.0.13 )
bluetooth? ( net-wireless/bluez )
gtk? (
gtk2? (
x11-libs/gtk+:2
vte? ( x11-libs/vte:0 )
)
!gtk2? (
x11-libs/gtk+:3
vte? ( x11-libs/vte:2.90 )
)
)
iscsi? ( net-libs/libiscsi )
opengl? (
virtual/opengl
media-libs/mesa[gles2]
)
pulseaudio? ( media-sound/pulseaudio )
python? ( ${PYTHON_DEPS} )
sdl? (
!sdl2? ( media-libs/libsdl[X] )
sdl2? ( media-libs/libsdl2[X] )
)
smartcard? ( dev-libs/nss !app-emulation/libcacard )
spice? ( >=app-emulation/spice-protocol-0.12.3 )
systemtap? ( dev-util/systemtap )
usbredir? ( >=sys-apps/usbredir-0.6 )
virtfs? ( sys-libs/libcap )
xen? ( app-emulation/xen-tools )"
DEPEND="${CDEPEND}
dev-lang/perl
@ -262,7 +274,30 @@ pkg_setup() {
enewgroup kvm 78
}
# Sanity check to make sure target lists are kept up-to-date.
check_targets() {
local var=$1 mak=$2
local detected sorted
pushd "${S}"/default-configs >/dev/null || die
# Force C locale until glibc is updated. #564936
detected=$(echo $(printf '%s\n' *-${mak}.mak | sed "s:-${mak}.mak::" | LC_COLLATE=C sort -u))
sorted=$(echo $(printf '%s\n' ${!var} | LC_COLLATE=C sort -u))
if [[ ${sorted} != "${detected}" ]] ; then
eerror "The ebuild needs to be kept in sync."
eerror "${var}: ${sorted}"
eerror "$(printf '%-*s' ${#var} configure): ${detected}"
die "sync ${var} to the list of targets"
fi
popd >/dev/null
}
src_prepare() {
check_targets IUSE_SOFTMMU_TARGETS softmmu
check_targets IUSE_USER_TARGETS linux-user
# Alter target makefiles to accept CFLAGS set via flag-o
sed -i -r \
-e 's/^(C|OP_C|HELPER_C)FLAGS=/\1FLAGS+=/' \
@ -298,12 +333,6 @@ qemu_src_configure() {
mkdir "${builddir}"
# audio options
local audio_opts="oss"
use alsa && audio_opts="alsa,${audio_opts}"
use sdl && audio_opts="sdl,${audio_opts}"
use pulseaudio && audio_opts="pa,${audio_opts}"
local conf_opts=(
--prefix=/usr
--sysconfdir=/etc
@ -341,6 +370,7 @@ qemu_src_configure() {
$(conf_softmmu curl)
$(conf_softmmu fdt)
$(conf_softmmu glusterfs)
$(conf_softmmu gnutls)
$(conf_softmmu gtk)
$(conf_softmmu infiniband rdma)
$(conf_softmmu iscsi libiscsi)
@ -356,11 +386,10 @@ qemu_src_configure() {
$(conf_softmmu sasl vnc-sasl)
$(conf_softmmu sdl)
$(conf_softmmu seccomp)
$(conf_softmmu smartcard smartcard-nss)
$(conf_softmmu smartcard)
$(conf_softmmu snappy)
$(conf_softmmu spice)
$(conf_softmmu ssh libssh2)
$(conf_softmmu tls vnc-tls)
$(conf_softmmu usb libusb)
$(conf_softmmu usbredir usb-redir)
$(conf_softmmu uuid)
@ -384,6 +413,12 @@ qemu_src_configure() {
)
;;
softmmu)
# audio options
local audio_opts="oss"
use alsa && audio_opts="alsa,${audio_opts}"
use sdl && audio_opts="sdl,${audio_opts}"
use pulseaudio && audio_opts="pa,${audio_opts}"
conf_opts+=(
--disable-linux-user
--enable-system
@ -533,12 +568,12 @@ src_install() {
doins "${FILESDIR}/bridge.conf"
# Remove the docdir placed qmp-commands.txt
mv "${ED}/usr/share/doc/${PF}/html/qmp-commands.txt" "${S}/docs/qmp/"
mv "${ED}/usr/share/doc/${PF}/html/qmp-commands.txt" "${S}/docs/" || die
cd "${S}"
dodoc Changelog MAINTAINERS docs/specs/pci-ids.txt
newdoc pc-bios/README README.pc-bios
dodoc docs/qmp/*.txt
dodoc docs/qmp-*.txt
if [[ -n ${softmmu_targets} ]]; then
# Remove SeaBIOS since we're using the SeaBIOS packaged one

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,12 +0,0 @@
DEFINED_PHASES=compile configure install prepare pretend setup
DEPEND==dev-lang/python-2*
DESCRIPTION=Open Source implementation of a 16-bit x86 BIOS
EAPI=4
HOMEPAGE=http://www.seabios.org
KEYWORDS=amd64 x86
LICENSE=LGPL-3 GPL-3
RDEPEND==dev-lang/python-2*
SLOT=0
SRC_URI=http://www.linuxtogo.org/~kevin/SeaBIOS/seabios-1.6.3.tar.gz
_eclasses_=multilib 62927b3db3a589b0806255f3a002d5d3 python 3a270b7b1d1e679847ff0faeac25c5a3 toolchain-funcs 42408102d713fbad60ca21349865edb4
_md5_=ecdca0a23a7f8845967b06751031c748

View File

@ -1,12 +0,0 @@
DEFINED_PHASES=compile configure install prepare pretend setup
DEPEND==dev-lang/python-2*
DESCRIPTION=Open Source implementation of a 16-bit x86 BIOS
EAPI=4
HOMEPAGE=http://www.seabios.org
KEYWORDS=amd64 ~ppc ~ppc64 x86 ~amd64-fbsd ~x86-fbsd
LICENSE=LGPL-3 GPL-3
RDEPEND==dev-lang/python-2*
SLOT=0
SRC_URI=http://www.linuxtogo.org/~kevin/SeaBIOS/seabios-1.7.0.tar.gz http://dev.gentoo.org/~cardoe/distfiles/seabios-1.7.0-bins.tar.xz
_eclasses_=multilib 62927b3db3a589b0806255f3a002d5d3 python 3a270b7b1d1e679847ff0faeac25c5a3 toolchain-funcs 42408102d713fbad60ca21349865edb4
_md5_=a40b4a31a5148011249a8a160d523718

View File

@ -1,14 +0,0 @@
DEFINED_PHASES=compile configure install prepare pretend setup
DEPEND=!binary? ( >=sys-power/iasl-20060912 <sys-power/iasl-20130117 ) =dev-lang/python-2*
DESCRIPTION=Open Source implementation of a 16-bit x86 BIOS
EAPI=4
HOMEPAGE=http://www.seabios.org
IUSE=+binary
KEYWORDS=amd64 ~ppc ~ppc64 x86 ~amd64-fbsd ~x86-fbsd
LICENSE=LGPL-3 GPL-3
RDEPEND==dev-lang/python-2*
REQUIRED_USE=ppc? ( binary ) ppc64? ( binary )
SLOT=0
SRC_URI=http://code.coreboot.org/p/seabios/downloads/get/seabios-1.7.1.tar.gz http://code.coreboot.org/p/seabios/downloads/get/bios.bin-1.7.1.gz
_eclasses_=multilib 62927b3db3a589b0806255f3a002d5d3 python 3a270b7b1d1e679847ff0faeac25c5a3 toolchain-funcs 42408102d713fbad60ca21349865edb4
_md5_=d7febea84206a0e3b8b9ea98672d874b

View File

@ -1,14 +0,0 @@
DEFINED_PHASES=compile configure install prepare pretend setup
DEPEND=!binary? ( >=sys-power/iasl-20060912 <sys-power/iasl-20130117 ) =dev-lang/python-2*
DESCRIPTION=Open Source implementation of a 16-bit x86 BIOS
EAPI=5
HOMEPAGE=http://www.seabios.org
IUSE=+binary
KEYWORDS=amd64 ~ppc ~ppc64 x86 ~amd64-fbsd ~x86-fbsd
LICENSE=LGPL-3 GPL-3
RDEPEND==dev-lang/python-2*
REQUIRED_USE=ppc? ( binary ) ppc64? ( binary )
SLOT=0
SRC_URI=http://code.coreboot.org/p/seabios/downloads/get/seabios-1.7.2.tar.gz http://code.coreboot.org/p/seabios/downloads/get/bios.bin-1.7.2.gz
_eclasses_=eutils 9fb270e417e0e83d64ca52586c4a79de multilib 62927b3db3a589b0806255f3a002d5d3 python 3a270b7b1d1e679847ff0faeac25c5a3 toolchain-funcs 42408102d713fbad60ca21349865edb4
_md5_=f7e471f192330f5d743fd09892ddaeea

View File

@ -1,14 +0,0 @@
DEFINED_PHASES=compile configure install prepare pretend setup
DEPEND=!binary? ( >=sys-power/iasl-20060912 ) =dev-lang/python-2*
DESCRIPTION=Open Source implementation of a 16-bit x86 BIOS
EAPI=5
HOMEPAGE=http://www.seabios.org
IUSE=+binary
KEYWORDS=amd64 ~ppc ~ppc64 x86 ~amd64-fbsd ~x86-fbsd
LICENSE=LGPL-3 GPL-3
RDEPEND==dev-lang/python-2*
REQUIRED_USE=ppc? ( binary ) ppc64? ( binary )
SLOT=0
SRC_URI=http://code.coreboot.org/p/seabios/downloads/get/seabios-1.7.2.1.tar.gz http://code.coreboot.org/p/seabios/downloads/get/bios.bin-1.7.2.1.gz http://dev.gentoo.org/~cardoe/distfiles/seabios-1.7.2.1.tar.gz http://dev.gentoo.org/~cardoe/distfiles/bios.bin-1.7.2.1.gz
_eclasses_=eutils 9fb270e417e0e83d64ca52586c4a79de multilib 62927b3db3a589b0806255f3a002d5d3 python 3a270b7b1d1e679847ff0faeac25c5a3 toolchain-funcs 42408102d713fbad60ca21349865edb4
_md5_=bed3af82521cd2ee5852a8eba0856f0b

View File

@ -1,13 +0,0 @@
DEFINED_PHASES=compile configure install prepare pretend setup
DEPEND=!binary? ( >=sys-power/iasl-20060912 || ( >=dev-lang/python-2.7.5-r2:2.7 ) )
DESCRIPTION=Open Source implementation of a 16-bit x86 BIOS
EAPI=5
HOMEPAGE=http://www.seabios.org
IUSE=+binary
KEYWORDS=amd64 ~ppc ~ppc64 x86 ~amd64-fbsd ~x86-fbsd
LICENSE=LGPL-3 GPL-3
REQUIRED_USE=ppc? ( binary ) ppc64? ( binary )
SLOT=0
SRC_URI=http://code.coreboot.org/p/seabios/downloads/get/seabios-1.7.2.2.tar.gz http://code.coreboot.org/p/seabios/downloads/get/bios.bin-1.7.2.2.gz http://dev.gentoo.org/~cardoe/distfiles/seabios-1.7.2.2.tar.gz http://dev.gentoo.org/~cardoe/distfiles/bios.bin-1.7.2.2.gz
_eclasses_=eutils 9fb270e417e0e83d64ca52586c4a79de multilib 62927b3db3a589b0806255f3a002d5d3 python-any-r1 da352ea9da8eb9bf158d56cca65d6c82 python-utils-r1 21de8071fd8a56553628301b0342f973 toolchain-funcs 42408102d713fbad60ca21349865edb4
_md5_=4ecc25fd8a39a93f85a81d7fad7d233d

View File

@ -1,13 +0,0 @@
DEFINED_PHASES=compile configure install prepare pretend setup
DEPEND=!binary? ( >=sys-power/iasl-20060912 || ( >=dev-lang/python-2.7.5-r2:2.7 ) )
DESCRIPTION=Open Source implementation of a 16-bit x86 BIOS
EAPI=5
HOMEPAGE=http://www.seabios.org
IUSE=+binary
KEYWORDS=~amd64 ~ppc ~ppc64 ~x86 ~amd64-fbsd ~x86-fbsd
LICENSE=LGPL-3 GPL-3
REQUIRED_USE=ppc? ( binary ) ppc64? ( binary )
SLOT=0
SRC_URI=http://code.coreboot.org/p/seabios/downloads/get/seabios-1.7.3.2.tar.gz http://code.coreboot.org/p/seabios/downloads/get/bios.bin-1.7.3.2.gz http://dev.gentoo.org/~cardoe/distfiles/seabios-1.7.3.2.tar.gz http://dev.gentoo.org/~cardoe/distfiles/bios.bin-1.7.3.2.gz
_eclasses_=eutils 9fb270e417e0e83d64ca52586c4a79de multilib 62927b3db3a589b0806255f3a002d5d3 python-any-r1 da352ea9da8eb9bf158d56cca65d6c82 python-utils-r1 21de8071fd8a56553628301b0342f973 toolchain-funcs 42408102d713fbad60ca21349865edb4
_md5_=52ed9de32dda28a6be7e884da013811b

View File

@ -1,4 +1,4 @@
DEFINED_PHASES=compile configure install prepare pretend setup
DEFINED_PHASES=compile configure install prepare pretend setup unpack
DEPEND=!binary? ( >=sys-power/iasl-20060912 || ( >=dev-lang/python-2.7.5-r2:2.7 ) )
DESCRIPTION=Open Source implementation of a 16-bit x86 BIOS
EAPI=5
@ -8,6 +8,6 @@ KEYWORDS=amd64 ~ppc ~ppc64 x86 ~amd64-fbsd ~x86-fbsd
LICENSE=LGPL-3 GPL-3
REQUIRED_USE=ppc? ( binary ) ppc64? ( binary )
SLOT=0
SRC_URI=http://code.coreboot.org/p/seabios/downloads/get/seabios-1.7.5.tar.gz http://code.coreboot.org/p/seabios/downloads/get/bios.bin-1.7.5.gz http://dev.gentoo.org/~cardoe/distfiles/seabios-1.7.5.tar.gz http://dev.gentoo.org/~cardoe/distfiles/bios.bin-1.7.5.gz
SRC_URI=!binary? ( http://code.coreboot.org/p/seabios/downloads/get/seabios-1.7.5.tar.gz ) binary? ( http://code.coreboot.org/p/seabios/downloads/get/bios.bin-1.7.5.gz )
_eclasses_=eutils 9fb270e417e0e83d64ca52586c4a79de multilib 62927b3db3a589b0806255f3a002d5d3 python-any-r1 da352ea9da8eb9bf158d56cca65d6c82 python-utils-r1 21de8071fd8a56553628301b0342f973 toolchain-funcs 42408102d713fbad60ca21349865edb4
_md5_=1a9c6b400c1ad79169916005d58ad62d
_md5_=2ff55836bca271c9ffcd3b0044a002ec

View File

@ -1,13 +1,13 @@
DEFINED_PHASES=compile configure install prepare pretend setup
DEFINED_PHASES=compile configure install prepare pretend setup unpack
DEPEND=!binary? ( >=sys-power/iasl-20060912 || ( >=dev-lang/python-2.7.5-r2:2.7 ) )
DESCRIPTION=Open Source implementation of a 16-bit x86 BIOS
EAPI=5
HOMEPAGE=http://www.seabios.org
IUSE=+binary
IUSE=+binary +seavgabios
KEYWORDS=~amd64 ~ppc ~ppc64 ~x86 ~amd64-fbsd ~x86-fbsd
LICENSE=LGPL-3 GPL-3
REQUIRED_USE=ppc? ( binary ) ppc64? ( binary )
SLOT=0
SRC_URI=http://code.coreboot.org/p/seabios/downloads/get/seabios-1.7.3.tar.gz http://code.coreboot.org/p/seabios/downloads/get/bios.bin-1.7.3.gz http://dev.gentoo.org/~cardoe/distfiles/seabios-1.7.3.tar.gz http://dev.gentoo.org/~cardoe/distfiles/bios.bin-1.7.3.gz
SRC_URI=!binary? ( http://code.coreboot.org/p/seabios/downloads/get/seabios-1.7.5.tar.gz ) binary? ( http://code.coreboot.org/p/seabios/downloads/get/bios.bin-1.7.5.gz seavgabios? ( mirror://debian/pool/main/s/seabios/seabios_1.7.5-1_all.deb ) )
_eclasses_=eutils 9fb270e417e0e83d64ca52586c4a79de multilib 62927b3db3a589b0806255f3a002d5d3 python-any-r1 da352ea9da8eb9bf158d56cca65d6c82 python-utils-r1 21de8071fd8a56553628301b0342f973 toolchain-funcs 42408102d713fbad60ca21349865edb4
_md5_=b7b0a1b70e63419c5a403bced9e70917
_md5_=4c7a67f3442a029633aa48b0dc2e9cbc

View File

@ -1,13 +1,13 @@
DEFINED_PHASES=compile configure install prepare pretend setup
DEFINED_PHASES=compile configure install prepare pretend setup unpack
DEPEND=!binary? ( >=sys-power/iasl-20060912 || ( >=dev-lang/python-2.7.5-r2:2.7 ) )
DESCRIPTION=Open Source implementation of a 16-bit x86 BIOS
EAPI=5
HOMEPAGE=http://www.seabios.org
IUSE=+binary
IUSE=+binary debug +seavgabios
KEYWORDS=amd64 ~ppc ~ppc64 x86 ~amd64-fbsd ~x86-fbsd
LICENSE=LGPL-3 GPL-3
REQUIRED_USE=ppc? ( binary ) ppc64? ( binary )
REQUIRED_USE=debug? ( !binary ) ppc? ( binary ) ppc64? ( binary )
SLOT=0
SRC_URI=http://code.coreboot.org/p/seabios/downloads/get/seabios-1.7.4.tar.gz http://code.coreboot.org/p/seabios/downloads/get/bios.bin-1.7.4.gz http://dev.gentoo.org/~cardoe/distfiles/seabios-1.7.4.tar.gz http://dev.gentoo.org/~cardoe/distfiles/bios.bin-1.7.4.gz
SRC_URI=!binary? ( http://code.coreboot.org/p/seabios/downloads/get/seabios-1.8.2.tar.gz ) binary? ( mirror://gentoo/bios.bin-1.8.2.xz seavgabios? ( mirror://gentoo/seavgabios-1.8.2.tar.xz ) )
_eclasses_=eutils 9fb270e417e0e83d64ca52586c4a79de multilib 62927b3db3a589b0806255f3a002d5d3 python-any-r1 da352ea9da8eb9bf158d56cca65d6c82 python-utils-r1 21de8071fd8a56553628301b0342f973 toolchain-funcs 42408102d713fbad60ca21349865edb4
_md5_=3266ba768f1ba12eaddb024ce092743c
_md5_=f9e979b417947aa3584339b20c4542bb

View File

@ -1,198 +1,89 @@
# ChangeLog for sys-firmware/seabios
# Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/sys-firmware/seabios/ChangeLog,v 1.35 2014/09/13 17:07:07 ago Exp $
# Copyright 1999-2015 Gentoo Foundation; Distributed under the GPL v2
# (auto-generated from git log)
13 Sep 2014; Agostino Sarubbo <ago@gentoo.org> seabios-1.7.5.ebuild:
Stable for x86, wrt bug #520688
*seabios-1.7.5-r1 (09 Aug 2015)
*seabios-1.7.5 (09 Aug 2015)
13 Sep 2014; Agostino Sarubbo <ago@gentoo.org> seabios-1.7.5.ebuild:
Stable for amd64, wrt bug #520688
09 Aug 2015; Robin H. Johnson <robbat2@gentoo.org> +files/seavgabios/README,
+files/seavgabios/config.vga-cirrus, +files/seavgabios/config.vga-isavga,
+files/seavgabios/config.vga-qxl, +files/seavgabios/config.vga-stdvga,
+files/seavgabios/config.vga-vmware, +metadata.xml, +seabios-1.7.5.ebuild,
+seabios-1.7.5-r1.ebuild:
proj/gentoo: Initial commit
*seabios-1.7.5 (09 Jun 2014)
This commit represents a new era for Gentoo:
Storing the gentoo-x86 tree in Git, as converted from CVS.
09 Jun 2014; Patrick Lauer <patrick@gentoo.org> +seabios-1.7.5.ebuild:
Bump
This commit is the start of the NEW history.
Any historical data is intended to be grafted onto this point.
04 Jun 2014; Agostino Sarubbo <ago@gentoo.org> seabios-1.7.4.ebuild:
Stable for x86, wrt bug #507796
Creation process:
1. Take final CVS checkout snapshot
2. Remove ALL ChangeLog* files
3. Transform all Manifests to thin
4. Remove empty Manifests
5. Convert all stale $Header$/$Id$ CVS keywords to non-expanded Git $Id$
5.1. Do not touch files with -kb/-ko keyword flags.
04 Jun 2014; Agostino Sarubbo <ago@gentoo.org> seabios-1.7.4.ebuild:
Stable for amd64, wrt bug #507796
Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
X-Thanks: Alec Warner <antarus@gentoo.org> - did the GSoC 2006 migration
tests
X-Thanks: Robin H. Johnson <robbat2@gentoo.org> - infra guy, herding this
project
X-Thanks: Nguyen Thai Ngoc Duy <pclouds@gentoo.org> - Former Gentoo
developer, wrote Git features for the migration
X-Thanks: Brian Harring <ferringb@gentoo.org> - wrote much python to improve
cvs2svn
X-Thanks: Rich Freeman <rich0@gentoo.org> - validation scripts
X-Thanks: Patrick Lauer <patrick@gentoo.org> - Gentoo dev, running new 2014
work in migration
X-Thanks: Michał Górny <mgorny@gentoo.org> - scripts, QA, nagging
X-Thanks: All of other Gentoo developers - many ideas and lots of paint on
the bikeshed
*seabios-1.7.4 (16 May 2014)
24 Aug 2015; Justin Lecher <jlec@gentoo.org> metadata.xml,
seabios-1.7.5.ebuild, seabios-1.7.5-r1.ebuild:
Use https by default
16 May 2014; Yixun Lan <dlan@gentoo.org> +seabios-1.7.4.ebuild:
version bump, fix bug 510052, 510492
Convert all URLs for sites supporting encrypted connections from http to
https
30 Apr 2014; Mike Frysinger <vapier@gentoo.org> seabios-1.7.3.ebuild,
seabios-1.7.3.2.ebuild:
Only require python deps when USE=-binary #496590 by Rafal Kupiec.
Signed-off-by: Justin Lecher <jlec@gentoo.org>
30 Apr 2014; Mike Frysinger <vapier@gentoo.org> seabios-1.6.3.ebuild,
seabios-1.7.0.ebuild, seabios-1.7.1.ebuild, seabios-1.7.2.ebuild,
seabios-1.7.2.1.ebuild, seabios-1.7.2.2.ebuild, seabios-1.7.3.ebuild,
seabios-1.7.3.2.ebuild:
Drop empty KEYWORDS/SRC_URI settings in git code path as it is unneeded and
ekeyword dislikes it.
24 Aug 2015; Mike Gilbert <floppym@gentoo.org> metadata.xml:
Revert DOCTYPE SYSTEM https changes in metadata.xml
*seabios-1.7.3.2 (19 Jan 2014)
repoman does not yet accept the https version.
This partially reverts eaaface92ee81f30a6ac66fe7acbcc42c00dc450.
19 Jan 2014; Doug Goldstein <cardoe@gentoo.org> +seabios-1.7.3.2.ebuild:
Version bump. The pre-built version is the binary shipped with qemu-1.7.0.
Bug: https://bugs.gentoo.org/552720
31 Dec 2013; Mike Gilbert <floppym@gentoo.org> seabios-1.7.3.ebuild:
Call python-any-r1_pkg_setup to avoid breaking binpkgs.
*seabios-1.8.2 (30 Aug 2015)
31 Dec 2013; Mike Gilbert <floppym@gentoo.org> seabios-1.7.3.ebuild:
Don't call python_setup if USE=binary, bug 496590.
30 Aug 2015; Mike Frysinger <vapier@gentoo.org>
+files/seavgabios/config.vga-virtio, +seabios-1.8.2.ebuild:
version bump to 1.8.2
14 Sep 2013; Agostino Sarubbo <ago@gentoo.org> seabios-1.7.2.2.ebuild:
Stable for x86, wrt bug #484686
30 Aug 2015; Mike Frysinger <vapier@gentoo.org> metadata.xml:
add qemu herd
14 Sep 2013; Agostino Sarubbo <ago@gentoo.org> seabios-1.7.2.2.ebuild:
Stable for amd64, wrt bug #484686
30 Aug 2015; Mike Frysinger <vapier@gentoo.org> seabios-1.8.2.ebuild:
add USE=debug to control debug output levels
27 Aug 2013; Doug Goldstein <cardoe@gentoo.org> seabios-1.7.3.ebuild:
Attempt to utilize toolchain functions rather than having it use the defaults.
08 Sep 2015; Agostino Sarubbo <ago@gentoo.org> seabios-1.8.2.ebuild:
amd64 stable wrt bug #558416
*seabios-1.7.3 (20 Aug 2013)
Package-Manager: portage-2.2.20.1
RepoMan-Options: --include-arches="amd64"
20 Aug 2013; Doug Goldstein <cardoe@gentoo.org> +seabios-1.7.3.ebuild,
seabios-1.7.2.2.ebuild:
Add initial SeaBIOS 1.7.3
08 Sep 2015; Agostino Sarubbo <ago@gentoo.org> seabios-1.8.2.ebuild:
x86 stable wrt bug #558416
28 Jul 2013; Jonathan Callen <jcallen@gentoo.org> seabios-1.7.2.2.ebuild:
Add missing python dependency, switch to using python-any-r1 as it is usually
more appropriate when the package does not install anything that would depend
on python at runtime.
Package-Manager: portage-2.2.20.1
RepoMan-Options: --include-arches="x86"
*seabios-1.7.2.2 (05 Jul 2013)
14 Sep 2015; Mike Frysinger <vapier@gentoo.org>
+files/seabios-1.8.2-fstack-check.patch, seabios-1.8.2.ebuild:
add upstream fix for building on hardened systems #559980
05 Jul 2013; Doug Goldstein <cardoe@gentoo.org> +seabios-1.7.2.2.ebuild:
Version bump. Switch to python-single-r1 from python eclass. Use QEMU's pre-
built binary to supply the 'upstream' pre-built binary since upstream has not
provided one for this version.
04 Jun 2013; Agostino Sarubbo <ago@gentoo.org> seabios-1.7.2.1.ebuild:
Stable for x86, wrt bug #466092
04 Jun 2013; Agostino Sarubbo <ago@gentoo.org> seabios-1.7.2.1.ebuild:
Stable for amd64, wrt bug #466092
07 May 2013; Agostino Sarubbo <ago@gentoo.org> seabios-1.7.2.ebuild:
Stable for x86, wrt bug #468918
07 May 2013; Agostino Sarubbo <ago@gentoo.org> seabios-1.7.2.ebuild:
Stable for amd64, wrt bug #468918
*seabios-1.7.2.1 (07 May 2013)
07 May 2013; Doug Goldstein <cardoe@gentoo.org> +seabios-1.7.2.1.ebuild:
Version bump. I generated the tarball from the git tag. The bios.bin file is
from qemu 1.4.1.
17 Mar 2013; Doug Goldstein <cardoe@gentoo.org> seabios-1.7.1.ebuild,
seabios-1.7.2.ebuild:
These versions are not compatible with iasl-20130117.
16 Mar 2013; Doug Goldstein <cardoe@gentoo.org> seabios-1.7.2.ebuild:
Need to include eutils, not user eclass.
12 Mar 2013; Doug Goldstein <cardoe@gentoo.org> seabios-1.6.3.ebuild,
seabios-1.7.0.ebuild, seabios-1.7.1.ebuild, seabios-1.7.2.ebuild:
Add a clear warning for people not using USE=binary.
24 Jan 2013; Agostino Sarubbo <ago@gentoo.org> seabios-1.7.1.ebuild:
Stable for x86, wrt bug #453282
24 Jan 2013; Agostino Sarubbo <ago@gentoo.org> seabios-1.7.1.ebuild:
Stable for amd64, wrt bug #453282
*seabios-1.7.2 (23 Jan 2013)
23 Jan 2013; Doug Goldstein <cardoe@gentoo.org> +seabios-1.7.2.ebuild:
Version bump
29 Oct 2012; Doug Goldstein <cardoe@gentoo.org> seabios-1.7.1.ebuild:
Fix my total breakage
*seabios-1.7.1 (29 Oct 2012)
29 Oct 2012; Doug Goldstein <cardoe@gentoo.org> +seabios-1.7.1.ebuild,
metadata.xml:
Version bump. Use upstream's prebuilt binary when requested or when we won't
be able to compile our own.
17 Oct 2012; Doug Goldstein <cardoe@gentoo.org> seabios-1.7.0.ebuild:
Fix compilation issue when built under different locales. Fix by Sergei
Trofimovich <slyfox@gentoo.org>. bug #428762
09 Oct 2012; Doug Goldstein <cardoe@gentoo.org> seabios-1.6.3.ebuild,
seabios-1.7.0.ebuild:
Drop blocker since we install to our own directory.
04 Aug 2012; Agostino Sarubbo <ago@gentoo.org> seabios-1.7.0.ebuild:
Stable for amd64, wrt bug #427590
30 Jul 2012; Jeff Horelick <jdhore@gentoo.org> seabios-1.7.0.ebuild:
marked x86 per bug 427590
26 Jul 2012; Richard Yao <ryao@gentoo.org> seabios-1.7.0.ebuild:
Keyword ~amd64-fbsd and ~x86-fbsd
21 Jul 2012; Doug Goldstein <cardoe@gentoo.org> seabios-1.7.0.ebuild:
Include pre-built versions for systems that don't support compiling this.
*seabios-1.7.0 (28 Jun 2012)
28 Jun 2012; Doug Goldstein <cardoe@gentoo.org> +seabios-1.7.0.ebuild:
Version bump. bug #423925
28 Jan 2012; Pawel Hajdan jr <phajdan.jr@gentoo.org> seabios-1.6.3.ebuild:
x86 stable wrt bug #399219
24 Jan 2012; Mike Frysinger <vapier@gentoo.org> seabios-1.6.3.ebuild:
Add depend on python-2 since we need it to build.
20 Jan 2012; Agostino Sarubbo <ago@gentoo.org> seabios-1.6.3.ebuild:
Stable for amd64, wrt bug #399219
17 Jan 2012; Doug Goldstein <cardoe@gentoo.org>
-seabios-0.6.3_pre20110817.ebuild:
Remove older version.
25 Oct 2011; Diego E. Pettenò <flameeyes@gentoo.org> seabios-1.6.3.ebuild:
QA: Actually use the damn tarball.
24 Oct 2011; Doug Goldstein <cardoe@gentoo.org>
-seabios-0.6.3_pre20010817.ebuild:
Actually remove wrong version name
*seabios-1.6.3 (24 Oct 2011)
24 Oct 2011; Doug Goldstein <cardoe@gentoo.org> +seabios-1.6.3.ebuild:
Version bump to released version
*seabios-0.6.3_pre20110817 (24 Oct 2011)
24 Oct 2011; Doug Goldstein <cardoe@gentoo.org>
+seabios-0.6.3_pre20110817.ebuild:
Fix bad version name
24 Oct 2011; Doug Goldstein <cardoe@gentoo.org>
seabios-0.6.3_pre20010817.ebuild:
Set the active Python to 2.x since this doesn't build with 3.x
21 Oct 2011; Doug Goldstein <cardoe@gentoo.org>
seabios-0.6.3_pre20010817.ebuild:
Update blockers so we mark the versions of qemu-kvm we'll work with.
19 Sep 2011; Doug Goldstein <cardoe@gentoo.org>
seabios-0.6.3_pre20010817.ebuild:
Update install path to match package name.
*seabios-0.6.3_pre20010817 (25 Aug 2011)
25 Aug 2011; Doug Goldstein <cardoe@gentoo.org>
+seabios-0.6.3_pre20010817.ebuild, +metadata.xml:
Add initial version of seabios

View File

@ -0,0 +1,225 @@
# ChangeLog for sys-firmware/seabios
# Copyright 1999-2015 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/sys-firmware/seabios/ChangeLog,v 1.40 2015/04/08 18:25:12 mgorny Exp $
08 Apr 2015; Michał Górny <mgorny@gentoo.org> seabios-1.7.5-r1.ebuild,
seabios-1.7.5.ebuild:
Drop old Python implementations
16 Mar 2015; Mike Frysinger <vapier@gentoo.org> seabios-1.7.5-r1.ebuild,
seabios-1.7.5.ebuild:
Use new toolchain helpers for selecting the bfd linker #438058 by Alexandre
Rostovtsev.
*seabios-1.7.5-r1 (15 Feb 2015)
15 Feb 2015; Mike Frysinger <vapier@gentoo.org> +files/seavgabios/README,
+files/seavgabios/config.vga-cirrus, +files/seavgabios/config.vga-isavga,
+files/seavgabios/config.vga-qxl, +files/seavgabios/config.vga-stdvga,
+files/seavgabios/config.vga-vmware, +seabios-1.7.5-r1.ebuild, metadata.xml:
Add USE=seavgabios support #523134 by Brad Laue.
15 Feb 2015; Mike Frysinger <vapier@gentoo.org> seabios-1.7.5.ebuild:
Avoid downloading files that are not used (e.g. no source tarball for
USE=binary).
08 Nov 2014; Agostino Sarubbo <ago@gentoo.org> -seabios-1.6.3.ebuild,
-seabios-1.7.0.ebuild, -seabios-1.7.1.ebuild, -seabios-1.7.2.1.ebuild,
-seabios-1.7.2.2.ebuild, -seabios-1.7.2.ebuild, -seabios-1.7.3.2.ebuild,
-seabios-1.7.3.ebuild, -seabios-1.7.4.ebuild:
Remove old
13 Sep 2014; Agostino Sarubbo <ago@gentoo.org> seabios-1.7.5.ebuild:
Stable for x86, wrt bug #520688
13 Sep 2014; Agostino Sarubbo <ago@gentoo.org> seabios-1.7.5.ebuild:
Stable for amd64, wrt bug #520688
*seabios-1.7.5 (09 Jun 2014)
09 Jun 2014; Patrick Lauer <patrick@gentoo.org> +seabios-1.7.5.ebuild:
Bump
04 Jun 2014; Agostino Sarubbo <ago@gentoo.org> seabios-1.7.4.ebuild:
Stable for x86, wrt bug #507796
04 Jun 2014; Agostino Sarubbo <ago@gentoo.org> seabios-1.7.4.ebuild:
Stable for amd64, wrt bug #507796
*seabios-1.7.4 (16 May 2014)
16 May 2014; Yixun Lan <dlan@gentoo.org> +seabios-1.7.4.ebuild:
version bump, fix bug 510052, 510492
30 Apr 2014; Mike Frysinger <vapier@gentoo.org> seabios-1.7.3.ebuild,
seabios-1.7.3.2.ebuild:
Only require python deps when USE=-binary #496590 by Rafal Kupiec.
30 Apr 2014; Mike Frysinger <vapier@gentoo.org> seabios-1.6.3.ebuild,
seabios-1.7.0.ebuild, seabios-1.7.1.ebuild, seabios-1.7.2.ebuild,
seabios-1.7.2.1.ebuild, seabios-1.7.2.2.ebuild, seabios-1.7.3.ebuild,
seabios-1.7.3.2.ebuild:
Drop empty KEYWORDS/SRC_URI settings in git code path as it is unneeded and
ekeyword dislikes it.
*seabios-1.7.3.2 (19 Jan 2014)
19 Jan 2014; Doug Goldstein <cardoe@gentoo.org> +seabios-1.7.3.2.ebuild:
Version bump. The pre-built version is the binary shipped with qemu-1.7.0.
31 Dec 2013; Mike Gilbert <floppym@gentoo.org> seabios-1.7.3.ebuild:
Call python-any-r1_pkg_setup to avoid breaking binpkgs.
31 Dec 2013; Mike Gilbert <floppym@gentoo.org> seabios-1.7.3.ebuild:
Don't call python_setup if USE=binary, bug 496590.
14 Sep 2013; Agostino Sarubbo <ago@gentoo.org> seabios-1.7.2.2.ebuild:
Stable for x86, wrt bug #484686
14 Sep 2013; Agostino Sarubbo <ago@gentoo.org> seabios-1.7.2.2.ebuild:
Stable for amd64, wrt bug #484686
27 Aug 2013; Doug Goldstein <cardoe@gentoo.org> seabios-1.7.3.ebuild:
Attempt to utilize toolchain functions rather than having it use the defaults.
*seabios-1.7.3 (20 Aug 2013)
20 Aug 2013; Doug Goldstein <cardoe@gentoo.org> +seabios-1.7.3.ebuild,
seabios-1.7.2.2.ebuild:
Add initial SeaBIOS 1.7.3
28 Jul 2013; Jonathan Callen <jcallen@gentoo.org> seabios-1.7.2.2.ebuild:
Add missing python dependency, switch to using python-any-r1 as it is usually
more appropriate when the package does not install anything that would depend
on python at runtime.
*seabios-1.7.2.2 (05 Jul 2013)
05 Jul 2013; Doug Goldstein <cardoe@gentoo.org> +seabios-1.7.2.2.ebuild:
Version bump. Switch to python-single-r1 from python eclass. Use QEMU's pre-
built binary to supply the 'upstream' pre-built binary since upstream has not
provided one for this version.
04 Jun 2013; Agostino Sarubbo <ago@gentoo.org> seabios-1.7.2.1.ebuild:
Stable for x86, wrt bug #466092
04 Jun 2013; Agostino Sarubbo <ago@gentoo.org> seabios-1.7.2.1.ebuild:
Stable for amd64, wrt bug #466092
07 May 2013; Agostino Sarubbo <ago@gentoo.org> seabios-1.7.2.ebuild:
Stable for x86, wrt bug #468918
07 May 2013; Agostino Sarubbo <ago@gentoo.org> seabios-1.7.2.ebuild:
Stable for amd64, wrt bug #468918
*seabios-1.7.2.1 (07 May 2013)
07 May 2013; Doug Goldstein <cardoe@gentoo.org> +seabios-1.7.2.1.ebuild:
Version bump. I generated the tarball from the git tag. The bios.bin file is
from qemu 1.4.1.
17 Mar 2013; Doug Goldstein <cardoe@gentoo.org> seabios-1.7.1.ebuild,
seabios-1.7.2.ebuild:
These versions are not compatible with iasl-20130117.
16 Mar 2013; Doug Goldstein <cardoe@gentoo.org> seabios-1.7.2.ebuild:
Need to include eutils, not user eclass.
12 Mar 2013; Doug Goldstein <cardoe@gentoo.org> seabios-1.6.3.ebuild,
seabios-1.7.0.ebuild, seabios-1.7.1.ebuild, seabios-1.7.2.ebuild:
Add a clear warning for people not using USE=binary.
24 Jan 2013; Agostino Sarubbo <ago@gentoo.org> seabios-1.7.1.ebuild:
Stable for x86, wrt bug #453282
24 Jan 2013; Agostino Sarubbo <ago@gentoo.org> seabios-1.7.1.ebuild:
Stable for amd64, wrt bug #453282
*seabios-1.7.2 (23 Jan 2013)
23 Jan 2013; Doug Goldstein <cardoe@gentoo.org> +seabios-1.7.2.ebuild:
Version bump
29 Oct 2012; Doug Goldstein <cardoe@gentoo.org> seabios-1.7.1.ebuild:
Fix my total breakage
*seabios-1.7.1 (29 Oct 2012)
29 Oct 2012; Doug Goldstein <cardoe@gentoo.org> +seabios-1.7.1.ebuild,
metadata.xml:
Version bump. Use upstream's prebuilt binary when requested or when we won't
be able to compile our own.
17 Oct 2012; Doug Goldstein <cardoe@gentoo.org> seabios-1.7.0.ebuild:
Fix compilation issue when built under different locales. Fix by Sergei
Trofimovich <slyfox@gentoo.org>. bug #428762
09 Oct 2012; Doug Goldstein <cardoe@gentoo.org> seabios-1.6.3.ebuild,
seabios-1.7.0.ebuild:
Drop blocker since we install to our own directory.
04 Aug 2012; Agostino Sarubbo <ago@gentoo.org> seabios-1.7.0.ebuild:
Stable for amd64, wrt bug #427590
30 Jul 2012; Jeff Horelick <jdhore@gentoo.org> seabios-1.7.0.ebuild:
marked x86 per bug 427590
26 Jul 2012; Richard Yao <ryao@gentoo.org> seabios-1.7.0.ebuild:
Keyword ~amd64-fbsd and ~x86-fbsd
21 Jul 2012; Doug Goldstein <cardoe@gentoo.org> seabios-1.7.0.ebuild:
Include pre-built versions for systems that don't support compiling this.
*seabios-1.7.0 (28 Jun 2012)
28 Jun 2012; Doug Goldstein <cardoe@gentoo.org> +seabios-1.7.0.ebuild:
Version bump. bug #423925
28 Jan 2012; Pawel Hajdan jr <phajdan.jr@gentoo.org> seabios-1.6.3.ebuild:
x86 stable wrt bug #399219
24 Jan 2012; Mike Frysinger <vapier@gentoo.org> seabios-1.6.3.ebuild:
Add depend on python-2 since we need it to build.
20 Jan 2012; Agostino Sarubbo <ago@gentoo.org> seabios-1.6.3.ebuild:
Stable for amd64, wrt bug #399219
17 Jan 2012; Doug Goldstein <cardoe@gentoo.org>
-seabios-0.6.3_pre20110817.ebuild:
Remove older version.
25 Oct 2011; Diego E. Pettenò <flameeyes@gentoo.org> seabios-1.6.3.ebuild:
QA: Actually use the damn tarball.
24 Oct 2011; Doug Goldstein <cardoe@gentoo.org>
-seabios-0.6.3_pre20010817.ebuild:
Actually remove wrong version name
*seabios-1.6.3 (24 Oct 2011)
24 Oct 2011; Doug Goldstein <cardoe@gentoo.org> +seabios-1.6.3.ebuild:
Version bump to released version
*seabios-0.6.3_pre20110817 (24 Oct 2011)
24 Oct 2011; Doug Goldstein <cardoe@gentoo.org>
+seabios-0.6.3_pre20110817.ebuild:
Fix bad version name
24 Oct 2011; Doug Goldstein <cardoe@gentoo.org>
seabios-0.6.3_pre20010817.ebuild:
Set the active Python to 2.x since this doesn't build with 3.x
21 Oct 2011; Doug Goldstein <cardoe@gentoo.org>
seabios-0.6.3_pre20010817.ebuild:
Update blockers so we mark the versions of qemu-kvm we'll work with.
19 Sep 2011; Doug Goldstein <cardoe@gentoo.org>
seabios-0.6.3_pre20010817.ebuild:
Update install path to match package name.
*seabios-0.6.3_pre20010817 (25 Aug 2011)
25 Aug 2011; Doug Goldstein <cardoe@gentoo.org>
+seabios-0.6.3_pre20010817.ebuild, +metadata.xml:
Add initial version of seabios

View File

@ -1,51 +1,20 @@
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
DIST bios.bin-1.7.1.gz 69911 SHA256 faf2385918ca5b7866b23a30a566334a2d9b70f9c0bf2904ff7b8940db4ce4d4 SHA512 eed48b6c985d6f96e419a830e9679ca739bf13f0f3f7099d4fb5c5176fbd5dd5f5d0e3998ec2132eb0a4221b55c7a71624f2845ef040c092b88f1b2c16864de6 WHIRLPOOL 47bebbebe100d35e1427ac10df09fc8df1297dd3b6015cbcd802029dc2a3854503b6551397f38ee83a079a728cce8ab788ebb5b5dc4ed68a8c079704d96c896e
DIST bios.bin-1.7.2.1.gz 71961 SHA256 b76824976a43a4379dbdd676b153e762b4e9f0097441a31d70e18c9acc1cae06 SHA512 1e66fec890842b48d11bcb81b63a0b04e3ffca2e1285c356430944819407eb08dc85c50cddab1459a8f94ec1d4492f15207f98ee30263417c47bfd31b8f2a7f1 WHIRLPOOL fc278ccb3763342ab2fc5e1e8fdf05650cc87f23f7620e148ee93918913c2e217b8246e33c1940bf812bbf262180722acbc1ad415c681f3e15409f92b637e510
DIST bios.bin-1.7.2.2.gz 71896 SHA256 c285c3f6c6819ded8e536d2719e28d1840f50730bc4ef790125cc905c91b0416 SHA512 f14a66733a8806d3d12dc3e58dd0969172f1aef9c3826f2b6e87b805cb789cbea7d1e766e8b0e0f1d729e30def575f0ed6515a702ef709e932e78f7e87279db9 WHIRLPOOL 1e9748c768bbc9886e60cb3d6ad091e0193b3e2f9e44867d30bc2270126e8087f04911ab7c9788d3107c067d9ad4929b9a7e9f5fc18e4baa53416a21fbd184d0
DIST bios.bin-1.7.2.gz 71796 SHA256 e0b0b4b08745a9ef89ebdbea5e252ce2c6a5f7659085a4c429ec1597282c5c73 SHA512 ea845bdd0eb51891c343215fc8449284a29b440689673a067fa7ca4cb5f21dde662cc948becc27a1ef44043a9acb0a2c5f62077f8c5898744ee11ee2377f1d6e WHIRLPOOL 89aa58d18b9dfc77d697ca8259d37939b68d1099ea189dccd0316bed1dd589b2162477708307dfa52e66f675d4c77cb8fcb1ddc367ab8d37ad4d8d375629bc2b
DIST bios.bin-1.7.3.2.gz 72910 SHA256 a0d1fb258982d4198f070f5727b95835fb2552c836df129df1c253237d9a9f5a SHA512 95eb695ddbfcba7d18c9dffb6c1591f7866df531c75baad0e04f93af576be9aa4860812c5b43296e2f0ca056311e7d7c2c4c2b6ac7f0a345de2ae9021be52c62 WHIRLPOOL af9f1672399f0f663d620b233cb7bf35069934f5d3878d31f664d565755b291bb96c058a9ce455c653b32a87daba8c3f8f0cda8d6c7f4388870846009af0c293
DIST bios.bin-1.7.3.gz 73205 SHA256 e6862230581ff6e0838f2a708a5aaa6c34000bce025138ca449a0931ebc0604f SHA512 ea9d1d105fda72d5e277dbde3270c9b98d8d0b73333c1fc721882032a22aea7e1c5b59086a316da51e3e7cd15cd7f2f16b84dcd5d5821e68c1ce234c7e626900 WHIRLPOOL 53cec110016191dff4b44eef587b608f34bc63532d27b78adf224f379e8a822b319d3523004f56b63faf1396b8e9aedcf1cce2532325c6d663ed782a26f875dc
DIST bios.bin-1.7.4.gz 78214 SHA256 9e7e9378052f54aa687212ae2d85d6c5a0a42a76d299318ab0495032bcd46a04 SHA512 68a20c477699a08b4ea302b2b16a53d11d35480234bf1bc2787dba0624ec714961eb4f7c1bb7069b230191f8377a7fc1812bab2dcb1c8b7167889c8f3e21b27d WHIRLPOOL 580c805a6f8d3b28e95d5efd86f26a716c06056dcda44dee17737a637b4e06b6079157db657c00811d8a0384f1c039a5d81651fcf580c7715dee7991dea0f1be
AUX seabios-1.8.2-fstack-check.patch 1201 SHA256 b41c0e87bcfdbed04f7339348e167d043128f22146c6e00d9a64f03a7338f8d8 SHA512 82feff2bc1bfe573b16c149f202fd244b9a2ec0b18b7c3f47ae06bbf8ae6239df8667c348aeec3b480a80b113a701a8833481a5a830377517eb3fb03aeaf9b30 WHIRLPOOL 0baeb375f614d53b126ddd6b37cde1ba517153523ff64ef64176ad79b8fe73a0c2ce78bd0239b5d6cad89767753b570029f7fd2b9ac1b74dc105a8b6b4b31dbb
AUX seavgabios/README 56 SHA256 d4e1b5815b0166c52f5fdfd7ac8db2fd1398cf530394bf5937dfbda55135db21 SHA512 910bc29b89fd0821c9be7d60742ce80fd62194d78fd50902e1ba93a7322c897518ee606c76e39c71489f48c890e50d07aedd3ec059a9e3632eafdd7ebcea8074 WHIRLPOOL 6e928e7dbe1afbfd1a5ccb1009c0d98081cd099cf79b8eea067011e942ed7f6f5f3bca65e5a8cd38f0b786d7fca11aa8b51f7f1c1b11bc3879914a3facbf48ba
AUX seavgabios/config.vga-cirrus 60 SHA256 888ad874052d301981a8cc6fa4bc72b1edd14ba937e7de113f71ce3fd2f8c253 SHA512 e9ef2d6bec9419e69bc90adf1a4bb7c174284cd722e53903deea0411f88074cc247069116e03e124715072ec82f153cf6014168febba41369a2569983d3265b6 WHIRLPOOL 6bc9abab432867d2d229f489e1f65471133c2bb6960d1d7e8523f6257f9abf1fbf43dd00054308235ae0a3162b359739ba4e903dba5758fed9b65d8ae482fc0a
AUX seavgabios/config.vga-isavga 59 SHA256 5826ec704d4e4bb57089e0cbb72e7e5ccd31b7192d81084665cd4faeecb60b04 SHA512 aada61232f4834c1e9bec921b1e1365ce5ecb4adf42c659f34cdf051efb56f0ec2e62f0ccf66bb25d9bb0b8601e2df49b712265f19185068d45353c3aacf1cd9 WHIRLPOOL 41c5c36a610f04ffe56213e330d6a84be5c76811d25edbf2e4d1d33a74e75cc3aacb9c59bf0e78fc094876c6a436145efd97929a8bdb660677fd4d5caf1cfff9
AUX seavgabios/config.vga-qxl 128 SHA256 26e43ea5e98615d11573b2619f3fb3c1933d5f810e6a2c44218d99465cc3ae77 SHA512 9ebcb6702cf28685daf1821be26bab8ddc791ef2c118217c984c03c5fb77c8b9691c0fa6931367a63b8d97d67c973cd4b620fe9ca9c76da51a9b2ab3b4b5653b WHIRLPOOL 6e38c9e5f91279694de4204abd1de16b2ef1c5f239df110151caa876cbdb6fb48148912e4c4f7952bea18e56c09a875e7062e8f27eabeb7e500480f6d2183000
AUX seavgabios/config.vga-stdvga 59 SHA256 ca7367ae57665fa01e0ebb741ba5823d646f4b65a9a87657ea163cc9f362a8a8 SHA512 4a1b7fcc729d78dc8fd4e73d1cb6258ed9d49f8a91e6e00cc184e07c89a304f8d38ef5446d1c4ba5e8e929c82693d82c21526e42992ad6e1a008f39bb7c90448 WHIRLPOOL 51413383c35f77abd179050b86b6e84edf0a14e3b6ecb9d60521f9ff0cad0cd5059e10d8fbfed7084b628957e2871d9ae6addc6e5e24d8ff16bc9ab5b32c809d
AUX seavgabios/config.vga-virtio 128 SHA256 afa7d59e1c18ed770cf0e83e3d5dc70866f75fdde83064fbea6e115f79504066 SHA512 4d627be11d79f0b8bd814a49e608826375aba6b59a0189dcba9afe24a181347b92e6ab18e0d9199e2f7a78f8fb02f03dad84c63fbbc2ffe9af76777ef28c5f8a WHIRLPOOL 5ba65918c8034bbece5a8d2ac166a446ba0b608ef393f4d85654a56fb1b95e0d92604cadf75a4eeaa20b93b22be51d10b0e6aadc56ce77e40fd19eddc245d324
AUX seavgabios/config.vga-vmware 128 SHA256 1bd31f16dd43fb25aa92f9816cbfaae4a19a8faf29ff52bd02429fbaafb78f57 SHA512 2a82f75ca6dbf48546ffa5a756136dd7085855d9411c3b37a74cc53281027b4916cf628dba784bcad915682d94705b5f8116f7a1b7ec6a99d9b2fb3fffba01c0 WHIRLPOOL 9b6b82f0b27d41a6cb5ef66c13f4c45559471f894a93be60f67d560f3adc8fe2fae062a5d41b7d437eafaaf0bba12488d33db6b7192ab73a1901ab4618a887d6
DIST bios.bin-1.7.5.gz 78943 SHA256 2e83e68e6cff73ede1c2490dabad74c177d7b67f9d93a5ed5f2ef39e76dea0ea SHA512 153a4cf190843540a9a72fcb0cf34f1f9f6ff2efb4b4f700c515dea467b101a8999421b53c2f21599864e2e803ae455a4ae39c7e8be9491c4383b4bfbe734014 WHIRLPOOL 2383f5f3a91581b0ee0ff19fd429a67b7fe09db05c456b98aee01ab9008a12d265e56f81b4d60224c7be15a86da9d2288f83a1d83f621b2ff00ab3aaccb277a4
DIST seabios-1.6.3.tar.gz 438403 SHA256 7bca2e6a0972f16dd238d1ead2f4d12d38dc56e1801237c1205f902d5ea4c799 SHA512 c54991c4250339d04f00600f7b27528d7e31e10032c093409ebb9b0740edf7f179f9b7620f7e77413db51ee27381c40645bddf2550ae450805599cbe8ecbb335 WHIRLPOOL a0d99ceb4b024ed88ae91a2743ec65a0019e2641ac3430592b1204895b24a27e8ae8fe4d9c48ebd13c02eea2b110b8a5bd693a5f7fb603588329a1fa928e89bb
DIST seabios-1.7.0-bins.tar.xz 59756 SHA256 e444725b5e64e96cfd086560250d6931b085d2c5be014b4fb3227a4e317766d4 SHA512 b47ec7847d8ea8b80ce1658bdca3644570f3c640d380bdd2ac531de652ece83c052f35407b34f96274ff490c0b88ee194c388377c22364f8d7da3813bbc2bf44 WHIRLPOOL d91b8e1c179b0ff294974e954a5a5f6ce7d7470d00754ac6cc1492413df526eb23ff7dd715ef38ed32970f76afe656d0edec8fe90a3434c498105046322663c6
DIST seabios-1.7.0.tar.gz 450977 SHA256 54113c953be055e5ad2e54a32bdd9c9b109b50a7a18bbca70d148807ba2f2cd6 SHA512 770d12535638d63a000323aabdac81ffb9576c95f1d21daf5f67b211a9b350ab339221a2929110f80644c5ee610603537cc72136b8cd3ccc76853092b32bd2c1 WHIRLPOOL bd84e3ef1bdb1505ce336e2bec9c51c97a7781837192ee2159fad1de7d2bea564fec57b27c6dca8fcf10e5c48b9a5947762d15a0b887e697469ba9b292b6fb84
DIST seabios-1.7.1.tar.gz 455617 SHA256 40db5ec149dabd94fdf46809fc2c1d4a2cc32af533ca1097463594ceb3cc3eb0 SHA512 b23250e6bec417a81f18200632155c31f30413d9d3400e9a51a882451f08811925ca98ce217a596ae04f065762eae633867ccb5f46c81b443bf88e2e62eaf9bb WHIRLPOOL b90a0e105e93f55b9523f635c0b6b27d1c5ae8e8a41a00633ed4108076680ae1232c5277e818846e196ccc44dbf554325b17a6dad4b900d250903c0ab30fb775
DIST seabios-1.7.2.1.tar.gz 458187 SHA256 0d9d5012e753eb2e32718aec3982f7305bd36f4eaf1d0261a49d0b118aa6c8dc SHA512 403454c17f7f61fb45e4749ce62247371c4547510b6f2f9ff5aa97836963d43401d1528139674b68a4dbb92ee275ed47ace2e2efb3e6db92be414d2f30db5bc3 WHIRLPOOL 25cc00c4ecef56cd2cad89c4eea53ca3adf1e2b91aad82edff16d89b92d21b5c0c7e09d241e1ea03209ec6317ad0f4a2760a62631e4ce7802785292468e48509
DIST seabios-1.7.2.2.tar.gz 448904 SHA256 5ef40e80c8e4ae825922766e82f28232958056f82912a72916ca5dae2147deaa SHA512 2fbe56d04af92b7e7166d2c4b0af0395750c57449735302ee4ef3794a5789a1d1922f9fce53970d3f1923f8ca82daa1d3e4041caaae884c9366c41e11e316e17 WHIRLPOOL 1ffcdc294f7827f669db34e120ccbf6da183359360010288556157d9287b2f55097c90750c3a3f252560363f2b938e8ce95bfb17300e1bc6549a2ae3216a041e
DIST seabios-1.7.2.tar.gz 467079 SHA256 59d853550925840b0b3f556ec65037d145e113796e9ba7f23578283613f0f2bd SHA512 5321839dda165d488ab315a8e50ee76ed6442e3a18d28783e4512206b771413cd8ac6cfde066edbd7045d8f68747ed21fd3b6f04e3c82244e8c4a1d0762c03b7 WHIRLPOOL ae938d4e935650e53b774c8a4a14dafd07c19d3ad5dcd72281229e934f7c7ee9c4a97d4ad21c8de1cb78a65ca0ebce1859f80834aa312d76ad82332dbb241183
DIST seabios-1.7.3.2.tar.gz 463900 SHA256 22ed5ba16e3acdf02abc5a7cafafe34f41a02039ef5d0051f5ee4cc183f23255 SHA512 891aa2dcf94d2a84bd1a0b66c724880ec895fe6c79bd9aea06d2125e1bd1442aa47b84fc03e1456900a29dfad9bb90c26123569d18a523572be330efc6504984 WHIRLPOOL 419f20f2854e79c65bbcdd34a3632dfc99248a153ce4fe0cd09ef6bec1bfc7a21a2ae28a6fa87cb9bda4eaebc24c09cf0f48bcf60db3b5c7a050edb699084e16
DIST seabios-1.7.3.tar.gz 484112 SHA256 2762c5056da9cad463086e5588f9194425ac4d664b9b5f3d00e63950c3103dce SHA512 372ac1ff81b51a732367e266f891de9493f767bd53c95a37bdbb7cbfae4c7a7dee757fbf756df214f5c61409bfeb73607d3f91e180736b9a36a30ec3e132a99e WHIRLPOOL 0bcf2341a9c1812bceb0845f03d08e0de2fe100976cd1fa82f2b27be21d225bc37b1577f891fa8a9c609d199cda70a958a389be69a4755b322f62ed6fbb6d5a3
DIST seabios-1.7.4.tar.gz 528756 SHA256 a05feb6d9b379f5f995a0c1aa0b3b2da1a72bef891f697121a90ff512a2b3a19 SHA512 0a62db9c01999c2b4dae8d620c85e90fadf9eb0c4f49bce7b5ddba699480fe63a5a7cfff70fab36459438977ed2654ceed84c87e11400a5c7fb7679bdb0c5da9 WHIRLPOOL 5c27422f9cad6940562723c60f4802c9355c0d4c23af9698033659020c945e600ff1102e6f85fef8b995fdeefa5538a22f23fee5b73c2e6e96883a10595f8b2b
DIST bios.bin-1.8.2.xz 67428 SHA256 b4628fdbfc39fd73e7ab0c54dfc26128b6011d34778e381c1b2d2340209be838 SHA512 2b2339c02134bcbd6e71e8d31f9907a160534a047bc91502c215d3d4c79431b962177ac43d826cc5689d71dfc0995bc8a9a5caf1a35929f308b3c2bdad720c15 WHIRLPOOL 050a7880d0da8bb8be1ce3e1262f7e5107a5a426eb31ce9629ef497305e390d348de7ed3c7595248010eb02481a2b4a9e4dca94b3a9c954c18b8a9624f46bbc6
DIST seabios-1.7.5.tar.gz 537566 SHA256 858d9eda4ad91efa1c45a5a401d560ef9ca8dd172f03b0a106f06661c252dc51 SHA512 ecf5fb9ac44dde6e4ac00baa6c920dde51b923f23dd74e62c5a02eceaf235e57b885975c5a8bd0927e268115c72bd1143a080fdfd4eff4e168ebeaa30436280e WHIRLPOOL 5e1e99b3bd82a8607c5986fde4592c7437bec4bd78abd5873710f6c431d075436725e8d0d32e9f0dd2921c9d84b8613108b21d31c5309a73e337ead7adf35e90
EBUILD seabios-1.6.3.ebuild 1690 SHA256 5105b521bddbd796acb2bc4eb620580ac649a520113f33fa29ab53c68809f8cc SHA512 91a14367aef7d68fb53553a739a338ee6493c9b514a1158b5470ec7d38869cf9a2023f885e45c1649e74aba9d9ea3b6d070d138de8622afcff8aee7d19d15b47 WHIRLPOOL 80a11bcf0c119f6d7a87e9dd3af4dcb1ad4e4c3839959963d7b03966c0b93295c9067e7f2de6edd8db059abea6959d72ea89a87040b3eab01443044c734056d2
EBUILD seabios-1.7.0.ebuild 1789 SHA256 587470b0a68998d46c9184911fc14fa38e7d0eb128424ba426454c6da6742599 SHA512 5f997cc305877fce1d9d9f755f01c56458a7b10b32eb661ac302b50736f57cb39e8b20c80edb2212ace049850d3e3440857749a6158114097b2c85f38f366bb9 WHIRLPOOL caa15ae8ceaed21db52868a285040c0e300a37a7885e78b4ada6a71195ac74e1699396dd04b37250f2f07649e0c30318576d930ea8f8f96ec933ffa2792b67f5
EBUILD seabios-1.7.1.ebuild 1924 SHA256 293302dd2cd84da81880a86dc95a2787e2189d7d247c6e26c94360d88c34f32e SHA512 3c6b8f19a7183a9eddd92a1857940cec87139e6ccb8b2a1c14191f2729ee99682ab27ca826924b85b995a7c2ed58e4533180bc484c1ca2578ab3c39e98f54c54 WHIRLPOOL ada7ff32ca15be1b64b013ecc9871466278e4dd8e5183b67d9f29ec6fc78e7291d59ace6700653079791c21d2afd701071eba72d712d77f2ab84a2ea1db62036
EBUILD seabios-1.7.2.1.ebuild 2028 SHA256 eebcf88a3235614d6b08d65014c8a5c104ab7079310ac7c634d451fcaee6d0eb SHA512 4c2634f877039376a1556d1eb2462a28cb8cd24f7a6daf6e31aa7eb6926c759fd109a54674563997d8a92e604b7ac1ab11b9d4d88de614171849e2fd30123fc3 WHIRLPOOL 9c7737754260143e3e8189c93a57fa2ebf5e6d6ac7458b858515f7f380e145af14a52c6071814af15ea33df4d4f34acb205cef107f226f88a0fb8a05b2438248
EBUILD seabios-1.7.2.2.ebuild 2365 SHA256 c1650fecc0d0aa91baf8dcd8dbff9055fd35d47455202ada910750be21b17334 SHA512 98bb1d90b466e4786dbf035e12b9e0a5e895f9b260371a04cd7ca01e3358ff43e544acfc6b32b03bddcd5538a7b1e1da7023a55855a4964db4c89bc5cdb2a8e1 WHIRLPOOL bc9694ba3d46c4fd1716a53d73b20141ef91cb10bbf97462d2563da99b8aa1a257d35b2f70e61dde8a5869405a399ea986d38a976056513f052d529b7c364eb5
EBUILD seabios-1.7.2.ebuild 1945 SHA256 553df57e029524a2b5836b99779b98f2c5b8b2d0d25660766db10724236c436a SHA512 0447f596c208d8212b0a23f4b709f20147afb7c95c1ea760d7fed02cec7802bf377b307f84193406a742499534aa116aaab79090187fd046a5c0d20e64622c9f WHIRLPOOL dfe86ab709d1351027a7e528ca0b10874309c4f3ab53a3da5d219bb2cb8aa8b4470cf1320a7136c06a5381380ea598741dc5d9ab2ee8082dc8206a62cf40d006
EBUILD seabios-1.7.3.2.ebuild 2722 SHA256 c036889f4cc32c968a0fb2e0d66c70c53aac0511b841d3b89b4deb45f85c16bd SHA512 d1ae36bf4699fa172407074701f68da471697170c5438433dd2d96cca1d3fc5a4d9e21f1f4e2e28bb469b8b501e5f7791dac2d14f6767a3f8556a2e4f750b2de WHIRLPOOL 8a37417b789d60a5dff468ca838b4f0549c0b91563d422c03bb8c4739d169a9589f0b83da3dae7215d1daf842e18ebc64c24550b409aea0b5906e04e59b7dbd2
EBUILD seabios-1.7.3.ebuild 2710 SHA256 83c3656741b647c495b61b42c6671b6af0e7d6c8ae94ac45035c58abb5a31811 SHA512 8a6e353ab990b3c179a21c0a490b1c3e646fa824f28eb68c3297a0e45613cf826fe203c3b0ee65b38d381ae1c1f8276d44b7143afec314731c35b45c974bb265 WHIRLPOOL 90ed4a8ed497f6059732f12a1c6f8834fcf2573c69da4cb4196a73bff5ed1fade0f4c74d00142d74badc3e2524a2c945d5c626ee73a98cabac5a7fbe876453f2
EBUILD seabios-1.7.4.ebuild 2715 SHA256 d74dfe15dc2950e931bf4ef58ca1a068f6536c32c9ed5eecf847ee451f55e61d SHA512 96966957b507eec18daa4dbb5033decdc4eeaad256b04306b9ece66efe243b01476fca21526ac9c729cdabbd793667d0d94a47627e26ffe237323389c7144e71 WHIRLPOOL 25d6628cb1ab99ffdd282b732e44f3ca33fbf894f214c95968780833ff354807b6417eb61f355bb288271e2b7dbac67140995355e16ed07e2a7598a13deb01b2
EBUILD seabios-1.7.5.ebuild 2715 SHA256 cb84624e675fd11b6af71b237f2b1dbe0477918e460c852df525dfc5640be34c SHA512 d73304b2a024c7849917f03c51d417a420dcf769bac0487f32d095114f5c9ef1a1888d39d036b82df49f6dc6b92affd61ec9d62222c0b2cdfeb3b8f506c1fcb6 WHIRLPOOL 6de957ba4dff0f459d445e5e81e417fe4b65e4a0d682b9a03f53115e76d3614f26cdeb3f49dfef3e20837567e4ca041bcd7ace196a2ed3cbc4f104dec87b879a
MISC ChangeLog 7230 SHA256 5185cee9108fd7bf1bc287d2333719389863464916a38588c3e18439a2904ae3 SHA512 ce332ceb889ae3d7ca29fe208ef358e15af0a5add6244d34e65027528275bed9f1fc38f42041cb4fdfbeb88c9519d29607149359b7cbb3bbf46826f1954b1124 WHIRLPOOL c688a3f8c45f86c399c1fb6303c61f430e92d6b20823d536b4a497beba0ee8ae564faf07c02b9e9ca7b641651450a2c6b7260016652874c506802e024dc157af
MISC metadata.xml 348 SHA256 d3c5d1a4872e9f9c7006e20ea9abdd6b4f661041eb00111b09f4d7054b9a875c SHA512 a8424c71b656df412b38b171638815f32476496cd08faccb5504f9371960442af6fa0ed531609e43ca527f7a2df1ff2821938a060c35d43cfa2612e7c6ed3998 WHIRLPOOL ee7ccf452f7de334cfb398a4e735f139a7e24363b82409838062662755b565ca7f43e9bdc5c31c839352d8a4d64dd419722b7e413b243ad470199a4aeca12544
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
iQIcBAEBCAAGBQJUFHm8AAoJELp701BxlEWfhmAP/3xCR0Pp+AzgnUbjL0fQehvc
UYRiz2xYS/9kP3gmGkBmMln0EaMJMEuxKGS4xo7jKkyaASL5uJdJoFbdiJSb9n0B
xM5zRMzAgjFXmpMxi+3IbANrwDimJmC8L2/Zfn2PEXQ4sWIYhEo3jbNW5gqS250z
9Gn9PILPt4UdEf3CVwxWdvZtZNQfTNhQJNOdxQMwRt2fy9RSzaUKdOGgkHDWQ4jo
wpMscqk0IVhBveIx47o+ks0ODVnd5XOXSD9v1GjJ81JUO3WGWyNKRdyKigLP+j7w
VBm+1QbnnTSwVPRMxUItWNfdNOexlQDnZrIQ9n0LAPm295r/vQPoj1qtbS22aDMt
AJNa/oXDui8g8TMQVzvpu03MdulYgQtd8y2ncnCl6fbvwYeLtH+06opgR+c/s9Q2
/fNUIN9Ml4xrHEyT2iEX0WdxEPEIh3vIXzyRRjm5DcCPgWS3U8dgepuRSKEz+dH7
e2OfwiiKz/CVp3D1TeaW9cclS/KYlqDEDDFrf2tGDL2/ftJzmBKuo2RCYnf0SkT8
V5KcViEOY7TpOjMAr8qK/c8lVpgKeFH3uz4JcrOOn6/xIUNqYtF5DwWHti5dYVqC
hQBZFUz35e16X1nglDKeggIwBpE00wHGejlNIGMtLCUutzc+/bjgTJSP0EqdVTom
Jw+ie/GPXq41ixsAmAW1
=YMwE
-----END PGP SIGNATURE-----
DIST seabios-1.8.2.tar.gz 538497 SHA256 f59479307fdae840de398b75aacb2333c8eba24a5964d68c77e32ca6c987ee61 SHA512 798d222d5f5725a805cde9e6000b5ce714d0551fd4a3c2642cc6e77b2bdab1a9e239939a358a23bbe0e00112f5ad70696c87d20b90655463c835541fc04e1a00 WHIRLPOOL 9cda0ad502a59dd718c543b759ac3fcf5acb4adee70c3da9bfea95ab188415acf6425827de77f45421ec3be8fd9e0c37fb486e62828217ba3e83f88d942a3f4a
DIST seabios_1.7.5-1_all.deb 112098 SHA256 61bab13a733e8087147ae4798f0053c6d632866e332a1ee3af2265e4f57ced36 SHA512 891a26e084ccac8e9badce5a58eeadfb958af9d5ed087a99998f92153718e8231c14abfae0ed86bde870aa9e2f29fd93d5cc04515695e6f2d7b9fcaaef11bfce WHIRLPOOL d47ad79e7bd701862d059d86c7cb3b730b0303c5170ec52a481df5326cad0cd98ea78fcdb2730623b6b65289d9042f4685991eb515402543083cd8228f849959
DIST seavgabios-1.8.2.tar.xz 20284 SHA256 d28ff071ee56f7bd88cec2482908f469d553cd8b61485a8e89989c26cb5c0e4a SHA512 16d2b54cd98aa22f7af21d8c51a4cf87d9462ec0c99bf703bf7f6c3c4e0be4cbd313b8cf0fb79cdb7b6a7f94441493a4f9669b6d44297e12f03a749befa2d845 WHIRLPOOL 9d61957ec4e3a0c5e4b999495119c6cfb4f2165d98b652b530dbee3ceb19b18a75d07902a5ee15b41b877154bb9ac19163d75c6024a40c4e94e6cf5cdf561e9d
EBUILD seabios-1.7.5-r1.ebuild 3162 SHA256 108ad819668859045d2b1c9660adbeb95505b8f2fa5dae4b2f5084b2790111b3 SHA512 f92f20ea056d32263efe0484ae0270bb761c5dbf776c646ad2870676155a68d4c7ee2a902416c394e34f2c456cdb9a3e73e1ca69d382666122b71a6da67c7908 WHIRLPOOL dacc78753639795d06a2ffee0b31da700759861add871e941fcfb78a0f7f06678cbecf421d9c4afc9bb502bbcfe474e6cff73ea80826c81a8b64bd15af8c9893
EBUILD seabios-1.7.5.ebuild 2541 SHA256 25ec9db38b69fc66c06489fd0e277f028596bb640ae85a88706aed1cb221454e SHA512 1f845fdfa63f1c7366c9d4542e35704d97058e3f4d98f1cc9820fbdb9c400519a15e295d310559fab5b7a9378828d18b02290e91301cb8aaf6be4eaa7083fe9e WHIRLPOOL 143fe0e700674ea5d38b374f86289c14528163b86f9e953d5793b345f0c65de9e67c89189ffc1eaf52faa15ac2d3fbb274fc2dd358d3210e8baf21e7bb44ff4a
EBUILD seabios-1.8.2.ebuild 3077 SHA256 44f72d838fb56c61d2c81f806483c7dde431066823a7f46e7e3827a2434e7ed0 SHA512 4190631d6278890af85404bd1c45e6a196093f297aae30d12ddf6f5eb18d7a7daeece42ebbc9c6873046b9eb5e6544cec50bdf2b5384f6eb9d6eb80685ea67c0 WHIRLPOOL 856e2e570e69baffe0b42bc57b9321ea2735417cd6cfe79b119fd68c66cfe81efde0a5c130d11a05c6030cd8499e2c8b94e9c8a06e4c3928afdc3058f935efc5
MISC ChangeLog 3283 SHA256 0304d8ff337013e816427c9d5afc8fc571b52306667393663b842108102803ea SHA512 37118ade5efabbd88e9066d726e4c70c2089167360bc00e4d37ff3f5df2d81d2282b4c749289c7f33b45fa97fe0e7ced33fa632f97880579251bf5f5b2fa7f99 WHIRLPOOL 76708c9ba9718462579a4f0258705cc881e87a15dab20101fd6da548b7094241044c92acf0a557602fdcc561d47d67bb298cfe9cc8cec4800299ef6e5f7cdb90
MISC ChangeLog-2015 8390 SHA256 530d9871189cee67fdaddbd80e05173b54c461296a692bcc51d87a46d54ab1f8 SHA512 c04a589afbf87445abe1935c9a9bbad8b759d68c1b3d38ee9ccaac2625c0520072b3e12277fa43562d0b7f95957500a784c8126dde4440fa5fee8922ccec8429 WHIRLPOOL 5adf523f244a96c2bee80bc1f13102584e3a928108e929fe76b2212504a6dcefeac7c5872c4e9d2eae4a9fabeb37519fa7182c2c5b4c6516b15822748e6f40d2
MISC metadata.xml 454 SHA256 ea0677ba8bbe58ccf9eac596a0396a6f404225d20f4979361899a9b3ff49ad86 SHA512 2cf8162621bf87b6d8a3805c7d1e2006bdf3bb7d1d4d148cd2a3f87074aab95a7d15207cc97112d034b78c205ff59efe2fce3f438fe08ae3f05617b5a61732d4 WHIRLPOOL 6ccc3e78457b6a79926ed5517155dd9db5e6653a23ff9724ed9193fb16d494b04c97a7a270a26264839be688b4831bdc07b003c738e9bfdb199791f006b4ff45

View File

@ -0,0 +1,37 @@
https://bugs.gentoo.org/559980
From e4d2b8ce5db86bd56efdaf64b974925bd7a7b249 Mon Sep 17 00:00:00 2001
From: Magnus Granberg <zorry@gentoo.org>
Date: Fri, 11 Sep 2015 17:38:40 -0400
Subject: [PATCH] build: use -fstack-check=no when available
Some compilers (such as the one in hardened/Gentoo) default this
option to on which leads to build failures:
src/stacks.c: In function 'call16_back':
src/stacks.c:139:5: error: 'asm' operand has impossible constraints
asm volatile(
^
URL: https://bugs.gentoo.org/559980
Reported-by: Alon Bar-Lev <alonbl@gentoo.org>
Signed-off-by: Magnus Granberg <zorry@gentoo.org>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
---
Makefile | 1 +
1 file changed, 1 insertion(+)
diff --git a/Makefile b/Makefile
index e287530..3a0d2e8 100644
--- a/Makefile
+++ b/Makefile
@@ -63,6 +63,7 @@ COMMONCFLAGS := -I$(OUT) -Isrc -Os -MD -g \
COMMONCFLAGS += $(call cc-option,$(CC),-nopie,)
COMMONCFLAGS += $(call cc-option,$(CC),-fno-stack-protector,)
COMMONCFLAGS += $(call cc-option,$(CC),-fno-stack-protector-all,)
+COMMONCFLAGS += $(call cc-option,$(CC),-fstack-check=no,)
COMMA := ,
CFLAGS32FLAT := $(COMMONCFLAGS) -DMODE16=0 -DMODESEGMENT=0
--
2.5.1

View File

@ -0,0 +1 @@
The config.vga-xxx files come from the qemu/roms/ tree.

View File

@ -0,0 +1,3 @@
CONFIG_BUILD_VGABIOS=y
CONFIG_VGA_CIRRUS=y
CONFIG_VGA_PCI=y

View File

@ -0,0 +1,3 @@
CONFIG_BUILD_VGABIOS=y
CONFIG_VGA_BOCHS=y
CONFIG_VGA_PCI=n

View File

@ -0,0 +1,6 @@
CONFIG_BUILD_VGABIOS=y
CONFIG_VGA_BOCHS=y
CONFIG_VGA_PCI=y
CONFIG_OVERRIDE_PCI_ID=y
CONFIG_VGA_VID=0x1b36
CONFIG_VGA_DID=0x0100

View File

@ -0,0 +1,3 @@
CONFIG_BUILD_VGABIOS=y
CONFIG_VGA_BOCHS=y
CONFIG_VGA_PCI=y

View File

@ -0,0 +1,6 @@
CONFIG_BUILD_VGABIOS=y
CONFIG_VGA_BOCHS=y
CONFIG_VGA_PCI=y
CONFIG_OVERRIDE_PCI_ID=y
CONFIG_VGA_VID=0x1af4
CONFIG_VGA_DID=0x1050

View File

@ -0,0 +1,6 @@
CONFIG_BUILD_VGABIOS=y
CONFIG_VGA_BOCHS=y
CONFIG_VGA_PCI=y
CONFIG_OVERRIDE_PCI_ID=y
CONFIG_VGA_VID=0x15ad
CONFIG_VGA_DID=0x0405

View File

@ -1,6 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<herd>qemu</herd>
<herd>virtualization</herd>
<maintainer>
<email>cardoe@gentoo.org</email>
@ -8,6 +9,7 @@
</maintainer>
<use>
<flag name='binary'>Use official upstream pre-built binaries</flag>
<flag name='seavgabios'>Include SeaVGABIOS binaries (replacement for vgabios)</flag>
</use>
</pkgmetadata>

View File

@ -1,75 +0,0 @@
# Copyright 1999-2014 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/sys-firmware/seabios/seabios-1.6.3.ebuild,v 1.4 2014/04/30 21:15:33 vapier Exp $
EAPI=4
PYTHON_DEPEND="2"
#BACKPORTS=1
if [[ ${PV} = *9999* || ! -z "${EGIT_COMMIT}" ]]; then
EGIT_REPO_URI="git://git.seabios.org/seabios.git"
GIT_ECLASS="git-2"
else
SRC_URI="http://www.linuxtogo.org/~kevin/SeaBIOS/${P}.tar.gz
${BACKPORTS:+http://dev.gentoo.org/~cardoe/distfiles/${P}-bp-${BACKPORTS}.tar.bz2}"
fi
inherit ${GIT_ECLASS} python
if [[ ${PV} != *9999* ]]; then
KEYWORDS="amd64 x86"
fi
DESCRIPTION="Open Source implementation of a 16-bit x86 BIOS"
HOMEPAGE="http://www.seabios.org"
LICENSE="LGPL-3 GPL-3"
SLOT="0"
IUSE=""
DEPEND=""
RDEPEND="${DEPEND}"
pkg_pretend() {
if ! use binary; then
ewarn "You have decided to compile your own SeaBIOS. This is not"
ewarn "supported by upstream unless you use their recommended"
ewarn "toolchain (which you are not)."
elog
ewarn "If you are intending to use this build with QEMU, realize"
ewarn "you will not receive any support if you have compiled your"
ewarn "own SeaBIOS. Virtual machines subtly fail based on changes"
ewarn "in SeaBIOS."
fi
}
pkg_setup() {
python_set_active_version 2
}
src_prepare() {
if [[ -z "${EGIT_COMMIT}" ]]; then
sed -e "s/VERSION=.*/VERSION=${PV}/" \
-i "${S}/Makefile"
else
sed -e "s/VERSION=.*/VERSION=${PV}_pre${EGIT_COMMIT}/" \
-i "${S}/Makefile"
fi
}
src_configure() {
:
}
src_compile() {
emake out/bios.bin
# emake out/vgabios.bin
}
src_install() {
insinto /usr/share/seabios
doins out/bios.bin
# doins out/vgabios.bin
}

View File

@ -1,77 +0,0 @@
# Copyright 1999-2014 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/sys-firmware/seabios/seabios-1.7.0.ebuild,v 1.7 2014/04/30 21:15:33 vapier Exp $
EAPI=4
PYTHON_DEPEND="2"
inherit python
#BACKPORTS=1
if [[ ${PV} = *9999* || ! -z "${EGIT_COMMIT}" ]]; then
EGIT_REPO_URI="git://git.seabios.org/seabios.git"
inherit git-2
else
KEYWORDS="amd64 ~ppc ~ppc64 x86 ~amd64-fbsd ~x86-fbsd"
SRC_URI="http://www.linuxtogo.org/~kevin/SeaBIOS/${P}.tar.gz
http://dev.gentoo.org/~cardoe/distfiles/${P}-bins.tar.xz
${BACKPORTS:+http://dev.gentoo.org/~cardoe/distfiles/${P}-bp-${BACKPORTS}.tar.bz2}"
fi
DESCRIPTION="Open Source implementation of a 16-bit x86 BIOS"
HOMEPAGE="http://www.seabios.org"
LICENSE="LGPL-3 GPL-3"
SLOT="0"
IUSE=""
DEPEND=""
RDEPEND="${DEPEND}"
pkg_pretend() {
if ! use binary; then
ewarn "You have decided to compile your own SeaBIOS. This is not"
ewarn "supported by upstream unless you use their recommended"
ewarn "toolchain (which you are not)."
elog
ewarn "If you are intending to use this build with QEMU, realize"
ewarn "you will not receive any support if you have compiled your"
ewarn "own SeaBIOS. Virtual machines subtly fail based on changes"
ewarn "in SeaBIOS."
fi
}
pkg_setup() {
python_set_active_version 2
}
src_prepare() {
if [[ -z "${EGIT_COMMIT}" ]]; then
sed -e "s/VERSION=.*/VERSION=${PV}/" \
-i "${S}/Makefile"
else
sed -e "s/VERSION=.*/VERSION=${PV}_pre${EGIT_COMMIT}/" \
-i "${S}/Makefile"
fi
}
src_configure() {
:
}
src_compile() {
if use amd64 || use x86 ; then
LANG=C emake out/bios.bin
fi
}
src_install() {
insinto /usr/share/seabios
if use amd64 || use x86 ; then
doins out/bios.bin
else
doins bins/bios.bin
fi
}

View File

@ -1,83 +0,0 @@
# Copyright 1999-2014 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/sys-firmware/seabios/seabios-1.7.1.ebuild,v 1.7 2014/04/30 21:15:33 vapier Exp $
EAPI=4
PYTHON_DEPEND="2"
inherit python
#BACKPORTS=1
if [[ ${PV} = *9999* || ! -z "${EGIT_COMMIT}" ]]; then
EGIT_REPO_URI="git://git.seabios.org/seabios.git"
inherit git-2
else
KEYWORDS="amd64 ~ppc ~ppc64 x86 ~amd64-fbsd ~x86-fbsd"
SRC_URI="http://code.coreboot.org/p/seabios/downloads/get/${P}.tar.gz
http://code.coreboot.org/p/seabios/downloads/get/bios.bin-${PV}.gz
${BACKPORTS:+http://dev.gentoo.org/~cardoe/distfiles/${P}-bp-${BACKPORTS}.tar.bz2}"
fi
DESCRIPTION="Open Source implementation of a 16-bit x86 BIOS"
HOMEPAGE="http://www.seabios.org"
LICENSE="LGPL-3 GPL-3"
SLOT="0"
IUSE="+binary"
REQUIRED_USE="ppc? ( binary )
ppc64? ( binary )"
DEPEND="!binary? (
>=sys-power/iasl-20060912
<sys-power/iasl-20130117
)"
RDEPEND=""
pkg_pretend() {
if ! use binary; then
ewarn "You have decided to compile your own SeaBIOS. This is not"
ewarn "supported by upstream unless you use their recommended"
ewarn "toolchain (which you are not)."
elog
ewarn "If you are intending to use this build with QEMU, realize"
ewarn "you will not receive any support if you have compiled your"
ewarn "own SeaBIOS. Virtual machines subtly fail based on changes"
ewarn "in SeaBIOS."
fi
}
pkg_setup() {
python_set_active_version 2
}
src_prepare() {
if [[ -z "${EGIT_COMMIT}" ]]; then
sed -e "s/VERSION=.*/VERSION=${PV}/" \
-i "${S}/Makefile"
else
sed -e "s/VERSION=.*/VERSION=${PV}_pre${EGIT_COMMIT}/" \
-i "${S}/Makefile"
fi
}
src_configure() {
:
}
src_compile() {
if ! use binary ; then
LANG=C emake out/bios.bin
fi
}
src_install() {
insinto /usr/share/seabios
if ! use binary ; then
doins out/bios.bin
else
newins ../bios.bin-${PV} bios.bin
fi
}

View File

@ -1,84 +0,0 @@
# Copyright 1999-2014 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/sys-firmware/seabios/seabios-1.7.2.1.ebuild,v 1.4 2014/04/30 21:15:33 vapier Exp $
EAPI=5
PYTHON_DEPEND="2"
inherit eutils python
#BACKPORTS=1
if [[ ${PV} = *9999* || ! -z "${EGIT_COMMIT}" ]]; then
EGIT_REPO_URI="git://git.seabios.org/seabios.git"
inherit git-2
else
KEYWORDS="amd64 ~ppc ~ppc64 x86 ~amd64-fbsd ~x86-fbsd"
SRC_URI="http://code.coreboot.org/p/seabios/downloads/get/${P}.tar.gz
http://code.coreboot.org/p/seabios/downloads/get/bios.bin-${PV}.gz
http://dev.gentoo.org/~cardoe/distfiles/${P}.tar.gz
http://dev.gentoo.org/~cardoe/distfiles/bios.bin-${PV}.gz
${BACKPORTS:+http://dev.gentoo.org/~cardoe/distfiles/${P}-bp-${BACKPORTS}.tar.bz2}"
fi
DESCRIPTION="Open Source implementation of a 16-bit x86 BIOS"
HOMEPAGE="http://www.seabios.org"
LICENSE="LGPL-3 GPL-3"
SLOT="0"
IUSE="+binary"
REQUIRED_USE="ppc? ( binary )
ppc64? ( binary )"
DEPEND="!binary? ( >=sys-power/iasl-20060912 )"
RDEPEND=""
pkg_pretend() {
if ! use binary; then
ewarn "You have decided to compile your own SeaBIOS. This is not"
ewarn "supported by upstream unless you use their recommended"
ewarn "toolchain (which you are not)."
elog
ewarn "If you are intending to use this build with QEMU, realize"
ewarn "you will not receive any support if you have compiled your"
ewarn "own SeaBIOS. Virtual machines subtly fail based on changes"
ewarn "in SeaBIOS."
fi
}
pkg_setup() {
python_set_active_version 2
}
src_prepare() {
if [[ -z "${EGIT_COMMIT}" ]]; then
sed -e "s/VERSION=.*/VERSION=${PV}/" \
-i "${S}/Makefile"
else
sed -e "s/VERSION=.*/VERSION=${PV}_pre${EGIT_COMMIT}/" \
-i "${S}/Makefile"
fi
epatch_user
}
src_configure() {
:
}
src_compile() {
if ! use binary ; then
LANG=C emake out/bios.bin
fi
}
src_install() {
insinto /usr/share/seabios
if ! use binary ; then
doins out/bios.bin
else
newins ../bios.bin-${PV} bios.bin
fi
}

View File

@ -1,96 +0,0 @@
# Copyright 1999-2014 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/sys-firmware/seabios/seabios-1.7.2.2.ebuild,v 1.5 2014/04/30 21:15:33 vapier Exp $
EAPI=5
PYTHON_COMPAT=( python{2_6,2_7} )
inherit eutils python-any-r1
#BACKPORTS=1
# SeaBIOS maintainers don't release stable tarballs or stable binaries
# to generate the stable tarball the following is necessary:
# git clone git://git.seabios.org/seabios.git && cd seabios
# git archive --output seabios-${PV}.tar.gz --prefix seabios-${PV}/ rel-${PV}
if [[ ${PV} = *9999* || ! -z "${EGIT_COMMIT}" ]]; then
EGIT_REPO_URI="git://git.seabios.org/seabios.git"
inherit git-2
else
KEYWORDS="amd64 ~ppc ~ppc64 x86 ~amd64-fbsd ~x86-fbsd"
SRC_URI="http://code.coreboot.org/p/seabios/downloads/get/${P}.tar.gz
http://code.coreboot.org/p/seabios/downloads/get/bios.bin-${PV}.gz
http://dev.gentoo.org/~cardoe/distfiles/${P}.tar.gz
http://dev.gentoo.org/~cardoe/distfiles/bios.bin-${PV}.gz
${BACKPORTS:+http://dev.gentoo.org/~cardoe/distfiles/${P}-${BACKPORTS}.tar.xz}"
fi
DESCRIPTION="Open Source implementation of a 16-bit x86 BIOS"
HOMEPAGE="http://www.seabios.org"
LICENSE="LGPL-3 GPL-3"
SLOT="0"
IUSE="+binary"
REQUIRED_USE="ppc? ( binary )
ppc64? ( binary )"
DEPEND="
!binary? (
>=sys-power/iasl-20060912
${PYTHON_DEPS}
)
"
RDEPEND=""
pkg_pretend() {
if ! use binary; then
ewarn "You have decided to compile your own SeaBIOS. This is not"
ewarn "supported by upstream unless you use their recommended"
ewarn "toolchain (which you are not)."
elog
ewarn "If you are intending to use this build with QEMU, realize"
ewarn "you will not receive any support if you have compiled your"
ewarn "own SeaBIOS. Virtual machines subtly fail based on changes"
ewarn "in SeaBIOS."
fi
}
pkg_setup() {
if ! use binary; then
python-any-r1_pkg_setup
fi
}
src_prepare() {
if [[ -z "${EGIT_COMMIT}" ]]; then
sed -e "s/VERSION=.*/VERSION=${PV}/" \
-i "${S}/Makefile"
else
sed -e "s/VERSION=.*/VERSION=${PV}_pre${EGIT_COMMIT}/" \
-i "${S}/Makefile"
fi
epatch_user
}
src_configure() {
:
}
src_compile() {
if ! use binary ; then
LANG=C emake out/bios.bin
fi
}
src_install() {
insinto /usr/share/seabios
if ! use binary ; then
doins out/bios.bin
else
newins ../bios.bin-${PV} bios.bin
fi
}

View File

@ -1,85 +0,0 @@
# Copyright 1999-2014 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/sys-firmware/seabios/seabios-1.7.2.ebuild,v 1.7 2014/04/30 21:15:33 vapier Exp $
EAPI=5
PYTHON_DEPEND="2"
inherit eutils python
#BACKPORTS=1
if [[ ${PV} = *9999* || ! -z "${EGIT_COMMIT}" ]]; then
EGIT_REPO_URI="git://git.seabios.org/seabios.git"
inherit git-2
else
KEYWORDS="amd64 ~ppc ~ppc64 x86 ~amd64-fbsd ~x86-fbsd"
SRC_URI="http://code.coreboot.org/p/seabios/downloads/get/${P}.tar.gz
http://code.coreboot.org/p/seabios/downloads/get/bios.bin-${PV}.gz
${BACKPORTS:+http://dev.gentoo.org/~cardoe/distfiles/${P}-bp-${BACKPORTS}.tar.bz2}"
fi
DESCRIPTION="Open Source implementation of a 16-bit x86 BIOS"
HOMEPAGE="http://www.seabios.org"
LICENSE="LGPL-3 GPL-3"
SLOT="0"
IUSE="+binary"
REQUIRED_USE="ppc? ( binary )
ppc64? ( binary )"
DEPEND="!binary? (
>=sys-power/iasl-20060912
<sys-power/iasl-20130117
)"
RDEPEND=""
pkg_pretend() {
if ! use binary; then
ewarn "You have decided to compile your own SeaBIOS. This is not"
ewarn "supported by upstream unless you use their recommended"
ewarn "toolchain (which you are not)."
elog
ewarn "If you are intending to use this build with QEMU, realize"
ewarn "you will not receive any support if you have compiled your"
ewarn "own SeaBIOS. Virtual machines subtly fail based on changes"
ewarn "in SeaBIOS."
fi
}
pkg_setup() {
python_set_active_version 2
}
src_prepare() {
if [[ -z "${EGIT_COMMIT}" ]]; then
sed -e "s/VERSION=.*/VERSION=${PV}/" \
-i "${S}/Makefile"
else
sed -e "s/VERSION=.*/VERSION=${PV}_pre${EGIT_COMMIT}/" \
-i "${S}/Makefile"
fi
epatch_user
}
src_configure() {
:
}
src_compile() {
if ! use binary ; then
LANG=C emake out/bios.bin
fi
}
src_install() {
insinto /usr/share/seabios
if ! use binary ; then
doins out/bios.bin
else
newins ../bios.bin-${PV} bios.bin
fi
}

View File

@ -1,106 +0,0 @@
# Copyright 1999-2014 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/sys-firmware/seabios/seabios-1.7.3.ebuild,v 1.6 2014/04/30 21:17:26 vapier Exp $
EAPI=5
PYTHON_COMPAT=( python{2_6,2_7} )
inherit eutils toolchain-funcs python-any-r1
#BACKPORTS=1
# SeaBIOS maintainers don't release stable tarballs or stable binaries
# to generate the stable tarball the following is necessary:
# git clone git://git.seabios.org/seabios.git && cd seabios
# git archive --output seabios-${PV}.tar.gz --prefix seabios-${PV}/ rel-${PV}
if [[ ${PV} = *9999* || ! -z "${EGIT_COMMIT}" ]]; then
EGIT_REPO_URI="git://git.seabios.org/seabios.git"
inherit git-2
else
KEYWORDS="~amd64 ~ppc ~ppc64 ~x86 ~amd64-fbsd ~x86-fbsd"
SRC_URI="http://code.coreboot.org/p/seabios/downloads/get/${P}.tar.gz
http://code.coreboot.org/p/seabios/downloads/get/bios.bin-${PV}.gz
http://dev.gentoo.org/~cardoe/distfiles/${P}.tar.gz
http://dev.gentoo.org/~cardoe/distfiles/bios.bin-${PV}.gz
${BACKPORTS:+http://dev.gentoo.org/~cardoe/distfiles/${P}-${BACKPORTS}.tar.xz}"
fi
DESCRIPTION="Open Source implementation of a 16-bit x86 BIOS"
HOMEPAGE="http://www.seabios.org"
LICENSE="LGPL-3 GPL-3"
SLOT="0"
IUSE="+binary"
REQUIRED_USE="ppc? ( binary )
ppc64? ( binary )"
DEPEND="
!binary? (
>=sys-power/iasl-20060912
${PYTHON_DEPS}
)"
RDEPEND=""
pkg_pretend() {
if ! use binary; then
ewarn "You have decided to compile your own SeaBIOS. This is not"
ewarn "supported by upstream unless you use their recommended"
ewarn "toolchain (which you are not)."
elog
ewarn "If you are intending to use this build with QEMU, realize"
ewarn "you will not receive any support if you have compiled your"
ewarn "own SeaBIOS. Virtual machines subtly fail based on changes"
ewarn "in SeaBIOS."
fi
local myld=$(tc-getLD)
${myld} -v | grep -q "GNU gold" && \
ewarn "gold linker unable to handle 16-bit code using ld.bfd. bug #438058"
}
pkg_setup() {
use binary || python-any-r1_pkg_setup
}
src_prepare() {
if [[ -z "${EGIT_COMMIT}" ]]; then
sed -e "s/VERSION=.*/VERSION=${PV}/" \
-i "${S}/Makefile"
else
sed -e "s/VERSION=.*/VERSION=${PV}_pre${EGIT_COMMIT}/" \
-i "${S}/Makefile"
fi
epatch_user
}
src_configure() {
:
}
src_compile() {
if ! use binary ; then
LANG=C emake \
CC=$(tc-getCC) \
LD="$(tc-getLD).bfd" \
AR=$(tc-getAR) \
OBJCOPY=$(tc-getOBJCOPY) \
RANLIB=$(tc-getRANLIB) \
OBJDUMP=$(tc-getPROG OBJDUMP objdump) \
HOST_CC=$(tc-getBUILD_CC) \
out/bios.bin
fi
}
src_install() {
insinto /usr/share/seabios
if ! use binary ; then
doins out/bios.bin
else
newins ../bios.bin-${PV} bios.bin
fi
}

View File

@ -1,106 +0,0 @@
# Copyright 1999-2014 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/sys-firmware/seabios/seabios-1.7.4.ebuild,v 1.3 2014/06/04 16:04:55 ago Exp $
EAPI=5
PYTHON_COMPAT=( python{2_6,2_7} )
inherit eutils toolchain-funcs python-any-r1
#BACKPORTS=1
# SeaBIOS maintainers sometimes don't release stable tarballs or stable
# binaries to generate the stable tarball the following is necessary:
# git clone git://git.seabios.org/seabios.git && cd seabios
# git archive --output seabios-${PV}.tar.gz --prefix seabios-${PV}/ rel-${PV}
if [[ ${PV} = *9999* || ! -z "${EGIT_COMMIT}" ]]; then
EGIT_REPO_URI="git://git.seabios.org/seabios.git"
inherit git-2
else
KEYWORDS="amd64 ~ppc ~ppc64 x86 ~amd64-fbsd ~x86-fbsd"
SRC_URI="http://code.coreboot.org/p/seabios/downloads/get/${P}.tar.gz
http://code.coreboot.org/p/seabios/downloads/get/bios.bin-${PV}.gz
http://dev.gentoo.org/~cardoe/distfiles/${P}.tar.gz
http://dev.gentoo.org/~cardoe/distfiles/bios.bin-${PV}.gz
${BACKPORTS:+http://dev.gentoo.org/~cardoe/distfiles/${P}-${BACKPORTS}.tar.xz}"
fi
DESCRIPTION="Open Source implementation of a 16-bit x86 BIOS"
HOMEPAGE="http://www.seabios.org"
LICENSE="LGPL-3 GPL-3"
SLOT="0"
IUSE="+binary"
REQUIRED_USE="ppc? ( binary )
ppc64? ( binary )"
DEPEND="
!binary? (
>=sys-power/iasl-20060912
${PYTHON_DEPS}
)"
RDEPEND=""
pkg_pretend() {
if ! use binary; then
ewarn "You have decided to compile your own SeaBIOS. This is not"
ewarn "supported by upstream unless you use their recommended"
ewarn "toolchain (which you are not)."
elog
ewarn "If you are intending to use this build with QEMU, realize"
ewarn "you will not receive any support if you have compiled your"
ewarn "own SeaBIOS. Virtual machines subtly fail based on changes"
ewarn "in SeaBIOS."
fi
local myld=$(tc-getLD)
${myld} -v | grep -q "GNU gold" && \
ewarn "gold linker unable to handle 16-bit code using ld.bfd. bug #438058"
}
pkg_setup() {
use binary || python-any-r1_pkg_setup
}
src_prepare() {
if [[ -z "${EGIT_COMMIT}" ]]; then
sed -e "s/VERSION=.*/VERSION=${PV}/" \
-i "${S}/Makefile"
else
sed -e "s/VERSION=.*/VERSION=${PV}_pre${EGIT_COMMIT}/" \
-i "${S}/Makefile"
fi
epatch_user
}
src_configure() {
:
}
src_compile() {
if ! use binary ; then
LANG=C emake \
CC=$(tc-getCC) \
LD="$(tc-getLD).bfd" \
AR=$(tc-getAR) \
OBJCOPY=$(tc-getOBJCOPY) \
RANLIB=$(tc-getRANLIB) \
OBJDUMP=$(tc-getPROG OBJDUMP objdump) \
HOST_CC=$(tc-getBUILD_CC) \
out/bios.bin
fi
}
src_install() {
insinto /usr/share/seabios
if ! use binary ; then
doins out/bios.bin
else
newins ../bios.bin-${PV} bios.bin
fi
}

View File

@ -1,10 +1,10 @@
# Copyright 1999-2014 Gentoo Foundation
# Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/sys-firmware/seabios/seabios-1.7.3.2.ebuild,v 1.3 2014/04/30 21:17:26 vapier Exp $
# $Id$
EAPI=5
PYTHON_COMPAT=( python{2_6,2_7} )
PYTHON_COMPAT=( python2_7 )
inherit eutils toolchain-funcs python-any-r1
@ -20,11 +20,14 @@ if [[ ${PV} = *9999* || ! -z "${EGIT_COMMIT}" ]]; then
inherit git-2
else
KEYWORDS="~amd64 ~ppc ~ppc64 ~x86 ~amd64-fbsd ~x86-fbsd"
SRC_URI="http://code.coreboot.org/p/seabios/downloads/get/${P}.tar.gz
SRC_URI="!binary? ( http://code.coreboot.org/p/seabios/downloads/get/${P}.tar.gz )
binary? (
http://code.coreboot.org/p/seabios/downloads/get/bios.bin-${PV}.gz
http://dev.gentoo.org/~cardoe/distfiles/${P}.tar.gz
http://dev.gentoo.org/~cardoe/distfiles/bios.bin-${PV}.gz
${BACKPORTS:+http://dev.gentoo.org/~cardoe/distfiles/${P}-${BACKPORTS}.tar.xz}"
seavgabios? (
mirror://debian/pool/main/s/${PN}/${PN}_${PV}-1_all.deb
)
)
${BACKPORTS:+https://dev.gentoo.org/~cardoe/distfiles/${P}-${BACKPORTS}.tar.xz}"
fi
DESCRIPTION="Open Source implementation of a 16-bit x86 BIOS"
@ -32,7 +35,7 @@ HOMEPAGE="http://www.seabios.org"
LICENSE="LGPL-3 GPL-3"
SLOT="0"
IUSE="+binary"
IUSE="+binary +seavgabios"
REQUIRED_USE="ppc? ( binary )
ppc64? ( binary )"
@ -55,52 +58,84 @@ pkg_pretend() {
ewarn "own SeaBIOS. Virtual machines subtly fail based on changes"
ewarn "in SeaBIOS."
fi
local myld=$(tc-getLD)
${myld} -v | grep -q "GNU gold" && \
ewarn "gold linker unable to handle 16-bit code using ld.bfd. bug #438058"
}
pkg_setup() {
use binary || python-any-r1_pkg_setup
}
src_unpack() {
default
if use binary && use seavgabios ; then
unpack ./data.tar.xz
mv usr/share/seabios/vgabios*.bin ./ || die
fi
# This simplifies the logic between binary & source builds.
mkdir -p "${S}"
}
src_prepare() {
use binary && return
if [[ -z "${EGIT_COMMIT}" ]]; then
sed -e "s/VERSION=.*/VERSION=${PV}/" \
-i "${S}/Makefile"
-i Makefile || die
else
sed -e "s/VERSION=.*/VERSION=${PV}_pre${EGIT_COMMIT}/" \
-i "${S}/Makefile"
-i Makefile || die
fi
epatch_user
}
src_configure() {
:
use binary || tc-ld-disable-gold #438058
}
_emake() {
LANG=C \
emake V=1 \
CC="$(tc-getCC)" \
LD="$(tc-getLD)" \
AR="$(tc-getAR)" \
OBJCOPY="$(tc-getOBJCOPY)" \
RANLIB="$(tc-getRANLIB)" \
OBJDUMP="$(tc-getOBJDUMP)" \
HOST_CC="$(tc-getBUILD_CC)" \
"$@"
}
src_compile() {
if ! use binary ; then
LANG=C emake \
CC=$(tc-getCC) \
LD="$(tc-getLD).bfd" \
AR=$(tc-getAR) \
OBJCOPY=$(tc-getOBJCOPY) \
RANLIB=$(tc-getRANLIB) \
OBJDUMP=$(tc-getPROG OBJDUMP objdump) \
HOST_CC=$(tc-getBUILD_CC) \
out/bios.bin
use binary && return
_emake out/bios.bin
mv out/bios.bin ../bios.bin
if use seavgabios ; then
local config t targets=(
cirrus
isavga
qxl
stdvga
vmware
)
for t in "${targets[@]}" ; do
emake clean distclean
cp "${FILESDIR}/seavgabios/config.vga-${t}" .config || die
_emake oldnoconfig
_emake out/vgabios.bin
cp out/vgabios.bin ../vgabios-${t}.bin || die
done
fi
}
src_install() {
insinto /usr/share/seabios
if ! use binary ; then
doins out/bios.bin
else
newins ../bios.bin-${PV} bios.bin
newins ../bios.bin* bios.bin
if use seavgabios ; then
insinto /usr/share/seavgabios
doins ../vgabios*.bin
fi
}

View File

@ -1,10 +1,10 @@
# Copyright 1999-2014 Gentoo Foundation
# Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/sys-firmware/seabios/seabios-1.7.5.ebuild,v 1.3 2014/09/13 17:07:07 ago Exp $
# $Id$
EAPI=5
PYTHON_COMPAT=( python{2_6,2_7} )
PYTHON_COMPAT=( python2_7 )
inherit eutils toolchain-funcs python-any-r1
@ -20,11 +20,9 @@ if [[ ${PV} = *9999* || ! -z "${EGIT_COMMIT}" ]]; then
inherit git-2
else
KEYWORDS="amd64 ~ppc ~ppc64 x86 ~amd64-fbsd ~x86-fbsd"
SRC_URI="http://code.coreboot.org/p/seabios/downloads/get/${P}.tar.gz
http://code.coreboot.org/p/seabios/downloads/get/bios.bin-${PV}.gz
http://dev.gentoo.org/~cardoe/distfiles/${P}.tar.gz
http://dev.gentoo.org/~cardoe/distfiles/bios.bin-${PV}.gz
${BACKPORTS:+http://dev.gentoo.org/~cardoe/distfiles/${P}-${BACKPORTS}.tar.xz}"
SRC_URI="!binary? ( http://code.coreboot.org/p/seabios/downloads/get/${P}.tar.gz )
binary? ( http://code.coreboot.org/p/seabios/downloads/get/bios.bin-${PV}.gz )
${BACKPORTS:+https://dev.gentoo.org/~cardoe/distfiles/${P}-${BACKPORTS}.tar.xz}"
fi
DESCRIPTION="Open Source implementation of a 16-bit x86 BIOS"
@ -55,43 +53,47 @@ pkg_pretend() {
ewarn "own SeaBIOS. Virtual machines subtly fail based on changes"
ewarn "in SeaBIOS."
fi
local myld=$(tc-getLD)
${myld} -v | grep -q "GNU gold" && \
ewarn "gold linker unable to handle 16-bit code using ld.bfd. bug #438058"
}
pkg_setup() {
use binary || python-any-r1_pkg_setup
}
src_unpack() {
default
# This simplifies the logic between binary & source builds.
mkdir -p "${S}"
}
src_prepare() {
use binary && return
if [[ -z "${EGIT_COMMIT}" ]]; then
sed -e "s/VERSION=.*/VERSION=${PV}/" \
-i "${S}/Makefile"
-i Makefile || die
else
sed -e "s/VERSION=.*/VERSION=${PV}_pre${EGIT_COMMIT}/" \
-i "${S}/Makefile"
-i Makefile || die
fi
epatch_user
}
src_configure() {
:
use binary || tc-ld-disable-gold #438058
}
src_compile() {
if ! use binary ; then
LANG=C emake \
CC=$(tc-getCC) \
LD="$(tc-getLD).bfd" \
AR=$(tc-getAR) \
OBJCOPY=$(tc-getOBJCOPY) \
RANLIB=$(tc-getRANLIB) \
OBJDUMP=$(tc-getPROG OBJDUMP objdump) \
HOST_CC=$(tc-getBUILD_CC) \
CC="$(tc-getCC)" \
LD="$(tc-getLD)" \
AR="$(tc-getAR)" \
OBJCOPY="$(tc-getOBJCOPY)" \
RANLIB="$(tc-getRANLIB)" \
OBJDUMP="$(tc-getOBJDUMP)" \
HOST_CC="$(tc-getBUILD_CC)" \
out/bios.bin
fi
}

View File

@ -0,0 +1,137 @@
# Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
EAPI="5"
PYTHON_COMPAT=( python2_7 )
inherit eutils toolchain-funcs python-any-r1
# SeaBIOS maintainers sometimes don't release stable tarballs or stable
# binaries to generate the stable tarball the following is necessary:
# git clone git://git.seabios.org/seabios.git && cd seabios
# git archive --output seabios-${PV}.tar.gz --prefix seabios-${PV}/ rel-${PV}
if [[ ${PV} = *9999* || ! -z "${EGIT_COMMIT}" ]]; then
EGIT_REPO_URI="git://git.seabios.org/seabios.git"
inherit git-2
else
KEYWORDS="amd64 ~ppc ~ppc64 x86 ~amd64-fbsd ~x86-fbsd"
# Upstream hasn't released a new binary. We snipe ours from Fedora for now.
# http://code.coreboot.org/p/seabios/downloads/get/bios.bin-${PV}.gz
SRC_URI="!binary? ( http://code.coreboot.org/p/seabios/downloads/get/${P}.tar.gz )
binary? (
mirror://gentoo/bios.bin-${PV}.xz
seavgabios? ( mirror://gentoo/seavgabios-${PV}.tar.xz )
)"
fi
DESCRIPTION="Open Source implementation of a 16-bit x86 BIOS"
HOMEPAGE="http://www.seabios.org"
LICENSE="LGPL-3 GPL-3"
SLOT="0"
IUSE="+binary debug +seavgabios"
REQUIRED_USE="debug? ( !binary )
ppc? ( binary )
ppc64? ( binary )"
DEPEND="
!binary? (
>=sys-power/iasl-20060912
${PYTHON_DEPS}
)"
RDEPEND=""
pkg_pretend() {
if ! use binary; then
ewarn "You have decided to compile your own SeaBIOS. This is not"
ewarn "supported by upstream unless you use their recommended"
ewarn "toolchain (which you are not)."
elog
ewarn "If you are intending to use this build with QEMU, realize"
ewarn "you will not receive any support if you have compiled your"
ewarn "own SeaBIOS. Virtual machines subtly fail based on changes"
ewarn "in SeaBIOS."
fi
}
pkg_setup() {
use binary || python-any-r1_pkg_setup
}
src_unpack() {
default
# This simplifies the logic between binary & source builds.
mkdir -p "${S}"
}
src_prepare() {
use binary && return
epatch "${FILESDIR}"/${P}-fstack-check.patch #559980
epatch_user
}
src_configure() {
use binary && return
tc-ld-disable-gold #438058
if use debug ; then
echo "CONFIG_DEBUG_LEVEL=8" >.config
fi
_emake config
}
_emake() {
LANG=C \
emake V=1 \
CC="$(tc-getCC)" \
LD="$(tc-getLD)" \
AR="$(tc-getAR)" \
OBJCOPY="$(tc-getOBJCOPY)" \
RANLIB="$(tc-getRANLIB)" \
OBJDUMP="$(tc-getOBJDUMP)" \
HOST_CC="$(tc-getBUILD_CC)" \
VERSION="Gentoo/${EGIT_COMMIT:-${PVR}}" \
"$@"
}
src_compile() {
use binary && return
_emake out/bios.bin
mv out/bios.bin ../bios.bin
if use seavgabios ; then
local config t targets=(
cirrus
isavga
qxl
stdvga
virtio
vmware
)
for t in "${targets[@]}" ; do
emake clean distclean
cp "${FILESDIR}/seavgabios/config.vga-${t}" .config || die
_emake oldnoconfig
_emake out/vgabios.bin
cp out/vgabios.bin ../vgabios-${t}.bin || die
done
fi
}
src_install() {
insinto /usr/share/seabios
newins ../bios.bin* bios.bin
if use seavgabios ; then
insinto /usr/share/seavgabios
doins ../vgabios*.bin
fi
}