From 76145d3f42eddf5947835a45a458078d653d8083 Mon Sep 17 00:00:00 2001 From: Gerasim Troeglazov <3dEyes@gmail.com> Date: Sun, 20 Nov 2022 17:52:05 +1000 Subject: [PATCH] webkit-gtk: add recipe --- .../additional-files/minibrowser.rdef.in | 176 ++++++ .../additional-files/webprocess.rdef.in | 14 + .../patches/webkit_gtk-2.38.2.patchset | 580 ++++++++++++++++++ net-libs/webkit-gtk/webkit_gtk-2.38.2.recipe | 284 +++++++++ 4 files changed, 1054 insertions(+) create mode 100644 net-libs/webkit-gtk/additional-files/minibrowser.rdef.in create mode 100644 net-libs/webkit-gtk/additional-files/webprocess.rdef.in create mode 100644 net-libs/webkit-gtk/patches/webkit_gtk-2.38.2.patchset create mode 100644 net-libs/webkit-gtk/webkit_gtk-2.38.2.recipe diff --git a/net-libs/webkit-gtk/additional-files/minibrowser.rdef.in b/net-libs/webkit-gtk/additional-files/minibrowser.rdef.in new file mode 100644 index 000000000..a9157ba1d --- /dev/null +++ b/net-libs/webkit-gtk/additional-files/minibrowser.rdef.in @@ -0,0 +1,176 @@ + +resource app_flags B_MULTIPLE_LAUNCH; + +resource app_version { + major = @MAJOR@, + middle = @MIDDLE@, + minor = @MINOR@, + variety = B_APPV_FINAL, + internal = 0, + short_info = "MiniBrowser", + long_info = "@LONG_INFO@" +}; + +resource app_signature "@APP_SIGNATURE@"; + +resource vector_icon { + $"6E636966470500020106033D0AFE000000000000BD0AFE48F10748A0783133FF" + $"FFC80066FFFF0034CC020106033D0AFE000000000000BD0AFE48F10748A07854" + $"09B4B6D8033784FF051D61020106043D950B0000000000003D950B494FBC479B" + $"EC00FFFFFF4C00FF008F00B200FF00800005010200060338D2F73CD163BF82B2" + $"3B84A94B88504910C900FFEFA5BDFFFCC0FFFFF890020106023E492400000000" + $"00003CAAAA4940004A80007CF1B706FFFFFCC0040192020016023A55A6BAC229" + $"3F0DA33E958646C2EB47A1D60001FF9E02000603B4A7AC38FCA2BBF77BB786A6" + $"493B6C47116300FFEED58DDBAB5FCFFFEED5020006023D4D3400000000000040" + $"00004A500000000000FFEABAFFFFF6E3020006032DD4EEB90C0A3BCF0C306515" + $"4AC94146247A00FFEAEEC6D17C8AFFDA9FAA02000602B8574CB952493E136CBC" + $"ED1D4A347E4842D200FFE3E8FFF8A1B1020006023C0820000000000000400000" + $"4A400000000000F0AB06FFFBB50D02000602BF7CE8BF170E3F69F4BFDA7AC831" + $"254AA4EB10FDB44BA6A52A04020006023B8E380000000000004000004A000000" + $"000000C5B03AFFE9DA7103E2C25502011402ACDCCB930203140200DC16930201" + $"1402757DFF280531050005FF0500050005000500050005000500050005000500" + $"05000500057B057B057B057B057B057B05000500050005000500050005000501" + $"0200160338D2F63CD162BF82B13B84A94B88504910C900EFBDFCFFF802011602" + $"3E49240000000000003CAAAA4940004A80007CF1FFFF040192020016023A55A6" + $"BAC2293F0DA33E958646C2EB47A1D60001FF9E02000603B4A7AC38FCA2BBF77B" + $"B786A6493B6C47116300FFEED58DDBAB5FCFFFEED5020006023D4D3400000000" + $"00004000004A500000000000FFEABAFFFFF6E302000603000000390C30BBCF3C" + $"0000004B600046000000FFEAEEC6D17C8AFFDA9FAA02000602AAB1FB3A081FBE" + $"8A26AF5E794C501446C6A100FFE3E8FFF8A1B1020006023C0820000000000000" + $"4000004A400000000000F0AB06FFFBB50D02000602B66E923A7741BFE239BBD4" + $"8D4C063F48C5F500A52A04FFFDB44B020016023B8E380000000000004000004A" + $"000000000000C5FFE905E20501050005AD05AD053102010402B3F41535DD680A" + $"1702011402777DE228050104016304007221000000000204BFC2B55BBBC5B55B" + $"C3BFB55BC6FABC93C6FAB896C6FAC090BFC2C3CBC3BFC3CBBBC5C3CBB88ABC93" + $"B88AC090B88AB896026EC5DCB8B6C713BAA0C4CAB706C110B579C307B5D5C0A2" + $"B565BFC2B55BC032B55BBDBCB55BBA69B7BABBC5B63AB8F9B94FB89DBD9CB84F" + $"BB7EB8C7BE9AB924BF77B8E0BEE7B9DEC11FBCE0C332BB38C279BEC5C405C2D8" + $"C31AC0FBC3FCC2C6C2C1C22FC2B7C27AC2BEC22FC2B7C227C2B7C227C2B7C227" + $"C2B7C241C2BDC241C2BDC206C2B0C199C2DBC1D0C2CBC159C2EEC0D4C2DDC115" + $"C2E5C051C2CEBF43C313BFB0C2B4BF3DC313BF36C313BF36C313BF36C313BF20" + $"C313BF20C313BF20C313BDEDC313BE23C313BDB9C2EDBD57C2DFBD87C2E3BD54" + $"C2DCBD3EC2C3BD3EC2C3BD31C2B4BD13C2A5BD26C2ABBD13C2A5BCA4C27EBCA4" + $"C27EBCA4C27EBC31C254BC31C254BC27C251BC12C24FBC1DC250BC10C24BBC0F" + $"C242BC11C246BC0FC242BBF5C219BBF5C219BBD3C1DEBB68C195BBAEC1A4BB71" + $"C16EBB58C129BB63C14EBB4BC101BB4BC0ADBB48C0D7BB4BC0ADBB4EC087BB4E" + $"C087BB52C054BB4DBFEEBB55C021BB9EBF93BBA9BEBFBBB0BF36BBA9BEBFBBA7" + $"BE93BBA7BE93BBA7BE53BBBCBE2FBBA8BE4BBBBCBE2FBBC7BE21BBC7BE21BC00" + $"BDD5BBE3BCFCBC5BBD3DBBE3BCFCBAB7BC58BAB7BC58BAB7BC58BA8BBC44BA90" + $"BC46BA8BBC44BA8BBC42BA8BBC42BA89BBEABA23BB79BA6ABBADBA23BB79BA12" + $"BB6BBA12BB6BBA12BB6BB9F8BB49B9F8BB49B9F8BB49B9AEBAF0B9AEBAF0B97E" + $"BAC3B928BAB1B950BAB5B924BAA9B91BBA9AB920BAA1B984BA6EB9DEB997B9B5" + $"B9F9B9F6B95DBA36B8F0BA0BB91FBA5EB8C4BA78B85EBA83B89EBACCB83DBB61" + $"B7E7BB18B813BB61B7E7BB6BB7E1BB6BB7E1BB6BB7E1BBFEB787BBFEB787BC65" + $"B74ABCB6B684BC94B6F6BCF5B68ABD58B665BD2DB67BBDA8B695BE6DB651BE29" + $"B697BE6FB650BE88B64FBE7CB64FBE62B6A0BEE1B72FBE88B70EBEE4B733BEE9" + $"B73EBEE5B73ABED8B744BEC6B74ABEC6B74ABEC6B74ABE75B7A5BE75B7A5BE63" + $"B7DDBE90B849BE74B817BE91B84CBE92B852BE92B852BE94B85CBE9DB87ABE97" + $"B86BBE94B884BE8CB88DBE8CB88DBE3AB8F0BD92B98FBDB7B906BD92B98FBD8D" + $"B9A1BD8DB9A1BD64B9D8BD7EBA55BD59BA19BD7BBA5CBD77BA63BD77BA63BD56" + $"BAA0BD4DBB2CBD39BAE6BD60BB70BDCCBBCEBD98BBA2BDFFBBFABE73BC3FBE33" + $"BC27BEBEBC5CBF5EBC42BF12BC56BF5EBC42BFAC37BFAC37BFD0BC1EC01CBC0F" + $"BFF5BC0BC046BC14C083BC4EC066BC35C04DBCD9C0F4BDDAC0B6BD63C0F4BDDA" + $"C107BDF9C102BDF2C0BABE84C127BF91C0B2BF1DC127BF91C133BF9DC133BF9D" + $"C131C00FC1C5C0F9C135C0D6C259C11CC348C059C2EEC0C9C348C059C36BC02F" + $"C36BC02FC36BC02FC388C019C388C019C3A8C003C3DBBFC5C3C9BFE8C3EEBFA0" + $"C409BF52C3F0BF73C409BF52C409BF53C409BF53C40DBF9AC495BFC1C450BFCE" + $"C4EBBFB3C542BF10C51FBF56C542BF10C551BEF2C551BEF2C551BEF2C555BEEB" + $"C555BEEBC57FBEA3C568BDFCC59EBE47C53ABDBBC4A3BDDFC4E1BDAAC4A3BDCA" + $"C4A3BDB5C4A3BDB5C4A3BDB5C4A5BD31C4A5BD31C4A8BD1EC4E8BCDFC4D2BCF5" + $"C4E8BCDFC4FEBCC9C4FEBCC9C4FEBCC9C516BCB3C516BCB3C545BC8BC582BC20" + $"C571BC5EC58CBC05C588BBBCC586BBD9C588BBBCC587BBA8C587BBA8C587BBA8" + $"C588BB9DC588BB9DC58DBB614EBAFAC584BB24C58ABADAC5C2BA5DC5B0BAA2C5" + $"C4BA62C5CBBA70C5CBBA70C5D9BA8EC60FBAD4C5EDBAB3C60ABB1FC648BBAAC6" + $"27BB67C669BBEBC66FBC7BC670BC33C66FBC7BC672BCC4C672BCC4C674BCEAC6" + $"6EBD37C678BD11C664BD5AC649BD9CC652BD79C633BDECC62CBE92C62DBE3FC6" + $"21BED5C67FBF2CC648BF16C750BD0F0006BC12B6E4BC12B6E4BC32B6B0BC55B6" + $"38BC47B674BB81B6ABBA2BB802BAC4B747BA88B7E3BB30B77EBADDB7B0BB59B7" + $"65BBAAB733BB82B74DBBCBB71DBC12B6E4BBFCB707BC12B6E4001DBACDBFD1BA" + $"CDBFD1BAEBBFAABB29BF5CBB13BF89BB43BF24BB34BE93BB34BED0BB34BE4DBB" + $"60BDEABB34BE25BB80BDBEBBABBD60BBA1BD98BB48BD2ABA81BCBEBAE5BCF3BA" + $"67BCB1BA20BC83BA2DBCA0BA0FBC5BBA0DBC02BA1FBC28B9FEBBE5B9BABBB6B9" + $"D0BBD0B99BBB91B95FBB44B983BB66B93DBB24B8F0BB2DB91CBB16B8C0BB48B8" + $"BEBADFB8C3BAFFB8B1BB14B89FBB7EB8A7BB49B8C9BB7EB8C5BBB2B8C3BB8AB8" + $"C6BBDBB8C9BC2EB8C7BC05B8D0BC40B8BABC49B8CBBC49B8B4BC4BB8AABC4EB8" + $"AFBC4DB8A0BC57B893BC4BB898BC56B882BC4AB88FBD10B88EBD00B893BD49B8" + $"E1BDE7B88DBE03B90DBE04B923BE75B906BE4BB946BEA8B985BF00B973BEC1B9" + $"97BF3EB9A3BFC1B998BF81B9B0C011BA17C05FB9DBC02EBA25C0B3BA75C127BA" + $"3DC0E7BA8FC144BAC0C17FBAA9C160BAD8C19FBAFCC17CBAE4C19DBADDC13ABA" + $"D7C0A6BAD3C0EFBADBC061BACDBFD1BAEAC013BACDBFD10009BD5EB5D7BD5EB5" + $"D7BD81B5EEBDB1B60EBD84B605BDD0B613BE19B601BE01B61ABE55B5C3BEF6B5" + $"C4BEB0B5EFBF2DB5A2BFA3B55EBF5BB55EBFCEB55DC00CB58CBFE9B578C03CB5" + $"A7C090B566C064B575BF3AB541BCA7B60EBDDDB57ABCECB623BD5EB5D7BD29B6" + $"01BD5EB5D70005BF35B6EABF35B6EABF55B6ECBF9AB6F5BF7BB702BFCEB6E0BF" + $"87B67DBF9CB693BF78B66DBF3CB664BF2FB623BF45B690BF35B6EABF6BB6CCBF" + $"35B6EA0004BA07B87FBA07B87FBA0CB868B9EFB850B9FEB85FB982B8E4B8F0BA" + $"35B92CB988B97E31BA07B87FB974B8F0BA07B87F0066C6F7BC24C6F7BC24C6DC" + $"BB0AC6002FC68BB9F2C5B9B87CC4FFB79CC563B805C4CEB768C463B709C49AB7" + $"37C452B6FBC428B6EFC440B6E2C412B6FAC407B6C1C401B6D1C316B60FC0D0B5" + $"6FC1F9B59AC0FBB58BC15FB59CC131B589C170B5A2C179B5C9C19FB5BDC12DB5" + $"E2C08AB5C9C0D7B5C4C05AB5CDC03FB60EC043B5DDC03DB629C040B676C036B6" + $"5DC04BB694C0B6B65FC0A8B66FC0CDB643C0F1B61AC0B1B608C108B64BC0D0B6" + $"B1C13AB6D6C0B5B6A7C066B689C083B67CC064B68AC05DB6AFC05FB6ABC053B6" + $"C0C031B6D0C044B6CBBFE6B6E5BF94B741BFB0B6EFBF87B769BF5DB791BF88B7" + $"81BF3BB79DBEF7B7B2BF17B7A4BECCB7C7BEFAB81CBEEAB7FFBF06B830BF19B8" + $"6CBF03B860BF59B891BFBEB7E0BFA3B802BFE1B7B3C038B7ADC008B7BDC04FB7" + $"A6C084B777C06CB76EC0D3B795C0F8B83EC0EBB7F4C110B83FC135B810C100B8" + $"02C10DB7E5C0ECB77043B7ABC125B795C15FB7FDC14DB7BDC170B83DC1C2B820" + $"C18EB860C1CFB813C1FDB7D5C1E2B7BDC214B7EAC1F1B838C215B82FC206B84B" + $"C23AB83DC222B843C25AB834C28BB842C26CB836C2AFB850C2FAB857C2D5B854" + $"C320B859C347B898C335B87BC377B8E7C24AB8C5C259B8C6C228B8C3C1E2B8D0" + $"C202B8C2C1C9B8DAC199B8F0C1B62FC179B8E5C13FB8B6C15BB8C8C118B89CC0" + $"C5B872C0EFB885C07FB853BFE3B84FC02FB83FBFBFB856BF7FB87CBF9CB866BF" + $"5CB897BF11B8A4BF35B87FBEDCB8DCBE6EB942BEB6B91FBE51B950BE19B976BE" + $"2EB95CBE04B990BDF6B9D1BE04B9B4BDE9B9EEBDE2BA1DBDCAB9FCBDF8BA3CBD" + $"EFBA76BDFEBA53BDD9BAA9BDC9BB27BD9FBAEFBDF235BE71BBBCBE3ABB94BEAF" + $"BBE9BF41BBD2BEFBBBE5BF83BBC1C009BB9CBFC5BBA1C05FBB96C0DDBC03C0A1" + $"BBCDC104BC26C0F5BC67C114BC34C0D3BC9FC103BD00C0E8BCC8C11FBD37C159" + $"BDA3C13CBD6DC166BDBAC182BDE8C177BDD0C18EBE04C16DBE2DC17BBE15C152" + $"BE5EC13FBECFC13FBE97C13FBF0EC185BF4CC15DBF24C1AABF71C1A4BFE3C1A8" + $"BFB3C1A0C025C1DBC087C1B3C053C216C08AC289C06CC253C086C2CBC04DC319" + $"BFDEC2E8C00FC347BFB0C386BF66C378BFABC396BF13C3FEBEBFC3C2BEF2C435" + $"BE90C430BE0CC42EBE4DC432BDC0C433BD22C429BD6DC43CBCDEC4ABBC78C47E" + $"BCA7C4CDBC56C512BC03C505BC34C519BBE7C513BBA8C51336C513BB93C51135" + $"C51ABB71C4F8BB29C47EBB2CC48ABB5DC476BB0EC48BBB01C477BB14C4A1BAED" + $"C478BACDC48BBAD8C442BAADC3F1BA66C418BA9AC3CCBA36C391B9CBC3AEBA00" + $"C389B9BEC36CB93BC342B92EC39AB94AC3E2B9A3C3C4B981C419B9DFC46DBA6A" + $"C44ABA20C46EBA73C496BA8AC48FBA85C4AFBA9CC4EABAA8C4CABAABC533BAA2" + $"C55ABA20C555BA61C562B9C7C4E8B9AFC51DB9DAC4CAB997C49EB958C4B6B975" + $"C48FB946C474B90EC466B92AC493B8F9C4BDB91DC49FB90BC4E0B932C52CB951" + $"C505B944C555B95EC5B4B96CC592B952C5C9B97CC5E7B9B8C5D9B9A2C5FEB9DC" + $"C627BA26C614BA00C645BA61C694BA9FC64DBA89C667BAE8C6B6BB83C693BB3F" + $"C6DFBBD4C6E3BC7CC6E4BC23C6E2BCCEC6D0BD79C6F5BD2CC6A7BDCCC69FBE9A" + $"C69FBE3EC6A1BE95C6A5BE88C6A3BE8DC6A2BE8FC6A1BEC0C696BEBEC6B2BEC4" + $"C6D6BE02C6D2BE15C6F6BD65C6F7BC24C700BCC4C6F7BC240008C301B7D8C301" + $"B7D8C2E6B7DCC2D4B7A4C2E8B7AEC2B1B792C269B7B8C288B7A7C204B7EFC236" + $"B743C221B77BC239B73AC285B744C27AB746C2A7B740C2F3B74FC2D8B731C30C" + $"B76BC33CB7A1C31FB787C360B7C2C301B7D8C31CB7D4C301B7D80004BB53C203" + $"BB53C203BB45C20DBB26C221BB38C21DBB55C249BBBAC291BB87C26EBB92C265" + $"BB53C203BB84C227BB53C2030005C4F4BE2EC4F4BE2EC4D3BE57C48CBEA4C4A6" + $"BE76C46EBEDAC47DBF53C47DBF18C4B6BF38C4EDBEB9C4D0BEECC502BE93C4F4" + $"BE2EC531BE48C4F4BE2E0009C213C327C213C327C17FC390BFF7C345C09DC332" + $"BFD0C349BF8EC36ABFACC350BF67C38CBF20C386BF56C386BEAFC386BDCDC386" + $"BE3EC386BEC1C3CBC0C0C3BABFC4C3DDC137C3AAC221C367C1AFC38EC22AC364" + $"C262C32BC280C337C249C322C213C327C22AC331C213C3270606B20831245356" + $"295625562D532E3126290A063124B8BAB5B2B8BAB779312EB677B6ECB67CB63C" + $"0A043324B969B5BAC408B5D6C507B4A40804BA28B4D33027302BBA28B8580606" + $"2E0B532450295025502D532E4F4C29C499B82DC47BB5704F240003C4EAB4D3C4" + $"EAB4D3C492B5174B294BB59E4BB78DC4EAB858C492B814C4EAB8580604EE5324" + $"56295625562D532E5029502D50250A04B969B5BAB969B771C3EFB77BC3D5270A" + $"04B969B771332EC4E1B8BAC3A2B7550A06C4E04F41C507374B394A45C33CC6D1" + $"C36F0A04C6F0C5C24E4F514BC9BBC4280606BA0EC95CB847C745B86DC5ADB6B5" + $"C5ADB84DC5ADB51DC6B9B4D7C929B4A4CA0FB616C9A5B430CA4FB73B0A04B969" + $"B5BAB969B7704A2B4A270606BA0EC13EBADEC415B83AC6D2B7FBC588B6F0C778" + $"B88051BA1FC42E3AC448BBD0C507BD1CC31EB9CC0606BA0EBB84C059C1A433C5" + $"142FC389B6EFC619BA53C408BCA9BEADC39CBDCEC118BF5CC270BC50BFCC0606" + $"BA0EBB44C01945B9B9C47BB99FC323B861C5B8BAC5C43BBCE93FC3EFBDCEC118" + $"BF5CC270BC50BFCC0608FEFAB77BC71FB87AC4E1B869C5C1B887C43BB8A0492E" + $"C3E2B8ABC2E1BA8BC22AB980C22ABAFEC22ABC56C329BCC9C49BBBBDC5D9BC84" + $"C567BB4FC619B9D9C6E5BACBC6BFB7F6C7310A06C2D0BF46C33CBFB3C2C944C1" + $"B7C29DC059C362BFD3C30F02044030C34530BC3A30304030BC3A30C3454050BC" + $"3A50C34550504050C34550BC3A050A460120024150000000000000003F0000C7" + $"E0004960000A0001021240BF86BEAC893EAC8940BF86C9898548956201178422" + $"040A0101020240CDCABEBA6A3EBA6A40CDCAC9AB7C4888F20A0201030240CDCA" + $"BEBA6A3EBA6A40CDCAC9AB7C4888F20A030A050607090A0C0D040B080240CDCA" + $"BEBA6A3EBA6A40CDCAC9AB7C4888F2" +}; diff --git a/net-libs/webkit-gtk/additional-files/webprocess.rdef.in b/net-libs/webkit-gtk/additional-files/webprocess.rdef.in new file mode 100644 index 000000000..b35a651f7 --- /dev/null +++ b/net-libs/webkit-gtk/additional-files/webprocess.rdef.in @@ -0,0 +1,14 @@ + +resource app_flags B_MULTIPLE_LAUNCH | B_BACKGROUND_APP; + +resource app_version { + major = @MAJOR@, + middle = @MIDDLE@, + minor = @MINOR@, + variety = B_APPV_FINAL, + internal = 0, + short_info = "WebProcess", + long_info = "@LONG_INFO@" +}; + +resource app_signature "application/x-vnd.gtk-webkit-webprocess"; diff --git a/net-libs/webkit-gtk/patches/webkit_gtk-2.38.2.patchset b/net-libs/webkit-gtk/patches/webkit_gtk-2.38.2.patchset new file mode 100644 index 000000000..c0b4cc90c --- /dev/null +++ b/net-libs/webkit-gtk/patches/webkit_gtk-2.38.2.patchset @@ -0,0 +1,580 @@ +From d7e354fde9acfd0a5a4862941c80d8912c25e54e Mon Sep 17 00:00:00 2001 +From: Gerasim Troeglazov <3dEyes@gmail.com> +Date: Mon, 7 Nov 2022 16:36:35 +1000 +Subject: Fix for Haiku + + +diff --git a/Source/JavaScriptCore/b3/B3WasmBoundsCheckValue.cpp b/Source/JavaScriptCore/b3/B3WasmBoundsCheckValue.cpp +index 597d086..7cf69d4 100644 +--- a/Source/JavaScriptCore/b3/B3WasmBoundsCheckValue.cpp ++++ b/Source/JavaScriptCore/b3/B3WasmBoundsCheckValue.cpp +@@ -50,7 +50,7 @@ WasmBoundsCheckValue::WasmBoundsCheckValue(Origin origin, Value* ptr, unsigned o + , m_offset(offset) + , m_boundsType(Type::Maximum) + { +-#if ENABLE(WEBASSEMBLY) ++#if ENABLE(WEBASSEMBLY_SIGNALING_MEMORY) + size_t redzoneLimit = static_cast(std::numeric_limits::max()) + Wasm::Memory::fastMappedRedzoneBytes(); + ASSERT_UNUSED(redzoneLimit, maximum <= redzoneLimit); + #endif +diff --git a/Source/JavaScriptCore/heap/BlockDirectory.cpp b/Source/JavaScriptCore/heap/BlockDirectory.cpp +index e2a3540..6c72cc5 100644 +--- a/Source/JavaScriptCore/heap/BlockDirectory.cpp ++++ b/Source/JavaScriptCore/heap/BlockDirectory.cpp +@@ -60,7 +60,7 @@ void BlockDirectory::setSubspace(Subspace* subspace) + void BlockDirectory::updatePercentageOfPagedOutPages(SimpleStats& stats) + { + // FIXME: We should figure out a solution for Windows. +-#if OS(UNIX) ++#if OS(UNIX) && !OS(HAIKU) + size_t pageSize = WTF::pageSize(); + ASSERT(!(MarkedBlock::blockSize % pageSize)); + auto numberOfPagesInMarkedBlock = MarkedBlock::blockSize / pageSize; +diff --git a/Source/JavaScriptCore/inspector/remote/Socket.cmake b/Source/JavaScriptCore/inspector/remote/Socket.cmake +index e52143c..4ac504c 100644 +--- a/Source/JavaScriptCore/inspector/remote/Socket.cmake ++++ b/Source/JavaScriptCore/inspector/remote/Socket.cmake +@@ -33,3 +33,9 @@ else () + wsock32 + ) + endif () ++ ++if (HAIKU) ++ list(APPEND JavaScriptCore_LIBRARIES ++ network ++ ) ++endif () +diff --git a/Source/JavaScriptCore/inspector/scripts/codegen/preprocess.pl b/Source/JavaScriptCore/inspector/scripts/codegen/preprocess.pl +index 0b08d2a..d3c8a9b 100644 +--- a/Source/JavaScriptCore/inspector/scripts/codegen/preprocess.pl ++++ b/Source/JavaScriptCore/inspector/scripts/codegen/preprocess.pl +@@ -1,4 +1,4 @@ +-#! /usr/bin/env perl ++#! /bin/env perl + # + # This file is part of the WebKit project + # +@@ -43,7 +43,7 @@ if (!$preprocessor) { + $preprocessor = $ENV{CC} || "cl"; + push(@args, qw(/nologo /EP /TP /C)); + } else { +- $preprocessor = $ENV{CC} || (-x "/usr/bin/clang" ? "/usr/bin/clang" : "/usr/bin/gcc"); ++ $preprocessor = $ENV{CC} || (-x "/bin/clang" ? "/bin/clang" : "/bin/gcc"); + push(@args, qw(-E -P -x c++ -C)); + } + } +@@ -64,7 +64,7 @@ my $pid = 0; + if ($Config{osname} eq "cygwin") { + $ENV{PATH} = "$ENV{PATH}:/cygdrive/c/cygwin/bin"; + my @preprocessorAndFlags; +- if ($preprocessor eq "/usr/bin/gcc") { ++ if ($preprocessor eq "/bin/gcc") { + @preprocessorAndFlags = split(' ', $preprocessor); + } else { + $preprocessor =~ /"(.*)"/; +diff --git a/Source/ThirdParty/ANGLE/src/common/system_utils_posix.cpp b/Source/ThirdParty/ANGLE/src/common/system_utils_posix.cpp +index cc8c618..8b9d638 100644 +--- a/Source/ThirdParty/ANGLE/src/common/system_utils_posix.cpp ++++ b/Source/ThirdParty/ANGLE/src/common/system_utils_posix.cpp +@@ -199,10 +199,12 @@ void *OpenSystemLibraryWithExtensionAndGetError(const char *libraryName, + } + + int extraFlags = 0; ++#ifndef __HAIKU__ + if (searchType == SearchType::AlreadyLoaded) + { + extraFlags = RTLD_NOLOAD; + } ++#endif + + std::string fullPath = directory + libraryName; + #if ANGLE_PLATFORM_IOS +diff --git a/Source/WTF/wtf/FileSystem.cpp b/Source/WTF/wtf/FileSystem.cpp +index 90dbf5a..a1eaf5b 100644 +--- a/Source/WTF/wtf/FileSystem.cpp ++++ b/Source/WTF/wtf/FileSystem.cpp +@@ -40,6 +40,10 @@ + #include + #endif + ++#if OS(HAIKU) ++#define MAP_FILE 0 ++#endif ++ + #if USE(GLIB) + #include + #include +@@ -665,9 +669,13 @@ bool createSymbolicLink(const String& targetPath, const String& symbolicLinkPath + + bool hardLink(const String& targetPath, const String& linkPath) + { ++#if OS(HAIKU) ++ return hardLinkOrCopyFile(targetPath, linkPath); ++#else + std::error_code ec; + std::filesystem::create_hard_link(toStdFileSystemPath(targetPath), toStdFileSystemPath(linkPath), ec); + return !ec; ++#endif + } + + bool hardLinkOrCopyFile(const String& targetPath, const String& linkPath) +diff --git a/Source/WTF/wtf/InlineASM.h b/Source/WTF/wtf/InlineASM.h +index 8379a69..aba12e0 100644 +--- a/Source/WTF/wtf/InlineASM.h ++++ b/Source/WTF/wtf/InlineASM.h +@@ -69,6 +69,7 @@ + || OS(FREEBSD) \ + || OS(FUCHSIA) \ + || OS(OPENBSD) \ ++ || OS(HAIKU) \ + || OS(HPUX) \ + || OS(NETBSD) + // ELF platform +@@ -87,6 +88,7 @@ + || OS(FUCHSIA) \ + || OS(OPENBSD) \ + || OS(HURD) \ ++ || OS(HAIKU) \ + || OS(NETBSD) \ + || COMPILER(MINGW) + // GNU as-compatible syntax. +diff --git a/Source/WTF/wtf/PlatformHave.h b/Source/WTF/wtf/PlatformHave.h +index 7893367..def1eb3 100644 +--- a/Source/WTF/wtf/PlatformHave.h ++++ b/Source/WTF/wtf/PlatformHave.h +@@ -389,7 +389,7 @@ + #define HAVE_STACK_BOUNDS_FOR_NEW_THREAD 1 + #endif + +-#if !OS(WINDOWS) && !PLATFORM(PLAYSTATION) ++#if !OS(WINDOWS) && !PLATFORM(PLAYSTATION) && !OS(HAIKU) + #define HAVE_MEMMEM 1 + #endif + +diff --git a/Source/WTF/wtf/PlatformOS.h b/Source/WTF/wtf/PlatformOS.h +index e61715f..06bd6c5 100644 +--- a/Source/WTF/wtf/PlatformOS.h ++++ b/Source/WTF/wtf/PlatformOS.h +@@ -57,6 +57,11 @@ + #define WTF_OS_DARWIN 1 + #endif + ++/* OS(HAIKU) - Haiku */ ++#if defined(__HAIKU__) ++#define WTF_OS_HAIKU 1 ++#endif ++ + /* OS(IOS_FAMILY) - iOS family, including iOS, iPadOS, macCatalyst, tvOS, watchOS */ + #if OS(DARWIN) && TARGET_OS_IPHONE + #define WTF_OS_IOS_FAMILY 1 +@@ -126,6 +131,7 @@ + || OS(FUCHSIA) \ + || OS(HURD) \ + || OS(LINUX) \ ++ || OS(HAIKU) \ + || OS(NETBSD) \ + || OS(OPENBSD) \ + || defined(unix) \ +diff --git a/Source/WTF/wtf/PlatformRegisters.h b/Source/WTF/wtf/PlatformRegisters.h +index b981c13..76cfd55 100644 +--- a/Source/WTF/wtf/PlatformRegisters.h ++++ b/Source/WTF/wtf/PlatformRegisters.h +@@ -34,6 +34,8 @@ + #include + #elif OS(WINDOWS) + #include ++#elif OS(HAIKU) ++#include + #elif OS(OPENBSD) + typedef ucontext_t mcontext_t; + #else +diff --git a/Source/WTF/wtf/StackBounds.cpp b/Source/WTF/wtf/StackBounds.cpp +index e9d9d58..bc4d1c7 100644 +--- a/Source/WTF/wtf/StackBounds.cpp ++++ b/Source/WTF/wtf/StackBounds.cpp +@@ -42,6 +42,12 @@ + #include + #endif + ++#if OS(HAIKU) ++extern "C" { ++ int pthread_attr_get_np(pthread_t thread, pthread_attr_t *_attr); ++} ++#endif ++ + #endif + + namespace WTF { +@@ -95,7 +101,7 @@ StackBounds StackBounds::newThreadStackBounds(PlatformThreadHandle thread) + + pthread_attr_t sattr; + pthread_attr_init(&sattr); +-#if HAVE(PTHREAD_NP_H) || OS(NETBSD) ++#if HAVE(PTHREAD_NP_H) || OS(NETBSD) || OS(HAIKU) + // e.g. on FreeBSD 5.4, neundorf@kde.org + pthread_attr_get_np(thread, &sattr); + #else +diff --git a/Source/WebCore/bindings/scripts/preprocessor.pm b/Source/WebCore/bindings/scripts/preprocessor.pm +index 31a991f..c512764 100644 +--- a/Source/WebCore/bindings/scripts/preprocessor.pm ++++ b/Source/WebCore/bindings/scripts/preprocessor.pm +@@ -50,7 +50,7 @@ sub applyPreprocessor + $preprocessor = $ENV{CC} || "cl"; + push(@args, qw(/EP)); + } else { +- $preprocessor = $ENV{CC} || (-x "/usr/bin/clang" ? "/usr/bin/clang" : "/usr/bin/gcc"); ++ $preprocessor = $ENV{CC} || (-x "/bin/clang" ? "/bin/clang" : "/bin/gcc"); + push(@args, qw(-E -P -x c++)); + if ($keepComments) { + push(@args, qw(-C)); +diff --git a/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp b/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp +index 54d6b1c..761ebca 100644 +--- a/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp ++++ b/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp +@@ -2219,6 +2219,8 @@ void MediaPlayerPrivateGStreamer::configureDownloadBuffer(GstElement* element) + GUniquePtr defaultValue(g_build_filename(G_DIR_SEPARATOR_S, "var", "tmp", nullptr)); + mediaDiskCachePath.swap(defaultValue); + } ++#elif defined(__HAIKU__) ++ GUniquePtr mediaDiskCachePath(g_build_filename(G_DIR_SEPARATOR_S, "system", "cache", "tmp", nullptr)); + #else + GUniquePtr mediaDiskCachePath(g_build_filename(G_DIR_SEPARATOR_S, "var", "tmp", nullptr)); + #endif +diff --git a/Source/WebKit/CMakeLists.txt b/Source/WebKit/CMakeLists.txt +index ebd7542..f05c803 100644 +--- a/Source/WebKit/CMakeLists.txt ++++ b/Source/WebKit/CMakeLists.txt +@@ -404,6 +404,10 @@ if (UNIX) + endif () + endif () + ++if (HAIKU) ++ list(APPEND WebKit_PRIVATE_LIBRARIES network) ++endif () ++ + macro(ADD_WEBKIT_PREFIX_HEADER _target) + if (WebKit_USE_PREFIX_HEADER) + get_target_property(OLD_COMPILE_FLAGS ${_target} COMPILE_FLAGS) +diff --git a/Source/WebKit/Platform/IPC/unix/ConnectionUnix.cpp b/Source/WebKit/Platform/IPC/unix/ConnectionUnix.cpp +index 42185f2..7188a6b 100644 +--- a/Source/WebKit/Platform/IPC/unix/ConnectionUnix.cpp ++++ b/Source/WebKit/Platform/IPC/unix/ConnectionUnix.cpp +@@ -270,7 +270,7 @@ bool Connection::processMessage() + return true; + } + +-static ssize_t readBytesFromSocket(int socketDescriptor, Vector& buffer, Vector& fileDescriptors) ++static ssize_t readBytesFromSocket(int socketDescriptor, Vector& buffer, Vector& fileDescriptors, size_t size) + { + struct msghdr message; + memset(&message, 0, sizeof(message)); +@@ -286,7 +286,7 @@ static ssize_t readBytesFromSocket(int socketDescriptor, Vector& buffer + size_t previousBufferSize = buffer.size(); + buffer.grow(buffer.capacity()); + iov[0].iov_base = buffer.data() + previousBufferSize; +- iov[0].iov_len = buffer.size() - previousBufferSize; ++ iov[0].iov_len = size; + + message.msg_iov = iov; + message.msg_iovlen = 1; +@@ -337,6 +337,20 @@ static ssize_t readBytesFromSocket(int socketDescriptor, Vector& buffer + return -1; + } + ++static ssize_t readBytesFromSocket(int socketDescriptor, Vector& buffer, Vector& fileDescriptors) ++{ ++ ssize_t bytesRead = readBytesFromSocket(socketDescriptor, buffer, fileDescriptors, sizeof(MessageInfo)); ++ if (bytesRead <= 0) return bytesRead; ++ uint8_t* messageData = buffer.data(); ++ MessageInfo messageInfo; ++ memcpy(static_cast(&messageInfo), messageData, sizeof(messageInfo)); ++ messageData += sizeof(messageInfo); ++ size_t messageLength = messageInfo.attachmentCount() * sizeof(AttachmentInfo) + (messageInfo.isBodyOutOfLine() ? 0 : messageInfo.bodySize()); ++ if (messageLength == 0) return bytesRead; ++ bytesRead = readBytesFromSocket(socketDescriptor, buffer, fileDescriptors, messageLength); ++ return bytesRead; ++} ++ + void Connection::readyReadHandler() + { + while (true) { +@@ -609,7 +623,11 @@ bool Connection::sendOutputMessage(UnixMessage& outputMessage) + Connection::SocketPair Connection::createPlatformConnection(unsigned options) + { + int sockets[2]; ++#ifdef __HAIKU__ ++ RELEASE_ASSERT(socketpair(AF_LOCAL, SOCK_STREAM, 0, sockets) != -1); ++#else + RELEASE_ASSERT(socketpair(AF_UNIX, SOCKET_TYPE, 0, sockets) != -1); ++#endif + + if (options & SetCloexecOnServer) { + // Don't expose the child socket to the parent process. +diff --git a/Source/WebKit/UIProcess/API/glib/WebKitProtocolHandler.cpp b/Source/WebKit/UIProcess/API/glib/WebKitProtocolHandler.cpp +index f4318de..71ff0d8 100644 +--- a/Source/WebKit/UIProcess/API/glib/WebKitProtocolHandler.cpp ++++ b/Source/WebKit/UIProcess/API/glib/WebKitProtocolHandler.cpp +@@ -118,6 +118,8 @@ static const char* hardwareAccelerationPolicy(WebKitURISchemeRequest* request) + { + #if PLATFORM(WPE) + return "always"; ++#elif defined(__HAIKU__) ++ return "never"; + #elif PLATFORM(GTK) + auto* webView = webkit_uri_scheme_request_get_web_view(request); + ASSERT(webView); +@@ -147,6 +149,8 @@ static const char* openGLAPI() + if (epoxy_is_desktop_gl()) + return "OpenGL (libepoxy)"; + return "OpenGL ES 2 (libepoxy)"; ++#elif defined(__HAIKU__) ++ return "OpenGL"; + #else + #if USE(GLX) + if (PlatformDisplay::sharedDisplay().type() == PlatformDisplay::Type::X11) +diff --git a/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp b/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp +index 6bc7442..16f4326 100644 +--- a/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp ++++ b/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp +@@ -487,7 +487,7 @@ void DrawingAreaCoordinatedGraphics::didUpdate() + displayTimerFired(); + } + +-#if PLATFORM(GTK) ++#if PLATFORM(GTK) && !OS(HAIKU) + void DrawingAreaCoordinatedGraphics::adjustTransientZoom(double scale, FloatPoint origin) + { + if (!m_transientZoom) { +@@ -620,7 +620,7 @@ void DrawingAreaCoordinatedGraphics::resumePainting() + + void DrawingAreaCoordinatedGraphics::enterAcceleratedCompositingMode(GraphicsLayer* graphicsLayer) + { +-#if PLATFORM(GTK) ++#if PLATFORM(GTK) && !OS(HAIKU) + if (!m_alwaysUseCompositing) { + m_webPage.corePage()->settings().setForceCompositingMode(true); + m_alwaysUseCompositing = true; +diff --git a/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.h b/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.h +index dbef365..bf5f205 100644 +--- a/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.h ++++ b/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.h +@@ -85,7 +85,7 @@ private: + void targetRefreshRateDidChange(unsigned rate) override; + void didUpdate() override; + +-#if PLATFORM(GTK) ++#if PLATFORM(GTK) && !OS(HAIKU) + void adjustTransientZoom(double scale, WebCore::FloatPoint origin) override; + void commitTransientZoom(double scale, WebCore::FloatPoint origin) override; + #endif +@@ -157,7 +157,7 @@ private: + + RunLoop::Timer m_displayTimer; + +-#if PLATFORM(GTK) ++#if PLATFORM(GTK) && !OS(HAIKU) + bool m_transientZoom { false }; + WebCore::FloatPoint m_transientZoomInitialOrigin; + #endif +diff --git a/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/LayerTreeHost.cpp b/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/LayerTreeHost.cpp +index 60d596e..20d3026 100644 +--- a/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/LayerTreeHost.cpp ++++ b/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/LayerTreeHost.cpp +@@ -147,7 +147,7 @@ void LayerTreeHost::layerFlushTimerFired() + m_coordinator.forceFrameSync(); + + OptionSet flags; +-#if PLATFORM(GTK) ++#if PLATFORM(GTK) && !OS(HAIKU) + if (!m_transientZoom) + flags.add(FinalizeRenderingUpdateFlags::ApplyScrollingTreeLayerPositions); + #else +@@ -156,7 +156,7 @@ void LayerTreeHost::layerFlushTimerFired() + + bool didSync = m_coordinator.flushPendingLayerChanges(flags); + +-#if PLATFORM(GTK) ++#if PLATFORM(GTK) && !OS(HAIKU) + // If we have an active transient zoom, we want the zoom to win over any changes + // that WebCore makes to the relevant layers, so re-apply our changes after flushing. + if (m_transientZoom) +@@ -204,7 +204,7 @@ void LayerTreeHost::forceRepaint() + + if (!m_isWaitingForRenderer) { + OptionSet flags; +-#if PLATFORM(GTK) ++#if PLATFORM(GTK) && !OS(HAIKU) + if (!m_transientZoom) + flags.add(FinalizeRenderingUpdateFlags::ApplyScrollingTreeLayerPositions); + #else +@@ -458,7 +458,7 @@ void LayerTreeHost::renderNextFrame(bool forceRepaint) + } + } + +-#if PLATFORM(GTK) ++#if PLATFORM(GTK) && !OS(HAIKU) + FloatPoint LayerTreeHost::constrainTransientZoomOrigin(double scale, FloatPoint origin) const + { + FrameView& frameView = *m_webPage.mainFrameView(); +diff --git a/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/LayerTreeHost.h b/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/LayerTreeHost.h +index 1dfae4a..69f1889 100644 +--- a/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/LayerTreeHost.h ++++ b/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/LayerTreeHost.h +@@ -99,7 +99,7 @@ public: + + WebCore::PlatformDisplayID displayID() const { return m_displayID; } + +-#if PLATFORM(GTK) ++#if PLATFORM(GTK) && !OS(HAIKU) + void adjustTransientZoom(double, WebCore::FloatPoint); + void commitTransientZoom(double, WebCore::FloatPoint); + #endif +@@ -125,7 +125,7 @@ private: + void requestDisplayRefreshMonitorUpdate(); + void handleDisplayRefreshMonitorUpdate(bool); + +-#if PLATFORM(GTK) ++#if PLATFORM(GTK) && !OS(HAIKU) + WebCore::FloatPoint constrainTransientZoomOrigin(double, WebCore::FloatPoint) const; + WebCore::CoordinatedGraphicsLayer* layerForTransientZoom() const; + void applyTransientZoomToLayers(double, WebCore::FloatPoint); +@@ -212,7 +212,7 @@ private: + #endif // USE(COORDINATED_GRAPHICS) + WebCore::PlatformDisplayID m_displayID; + +-#if PLATFORM(GTK) ++#if PLATFORM(GTK) && !OS(HAIKU) + bool m_transientZoom { false }; + double m_transientZoomScale { 1 }; + WebCore::FloatPoint m_transientZoomOrigin; +@@ -241,7 +241,7 @@ inline void LayerTreeHost::didChangeViewportAttributes(WebCore::ViewportAttribut + inline void LayerTreeHost::setIsDiscardable(bool) { } + inline void LayerTreeHost::deviceOrPageScaleFactorChanged() { } + inline RefPtr LayerTreeHost::createDisplayRefreshMonitor(WebCore::PlatformDisplayID) { return nullptr; } +-#if PLATFORM(GTK) ++#if PLATFORM(GTK) && !OS(HAIKU) + inline void LayerTreeHost::adjustTransientZoom(double, WebCore::FloatPoint) { } + inline void LayerTreeHost::commitTransientZoom(double, WebCore::FloatPoint) { } + #endif +diff --git a/Source/WebKit/WebProcess/WebProcess.cpp b/Source/WebKit/WebProcess/WebProcess.cpp +index 6d6e4f6..2a16fd3 100644 +--- a/Source/WebKit/WebProcess/WebProcess.cpp ++++ b/Source/WebKit/WebProcess/WebProcess.cpp +@@ -264,7 +264,7 @@ namespace WebKit { + using namespace JSC; + using namespace WebCore; + +-#if !PLATFORM(GTK) && !PLATFORM(WPE) ++#if (!PLATFORM(GTK) && !PLATFORM(WPE)) || defined(__HAIKU__) + NO_RETURN static void callExit(IPC::Connection*) + { + #if OS(WINDOWS) +@@ -375,13 +375,13 @@ void WebProcess::initializeConnection(IPC::Connection* connection) + + // Do not call exit in background queue for GTK and WPE because we need to ensure + // atexit handlers are called in the main thread to cleanup resources like EGL displays. +-#if !PLATFORM(GTK) && !PLATFORM(WPE) ++#if (!PLATFORM(GTK) && !PLATFORM(WPE)) || defined(__HAIKU__) + // We call _exit() directly from the background queue in case the main thread is unresponsive + // and AuxiliaryProcess::didClose() does not get called. + connection->setDidCloseOnConnectionWorkQueueCallback(callExit); + #endif + +-#if !PLATFORM(GTK) && !PLATFORM(WPE) && !ENABLE(IPC_TESTING_API) ++#if (!PLATFORM(GTK) && !PLATFORM(WPE) && !ENABLE(IPC_TESTING_API)) || defined(__HAIKU__) + connection->setShouldExitOnSyncMessageSendFailure(true); + #endif + +diff --git a/Source/cmake/WebKitCommon.cmake b/Source/cmake/WebKitCommon.cmake +index cd78c8c..87cb5a5 100644 +--- a/Source/cmake/WebKitCommon.cmake ++++ b/Source/cmake/WebKitCommon.cmake +@@ -159,7 +159,9 @@ if (NOT HAS_RUN_WEBKIT_COMMON) + set(WebKit_LIBRARY_TYPE SHARED) + set(WebCoreTestSupport_LIBRARY_TYPE STATIC) + +- set(CMAKE_POSITION_INDEPENDENT_CODE True) ++ if (NOT HAIKU) ++ set(CMAKE_POSITION_INDEPENDENT_CODE True) ++ endif () + + # ----------------------------------------------------------------------------- + # Install JavaScript shell +-- +2.37.3 + + +From b5fce2345ff851d378e67a47797ea99784c92938 Mon Sep 17 00:00:00 2001 +From: Gerasim Troeglazov <3dEyes@gmail.com> +Date: Fri, 11 Nov 2022 16:48:40 +1000 +Subject: Thread naming + + +diff --git a/Source/WTF/wtf/posix/ThreadingPOSIX.cpp b/Source/WTF/wtf/posix/ThreadingPOSIX.cpp +index e5f4761..a485dfa 100644 +--- a/Source/WTF/wtf/posix/ThreadingPOSIX.cpp ++++ b/Source/WTF/wtf/posix/ThreadingPOSIX.cpp +@@ -42,6 +42,10 @@ + #include + #include + ++#if OS(HAIKU) ++#include ++#endif ++ + #if OS(LINUX) + #include + #include +@@ -318,6 +322,8 @@ void Thread::initializeCurrentThreadInternal(const char* threadName) + { + #if HAVE(PTHREAD_SETNAME_NP) + pthread_setname_np(normalizeThreadName(threadName)); ++#elif OS(HAIKU) ++ rename_thread(find_thread(NULL), normalizeThreadName(threadName)); + #elif OS(LINUX) + prctl(PR_SET_NAME, normalizeThreadName(threadName)); + #else +-- +2.37.3 + + +From ddfd8bc153dfe0d9c0b4a3cff5a5695e888931df Mon Sep 17 00:00:00 2001 +From: Gerasim Troeglazov <3dEyes@gmail.com> +Date: Fri, 11 Nov 2022 16:49:03 +1000 +Subject: Fix memory reserve + + +diff --git a/Source/WTF/wtf/posix/OSAllocatorPOSIX.cpp b/Source/WTF/wtf/posix/OSAllocatorPOSIX.cpp +index 7510126..0be4d44 100644 +--- a/Source/WTF/wtf/posix/OSAllocatorPOSIX.cpp ++++ b/Source/WTF/wtf/posix/OSAllocatorPOSIX.cpp +@@ -115,7 +115,7 @@ void* OSAllocator::tryReserveAndCommit(size_t bytes, Usage usage, bool writable, + + void* OSAllocator::tryReserveUncommitted(size_t bytes, Usage usage, bool writable, bool executable, bool jitCageEnabled, bool includesGuardPages) + { +-#if OS(LINUX) ++#if OS(LINUX) || OS(HAIKU) + UNUSED_PARAM(usage); + UNUSED_PARAM(jitCageEnabled); + UNUSED_PARAM(includesGuardPages); +@@ -232,7 +232,7 @@ void* OSAllocator::reserveAndCommit(size_t bytes, Usage usage, bool writable, bo + + void OSAllocator::commit(void* address, size_t bytes, bool writable, bool executable) + { +-#if OS(LINUX) ++#if OS(LINUX) || OS(HAIKU) + UNUSED_PARAM(writable); + UNUSED_PARAM(executable); + while (madvise(address, bytes, MADV_WILLNEED) == -1 && errno == EAGAIN) { } +@@ -251,7 +251,7 @@ void OSAllocator::commit(void* address, size_t bytes, bool writable, bool execut + + void OSAllocator::decommit(void* address, size_t bytes) + { +-#if OS(LINUX) ++#if OS(LINUX) || OS(HAIKU) + while (madvise(address, bytes, MADV_DONTNEED) == -1 && errno == EAGAIN) { } + #elif HAVE(MADV_FREE_REUSE) + while (madvise(address, bytes, MADV_FREE_REUSABLE) == -1 && errno == EAGAIN) { } +-- +2.37.3 + diff --git a/net-libs/webkit-gtk/webkit_gtk-2.38.2.recipe b/net-libs/webkit-gtk/webkit_gtk-2.38.2.recipe new file mode 100644 index 000000000..bc4988065 --- /dev/null +++ b/net-libs/webkit-gtk/webkit_gtk-2.38.2.recipe @@ -0,0 +1,284 @@ +SUMMARY="Open source web browser engine" +DESCRIPTION="WebKitGTK is a full-featured port of the WebKit rendering engine, \ +suitable for projects requiring any kind of web integration, from hybrid HTML/CSS \ +applications to full-fledged web browsers. It offers WebKit’s full functionality \ +and is useful in a wide range of systems from desktop computers to embedded \ +systems like phones, tablets, and televisions. WebKitGTK is made by a lively \ +community of developers and designers, who hope to bring the web platform to \ +everyone. It’s the official web engine of the GNOME platform and is used in \ +browsers such as Epiphany, Eolie, and Tangram." +HOMEPAGE="https://www.webkitgtk.org/" +COPYRIGHT="2009‒2022 The WebKitGTK Team" +LICENSE="GNU LGPL v2 + BSD (2-clause) + " +REVISION="4" +SOURCE_URI="https://www.webkitgtk.org/releases/webkitgtk-$portVersion.tar.xz" +CHECKSUM_SHA256="f3eb82899651f583b4d99cacd16af784a1a7710fce9e7b6807bd6ccde909fe3e" +SOURCE_DIR="webkitgtk-$portVersion" +PATCHES="webkit_gtk-$portVersion.patchset" +ADDITIONAL_FILES=" + minibrowser.rdef.in + webprocess.rdef.in + " + +ARCHITECTURES="all !x86_gcc2" +SECONDARY_ARCHITECTURES="x86" + +PROVIDES=" + webkit_gtk$secondaryArchSuffix = $portVersion + lib:libwebkit2gtk_4.1$secondaryArchSuffix = 0.2.5 compat >= 0 + lib:libjavascriptcoregtk_4.1$secondaryArchSuffix = 0.2.5 compat >= 0 + app:MiniBrowser = $portVersion + " +REQUIRES=" + haiku$secondaryArchSuffix + lib:libatk_1.0$secondaryArchSuffix + lib:libatomic$secondaryArchSuffix + lib:libavif$secondaryArchSuffix + lib:libbrotlidec$secondaryArchSuffix + lib:libcairo$secondaryArchSuffix + lib:libcairo_gobject$secondaryArchSuffix + lib:libenchant_2$secondaryArchSuffix + lib:libfontconfig$secondaryArchSuffix + lib:libfreetype$secondaryArchSuffix + lib:libgcrypt$secondaryArchSuffix + lib:libgdk_pixbuf_2.0$secondaryArchSuffix + lib:libgio_2.0$secondaryArchSuffix + lib:libGL$secondaryArchSuffix + lib:libgcrypt$secondaryArchSuffix + lib:libgobject_2.0$secondaryArchSuffix + lib:libgmodule_2.0$secondaryArchSuffix + lib:libgnutls$secondaryArchSuffix + lib:libgpg_error$secondaryArchSuffix + lib:libgstapp_1.0$secondaryArchSuffix + lib:libgstaudio_1.0$secondaryArchSuffix + lib:libgstbase_1.0$secondaryArchSuffix + lib:libgstpbutils_1.0$secondaryArchSuffix + lib:libgstreamer_1.0$secondaryArchSuffix + lib:libgsttag_1.0$secondaryArchSuffix + lib:libgstvideo_1.0$secondaryArchSuffix + lib:libgstfft_1.0$secondaryArchSuffix + lib:libgstwebrtc_1.0$secondaryArchSuffix + lib:libgtk_3$secondaryArchSuffix + lib:libharfbuzz$secondaryArchSuffix + lib:libhyphen$secondaryArchSuffix + lib:libicudata$secondaryArchSuffix + lib:libicui18n$secondaryArchSuffix + lib:libicuuc$secondaryArchSuffix + lib:libintl$secondaryArchSuffix + lib:libjpeg$secondaryArchSuffix + lib:libjxl$secondaryArchSuffix + lib:libnghttp2$secondaryArchSuffix + lib:libopenjp2$secondaryArchSuffix + lib:libopus$secondaryArchSuffix + lib:libpango_1.0$secondaryArchSuffix + lib:libpangocairo_1.0$secondaryArchSuffix + lib:libpng16$secondaryArchSuffix + lib:libpsl$secondaryArchSuffix + lib:libsecret_1$secondaryArchSuffix + lib:libsoup_3.0$secondaryArchSuffix + lib:libsqlite3$secondaryArchSuffix + lib:libssl$secondaryArchSuffix + lib:libtasn1$secondaryArchSuffix + lib:libvpx$secondaryArchSuffix + lib:libwebp$secondaryArchSuffix + lib:libwoff2dec$secondaryArchSuffix + lib:libxml2$secondaryArchSuffix + lib:libxslt$secondaryArchSuffix + lib:libz$secondaryArchSuffix + " + +PROVIDES_devel=" + webkit_gtk${secondaryArchSuffix}_devel = $portVersion + devel:libwebkit2gtk_4.1$secondaryArchSuffix = 0.2.5 compat >= 0 + devel:libjavascriptcoregtk_4.1$secondaryArchSuffix = 0.2.5 compat >= 0 + " +REQUIRES_devel=" + webkit_gtk$secondaryArchSuffix == $portVersion base + devel:libglib_2.0$secondaryArchSuffix + devel:libgstapp_1.0$secondaryArchSuffix + devel:libgtk_3$secondaryArchSuffix + devel:libsoup_3.0$secondaryArchSuffix + devel:libwayland_client$secondaryArchSuffix + devel:libwayland_server$secondaryArchSuffix + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel + wayland_protocols + devel:libavif$secondaryArchSuffix + devel:libbrotlidec$secondaryArchSuffix + devel:libcrypto$secondaryArchSuffix + devel:libenchant_2$secondaryArchSuffix + devel:libevent_2.1$secondaryArchSuffix + devel:libfontconfig$secondaryArchSuffix + devel:libfreetype$secondaryArchSuffix + devel:libgdk_3$secondaryArchSuffix + devel:libgdk_pixbuf_2.0$secondaryArchSuffix + devel:libGL$secondaryArchSuffix + devel:libgcrypt$secondaryArchSuffix + devel:libglib_2.0$secondaryArchSuffix + devel:libgnutls$secondaryArchSuffix + devel:libgstapp_1.0$secondaryArchSuffix + devel:libgstaudio_1.0$secondaryArchSuffix + devel:libgstbadaudio_1.0$secondaryArchSuffix + devel:libgstbase_1.0$secondaryArchSuffix + devel:libgstpbutils_1.0$secondaryArchSuffix + devel:libgstreamer_1.0$secondaryArchSuffix + devel:libgstvideo_1.0$secondaryArchSuffix + devel:libgstwebrtc_1.0$secondaryArchSuffix + devel:libgtk_3$secondaryArchSuffix + devel:libharfbuzz$secondaryArchSuffix + devel:libhyphen$secondaryArchSuffix + devel:libicuuc$secondaryArchSuffix + devel:libintl$secondaryArchSuffix + devel:libjpeg$secondaryArchSuffix + devel:libjxl$secondaryArchSuffix + devel:libnghttp2$secondaryArchSuffix + devel:libopenjp2$secondaryArchSuffix + devel:libopus$secondaryArchSuffix + devel:libpng16$secondaryArchSuffix + devel:libpsl$secondaryArchSuffix + devel:libruby$secondaryArchSuffix + devel:libsecret_1$secondaryArchSuffix + devel:libsoup_3.0$secondaryArchSuffix + devel:libsqlite3$secondaryArchSuffix + devel:libssl$secondaryArchSuffix + devel:libtasn1$secondaryArchSuffix + devel:libvpx$secondaryArchSuffix + devel:libwayland_client$secondaryArchSuffix + devel:libwayland_server$secondaryArchSuffix + devel:libwebp$secondaryArchSuffix + devel:libwoff2dec$secondaryArchSuffix + devel:libxml2$secondaryArchSuffix + devel:libxslt$secondaryArchSuffix + devel:libz$secondaryArchSuffix + " +BUILD_PREREQUIRES=" + cmd:cmake + cmd:gcc$secondaryArchSuffix + cmd:gperf + cmd:make + cmd:orcc$secondaryArchSuffix + cmd:perl + cmd:pkg_config$secondaryArchSuffix + cmd:python3 + cmd:ruby + cmd:sed + cmd:xargs + " + +PATCH() +{ + cd $sourceDir/Tools/MiniBrowser + find gtk -type f -regex '.*\(c\|ui\|css\)' -print0 | xargs -0 sed -i 's/-symbolic//g' +} + +BUILD() +{ + export DISABLE_ASLR=1 + + cmake -S. -Bbuild \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_CXX_FLAGS="-D_BSD_SOURCE" \ + -DPORT=GTK \ + -DENABLE_ACCESSIBILITY=OFF \ + -DENABLE_API_TESTS=OFF \ + -DENABLE_BUBBLEWRAP_SANDBOX=OFF \ + -DENABLE_EXPERIMENTAL_FEATURES=ON \ + -DENABLE_FTPDIR=ON \ + -DENABLE_GAMEPAD=OFF \ + -DENABLE_GEOLOCATION=ON \ + -DENABLE_GLES2=OFF \ + -DENABLE_GTKDOC=OFF \ + -DENABLE_INTROSPECTION=OFF \ + -DENABLE_JOURNALD_LOG=OFF \ + -DENABLE_MEDIA_STREAM=ON \ + -DENABLE_MEDIA_RECORDER=OFF \ + -DENABLE_MEDIA_SOURCE=ON \ + -DENABLE_MINIBROWSER=ON \ + -DENABLE_QUARTZ_TARGET=OFF \ + -DENABLE_SAMPLING_PROFILER=OFF \ + -DENABLE_SMOOTH_SCROLLING=OFF \ + -DENABLE_SPELLCHECK=ON \ + -DENABLE_UNIFIED_BUILDS=ON \ + -DENABLE_VIDEO=ON \ + -DENABLE_WEB_AUDIO=ON \ + -DENABLE_WEBDRIVER=OFF \ + -DENABLE_WEBGL=ON \ + -DENABLE_WEB_RTC=ON \ + -DENABLE_WAYLAND_TARGET=OFF \ + -DENABLE_X11_TARGET=OFF \ + -DUSE_ATSPI=OFF \ + -DUSE_AVIF=ON \ + -DUSE_GSTREAMER_GL=OFF \ + -DUSE_GSTREAMER_WEBRTC=ON \ + -DUSE_GSTREAMER_TRANSCODER=OFF \ + -DUSE_GTK4=OFF \ + -DUSE_JPEGXL=ON \ + -DUSE_LCMS=OFF \ + -DUSE_LIBHYPHEN=ON \ + -DUSE_LIBNOTIFY=OFF \ + -DUSE_LIBSECRET=ON \ + -DUSE_LIBWEBRTC=OFF \ + -DUSE_OPENGL=ON \ + -DUSE_OPENJPEG=ON \ + -DUSE_SOUP2=OFF \ + -DUSE_SYSTEM_MALLOC=ON \ + -DUSE_SYSTEMD=OFF \ + -DUSE_WOFF2=ON \ + -DUSE_WPE_RENDERER=OFF \ + $cmakeDirArgs + + make -C build -j4 +} + +INSTALL() +{ + make -C build install + + mkdir -p $dataDir $appsDir + mv $prefix/share/locale $dataDir + rm -rf $prefix/share + + mv $libDir/webkit2gtk-4.1/MiniBrowser $appsDir + + prepareInstalledDevelLibs \ + libwebkit2gtk-4.1 \ + libjavascriptcoregtk-4.1 + + fixPkgconfig + + packageEntries devel \ + $developDir + + 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" + sed \ + -e "s|@MAJOR@|$MAJOR|" \ + -e "s|@MIDDLE@|$MIDDLE|" \ + -e "s|@MINOR@|$MINOR|" \ + -e "s|@LONG_INFO@|$LONG_INFO|" \ + $portDir/additional-files/webprocess.rdef.in > webprocess.rdef + addResourcesToBinaries webprocess.rdef "$libDir/webkit2gtk-4.1/WebKitWebProcess" + addResourcesToBinaries webprocess.rdef "$libDir/webkit2gtk-4.1/WebKitNetworkProcess" + + local APP_SIGNATURE="application/x-vnd.gtk-webkit-minibrowser" + 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" + 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/minibrowser.rdef.in > minibrowser.rdef + + addResourcesToBinaries minibrowser.rdef "$appsDir/MiniBrowser" + addAppDeskbarSymlink "$appsDir/MiniBrowser" +}