From f8566fac9a170565c615610ab2fbe24253b39c2f Mon Sep 17 00:00:00 2001 From: Gerasim Troeglazov <3dEyes@gmail.com> Date: Thu, 17 Jan 2019 21:53:14 +1000 Subject: [PATCH] QEMU: add recipe for 3.1.0 version * add native icon * split to separate packages for x86, sparc, ppc, mips, m68k and arm architectures. --- .../qemu/additional-files/qemu.rdef.in | 198 ++++++- .../qemu/patches/qemu-3.1.0.patchset | 541 ++++++++++++++++++ app-emulation/qemu/qemu-3.1.0.recipe | 221 +++++++ 3 files changed, 931 insertions(+), 29 deletions(-) create mode 100644 app-emulation/qemu/patches/qemu-3.1.0.patchset create mode 100644 app-emulation/qemu/qemu-3.1.0.recipe diff --git a/app-emulation/qemu/additional-files/qemu.rdef.in b/app-emulation/qemu/additional-files/qemu.rdef.in index a664aa183..8eeed1a79 100644 --- a/app-emulation/qemu/additional-files/qemu.rdef.in +++ b/app-emulation/qemu/additional-files/qemu.rdef.in @@ -16,33 +16,173 @@ resource app_version { resource app_signature "@APP_SIGNATURE@"; resource vector_icon { - $"6E63696604050003FF6500050002011602313AE2BFFFFA41E7B733274A43D52F" - $"4BB69B0001FFFF07060AFF020FBFB820C6BE20B8B22020BFA620B8A920C6A3BF" - $"B8CC4CB8B2CC4CC205CC4CC608CAA2C42BCBB2C608CAA2C6B1CC4CC73DCBCBCB" - $"D2C9D1C757C9D1C757CB75C535CC6FBFA6CC6FC28BCC6FB8A90204C7FABAA9C7" - $"FAB6A8C7FABEAABF8EC1E8C435C1E8BAE7C1E8B721BAA9B721BEAAB721B6A8BF" - $"8EB369BAE7B369C435B3690204C261B838C261B765C261B90BC0E2B9B7C1B6B9" - $"B7C00FB9B7BF64B838BF64B90BBF64B765C0E2B6B9C00FB6B9C1B6B6B90A043C" - $"B8EFC6A4BA28C667BB63BDEBBA290A04C5CDBA8CC74CBA8CC74CBB35C5CDBB35" - $"06313FFFFFFFFDFFFFDAFBFDBFFF03BC58B515BC58B515BC55B594BB6DB5B7BB" - $"77B525BA77B549BB68B678BB80B65EBB68B678BB66BB53B676BB53B676BB48B6" - $"72BB1DB65BBB36B66BBA71B6E4B9BBB89EBA6DB801B947B999B8D6BBAFB92BBA" - $"AAB8ACBCAAB8C6BE9FB887BDA4B8D8BF6CB957C110B89DC081BA6BC1F2BC37C4" - $"21BB50C311BDA2C5DFBFFEC9B2BEE3C7BEC011C936C092CAC3C03FCAAAC075CA" - $"09C03EC7FCC050C8E1BFE2C5A5BE4BC131BEBAC383BE48C118BE40C0E4BE44C0" - $"FEBE40C0E4C09ABE37C09ABE37C09ABE13BF74BEDBBD52BE05BE38BFB5BC76C2" - $"00BBA6C0F9BC3FC23ABB84C2B6BB54C277BB68C2B7BB54C2B8BB54C2B7BB54C3" - $"6EBB1CC4EDBB3CC430BB1EC4EFBB3DC4F6BB3EC4F3BB3EC507BB41C52BBB47C5" - $"19BB44C5B5BB54C6FDBB2AC6CBBB8AC63EBA88C443BA53C52BBA93C41EBA4DC3" - $"C4BA41C3F1BA45C3C4BA41C2E0BA0EC2A8B9FFBA01BF79B963BF79B963BF6CB9" - $"57BF51B942BF5EB94BBF51B942C26BB9A4C26BB9A1C26BB9A1C287B9A7C2BFB9" - $"AFC2A3B9ACC2BFB9AFB9B1C4F0BA19C4F0BA19C551BA3DC619BA5EC5B8BA58C6" - $"B9BA7554BB6FC784BB64C79FBA74C5D4B9BAC6A4BA04C4E1B944C34FB801C376" - $"B948C345B7EBC32EB7BEC33BB7D4C32EB7BEC2D0B740C2D3B73FC2D3B73FC252" - $"B6A6C0DBB60DC19CB637C01B27BE79B56EBF43B588BE34B639BD41B539BDE7B4" - $"CEBCB0B54ABC58B515BCC4B571BC58B5150205AD6FAD25AD18AD28ADA4AD24AE" - $"1CAD43ADE0AD2EAEBDAD7AAF07AE49AF26ADEFAEE8AEA2ADABAE85AE4CAEBDAD" - $"0AAE4DACC0AD80ACA2ADDAACD4AD49060A020100000A030101000A000103000A" - $"000104000A01020506000A000102023FECC33B1635B9B4953E5B12422C04C1AC" - $"E8" + $"6E63696607020016023948D63D3094BDDFAB39FD1F4ABA27497CCF00FFFF1002" + $"010602374523320A99B7657F3CB86948145E49514700F3C7B8FFD5613803D5AD" + $"A105FF05A1050104017B1C0210B9C1B589B9C1B5A0B9CCB5A2B9E8B5CFB9DAB5" + $"B8B9EEB5E2B9F4B608B9F1B5F5B9FBB5F5BA0DB5D0BA03B5E2BA1AB5BDBA22B5" + $"8FBA22B5A7BA25B5A8BA34B5D8BA2EB5C0BA35B5EABA32B60FBA33B5FDBA3FB5" + $"FFBA5AB5E1BA4BB5EFBA6BB5D2BA88B5B0BA7CB5C3BA80B5C6BA80B5F5BA7BB5" + $"DDBA6EB61ABA43B65FBA57B63BBA1EB66BB9D0B661B9F6B65FB9C0B664B9AAB6" + $"4DB9B3B659B9ADB644B9B2B632B9B0B63BB9B6B621B9B8B5FEB9B7B610B9B8B5" + $"EEB9BBB5CEB9B9B5DEB9BEB5B7020DB8A0B651B89AB652B8A1B637B8A5B603B8" + $"A2B61DB8AAB612B8B5B631B8B0B622B8BDB648B8C9B677B8C3B660B8C9B677B8" + $"CAB67DB8CAB67DB8CDB684B8D4B692B8D0B68BB8BBB6A2B884B6AFB89EB6A5B8" + $"7EB6B2B874B6B9B879B6B6B874B6ABB86CB68EB875B69BB85CB676B83FB643B8" + $"4BB65EB84FB654B878B66CB85EB669B876B653B86EB622B871B63AB878B632B8" + $"8EB652B880B6442EB6520212C0ADBDA5C0A6BDA3C125BDC0C1FCBE39C19CBDEA" + $"C209BE44C280BED9C267BEABC28CBEEEC2B6BFA0C2B0BF74C2CFC031C29AC155" + $"C2C0C0C7C28EC17E4449C22A47C06DC439BF18C4E7BF12C4DCBED3C4F9BE4BC5" + $"1DBE90C510BE1BC52DBD26C550BD57C54EBCD6C553BC37C54DBC87C54DBC3AC5" + $"5DBC41C57CBC3DC56CBC38C56637C53ABC31C550BBBCC527BAE6C4E6BB4DC512" + $"BA79C4B8B9B5C433BA0FC480B984C408B934C3A2B954C3DBB8E2C314B8E6C1C8" + $"B8CCC268B8E9C1B63141B926C0C5353DBD4DBDFABC93BE2D3F3A0206B958B5DB" + $"B91DB5EDB978B5D2B9BBB5CEB99927B9B9B5DEB9B8B5FEB9B8B5EEB993B60AB9" + $"48B60DB96DB605B911B61CB8C9B677B8E5B647B8C3B660B8B5B631B8BDB648B8" + $"E3B6060203B9E8B5CFB9EEB5E2B9F4B5CFBA0DB5D0BA01B5D0BA03B5E2B9F4B6" + $"08B9FBB5F5B9F1B5F50203BA34B5D8BA35B5EABA41B5DBBA5AB5E1BA4DB5DEBA" + $"4BB5EFBA32B60FBA3FB5FFBA33B5FD0221BAF9B64B3226BB2DB67CBB6FB6FABB" + $"50B6BBBB81B726BB9EB77FBB95B751BBAEB7C1BBB9B849BBB6B805362EBBB4B9" + $"29BBB9B8DEBBA2B9EBBB4FBB67BB7BBAAABB40BB97BB2BBBF9BB36BBC8BAFEBC" + $"A3BACCBDFFBADCBD50BACCBE55BACDBF01BAB9BEACBAD7BF31BAE3BF94BAD8BF" + $"63BAF1BFD2BB1CC04BBB00C011BB2AC06FBB3CC0BBBB31C096BB4EC0FDBB59C1" + $"87BB5AC142BB5CC1DBBB13C276BB4AC234BAE9C2A3BA74C2CDBAB2C2C6BA2EC2" + $"D4B9ABC298B9E4C2C3B988C27EB951C239B969C25DB93AC216B916C1C9B929C1" + $"EEB914C1A7B901C165B909C186B905C123B8F7C0A1B8F1C0E3B8FDC075B905C0" + $"1DB8FCC049B911BFE5B927BF74B918BFACB932BF41B94DBEDBB93CBF0DB9A8BD" + $"78BA33BAA8BA1BBC18BA37BA53BA29B9AABA34B9FEBA0FB945B9AAB88DB9EEB8" + $"DEB99DB87EB980B864B990B86FB963B85DB927B868B944B860B90AB871B8CEB8" + $"75B8EBB86BB8B4B87EB87EB877B899B87BB8D1B85FB82CB7B22A2EB845B79EB8" + $"75B773B861B78DB872B7362E28B88EB6333026020CB82AB850B7F6B858B8C2B8" + $"39B9EAB7E0B957B80EB9C0B808B951B82DB988B81CB90FB842B889B863B8CEB8" + $"58B85FB86AB80BB87FB835B874B82FB87DB879B878B854B87BB861B88AB827B8" + $"8AB843B886B7E7B8982BB891B7A3B897B74BB88CB72EB859B727B862B74CB83C" + $"B794B812B76FB825B77AB8282B2DB777B812B777B835B78DB865B777B867B7C2" + $"B861002EC0E2C513C0E2C513C11DC50CC15CC4A6C143C4D6C16DC4B5C194C4CC" + $"C17FC4C2C198C4F5C192C549C198C51FC18FC55AC18BC57EC18BC56CC189C58E" + $"C185C5AFC188C59FC176C5DFC161C642C16BC611C156C656C145C680C14AC669" + $"C135C6C2C111C746C11AC701C10EC756C0F9C770C0FFC760C0E9C79EC0DDC801" + $"C0E5C7D0C0D2C83BC0D7C8B1C0D8C876C0D757C0B4C958C0D7C929C09DC979C0" + $"5DC9ACC085C99DC052C9B4C044C9CCC04DC9C2C03AC9DCC017C9EBC025C9DFC0" + $"0AC9F9BFF0CA16BFFDCA08BFE6CA20BFD9CA39BFDFCA2CBFBCCA70BF8ACAE2BF" + $"A6CAAABF88CAE4BF83CAEDBF85CAEABF7BCAF9BF6ACB10BF72CB043FCB28BF24" + $"CB30BF3CCB29BEFECB37BEB0CB36BED6CB46BE8FCB2ABE65CAF1BE79CB0DBE66" + $"CAE4BE68CAC9BE67CAD6BE2ECAEEBDB0CB26BDF2CB10BD8FCB2DBD4CCB2ABD6D" + $"CB2BBD33CB29BD15CAFEBD18CB19BD12CADBBD31CA99BD21CAB8BD53CA5EBDBC" + $"CA06BD83CA2BBE2EC9B2BF34C94DBEBEC99ABF5BC934BF9DC8F1BF80C916BFDD" + $"C8A2C01DC7E1C006C843C020C7D5C01AC7BCC01CC7C8C019C7ACC01EC78DC01B" + $"C79CC031C74DC02BC6C8C02EC709C024C695C020C62FC029C661C01CC611C004" + $"C5DAC00FC5F5BFFEC5CABFF4C5ABBFF9C5BBBFECC58CBFDAC54EBFE5C56CBFF1" + $"C560C024C581C007C578C036C586C05AC57BC04CC589C06DC569C08EC542C080" + $"C557C09DC525C0B2C4E7C0A5C504C0C64DC0EAC505C0D8C4F9C0E7C50AC0E2C5" + $"13C0E5C50EC0E2C5130206BEE0C9FEBEE7C9F4BECACA1ABEA4CA56BEB5CA37BE" + $"9ACA68BE9ECA90BE9DCA7DBEA7CA8FBEBACA8CBEB1CA8EBEC5CA7ABED4CA52BE" + $"CBCA65BEE2CA30BEFEC9EEBEFCCA13BEF3C9F2001DBD26C550BD26C550BD57C5" + $"4EBDB9C541BD8AC551BDBCC56B3B4FBDE6C57FBDABC5CEBD47C7253B51BD47C7" + $"1CBD46C70BBD47C714BD32C725BD12C75FBD24C744BCF5C77EBCDEC7CEBCE9C7" + $"A7BCD3C7FFBCE0C865BCD1C834BCE8C882BCEEC8BEBCECC89FBCF1C8E0BCDDC9" + $"22BCE5C901BCD9C932BCB9C93DBCC6C938BC82C949BC16C92ABC4BC935BBABC9" + $"12BACEC91DBB3BC90BBAACC921BA67C92ABA89C921BA29C93AB9ABC94CB9EAC9" + $"45B984C94FB93AC93CB95FC945B91CC935B8EDC908B8F9C928B8E1C8EDB901C8" + $"BBB8F0C8CFB91AC89EB95BC877B935C880B974C86DB9A8C870B98FC871B9B8C8" + $"61B9D8C846B9C4C84EBA05C82DBA6BC835BA3AC829BAA7C843BB22C856BAE3C8" + $"563656BC0CC809BBF7C826BC21C7EDBC63C6FA3755BC66C6C9BC5EC602BC65C6" + $"24BC56C5D4BC41C57CBC4DC5A8BC3DC56CBC37C54DBC3AC55DBC87C54DBD26C5" + $"50BCD6C553BD26C5500207B948B60DB911B61CB96DB605B9B8B5FEB993B60AB9" + $"B7B610B9B2B632B9B6B621B9A4B635B98BB642B996B638B96CB65CB923B681B9" + $"4BB677B906B687B8CAB67DB8E8B680B8CAB67DB8C9B677B8C9B677B8E5B64702" + $"16B8E8B717B8CBB751B8F7B6FFB925B6DDB906B6E1B943B6DFB966B712B958B6" + $"FAB976B72EB9A1B75DB986B74BB9C4B775BA16B787B9F0B777BA3DB798BA4CB7" + $"F0BA58B7C6BA42B80FBA08B830BA26B826B9DAB83DB97BB843B9AAB839B926B8" + $"52B87EB877B8D1B85FB87EB877B879B878B879B878B854B87BB80BB87FB82FB8" + $"7DB835B874B889B863B85FB86AB8CEB858B951B82DB90FB842B988B81CB9EAB7" + $"E0B9C0B808B957B80EB82AB850B8C2B839B7F6B858B78DB865B7C2B861B777B8" + $"67B74BB85CB761B863B761B840B794B812B77AB828B797B811B79FB80CB79CB8" + $"0EB7ADB80CB7BFB7F7B7BAB804B7D5B7E9B803B7D1B7ECB7DCB826B7C5B865B7" + $"A0B847B7B5B899B77B020BC043C5B2C041C5F1C04DC5BBC05DC5D3C059C5C5C0" + $"6EC600C073C661C075C631C074C6B9C071C76BC075C712C068C7B3C054C843C0" + $"68C7FDC047C875C017C8D3C040C8AEC00CC8DFBFEDC8E7BFFDC8E4BFECC8B9C0" + $"1BC86AC005C891C039C836C04CC7C1C043C7FBC056C794C057C739C054C767C0" + $"5AC6F6C052C66EC054C6B2C050C62F0207BE51C9CFBE2AC9E4BE6AC9C2BEA3C9" + $"C1BE88C9AEBE8BC9E0BE45C9FCBE63C9E7BE19CA18BDC4CA55BDE9CA2FBDB0CA" + $"69BD86CA8EBDA2CA85BD75CA8CBD77CA69BD77CA76BD89CA3DBDDACA09BDB6CA" + $"25BDFDC9ED0008B98BB695B98BB695B98DB67AB9AAB64DB99CB663B9B3B659B9" + $"D0B661B9C0B664B9F6B65FBA43B65FBA1EB66BBA51B67ABA63B6B5BA61B695BA" + $"66B6DDBA3AB724BA5AB709BA1FB73DB9D5B72FB9F5B740B99DB714B98BB695B9" + $"82B6D1B98BB6950203BA18B677BA3AB673B9DCB683BA1DB6F4B9DFB6EEBA3BB6" + $"F2BA50B6B5BA52B6D2BA4FB6970206B8D4B692B8BBB6A2B8E4B6A8B8F1B6DBB8" + $"F3B6BFB8DFB6D2B8B3B6D5B8C5B6C2B89AB6EFB8BAB72FB8A5B717B8B2B736B8" + $"A1B743B8A9B73DB880B71AB884B6AFB876B6E2B89EB6A50025C413BBB7C413BB" + $"B7C438BBADC483BB9FC45DBB9EC48DBB9EC49ABBABC494BBA4C49ABBBFC482BB" + $"E0C48FBBD1C45FBC0CC403BC4EC42FBC2BC45EBC29C523BC05C4BEBC00C540BC" + $"06C577BC1FC561BC0AC58CBC36C573BC72C587BC5CC553BC97C4FBBCC5C524BC" + $"ABC4C1BCE9C45DBD45C48EBD16C4B0BD294EBCEAC500BD04C57CBCDFC5D3BCEF" + $"C5AEBCD2C5E9BD06C5F4BD48C5F8BD28C5E2BD65C5A1BD7EC5C0BD72C52FBDA7" + $"C450BE0AC4B3BDBFC4A2BDF8C54ABDFCC4F7BDEEC56FBE02C5B0BE2AC594BE0F" + $"C5BDBE37C5C2BE5DC5C8BE4AC5BBBE70C594BE7EC5A6BE78C54CBE92C4B7BE91" + $"C500BE8AC473BE93C3EDBE9CC430BE93C372BEA6C280BED9C2F6BEB4C267BEAB" + $"C223BE5DC248BE81C233BE53C255BE41C244BE49C2A5BE1EC34ABDE9C2F5BDFD" + $"C38BBDD7C40EBDB9C3D3BDDCC3E0BDAEC380BDB5C3AFBDB0C308BDBFC22ABE1B" + $"C293BDE2C21ABE24C1FCBE39C20BBE2EC19CBDEAC0ADBDA5C125BDC0C0F5BD4A" + $"C19BBCA8C147BCF7C1E3BC66C282BBF6C22EBC28C2B6BBD8C32DBBBF48BBBFC3" + $"19BBD7C2EBBC01C301BBECC2E1BC09C2CEBC1BC2D8BC12C2BDBC2CC2ABBC5AC2" + $"B3BC43C31FBC1BC413BBB7C394BBDBC413BBB70006C29BBCA8C29BBCA8C23EBC" + $"DCC1B9BD86C1E9BD26C1E4BD6FC229BD29C204BD48C261BCF3C2E6BCA1C2A0BC" + $"C4C2FFBC95C32DBC74C319BC88C2F9BC79C29BBCA8C2C9BC91C29BBCA80205C3" + $"FFBC88C41EBC7DC3B3BCA2C33EBD13C36ABCCFC36DBD00C3BEBCC1C393BCDCC3" + $"E1BCADC42BBC8EC405BC9AC43EBC89C45FBC75C44FBC81C43EBC74021FBB1CC0" + $"4BBB2AC06FBB1FC04ABB29C048BB26C049BB3DC04DBB61C05CBB50C053BB75C0" + $"68BB91C08DBB83C07BBBBEC08BBC10C0B3BBEFC090BC2CC0CABC29C112BC27C0" + $"F1BC43C11DBC72C142BC62C128BC80C15ABC6EC18EBC7AC177BC5DC1AEBC22C1" + $"D9BC3EC1C4BC31C1F2BC35C22DBC42C20FBC27C260BBC8C28EBBF7C27EBBD6C2" + $"ABBBE2C2ECBBE5C2CABBE1C31EBB81C34BBBB3C34835C350BB1DC332BB3CC341" + $"BB22C359BB10C3A5BB20C381BB02C3CCBAADC3C1BACEC3CFBA7CC3AABA3EC351" + $"BA57C380BA37C370BA13C3A8BA33C398B9FCC3B2B9D6C392B9E6C3A1B9AFC36B" + $"B981C305B993C339B977C30EB962C321B96CC318B931C2EBB94BC25EB94AC29F" + $"B939C273B908C28DB927C28CB8FBC25FB904C1FEB900C22EB907C1ECB916C1C9" + $"B90FC1DAB929C1EEB951C239B93AC216B969C25DB9ABC298B988C27EB9E4C2C3" + $"BA74C2CDBA2EC2D4BAB2C2C6BB13C276BAE9C2A3BB4AC234BB59C187BB5CC1DB" + $"BB5AC142BB3CC0BBBB4EC0FDBB31C096021AC12EC2E5C118C2E2C14DC2E3C166" + $"C2A8C15CC2C2C170C2BEC17FC2EDC179C2D5C196C34AC181C40BC19DC3AEC175" + $"C42CC147C463C164C44FC130C472C115C445C121C454C107C469C0C7C49DC0F3" + $"C497C0A9C4A2C08BC46EC09AC483C083C49DC04FC4F0C073C4CEC03BC505BFFD" + $"C4FBC016C50DBFE7C4EABFCFC4B6BFDDC4CEBFC1C4C9BF97C4E3BFB4C4E8BF78" + $"C4DCBF4EC4ABBF62C4C2BF3AC494BF1EC45CBF30C475BF0DC44CBEE8C42CBEF3" + $"C443BEBFC3E5BED0C340BEC1C38FBED8C33EBEE9C339BEE0C33BBEF2C350BF13" + $"C376BEFBC36ABF33C387BF75C364BF5CC37CBF90C34DBFA6C30ABF9CC32ABFB4" + $"C324BFDDC351BFBFC345BFF4C35CC022C345C00EC352C03BC334C055C2FDC048" + $"C318C05FC309C073C320C068C316C083C330C0B1C328C09DC32EC0D8C318C0F7" + $"C2C8C0EDC2EFC108C2D3020AC201BC28C1B8BC58C26ABBDDC36DBBAEC2E9BBA2" + $"C360BBB9C343BBCCC352BBC3C325BBDDC2EBBC01C30ABBF2C301BBECC32DBBBF" + $"C319BBD748BBBFC282BBF6C2B6BBD8C22EBC28C19BBCA8C1E3BC66C147BCF7C0" + $"ADBDA5C0F5BD4AC0A6BDA3C098BD9EC09FBDA1C0CBBD58C13DBCD5C103BD16C1" + $"7ABC970205C29BBCA8C23EBCDCC2C9BC91C32DBC74C2F9BC79C319BC88C2E6BC" + $"A1C2FFBC95C2A0BCC4C229BD29C261BCF3C204BD48C1B9BD86C1E4BD6FC1E9BD" + $"260205C3FFBC88C3B3BCA2C41EBC7DC45FBC75C43EBC74C44FBC81C42BBC8EC4" + $"3EBC89C405BC9AC3BEBCC1C3E1BCADC393BCDCC33EBD13C36DBD00C36ABCCF02" + $"07C22ABE1BC21ABE24C293BDE2C380BDB5C308BDBFC3AFBDB0C40EBDB9C3E0BD" + $"AEC3D3BDDCC34ABDE9C38BBDD7C2F5BDFDC255BE41C2A5BE1EC244BE49C223BE" + $"5DC233BE53C216BE50C1FCBE39C209BE44C20BBE2E02044030C34530BC3A3030" + $"4030BC3A30C3454050BC3A50C34550504050C34550BC3A1C0A06011B024067BA" + $"0000000000003EDA12C3C3B549B8E30A051314151608090A0D171A1202030405" + $"0607110100124032F3000000000000402C3F38AEA3C438E301178222040A0001" + $"00024032F3000000000000402C3F38AEA3C438E30A000101024032F300000000" + $"0000402C3F38AEA3C438E30A000102024032F3000000000000402C3F38AEA3C4" + $"38E30A010103024032F3000000000000402C3F38AEA3C438E30A010104024032" + $"F3000000000000402C3F38AEA3C438E30A010105024032F3000000000000402C" + $"3F38AEA3C438E30A010106024032F3000000000000402C3F38AEA3C438E30A01" + $"0107024032F3000000000000402C3F38AEA3C438E30A01020809024032F30000" + $"00000000402C3F38AEA3C438E30A01010A024032F3000000000000402C3F38AE" + $"A3C438E30A02010B024032F3000000000000402C3F38AEA3C438E30A02010C02" + $"4032F3000000000000402C3F38AEA3C438E30A02010D024032F3000000000000" + $"402C3F38AEA3C438E30A02010E024032F3000000000000402C3F38AEA3C438E3" + $"0A03020F10024032F3000000000000402C3F38AEA3C438E30A030111024032F3" + $"000000000000402C3F38AEA3C438E30A0503121314124032F300000000000040" + $"2C3F38AEA3C438E301178100040A0303121314024032F3000000000000402C3F" + $"38AEA3C438E30A040115124032F3000000000000402C3F38AEA3C438E3011781" + $"00040A030115024032F3000000000000402C3F38AEA3C438E30A040116124032" + $"F3000000000000402C3F38AEA3C438E301178100040A030116024032F3000000" + $"000000402C3F38AEA3C438E30A040117024032F3000000000000402C3F38AEA3" + $"C438E30A040118024032F3000000000000402C3F38AEA3C438E30A0401190240" + $"32F3000000000000402C3F38AEA3C438E30A04011A024032F300000000000040" + $"2C3F38AEA3C438E3" }; diff --git a/app-emulation/qemu/patches/qemu-3.1.0.patchset b/app-emulation/qemu/patches/qemu-3.1.0.patchset new file mode 100644 index 000000000..4456815a9 --- /dev/null +++ b/app-emulation/qemu/patches/qemu-3.1.0.patchset @@ -0,0 +1,541 @@ +From a4dade48889221d8e8a719f79df5baafb7b537df Mon Sep 17 00:00:00 2001 +From: Gerasim Troeglazov <3dEyes@gmail.com> +Date: Wed, 16 Jan 2019 22:00:42 +1000 +Subject: Haiku patches + + +diff --git a/os-posix.c b/os-posix.c +index 4bd80e4..98565ba 100644 +--- a/os-posix.c ++++ b/os-posix.c +@@ -41,6 +41,15 @@ + #include + #endif + ++#ifdef __HAIKU__ ++#ifndef MCL_CURRENT ++#define MCL_CURRENT 8192 ++#endif ++#ifndef MCL_FUTURE ++#define MCL_FUTURE 16384 ++#endif ++#endif ++ + /* + * Must set all three of these at once. + * Legal combinations are unset by name by uid +diff --git a/target/mips/mips-semi.c b/target/mips/mips-semi.c +index a7aefba..16c2336 100644 +--- a/target/mips/mips-semi.c ++++ b/target/mips/mips-semi.c +@@ -75,6 +75,7 @@ enum UHIOpenFlags { + + /* Errno values taken from asm-mips/errno.h */ + static uint16_t host_to_mips_errno[] = { ++#ifndef __HAIKU__ + [ENAMETOOLONG] = 78, + #ifdef EOVERFLOW + [EOVERFLOW] = 79, +@@ -82,6 +83,9 @@ static uint16_t host_to_mips_errno[] = { + #ifdef ELOOP + [ELOOP] = 90, + #endif ++#else ++NULL ++#endif + }; + + static int errno_mips(int err) +diff --git a/target/xtensa/xtensa-semi.c b/target/xtensa/xtensa-semi.c +index 2f76216..3540ea0 100644 +--- a/target/xtensa/xtensa-semi.c ++++ b/target/xtensa/xtensa-semi.c +@@ -96,59 +96,53 @@ enum { + + static uint32_t errno_h2g(int host_errno) + { +- static const uint32_t guest_errno[] = { +- [EPERM] = TARGET_EPERM, +- [ENOENT] = TARGET_ENOENT, +- [ESRCH] = TARGET_ESRCH, +- [EINTR] = TARGET_EINTR, +- [EIO] = TARGET_EIO, +- [ENXIO] = TARGET_ENXIO, +- [E2BIG] = TARGET_E2BIG, +- [ENOEXEC] = TARGET_ENOEXEC, +- [EBADF] = TARGET_EBADF, +- [ECHILD] = TARGET_ECHILD, +- [EAGAIN] = TARGET_EAGAIN, +- [ENOMEM] = TARGET_ENOMEM, +- [EACCES] = TARGET_EACCES, +- [EFAULT] = TARGET_EFAULT, ++ switch (host_errno) { ++ case 0: return 0; ++ case EPERM: return TARGET_EPERM; ++ case ENOENT: return TARGET_ENOENT; ++ case ESRCH: return TARGET_ESRCH; ++ case EINTR: return TARGET_EINTR; ++ case EIO: return TARGET_EIO; ++ case ENXIO: return TARGET_ENXIO; ++ case E2BIG: return TARGET_E2BIG; ++ case ENOEXEC: return TARGET_ENOEXEC; ++ case EBADF: return TARGET_EBADF; ++ case ECHILD: return TARGET_ECHILD; ++ case EAGAIN: return TARGET_EAGAIN; ++ case ENOMEM: return TARGET_ENOMEM; ++ case EACCES: return TARGET_EACCES; ++ case EFAULT: return TARGET_EFAULT; + #ifdef ENOTBLK +- [ENOTBLK] = TARGET_ENOTBLK, ++ case ENOTBLK: return TARGET_ENOTBLK; + #endif +- [EBUSY] = TARGET_EBUSY, +- [EEXIST] = TARGET_EEXIST, +- [EXDEV] = TARGET_EXDEV, +- [ENODEV] = TARGET_ENODEV, +- [ENOTDIR] = TARGET_ENOTDIR, +- [EISDIR] = TARGET_EISDIR, +- [EINVAL] = TARGET_EINVAL, +- [ENFILE] = TARGET_ENFILE, +- [EMFILE] = TARGET_EMFILE, +- [ENOTTY] = TARGET_ENOTTY, ++ case EBUSY: return TARGET_EBUSY; ++ case EEXIST: return TARGET_EEXIST; ++ case EXDEV: return TARGET_EXDEV; ++ case ENODEV: return TARGET_ENODEV; ++ case ENOTDIR: return TARGET_ENOTDIR; ++ case EISDIR: return TARGET_EISDIR; ++ case EINVAL: return TARGET_EINVAL; ++ case ENFILE: return TARGET_ENFILE; ++ case EMFILE: return TARGET_EMFILE; ++ case ENOTTY: return TARGET_ENOTTY; + #ifdef ETXTBSY +- [ETXTBSY] = TARGET_ETXTBSY, ++ case ETXTBSY: return TARGET_ETXTBSY; + #endif +- [EFBIG] = TARGET_EFBIG, +- [ENOSPC] = TARGET_ENOSPC, +- [ESPIPE] = TARGET_ESPIPE, +- [EROFS] = TARGET_EROFS, +- [EMLINK] = TARGET_EMLINK, +- [EPIPE] = TARGET_EPIPE, +- [EDOM] = TARGET_EDOM, +- [ERANGE] = TARGET_ERANGE, +- [ENOSYS] = TARGET_ENOSYS, ++ case EFBIG: return TARGET_EFBIG; ++ case ENOSPC: return TARGET_ENOSPC; ++ case ESPIPE: return TARGET_ESPIPE; ++ case EROFS: return TARGET_EROFS; ++ case EMLINK: return TARGET_EMLINK; ++ case EPIPE: return TARGET_EPIPE; ++ case EDOM: return TARGET_EDOM; ++ case ERANGE: return TARGET_ERANGE; ++ case ENOSYS: return TARGET_ENOSYS; + #ifdef ELOOP +- [ELOOP] = TARGET_ELOOP, ++ case ELOOP: return TARGET_ELOOP; + #endif + }; + +- if (host_errno == 0) { +- return 0; +- } else if (host_errno > 0 && host_errno < ARRAY_SIZE(guest_errno) && +- guest_errno[host_errno]) { +- return guest_errno[host_errno]; +- } else { +- return TARGET_EINVAL; +- } ++ return TARGET_EINVAL; + } + + typedef struct XtensaSimConsole { +diff --git a/tests/Makefile.include b/tests/Makefile.include +index fb0b449..6780e70 100644 +--- a/tests/Makefile.include ++++ b/tests/Makefile.include +@@ -778,7 +778,7 @@ tests/migration/initrd-stress.img: tests/migration/stress$(EXESUF) + rmdir $(INITRD_WORK_DIR) + + ifeq ($(CONFIG_POSIX),y) +-LIBS += -lutil ++LIBS += + endif + + # QTest rules +diff --git a/util/compatfd.c b/util/compatfd.c +index 980bd33..31e01d6 100644 +--- a/util/compatfd.c ++++ b/util/compatfd.c +@@ -17,7 +17,9 @@ + #include "qemu-common.h" + #include "qemu/thread.h" + ++#ifndef __HAIKU__ + #include ++#endif + + struct sigfd_compat_info + { +diff --git a/util/main-loop.c b/util/main-loop.c +index affe040..de89c2c 100644 +--- a/util/main-loop.c ++++ b/util/main-loop.c +@@ -83,7 +83,9 @@ static int qemu_signal_init(void) + */ + sigemptyset(&set); + sigaddset(&set, SIG_IPI); ++#ifdef SIGIO + sigaddset(&set, SIGIO); ++#endif + sigaddset(&set, SIGALRM); + sigaddset(&set, SIGBUS); + /* SIGINT cannot be handled via signalfd, so that ^C can be used +diff --git a/util/oslib-posix.c b/util/oslib-posix.c +index c1bee2a..b1011b0 100644 +--- a/util/oslib-posix.c ++++ b/util/oslib-posix.c +@@ -36,7 +36,9 @@ + #include "qapi/error.h" + #include "qemu/sockets.h" + #include ++#ifndef __HAIKU__ + #include ++#endif + #include "qemu/cutils.h" + + #ifdef CONFIG_LINUX +diff --git a/util/qemu-openpty.c b/util/qemu-openpty.c +index 2e8b43b..adcc732 100644 +--- a/util/qemu-openpty.c ++++ b/util/qemu-openpty.c +@@ -35,7 +35,9 @@ + #include "qemu/osdep.h" + #include "qemu-common.h" + +-#if defined(__GLIBC__) ++#if defined(__HAIKU__) ++# include ++#elif defined(__GLIBC__) + # include + #elif defined CONFIG_BSD + # include +-- +2.19.1 + + +From 47e776e4f6736ac5cc283747e810ecc6a16f45aa Mon Sep 17 00:00:00 2001 +From: Gerasim Troeglazov <3dEyes@gmail.com> +Date: Wed, 16 Jan 2019 22:01:29 +1000 +Subject: Haiku build fix + + +diff --git a/configure b/configure +index 0a3c6a7..2013a19 100755 +--- a/configure ++++ b/configure +@@ -865,8 +865,8 @@ SunOS) + ;; + Haiku) + haiku="yes" +- QEMU_CFLAGS="-DB_USE_POSITIVE_POSIX_ERRORS $QEMU_CFLAGS" +- LIBS="-lposix_error_mapper -lnetwork $LIBS" ++ QEMU_CFLAGS="-DB_USE_POSITIVE_POSIX_ERRORS -D_BSD_SOURCE $QEMU_CFLAGS" ++ LIBS="-lposix_error_mapper -lnetwork -lbsd $LIBS" + ;; + Linux) + audio_drv_list="oss" +diff --git a/include/qemu/bswap.h b/include/qemu/bswap.h +index a684c1a..09bdb7f 100644 +--- a/include/qemu/bswap.h ++++ b/include/qemu/bswap.h +@@ -8,6 +8,8 @@ + # include + #elif defined(__FreeBSD__) + # include ++#elif defined(__HAIKU__) ++# include + #elif defined(CONFIG_BYTESWAP_H) + # include + +-- +2.19.1 + + +From b264891c1f3d2e9d40e0fc8f082e304e7a3295bf Mon Sep 17 00:00:00 2001 +From: Gerasim Troeglazov <3dEyes@gmail.com> +Date: Wed, 16 Jan 2019 22:02:47 +1000 +Subject: Fix keymap for Haiku + + +diff --git a/ui/input-keymap-haiku-to-qcode.h b/ui/input-keymap-haiku-to-qcode.h +new file mode 100644 +index 0000000..c3b4fff +--- /dev/null ++++ b/ui/input-keymap-haiku-to-qcode.h +@@ -0,0 +1,105 @@ ++const guint16 qemu_input_map_haiku_to_qcode[] = { ++ [0x00] = Q_KEY_CODE_UNMAPPED, ++ [0x01] = Q_KEY_CODE_ESC, ++ [0x02] = Q_KEY_CODE_F1, ++ [0x03] = Q_KEY_CODE_F2, ++ [0x04] = Q_KEY_CODE_F3, ++ [0x05] = Q_KEY_CODE_F4, ++ [0x06] = Q_KEY_CODE_F5, ++ [0x07] = Q_KEY_CODE_F6, ++ [0x08] = Q_KEY_CODE_F7, ++ [0x09] = Q_KEY_CODE_F8, ++ [0x0a] = Q_KEY_CODE_F9, ++ [0x0b] = Q_KEY_CODE_F10, ++ [0x0c] = Q_KEY_CODE_F11, ++ [0x0d] = Q_KEY_CODE_F12, ++ [0x0e] = Q_KEY_CODE_SYSRQ, ++ [0x0f] = Q_KEY_CODE_SCROLL_LOCK, ++ [0x10] = Q_KEY_CODE_UNMAPPED, // ? ++ [0x11] = Q_KEY_CODE_GRAVE_ACCENT, ++ [0x12] = Q_KEY_CODE_1, ++ [0x13] = Q_KEY_CODE_2, ++ [0x14] = Q_KEY_CODE_3, ++ [0x15] = Q_KEY_CODE_4, ++ [0x16] = Q_KEY_CODE_5, ++ [0x17] = Q_KEY_CODE_6, ++ [0x18] = Q_KEY_CODE_7, ++ [0x19] = Q_KEY_CODE_8, ++ [0x1a] = Q_KEY_CODE_9, ++ [0x1b] = Q_KEY_CODE_0, ++ [0x1c] = Q_KEY_CODE_MINUS, ++ [0x1d] = Q_KEY_CODE_EQUAL, ++ [0x1e] = Q_KEY_CODE_BACKSPACE, ++ [0x1f] = Q_KEY_CODE_INSERT, ++ [0x20] = Q_KEY_CODE_HOME, ++ [0x21] = Q_KEY_CODE_PGUP, ++ [0x22] = Q_KEY_CODE_NUM_LOCK, ++ [0x23] = Q_KEY_CODE_KP_DIVIDE, ++ [0x24] = Q_KEY_CODE_KP_MULTIPLY, ++ [0x25] = Q_KEY_CODE_KP_SUBTRACT, ++ [0x26] = Q_KEY_CODE_TAB, ++ [0x27] = Q_KEY_CODE_Q, ++ [0x28] = Q_KEY_CODE_W, ++ [0x29] = Q_KEY_CODE_E, ++ [0x2a] = Q_KEY_CODE_R, ++ [0x2b] = Q_KEY_CODE_T, ++ [0x2c] = Q_KEY_CODE_Y, ++ [0x2d] = Q_KEY_CODE_U, ++ [0x2e] = Q_KEY_CODE_I, ++ [0x2f] = Q_KEY_CODE_O, ++ [0x30] = Q_KEY_CODE_P, ++ [0x31] = Q_KEY_CODE_BRACKET_LEFT, ++ [0x32] = Q_KEY_CODE_BRACKET_RIGHT, ++ [0x33] = Q_KEY_CODE_BACKSLASH, ++ [0x34] = Q_KEY_CODE_DELETE, ++ [0x35] = Q_KEY_CODE_END, ++ [0x36] = Q_KEY_CODE_PGDN, ++ [0x37] = Q_KEY_CODE_KP_7, ++ [0x38] = Q_KEY_CODE_KP_8, ++ [0x39] = Q_KEY_CODE_KP_9, ++ [0x3a] = Q_KEY_CODE_KP_ADD, ++ [0x3b] = Q_KEY_CODE_CAPS_LOCK, ++ [0x3c] = Q_KEY_CODE_A, ++ [0x3d] = Q_KEY_CODE_S, ++ [0x3e] = Q_KEY_CODE_D, ++ [0x3f] = Q_KEY_CODE_F, ++ [0x40] = Q_KEY_CODE_G, ++ [0x41] = Q_KEY_CODE_H, ++ [0x42] = Q_KEY_CODE_J, ++ [0x43] = Q_KEY_CODE_K, ++ [0x44] = Q_KEY_CODE_L, ++ [0x45] = Q_KEY_CODE_SEMICOLON, ++ [0x46] = Q_KEY_CODE_APOSTROPHE, ++ [0x47] = Q_KEY_CODE_RET, ++ [0x48] = Q_KEY_CODE_KP_4, ++ [0x49] = Q_KEY_CODE_KP_5, ++ [0x4a] = Q_KEY_CODE_KP_6, ++ [0x4b] = Q_KEY_CODE_SHIFT, ++ [0x4c] = Q_KEY_CODE_Z, ++ [0x4d] = Q_KEY_CODE_X, ++ [0x4e] = Q_KEY_CODE_C, ++ [0x4f] = Q_KEY_CODE_V, ++ [0x50] = Q_KEY_CODE_B, ++ [0x51] = Q_KEY_CODE_N, ++ [0x52] = Q_KEY_CODE_M, ++ [0x53] = Q_KEY_CODE_COMMA, ++ [0x54] = Q_KEY_CODE_DOT, ++ [0x55] = Q_KEY_CODE_SLASH, ++ [0x56] = Q_KEY_CODE_SHIFT_R, ++ [0x57] = Q_KEY_CODE_UP, ++ [0x58] = Q_KEY_CODE_KP_1, ++ [0x59] = Q_KEY_CODE_KP_2, ++ [0x5a] = Q_KEY_CODE_KP_3, ++ [0x5b] = Q_KEY_CODE_KP_ENTER, ++ [0x5c] = Q_KEY_CODE_CTRL, ++ [0x5d] = Q_KEY_CODE_ALT, ++ [0x5e] = Q_KEY_CODE_SPC, ++ [0x5f] = Q_KEY_CODE_ALT_R, ++ [0x60] = Q_KEY_CODE_CTRL_R, ++ [0x61] = Q_KEY_CODE_LEFT, ++ [0x62] = Q_KEY_CODE_DOWN, ++ [0x63] = Q_KEY_CODE_RIGHT, ++ [0x64] = Q_KEY_CODE_KP_0, ++ [0x65] = Q_KEY_CODE_KP_DECIMAL ++}; ++const guint qemu_input_map_haiku_to_qcode_len = sizeof(qemu_input_map_haiku_to_qcode)/sizeof(qemu_input_map_haiku_to_qcode[0]); +diff --git a/ui/sdl.c b/ui/sdl.c +index 190b16f..b2c0590 100644 +--- a/ui/sdl.c ++++ b/ui/sdl.c +@@ -35,9 +35,12 @@ + #include "ui/console.h" + #include "ui/input.h" + #include "sysemu/sysemu.h" +-#ifndef WIN32 ++#if !defined(WIN32) && !defined(__HAIKU__) + #include "x_keymap.h" + #endif ++#if defined(__HAIKU__) ++#include "input-keymap-haiku-to-qcode.h" ++#endif + #include "sdl_zoom.h" + + static DisplayChangeListener *dcl; +@@ -224,6 +227,9 @@ static const guint16 *sdl_get_keymap(size_t *maplen) + #if defined(WIN32) + *maplen = qemu_input_map_atset1_to_qcode_len; + return qemu_input_map_atset1_to_qcode; ++#elif defined(__HAIKU__) ++ *maplen = qemu_input_map_haiku_to_qcode_len; ++ return qemu_input_map_haiku_to_qcode; + #else + #if defined(SDL_VIDEO_DRIVER_X11) + SDL_SysWMinfo info; +diff --git a/ui/x_keymap.c b/ui/x_keymap.c +index 2bc0143..6e29686 100644 +--- a/ui/x_keymap.c ++++ b/ui/x_keymap.c +@@ -9,6 +9,7 @@ + * published by the Free Software Foundation. + */ + ++#ifndef __HAIKU__ + #include "qemu/osdep.h" + + #include "x_keymap.h" +@@ -112,3 +113,4 @@ const guint16 *qemu_xkeymap_mapping_table(Display *dpy, size_t *maplen) + return NULL; + } + } ++#endif +diff --git a/ui/x_keymap.h b/ui/x_keymap.h +index 0395e33..96f4812 100644 +--- a/ui/x_keymap.h ++++ b/ui/x_keymap.h +@@ -25,8 +25,11 @@ + #ifndef QEMU_X_KEYMAP_H + #define QEMU_X_KEYMAP_H + ++#ifndef __HAIKU__ ++ + #include + + const guint16 *qemu_xkeymap_mapping_table(Display *dpy, size_t *maplen); + + #endif ++#endif +diff --git a/util/qemu-thread-posix.c b/util/qemu-thread-posix.c +index 865e476..faa3d9a 100644 +--- a/util/qemu-thread-posix.c ++++ b/util/qemu-thread-posix.c +@@ -293,7 +293,11 @@ int qemu_sem_timedwait(QemuSemaphore *sem, int ms) + } + } + if (rc < 0) { ++#ifndef __HAIKU__ + error_exit(errno, __func__); ++#else ++ return -1; ++#endif + } + return 0; + #endif +-- +2.19.1 + + +From a4a7a33d9a708302d158f64767ce0c368c0490c7 Mon Sep 17 00:00:00 2001 +From: Gerasim Troeglazov <3dEyes@gmail.com> +Date: Wed, 16 Jan 2019 22:03:12 +1000 +Subject: Fix crash on qemu-img exit + + +diff --git a/util/notify.c b/util/notify.c +index 06de63a..9f85c2d 100644 +--- a/util/notify.c ++++ b/util/notify.c +@@ -37,6 +37,9 @@ void notifier_list_notify(NotifierList *list, void *data) + Notifier *notifier, *next; + + QLIST_FOREACH_SAFE(notifier, &list->notifiers, node, next) { ++#ifdef __HAIKU__ ++ if(notifier->notify == NULL)break; ++#endif + notifier->notify(notifier, data); + } + } +-- +2.19.1 + + +From c0e278138903513f4c747572421e371436dc980a Mon Sep 17 00:00:00 2001 +From: Gerasim Troeglazov <3dEyes@gmail.com> +Date: Wed, 16 Jan 2019 23:29:06 +1000 +Subject: Use system int defs + + +diff --git a/disas/nanomips.h b/disas/nanomips.h +index 84cc9a6..742a867 100644 +--- a/disas/nanomips.h ++++ b/disas/nanomips.h +@@ -24,10 +24,14 @@ + + #include + ++#ifndef __HAIKU__ + typedef unsigned short uint16; + typedef unsigned int uint32; + typedef long long int64; + typedef unsigned long long uint64; ++#else ++#include ++#endif + + namespace img + { +-- +2.19.1 + + +From 6be2d318e0899d9e58070e9819904f6040e705b1 Mon Sep 17 00:00:00 2001 +From: Gerasim Troeglazov <3dEyes@gmail.com> +Date: Wed, 16 Jan 2019 23:29:29 +1000 +Subject: Disable mlockall for Haiku + + +diff --git a/os-posix.c b/os-posix.c +index 98565ba..668a405 100644 +--- a/os-posix.c ++++ b/os-posix.c +@@ -361,11 +361,11 @@ bool is_daemonized(void) + int os_mlock(void) + { + int ret = 0; +- ++#ifndef __HAIKU__ + ret = mlockall(MCL_CURRENT | MCL_FUTURE); + if (ret < 0) { + error_report("mlockall: %s", strerror(errno)); + } +- ++#endif + return ret; + } +-- +2.19.1 + diff --git a/app-emulation/qemu/qemu-3.1.0.recipe b/app-emulation/qemu/qemu-3.1.0.recipe new file mode 100644 index 000000000..aed49b50a --- /dev/null +++ b/app-emulation/qemu/qemu-3.1.0.recipe @@ -0,0 +1,221 @@ +SUMMARY="A generic and open source machine emulator and virtualizer" +DESCRIPTION="QEMU is a generic and open source machine emulator and virtualizer. + +QEMU can run OSes and programs made for one machine (e.g. an ARM board) on a \ +different machine (e.g. your own PC). By using dynamic translation, it \ +achieves very good performance." +HOMEPAGE="https://www.qemu.org/" +COPYRIGHT="2003-2018 Fabrice Bellard" +LICENSE="GNU GPL v2" +REVISION="1" +SOURCE_URI="https://download.qemu.org/qemu-$portVersion.tar.xz" +CHECKSUM_SHA256="6a0508df079a0a33c2487ca936a56c12122f105b8a96a44374704bef6c69abfc" +SOURCE_DIR="qemu-$portVersion" +PATCHES="qemu-$portVersion.patchset" +ADDITIONAL_FILES="qemu.rdef.in" + +ARCHITECTURES="!x86_gcc2 x86 x86_64" +SECONDARY_ARCHITECTURES="x86" + +commandSuffix=$secondaryArchSuffix +commandBinDir=$binDir +if [ "$targetArchitecture" = x86_gcc2 ]; then + commandSuffix= + commandBinDir=$prefix/bin +fi + +platformList="x86 arm mips ppc sparc m68k" +archList_x86="i386 x86_64" +archList_arm="arm aarch64" +archList_mips="mips mipsel mips64 mips64el" +archList_ppc="ppc ppc64" +archList_sparc="sparc sparc64" +archList_m68k="m68k" + +PROVIDES=" + qemu$secondaryArchSuffix = $portVersion + cmd:qemu_edid$commandSuffix = $portVersion + cmd:qemu_img$commandSuffix = $portVersion + cmd:qemu_io$commandSuffix = $portVersion + " +REQUIRES=" + haiku$secondaryArchSuffix + cmd:iasl + lib:libbz2$secondaryArchSuffix + lib:libcapstone$secondaryArchSuffix + lib:libcurl$secondaryArchSuffix + lib:libfdt$secondaryArchSuffix + lib:libgcrypt$secondaryArchSuffix + lib:libglib_2.0$secondaryArchSuffix + lib:libgnutls$secondaryArchSuffix + lib:libgpg_error$secondaryArchSuffix + lib:libintl$secondaryArchSuffix + lib:libjpeg$secondaryArchSuffix + lib:liblzo2$secondaryArchSuffix + lib:libncursesw$secondaryArchSuffix + lib:libnettle$secondaryArchSuffix + lib:libpixman_1$secondaryArchSuffix + lib:libpng16$secondaryArchSuffix + lib:libSDL_1.2$secondaryArchSuffix + lib:libsnappy$secondaryArchSuffix + lib:libssh2$secondaryArchSuffix + lib:libssp$secondaryArchSuffix + lib:libtasn1$secondaryArchSuffix + lib:libusb_1.0$secondaryArchSuffix + lib:libxml2$secondaryArchSuffix + lib:libz$secondaryArchSuffix + " + +PROVIDES_x86=" + cmd:qemu$commandSuffix = $portVersion + cmd:qemu_system_i386$commandSuffix = $portVersion + cmd:qemu_system_x86_64$commandSuffix = $portVersion + " +REQUIRES_x86=" + $REQUIRES + qemu$secondaryArchSuffix + " +SUPPLEMENTS_x86=" + qemu$secondaryArchSuffix + " + +PROVIDES_arm=" + cmd:qemu_system_aarch64$commandSuffix = $portVersion + cmd:qemu_system_arm$commandSuffix = $portVersion + " +REQUIRES_arm=$REQUIRES_x86 + +PROVIDES_mips=" + cmd:qemu_system_mips$commandSuffix = $portVersion + cmd:qemu_system_mips64$commandSuffix = $portVersion + cmd:qemu_system_mips64el$commandSuffix = $portVersion + cmd:qemu_system_mipsel$commandSuffix = $portVersion + " +REQUIRES_mips=$REQUIRES_x86 + +PROVIDES_ppc=" + cmd:qemu_system_ppc$commandSuffix = $portVersion + cmd:qemu_system_ppc64$commandSuffix = $portVersion + " +REQUIRES_ppc=$REQUIRES_x86 + +PROVIDES_sparc=" + cmd:qemu_system_sparc$commandSuffix = $portVersion + cmd:qemu_system_sparc64$commandSuffix = $portVersion + " +REQUIRES_sparc=$REQUIRES_x86 + +PROVIDES_m68k=" + cmd:qemu_system_m68k$commandSuffix = $portVersion + " +REQUIRES_m68k=$REQUIRES_x86 + +BUILD_REQUIRES=" + devel:libbz2$secondaryArchSuffix + devel:libcapstone$secondaryArchSuffix + devel:libcurl$secondaryArchSuffix + devel:libfdt$secondaryArchSuffix + devel:libgcrypt$secondaryArchSuffix + devel:libglib_2.0$secondaryArchSuffix + devel:libgnutls$secondaryArchSuffix + devel:libgpg_error$secondaryArchSuffix + devel:libintl$secondaryArchSuffix + devel:libjpeg$secondaryArchSuffix + devel:liblzo2$secondaryArchSuffix + devel:libncursesw$secondaryArchSuffix + devel:libnettle$secondaryArchSuffix + devel:libpixman_1$secondaryArchSuffix + devel:libpng16$secondaryArchSuffix + devel:libSDL_1.2$secondaryArchSuffix + devel:libsnappy$secondaryArchSuffix + devel:libssh2$secondaryArchSuffix + devel:libtasn1$secondaryArchSuffix + devel:libusb_1.0$secondaryArchSuffix + devel:libxml2$secondaryArchSuffix + devel:libz$secondaryArchSuffix + " +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel + cmd:awk + cmd:cmp + cmd:gcc$secondaryArchSuffix + cmd:gcov$secondaryArchSuffix + cmd:gprof$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:make + cmd:find + cmd:iasl + cmd:pkg_config$secondaryArchSuffix + cmd:pod2man + cmd:python + " + +BUILD() +{ + export CFLAGS="-I`finddir B_SYSTEM_HEADERS_DIRECTORY`/capstone" + + for platformItem in $platformList; do + platformArchList=$(eval echo \$archList_$platformItem) + archList="$archList $platformArchList" + done + + for archItem in $archList; do + targetList="$archItem-softmmu,$targetList" + done + + runConfigure --omit-dirs "binDir sbinDir" \ + --omit-buildspec ./configure \ + --bindir="$commandBinDir" --sbindir="$commandBinDir" \ + --enable-capstone=system \ + --enable-gcrypt \ + --disable-tpm \ + --target-list="${targetList::-1}" + + make $jobArgs +} + +INSTALL() +{ + make install $jobArgs + + local MAJOR="`echo "$portVersion" | cut -d. -f1`" + local MIDDLE="`echo "$portVersion" | cut -d. -f2`" + local MINOR="`echo "$portVersion" | cut -d. -f3`" + local LONG_INFO="$SUMMARY" + + archList="" + + for platformItem in $platformList; do + platformArchList=$(eval echo \$archList_$platformItem) + archList="$archList $platformArchList" + done + + for archItem in $archList; do + echo $archItem + local APP_SIGNATURE="application/x-vnd.qemu-system-$archItem" + sed \ + -e "s|@APP_SIGNATURE@|$APP_SIGNATURE|" \ + -e "s|@MAJOR@|$MAJOR|" \ + -e "s|@MIDDLE@|$MIDDLE|" \ + -e "s|@MINOR@|$MINOR|" \ + -e "s|@LONG_INFO@|$LONG_INFO|" \ + $portDir/additional-files/qemu.rdef.in > qemu-system-$archItem.rdef + addResourcesToBinaries qemu-system-$archItem.rdef $commandBinDir/qemu-system-$archItem + done + + # provide convenience symlink to just "qemu" + if [ "$effectiveTargetArchitecture" = x86_64 ]; then + ln -s $commandBinDir/qemu-system-x86_64 $commandBinDir/qemu + else + ln -s $commandBinDir/qemu-system-i386 $commandBinDir/qemu + fi + + packageEntries x86 $commandBinDir/qemu + + for platformItem in $platformList; do + platformArchList=$(eval echo \$archList_$platformItem) + for archItem in $platformArchList; do + packageEntries $platformItem $commandBinDir/qemu-system-$archItem + done + done +}